@roomstay/frontend 2.0.12 → 2.1.1

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 (1037) hide show
  1. package/dist/201.bundle.js +1 -1
  2. package/dist/423.bundle.js +1 -1
  3. package/dist/449.bundle.js +1 -1
  4. package/dist/760.bundle.js +1 -0
  5. package/dist/873.bundle.js +1 -1
  6. package/dist/882.bundle.js +1 -1
  7. package/dist/main.bundle.js +1 -1
  8. package/dist/src/animations/AutoAutoHeight.js +28 -2
  9. package/dist/src/animations/AutoAutoHeight.js.map +1 -1
  10. package/dist/src/animations/Fade.js +24 -1
  11. package/dist/src/animations/Fade.js.map +1 -1
  12. package/dist/src/api/AddonAPI.d.ts +3 -3
  13. package/dist/src/api/AddonAPI.js +30 -4
  14. package/dist/src/api/AddonAPI.js.map +1 -1
  15. package/dist/src/api/AvailabilityAPI.d.ts +4 -4
  16. package/dist/src/api/AvailabilityAPI.js +42 -16
  17. package/dist/src/api/AvailabilityAPI.js.map +1 -1
  18. package/dist/src/api/BaseAPI.d.ts +1 -1
  19. package/dist/src/api/BaseAPI.js +7 -4
  20. package/dist/src/api/BaseAPI.js.map +1 -1
  21. package/dist/src/api/BookingAPI.d.ts +7 -7
  22. package/dist/src/api/BookingAPI.js +12 -9
  23. package/dist/src/api/BookingAPI.js.map +1 -1
  24. package/dist/src/api/ErrorAPI.js +4 -1
  25. package/dist/src/api/ErrorAPI.js.map +1 -1
  26. package/dist/src/api/ExchangeRateAPI.d.ts +2 -2
  27. package/dist/src/api/ExchangeRateAPI.js +4 -1
  28. package/dist/src/api/ExchangeRateAPI.js.map +1 -1
  29. package/dist/src/api/HotelAPI.d.ts +5 -5
  30. package/dist/src/api/HotelAPI.js +4 -1
  31. package/dist/src/api/HotelAPI.js.map +1 -1
  32. package/dist/src/api/MemberAPI.d.ts +1 -1
  33. package/dist/src/api/MemberAPI.js +24 -1
  34. package/dist/src/api/MemberAPI.js.map +1 -1
  35. package/dist/src/api/ReservationAPI.d.ts +6 -6
  36. package/dist/src/api/ReservationAPI.js +24 -1
  37. package/dist/src/api/ReservationAPI.js.map +1 -1
  38. package/dist/src/api/SessionAPI.d.ts +1 -1
  39. package/dist/src/api/SessionAPI.js +24 -1
  40. package/dist/src/api/SessionAPI.js.map +1 -1
  41. package/dist/src/api/members-service/MembersServiceAPI.js +4 -1
  42. package/dist/src/api/members-service/MembersServiceAPI.js.map +1 -1
  43. package/dist/src/components/User/Forms/ForgotPasswordForm.js +34 -8
  44. package/dist/src/components/User/Forms/ForgotPasswordForm.js.map +1 -1
  45. package/dist/src/components/User/Forms/SignInForm.js +36 -10
  46. package/dist/src/components/User/Forms/SignInForm.js.map +1 -1
  47. package/dist/src/components/User/Forms/SignUpForm.js +38 -12
  48. package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
  49. package/dist/src/components/generic/Alert.d.ts +1 -1
  50. package/dist/src/components/generic/Alert.js +30 -4
  51. package/dist/src/components/generic/Alert.js.map +1 -1
  52. package/dist/src/components/generic/BEButton.d.ts +2 -2
  53. package/dist/src/components/generic/BEButton.js +31 -5
  54. package/dist/src/components/generic/BEButton.js.map +1 -1
  55. package/dist/src/components/generic/BackButton.js +29 -3
  56. package/dist/src/components/generic/BackButton.js.map +1 -1
  57. package/dist/src/components/generic/BookNowPayLaterInfoBlock.js +30 -4
  58. package/dist/src/components/generic/BookNowPayLaterInfoBlock.js.map +1 -1
  59. package/dist/src/components/generic/BookingWizard/BookingWizard.d.ts +19 -0
  60. package/dist/src/components/generic/BookingWizard/BookingWizard.js +106 -0
  61. package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -0
  62. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.d.ts +6 -0
  63. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js +28 -0
  64. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js.map +1 -0
  65. package/dist/src/components/generic/BookingWizard/BookingWizardContent.d.ts +10 -0
  66. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js +113 -0
  67. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js.map +1 -0
  68. package/dist/src/components/generic/BookingWizard/BookingWizardContext.d.ts +35 -0
  69. package/dist/src/components/generic/BookingWizard/BookingWizardContext.js +8 -0
  70. package/dist/src/components/generic/BookingWizard/BookingWizardContext.js.map +1 -0
  71. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.d.ts +7 -0
  72. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js +146 -0
  73. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js.map +1 -0
  74. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.d.ts +9 -0
  75. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +111 -0
  76. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -0
  77. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.d.ts +10 -0
  78. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js +144 -0
  79. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js.map +1 -0
  80. package/dist/src/components/generic/Card/Card/Card.js +30 -4
  81. package/dist/src/components/generic/Card/Card/Card.js.map +1 -1
  82. package/dist/src/components/generic/Card/IconNavCard/IconNavCard.d.ts +2 -2
  83. package/dist/src/components/generic/Card/IconNavCard/IconNavCard.js +32 -6
  84. package/dist/src/components/generic/Card/IconNavCard/IconNavCard.js.map +1 -1
  85. package/dist/src/components/generic/Checkbox/Checkbox.js +30 -4
  86. package/dist/src/components/generic/Checkbox/Checkbox.js.map +1 -1
  87. package/dist/src/components/generic/Countdown.d.ts +1 -1
  88. package/dist/src/components/generic/Countdown.js +29 -3
  89. package/dist/src/components/generic/Countdown.js.map +1 -1
  90. package/dist/src/components/generic/Currency.js +30 -4
  91. package/dist/src/components/generic/Currency.js.map +1 -1
  92. package/dist/src/components/generic/DateRangePicker/DateRangePicker.d.ts +14 -0
  93. package/dist/src/components/generic/DateRangePicker/DateRangePicker.js +155 -0
  94. package/dist/src/components/generic/DateRangePicker/DateRangePicker.js.map +1 -0
  95. package/dist/src/components/generic/DateRangePicker/DateRangePickerContext.d.ts +10 -0
  96. package/dist/src/components/generic/DateRangePicker/DateRangePickerContext.js +44 -0
  97. package/dist/src/components/generic/DateRangePicker/DateRangePickerContext.js.map +1 -0
  98. package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.d.ts +21 -0
  99. package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.js +134 -0
  100. package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.js.map +1 -0
  101. package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.d.ts +6 -0
  102. package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.js +44 -0
  103. package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.js.map +1 -0
  104. package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.d.ts +7 -0
  105. package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.js +57 -0
  106. package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.js.map +1 -0
  107. package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.d.ts +25 -0
  108. package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js +87 -0
  109. package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js.map +1 -0
  110. package/dist/src/components/generic/Distance.js +28 -2
  111. package/dist/src/components/generic/Distance.js.map +1 -1
  112. package/dist/src/components/generic/ForwardedSelect.d.ts +1 -1
  113. package/dist/src/components/generic/ForwardedSelect.js +24 -1
  114. package/dist/src/components/generic/ForwardedSelect.js.map +1 -1
  115. package/dist/src/components/generic/Headline.d.ts +2 -2
  116. package/dist/src/components/generic/Headline.js +29 -3
  117. package/dist/src/components/generic/Headline.js.map +1 -1
  118. package/dist/src/components/generic/Icon/Icon.d.ts +1 -1
  119. package/dist/src/components/generic/Icon/Icon.js +31 -5
  120. package/dist/src/components/generic/Icon/Icon.js.map +1 -1
  121. package/dist/src/components/generic/IconText/IconText.d.ts +2 -2
  122. package/dist/src/components/generic/IconText/IconText.js +32 -6
  123. package/dist/src/components/generic/IconText/IconText.js.map +1 -1
  124. package/dist/src/components/generic/InputGroup/InputGroup.d.ts +1 -1
  125. package/dist/src/components/generic/InputGroup/InputGroup.js +29 -3
  126. package/dist/src/components/generic/InputGroup/InputGroup.js.map +1 -1
  127. package/dist/src/components/generic/LineBreak.js +29 -3
  128. package/dist/src/components/generic/LineBreak.js.map +1 -1
  129. package/dist/src/components/generic/Notification.d.ts +1 -1
  130. package/dist/src/components/generic/Notification.js +26 -3
  131. package/dist/src/components/generic/Notification.js.map +1 -1
  132. package/dist/src/components/generic/NumberIncrement.js +30 -4
  133. package/dist/src/components/generic/NumberIncrement.js.map +1 -1
  134. package/dist/src/components/generic/Overlay/Overlay.d.ts +3 -2
  135. package/dist/src/components/generic/Overlay/Overlay.js +34 -7
  136. package/dist/src/components/generic/Overlay/Overlay.js.map +1 -1
  137. package/dist/src/components/generic/PasswordBox/PasswordBox.js +30 -4
  138. package/dist/src/components/generic/PasswordBox/PasswordBox.js.map +1 -1
  139. package/dist/src/components/generic/PaymentCard/CardTypeSelect.d.ts +2 -3
  140. package/dist/src/components/generic/PaymentCard/CardTypeSelect.js +33 -7
  141. package/dist/src/components/generic/PaymentCard/CardTypeSelect.js.map +1 -1
  142. package/dist/src/components/generic/PaymentCard/PaymentCard.d.ts +2 -3
  143. package/dist/src/components/generic/PaymentCard/PaymentCard.js +32 -6
  144. package/dist/src/components/generic/PaymentCard/PaymentCard.js.map +1 -1
  145. package/dist/src/components/generic/PaymentCard/PaymentCardInput.d.ts +2 -3
  146. package/dist/src/components/generic/PaymentCard/PaymentCardInput.js +40 -14
  147. package/dist/src/components/generic/PaymentCard/PaymentCardInput.js.map +1 -1
  148. package/dist/src/components/generic/Pill.d.ts +1 -1
  149. package/dist/src/components/generic/Pill.js +30 -4
  150. package/dist/src/components/generic/Pill.js.map +1 -1
  151. package/dist/src/components/generic/Placeholder.js +29 -3
  152. package/dist/src/components/generic/Placeholder.js.map +1 -1
  153. package/dist/src/components/generic/PlanpayButton/PlanpayButton.d.ts +1 -2
  154. package/dist/src/components/generic/PlanpayButton/PlanpayButton.js +28 -2
  155. package/dist/src/components/generic/PlanpayButton/PlanpayButton.js.map +1 -1
  156. package/dist/src/components/generic/Portal/Portal.js +24 -1
  157. package/dist/src/components/generic/Portal/Portal.js.map +1 -1
  158. package/dist/src/components/generic/PromoCodeInput.js +33 -7
  159. package/dist/src/components/generic/PromoCodeInput.js.map +1 -1
  160. package/dist/src/components/generic/RadioButtonGroup/RadioButton.js +30 -4
  161. package/dist/src/components/generic/RadioButtonGroup/RadioButton.js.map +1 -1
  162. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js +31 -5
  163. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  164. package/dist/src/components/generic/RecentSearchesCard.d.ts +2 -2
  165. package/dist/src/components/generic/RecentSearchesCard.js +36 -10
  166. package/dist/src/components/generic/RecentSearchesCard.js.map +1 -1
  167. package/dist/src/components/generic/Select/Select.d.ts +20 -6
  168. package/dist/src/components/generic/Select/Select.js +97 -30
  169. package/dist/src/components/generic/Select/Select.js.map +1 -1
  170. package/dist/src/components/generic/Slider/Slider.js +29 -3
  171. package/dist/src/components/generic/Slider/Slider.js.map +1 -1
  172. package/dist/src/components/generic/Tabs/ElementChildren.js +24 -1
  173. package/dist/src/components/generic/Tabs/ElementChildren.js.map +1 -1
  174. package/dist/src/components/generic/Tabs/Tab.js +24 -1
  175. package/dist/src/components/generic/Tabs/Tab.js.map +1 -1
  176. package/dist/src/components/generic/Tabs/TabContext.d.ts +1 -1
  177. package/dist/src/components/generic/Tabs/TabContext.js +24 -1
  178. package/dist/src/components/generic/Tabs/TabContext.js.map +1 -1
  179. package/dist/src/components/generic/Tabs/TabLink.js +31 -5
  180. package/dist/src/components/generic/Tabs/TabLink.js.map +1 -1
  181. package/dist/src/components/generic/Tabs/TabRouteContainer.js +29 -3
  182. package/dist/src/components/generic/Tabs/TabRouteContainer.js.map +1 -1
  183. package/dist/src/components/generic/Tabs/Tabs.js +33 -7
  184. package/dist/src/components/generic/Tabs/Tabs.js.map +1 -1
  185. package/dist/src/components/generic/Text.d.ts +2 -2
  186. package/dist/src/components/generic/Text.js +29 -3
  187. package/dist/src/components/generic/Text.js.map +1 -1
  188. package/dist/src/components/generic/TextArea.js +24 -1
  189. package/dist/src/components/generic/TextArea.js.map +1 -1
  190. package/dist/src/components/generic/TextBox.d.ts +1 -1
  191. package/dist/src/components/generic/TextBox.js +30 -4
  192. package/dist/src/components/generic/TextBox.js.map +1 -1
  193. package/dist/src/components/generic/Tooltip/Tooltip.js +29 -3
  194. package/dist/src/components/generic/Tooltip/Tooltip.js.map +1 -1
  195. package/dist/src/components/generic/badging/SSLSecureBadge.js +29 -3
  196. package/dist/src/components/generic/badging/SSLSecureBadge.js.map +1 -1
  197. package/dist/src/components/generic/buttons/NextStepButton.d.ts +1 -1
  198. package/dist/src/components/generic/buttons/NextStepButton.js +31 -5
  199. package/dist/src/components/generic/buttons/NextStepButton.js.map +1 -1
  200. package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.js +35 -9
  201. package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.js.map +1 -1
  202. package/dist/src/components/generic/date/DatePicker.d.ts +1 -1
  203. package/dist/src/components/generic/date/DatePicker.js +43 -17
  204. package/dist/src/components/generic/date/DatePicker.js.map +1 -1
  205. package/dist/src/components/generic/date/DatePickerDay.d.ts +1 -1
  206. package/dist/src/components/generic/date/DatePickerDay.js +34 -8
  207. package/dist/src/components/generic/date/DatePickerDay.js.map +1 -1
  208. package/dist/src/components/generic/date/DatePickerDays.d.ts +1 -1
  209. package/dist/src/components/generic/date/DatePickerDays.js +30 -4
  210. package/dist/src/components/generic/date/DatePickerDays.js.map +1 -1
  211. package/dist/src/components/generic/date/DatePickerMonth.d.ts +1 -1
  212. package/dist/src/components/generic/date/DatePickerMonth.js +32 -6
  213. package/dist/src/components/generic/date/DatePickerMonth.js.map +1 -1
  214. package/dist/src/components/generic/date/DatePickerWeek.js +41 -15
  215. package/dist/src/components/generic/date/DatePickerWeek.js.map +1 -1
  216. package/dist/src/components/generic/date/FloatingDatePicker.d.ts +1 -1
  217. package/dist/src/components/generic/date/FloatingDatePicker.js +30 -4
  218. package/dist/src/components/generic/date/FloatingDatePicker.js.map +1 -1
  219. package/dist/src/components/generic/date/WeekViewSkeleton.js +31 -5
  220. package/dist/src/components/generic/date/WeekViewSkeleton.js.map +1 -1
  221. package/dist/src/components/generic/loader/ImageLoader.d.ts +1 -1
  222. package/dist/src/components/generic/loader/ImageLoader.js +29 -3
  223. package/dist/src/components/generic/loader/ImageLoader.js.map +1 -1
  224. package/dist/src/components/generic/loader/LargeLoader.js +28 -2
  225. package/dist/src/components/generic/loader/LargeLoader.js.map +1 -1
  226. package/dist/src/components/generic/loader/SmallSpinner.d.ts +1 -1
  227. package/dist/src/components/generic/loader/SmallSpinner.js +26 -3
  228. package/dist/src/components/generic/loader/SmallSpinner.js.map +1 -1
  229. package/dist/src/components/generic/map/HotelLocationMap.js +28 -2
  230. package/dist/src/components/generic/map/HotelLocationMap.js.map +1 -1
  231. package/dist/src/components/generic/modal/ConfirmationModal.d.ts +1 -2
  232. package/dist/src/components/generic/modal/ConfirmationModal.js +30 -4
  233. package/dist/src/components/generic/modal/ConfirmationModal.js.map +1 -1
  234. package/dist/src/components/generic/modal/ErrorModal.js +30 -4
  235. package/dist/src/components/generic/modal/ErrorModal.js.map +1 -1
  236. package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js +35 -9
  237. package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js.map +1 -1
  238. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js +38 -12
  239. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js.map +1 -1
  240. package/dist/src/components/generic/modal/SimpleModal.d.ts +2 -0
  241. package/dist/src/components/generic/modal/SimpleModal.js +38 -11
  242. package/dist/src/components/generic/modal/SimpleModal.js.map +1 -1
  243. package/dist/src/components/generic/modal/TabbedModal.js +29 -3
  244. package/dist/src/components/generic/modal/TabbedModal.js.map +1 -1
  245. package/dist/src/components/generic/radio/RadioFields.js +32 -6
  246. package/dist/src/components/generic/radio/RadioFields.js.map +1 -1
  247. package/dist/src/components/iconComponents/BookNowPayLaterIcon.js +24 -1
  248. package/dist/src/components/iconComponents/BookNowPayLaterIcon.js.map +1 -1
  249. package/dist/src/components/members/EditMyProfile.js +33 -7
  250. package/dist/src/components/members/EditMyProfile.js.map +1 -1
  251. package/dist/src/components/navigation/Header.js +45 -19
  252. package/dist/src/components/navigation/Header.js.map +1 -1
  253. package/dist/src/components/navigation/StepSelector.js +35 -9
  254. package/dist/src/components/navigation/StepSelector.js.map +1 -1
  255. package/dist/src/components/navigation/StepSelectorModal.js +34 -8
  256. package/dist/src/components/navigation/StepSelectorModal.js.map +1 -1
  257. package/dist/src/components/pages/Account/Card/CardList.js +30 -4
  258. package/dist/src/components/pages/Account/Card/CardList.js.map +1 -1
  259. package/dist/src/components/pages/Account/Card/MemberCardItem.js +37 -11
  260. package/dist/src/components/pages/Account/Card/MemberCardItem.js.map +1 -1
  261. package/dist/src/components/pages/PageColorComponent.js +28 -2
  262. package/dist/src/components/pages/PageColorComponent.js.map +1 -1
  263. package/dist/src/components/reservation/ReservationItem.js +47 -21
  264. package/dist/src/components/reservation/ReservationItem.js.map +1 -1
  265. package/dist/src/components/reservation/ReservationList.d.ts +1 -1
  266. package/dist/src/components/reservation/ReservationList.js +28 -2
  267. package/dist/src/components/reservation/ReservationList.js.map +1 -1
  268. package/dist/src/components/steps/DaysSelectedInformer.js +26 -3
  269. package/dist/src/components/steps/DaysSelectedInformer.js.map +1 -1
  270. package/dist/src/components/steps/MinimumNightStayPill.js +31 -5
  271. package/dist/src/components/steps/MinimumNightStayPill.js.map +1 -1
  272. package/dist/src/components/steps/addons/AddonCard.d.ts +1 -1
  273. package/dist/src/components/steps/addons/AddonCard.js +39 -14
  274. package/dist/src/components/steps/addons/AddonCard.js.map +1 -1
  275. package/dist/src/components/steps/addons/AddonList.js +33 -7
  276. package/dist/src/components/steps/addons/AddonList.js.map +1 -1
  277. package/dist/src/components/steps/addons/AddonsNotFound.js +30 -4
  278. package/dist/src/components/steps/addons/AddonsNotFound.js.map +1 -1
  279. package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.d.ts +1 -1
  280. package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js +31 -5
  281. package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js.map +1 -1
  282. package/dist/src/components/steps/confirmation/AccountDetails.js +31 -5
  283. package/dist/src/components/steps/confirmation/AccountDetails.js.map +1 -1
  284. package/dist/src/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard.js +31 -5
  285. package/dist/src/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard.js.map +1 -1
  286. package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js +26 -3
  287. package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js.map +1 -1
  288. package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js +35 -9
  289. package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js.map +1 -1
  290. package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js +29 -3
  291. package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js.map +1 -1
  292. package/dist/src/components/steps/confirmation/RoomContactDetails.js +43 -17
  293. package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
  294. package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js +35 -9
  295. package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js.map +1 -1
  296. package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.d.ts +1 -1
  297. package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js +39 -13
  298. package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js.map +1 -1
  299. package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.d.ts +1 -1
  300. package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.js +31 -5
  301. package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.js.map +1 -1
  302. package/dist/src/components/steps/confirmation/StepConfirmationCountrySelector.js +32 -6
  303. package/dist/src/components/steps/confirmation/StepConfirmationCountrySelector.js.map +1 -1
  304. package/dist/src/components/steps/confirmation/StepConfirmationForm.js +56 -30
  305. package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
  306. package/dist/src/components/steps/confirmation/StepConfirmationFormProvider.js +28 -2
  307. package/dist/src/components/steps/confirmation/StepConfirmationFormProvider.js.map +1 -1
  308. package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.d.ts +1 -1
  309. package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js +33 -7
  310. package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js.map +1 -1
  311. package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js +29 -3
  312. package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js.map +1 -1
  313. package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js +25 -2
  314. package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js.map +1 -1
  315. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js +37 -11
  316. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js.map +1 -1
  317. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.d.ts +1 -1
  318. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js +27 -4
  319. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js.map +1 -1
  320. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.d.ts +2 -2
  321. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js +38 -13
  322. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js.map +1 -1
  323. package/dist/src/components/steps/date/PeoplePicker.js +33 -7
  324. package/dist/src/components/steps/date/PeoplePicker.js.map +1 -1
  325. package/dist/src/components/steps/date/PeoplePickerRow.js +32 -6
  326. package/dist/src/components/steps/date/PeoplePickerRow.js.map +1 -1
  327. package/dist/src/components/steps/date/StepDatePricePerRoom.js +34 -8
  328. package/dist/src/components/steps/date/StepDatePricePerRoom.js.map +1 -1
  329. package/dist/src/components/steps/date/StepOneDateRange.js +30 -4
  330. package/dist/src/components/steps/date/StepOneDateRange.js.map +1 -1
  331. package/dist/src/components/steps/date/StepOneDateRangePicker.js +30 -4
  332. package/dist/src/components/steps/date/StepOneDateRangePicker.js.map +1 -1
  333. package/dist/src/components/steps/date/StepOneDateRangePickerLegend.js +31 -5
  334. package/dist/src/components/steps/date/StepOneDateRangePickerLegend.js.map +1 -1
  335. package/dist/src/components/steps/date/StepOneNextStepButton.js +29 -3
  336. package/dist/src/components/steps/date/StepOneNextStepButton.js.map +1 -1
  337. package/dist/src/components/steps/date/StepOneStatusPeople.js +28 -2
  338. package/dist/src/components/steps/date/StepOneStatusPeople.js.map +1 -1
  339. package/dist/src/components/steps/hotel/HotelCard.d.ts +1 -1
  340. package/dist/src/components/steps/hotel/HotelCard.js +40 -14
  341. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  342. package/dist/src/components/steps/hotel/HotelCardList.d.ts +1 -1
  343. package/dist/src/components/steps/hotel/HotelCardList.js +29 -3
  344. package/dist/src/components/steps/hotel/HotelCardList.js.map +1 -1
  345. package/dist/src/components/steps/hotel/HotelCardModal.d.ts +1 -1
  346. package/dist/src/components/steps/hotel/HotelCardModal.js +39 -13
  347. package/dist/src/components/steps/hotel/HotelCardModal.js.map +1 -1
  348. package/dist/src/components/steps/hotel/HotelSearchParameters.js +49 -23
  349. package/dist/src/components/steps/hotel/HotelSearchParameters.js.map +1 -1
  350. package/dist/src/components/steps/hotel/NoHotelsAvailable.js +29 -3
  351. package/dist/src/components/steps/hotel/NoHotelsAvailable.js.map +1 -1
  352. package/dist/src/components/steps/room/AvailableUpgradesModal.js +38 -12
  353. package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
  354. package/dist/src/components/steps/room/ImageGallerySlider.d.ts +1 -1
  355. package/dist/src/components/steps/room/ImageGallerySlider.js +33 -7
  356. package/dist/src/components/steps/room/ImageGallerySlider.js.map +1 -1
  357. package/dist/src/components/steps/room/InactivityWindow.js +37 -11
  358. package/dist/src/components/steps/room/InactivityWindow.js.map +1 -1
  359. package/dist/src/components/steps/room/LargeRoomCard.d.ts +1 -1
  360. package/dist/src/components/steps/room/LargeRoomCard.js +36 -10
  361. package/dist/src/components/steps/room/LargeRoomCard.js.map +1 -1
  362. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js +40 -14
  363. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js.map +1 -1
  364. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.types.d.ts +1 -1
  365. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.types.js.map +1 -1
  366. package/dist/src/components/steps/room/NoRoomsFoundBlock.js +39 -13
  367. package/dist/src/components/steps/room/NoRoomsFoundBlock.js.map +1 -1
  368. package/dist/src/components/steps/room/RatesNotFound.js +30 -4
  369. package/dist/src/components/steps/room/RatesNotFound.js.map +1 -1
  370. package/dist/src/components/steps/room/RoomList.js +40 -14
  371. package/dist/src/components/steps/room/RoomList.js.map +1 -1
  372. package/dist/src/components/steps/room/RoomListAlert.js +31 -5
  373. package/dist/src/components/steps/room/RoomListAlert.js.map +1 -1
  374. package/dist/src/components/steps/room/RoomListCrossSellBlock.js +36 -10
  375. package/dist/src/components/steps/room/RoomListCrossSellBlock.js.map +1 -1
  376. package/dist/src/components/steps/room/RoomModal.d.ts +2 -2
  377. package/dist/src/components/steps/room/RoomModal.js +36 -10
  378. package/dist/src/components/steps/room/RoomModal.js.map +1 -1
  379. package/dist/src/components/steps/room/StepRoomAlertBlocks.js +32 -6
  380. package/dist/src/components/steps/room/StepRoomAlertBlocks.js.map +1 -1
  381. package/dist/src/components/steps/room/StepRoomBestRateAlert.js +31 -5
  382. package/dist/src/components/steps/room/StepRoomBestRateAlert.js.map +1 -1
  383. package/dist/src/components/steps/room/StepRoomErrorForm.js +40 -14
  384. package/dist/src/components/steps/room/StepRoomErrorForm.js.map +1 -1
  385. package/dist/src/components/steps/room/StepRoomHotelDetails.js +30 -4
  386. package/dist/src/components/steps/room/StepRoomHotelDetails.js.map +1 -1
  387. package/dist/src/components/steps/room/StepRoomNextStepButton.js +29 -3
  388. package/dist/src/components/steps/room/StepRoomNextStepButton.js.map +1 -1
  389. package/dist/src/components/steps/room/StepRoomSortBy.js +35 -10
  390. package/dist/src/components/steps/room/StepRoomSortBy.js.map +1 -1
  391. package/dist/src/components/steps/room/StepRoomSummaryAndButton.js +32 -6
  392. package/dist/src/components/steps/room/StepRoomSummaryAndButton.js.map +1 -1
  393. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.d.ts +2 -2
  394. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.js +32 -7
  395. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.js.map +1 -1
  396. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.d.ts +2 -2
  397. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.js +32 -7
  398. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.js.map +1 -1
  399. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js +32 -6
  400. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js.map +1 -1
  401. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.d.ts +1 -1
  402. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +45 -19
  403. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  404. package/dist/src/components/steps/room/roomDetails/RoomDetails.d.ts +1 -1
  405. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +47 -21
  406. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  407. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.d.ts +2 -2
  408. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js +27 -4
  409. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js.map +1 -1
  410. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.d.ts +1 -1
  411. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js +32 -6
  412. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js.map +1 -1
  413. package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js +36 -10
  414. package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js.map +1 -1
  415. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.d.ts +1 -1
  416. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js +41 -15
  417. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js.map +1 -1
  418. package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.d.ts +1 -1
  419. package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js +29 -3
  420. package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js.map +1 -1
  421. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js +36 -10
  422. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js.map +1 -1
  423. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.d.ts +1 -1
  424. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +35 -9
  425. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
  426. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.d.ts +1 -1
  427. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js +36 -10
  428. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js.map +1 -1
  429. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.d.ts +1 -1
  430. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js +30 -4
  431. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js.map +1 -1
  432. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.d.ts +1 -1
  433. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js +33 -7
  434. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js.map +1 -1
  435. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.d.ts +2 -2
  436. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js +33 -7
  437. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js.map +1 -1
  438. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.d.ts +1 -1
  439. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js +43 -17
  440. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js.map +1 -1
  441. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.d.ts +1 -1
  442. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js +35 -9
  443. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js.map +1 -1
  444. package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js +31 -5
  445. package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js.map +1 -1
  446. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.d.ts +1 -1
  447. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js +40 -14
  448. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js.map +1 -1
  449. package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.d.ts +2 -2
  450. package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.js +35 -9
  451. package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.js.map +1 -1
  452. package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.d.ts +2 -2
  453. package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.js +32 -6
  454. package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.js.map +1 -1
  455. package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.d.ts +2 -2
  456. package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js +32 -6
  457. package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js.map +1 -1
  458. package/dist/src/components/summary/BEMapWidget.d.ts +3 -5
  459. package/dist/src/components/summary/BEMapWidget.js +66 -18
  460. package/dist/src/components/summary/BEMapWidget.js.map +1 -1
  461. package/dist/src/components/summary/BEMobileSummary.js +37 -11
  462. package/dist/src/components/summary/BEMobileSummary.js.map +1 -1
  463. package/dist/src/components/summary/BEMobileSummaryModal.js +45 -19
  464. package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
  465. package/dist/src/components/summary/BESummary.js +41 -15
  466. package/dist/src/components/summary/BESummary.js.map +1 -1
  467. package/dist/src/components/summary/BESummaryAddonRow.d.ts +1 -1
  468. package/dist/src/components/summary/BESummaryAddonRow.js +36 -10
  469. package/dist/src/components/summary/BESummaryAddonRow.js.map +1 -1
  470. package/dist/src/components/summary/BESummaryPerkBlock.js +31 -5
  471. package/dist/src/components/summary/BESummaryPerkBlock.js.map +1 -1
  472. package/dist/src/components/summary/BESummaryPrivacyPolicy.js +26 -3
  473. package/dist/src/components/summary/BESummaryPrivacyPolicy.js.map +1 -1
  474. package/dist/src/components/summary/BESummaryRoomRow.d.ts +1 -1
  475. package/dist/src/components/summary/BESummaryRoomRow.js +37 -11
  476. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  477. package/dist/src/components/summary/TransportDistanceFromHotelBlock.d.ts +1 -1
  478. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js +32 -6
  479. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js.map +1 -1
  480. package/dist/src/components/temp/Login.js +29 -3
  481. package/dist/src/components/temp/Login.js.map +1 -1
  482. package/dist/src/containers/PrivateRoute.js +24 -1
  483. package/dist/src/containers/PrivateRoute.js.map +1 -1
  484. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +7 -7
  485. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  486. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +44 -18
  487. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  488. package/dist/src/contexts/BookingEngineContext/BookingEngineContextType.types.d.ts +5 -5
  489. package/dist/src/contexts/BookingEngineContext/BookingEngineContextType.types.js.map +1 -1
  490. package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.d.ts +1 -1
  491. package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.js +29 -3
  492. package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.js.map +1 -1
  493. package/dist/src/contexts/CompanyContext/CompanyContextType.type.d.ts +5 -5
  494. package/dist/src/contexts/CompanyContext/CompanyContextType.type.js.map +1 -1
  495. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.d.ts +1 -1
  496. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +37 -11
  497. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  498. package/dist/src/contexts/ConfirmationFormContext.js +24 -1
  499. package/dist/src/contexts/ConfirmationFormContext.js.map +1 -1
  500. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +31 -5
  501. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  502. package/dist/src/contexts/DatePickerContext.d.ts +1 -1
  503. package/dist/src/contexts/DatePickerContext.js +24 -1
  504. package/dist/src/contexts/DatePickerContext.js.map +1 -1
  505. package/dist/src/contexts/ErrorContext.js +29 -3
  506. package/dist/src/contexts/ErrorContext.js.map +1 -1
  507. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextTypes.d.ts +2 -2
  508. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextTypes.js.map +1 -1
  509. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +56 -30
  510. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  511. package/dist/src/contexts/HotelOverridesContext.d.ts +1 -1
  512. package/dist/src/contexts/HotelOverridesContext.js +29 -3
  513. package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
  514. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +30 -4
  515. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
  516. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +31 -5
  517. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
  518. package/dist/src/contexts/ModalContext.js +24 -1
  519. package/dist/src/contexts/ModalContext.js.map +1 -1
  520. package/dist/src/contexts/NotificationContext.d.ts +1 -1
  521. package/dist/src/contexts/NotificationContext.js +28 -2
  522. package/dist/src/contexts/NotificationContext.js.map +1 -1
  523. package/dist/src/engines/BaseEngine.d.ts +6 -7
  524. package/dist/src/engines/BaseEngine.js +6 -2
  525. package/dist/src/engines/BaseEngine.js.map +1 -1
  526. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +17 -0
  527. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js +31 -0
  528. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -0
  529. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.d.ts +6 -0
  530. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js +54 -0
  531. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js.map +1 -0
  532. package/dist/src/engines/CustomEngine/CustomEngine.d.ts +1 -1
  533. package/dist/src/engines/CustomEngine/CustomEngine.js +1 -1
  534. package/dist/src/engines/CustomEngine/CustomEngine.js.map +1 -1
  535. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.d.ts +7 -3
  536. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.js +26 -3
  537. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.js.map +1 -1
  538. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.d.ts +1 -1
  539. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js +25 -2
  540. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js.map +1 -1
  541. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.d.ts +7 -3
  542. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js +6 -3
  543. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js.map +1 -1
  544. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.d.ts +1 -1
  545. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +65 -39
  546. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  547. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.d.ts +7 -3
  548. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.js +6 -3
  549. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.js.map +1 -1
  550. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.d.ts +1 -1
  551. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js +37 -11
  552. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js.map +1 -1
  553. package/dist/src/errors/GetAvailabilityError.d.ts +1 -1
  554. package/dist/src/errors/GetAvailabilityError.js +1 -1
  555. package/dist/src/errors/GetAvailabilityError.js.map +1 -1
  556. package/dist/src/events/RoomstayEventManager.d.ts +1 -1
  557. package/dist/src/events/RoomstayEventManager.js.map +1 -1
  558. package/dist/src/events/actions/AddToCartEvent.d.ts +2 -2
  559. package/dist/src/events/actions/AddToCartEvent.js +1 -1
  560. package/dist/src/events/actions/AddToCartEvent.js.map +1 -1
  561. package/dist/src/events/actions/GuestSearchEvent.d.ts +1 -1
  562. package/dist/src/events/actions/GuestSearchEvent.js.map +1 -1
  563. package/dist/src/events/actions/InitialHotelDetailsEvent.d.ts +1 -1
  564. package/dist/src/events/actions/InitialHotelDetailsEvent.js.map +1 -1
  565. package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.d.ts +1 -1
  566. package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.js.map +1 -1
  567. package/dist/src/events/actions/Promotion/PromotionAddedEvent.d.ts +1 -1
  568. package/dist/src/events/actions/Promotion/PromotionAddedEvent.js.map +1 -1
  569. package/dist/src/events/actions/Promotion/PromotionClickedEvent.d.ts +1 -1
  570. package/dist/src/events/actions/Promotion/PromotionClickedEvent.js.map +1 -1
  571. package/dist/src/events/actions/Promotion/PromotionRemovedEvent.d.ts +1 -1
  572. package/dist/src/events/actions/Promotion/PromotionRemovedEvent.js.map +1 -1
  573. package/dist/src/events/actions/RemoveFromCartEvent.d.ts +2 -2
  574. package/dist/src/events/actions/RemoveFromCartEvent.js +1 -1
  575. package/dist/src/events/actions/RemoveFromCartEvent.js.map +1 -1
  576. package/dist/src/events/actions/RoomListSearchEvent.d.ts +2 -2
  577. package/dist/src/events/actions/RoomListSearchEvent.js.map +1 -1
  578. package/dist/src/events/index.d.ts +13 -13
  579. package/dist/src/events/index.js +13 -13
  580. package/dist/src/events/index.js.map +1 -1
  581. package/dist/src/events/views/FindReservationResultsViewEvent.d.ts +1 -1
  582. package/dist/src/events/views/FindReservationResultsViewEvent.js.map +1 -1
  583. package/dist/src/events/views/StepCheckoutViewEvent.d.ts +2 -2
  584. package/dist/src/events/views/StepCheckoutViewEvent.js +1 -1
  585. package/dist/src/events/views/StepCheckoutViewEvent.js.map +1 -1
  586. package/dist/src/events/views/StepThanksViewEvent.d.ts +1 -1
  587. package/dist/src/events/views/StepThanksViewEvent.js.map +1 -1
  588. package/dist/src/hooks/AutoFocusOnSelect.d.ts +2 -0
  589. package/dist/src/hooks/AutoFocusOnSelect.js +1 -0
  590. package/dist/src/hooks/AutoFocusOnSelect.js.map +1 -1
  591. package/dist/src/hooks/ConfirmationQuery.js +2 -2
  592. package/dist/src/hooks/ConfirmationQuery.js.map +1 -1
  593. package/dist/src/hooks/ElementSortHook.js +24 -1
  594. package/dist/src/hooks/ElementSortHook.js.map +1 -1
  595. package/dist/src/hooks/EventHook.d.ts +2 -2
  596. package/dist/src/hooks/EventHook.js +4 -1
  597. package/dist/src/hooks/EventHook.js.map +1 -1
  598. package/dist/src/hooks/KeyboardControlOnSelect.d.ts +14 -8
  599. package/dist/src/hooks/KeyboardControlOnSelect.js +45 -37
  600. package/dist/src/hooks/KeyboardControlOnSelect.js.map +1 -1
  601. package/dist/src/hooks/Query.d.ts +1 -1
  602. package/dist/src/hooks/Query.js +29 -6
  603. package/dist/src/hooks/Query.js.map +1 -1
  604. package/dist/src/hooks/VGSHooks.d.ts +1 -1
  605. package/dist/src/hooks/VGSHooks.js +6 -3
  606. package/dist/src/hooks/VGSHooks.js.map +1 -1
  607. package/dist/src/hooks/WindowSize.d.ts +9 -3
  608. package/dist/src/hooks/WindowSize.js +13 -2
  609. package/dist/src/hooks/WindowSize.js.map +1 -1
  610. package/dist/src/hooks/index.d.ts +6 -6
  611. package/dist/src/hooks/index.js +6 -6
  612. package/dist/src/hooks/index.js.map +1 -1
  613. package/dist/src/icons/Check.js +25 -2
  614. package/dist/src/icons/Check.js.map +1 -1
  615. package/dist/src/index.d.ts +65 -64
  616. package/dist/src/index.js +124 -108
  617. package/dist/src/index.js.map +1 -1
  618. package/dist/src/mockApi/AddonAPI.d.ts +2 -2
  619. package/dist/src/mockApi/AddonAPI.js +6 -3
  620. package/dist/src/mockApi/AddonAPI.js.map +1 -1
  621. package/dist/src/mockApi/BookingAPI.d.ts +1 -1
  622. package/dist/src/mockApi/BookingAPI.js +9 -6
  623. package/dist/src/mockApi/BookingAPI.js.map +1 -1
  624. package/dist/src/mockApi/ExchangeRateAPI.d.ts +1 -1
  625. package/dist/src/mockApi/ExchangeRateAPI.js +4 -1
  626. package/dist/src/mockApi/ExchangeRateAPI.js.map +1 -1
  627. package/dist/src/mockApi/HotelAPI.d.ts +2 -2
  628. package/dist/src/mockApi/HotelAPI.js +4 -1
  629. package/dist/src/mockApi/HotelAPI.js.map +1 -1
  630. package/dist/src/mockApi/MemberAPI.js +24 -1
  631. package/dist/src/mockApi/MemberAPI.js.map +1 -1
  632. package/dist/src/mockApi/MockAPI.d.ts +1 -1
  633. package/dist/src/mockApi/MockAPI.js +6 -3
  634. package/dist/src/mockApi/MockAPI.js.map +1 -1
  635. package/dist/src/mockApi/ReservationAPI.d.ts +5 -5
  636. package/dist/src/mockApi/ReservationAPI.js +24 -1
  637. package/dist/src/mockApi/ReservationAPI.js.map +1 -1
  638. package/dist/src/models/Addon/Addon.d.ts +1 -1
  639. package/dist/src/models/Addon/Addon.js +7 -4
  640. package/dist/src/models/Addon/Addon.js.map +1 -1
  641. package/dist/src/models/Api/HotelDTO.d.ts +6 -6
  642. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  643. package/dist/src/models/Api/HotelOverrideDTO.d.ts +1 -1
  644. package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
  645. package/dist/src/models/Api/ReservationsDTO.d.ts +1 -1
  646. package/dist/src/models/Api/ReservationsDTO.js.map +1 -1
  647. package/dist/src/models/Api/RoomNightDTO.d.ts +1 -1
  648. package/dist/src/models/Api/RoomNightDTO.js.map +1 -1
  649. package/dist/src/models/BasketAddonRow.d.ts +1 -1
  650. package/dist/src/models/BasketAddonRow.js +1 -1
  651. package/dist/src/models/BasketAddonRow.js.map +1 -1
  652. package/dist/src/models/BasketRow.d.ts +6 -6
  653. package/dist/src/models/BasketRow.js +1 -1
  654. package/dist/src/models/BasketRow.js.map +1 -1
  655. package/dist/src/models/BookingWizard/BookingWizardProperty.d.ts +6 -0
  656. package/dist/src/models/BookingWizard/BookingWizardProperty.js +3 -0
  657. package/dist/src/models/BookingWizard/BookingWizardProperty.js.map +1 -0
  658. package/dist/src/models/BookingWizard/BookingWizardTypes.d.ts +4 -0
  659. package/dist/src/models/BookingWizard/BookingWizardTypes.js +3 -0
  660. package/dist/src/models/BookingWizard/BookingWizardTypes.js.map +1 -0
  661. package/dist/src/models/Client/Hotel/Company.d.ts +2 -2
  662. package/dist/src/models/Client/Hotel/Company.js.map +1 -1
  663. package/dist/src/models/Client/Hotel/Hotel.d.ts +12 -12
  664. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  665. package/dist/src/models/Client/Hotel/HotelPerk.d.ts +1 -1
  666. package/dist/src/models/Client/Hotel/HotelPerk.js.map +1 -1
  667. package/dist/src/models/Promotion/IPromotion.type.d.ts +1 -1
  668. package/dist/src/models/Promotion/IPromotion.type.js.map +1 -1
  669. package/dist/src/models/Reservation/Reservation.d.ts +1 -1
  670. package/dist/src/models/Reservation/Reservation.js.map +1 -1
  671. package/dist/src/models/Room/Filters/BudgetFilter.d.ts +2 -2
  672. package/dist/src/models/Room/Filters/BudgetFilter.js +4 -1
  673. package/dist/src/models/Room/Filters/BudgetFilter.js.map +1 -1
  674. package/dist/src/models/Room/Filters/Filter.d.ts +1 -1
  675. package/dist/src/models/Room/Filters/Filter.js.map +1 -1
  676. package/dist/src/models/Room/Filters/RateTypeFilter.d.ts +2 -2
  677. package/dist/src/models/Room/Filters/RateTypeFilter.js +4 -1
  678. package/dist/src/models/Room/Filters/RateTypeFilter.js.map +1 -1
  679. package/dist/src/models/Room/Filters/RoomTypeFilter.d.ts +2 -2
  680. package/dist/src/models/Room/Filters/RoomTypeFilter.js +4 -1
  681. package/dist/src/models/Room/Filters/RoomTypeFilter.js.map +1 -1
  682. package/dist/src/models/Room/Room.d.ts +3 -3
  683. package/dist/src/models/Room/Room.js +1 -1
  684. package/dist/src/models/Room/Room.js.map +1 -1
  685. package/dist/src/models/Room/RoomRate.d.ts +4 -4
  686. package/dist/src/models/Room/RoomRate.js +6 -3
  687. package/dist/src/models/Room/RoomRate.js.map +1 -1
  688. package/dist/src/models/Room/RoomRateNight.d.ts +2 -2
  689. package/dist/src/models/Room/RoomRateNight.js +6 -3
  690. package/dist/src/models/Room/RoomRateNight.js.map +1 -1
  691. package/dist/src/models/RoomstaySession.d.ts +4 -4
  692. package/dist/src/models/RoomstaySession.js.map +1 -1
  693. package/dist/src/pages/account/AccountHome/AccountHomePage.js +38 -12
  694. package/dist/src/pages/account/AccountHome/AccountHomePage.js.map +1 -1
  695. package/dist/src/pages/account/AccountOutlet.js +24 -1
  696. package/dist/src/pages/account/AccountOutlet.js.map +1 -1
  697. package/dist/src/pages/account/AccountRouter.js +33 -10
  698. package/dist/src/pages/account/AccountRouter.js.map +1 -1
  699. package/dist/src/pages/account/Details/AccountDetailsCardsPage.js +38 -12
  700. package/dist/src/pages/account/Details/AccountDetailsCardsPage.js.map +1 -1
  701. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.d.ts +1 -1
  702. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js +33 -7
  703. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js.map +1 -1
  704. package/dist/src/pages/account/Details/AccountDetailsProfilePage.js +36 -10
  705. package/dist/src/pages/account/Details/AccountDetailsProfilePage.js.map +1 -1
  706. package/dist/src/pages/account/Help/AccountHelpPage.js +38 -12
  707. package/dist/src/pages/account/Help/AccountHelpPage.js.map +1 -1
  708. package/dist/src/pages/account/Reservations/AccountReservationCancelledPage.js +43 -17
  709. package/dist/src/pages/account/Reservations/AccountReservationCancelledPage.js.map +1 -1
  710. package/dist/src/pages/account/Reservations/AccountReservationMultiplePage.js +43 -17
  711. package/dist/src/pages/account/Reservations/AccountReservationMultiplePage.js.map +1 -1
  712. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +44 -18
  713. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
  714. package/dist/src/pages/account/Reservations/AccountReservationsPage.js +34 -8
  715. package/dist/src/pages/account/Reservations/AccountReservationsPage.js.map +1 -1
  716. package/dist/src/pages/findReservation/FindReservation.js +46 -20
  717. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  718. package/dist/src/pages/findReservation/FindReservationResults.js +44 -18
  719. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  720. package/dist/src/pages/findReservation/ReservationRow.d.ts +1 -1
  721. package/dist/src/pages/findReservation/ReservationRow.js +41 -15
  722. package/dist/src/pages/findReservation/ReservationRow.js.map +1 -1
  723. package/dist/src/pages/findReservation/ReservationRowModal.d.ts +1 -1
  724. package/dist/src/pages/findReservation/ReservationRowModal.js +40 -14
  725. package/dist/src/pages/findReservation/ReservationRowModal.js.map +1 -1
  726. package/dist/src/pages/hotel/HotelInfo.js +37 -11
  727. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  728. package/dist/src/pages/hotel/HotelInfoPlaceholder.js +28 -2
  729. package/dist/src/pages/hotel/HotelInfoPlaceholder.js.map +1 -1
  730. package/dist/src/pages/steps/Step.d.ts +4 -4
  731. package/dist/src/pages/steps/Step.js.map +1 -1
  732. package/dist/src/pages/steps/StepAddon/StepAddon.d.ts +5 -5
  733. package/dist/src/pages/steps/StepAddon/StepAddon.js +6 -3
  734. package/dist/src/pages/steps/StepAddon/StepAddon.js.map +1 -1
  735. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +36 -10
  736. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
  737. package/dist/src/pages/steps/StepAddon/StepAddonLoader.js +29 -3
  738. package/dist/src/pages/steps/StepAddon/StepAddonLoader.js.map +1 -1
  739. package/dist/src/pages/steps/StepAddon/StepAddonValidator.d.ts +1 -1
  740. package/dist/src/pages/steps/StepAddon/StepAddonValidator.js +4 -1
  741. package/dist/src/pages/steps/StepAddon/StepAddonValidator.js.map +1 -1
  742. package/dist/src/pages/steps/StepConfirmation/StepConfirmation.d.ts +6 -6
  743. package/dist/src/pages/steps/StepConfirmation/StepConfirmation.js +6 -3
  744. package/dist/src/pages/steps/StepConfirmation/StepConfirmation.js.map +1 -1
  745. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +43 -17
  746. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
  747. package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js +29 -3
  748. package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js.map +1 -1
  749. package/dist/src/pages/steps/StepConfirmation/StepConfirmationValidator.d.ts +1 -1
  750. package/dist/src/pages/steps/StepConfirmation/StepConfirmationValidator.js +4 -1
  751. package/dist/src/pages/steps/StepConfirmation/StepConfirmationValidator.js.map +1 -1
  752. package/dist/src/pages/steps/StepDate/StepDate.js +6 -3
  753. package/dist/src/pages/steps/StepDate/StepDate.js.map +1 -1
  754. package/dist/src/pages/steps/StepDate/StepDateComponent.js +40 -14
  755. package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
  756. package/dist/src/pages/steps/StepDate/StepDateValidator.d.ts +1 -1
  757. package/dist/src/pages/steps/StepDate/StepDateValidator.js +4 -1
  758. package/dist/src/pages/steps/StepDate/StepDateValidator.js.map +1 -1
  759. package/dist/src/pages/steps/StepGuide.d.ts +1 -1
  760. package/dist/src/pages/steps/StepGuide.js +29 -3
  761. package/dist/src/pages/steps/StepGuide.js.map +1 -1
  762. package/dist/src/pages/steps/StepHotel/StepHotel.d.ts +4 -4
  763. package/dist/src/pages/steps/StepHotel/StepHotel.js +6 -3
  764. package/dist/src/pages/steps/StepHotel/StepHotel.js.map +1 -1
  765. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +41 -15
  766. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
  767. package/dist/src/pages/steps/StepHotel/StepHotelLoader.js +31 -5
  768. package/dist/src/pages/steps/StepHotel/StepHotelLoader.js.map +1 -1
  769. package/dist/src/pages/steps/StepHotel/StepHotelValidator.d.ts +1 -1
  770. package/dist/src/pages/steps/StepHotel/StepHotelValidator.js +4 -1
  771. package/dist/src/pages/steps/StepHotel/StepHotelValidator.js.map +1 -1
  772. package/dist/src/pages/steps/StepRoom/StepRoom.d.ts +6 -6
  773. package/dist/src/pages/steps/StepRoom/StepRoom.js +6 -3
  774. package/dist/src/pages/steps/StepRoom/StepRoom.js.map +1 -1
  775. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js +43 -17
  776. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js.map +1 -1
  777. package/dist/src/pages/steps/StepRoom/StepRoomLoader.js +29 -3
  778. package/dist/src/pages/steps/StepRoom/StepRoomLoader.js.map +1 -1
  779. package/dist/src/pages/steps/StepRoom/StepRoomValidator.d.ts +1 -1
  780. package/dist/src/pages/steps/StepRoom/StepRoomValidator.js +4 -1
  781. package/dist/src/pages/steps/StepRoom/StepRoomValidator.js.map +1 -1
  782. package/dist/src/pages/steps/StepThanks/StepThanks.d.ts +6 -6
  783. package/dist/src/pages/steps/StepThanks/StepThanks.js +7 -4
  784. package/dist/src/pages/steps/StepThanks/StepThanks.js.map +1 -1
  785. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +43 -17
  786. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
  787. package/dist/src/pages/steps/StepThanks/StepThanksValidator.d.ts +1 -1
  788. package/dist/src/pages/steps/StepThanks/StepThanksValidator.js +4 -1
  789. package/dist/src/pages/steps/StepThanks/StepThanksValidator.js.map +1 -1
  790. package/dist/src/providers/CurrencyProvider.js +6 -3
  791. package/dist/src/providers/CurrencyProvider.js.map +1 -1
  792. package/dist/src/providers/DIProvider.js +24 -1
  793. package/dist/src/providers/DIProvider.js.map +1 -1
  794. package/dist/src/providers/DistanceProvider.d.ts +1 -1
  795. package/dist/src/providers/DistanceProvider.js +1 -1
  796. package/dist/src/providers/DistanceProvider.js.map +1 -1
  797. package/dist/src/providers/FeatureProvider.d.ts +2 -2
  798. package/dist/src/providers/FeatureProvider.js +12 -9
  799. package/dist/src/providers/FeatureProvider.js.map +1 -1
  800. package/dist/src/providers/FilterProvider.d.ts +3 -3
  801. package/dist/src/providers/FilterProvider.js +4 -1
  802. package/dist/src/providers/FilterProvider.js.map +1 -1
  803. package/dist/src/providers/LanguageProvider.js +6 -3
  804. package/dist/src/providers/LanguageProvider.js.map +1 -1
  805. package/dist/src/providers/PromotionProvider.d.ts +2 -2
  806. package/dist/src/providers/PromotionProvider.js +12 -9
  807. package/dist/src/providers/PromotionProvider.js.map +1 -1
  808. package/dist/src/providers/RatePillProvider.d.ts +5 -5
  809. package/dist/src/providers/RatePillProvider.js.map +1 -1
  810. package/dist/src/providers/RoomSortProvider.d.ts +1 -1
  811. package/dist/src/providers/RoomSortProvider.js.map +1 -1
  812. package/dist/src/providers/RoomstayThemeEngine.d.ts +3 -3
  813. package/dist/src/providers/RoomstayThemeEngine.js +36 -10
  814. package/dist/src/providers/RoomstayThemeEngine.js.map +1 -1
  815. package/dist/src/providers/SessionProvider.d.ts +1 -1
  816. package/dist/src/providers/SessionProvider.js +13 -10
  817. package/dist/src/providers/SessionProvider.js.map +1 -1
  818. package/dist/src/providers/feature/ConfirmationVerifyFeature.d.ts +1 -1
  819. package/dist/src/providers/feature/ConfirmationVerifyFeature.js +1 -1
  820. package/dist/src/providers/feature/ConfirmationVerifyFeature.js.map +1 -1
  821. package/dist/src/providers/feature/DatePickerTypeFeature.d.ts +1 -1
  822. package/dist/src/providers/feature/DatePickerTypeFeature.js +2 -2
  823. package/dist/src/providers/feature/DatePickerTypeFeature.js.map +1 -1
  824. package/dist/src/providers/feature/E164PhoneNumberFieldFeature.d.ts +1 -1
  825. package/dist/src/providers/feature/E164PhoneNumberFieldFeature.js +1 -1
  826. package/dist/src/providers/feature/E164PhoneNumberFieldFeature.js.map +1 -1
  827. package/dist/src/providers/feature/FeaturedPromoFeature.d.ts +1 -1
  828. package/dist/src/providers/feature/FeaturedPromoFeature.js +2 -2
  829. package/dist/src/providers/feature/FeaturedPromoFeature.js.map +1 -1
  830. package/dist/src/providers/feature/InlineAddonStepFeature.d.ts +1 -1
  831. package/dist/src/providers/feature/InlineAddonStepFeature.js +6 -3
  832. package/dist/src/providers/feature/InlineAddonStepFeature.js.map +1 -1
  833. package/dist/src/providers/feature/MemberPortalFeature.d.ts +1 -1
  834. package/dist/src/providers/feature/MemberPortalFeature.js +1 -1
  835. package/dist/src/providers/feature/MemberPortalFeature.js.map +1 -1
  836. package/dist/src/providers/feature/RoomUpsellFeature.d.ts +1 -1
  837. package/dist/src/providers/feature/RoomUpsellFeature.js +1 -1
  838. package/dist/src/providers/feature/RoomUpsellFeature.js.map +1 -1
  839. package/dist/src/providers/feature/ShowIATANumberOnCheckoutFeature.d.ts +1 -1
  840. package/dist/src/providers/feature/ShowIATANumberOnCheckoutFeature.js +1 -1
  841. package/dist/src/providers/feature/ShowIATANumberOnCheckoutFeature.js.map +1 -1
  842. package/dist/src/providers/storage/LocalStorageProvider.d.ts +1 -1
  843. package/dist/src/providers/storage/LocalStorageProvider.js +25 -2
  844. package/dist/src/providers/storage/LocalStorageProvider.js.map +1 -1
  845. package/dist/src/reducers/BasketReducer.d.ts +2 -2
  846. package/dist/src/reducers/BasketReducer.js +8 -5
  847. package/dist/src/reducers/BasketReducer.js.map +1 -1
  848. package/dist/src/routes/NaturallyProgressedStepRoute.d.ts +1 -1
  849. package/dist/src/routes/NaturallyProgressedStepRoute.js +33 -7
  850. package/dist/src/routes/NaturallyProgressedStepRoute.js.map +1 -1
  851. package/dist/src/stories/Alert.stories.d.ts +5 -0
  852. package/dist/src/stories/Alert.stories.js +42 -0
  853. package/dist/src/stories/Alert.stories.js.map +1 -0
  854. package/dist/src/stories/{Button.stories.d.ts → BEButton.stories.d.ts} +1 -1
  855. package/dist/src/stories/BEButton.stories.js +43 -0
  856. package/dist/src/stories/BEButton.stories.js.map +1 -0
  857. package/dist/src/stories/BackButton.stories.d.ts +5 -0
  858. package/dist/src/stories/BackButton.stories.js +40 -0
  859. package/dist/src/stories/BackButton.stories.js.map +1 -0
  860. package/dist/src/stories/BookNowPayLaterInfoBlock.stories.d.ts +5 -0
  861. package/dist/src/stories/BookNowPayLaterInfoBlock.stories.js +37 -0
  862. package/dist/src/stories/BookNowPayLaterInfoBlock.stories.js.map +1 -0
  863. package/dist/src/stories/BookingWizard.stories.d.ts +9 -0
  864. package/dist/src/stories/BookingWizard.stories.js +58 -0
  865. package/dist/src/stories/BookingWizard.stories.js.map +1 -0
  866. package/dist/src/stories/Card.stories.d.ts +3 -3
  867. package/dist/src/stories/Card.stories.js +5 -2
  868. package/dist/src/stories/Card.stories.js.map +1 -1
  869. package/dist/src/stories/CardTypeSelect.stories.d.ts +5 -0
  870. package/dist/src/stories/CardTypeSelect.stories.js +37 -0
  871. package/dist/src/stories/CardTypeSelect.stories.js.map +1 -0
  872. package/dist/src/stories/Checkbox.stories.js +28 -2
  873. package/dist/src/stories/Checkbox.stories.js.map +1 -1
  874. package/dist/src/stories/ConfirmationModal.stories.d.ts +5 -0
  875. package/dist/src/stories/ConfirmationModal.stories.js +45 -0
  876. package/dist/src/stories/ConfirmationModal.stories.js.map +1 -0
  877. package/dist/src/stories/Countdown.stories.d.ts +5 -0
  878. package/dist/src/stories/Countdown.stories.js +43 -0
  879. package/dist/src/stories/Countdown.stories.js.map +1 -0
  880. package/dist/src/stories/Currency.stories.d.ts +5 -0
  881. package/dist/src/stories/Currency.stories.js +42 -0
  882. package/dist/src/stories/Currency.stories.js.map +1 -0
  883. package/dist/src/stories/DateRangePicker.stories.d.ts +8 -0
  884. package/dist/src/stories/DateRangePicker.stories.js +80 -0
  885. package/dist/src/stories/DateRangePicker.stories.js.map +1 -0
  886. package/dist/src/stories/Distance.stories.d.ts +5 -0
  887. package/dist/src/stories/Distance.stories.js +42 -0
  888. package/dist/src/stories/Distance.stories.js.map +1 -0
  889. package/dist/src/stories/EnhancedPhoneNumberField.stories.js +28 -2
  890. package/dist/src/stories/EnhancedPhoneNumberField.stories.js.map +1 -1
  891. package/dist/src/stories/ErrorModal.stories.d.ts +5 -0
  892. package/dist/src/stories/ErrorModal.stories.js +46 -0
  893. package/dist/src/stories/ErrorModal.stories.js.map +1 -0
  894. package/dist/src/stories/FloatingDateRangePicker.stories.d.ts +6 -0
  895. package/dist/src/stories/FloatingDateRangePicker.stories.js +75 -0
  896. package/dist/src/stories/FloatingDateRangePicker.stories.js.map +1 -0
  897. package/dist/src/stories/ForwardedSelect.stories.d.ts +5 -0
  898. package/dist/src/stories/ForwardedSelect.stories.js +51 -0
  899. package/dist/src/stories/ForwardedSelect.stories.js.map +1 -0
  900. package/dist/src/stories/Headline.stories.d.ts +5 -0
  901. package/dist/src/stories/Headline.stories.js +42 -0
  902. package/dist/src/stories/Headline.stories.js.map +1 -0
  903. package/dist/src/stories/Icon.stories.js +25 -2
  904. package/dist/src/stories/Icon.stories.js.map +1 -1
  905. package/dist/src/stories/IconNavCard.stories.js +24 -1
  906. package/dist/src/stories/IconNavCard.stories.js.map +1 -1
  907. package/dist/src/stories/IconText.stories.js +28 -2
  908. package/dist/src/stories/IconText.stories.js.map +1 -1
  909. package/dist/src/stories/ImageLoader.stories.js +28 -2
  910. package/dist/src/stories/ImageLoader.stories.js.map +1 -1
  911. package/dist/src/stories/InputGroup.stories.js +28 -2
  912. package/dist/src/stories/InputGroup.stories.js.map +1 -1
  913. package/dist/src/stories/LargeLoader.stories.js +28 -2
  914. package/dist/src/stories/LargeLoader.stories.js.map +1 -1
  915. package/dist/src/stories/LineBreak.stories.d.ts +5 -0
  916. package/dist/src/stories/LineBreak.stories.js +40 -0
  917. package/dist/src/stories/LineBreak.stories.js.map +1 -0
  918. package/dist/src/stories/Notification.stories.d.ts +5 -0
  919. package/dist/src/stories/Notification.stories.js +46 -0
  920. package/dist/src/stories/Notification.stories.js.map +1 -0
  921. package/dist/src/stories/NumberIncrement.stories.d.ts +5 -0
  922. package/dist/src/stories/NumberIncrement.stories.js +46 -0
  923. package/dist/src/stories/NumberIncrement.stories.js.map +1 -0
  924. package/dist/src/stories/PasswordBox.stories.js +24 -1
  925. package/dist/src/stories/PasswordBox.stories.js.map +1 -1
  926. package/dist/src/stories/PaymentCard.stories.d.ts +4 -0
  927. package/dist/src/stories/PaymentCard.stories.js +47 -0
  928. package/dist/src/stories/PaymentCard.stories.js.map +1 -0
  929. package/dist/src/stories/PaymentCardInput.stories.d.ts +6 -0
  930. package/dist/src/stories/PaymentCardInput.stories.js +51 -0
  931. package/dist/src/stories/PaymentCardInput.stories.js.map +1 -0
  932. package/dist/src/stories/Pill.stories.d.ts +5 -0
  933. package/dist/src/stories/Pill.stories.js +42 -0
  934. package/dist/src/stories/Pill.stories.js.map +1 -0
  935. package/dist/src/stories/Placeholder.stories.d.ts +5 -0
  936. package/dist/src/stories/Placeholder.stories.js +45 -0
  937. package/dist/src/stories/Placeholder.stories.js.map +1 -0
  938. package/dist/src/stories/PlanpayButton.stories.d.ts +5 -0
  939. package/dist/src/stories/PlanpayButton.stories.js +39 -0
  940. package/dist/src/stories/PlanpayButton.stories.js.map +1 -0
  941. package/dist/src/stories/PromoCodeInput.stories.d.ts +5 -0
  942. package/dist/src/stories/PromoCodeInput.stories.js +40 -0
  943. package/dist/src/stories/PromoCodeInput.stories.js.map +1 -0
  944. package/dist/src/stories/RadioButton.stories.d.ts +6 -0
  945. package/dist/src/stories/RadioButton.stories.js +47 -0
  946. package/dist/src/stories/RadioButton.stories.js.map +1 -0
  947. package/dist/src/stories/RadioButtonGroup.stories.d.ts +5 -0
  948. package/dist/src/stories/RadioButtonGroup.stories.js +55 -0
  949. package/dist/src/stories/RadioButtonGroup.stories.js.map +1 -0
  950. package/dist/src/stories/RadioFields.stories.d.ts +5 -0
  951. package/dist/src/stories/RadioFields.stories.js +54 -0
  952. package/dist/src/stories/RadioFields.stories.js.map +1 -0
  953. package/dist/src/stories/SSLSecureBadge.stories.js +5 -2
  954. package/dist/src/stories/SSLSecureBadge.stories.js.map +1 -1
  955. package/dist/src/stories/Select.stories.d.ts +25 -0
  956. package/dist/src/stories/Select.stories.js +96 -0
  957. package/dist/src/stories/Select.stories.js.map +1 -0
  958. package/dist/src/stories/SimpleModal.stories.d.ts +5 -0
  959. package/dist/src/stories/SimpleModal.stories.js +52 -0
  960. package/dist/src/stories/SimpleModal.stories.js.map +1 -0
  961. package/dist/src/stories/Slider.stories.d.ts +10 -0
  962. package/dist/src/stories/Slider.stories.js +53 -0
  963. package/dist/src/stories/Slider.stories.js.map +1 -0
  964. package/dist/src/stories/SmallSpinner.stories.js +28 -2
  965. package/dist/src/stories/SmallSpinner.stories.js.map +1 -1
  966. package/dist/src/stories/TabbedModal.stories.d.ts +5 -0
  967. package/dist/src/stories/TabbedModal.stories.js +61 -0
  968. package/dist/src/stories/TabbedModal.stories.js.map +1 -0
  969. package/dist/src/stories/Tabs.stories.d.ts +5 -0
  970. package/dist/src/stories/Tabs.stories.js +52 -0
  971. package/dist/src/stories/Tabs.stories.js.map +1 -0
  972. package/dist/src/stories/Text.stories.d.ts +5 -0
  973. package/dist/src/stories/Text.stories.js +42 -0
  974. package/dist/src/stories/Text.stories.js.map +1 -0
  975. package/dist/src/stories/TextArea.stories.d.ts +5 -0
  976. package/dist/src/stories/TextArea.stories.js +40 -0
  977. package/dist/src/stories/TextArea.stories.js.map +1 -0
  978. package/dist/src/stories/TextBox.stories.d.ts +5 -0
  979. package/dist/src/stories/TextBox.stories.js +40 -0
  980. package/dist/src/stories/TextBox.stories.js.map +1 -0
  981. package/dist/src/stories/Tooltip.stories.d.ts +5 -0
  982. package/dist/src/stories/Tooltip.stories.js +43 -0
  983. package/dist/src/stories/Tooltip.stories.js.map +1 -0
  984. package/dist/src/util/CalendarHelper.d.ts +2 -2
  985. package/dist/src/util/CalendarHelper.js +5 -2
  986. package/dist/src/util/CalendarHelper.js.map +1 -1
  987. package/dist/src/util/DataLayer.d.ts +6 -6
  988. package/dist/src/util/DataLayer.js +30 -4
  989. package/dist/src/util/DataLayer.js.map +1 -1
  990. package/dist/src/util/ObjectHelper.js +1 -1
  991. package/dist/src/util/ObjectHelper.js.map +1 -1
  992. package/dist/src/util/PaymentCardHelper.d.ts +1 -1
  993. package/dist/src/util/PaymentCardHelper.js +5 -2
  994. package/dist/src/util/PaymentCardHelper.js.map +1 -1
  995. package/dist/src/util/StepManager.d.ts +1 -1
  996. package/dist/src/util/StepManager.js +1 -1
  997. package/dist/src/util/StepManager.js.map +1 -1
  998. package/dist/src/util/TotalCalculator.d.ts +2 -2
  999. package/dist/src/util/TotalCalculator.js +1 -1
  1000. package/dist/src/util/TotalCalculator.js.map +1 -1
  1001. package/dist/test.bundle.js +1 -1
  1002. package/dist/tests/jest/engines/RoomstayThemeEngine.test.js +4 -1
  1003. package/dist/tests/jest/engines/RoomstayThemeEngine.test.js.map +1 -1
  1004. package/dist/tests/jest/events/EventManager.test.js +5 -2
  1005. package/dist/tests/jest/events/EventManager.test.js.map +1 -1
  1006. package/dist/tests/jest/models/RoomRate.test.js +5 -2
  1007. package/dist/tests/jest/models/RoomRate.test.js.map +1 -1
  1008. package/dist/tests/jest/providers/LanguageProvider.test.js +11 -0
  1009. package/dist/tests/jest/providers/LanguageProvider.test.js.map +1 -1
  1010. package/dist/tests/jest/providers/SessionProvider.test.js +26 -15
  1011. package/dist/tests/jest/providers/SessionProvider.test.js.map +1 -1
  1012. package/dist/tests/jest/reducers/BasketReducer.test.js +4 -1
  1013. package/dist/tests/jest/reducers/BasketReducer.test.js.map +1 -1
  1014. package/dist/tests/offline/RoomstayBestRateAlert.js +29 -3
  1015. package/dist/tests/offline/RoomstayBestRateAlert.js.map +1 -1
  1016. package/dist/tests/offline/entry/RSCompany.js +14 -2
  1017. package/dist/tests/offline/entry/RSCompany.js.map +1 -1
  1018. package/dist/tests/offline/entry/ReactWrapper.js +105 -9
  1019. package/dist/tests/offline/entry/ReactWrapper.js.map +1 -1
  1020. package/dist/tests/offline/entry/allEngines.js +32 -6
  1021. package/dist/tests/offline/entry/allEngines.js.map +1 -1
  1022. package/dist/tests/offline/entry/components/TestPicker.js +80 -37
  1023. package/dist/tests/offline/entry/components/TestPicker.js.map +1 -1
  1024. package/dist/tests/setupTests.js +3 -1
  1025. package/dist/tests/setupTests.js.map +1 -1
  1026. package/dist/vendors.bundle.js +1 -1
  1027. package/dist/vendors.bundle.js.LICENSE.txt +5 -9
  1028. package/package.json +13 -8
  1029. package/dist/218.bundle.js +0 -1
  1030. package/dist/src/components/generic/BESelect.d.ts +0 -16
  1031. package/dist/src/components/generic/BESelect.js +0 -12
  1032. package/dist/src/components/generic/BESelect.js.map +0 -1
  1033. package/dist/src/components/generic/Select.d.ts +0 -11
  1034. package/dist/src/components/generic/Select.js +0 -18
  1035. package/dist/src/components/generic/Select.js.map +0 -1
  1036. package/dist/src/stories/Button.stories.js +0 -17
  1037. package/dist/src/stories/Button.stories.js.map +0 -1
@@ -8,16 +8,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.usePromotionContainer = exports.removePromotion = exports.registerPromotion = void 0;
13
16
  const contexts_1 = require("@frontend/contexts");
14
- const dayjs = require("dayjs");
15
- const MemberOnlyFenceSignUp_1 = require("events/actions/MemberOnlyFence/MemberOnlyFenceSignUp");
16
- const PromotionAddedEvent_1 = require("events/actions/Promotion/PromotionAddedEvent");
17
- const PromotionClickedEvent_1 = require("events/actions/Promotion/PromotionClickedEvent");
18
- const PromotionRemovedEvent_1 = require("events/actions/Promotion/PromotionRemovedEvent");
19
- const RoomstayEventManager_1 = require("events/RoomstayEventManager");
20
- const EventHook_1 = require("hooks/EventHook");
17
+ const dayjs_1 = __importDefault(require("dayjs"));
18
+ const MemberOnlyFenceSignUp_1 = require("@/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp");
19
+ const PromotionAddedEvent_1 = require("@/events/actions/Promotion/PromotionAddedEvent");
20
+ const PromotionClickedEvent_1 = require("@/events/actions/Promotion/PromotionClickedEvent");
21
+ const PromotionRemovedEvent_1 = require("@/events/actions/Promotion/PromotionRemovedEvent");
22
+ const RoomstayEventManager_1 = __importDefault(require("@/events/RoomstayEventManager"));
23
+ const EventHook_1 = require("@/hooks/EventHook");
21
24
  const react_1 = require("react");
22
25
  let _loadedPromotions = [];
23
26
  let basketContextLoaded = false;
@@ -83,10 +86,10 @@ const usePromotionContainer = ({ selectedBasketRow, updateBasketRow }) => {
83
86
  };
84
87
  const { checkInDate, checkOutDate, adults, children, promoCode } = promotion.onApply(criteria);
85
88
  if (checkInDate) {
86
- selectedBasketRow.setStartDate(dayjs(checkInDate));
89
+ selectedBasketRow.setStartDate((0, dayjs_1.default)(checkInDate));
87
90
  }
88
91
  if (checkOutDate) {
89
- selectedBasketRow.setEndDate(dayjs(checkOutDate));
92
+ selectedBasketRow.setEndDate((0, dayjs_1.default)(checkOutDate));
90
93
  }
91
94
  if (adults) {
92
95
  selectedBasketRow.setAdults(adults);
@@ -1 +1 @@
1
- {"version":3,"file":"PromotionProvider.js","sourceRoot":"/","sources":["src/providers/PromotionProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { BasketContextType, CompanyContext } from '@frontend/contexts';\nimport * as dayjs from 'dayjs';\nimport { MemberOnlyFenceSignUp } from 'events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\nimport { PromotionAddEvent } from 'events/actions/Promotion/PromotionAddedEvent';\nimport { PromotionClickedEvent } from 'events/actions/Promotion/PromotionClickedEvent';\nimport { PromotionRemoveEvent } from 'events/actions/Promotion/PromotionRemovedEvent';\nimport RoomstayEventManager from 'events/RoomstayEventManager';\nimport { useEvent } from 'hooks/EventHook';\nimport BasketRow from 'models/BasketRow';\nimport { IPromotion, IPromotionTestCriteria } from 'models/Promotion/IPromotion.type';\nimport { useContext, useEffect, useState } from 'react';\n\nlet _loadedPromotions: IPromotion[] = [];\nlet basketContextLoaded = false;\n\nexport const registerPromotion = (promotion: IPromotion) => {\n if (basketContextLoaded) {\n RoomstayEventManager.raise(new PromotionAddEvent(promotion));\n } else {\n const promoIndex = getPromoIndex(promotion.name, _loadedPromotions);\n\n if (promoIndex === -1) {\n _loadedPromotions.push(promotion);\n } else {\n _loadedPromotions[promoIndex] = promotion;\n }\n }\n};\n\nexport const removePromotion = (promotion: IPromotion) => {\n if (basketContextLoaded) {\n RoomstayEventManager.raise(new PromotionRemoveEvent(promotion));\n } else {\n const promoIndex = getPromoIndex(promotion.name, _loadedPromotions);\n\n if (promoIndex !== -1) {\n _loadedPromotions.splice(promoIndex, 1);\n }\n }\n};\n\nconst getPromoIndex = (name: string, promoList: IPromotion[]) => {\n for (let i = 0; i < promoList.length; i++) {\n if (promoList[i].name === name) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Used by the Basket context to bind to state.\n */\nexport const usePromotionContainer = ({ selectedBasketRow, updateBasketRow }: { selectedBasketRow: BasketRow; updateBasketRow: BasketContextType['updateBasketRow'] }) => {\n const ccx = useContext(CompanyContext);\n\n const [bump, setBump] = useState(0);\n const [allPromotions, setAllPromotions] = useState<IPromotion[]>(_loadedPromotions ?? []);\n\n // TODO: Current implementation only supports a single promotion. In the future there will be multiple promotion locations\n const [loadedPromotion, setLoadedPromotion] = useState<IPromotion>(null);\n\n const { on } = useEvent();\n\n useEffect(() => {\n basketContextLoaded = true;\n\n const updateBasketRowContext = (promotion: IPromotion) => {\n if (!promotion) {\n // We don't care about non promo sign ups;\n return;\n }\n\n if (selectedBasketRow) {\n const criteria = {\n checkInDate: selectedBasketRow.getStartDate(),\n checkOutDate: selectedBasketRow.getEndDate(),\n adults: selectedBasketRow.getAdults(),\n children: selectedBasketRow.getChildren(),\n promoCode: selectedBasketRow.getPromoCode(),\n };\n\n const { checkInDate, checkOutDate, adults, children, promoCode } = promotion.onApply(criteria);\n\n if (checkInDate) {\n selectedBasketRow.setStartDate(dayjs(checkInDate));\n }\n\n if (checkOutDate) {\n selectedBasketRow.setEndDate(dayjs(checkOutDate));\n }\n\n if (adults) {\n selectedBasketRow.setAdults(adults);\n }\n\n if (children) {\n selectedBasketRow.setChildren(children);\n }\n\n if (promoCode) {\n selectedBasketRow.setPromoCode(promoCode);\n }\n\n updateBasketRow(selectedBasketRow);\n }\n };\n\n on(\n PromotionAddEvent,\n async (event: PromotionAddEvent) => {\n if (event?.promotion) {\n setAllPromotions((oldPromotions) => {\n const promoIndex = getPromoIndex(event.promotion.name, oldPromotions);\n\n if (promoIndex === -1) {\n return [...oldPromotions, event.promotion];\n } else {\n oldPromotions[promoIndex] = event.promotion;\n return oldPromotions;\n }\n });\n }\n },\n 'root'\n );\n\n on(\n PromotionRemoveEvent,\n async (event: PromotionRemoveEvent) => {\n if (event?.promotion) {\n setAllPromotions((oldPromotions) => {\n if (oldPromotions.length === 0) {\n return [];\n }\n\n return oldPromotions.filter((promo) => {\n if (promo.name !== event.promotion.name) {\n return promo;\n }\n return false;\n });\n });\n\n setBump((a) => a + 1);\n }\n },\n 'root'\n );\n\n on(\n PromotionClickedEvent,\n async (event: PromotionClickedEvent) => {\n const { promotion } = event;\n\n if (!promotion) {\n // We shouldn't be here, but just in case we are...\n return;\n }\n\n if (!ccx.signedInUser && promotion.requireMemberPromotion) {\n ccx.openMemberSignupModal(promotion);\n } else {\n updateBasketRowContext(promotion);\n }\n },\n 'root'\n );\n\n on(\n MemberOnlyFenceSignUp,\n async (event: MemberOnlyFenceSignUp) => {\n updateBasketRowContext(event.promotion);\n },\n 'root'\n );\n }, [ccx.signedInUser, selectedBasketRow, allPromotions, setAllPromotions, loadedPromotion, setLoadedPromotion]);\n\n useEffect(() => {\n if (selectedBasketRow) {\n const criteria = {\n checkInDate: selectedBasketRow.getStartDate(),\n checkOutDate: selectedBasketRow.getEndDate(),\n adults: selectedBasketRow.getAdults(),\n children: selectedBasketRow.getChildren(),\n promoCode: selectedBasketRow.getPromoCode(),\n };\n\n onPromotionCriteriaChanged(criteria);\n }\n }, [\n selectedBasketRow,\n selectedBasketRow?.getAdults(),\n selectedBasketRow?.getChildren(),\n selectedBasketRow?.getArrivalDate(),\n selectedBasketRow?.getEndDate(),\n selectedBasketRow?.getPromoCode(),\n allPromotions,\n bump,\n ]);\n\n useEffect(() => {\n if (!loadedPromotion) {\n return;\n }\n\n let loadedExists = false;\n for (const promotion of allPromotions) {\n if (promotion.name === loadedPromotion.name) {\n loadedExists = true;\n break;\n }\n }\n\n if (!loadedExists) {\n setLoadedPromotion(null);\n }\n }, [allPromotions, loadedPromotion]);\n\n /**\n * Checks all the registered promotions, and returns the first one that matches the criteria.\n *\n * @param criteria\n */\n const checkPromotions = async (criteria: IPromotionTestCriteria) => {\n for (const promotion of allPromotions) {\n if (await promotion.testCriteria(criteria)) {\n return promotion;\n }\n }\n\n return null;\n };\n\n const onPromotionCriteriaChanged = (criteria: IPromotionTestCriteria) => {\n checkPromotions(criteria)\n .then((promo) => {\n setLoadedPromotion(promo);\n })\n .catch(() => {\n setLoadedPromotion(null);\n });\n };\n\n return {\n loadedPromotion,\n };\n};\n"]}
1
+ {"version":3,"file":"PromotionProvider.js","sourceRoot":"/","sources":["src/providers/PromotionProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { BasketContextType, CompanyContext } from '@frontend/contexts';\nimport dayjs from 'dayjs';\nimport { MemberOnlyFenceSignUp } from '@/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\nimport { PromotionAddEvent } from '@/events/actions/Promotion/PromotionAddedEvent';\nimport { PromotionClickedEvent } from '@/events/actions/Promotion/PromotionClickedEvent';\nimport { PromotionRemoveEvent } from '@/events/actions/Promotion/PromotionRemovedEvent';\nimport RoomstayEventManager from '@/events/RoomstayEventManager';\nimport { useEvent } from '@/hooks/EventHook';\nimport BasketRow from '@/models/BasketRow';\nimport { IPromotion, IPromotionTestCriteria } from '@/models/Promotion/IPromotion.type';\nimport { useContext, useEffect, useState } from 'react';\n\nlet _loadedPromotions: IPromotion[] = [];\nlet basketContextLoaded = false;\n\nexport const registerPromotion = (promotion: IPromotion) => {\n if (basketContextLoaded) {\n RoomstayEventManager.raise(new PromotionAddEvent(promotion));\n } else {\n const promoIndex = getPromoIndex(promotion.name, _loadedPromotions);\n\n if (promoIndex === -1) {\n _loadedPromotions.push(promotion);\n } else {\n _loadedPromotions[promoIndex] = promotion;\n }\n }\n};\n\nexport const removePromotion = (promotion: IPromotion) => {\n if (basketContextLoaded) {\n RoomstayEventManager.raise(new PromotionRemoveEvent(promotion));\n } else {\n const promoIndex = getPromoIndex(promotion.name, _loadedPromotions);\n\n if (promoIndex !== -1) {\n _loadedPromotions.splice(promoIndex, 1);\n }\n }\n};\n\nconst getPromoIndex = (name: string, promoList: IPromotion[]) => {\n for (let i = 0; i < promoList.length; i++) {\n if (promoList[i].name === name) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Used by the Basket context to bind to state.\n */\nexport const usePromotionContainer = ({ selectedBasketRow, updateBasketRow }: { selectedBasketRow: BasketRow; updateBasketRow: BasketContextType['updateBasketRow'] }) => {\n const ccx = useContext(CompanyContext);\n\n const [bump, setBump] = useState(0);\n const [allPromotions, setAllPromotions] = useState<IPromotion[]>(_loadedPromotions ?? []);\n\n // TODO: Current implementation only supports a single promotion. In the future there will be multiple promotion locations\n const [loadedPromotion, setLoadedPromotion] = useState<IPromotion>(null);\n\n const { on } = useEvent();\n\n useEffect(() => {\n basketContextLoaded = true;\n\n const updateBasketRowContext = (promotion: IPromotion) => {\n if (!promotion) {\n // We don't care about non promo sign ups;\n return;\n }\n\n if (selectedBasketRow) {\n const criteria = {\n checkInDate: selectedBasketRow.getStartDate(),\n checkOutDate: selectedBasketRow.getEndDate(),\n adults: selectedBasketRow.getAdults(),\n children: selectedBasketRow.getChildren(),\n promoCode: selectedBasketRow.getPromoCode(),\n };\n\n const { checkInDate, checkOutDate, adults, children, promoCode } = promotion.onApply(criteria);\n\n if (checkInDate) {\n selectedBasketRow.setStartDate(dayjs(checkInDate));\n }\n\n if (checkOutDate) {\n selectedBasketRow.setEndDate(dayjs(checkOutDate));\n }\n\n if (adults) {\n selectedBasketRow.setAdults(adults);\n }\n\n if (children) {\n selectedBasketRow.setChildren(children);\n }\n\n if (promoCode) {\n selectedBasketRow.setPromoCode(promoCode);\n }\n\n updateBasketRow(selectedBasketRow);\n }\n };\n\n on(\n PromotionAddEvent,\n async (event: PromotionAddEvent) => {\n if (event?.promotion) {\n setAllPromotions((oldPromotions) => {\n const promoIndex = getPromoIndex(event.promotion.name, oldPromotions);\n\n if (promoIndex === -1) {\n return [...oldPromotions, event.promotion];\n } else {\n oldPromotions[promoIndex] = event.promotion;\n return oldPromotions;\n }\n });\n }\n },\n 'root'\n );\n\n on(\n PromotionRemoveEvent,\n async (event: PromotionRemoveEvent) => {\n if (event?.promotion) {\n setAllPromotions((oldPromotions) => {\n if (oldPromotions.length === 0) {\n return [];\n }\n\n return oldPromotions.filter((promo) => {\n if (promo.name !== event.promotion.name) {\n return promo;\n }\n return false;\n });\n });\n\n setBump((a) => a + 1);\n }\n },\n 'root'\n );\n\n on(\n PromotionClickedEvent,\n async (event: PromotionClickedEvent) => {\n const { promotion } = event;\n\n if (!promotion) {\n // We shouldn't be here, but just in case we are...\n return;\n }\n\n if (!ccx.signedInUser && promotion.requireMemberPromotion) {\n ccx.openMemberSignupModal(promotion);\n } else {\n updateBasketRowContext(promotion);\n }\n },\n 'root'\n );\n\n on(\n MemberOnlyFenceSignUp,\n async (event: MemberOnlyFenceSignUp) => {\n updateBasketRowContext(event.promotion);\n },\n 'root'\n );\n }, [ccx.signedInUser, selectedBasketRow, allPromotions, setAllPromotions, loadedPromotion, setLoadedPromotion]);\n\n useEffect(() => {\n if (selectedBasketRow) {\n const criteria = {\n checkInDate: selectedBasketRow.getStartDate(),\n checkOutDate: selectedBasketRow.getEndDate(),\n adults: selectedBasketRow.getAdults(),\n children: selectedBasketRow.getChildren(),\n promoCode: selectedBasketRow.getPromoCode(),\n };\n\n onPromotionCriteriaChanged(criteria);\n }\n }, [\n selectedBasketRow,\n selectedBasketRow?.getAdults(),\n selectedBasketRow?.getChildren(),\n selectedBasketRow?.getArrivalDate(),\n selectedBasketRow?.getEndDate(),\n selectedBasketRow?.getPromoCode(),\n allPromotions,\n bump,\n ]);\n\n useEffect(() => {\n if (!loadedPromotion) {\n return;\n }\n\n let loadedExists = false;\n for (const promotion of allPromotions) {\n if (promotion.name === loadedPromotion.name) {\n loadedExists = true;\n break;\n }\n }\n\n if (!loadedExists) {\n setLoadedPromotion(null);\n }\n }, [allPromotions, loadedPromotion]);\n\n /**\n * Checks all the registered promotions, and returns the first one that matches the criteria.\n *\n * @param criteria\n */\n const checkPromotions = async (criteria: IPromotionTestCriteria) => {\n for (const promotion of allPromotions) {\n if (await promotion.testCriteria(criteria)) {\n return promotion;\n }\n }\n\n return null;\n };\n\n const onPromotionCriteriaChanged = (criteria: IPromotionTestCriteria) => {\n checkPromotions(criteria)\n .then((promo) => {\n setLoadedPromotion(promo);\n })\n .catch(() => {\n setLoadedPromotion(null);\n });\n };\n\n return {\n loadedPromotion,\n };\n};\n"]}
@@ -1,9 +1,9 @@
1
1
  import { ReactNode } from 'react';
2
- import { IconType } from 'components/generic/Icon/Icon';
3
- import { PillType } from 'components/generic/Pill';
4
- import { Hotel } from 'models/Client/Hotel/Hotel';
5
- import { Room } from 'models/Room/Room';
6
- import { RoomRate } from 'models/Room/RoomRate';
2
+ import { IconType } from '@/components/generic/Icon/Icon';
3
+ import { PillType } from '@/components/generic/Pill';
4
+ import { Hotel } from '@/models/Client/Hotel/Hotel';
5
+ import { Room } from '@/models/Room/Room';
6
+ import { RoomRate } from '@/models/Room/RoomRate';
7
7
  export type RatePill = {
8
8
  icon: IconType | ReactNode;
9
9
  type?: PillType;
@@ -1 +1 @@
1
- {"version":3,"file":"RatePillProvider.js","sourceRoot":"/","sources":["src/providers/RatePillProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactNode } from 'react';\nimport { IconType } from 'components/generic/Icon/Icon';\nimport { PillType } from 'components/generic/Pill';\nimport { Hotel } from 'models/Client/Hotel/Hotel';\nimport { Room } from 'models/Room/Room';\n\nimport { RoomRate } from 'models/Room/RoomRate';\n\nexport type RatePill = {\n // TODO: Add Unique Id here to avoid constantly checking\n // TODO: Add ability to specify title / tooltip in React Context (with variable data)\n icon: IconType | ReactNode;\n\n type?: PillType;\n title?: string;\n tooltipText?: string;\n\n translation?: string;\n translationProps?: {\n [x: string]: string | number;\n };\n};\n\ntype RatePillCriteriaMatch = { rate?: RoomRate; room?: Room; hotel: Hotel };\n\ntype RatePillCriteriaCallback = (criteria: RatePillCriteriaMatch) => boolean;\n\ntype RatePillLocation = 'Rate' | 'Room';\n\ntype RegisteredPillType = { pill: RatePill; criteria: RatePillCriteriaCallback; location: RatePillLocation; isExclusive: boolean };\n\nclass RatePillProvider {\n private registeredPills: RegisteredPillType[];\n\n public constructor() {\n this.registeredPills = [];\n }\n\n private doesPillExist(pill: RatePill, location: RatePillLocation): number | false {\n for (let i = 0, end = this.registeredPills.length; i < end; i++) {\n const registeredPill = this.registeredPills[i];\n if (\n registeredPill.location === location &&\n registeredPill.pill.title === pill.title &&\n registeredPill.pill.tooltipText === pill.tooltipText &&\n registeredPill.pill.translation === pill.translation\n ) {\n return i;\n }\n }\n\n return false;\n }\n\n public registerRatePill(pill: RatePill, criteria: RatePillCriteriaCallback, isExclusive = false) {\n if (this.doesPillExist(pill, 'Rate') === false) {\n this.registeredPills.push({ pill, criteria, location: 'Rate', isExclusive });\n }\n }\n\n public registerRoomPill(pill: RatePill, criteria: RatePillCriteriaCallback) {\n const pillIndex = this.doesPillExist(pill, 'Room');\n const newPill: RegisteredPillType = { pill, criteria, location: 'Room', isExclusive: true };\n\n if (pillIndex === false) {\n this.registeredPills.push(newPill);\n } else {\n this.registeredPills[pillIndex] = newPill;\n }\n }\n\n public getPillsForRate(match: RatePillCriteriaMatch): RatePill[] {\n const matches: RatePill[] = [];\n\n this.registeredPills.forEach((registeredPill) => {\n // Rates will only ever show Rate Pills\n if (registeredPill.location === 'Rate' && registeredPill.criteria(match)) {\n matches.push(registeredPill.pill);\n }\n });\n\n return matches;\n }\n\n public getPillsForRoom(match: RatePillCriteriaMatch): RatePill[] {\n const roomMatches: RatePill[] = [];\n const rateMatches: RatePill[] = [];\n\n // Rooms will show both Room and Rate pills\n this.registeredPills.forEach((registeredPill) => {\n if (registeredPill.location === 'Room') {\n if (registeredPill.criteria(match)) {\n roomMatches.push(registeredPill.pill);\n }\n }\n\n if (match.room) {\n for (const rate of match.room.getRates()) {\n if (registeredPill.location === 'Rate' && !registeredPill.isExclusive && registeredPill.criteria({ ...match, rate })) {\n rateMatches.push(registeredPill.pill);\n // No need to duplicate check because as soon as one Pill is matched, no more rates are checked.\n break;\n }\n }\n }\n });\n\n return [...roomMatches, ...rateMatches];\n }\n}\n\nexport default new RatePillProvider();\n"]}
1
+ {"version":3,"file":"RatePillProvider.js","sourceRoot":"/","sources":["src/providers/RatePillProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactNode } from 'react';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport { PillType } from '@/components/generic/Pill';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\nimport { Room } from '@/models/Room/Room';\n\nimport { RoomRate } from '@/models/Room/RoomRate';\n\nexport type RatePill = {\n // TODO: Add Unique Id here to avoid constantly checking\n // TODO: Add ability to specify title / tooltip in React Context (with variable data)\n icon: IconType | ReactNode;\n\n type?: PillType;\n title?: string;\n tooltipText?: string;\n\n translation?: string;\n translationProps?: {\n [x: string]: string | number;\n };\n};\n\ntype RatePillCriteriaMatch = { rate?: RoomRate; room?: Room; hotel: Hotel };\n\ntype RatePillCriteriaCallback = (criteria: RatePillCriteriaMatch) => boolean;\n\ntype RatePillLocation = 'Rate' | 'Room';\n\ntype RegisteredPillType = { pill: RatePill; criteria: RatePillCriteriaCallback; location: RatePillLocation; isExclusive: boolean };\n\nclass RatePillProvider {\n private registeredPills: RegisteredPillType[];\n\n public constructor() {\n this.registeredPills = [];\n }\n\n private doesPillExist(pill: RatePill, location: RatePillLocation): number | false {\n for (let i = 0, end = this.registeredPills.length; i < end; i++) {\n const registeredPill = this.registeredPills[i];\n if (\n registeredPill.location === location &&\n registeredPill.pill.title === pill.title &&\n registeredPill.pill.tooltipText === pill.tooltipText &&\n registeredPill.pill.translation === pill.translation\n ) {\n return i;\n }\n }\n\n return false;\n }\n\n public registerRatePill(pill: RatePill, criteria: RatePillCriteriaCallback, isExclusive = false) {\n if (this.doesPillExist(pill, 'Rate') === false) {\n this.registeredPills.push({ pill, criteria, location: 'Rate', isExclusive });\n }\n }\n\n public registerRoomPill(pill: RatePill, criteria: RatePillCriteriaCallback) {\n const pillIndex = this.doesPillExist(pill, 'Room');\n const newPill: RegisteredPillType = { pill, criteria, location: 'Room', isExclusive: true };\n\n if (pillIndex === false) {\n this.registeredPills.push(newPill);\n } else {\n this.registeredPills[pillIndex] = newPill;\n }\n }\n\n public getPillsForRate(match: RatePillCriteriaMatch): RatePill[] {\n const matches: RatePill[] = [];\n\n this.registeredPills.forEach((registeredPill) => {\n // Rates will only ever show Rate Pills\n if (registeredPill.location === 'Rate' && registeredPill.criteria(match)) {\n matches.push(registeredPill.pill);\n }\n });\n\n return matches;\n }\n\n public getPillsForRoom(match: RatePillCriteriaMatch): RatePill[] {\n const roomMatches: RatePill[] = [];\n const rateMatches: RatePill[] = [];\n\n // Rooms will show both Room and Rate pills\n this.registeredPills.forEach((registeredPill) => {\n if (registeredPill.location === 'Room') {\n if (registeredPill.criteria(match)) {\n roomMatches.push(registeredPill.pill);\n }\n }\n\n if (match.room) {\n for (const rate of match.room.getRates()) {\n if (registeredPill.location === 'Rate' && !registeredPill.isExclusive && registeredPill.criteria({ ...match, rate })) {\n rateMatches.push(registeredPill.pill);\n // No need to duplicate check because as soon as one Pill is matched, no more rates are checked.\n break;\n }\n }\n }\n });\n\n return [...roomMatches, ...rateMatches];\n }\n}\n\nexport default new RatePillProvider();\n"]}
@@ -1,4 +1,4 @@
1
- import RoomRateSortable from 'models/Room/RoomRateSortable';
1
+ import RoomRateSortable from '@/models/Room/RoomRateSortable';
2
2
  export declare enum RoomSort {
3
3
  PriceLow = "Lowest Price",
4
4
  PriceHigh = "Highest Price",
@@ -1 +1 @@
1
- {"version":3,"file":"RoomSortProvider.js","sourceRoot":"/","sources":["src/providers/RoomSortProvider.ts"],"names":[],"mappings":";;;AACA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,qCAAyB,CAAA;IACzB,uCAA2B,CAAA;IAC3B,uCAA2B,CAAA;AAC/B,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAED,MAAqB,gBAAgB;;AAArC,mCAgBC;AAfG,8DAA8D;AAChD,kCAAiB,GAAG,CAAC,MAAgB,EAAE,EAAE;IACnD,QAAQ,MAAM,EAAE;QACZ,KAAK,QAAQ,CAAC,SAAS;YACnB,OAAO,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/C,CAAC,CAAC;QACN,KAAK,QAAQ,CAAC,QAAQ;YAClB,OAAO,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/C,CAAC,CAAC;QACN;YACI,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;KACtB;AACL,CAAC,CAAC","sourcesContent":["import RoomRateSortable from 'models/Room/RoomRateSortable';\nexport enum RoomSort {\n PriceLow = 'Lowest Price',\n PriceHigh = 'Highest Price',\n Recommended = 'Recommended',\n}\n\nexport default class RoomSortProvider {\n // TODO refactor this to use static val instead of request one\n public static getSortByFunction = (sortBy: RoomSort) => {\n switch (sortBy) {\n case RoomSort.PriceHigh:\n return (a: RoomRateSortable, b: RoomRateSortable) => {\n return b.getSortValue() - a.getSortValue();\n };\n case RoomSort.PriceLow:\n return (a: RoomRateSortable, b: RoomRateSortable) => {\n return a.getSortValue() - b.getSortValue();\n };\n default:\n return () => 0;\n }\n };\n}\n"]}
1
+ {"version":3,"file":"RoomSortProvider.js","sourceRoot":"/","sources":["src/providers/RoomSortProvider.ts"],"names":[],"mappings":";;;AACA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,qCAAyB,CAAA;IACzB,uCAA2B,CAAA;IAC3B,uCAA2B,CAAA;AAC/B,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAED,MAAqB,gBAAgB;;AAArC,mCAgBC;AAfG,8DAA8D;AAChD,kCAAiB,GAAG,CAAC,MAAgB,EAAE,EAAE;IACnD,QAAQ,MAAM,EAAE;QACZ,KAAK,QAAQ,CAAC,SAAS;YACnB,OAAO,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/C,CAAC,CAAC;QACN,KAAK,QAAQ,CAAC,QAAQ;YAClB,OAAO,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/C,CAAC,CAAC;QACN;YACI,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;KACtB;AACL,CAAC,CAAC","sourcesContent":["import RoomRateSortable from '@/models/Room/RoomRateSortable';\nexport enum RoomSort {\n PriceLow = 'Lowest Price',\n PriceHigh = 'Highest Price',\n Recommended = 'Recommended',\n}\n\nexport default class RoomSortProvider {\n // TODO refactor this to use static val instead of request one\n public static getSortByFunction = (sortBy: RoomSort) => {\n switch (sortBy) {\n case RoomSort.PriceHigh:\n return (a: RoomRateSortable, b: RoomRateSortable) => {\n return b.getSortValue() - a.getSortValue();\n };\n case RoomSort.PriceLow:\n return (a: RoomRateSortable, b: RoomRateSortable) => {\n return a.getSortValue() - b.getSortValue();\n };\n default:\n return () => 0;\n }\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { Language } from 'providers/LanguageProvider';
2
- import type { Company } from 'models/Client/Hotel/Company';
3
- import type ColorProfile from 'models/Client/Hotel/ColorProfile';
1
+ import { Language } from '@/providers/LanguageProvider';
2
+ import type { Company } from '@/models/Client/Hotel/Company';
3
+ import type ColorProfile from '@/models/Client/Hotel/ColorProfile';
4
4
  declare global {
5
5
  interface Window {
6
6
  ResizeObserver: any;
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
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
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,21 +31,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
31
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
32
  });
10
33
  };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
11
37
  Object.defineProperty(exports, "__esModule", { value: true });
12
38
  exports.RoomstayTheme = void 0;
13
39
  // tslint:disable-next-line: no-submodule-imports
14
- const isSameOrAfter = require("dayjs/plugin/isSameOrAfter");
40
+ const isSameOrAfter_1 = __importDefault(require("dayjs/plugin/isSameOrAfter"));
15
41
  // tslint:disable-next-line: no-submodule-imports
16
- const isSameOrBefore = require("dayjs/plugin/isSameOrBefore");
17
- const dayjs = require("dayjs");
18
- const LanguageProvider_1 = require("providers/LanguageProvider");
19
- const i18next_1 = require("i18next");
42
+ const isSameOrBefore_1 = __importDefault(require("dayjs/plugin/isSameOrBefore"));
43
+ const dayjs_1 = __importDefault(require("dayjs"));
44
+ const LanguageProvider_1 = require("@/providers/LanguageProvider");
45
+ const i18next_1 = __importDefault(require("i18next"));
20
46
  const react_i18next_1 = require("react-i18next");
21
- const Sentry = require("@sentry/browser");
22
- const ROP = require("resize-observer-polyfill");
47
+ const Sentry = __importStar(require("@sentry/browser"));
48
+ const ROP = __importStar(require("@juggle/resize-observer"));
23
49
  /** @ts-ignore */
24
50
  if (typeof ResizeObserver === 'undefined') {
25
- window.ResizeObserver = ROP.default;
51
+ window.ResizeObserver = ROP.ResizeObserver;
26
52
  }
27
53
  var RoomstayTheme;
28
54
  (function (RoomstayTheme) {
@@ -134,8 +160,8 @@ class RoomstayThemeEngine {
134
160
  }
135
161
  };
136
162
  this.init = () => __awaiter(this, void 0, void 0, function* () {
137
- dayjs.extend(isSameOrBefore);
138
- dayjs.extend(isSameOrAfter);
163
+ dayjs_1.default.extend(isSameOrBefore_1.default);
164
+ dayjs_1.default.extend(isSameOrAfter_1.default);
139
165
  if (i18next_1.default) {
140
166
  i18next_1.default.use(react_i18next_1.initReactI18next).init({
141
167
  interpolation: { escapeValue: false },
@@ -1 +1 @@
1
- {"version":3,"file":"RoomstayThemeEngine.js","sourceRoot":"/","sources":["src/providers/RoomstayThemeEngine.ts"],"names":[],"mappings":"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","sourcesContent":["// tslint:disable-next-line: no-submodule-imports\nimport * as isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\n// tslint:disable-next-line: no-submodule-imports\nimport * as isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport * as dayjs from 'dayjs';\n\nimport { LanguageProvider, Language } from 'providers/LanguageProvider';\n\nimport i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport * as Sentry from '@sentry/browser';\nimport * as ROP from 'resize-observer-polyfill';\nimport type { Company } from 'models/Client/Hotel/Company';\nimport type ColorProfile from 'models/Client/Hotel/ColorProfile';\n\ndeclare global {\n interface Window {\n ResizeObserver: any;\n }\n}\n\ndeclare const ASSET_URL: string;\n\nexport declare const RS_VERSION: string;\n\n/** @ts-ignore */\nif (typeof ResizeObserver === 'undefined') {\n window.ResizeObserver = ROP.default;\n}\n\nexport enum RoomstayTheme {\n Medium = 'medium',\n Light = 'light',\n}\nclass RoomstayThemeEngine {\n public currentCompany: Company | null = null;\n\n public EngineContainer: HTMLElement;\n\n public ScriptContainer: Element = null;\n public StyleContainer: Element = null;\n\n public selectedLang: Language = Language.en_us;\n\n // TODO This needs to be changed, not ideal to just check for localhost\n public isLocalhost: boolean = location.hostname === 'localhost';\n\n // TODO: This needs to be refactored to not be a fixed string.\n public ThemeType = RoomstayTheme.Light;\n\n public ExternalStyles: string[] = [];\n public ExternalScripts: string[] = ['https://js.verygoodvault.com/vgs-collect/1/AC7dReJwJ6EWF1L9FHdcCw7n.js'];\n\n public constructor() {\n console.log(`Initializing Roomstay Booking Engine v${RS_VERSION}`);\n }\n\n private reloadScriptAndStyleContainers = () => {\n this.StyleContainer = this.createElementOrReuseExisting('div', 'style-container');\n this.ScriptContainer = this.createElementOrReuseExisting('div', 'script-container');\n\n this.ScriptContainer.innerHTML = '';\n this.StyleContainer.innerHTML = '';\n\n this.registerStyles();\n };\n\n public changeCompany = (newCompany: Company) => {\n this.currentCompany = newCompany;\n this.registerStyles(newCompany.colors);\n };\n\n public changeTheme = async (profile: ColorProfile) => {\n const styleOverrides = this.createElementOrReuseExisting('style', 'engine-styles');\n\n styleOverrides.setAttribute('rel', 'preload');\n\n let headerOverrides = '';\n if (profile.navbar) {\n headerOverrides = `\n --rs-color-header-background: ${profile.navbar.background}!important;\n --rs-color-header-text: ${profile.navbar.text}!important;\n --rs-color-header-text-active: ${profile.navbar.textActive}!important;\n `;\n }\n\n styleOverrides.innerHTML = `\n :root {\n --rs-color-accent-1: ${profile.accent}!important;\n --rs-color-accent-2: ${profile.accent2}!important;\n --rs-color-accent-3: ${profile.accent3}!important;\n\n ${headerOverrides}\n\n ${profile.success ? `--rs-color-success: ${profile.success}!important;` : ''}\n }\n `;\n };\n\n public registerStyles = async (profile?: ColorProfile) => {\n console.log('Loading custom Theme Styles');\n if (profile) {\n this.changeTheme(profile);\n }\n\n this.ExternalStyles.forEach((url, index) => {\n const style = this.createElementOrReuseExisting('link', `engine-external-style-${index}`);\n style.setAttribute('rel', 'stylesheet');\n style.setAttribute('href', this.getAssetUrl() + url);\n });\n };\n\n public getAssetUrl = () => {\n return this.isLocalhost ? '/' : ASSET_URL;\n };\n\n public getImageAssetUrl = (url = '') => {\n return this.getAssetUrl() + 'assets/img/' + url;\n };\n\n /**\n * Detects if URL is absolute, and needs to be\n * @param url string\n */\n public wrapAssetUrl = (url: string) => {\n if (url.match(/^(?:[a-z]+:)?\\/\\//)) {\n return url;\n }\n\n return this.getAssetUrl() + url;\n };\n\n public registerScripts = async () => {\n this.ExternalScripts.forEach((url: string, index) => {\n this.loadScript(url, `legacy-${index}`);\n });\n };\n\n public loadScript = (src: string, name: string): Promise<void> =>\n new Promise((resolve) => {\n const script = this.createElementOrReuseExisting('script', `script-${name}`);\n if (script.hasAttribute('src') && script.getAttribute('src') === src) {\n resolve();\n } else {\n script.setAttribute('src', src);\n script.addEventListener('load', () => {\n resolve();\n });\n }\n\n this.ScriptContainer.appendChild(script);\n });\n\n public createElementOrReuseExisting = <K extends keyof HTMLElementTagNameMap>(type: K, name: string) => {\n const container = this.EngineContainer;\n const findingElement = container.querySelector(`${type}[name=\"roomstay-${name}\"]`);\n\n if (findingElement) {\n return findingElement;\n } else {\n const target = document.createElement(type);\n target.setAttribute('name', `roomstay-${name}`);\n container.appendChild(target);\n return target;\n }\n };\n\n public init = async () => {\n dayjs.extend(isSameOrBefore);\n dayjs.extend(isSameOrAfter);\n\n if (i18n) {\n i18n.use(initReactI18next).init({\n interpolation: { escapeValue: false },\n lng: Language.en_us,\n resources: LanguageProvider.getI18nMappedLanguages(),\n });\n }\n\n if (!this.isLocalhost) {\n Sentry.init({\n dsn: 'https://3bfba949561e48f1862c843ce8254a2d@o398412.ingest.sentry.io/5254086',\n beforeSend: (event, hint) => {\n event.tags = event.tags ?? { logger: '_default_' };\n\n try {\n if (hint.originalException instanceof Error) {\n if (hint.originalException.stack.indexOf('www.googletagmanager.com/gtm.js?id=') > -1) {\n event.tags.logger = 'gtm';\n event.level = Sentry.Severity.Warning;\n }\n }\n } catch (ex) {\n console.log(ex);\n }\n\n return event;\n },\n });\n }\n\n this.reloadScriptAndStyleContainers();\n };\n}\n\nexport default new RoomstayThemeEngine();\n"]}
1
+ {"version":3,"file":"RoomstayThemeEngine.js","sourceRoot":"/","sources":["src/providers/RoomstayThemeEngine.ts"],"names":[],"mappings":"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","sourcesContent":["// tslint:disable-next-line: no-submodule-imports\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\n// tslint:disable-next-line: no-submodule-imports\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport dayjs from 'dayjs';\n\nimport { LanguageProvider, Language } from '@/providers/LanguageProvider';\n\nimport i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport * as Sentry from '@sentry/browser';\nimport * as ROP from '@juggle/resize-observer';\nimport type { Company } from '@/models/Client/Hotel/Company';\nimport type ColorProfile from '@/models/Client/Hotel/ColorProfile';\n\ndeclare global {\n interface Window {\n ResizeObserver: any;\n }\n}\n\ndeclare const ASSET_URL: string;\n\nexport declare const RS_VERSION: string;\n\n/** @ts-ignore */\nif (typeof ResizeObserver === 'undefined') {\n window.ResizeObserver = ROP.ResizeObserver;\n}\n\nexport enum RoomstayTheme {\n Medium = 'medium',\n Light = 'light',\n}\nclass RoomstayThemeEngine {\n public currentCompany: Company | null = null;\n\n public EngineContainer: HTMLElement;\n\n public ScriptContainer: Element = null;\n public StyleContainer: Element = null;\n\n public selectedLang: Language = Language.en_us;\n\n // TODO This needs to be changed, not ideal to just check for localhost\n public isLocalhost: boolean = location.hostname === 'localhost';\n\n // TODO: This needs to be refactored to not be a fixed string.\n public ThemeType = RoomstayTheme.Light;\n\n public ExternalStyles: string[] = [];\n public ExternalScripts: string[] = ['https://js.verygoodvault.com/vgs-collect/1/AC7dReJwJ6EWF1L9FHdcCw7n.js'];\n\n public constructor() {\n console.log(`Initializing Roomstay Booking Engine v${RS_VERSION}`);\n }\n\n private reloadScriptAndStyleContainers = () => {\n this.StyleContainer = this.createElementOrReuseExisting('div', 'style-container');\n this.ScriptContainer = this.createElementOrReuseExisting('div', 'script-container');\n\n this.ScriptContainer.innerHTML = '';\n this.StyleContainer.innerHTML = '';\n\n this.registerStyles();\n };\n\n public changeCompany = (newCompany: Company) => {\n this.currentCompany = newCompany;\n this.registerStyles(newCompany.colors);\n };\n\n public changeTheme = async (profile: ColorProfile) => {\n const styleOverrides = this.createElementOrReuseExisting('style', 'engine-styles');\n\n styleOverrides.setAttribute('rel', 'preload');\n\n let headerOverrides = '';\n if (profile.navbar) {\n headerOverrides = `\n --rs-color-header-background: ${profile.navbar.background}!important;\n --rs-color-header-text: ${profile.navbar.text}!important;\n --rs-color-header-text-active: ${profile.navbar.textActive}!important;\n `;\n }\n\n styleOverrides.innerHTML = `\n :root {\n --rs-color-accent-1: ${profile.accent}!important;\n --rs-color-accent-2: ${profile.accent2}!important;\n --rs-color-accent-3: ${profile.accent3}!important;\n\n ${headerOverrides}\n\n ${profile.success ? `--rs-color-success: ${profile.success}!important;` : ''}\n }\n `;\n };\n\n public registerStyles = async (profile?: ColorProfile) => {\n console.log('Loading custom Theme Styles');\n if (profile) {\n this.changeTheme(profile);\n }\n\n this.ExternalStyles.forEach((url, index) => {\n const style = this.createElementOrReuseExisting('link', `engine-external-style-${index}`);\n style.setAttribute('rel', 'stylesheet');\n style.setAttribute('href', this.getAssetUrl() + url);\n });\n };\n\n public getAssetUrl = () => {\n return this.isLocalhost ? '/' : ASSET_URL;\n };\n\n public getImageAssetUrl = (url = '') => {\n return this.getAssetUrl() + 'assets/img/' + url;\n };\n\n /**\n * Detects if URL is absolute, and needs to be\n * @param url string\n */\n public wrapAssetUrl = (url: string) => {\n if (url.match(/^(?:[a-z]+:)?\\/\\//)) {\n return url;\n }\n\n return this.getAssetUrl() + url;\n };\n\n public registerScripts = async () => {\n this.ExternalScripts.forEach((url: string, index) => {\n this.loadScript(url, `legacy-${index}`);\n });\n };\n\n public loadScript = (src: string, name: string): Promise<void> =>\n new Promise((resolve) => {\n const script = this.createElementOrReuseExisting('script', `script-${name}`);\n if (script.hasAttribute('src') && script.getAttribute('src') === src) {\n resolve();\n } else {\n script.setAttribute('src', src);\n script.addEventListener('load', () => {\n resolve();\n });\n }\n\n this.ScriptContainer.appendChild(script);\n });\n\n public createElementOrReuseExisting = <K extends keyof HTMLElementTagNameMap>(type: K, name: string) => {\n const container = this.EngineContainer;\n const findingElement = container.querySelector(`${type}[name=\"roomstay-${name}\"]`);\n\n if (findingElement) {\n return findingElement;\n } else {\n const target = document.createElement(type);\n target.setAttribute('name', `roomstay-${name}`);\n container.appendChild(target);\n return target;\n }\n };\n\n public init = async () => {\n dayjs.extend(isSameOrBefore);\n dayjs.extend(isSameOrAfter);\n\n if (i18n) {\n i18n.use(initReactI18next).init({\n interpolation: { escapeValue: false },\n lng: Language.en_us,\n resources: LanguageProvider.getI18nMappedLanguages(),\n });\n }\n\n if (!this.isLocalhost) {\n Sentry.init({\n dsn: 'https://3bfba949561e48f1862c843ce8254a2d@o398412.ingest.sentry.io/5254086',\n beforeSend: (event, hint) => {\n event.tags = event.tags ?? { logger: '_default_' };\n\n try {\n if (hint.originalException instanceof Error) {\n if (hint.originalException.stack.indexOf('www.googletagmanager.com/gtm.js?id=') > -1) {\n event.tags.logger = 'gtm';\n event.level = Sentry.Severity.Warning;\n }\n }\n } catch (ex) {\n console.log(ex);\n }\n\n return event;\n },\n });\n }\n\n this.reloadScriptAndStyleContainers();\n };\n}\n\nexport default new RoomstayThemeEngine();\n"]}
@@ -1,4 +1,4 @@
1
- import { RoomstaySession } from 'models/RoomstaySession';
1
+ import { RoomstaySession } from '@/models/RoomstaySession';
2
2
  /**
3
3
  * Session provider is in charge of handling the loading, saving and passing of the current Engine Session.
4
4
  *
@@ -8,13 +8,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
- const LocalStorageProvider_1 = require("providers/storage/LocalStorageProvider");
13
- const RoomstaySession_1 = require("models/RoomstaySession");
14
- const dayjs = require("dayjs");
15
- const BasketRow_1 = require("models/BasketRow");
16
- const RoomRate_1 = require("models/Room/RoomRate");
17
- const Room_1 = require("models/Room/Room");
15
+ const LocalStorageProvider_1 = require("@/providers/storage/LocalStorageProvider");
16
+ const RoomstaySession_1 = require("@/models/RoomstaySession");
17
+ const dayjs_1 = __importDefault(require("dayjs"));
18
+ const BasketRow_1 = __importDefault(require("@/models/BasketRow"));
19
+ const RoomRate_1 = require("@/models/Room/RoomRate");
20
+ const Room_1 = require("@/models/Room/Room");
18
21
  const Debounce_1 = require("../util/Debounce");
19
22
  /**
20
23
  * Session provider is in charge of handling the loading, saving and passing of the current Engine Session.
@@ -163,10 +166,10 @@ class SessionProvider {
163
166
  let startDate;
164
167
  let endDate;
165
168
  if (session.startDate) {
166
- startDate = dayjs(session.startDate, RoomstaySession_1.SERIALIZED_DATE_FORMAT);
169
+ startDate = (0, dayjs_1.default)(session.startDate, RoomstaySession_1.SERIALIZED_DATE_FORMAT);
167
170
  }
168
171
  if (session.endDate) {
169
- endDate = dayjs(session.endDate, RoomstaySession_1.SERIALIZED_DATE_FORMAT);
172
+ endDate = (0, dayjs_1.default)(session.endDate, RoomstaySession_1.SERIALIZED_DATE_FORMAT);
170
173
  }
171
174
  (_a = session.basketRows) === null || _a === void 0 ? void 0 : _a.forEach((serializedBasketRow) => {
172
175
  let rate;
@@ -182,10 +185,10 @@ class SessionProvider {
182
185
  }
183
186
  const basketRow = new BasketRow_1.default(rate !== null && rate !== void 0 ? rate : null, serializedBasketRow.uniqId);
184
187
  if (serializedBasketRow.startDate) {
185
- basketRow.setStartDate(dayjs(serializedBasketRow.startDate, RoomstaySession_1.SERIALIZED_DATE_FORMAT));
188
+ basketRow.setStartDate((0, dayjs_1.default)(serializedBasketRow.startDate, RoomstaySession_1.SERIALIZED_DATE_FORMAT));
186
189
  }
187
190
  if (serializedBasketRow.endDate) {
188
- basketRow.setEndDate(dayjs(serializedBasketRow.endDate, RoomstaySession_1.SERIALIZED_DATE_FORMAT));
191
+ basketRow.setEndDate((0, dayjs_1.default)(serializedBasketRow.endDate, RoomstaySession_1.SERIALIZED_DATE_FORMAT));
189
192
  }
190
193
  basketRow.setAdults(serializedBasketRow.adults);
191
194
  basketRow.setChildren(serializedBasketRow.children);
@@ -1 +1 @@
1
- {"version":3,"file":"SessionProvider.js","sourceRoot":"/","sources":["src/providers/SessionProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { LocalStorageProvider } from 'providers/storage/LocalStorageProvider';\nimport { RoomstaySession, SerializedRoomstaySession, SERIALIZED_DATE_FORMAT, SerializedRoomstaySessionBasketRow } from 'models/RoomstaySession';\nimport * as dayjs from 'dayjs';\nimport BasketRow from 'models/BasketRow';\nimport { RoomRate } from 'models/Room/RoomRate';\nimport { Room } from 'models/Room/Room';\nimport { debounce } from '../util/Debounce';\n\n/**\n * Session provider is in charge of handling the loading, saving and passing of the current Engine Session.\n *\n * Desired flow:\n * * App Opened\n * * Session Provider loaded\n * * New User Session Created\n * * User moves through the app, updating the session with vital details (current step, basket context )\n * * User refreshes browser - session is re-loaded and user resumes where they left off\n * * User proceeds to checkout.\n * * Session is saved.\n *\n * Mini Booking Widget:\n * * User loads mini booking widget, selects dates, people\n * * Rates are loaded, and user selects a rate, redirecting to Full Booking Engine\n * * Session Provider creates a SessionID to pass to redirected path\n * * Session Provider loads the passed SessionID and loads the correct session\n * * Resume to Desired Flow\n *\n * Re-targeting:\n * ---Since re-targeting will happen on client site, under client domain, localStorage will be preserved, ergo we can load the previous incomplete sessions back to the user\n * * User lands on client Homepage\n * * Session Provider loads previous incomplete sessions\n * * A slider with details of previous baskets is shown back to the user\n * * User clicks on a previous session and is brought to the Booking Engine\n * * Resume to Desired Flow\n */\nexport default class SessionProvider {\n private currentSessionID: number;\n private hotelID: string;\n private cachedSession: Partial<RoomstaySession> = {};\n\n public async setHotelID(hotelID: string) {\n this.hotelID = hotelID;\n this.updateSession({ hotelID });\n }\n\n public async initialize(sessionID?: number, source?: string) {\n await this.setSessionID(sessionID, source);\n }\n\n public async setSessionID(sessionID?: number, source?: string) {\n const foundSession = await this.findOrCreateSessionID(sessionID, source);\n\n if (foundSession) {\n this.currentSessionID = foundSession;\n\n const storage = new LocalStorageProvider(sessionStorage);\n await storage.write('currentSession', this.currentSessionID);\n }\n }\n\n /**\n * Function to find the right session from session storage, or local storage\n *\n * If one isn't found it is then created.\n */\n private async findOrCreateSessionID(sessionID: number, source: string) {\n let session: RoomstaySession;\n\n if (sessionID) {\n session = await this.findSession(sessionID);\n\n if (session) {\n return session.id;\n }\n }\n\n session = await this.generateNewSession(source);\n\n return session.id;\n }\n\n private async findSession(sessionID: number): Promise<RoomstaySession> {\n const storage = new LocalStorageProvider();\n\n const session = await storage.read<SerializedRoomstaySession>(this.getSessionKey(sessionID));\n\n if (session) {\n return this.unSerializeSession(session);\n }\n }\n\n private async generateNewSession(source: string): Promise<RoomstaySession> {\n const sessionId = new Date().getTime();\n\n const session: RoomstaySession = {\n id: sessionId,\n startDate: null,\n endDate: null,\n step: '',\n hotelID: this.hotelID ?? null,\n basketRows: [],\n source,\n };\n\n this.saveSession(session);\n\n return session;\n }\n\n private serializeSession(session: RoomstaySession): SerializedRoomstaySession {\n const basketRows: SerializedRoomstaySessionBasketRow[] = [];\n\n // TODO possibly refactor BasketRow to serialize itself, or instead make a serializer that can do all this.\n session.basketRows.forEach((unSerializeBasketRow: BasketRow) => {\n const rate = unSerializeBasketRow.getRate();\n const room = unSerializeBasketRow.getRoom();\n\n let serializedRate = null;\n let serializedRoom = null;\n\n if (rate) {\n serializedRate = rate.serialize();\n }\n\n if (room) {\n serializedRoom = room.serialize();\n }\n\n basketRows.push({\n uniqId: unSerializeBasketRow.getID(),\n startDate: unSerializeBasketRow.getStartDate()?.format(SERIALIZED_DATE_FORMAT),\n endDate: unSerializeBasketRow.getEndDate()?.format(SERIALIZED_DATE_FORMAT),\n adults: unSerializeBasketRow.getAdults(),\n children: unSerializeBasketRow.getChildren(),\n promoCode: unSerializeBasketRow.getPromoCode(),\n promoCodeStatus: unSerializeBasketRow.getPromoCodeStatus(),\n rate: serializedRate,\n room: serializedRoom,\n });\n });\n\n return {\n id: session.id,\n startDate: session.startDate?.format(SERIALIZED_DATE_FORMAT),\n endDate: session.endDate?.format(SERIALIZED_DATE_FORMAT),\n step: session.step,\n hotelID: session.hotelID,\n basketRows,\n source: session.source,\n reservation: session.reservation,\n };\n }\n\n private unSerializeSession(session: SerializedRoomstaySession): RoomstaySession {\n const basketRows: BasketRow[] = [];\n let startDate: dayjs.Dayjs;\n let endDate: dayjs.Dayjs;\n\n if (session.startDate) {\n startDate = dayjs(session.startDate, SERIALIZED_DATE_FORMAT);\n }\n\n if (session.endDate) {\n endDate = dayjs(session.endDate, SERIALIZED_DATE_FORMAT);\n }\n\n session.basketRows?.forEach((serializedBasketRow) => {\n let rate;\n let room;\n\n if (serializedBasketRow.room) {\n room = new Room();\n room.unSerialize(serializedBasketRow.room);\n }\n\n if (serializedBasketRow.rate && room) {\n rate = new RoomRate();\n rate.unSerialize(serializedBasketRow.rate);\n rate.setRoom(room);\n }\n\n const basketRow = new BasketRow(rate ?? null, serializedBasketRow.uniqId);\n\n if (serializedBasketRow.startDate) {\n basketRow.setStartDate(dayjs(serializedBasketRow.startDate, SERIALIZED_DATE_FORMAT));\n }\n if (serializedBasketRow.endDate) {\n basketRow.setEndDate(dayjs(serializedBasketRow.endDate, SERIALIZED_DATE_FORMAT));\n }\n\n basketRow.setAdults(serializedBasketRow.adults);\n basketRow.setChildren(serializedBasketRow.children);\n\n basketRows.push(basketRow);\n });\n\n return {\n id: session.id,\n startDate,\n endDate,\n step: session.step,\n hotelID: session.hotelID,\n basketRows,\n source: session.source,\n reservation: session.reservation,\n };\n }\n\n private getSessionKey(sessionId?: number): string {\n return `session-${sessionId ?? this.currentSessionID}`;\n }\n\n /**\n * @returns the current session ID\n */\n public getCurrentSessionID(): number {\n return this.currentSessionID;\n }\n\n public async getSession(): Promise<RoomstaySession> {\n const storage = new LocalStorageProvider();\n\n const sessionFromStorage = await storage.read<SerializedRoomstaySession>(this.getSessionKey());\n\n if (sessionFromStorage) {\n return this.unSerializeSession(sessionFromStorage);\n } else {\n return this.generateNewSession('');\n }\n }\n\n public async saveSession(changedSession: RoomstaySession) {\n if (!changedSession) {\n return console.log('Attempted to save empty session');\n }\n\n const storage = new LocalStorageProvider();\n\n const serializedSession = this.serializeSession(changedSession);\n\n await storage.write(this.getSessionKey(serializedSession.id), serializedSession);\n }\n\n private debouncedUpdateSession = debounce(async () => {\n const currentSession = await this.getSession();\n const cachedSession = this.cachedSession;\n this.cachedSession = {};\n await this.saveSession({\n ...currentSession,\n ...cachedSession,\n });\n }, 300);\n\n public async updateSession(partialSession: Partial<RoomstaySession>) {\n Object.assign(this.cachedSession, partialSession);\n this.debouncedUpdateSession();\n }\n\n public async deleteSession() {\n const storage = new LocalStorageProvider();\n storage.delete(this.getSessionKey());\n }\n\n public async getAllSessions() {\n const storage = new LocalStorageProvider();\n const sessionKeys = storage.getAllKeys((name) => name.startsWith('roomstay-session'));\n\n return (await storage.readAll<SerializedRoomstaySession>(sessionKeys)).map((session) => this.unSerializeSession(session));\n }\n}\n"]}
1
+ {"version":3,"file":"SessionProvider.js","sourceRoot":"/","sources":["src/providers/SessionProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { LocalStorageProvider } from '@/providers/storage/LocalStorageProvider';\nimport { RoomstaySession, SerializedRoomstaySession, SERIALIZED_DATE_FORMAT, SerializedRoomstaySessionBasketRow } from '@/models/RoomstaySession';\nimport dayjs from 'dayjs';\nimport BasketRow from '@/models/BasketRow';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { Room } from '@/models/Room/Room';\nimport { debounce } from '../util/Debounce';\n\n/**\n * Session provider is in charge of handling the loading, saving and passing of the current Engine Session.\n *\n * Desired flow:\n * * App Opened\n * * Session Provider loaded\n * * New User Session Created\n * * User moves through the app, updating the session with vital details (current step, basket context )\n * * User refreshes browser - session is re-loaded and user resumes where they left off\n * * User proceeds to checkout.\n * * Session is saved.\n *\n * Mini Booking Widget:\n * * User loads mini booking widget, selects dates, people\n * * Rates are loaded, and user selects a rate, redirecting to Full Booking Engine\n * * Session Provider creates a SessionID to pass to redirected path\n * * Session Provider loads the passed SessionID and loads the correct session\n * * Resume to Desired Flow\n *\n * Re-targeting:\n * ---Since re-targeting will happen on client site, under client domain, localStorage will be preserved, ergo we can load the previous incomplete sessions back to the user\n * * User lands on client Homepage\n * * Session Provider loads previous incomplete sessions\n * * A slider with details of previous baskets is shown back to the user\n * * User clicks on a previous session and is brought to the Booking Engine\n * * Resume to Desired Flow\n */\nexport default class SessionProvider {\n private currentSessionID: number;\n private hotelID: string;\n private cachedSession: Partial<RoomstaySession> = {};\n\n public async setHotelID(hotelID: string) {\n this.hotelID = hotelID;\n this.updateSession({ hotelID });\n }\n\n public async initialize(sessionID?: number, source?: string) {\n await this.setSessionID(sessionID, source);\n }\n\n public async setSessionID(sessionID?: number, source?: string) {\n const foundSession = await this.findOrCreateSessionID(sessionID, source);\n\n if (foundSession) {\n this.currentSessionID = foundSession;\n\n const storage = new LocalStorageProvider(sessionStorage);\n await storage.write('currentSession', this.currentSessionID);\n }\n }\n\n /**\n * Function to find the right session from session storage, or local storage\n *\n * If one isn't found it is then created.\n */\n private async findOrCreateSessionID(sessionID: number, source: string) {\n let session: RoomstaySession;\n\n if (sessionID) {\n session = await this.findSession(sessionID);\n\n if (session) {\n return session.id;\n }\n }\n\n session = await this.generateNewSession(source);\n\n return session.id;\n }\n\n private async findSession(sessionID: number): Promise<RoomstaySession> {\n const storage = new LocalStorageProvider();\n\n const session = await storage.read<SerializedRoomstaySession>(this.getSessionKey(sessionID));\n\n if (session) {\n return this.unSerializeSession(session);\n }\n }\n\n private async generateNewSession(source: string): Promise<RoomstaySession> {\n const sessionId = new Date().getTime();\n\n const session: RoomstaySession = {\n id: sessionId,\n startDate: null,\n endDate: null,\n step: '',\n hotelID: this.hotelID ?? null,\n basketRows: [],\n source,\n };\n\n this.saveSession(session);\n\n return session;\n }\n\n private serializeSession(session: RoomstaySession): SerializedRoomstaySession {\n const basketRows: SerializedRoomstaySessionBasketRow[] = [];\n\n // TODO possibly refactor BasketRow to serialize itself, or instead make a serializer that can do all this.\n session.basketRows.forEach((unSerializeBasketRow: BasketRow) => {\n const rate = unSerializeBasketRow.getRate();\n const room = unSerializeBasketRow.getRoom();\n\n let serializedRate = null;\n let serializedRoom = null;\n\n if (rate) {\n serializedRate = rate.serialize();\n }\n\n if (room) {\n serializedRoom = room.serialize();\n }\n\n basketRows.push({\n uniqId: unSerializeBasketRow.getID(),\n startDate: unSerializeBasketRow.getStartDate()?.format(SERIALIZED_DATE_FORMAT),\n endDate: unSerializeBasketRow.getEndDate()?.format(SERIALIZED_DATE_FORMAT),\n adults: unSerializeBasketRow.getAdults(),\n children: unSerializeBasketRow.getChildren(),\n promoCode: unSerializeBasketRow.getPromoCode(),\n promoCodeStatus: unSerializeBasketRow.getPromoCodeStatus(),\n rate: serializedRate,\n room: serializedRoom,\n });\n });\n\n return {\n id: session.id,\n startDate: session.startDate?.format(SERIALIZED_DATE_FORMAT),\n endDate: session.endDate?.format(SERIALIZED_DATE_FORMAT),\n step: session.step,\n hotelID: session.hotelID,\n basketRows,\n source: session.source,\n reservation: session.reservation,\n };\n }\n\n private unSerializeSession(session: SerializedRoomstaySession): RoomstaySession {\n const basketRows: BasketRow[] = [];\n let startDate: dayjs.Dayjs;\n let endDate: dayjs.Dayjs;\n\n if (session.startDate) {\n startDate = dayjs(session.startDate, SERIALIZED_DATE_FORMAT);\n }\n\n if (session.endDate) {\n endDate = dayjs(session.endDate, SERIALIZED_DATE_FORMAT);\n }\n\n session.basketRows?.forEach((serializedBasketRow) => {\n let rate;\n let room;\n\n if (serializedBasketRow.room) {\n room = new Room();\n room.unSerialize(serializedBasketRow.room);\n }\n\n if (serializedBasketRow.rate && room) {\n rate = new RoomRate();\n rate.unSerialize(serializedBasketRow.rate);\n rate.setRoom(room);\n }\n\n const basketRow = new BasketRow(rate ?? null, serializedBasketRow.uniqId);\n\n if (serializedBasketRow.startDate) {\n basketRow.setStartDate(dayjs(serializedBasketRow.startDate, SERIALIZED_DATE_FORMAT));\n }\n if (serializedBasketRow.endDate) {\n basketRow.setEndDate(dayjs(serializedBasketRow.endDate, SERIALIZED_DATE_FORMAT));\n }\n\n basketRow.setAdults(serializedBasketRow.adults);\n basketRow.setChildren(serializedBasketRow.children);\n\n basketRows.push(basketRow);\n });\n\n return {\n id: session.id,\n startDate,\n endDate,\n step: session.step,\n hotelID: session.hotelID,\n basketRows,\n source: session.source,\n reservation: session.reservation,\n };\n }\n\n private getSessionKey(sessionId?: number): string {\n return `session-${sessionId ?? this.currentSessionID}`;\n }\n\n /**\n * @returns the current session ID\n */\n public getCurrentSessionID(): number {\n return this.currentSessionID;\n }\n\n public async getSession(): Promise<RoomstaySession> {\n const storage = new LocalStorageProvider();\n\n const sessionFromStorage = await storage.read<SerializedRoomstaySession>(this.getSessionKey());\n\n if (sessionFromStorage) {\n return this.unSerializeSession(sessionFromStorage);\n } else {\n return this.generateNewSession('');\n }\n }\n\n public async saveSession(changedSession: RoomstaySession) {\n if (!changedSession) {\n return console.log('Attempted to save empty session');\n }\n\n const storage = new LocalStorageProvider();\n\n const serializedSession = this.serializeSession(changedSession);\n\n await storage.write(this.getSessionKey(serializedSession.id), serializedSession);\n }\n\n private debouncedUpdateSession = debounce(async () => {\n const currentSession = await this.getSession();\n const cachedSession = this.cachedSession;\n this.cachedSession = {};\n await this.saveSession({\n ...currentSession,\n ...cachedSession,\n });\n }, 300);\n\n public async updateSession(partialSession: Partial<RoomstaySession>) {\n Object.assign(this.cachedSession, partialSession);\n this.debouncedUpdateSession();\n }\n\n public async deleteSession() {\n const storage = new LocalStorageProvider();\n storage.delete(this.getSessionKey());\n }\n\n public async getAllSessions() {\n const storage = new LocalStorageProvider();\n const sessionKeys = storage.getAllKeys((name) => name.startsWith('roomstay-session'));\n\n return (await storage.readAll<SerializedRoomstaySession>(sessionKeys)).map((session) => this.unSerializeSession(session));\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Feature } from 'providers/feature/Feature';
1
+ import { Feature } from '@/providers/feature/Feature';
2
2
  /**
3
3
  * Feature to determine if checkboxes for verify confirmation must be ticked
4
4
  */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const Feature_1 = require("providers/feature/Feature");
3
+ const Feature_1 = require("@/providers/feature/Feature");
4
4
  /**
5
5
  * Feature to determine if checkboxes for verify confirmation must be ticked
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmationVerifyFeature.js","sourceRoot":"/","sources":["src/providers/feature/ConfirmationVerifyFeature.ts"],"names":[],"mappings":";;AAAA,uDAAoD;AAEpD;;GAEG;AACH,MAAM,yBAA0B,SAAQ,iBAAO;IAC3C;QACI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACvC,CAAC;IAES,MAAM;QACZ,2EAA2E;IAC/E,CAAC;CACJ;AAED,kBAAe,IAAI,yBAAyB,EAAE,CAAC","sourcesContent":["import { Feature } from 'providers/feature/Feature';\n\n/**\n * Feature to determine if checkboxes for verify confirmation must be ticked\n */\nclass ConfirmationVerifyFeature extends Feature {\n public constructor() {\n super('ConfirmationVerifyFeature');\n }\n\n protected onLoad() {\n /** No onload function since the engine itself checks if this is enabled */\n }\n}\n\nexport default new ConfirmationVerifyFeature();\n"]}
1
+ {"version":3,"file":"ConfirmationVerifyFeature.js","sourceRoot":"/","sources":["src/providers/feature/ConfirmationVerifyFeature.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AAEtD;;GAEG;AACH,MAAM,yBAA0B,SAAQ,iBAAO;IAC3C;QACI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACvC,CAAC;IAES,MAAM;QACZ,2EAA2E;IAC/E,CAAC;CACJ;AAED,kBAAe,IAAI,yBAAyB,EAAE,CAAC","sourcesContent":["import { Feature } from '@/providers/feature/Feature';\n\n/**\n * Feature to determine if checkboxes for verify confirmation must be ticked\n */\nclass ConfirmationVerifyFeature extends Feature {\n public constructor() {\n super('ConfirmationVerifyFeature');\n }\n\n protected onLoad() {\n /** No onload function since the engine itself checks if this is enabled */\n }\n}\n\nexport default new ConfirmationVerifyFeature();\n"]}
@@ -1,4 +1,4 @@
1
- import { Feature } from 'providers/feature/Feature';
1
+ import { Feature } from '@/providers/feature/Feature';
2
2
  declare class DatePickerTypeFeature extends Feature {
3
3
  constructor();
4
4
  protected onLoad(): void;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const FullPageBookingEngineElementEvents_1 = require("engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
4
- const Feature_1 = require("providers/feature/Feature");
3
+ const FullPageBookingEngineElementEvents_1 = require("@/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
4
+ const Feature_1 = require("@/providers/feature/Feature");
5
5
  class DatePickerTypeFeature extends Feature_1.Feature {
6
6
  constructor() {
7
7
  super('DatePickerTypeFeature');
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerTypeFeature.js","sourceRoot":"/","sources":["src/providers/feature/DatePickerTypeFeature.ts"],"names":[],"mappings":";;AAAA,yHAAsH;AACtH,uDAAoD;AAEpD,MAAM,qBAAsB,SAAQ,iBAAO;IACvC;QACI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACnC,CAAC;IAES,MAAM;QACZ,wCAAwC;QACxC,0CAA0C;QAC1C,uEAAuE;QACvE,IAAI;QAEJ,uEAAkC,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAED,kBAAe,IAAI,qBAAqB,EAAE,CAAC","sourcesContent":["import { FullPageBookingEngineElementEvents } from 'engines/FullPageBookingEngine/FullPageBookingEngineElementEvents';\nimport { Feature } from 'providers/feature/Feature';\n\nclass DatePickerTypeFeature extends Feature {\n public constructor() {\n super('DatePickerTypeFeature');\n }\n\n protected onLoad() {\n // TODO: This will need to be re-thought\n // if (RoomstayThemeEngine.currentHotel) {\n // RoomstayThemeEngine.currentHotel.defaultDatepickerType = 'Week';\n // }\n\n FullPageBookingEngineElementEvents.reload();\n }\n}\n\nexport default new DatePickerTypeFeature();\n"]}
1
+ {"version":3,"file":"DatePickerTypeFeature.js","sourceRoot":"/","sources":["src/providers/feature/DatePickerTypeFeature.ts"],"names":[],"mappings":";;AAAA,2HAAwH;AACxH,yDAAsD;AAEtD,MAAM,qBAAsB,SAAQ,iBAAO;IACvC;QACI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACnC,CAAC;IAES,MAAM;QACZ,wCAAwC;QACxC,0CAA0C;QAC1C,uEAAuE;QACvE,IAAI;QAEJ,uEAAkC,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAED,kBAAe,IAAI,qBAAqB,EAAE,CAAC","sourcesContent":["import { FullPageBookingEngineElementEvents } from '@/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents';\nimport { Feature } from '@/providers/feature/Feature';\n\nclass DatePickerTypeFeature extends Feature {\n public constructor() {\n super('DatePickerTypeFeature');\n }\n\n protected onLoad() {\n // TODO: This will need to be re-thought\n // if (RoomstayThemeEngine.currentHotel) {\n // RoomstayThemeEngine.currentHotel.defaultDatepickerType = 'Week';\n // }\n\n FullPageBookingEngineElementEvents.reload();\n }\n}\n\nexport default new DatePickerTypeFeature();\n"]}
@@ -1,4 +1,4 @@
1
- import { Feature } from 'providers/feature/Feature';
1
+ import { Feature } from '@/providers/feature/Feature';
2
2
  declare class E164PhoneNumberFieldFeature extends Feature {
3
3
  constructor();
4
4
  protected onLoad(): void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const Feature_1 = require("providers/feature/Feature");
3
+ const Feature_1 = require("@/providers/feature/Feature");
4
4
  class E164PhoneNumberFieldFeature extends Feature_1.Feature {
5
5
  constructor() {
6
6
  super('E164PhoneNumberFieldFeature');
@@ -1 +1 @@
1
- {"version":3,"file":"E164PhoneNumberFieldFeature.js","sourceRoot":"/","sources":["src/providers/feature/E164PhoneNumberFieldFeature.ts"],"names":[],"mappings":";;AAAA,uDAAoD;AAEpD,MAAM,2BAA4B,SAAQ,iBAAO;IAC7C;QACI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACzC,CAAC;IAES,MAAM;QACZ,yBAAyB;IAC7B,CAAC;CACJ;AAED,kBAAe,IAAI,2BAA2B,EAAE,CAAC","sourcesContent":["import { Feature } from 'providers/feature/Feature';\n\nclass E164PhoneNumberFieldFeature extends Feature {\n public constructor() {\n super('E164PhoneNumberFieldFeature');\n }\n\n protected onLoad(): void {\n // No requirement on load\n }\n}\n\nexport default new E164PhoneNumberFieldFeature();\n"]}
1
+ {"version":3,"file":"E164PhoneNumberFieldFeature.js","sourceRoot":"/","sources":["src/providers/feature/E164PhoneNumberFieldFeature.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AAEtD,MAAM,2BAA4B,SAAQ,iBAAO;IAC7C;QACI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACzC,CAAC;IAES,MAAM;QACZ,yBAAyB;IAC7B,CAAC;CACJ;AAED,kBAAe,IAAI,2BAA2B,EAAE,CAAC","sourcesContent":["import { Feature } from '@/providers/feature/Feature';\n\nclass E164PhoneNumberFieldFeature extends Feature {\n public constructor() {\n super('E164PhoneNumberFieldFeature');\n }\n\n protected onLoad(): void {\n // No requirement on load\n }\n}\n\nexport default new E164PhoneNumberFieldFeature();\n"]}
@@ -1,4 +1,4 @@
1
- import { Feature } from 'providers/feature/Feature';
1
+ import { Feature } from '@/providers/feature/Feature';
2
2
  declare class FeaturedPromoFeature extends Feature {
3
3
  constructor();
4
4
  protected onLoad(): void;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const FullPageBookingEngineElementEvents_1 = require("engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
4
- const Feature_1 = require("providers/feature/Feature");
3
+ const FullPageBookingEngineElementEvents_1 = require("@/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
4
+ const Feature_1 = require("@/providers/feature/Feature");
5
5
  class FeaturedPromoFeature extends Feature_1.Feature {
6
6
  constructor() {
7
7
  super('FeaturedPromoFeature');
@@ -1 +1 @@
1
- {"version":3,"file":"FeaturedPromoFeature.js","sourceRoot":"/","sources":["src/providers/feature/FeaturedPromoFeature.ts"],"names":[],"mappings":";;AAAA,yHAAsH;AACtH,uDAAoD;AAEpD,MAAM,oBAAqB,SAAQ,iBAAO;IACtC;QACI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAClC,CAAC;IAES,MAAM;QACZ,uEAAkC,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAED,kBAAe,IAAI,oBAAoB,EAAE,CAAC","sourcesContent":["import { FullPageBookingEngineElementEvents } from 'engines/FullPageBookingEngine/FullPageBookingEngineElementEvents';\nimport { Feature } from 'providers/feature/Feature';\n\nclass FeaturedPromoFeature extends Feature {\n public constructor() {\n super('FeaturedPromoFeature');\n }\n\n protected onLoad() {\n FullPageBookingEngineElementEvents.reload();\n }\n}\n\nexport default new FeaturedPromoFeature();\n"]}
1
+ {"version":3,"file":"FeaturedPromoFeature.js","sourceRoot":"/","sources":["src/providers/feature/FeaturedPromoFeature.ts"],"names":[],"mappings":";;AAAA,2HAAwH;AACxH,yDAAsD;AAEtD,MAAM,oBAAqB,SAAQ,iBAAO;IACtC;QACI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAClC,CAAC;IAES,MAAM;QACZ,uEAAkC,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAED,kBAAe,IAAI,oBAAoB,EAAE,CAAC","sourcesContent":["import { FullPageBookingEngineElementEvents } from '@/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents';\nimport { Feature } from '@/providers/feature/Feature';\n\nclass FeaturedPromoFeature extends Feature {\n public constructor() {\n super('FeaturedPromoFeature');\n }\n\n protected onLoad() {\n FullPageBookingEngineElementEvents.reload();\n }\n}\n\nexport default new FeaturedPromoFeature();\n"]}
@@ -1,4 +1,4 @@
1
- import { Feature } from 'providers/feature/Feature';
1
+ import { Feature } from '@/providers/feature/Feature';
2
2
  declare class InlineAddonStepFeature extends Feature {
3
3
  private originalStep;
4
4
  constructor();
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const StepAddon_1 = require("pages/steps/StepAddon/StepAddon");
4
- const StepManager_1 = require("util/StepManager");
5
- const Feature_1 = require("providers/feature/Feature");
6
+ const StepAddon_1 = __importDefault(require("@/pages/steps/StepAddon/StepAddon"));
7
+ const StepManager_1 = __importDefault(require("@/util/StepManager"));
8
+ const Feature_1 = require("@/providers/feature/Feature");
6
9
  class InlineAddonStepFeature extends Feature_1.Feature {
7
10
  constructor() {
8
11
  super('InlineAddonStepFeature');
@@ -1 +1 @@
1
- {"version":3,"file":"InlineAddonStepFeature.js","sourceRoot":"/","sources":["src/providers/feature/InlineAddonStepFeature.ts"],"names":[],"mappings":";;AAAA,+DAAwD;AACxD,kDAA2C;AAC3C,uDAAoD;AAGpD,MAAM,sBAAuB,SAAQ,iBAAO;IAGxC;QACI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACpC,CAAC;IAES,MAAM;QACZ,IAAI,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;YAC9B,IAAI,CAAC,YAAY,GAAG,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACpD;QAED,qBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,mBAAS,CAAC,CAAC;IACvC,CAAC;IAES,QAAQ;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,qBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9C;aAAM;YACH,OAAO,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACvC;IACL,CAAC;CACJ;AAED,kBAAe,IAAI,sBAAsB,EAAE,CAAC","sourcesContent":["import StepAddon from 'pages/steps/StepAddon/StepAddon';\nimport StepManager from 'util/StepManager';\nimport { Feature } from 'providers/feature/Feature';\nimport type Step from 'pages/steps/Step';\n\nclass InlineAddonStepFeature extends Feature {\n private originalStep: Step;\n\n public constructor() {\n super('InlineAddonStepFeature');\n }\n\n protected onLoad() {\n if (StepManager.currentSteps[15]) {\n this.originalStep = StepManager.currentSteps[15];\n }\n\n StepManager.addStep(15, StepAddon);\n }\n\n protected onUnLoad() {\n if (this.originalStep) {\n StepManager.addStep(15, this.originalStep);\n } else {\n delete StepManager.currentSteps[15];\n }\n }\n}\n\nexport default new InlineAddonStepFeature();\n"]}
1
+ {"version":3,"file":"InlineAddonStepFeature.js","sourceRoot":"/","sources":["src/providers/feature/InlineAddonStepFeature.ts"],"names":[],"mappings":";;;;;AAAA,kFAA0D;AAC1D,qEAA6C;AAC7C,yDAAsD;AAGtD,MAAM,sBAAuB,SAAQ,iBAAO;IAGxC;QACI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACpC,CAAC;IAES,MAAM;QACZ,IAAI,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;YAC9B,IAAI,CAAC,YAAY,GAAG,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACpD;QAED,qBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,mBAAS,CAAC,CAAC;IACvC,CAAC;IAES,QAAQ;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,qBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9C;aAAM;YACH,OAAO,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACvC;IACL,CAAC;CACJ;AAED,kBAAe,IAAI,sBAAsB,EAAE,CAAC","sourcesContent":["import StepAddon from '@/pages/steps/StepAddon/StepAddon';\nimport StepManager from '@/util/StepManager';\nimport { Feature } from '@/providers/feature/Feature';\nimport type Step from '@/pages/steps/Step';\n\nclass InlineAddonStepFeature extends Feature {\n private originalStep: Step;\n\n public constructor() {\n super('InlineAddonStepFeature');\n }\n\n protected onLoad() {\n if (StepManager.currentSteps[15]) {\n this.originalStep = StepManager.currentSteps[15];\n }\n\n StepManager.addStep(15, StepAddon);\n }\n\n protected onUnLoad() {\n if (this.originalStep) {\n StepManager.addStep(15, this.originalStep);\n } else {\n delete StepManager.currentSteps[15];\n }\n }\n}\n\nexport default new InlineAddonStepFeature();\n"]}