@roomstay/frontend 2.1.32 → 2.2.0

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 (466) hide show
  1. package/dist/201.bundle.js +1 -1
  2. package/dist/213.bundle.js +1 -0
  3. package/dist/279.bundle.js +1 -1
  4. package/dist/370.bundle.js +1 -1
  5. package/dist/423.bundle.js +1 -1
  6. package/dist/449.bundle.js +1 -1
  7. package/dist/535.bundle.js +2 -0
  8. package/dist/548.bundle.js +1 -0
  9. package/dist/686.bundle.js +1 -0
  10. package/dist/855.bundle.js +1 -1
  11. package/dist/873.bundle.js +1 -1
  12. package/dist/882.bundle.js +1 -1
  13. package/dist/93.bundle.js +1 -0
  14. package/dist/972.bundle.js +1 -1
  15. package/dist/main.bundle.js +1 -1
  16. package/dist/src/api/HotelAPI.d.ts +1 -1
  17. package/dist/src/api/HotelAPI.js.map +1 -1
  18. package/dist/src/api/ReservationAPI.d.ts +0 -6
  19. package/dist/src/api/ReservationAPI.js.map +1 -1
  20. package/dist/src/api/events-service/EventsServiceAPI.d.ts +3 -0
  21. package/dist/src/api/events-service/EventsServiceAPI.js +62 -0
  22. package/dist/src/api/events-service/EventsServiceAPI.js.map +1 -0
  23. package/dist/src/components/Event/EventCarouselContainer.d.ts +8 -0
  24. package/dist/src/components/Event/EventCarouselContainer.js +97 -0
  25. package/dist/src/components/Event/EventCarouselContainer.js.map +1 -0
  26. package/dist/src/components/User/Forms/ForgotPasswordForm.d.ts +1 -0
  27. package/dist/src/components/User/Forms/ForgotPasswordForm.js +38 -24
  28. package/dist/src/components/User/Forms/ForgotPasswordForm.js.map +1 -1
  29. package/dist/src/components/User/Forms/SignInForm.d.ts +4 -3
  30. package/dist/src/components/User/Forms/SignInForm.js +32 -14
  31. package/dist/src/components/User/Forms/SignInForm.js.map +1 -1
  32. package/dist/src/components/User/Forms/SignUpForm.d.ts +1 -0
  33. package/dist/src/components/User/Forms/SignUpForm.js +30 -26
  34. package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
  35. package/dist/src/components/generic/BookingWizard/BookingWizard.js +5 -2
  36. package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -1
  37. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js +6 -3
  38. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js.map +1 -1
  39. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js +8 -5
  40. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js.map +1 -1
  41. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +15 -9
  42. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -1
  43. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js +4 -1
  44. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js.map +1 -1
  45. package/dist/src/components/generic/Currency.js +5 -5
  46. package/dist/src/components/generic/Currency.js.map +1 -1
  47. package/dist/src/components/generic/Event/EventCard.d.ts +8 -0
  48. package/dist/src/components/generic/Event/EventCard.js +70 -0
  49. package/dist/src/components/generic/Event/EventCard.js.map +1 -0
  50. package/dist/src/components/generic/Event/EventCarousel.d.ts +9 -0
  51. package/dist/src/components/generic/Event/EventCarousel.js +72 -0
  52. package/dist/src/components/generic/Event/EventCarousel.js.map +1 -0
  53. package/dist/src/components/generic/Headline.d.ts +2 -2
  54. package/dist/src/components/generic/Headline.js +8 -4
  55. package/dist/src/components/generic/Headline.js.map +1 -1
  56. package/dist/src/components/generic/Icon/Icon.d.ts +5 -1
  57. package/dist/src/components/generic/Icon/Icon.js +4 -0
  58. package/dist/src/components/generic/Icon/Icon.js.map +1 -1
  59. package/dist/src/components/generic/Overlay/Overlay.d.ts +2 -1
  60. package/dist/src/components/generic/Overlay/Overlay.js +50 -7
  61. package/dist/src/components/generic/Overlay/Overlay.js.map +1 -1
  62. package/dist/src/components/generic/PasswordBox/PasswordBox.js +2 -2
  63. package/dist/src/components/generic/PasswordBox/PasswordBox.js.map +1 -1
  64. package/dist/src/components/generic/PaymentCard/InlinePaymentCard.d.ts +8 -0
  65. package/dist/src/components/generic/PaymentCard/InlinePaymentCard.js +16 -0
  66. package/dist/src/components/generic/PaymentCard/InlinePaymentCard.js.map +1 -0
  67. package/dist/src/components/generic/PaymentCard/InlinePaymentOption.d.ts +8 -0
  68. package/dist/src/components/generic/PaymentCard/InlinePaymentOption.js +61 -0
  69. package/dist/src/components/generic/PaymentCard/InlinePaymentOption.js.map +1 -0
  70. package/dist/src/components/generic/PaymentCard/PaymentCard.js +6 -3
  71. package/dist/src/components/generic/PaymentCard/PaymentCard.js.map +1 -1
  72. package/dist/src/components/generic/PaymentCard/PaymentCardInput.d.ts +2 -3
  73. package/dist/src/components/generic/PaymentCard/PaymentCardInput.js +34 -28
  74. package/dist/src/components/generic/PaymentCard/PaymentCardInput.js.map +1 -1
  75. package/dist/src/components/generic/PromoCodeInput.js +15 -18
  76. package/dist/src/components/generic/PromoCodeInput.js.map +1 -1
  77. package/dist/src/components/generic/RadioButtonGroup/RadioButton.d.ts +5 -4
  78. package/dist/src/components/generic/RadioButtonGroup/RadioButton.js +33 -10
  79. package/dist/src/components/generic/RadioButtonGroup/RadioButton.js.map +1 -1
  80. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.d.ts +14 -11
  81. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js +69 -11
  82. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  83. package/dist/src/components/generic/RatioImage/RatioImage.d.ts +11 -0
  84. package/dist/src/components/generic/RatioImage/RatioImage.js +12 -0
  85. package/dist/src/components/generic/RatioImage/RatioImage.js.map +1 -0
  86. package/dist/src/components/generic/RecentSearchesCard.js +6 -5
  87. package/dist/src/components/generic/RecentSearchesCard.js.map +1 -1
  88. package/dist/src/components/generic/Tabs/TabLink.js +28 -3
  89. package/dist/src/components/generic/Tabs/TabLink.js.map +1 -1
  90. package/dist/src/components/generic/TextBox.js +1 -1
  91. package/dist/src/components/generic/TextBox.js.map +1 -1
  92. package/dist/src/components/generic/badging/SSLSecureBadge.js +4 -1
  93. package/dist/src/components/generic/badging/SSLSecureBadge.js.map +1 -1
  94. package/dist/src/components/generic/buttons/NextStepButton.d.ts +0 -3
  95. package/dist/src/components/generic/buttons/NextStepButton.js +4 -1
  96. package/dist/src/components/generic/buttons/NextStepButton.js.map +1 -1
  97. package/dist/src/components/generic/loader/LargeLoader.js +31 -6
  98. package/dist/src/components/generic/loader/LargeLoader.js.map +1 -1
  99. package/dist/src/components/generic/modal/ConfirmationModal.js +6 -3
  100. package/dist/src/components/generic/modal/ConfirmationModal.js.map +1 -1
  101. package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.d.ts +14 -2
  102. package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js +34 -26
  103. package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js.map +1 -1
  104. package/dist/src/components/generic/modal/SigninModal/FormContent/ForgotPasswordFormContent.d.ts +7 -0
  105. package/dist/src/components/generic/modal/SigninModal/FormContent/ForgotPasswordFormContent.js +14 -0
  106. package/dist/src/components/generic/modal/SigninModal/FormContent/ForgotPasswordFormContent.js.map +1 -0
  107. package/dist/src/components/generic/modal/SigninModal/FormContent/SignInFormContent.d.ts +8 -0
  108. package/dist/src/components/generic/modal/SigninModal/FormContent/SignInFormContent.js +25 -0
  109. package/dist/src/components/generic/modal/SigninModal/FormContent/SignInFormContent.js.map +1 -0
  110. package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.d.ts +7 -0
  111. package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.js +49 -0
  112. package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.js.map +1 -0
  113. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.d.ts +5 -2
  114. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js +30 -39
  115. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js.map +1 -1
  116. package/dist/src/components/generic/print/NoPrint.d.ts +3 -0
  117. package/dist/src/components/generic/print/NoPrint.js +11 -0
  118. package/dist/src/components/generic/print/NoPrint.js.map +1 -0
  119. package/dist/src/components/generic/print/PrintOnly.d.ts +3 -0
  120. package/dist/src/components/generic/print/PrintOnly.js +11 -0
  121. package/dist/src/components/generic/print/PrintOnly.js.map +1 -0
  122. package/dist/src/components/graphics/AddCard.d.ts +7 -0
  123. package/dist/src/components/graphics/AddCard.js +28 -0
  124. package/dist/src/components/graphics/AddCard.js.map +1 -0
  125. package/dist/src/components/graphics/HomeEmptyCard.d.ts +7 -0
  126. package/dist/src/components/graphics/HomeEmptyCard.js +53 -0
  127. package/dist/src/components/graphics/HomeEmptyCard.js.map +1 -0
  128. package/dist/src/components/graphics/HomeEmptyReservation.d.ts +7 -0
  129. package/dist/src/components/graphics/HomeEmptyReservation.js +136 -0
  130. package/dist/src/components/graphics/HomeEmptyReservation.js.map +1 -0
  131. package/dist/src/components/iconComponents/CreditCardOff.d.ts +6 -0
  132. package/dist/src/components/iconComponents/CreditCardOff.js +16 -0
  133. package/dist/src/components/iconComponents/CreditCardOff.js.map +1 -0
  134. package/dist/src/components/members/EditMyProfile.js +19 -21
  135. package/dist/src/components/members/EditMyProfile.js.map +1 -1
  136. package/dist/src/components/navigation/Header.js +29 -9
  137. package/dist/src/components/navigation/Header.js.map +1 -1
  138. package/dist/src/components/navigation/StepSelector.js +2 -1
  139. package/dist/src/components/navigation/StepSelector.js.map +1 -1
  140. package/dist/src/components/pages/Account/Card/MemberCardItem.js +5 -2
  141. package/dist/src/components/pages/Account/Card/MemberCardItem.js.map +1 -1
  142. package/dist/src/components/reservation/EmptyReservation.js +3 -3
  143. package/dist/src/components/reservation/EmptyReservation.js.map +1 -1
  144. package/dist/src/components/reservation/ReservationItem.d.ts +4 -3
  145. package/dist/src/components/reservation/ReservationItem.js +45 -33
  146. package/dist/src/components/reservation/ReservationItem.js.map +1 -1
  147. package/dist/src/components/reservation/ReservationList.d.ts +2 -2
  148. package/dist/src/components/reservation/ReservationList.js +1 -1
  149. package/dist/src/components/reservation/ReservationList.js.map +1 -1
  150. package/dist/src/components/steps/DaysSelectedInformer.js +15 -10
  151. package/dist/src/components/steps/DaysSelectedInformer.js.map +1 -1
  152. package/dist/src/components/steps/addons/AddonCard.js +10 -12
  153. package/dist/src/components/steps/addons/AddonCard.js.map +1 -1
  154. package/dist/src/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard.js.map +1 -1
  155. package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js +26 -7
  156. package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js.map +1 -1
  157. package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.d.ts +1 -2
  158. package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js +36 -44
  159. package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js.map +1 -1
  160. package/dist/src/components/steps/confirmation/PaymentInformation.d.ts +7 -0
  161. package/dist/src/components/steps/confirmation/PaymentInformation.js +119 -0
  162. package/dist/src/components/steps/confirmation/PaymentInformation.js.map +1 -0
  163. package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js +12 -10
  164. package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js.map +1 -1
  165. package/dist/src/components/steps/confirmation/StepConfirmationForm.js +43 -80
  166. package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
  167. package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js +7 -5
  168. package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js.map +1 -1
  169. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js +10 -12
  170. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js.map +1 -1
  171. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js +8 -2
  172. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js.map +1 -1
  173. package/dist/src/components/steps/date/PeoplePicker.js +9 -9
  174. package/dist/src/components/steps/date/PeoplePicker.js.map +1 -1
  175. package/dist/src/components/steps/date/PeoplePickerRow.js.map +1 -1
  176. package/dist/src/components/steps/date/StepOneNextStepButton.d.ts +1 -1
  177. package/dist/src/components/steps/date/StepOneNextStepButton.js +2 -4
  178. package/dist/src/components/steps/date/StepOneNextStepButton.js.map +1 -1
  179. package/dist/src/components/steps/hotel/HotelCard.js +5 -11
  180. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  181. package/dist/src/components/steps/hotel/HotelCardModal.js +5 -6
  182. package/dist/src/components/steps/hotel/HotelCardModal.js.map +1 -1
  183. package/dist/src/components/steps/hotel/HotelSearchParameters.js +8 -8
  184. package/dist/src/components/steps/hotel/HotelSearchParameters.js.map +1 -1
  185. package/dist/src/components/steps/room/AvailableUpgradesModal.js +8 -9
  186. package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
  187. package/dist/src/components/steps/room/InactivityWindow.js +3 -5
  188. package/dist/src/components/steps/room/InactivityWindow.js.map +1 -1
  189. package/dist/src/components/steps/room/LargeRoomCard.js +5 -4
  190. package/dist/src/components/steps/room/LargeRoomCard.js.map +1 -1
  191. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js +42 -40
  192. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js.map +1 -1
  193. package/dist/src/components/steps/room/NoRoomsFoundBlock.js +7 -9
  194. package/dist/src/components/steps/room/NoRoomsFoundBlock.js.map +1 -1
  195. package/dist/src/components/steps/room/RatesNotFound.js +6 -3
  196. package/dist/src/components/steps/room/RatesNotFound.js.map +1 -1
  197. package/dist/src/components/steps/room/RoomListCrossSellBlock.js +3 -3
  198. package/dist/src/components/steps/room/RoomListCrossSellBlock.js.map +1 -1
  199. package/dist/src/components/steps/room/StepRoomNextStepButton.d.ts +2 -1
  200. package/dist/src/components/steps/room/StepRoomNextStepButton.js +3 -3
  201. package/dist/src/components/steps/room/StepRoomNextStepButton.js.map +1 -1
  202. package/dist/src/components/steps/room/StepRoomSummaryAndButton.js +2 -6
  203. package/dist/src/components/steps/room/StepRoomSummaryAndButton.js.map +1 -1
  204. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +16 -18
  205. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  206. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +2 -2
  207. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  208. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js +6 -3
  209. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js.map +1 -1
  210. package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js +3 -1
  211. package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js.map +1 -1
  212. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js +7 -8
  213. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js.map +1 -1
  214. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +4 -6
  215. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
  216. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js +4 -5
  217. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js.map +1 -1
  218. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js +7 -5
  219. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js.map +1 -1
  220. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js +4 -1
  221. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js.map +1 -1
  222. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js +5 -2
  223. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js.map +1 -1
  224. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js +11 -10
  225. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js.map +1 -1
  226. package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js +1 -1
  227. package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js.map +1 -1
  228. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js +7 -8
  229. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js.map +1 -1
  230. package/dist/src/components/summary/BEMobileSummaryModal.js +1 -1
  231. package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
  232. package/dist/src/components/summary/BESummaryPerkBlock.js +4 -1
  233. package/dist/src/components/summary/BESummaryPerkBlock.js.map +1 -1
  234. package/dist/src/components/summary/BESummaryPrivacyPolicy.js +5 -10
  235. package/dist/src/components/summary/BESummaryPrivacyPolicy.js.map +1 -1
  236. package/dist/src/components/summary/BESummaryRoomRow.js +4 -6
  237. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  238. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js +5 -1
  239. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js.map +1 -1
  240. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +1 -0
  241. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  242. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +36 -13
  243. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  244. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +26 -2
  245. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  246. package/dist/src/contexts/ConfirmationFormContext.d.ts +0 -2
  247. package/dist/src/contexts/ConfirmationFormContext.js +0 -3
  248. package/dist/src/contexts/ConfirmationFormContext.js.map +1 -1
  249. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +13 -8
  250. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  251. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.d.ts +1 -6
  252. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +24 -18
  253. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  254. package/dist/src/contexts/HotelOverridesContext.js +4 -0
  255. package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
  256. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.d.ts +10 -6
  257. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.js.map +1 -1
  258. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +76 -26
  259. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
  260. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContext.d.ts +8 -5
  261. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContext.js.map +1 -1
  262. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +35 -4
  263. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
  264. package/dist/src/engines/BaseEngine.d.ts +2 -1
  265. package/dist/src/engines/BaseEngine.js +1 -1
  266. package/dist/src/engines/BaseEngine.js.map +1 -1
  267. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
  268. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +24 -25
  269. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  270. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.d.ts +22 -0
  271. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.js +33 -0
  272. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.js.map +1 -0
  273. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.d.ts +6 -0
  274. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js +116 -0
  275. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js.map +1 -0
  276. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js +11 -10
  277. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js.map +1 -1
  278. package/dist/src/errors/GetAvailabilityError.d.ts +2 -1
  279. package/dist/src/errors/GetAvailabilityError.js +10 -3
  280. package/dist/src/errors/GetAvailabilityError.js.map +1 -1
  281. package/dist/src/hooks/HistoryConsistentPush.d.ts +1 -0
  282. package/dist/src/hooks/HistoryConsistentPush.js +12 -0
  283. package/dist/src/hooks/HistoryConsistentPush.js.map +1 -0
  284. package/dist/src/hooks/LoggedInUserHook.d.ts +3 -3
  285. package/dist/src/hooks/Query.js +2 -6
  286. package/dist/src/hooks/Query.js.map +1 -1
  287. package/dist/src/hooks/UpdateQueryParameters.d.ts +1 -0
  288. package/dist/src/hooks/UpdateQueryParameters.js +16 -0
  289. package/dist/src/hooks/UpdateQueryParameters.js.map +1 -0
  290. package/dist/src/hooks/VGSHooks.d.ts +11 -1
  291. package/dist/src/hooks/VGSHooks.js +26 -11
  292. package/dist/src/hooks/VGSHooks.js.map +1 -1
  293. package/dist/src/index.d.ts +2 -3
  294. package/dist/src/index.js +2 -0
  295. package/dist/src/index.js.map +1 -1
  296. package/dist/src/mockApi/HotelAPI.d.ts +1 -1
  297. package/dist/src/mockApi/HotelAPI.js.map +1 -1
  298. package/dist/src/models/Api/HotelDTO.d.ts +11 -3
  299. package/dist/src/models/Api/HotelDTO.js +17 -8
  300. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  301. package/dist/src/models/Api/HotelOverrideDTO.d.ts +1 -0
  302. package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
  303. package/dist/src/models/Api/ReservationsDTO.d.ts +2 -0
  304. package/dist/src/models/Api/ReservationsDTO.js.map +1 -1
  305. package/dist/src/models/AppQueryParameters.d.ts +14 -0
  306. package/dist/src/models/AppQueryParameters.js +19 -0
  307. package/dist/src/models/AppQueryParameters.js.map +1 -0
  308. package/dist/src/models/BookingWizard/BookingWizardProperty.d.ts +2 -2
  309. package/dist/src/models/BookingWizard/BookingWizardProperty.js.map +1 -1
  310. package/dist/src/models/Client/Hotel/ColorProfile.d.ts +3 -0
  311. package/dist/src/models/Client/Hotel/ColorProfile.js.map +1 -1
  312. package/dist/src/models/Client/Hotel/Company.d.ts +2 -2
  313. package/dist/src/models/Client/Hotel/Company.js.map +1 -1
  314. package/dist/src/models/Client/Hotel/Hotel.d.ts +15 -5
  315. package/dist/src/models/Client/Hotel/Hotel.js +3 -1
  316. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  317. package/dist/src/models/Confirmation.d.ts +1 -1
  318. package/dist/src/models/Confirmation.js.map +1 -1
  319. package/dist/src/models/Room/Filters/Filter.d.ts +2 -1
  320. package/dist/src/models/Room/Filters/Filter.js.map +1 -1
  321. package/dist/src/models/Room/Filters/RateTypeFilter.d.ts +2 -1
  322. package/dist/src/models/Room/Filters/RateTypeFilter.js +3 -2
  323. package/dist/src/models/Room/Filters/RateTypeFilter.js.map +1 -1
  324. package/dist/src/models/Room/Filters/RoomTypeFilter.d.ts +2 -1
  325. package/dist/src/models/Room/Filters/RoomTypeFilter.js +3 -2
  326. package/dist/src/models/Room/Filters/RoomTypeFilter.js.map +1 -1
  327. package/dist/src/pages/account/AccountHome/AccountHomePage.js +9 -10
  328. package/dist/src/pages/account/AccountHome/AccountHomePage.js.map +1 -1
  329. package/dist/src/pages/account/AccountRouter.js +7 -9
  330. package/dist/src/pages/account/AccountRouter.js.map +1 -1
  331. package/dist/src/pages/account/Details/AccountDetailsCardsPage.js +19 -32
  332. package/dist/src/pages/account/Details/AccountDetailsCardsPage.js.map +1 -1
  333. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js +9 -7
  334. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js.map +1 -1
  335. package/dist/src/pages/account/Details/AccountDetailsProfilePage.js +25 -38
  336. package/dist/src/pages/account/Details/AccountDetailsProfilePage.js.map +1 -1
  337. package/dist/src/pages/account/Help/AccountHelpPage.js +16 -25
  338. package/dist/src/pages/account/Help/AccountHelpPage.js.map +1 -1
  339. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +68 -52
  340. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
  341. package/dist/src/pages/account/Reservations/AccountReservationsPage.js.map +1 -1
  342. package/dist/src/pages/findReservation/FindReservation.js +40 -23
  343. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  344. package/dist/src/pages/findReservation/ReservationRow.js +10 -9
  345. package/dist/src/pages/findReservation/ReservationRow.js.map +1 -1
  346. package/dist/src/pages/findReservation/ReservationRowModal.js +3 -3
  347. package/dist/src/pages/findReservation/ReservationRowModal.js.map +1 -1
  348. package/dist/src/pages/hotel/HotelInfo.js +6 -6
  349. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  350. package/dist/src/pages/steps/Step.d.ts +2 -2
  351. package/dist/src/pages/steps/Step.js.map +1 -1
  352. package/dist/src/pages/steps/StepAddon/StepAddon.d.ts +2 -2
  353. package/dist/src/pages/steps/StepAddon/StepAddon.js.map +1 -1
  354. package/dist/src/pages/steps/StepConfirmation/StepConfirmation.d.ts +2 -2
  355. package/dist/src/pages/steps/StepConfirmation/StepConfirmation.js.map +1 -1
  356. package/dist/src/pages/steps/StepDate/StepDate.d.ts +2 -2
  357. package/dist/src/pages/steps/StepDate/StepDate.js.map +1 -1
  358. package/dist/src/pages/steps/StepDate/StepDateComponent.js +1 -1
  359. package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
  360. package/dist/src/pages/steps/StepHotel/StepHotel.d.ts +2 -2
  361. package/dist/src/pages/steps/StepHotel/StepHotel.js.map +1 -1
  362. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +10 -7
  363. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
  364. package/dist/src/pages/steps/StepRoom/StepRoom.d.ts +2 -2
  365. package/dist/src/pages/steps/StepRoom/StepRoom.js.map +1 -1
  366. package/dist/src/pages/steps/StepThanks/StepThanks.d.ts +2 -2
  367. package/dist/src/pages/steps/StepThanks/StepThanks.js.map +1 -1
  368. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +5 -0
  369. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
  370. package/dist/src/providers/FeatureProvider.js +2 -0
  371. package/dist/src/providers/FeatureProvider.js.map +1 -1
  372. package/dist/src/providers/RoomstayThemeEngine.d.ts +3 -3
  373. package/dist/src/providers/RoomstayThemeEngine.js +4 -18
  374. package/dist/src/providers/RoomstayThemeEngine.js.map +1 -1
  375. package/dist/src/providers/feature/ModifyBookingFeature.d.ts +6 -0
  376. package/dist/src/providers/feature/ModifyBookingFeature.js +10 -0
  377. package/dist/src/providers/feature/ModifyBookingFeature.js.map +1 -0
  378. package/dist/src/stories/EventCarousel.stories.d.ts +6 -0
  379. package/dist/src/stories/EventCarousel.stories.js +236 -0
  380. package/dist/src/stories/EventCarousel.stories.js.map +1 -0
  381. package/dist/src/stories/RadioButton.stories.d.ts +3 -3
  382. package/dist/src/stories/RadioButtonGroup.stories.d.ts +4 -1
  383. package/dist/src/stories/RadioButtonGroup.stories.js +73 -1
  384. package/dist/src/stories/RadioButtonGroup.stories.js.map +1 -1
  385. package/dist/src/translations/Translation.d.ts +196 -8
  386. package/dist/src/translations/Translation.js +198 -10
  387. package/dist/src/translations/Translation.js.map +1 -1
  388. package/dist/src/translations/languages/en-gb.js +198 -10
  389. package/dist/src/translations/languages/en-gb.js.map +1 -1
  390. package/dist/src/util/Color.d.ts +3 -0
  391. package/dist/src/util/Color.js +21 -1
  392. package/dist/src/util/Color.js.map +1 -1
  393. package/dist/src/util/CurrencyHelper.d.ts +11 -3
  394. package/dist/src/util/CurrencyHelper.js +306 -5
  395. package/dist/src/util/CurrencyHelper.js.map +1 -1
  396. package/dist/src/util/EventsHelper.d.ts +11 -0
  397. package/dist/src/util/EventsHelper.js +43 -0
  398. package/dist/src/util/EventsHelper.js.map +1 -0
  399. package/dist/src/util/StringHelper.d.ts +2 -2
  400. package/dist/src/util/StringHelper.js +5 -4
  401. package/dist/src/util/StringHelper.js.map +1 -1
  402. package/dist/src/util/TextAlignment.d.ts +2 -1
  403. package/dist/src/util/TextAlignment.js +1 -0
  404. package/dist/src/util/TextAlignment.js.map +1 -1
  405. package/dist/src/util/Validation.d.ts +17 -13
  406. package/dist/src/util/Validation.js +34 -18
  407. package/dist/src/util/Validation.js.map +1 -1
  408. package/dist/test.bundle.js +1 -1
  409. package/dist/tests/jest/engines/RoomstayThemeEngine.test.d.ts +1 -0
  410. package/dist/tests/jest/engines/RoomstayThemeEngine.test.js +41 -0
  411. package/dist/tests/jest/engines/RoomstayThemeEngine.test.js.map +1 -0
  412. package/dist/tests/jest/events/EventManager.test.d.ts +1 -0
  413. package/dist/tests/jest/events/EventManager.test.js +101 -0
  414. package/dist/tests/jest/events/EventManager.test.js.map +1 -0
  415. package/dist/tests/jest/helpers/ObjectHelper.test.d.ts +1 -0
  416. package/dist/tests/jest/helpers/ObjectHelper.test.js +72 -0
  417. package/dist/tests/jest/helpers/ObjectHelper.test.js.map +1 -0
  418. package/dist/tests/jest/models/RoomRate.test.d.ts +1 -0
  419. package/dist/tests/jest/models/RoomRate.test.js +133 -0
  420. package/dist/tests/jest/models/RoomRate.test.js.map +1 -0
  421. package/dist/tests/jest/providers/LanguageProvider.test.d.ts +1 -0
  422. package/dist/tests/jest/providers/LanguageProvider.test.js +32 -0
  423. package/dist/tests/jest/providers/LanguageProvider.test.js.map +1 -0
  424. package/dist/tests/jest/providers/SessionProvider.test.d.ts +1 -0
  425. package/dist/tests/jest/providers/SessionProvider.test.js +230 -0
  426. package/dist/tests/jest/providers/SessionProvider.test.js.map +1 -0
  427. package/dist/tests/jest/providers/storage/LocalStorageProvider.test.d.ts +1 -0
  428. package/dist/tests/jest/providers/storage/LocalStorageProvider.test.js +126 -0
  429. package/dist/tests/jest/providers/storage/LocalStorageProvider.test.js.map +1 -0
  430. package/dist/tests/jest/reducers/BasketReducer.test.d.ts +1 -0
  431. package/dist/tests/jest/reducers/BasketReducer.test.js +103 -0
  432. package/dist/tests/jest/reducers/BasketReducer.test.js.map +1 -0
  433. package/dist/tests/offline/RoomstayBestRateAlert.d.ts +1 -0
  434. package/dist/tests/offline/RoomstayBestRateAlert.js +48 -0
  435. package/dist/tests/offline/RoomstayBestRateAlert.js.map +1 -0
  436. package/dist/tests/offline/entry/RSCompany.js +7 -2
  437. package/dist/tests/offline/entry/RSCompany.js.map +1 -1
  438. package/dist/tests/offline/entry/ReactWrapper.d.ts +1 -0
  439. package/dist/tests/offline/entry/ReactWrapper.js +140 -0
  440. package/dist/tests/offline/entry/ReactWrapper.js.map +1 -0
  441. package/dist/tests/offline/entry/allEngines.d.ts +1 -0
  442. package/dist/tests/offline/entry/allEngines.js +50 -0
  443. package/dist/tests/offline/entry/allEngines.js.map +1 -0
  444. package/dist/tests/offline/entry/components/TestPicker.d.ts +1 -0
  445. package/dist/tests/offline/entry/components/TestPicker.js +214 -0
  446. package/dist/tests/offline/entry/components/TestPicker.js.map +1 -0
  447. package/dist/tests/offline/entry/context/EngineContext.d.ts +9 -0
  448. package/dist/tests/offline/entry/context/EngineContext.js +37 -0
  449. package/dist/tests/offline/entry/context/EngineContext.js.map +1 -0
  450. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.d.ts +1 -0
  451. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js +68 -0
  452. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js.map +1 -0
  453. package/dist/tests/setupTests.d.ts +0 -0
  454. package/dist/tests/setupTests.js +12 -0
  455. package/dist/tests/setupTests.js.map +1 -0
  456. package/dist/vendors.bundle.js +1 -1
  457. package/package.json +3 -3
  458. package/dist/14.bundle.js +0 -1
  459. package/dist/399.bundle.js +0 -2
  460. package/dist/559.bundle.js +0 -1
  461. package/dist/848.bundle.js +0 -1
  462. package/dist/962.bundle.js +0 -1
  463. package/dist/src/components/temp/Login.d.ts +0 -2
  464. package/dist/src/components/temp/Login.js +0 -79
  465. package/dist/src/components/temp/Login.js.map +0 -1
  466. /package/dist/{399.bundle.js.LICENSE.txt → 535.bundle.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AccountDetailsProfilePage.js","sourceRoot":"/","sources":["src/pages/account/Details/AccountDetailsProfilePage.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useContext, useEffect } from 'react';\n\nimport BEButton from '@/components/generic/BEButton';\nimport EnhancedPhoneNumberField from '@/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField';\nimport Headline from '@/components/generic/Headline';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextBox from '@/components/generic/TextBox';\nimport StepConfirmationCountrySelector from '@/components/steps/confirmation/StepConfirmationCountrySelector';\n\nimport { Controller, FieldError, useForm } from 'react-hook-form';\nimport { Link } from 'react-router-dom';\nimport { Color } from '@/util/Color';\nimport type { IRoomstayMember } from '@roomstay/core';\n\nimport { NotificationContext, RoomstayMemberContext } from '@frontend/contexts';\nimport { isPassWordMatch, passwordPatternRule } from '@/util/Validation';\nimport { PasswordBox } from '@/components/generic/PasswordBox/PasswordBox';\nimport { AccountRoutes } from '../AccountRoutes';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\ntype LabelAndInputGroupProps = {\n component: React.ReactNode;\n label: string;\n hint?: string;\n error?: FieldError;\n};\n\nconst LabelAndInputGroup = (props: LabelAndInputGroupProps) => {\n const { label, component, hint, error } = props;\n return (\n <div className=\"row u-marg-bottom--heavy\">\n <div className=\"col-md-4\">\n <Text type={TextType.Small} bold>\n {label}\n </Text>\n </div>\n <div className=\"col-md-8\">\n {component}\n {!!error && (\n <p className=\"text-small\" style={{ color: '#ED4362' }}>\n {error.message}\n </p>\n )}\n\n {!!hint && (\n <Text type={TextType.Label} color={Color.Grey}>\n {hint}\n </Text>\n )}\n </div>\n </div>\n );\n};\n\ntype FormValues = IRoomstayMember & {\n password: string;\n passwordRepeat: string;\n};\n\nexport const AccountDetailsProfilePage = () => {\n const { roomstayMember, loading: isLoadingMember, updateMemberDetails } = useContext(RoomstayMemberContext);\n const notifications = useContext(NotificationContext);\n\n const { t } = useTranslation();\n\n const {\n watch,\n register,\n formState: { errors, isDirty },\n handleSubmit,\n reset: resetFormValues,\n control,\n } = useForm<FormValues>({\n mode: 'onChange',\n });\n\n const getErrorValidationClass = (name: keyof FormValues): 'error' | undefined => (errors[name] ? 'error' : undefined);\n\n useEffect(() => {\n if (roomstayMember) {\n resetFormValues(roomstayMember);\n }\n }, [roomstayMember]);\n\n const onSaveDetails = (values: FormValues) => {\n updateMemberDetails?.(values).then(() => {\n notifications.addNotification({\n icon: IconType.Check,\n children: <Text>Details saved succesfully</Text>,\n });\n });\n };\n\n const saveButtonDisabled = !isDirty || isLoadingMember || !!Object.keys(errors).length;\n\n return (\n <>\n <div className=\"u-marg-top--heavy@m u-marg-top@- u-marg-bottom--heavy\">\n <Link to={AccountRoutes.Home.path}>\n <BEButton isText icon={IconType.ArrowLeft} size=\"small\">\n {t(Translation.Reservation.BackToYourAccount)}\n </BEButton>\n </Link>\n </div>\n <div className=\"u-marg-bottom--heavy@m\">\n <Headline size=\"extra-large\" bold>\n Profile Information\n </Headline>\n </div>\n <form onSubmit={handleSubmit(onSaveDetails)}>\n <div className=\"row\">\n <div className=\"col-md-8\">\n <div>\n <LabelAndInputGroup\n label=\"First Name\"\n component={\n <TextBox\n validationStatus={getErrorValidationClass('forename')}\n {...register('forename', {\n required: {\n message: 'First name is required',\n value: true,\n },\n })}\n />\n }\n error={errors.forename}\n />\n <LabelAndInputGroup\n label=\"Last Name\"\n component={\n <TextBox\n validationStatus={getErrorValidationClass('surname')}\n {...register('surname', {\n required: {\n message: 'Last name is required',\n value: true,\n },\n })}\n />\n }\n error={errors.surname}\n />\n <LabelAndInputGroup\n label=\"Email Address\"\n component={<TextBox validationStatus={getErrorValidationClass('email')} inputProps={{ disabled: true }} value={roomstayMember?.email} />}\n error={errors.email}\n />\n <LabelAndInputGroup\n label=\"Phone Number\"\n component={\n <Controller\n rules={{\n pattern: {\n value: /.*\\s\\d+/,\n message: 'Phone Number is required',\n },\n }}\n control={control}\n name=\"phoneNumber\"\n render={({ field }) => {\n return (\n <EnhancedPhoneNumberField\n {...field}\n onChange={(e: any) => {\n field.onChange(e);\n }}\n validationStatus={getErrorValidationClass('phoneNumber')}\n />\n );\n }}\n />\n }\n error={errors.phoneNumber}\n />\n\n <LineBreak />\n\n <LabelAndInputGroup\n label=\"Password\"\n component={\n <PasswordBox\n placeholder=\"•••••••••••••••\"\n {...register('password', {\n pattern: passwordPatternRule,\n })}\n validationStatus={getErrorValidationClass('password')}\n />\n }\n hint=\"At least 8 characters long, case sensitive, can contain !$#%, no spaces.\"\n error={errors.password}\n />\n <LabelAndInputGroup\n label=\"Repeat Password\"\n component={\n <PasswordBox\n placeholder=\"•••••••••••••••\"\n {...register('passwordRepeat', {\n required: {\n value: !!watch('password'),\n message: 'Repeat Password is required',\n },\n validate: {\n isSame: isPassWordMatch(watch('password')),\n },\n })}\n validationStatus={getErrorValidationClass('passwordRepeat')}\n />\n }\n error={errors.passwordRepeat}\n />\n\n <LineBreak />\n\n <LabelAndInputGroup label=\"Address\" component={<TextBox {...register('address.address')} />} />\n <LabelAndInputGroup label=\"City\" component={<TextBox {...register('address.city')} />} />\n <LabelAndInputGroup label=\"ZIP/Post Code\" component={<TextBox {...register('address.zip')} />} />\n <LabelAndInputGroup\n label=\"Country\"\n component={\n <Controller\n control={control}\n name=\"address.country\"\n render={({ field }) => {\n const { ref, ...rest } = field;\n return <StepConfirmationCountrySelector {...rest} />;\n }}\n />\n }\n />\n </div>\n </div>\n </div>\n\n <div className=\"u-flex justify-content-start u-marg-top--heavy\">\n <Link to=\"/account/home\" className=\"u-marg-right\">\n <BEButton>Cancel</BEButton>\n </Link>\n <BEButton disabled={saveButtonDisabled} isLoading={isLoadingMember} primary filled htmlType=\"submit\">\n Save all changes\n </BEButton>\n </div>\n </form>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"AccountDetailsProfilePage.js","sourceRoot":"/","sources":["src/pages/account/Details/AccountDetailsProfilePage.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useEffect } from 'react';\n\nimport BEButton from '@/components/generic/BEButton';\nimport EnhancedPhoneNumberField from '@/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField';\nimport Headline from '@/components/generic/Headline';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextBox from '@/components/generic/TextBox';\nimport StepConfirmationCountrySelector from '@/components/steps/confirmation/StepConfirmationCountrySelector';\n\nimport { Controller, FieldError, useForm } from 'react-hook-form';\nimport { Link } from 'react-router-dom';\nimport { Color } from '@/util/Color';\nimport type { IRoomstayMember } from '@roomstay/core';\n\nimport { NotificationContext, RoomstayMemberContext } from '@frontend/contexts';\nimport { isPasswordMatch, makePasswordPatternRule, makePhonePatternRule, makeRequiredRule } from '@/util/Validation';\nimport { PasswordBox } from '@/components/generic/PasswordBox/PasswordBox';\nimport { AccountRoutes } from '../AccountRoutes';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\ntype LabelAndInputGroupProps = {\n component: React.ReactNode;\n label: string;\n hint?: string;\n error?: FieldError;\n};\n\nconst LabelAndInputGroup = (props: LabelAndInputGroupProps) => {\n const { label, component, hint, error } = props;\n return (\n <div className=\"row u-marg-bottom--heavy\">\n <div className=\"col-md-4\">\n <Text type={TextType.Small} bold>\n {label}\n </Text>\n </div>\n <div className=\"col-md-8\">\n {component}\n {!!error && (\n <p className=\"text-small\" style={{ color: '#ED4362' }}>\n {error.message}\n </p>\n )}\n\n {!!hint && (\n <Text type={TextType.Label} color={Color.Grey}>\n {hint}\n </Text>\n )}\n </div>\n </div>\n );\n};\n\ntype FormValues = IRoomstayMember & {\n password: string;\n passwordRepeat: string;\n};\n\nexport const AccountDetailsProfilePage = () => {\n const { roomstayMember, loading: isLoadingMember, updateMemberDetails } = useContext(RoomstayMemberContext);\n const notifications = useContext(NotificationContext);\n\n const { t } = useTranslation();\n\n const {\n watch,\n register,\n formState: { errors, isDirty },\n handleSubmit,\n reset: resetFormValues,\n control,\n } = useForm<FormValues>({\n mode: 'onChange',\n });\n\n const getErrorValidationClass = (name: keyof FormValues): 'error' | undefined => (errors[name] ? 'error' : undefined);\n\n useEffect(() => {\n if (roomstayMember) {\n resetFormValues(roomstayMember);\n }\n }, [roomstayMember]);\n\n const onSaveDetails = (values: FormValues) => {\n updateMemberDetails?.(values).then(() => {\n notifications.addNotification({\n icon: IconType.Check,\n children: <Text>{t(Translation.UserPortal.ProfileScreen.DetailsSavedSuccessfully)}</Text>,\n });\n });\n };\n\n const saveButtonDisabled = !isDirty || isLoadingMember || !!Object.keys(errors).length;\n\n return (\n <>\n <div className=\"u-marg-top--heavy@m u-marg-top@- u-marg-bottom--heavy\">\n <Link to={AccountRoutes.Home.path}>\n <BEButton isText icon={IconType.ArrowLeft} size=\"small\">\n {t(Translation.Reservation.BackToYourAccount)}\n </BEButton>\n </Link>\n </div>\n <div className=\"u-marg-bottom--heavy@m\">\n <Headline size=\"extra-large\" bold>\n {t(Translation.Navigation.Menu.ProfileInformation)}\n </Headline>\n </div>\n <form onSubmit={handleSubmit(onSaveDetails)}>\n <div className=\"row\">\n <div className=\"col-md-8\">\n <div>\n <LabelAndInputGroup\n label={t(Translation.Step.Confirmation.Inputs.Forename)}\n component={\n <TextBox\n validationStatus={getErrorValidationClass('forename')}\n {...register('forename', {\n required: makeRequiredRule(t)(true, t(Translation.Step.Confirmation.Inputs.Forename)),\n })}\n />\n }\n error={errors.forename}\n />\n <LabelAndInputGroup\n label={t(Translation.Step.Confirmation.Inputs.Surname)}\n component={\n <TextBox\n validationStatus={getErrorValidationClass('surname')}\n {...register('surname', {\n required: makeRequiredRule(t)(true, t(Translation.Step.Confirmation.Inputs.Surname)),\n })}\n />\n }\n error={errors.surname}\n />\n <LabelAndInputGroup\n label={t(Translation.Step.Confirmation.Inputs.Email)}\n component={<TextBox validationStatus={getErrorValidationClass('email')} inputProps={{ disabled: true }} value={roomstayMember?.email} />}\n error={errors.email}\n />\n <LabelAndInputGroup\n label={t(Translation.Step.Confirmation.Inputs.Phone)}\n component={\n <Controller\n rules={{\n pattern: makePhonePatternRule(t),\n }}\n control={control}\n name=\"phoneNumber\"\n render={({ field }) => {\n return (\n <EnhancedPhoneNumberField\n {...field}\n onChange={(e: any) => {\n field.onChange(e);\n }}\n validationStatus={getErrorValidationClass('phoneNumber')}\n />\n );\n }}\n />\n }\n error={errors.phoneNumber}\n />\n\n <LineBreak />\n\n <LabelAndInputGroup\n label={t(Translation.Step.Confirmation.Inputs.Password)}\n component={\n <PasswordBox\n placeholder=\"•••••••••••••••\"\n {...register('password', {\n pattern: makePasswordPatternRule(t),\n })}\n validationStatus={getErrorValidationClass('password')}\n />\n }\n hint=\"At least 8 characters long, case sensitive, can contain all symbols., no spaces.\"\n error={errors.password}\n />\n <LabelAndInputGroup\n label={t(Translation.Step.Confirmation.Inputs.ConfirmPassword)}\n component={\n <PasswordBox\n placeholder=\"•••••••••••••••\"\n {...register('passwordRepeat', {\n required: makeRequiredRule(t)(!!watch('password'), t(Translation.Step.Confirmation.Inputs.ConfirmPassword)),\n validate: {\n isSame: isPasswordMatch(t)(watch('password')),\n },\n })}\n validationStatus={getErrorValidationClass('passwordRepeat')}\n />\n }\n error={errors.passwordRepeat}\n />\n\n <LineBreak />\n\n <LabelAndInputGroup label={t(Translation.Step.Confirmation.Inputs.Address)} component={<TextBox {...register('address.address')} />} />\n <LabelAndInputGroup label={t(Translation.Step.Confirmation.Inputs.City)} component={<TextBox {...register('address.city')} />} />\n <LabelAndInputGroup label={t(Translation.Step.Confirmation.Inputs.PostCode)} component={<TextBox {...register('address.zip')} />} />\n <LabelAndInputGroup\n label={t(Translation.Step.Confirmation.Inputs.Country)}\n component={\n <Controller\n control={control}\n name=\"address.country\"\n render={({ field }) => {\n const { ref, ...rest } = field;\n return <StepConfirmationCountrySelector {...rest} />;\n }}\n />\n }\n />\n </div>\n </div>\n </div>\n\n <div className=\"u-flex justify-content-start u-marg-top--heavy\">\n <Link to=\"/account/home\" className=\"u-marg-right\">\n <BEButton>{t(Translation.Misc.Cancel)}</BEButton>\n </Link>\n <BEButton disabled={saveButtonDisabled} isLoading={isLoadingMember} primary filled htmlType=\"submit\">\n {t(Translation.Misc.SaveAllChanges)}\n </BEButton>\n </div>\n </form>\n </>\n );\n};\n"]}
@@ -44,8 +44,7 @@ const Icon_1 = require("../../../components/generic/Icon/Icon");
44
44
  const Text_1 = __importStar(require("../../../components/generic/Text"));
45
45
  const TextArea_1 = __importDefault(require("../../../components/generic/TextArea"));
46
46
  const TextBox_1 = __importDefault(require("../../../components/generic/TextBox"));
47
- const react_1 = __importDefault(require("react"));
48
- const react_2 = require("react");
47
+ const react_1 = __importStar(require("react"));
49
48
  const react_hook_form_1 = require("react-hook-form");
50
49
  const react_i18next_1 = require("react-i18next");
51
50
  const react_router_dom_1 = require("react-router-dom");
@@ -55,6 +54,7 @@ const BookingAPI_1 = __importDefault(require("../../../api/BookingAPI"));
55
54
  const hooks_1 = require("../../../hooks/index.js");
56
55
  const AccountRoutes_1 = require("../AccountRoutes");
57
56
  const EnhancedPhoneNumberField_1 = __importDefault(require("../../../components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField"));
57
+ const Validation_1 = require("../../../util/Validation");
58
58
  const AccountHelpPage = () => {
59
59
  const { t } = (0, react_i18next_1.useTranslation)();
60
60
  const { hotel } = (0, hooks_1.useCurrentHotel)();
@@ -63,9 +63,9 @@ const AccountHelpPage = () => {
63
63
  mode: 'onChange',
64
64
  reValidateMode: 'onBlur',
65
65
  });
66
- const [apiStatus, setApiStatus] = (0, react_2.useState)({});
67
- const [isLoading, setIsLoading] = (0, react_2.useState)(false);
68
- (0, react_2.useEffect)(() => {
66
+ const [apiStatus, setApiStatus] = (0, react_1.useState)({});
67
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
68
+ (0, react_1.useEffect)(() => {
69
69
  if (user) {
70
70
  reset({
71
71
  name: fullName,
@@ -104,9 +104,9 @@ const AccountHelpPage = () => {
104
104
  return (react_1.default.createElement("div", null,
105
105
  react_1.default.createElement("div", { className: "u-marg-top--heavy@m u-marg-top@m- u-marg-bottom--heavy" },
106
106
  react_1.default.createElement(react_router_dom_1.Link, { to: AccountRoutes_1.AccountRoutes.Home.path },
107
- react_1.default.createElement(BEButton_1.default, { isText: true, icon: Icon_1.IconType.ArrowLeft, size: "small" }, "BACK TO YOUR ACCOUNT"))),
107
+ react_1.default.createElement(BEButton_1.default, { isText: true, icon: Icon_1.IconType.ArrowLeft, size: "small" }, t(Translation_1.Translation.Reservation.BackToYourAccount)))),
108
108
  react_1.default.createElement("div", { className: "u-marg-bottom--heavy u-pad-top@m" },
109
- react_1.default.createElement(Headline_1.default, { size: "extra-large", className: "u-marg-bottom" }, "Need some help?")),
109
+ react_1.default.createElement(Headline_1.default, { size: "extra-large", className: "u-marg-bottom" }, t(Translation_1.Translation.UserPortal.HelpScreen.NeedSomeHelp))),
110
110
  react_1.default.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "u-marg-bottom", style: { maxWidth: 500 } },
111
111
  react_1.default.createElement(AutoAutoHeight_1.default, { open: !!formState.errors },
112
112
  react_1.default.createElement("div", { className: "u-flex flex-column" }, Object.keys(formState.errors).map((errorName, index) => {
@@ -116,31 +116,22 @@ const AccountHelpPage = () => {
116
116
  }))),
117
117
  react_1.default.createElement("div", { className: "u-marg-bottom" },
118
118
  react_1.default.createElement("div", { className: "u-marg-bottom--light" },
119
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, bold: true }, "Name")),
119
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, bold: true }, t(Translation_1.Translation.UserPortal.HelpScreen.Name))),
120
120
  react_1.default.createElement(TextBox_1.default, Object.assign({ required: true, validationStatus: getValidationClass('name') }, register('name', {
121
- required: { message: `Name is required`, value: true },
121
+ required: (0, Validation_1.makeRequiredRule)(t)(true, t(Translation_1.Translation.UserPortal.HelpScreen.Name)),
122
122
  })))),
123
123
  react_1.default.createElement("div", { className: "u-marg-bottom" },
124
124
  react_1.default.createElement("div", { className: "u-marg-bottom--light" },
125
125
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, bold: true }, t(Translation_1.Translation.Navigation.SignIn.EmailAddress))),
126
126
  react_1.default.createElement(TextBox_1.default, Object.assign({ placeholder: "example@mail.com", required: true, validationStatus: getValidationClass('email') }, register('email', {
127
- required: {
128
- message: `${t(Translation_1.Translation.Navigation.SignIn.EmailAddress)} is required`,
129
- value: true,
130
- },
131
- pattern: {
132
- value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i,
133
- message: t(Translation_1.Translation.FindReservation.InvalidEmailAddress),
134
- },
127
+ required: (0, Validation_1.makeRequiredRule)(t)(true, t(Translation_1.Translation.Navigation.SignIn.EmailAddress)),
128
+ pattern: (0, Validation_1.makeEmailPatternRule)(t),
135
129
  })))),
136
130
  react_1.default.createElement("div", { className: "u-marg-bottom" },
137
131
  react_1.default.createElement("div", { className: "u-marg-bottom--light" },
138
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, bold: true }, "Telephone")),
132
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, bold: true }, t(Translation_1.Translation.UserPortal.HelpScreen.Telephone))),
139
133
  react_1.default.createElement(react_hook_form_1.Controller, { rules: {
140
- pattern: {
141
- value: /.*\s\d+/,
142
- message: 'Telephone is required',
143
- },
134
+ pattern: (0, Validation_1.makePhonePatternRule)(t),
144
135
  }, control: control, name: "telephone", render: ({ field }) => {
145
136
  return (react_1.default.createElement(EnhancedPhoneNumberField_1.default, Object.assign({}, field, { onChange: (e) => {
146
137
  field.onChange(e);
@@ -148,11 +139,11 @@ const AccountHelpPage = () => {
148
139
  } })),
149
140
  react_1.default.createElement("div", { className: "u-marg-bottom" },
150
141
  react_1.default.createElement("div", { className: "u-marg-bottom--light" },
151
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, bold: true }, "Message")),
142
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, bold: true }, t(Translation_1.Translation.UserPortal.HelpScreen.Message))),
152
143
  react_1.default.createElement(TextArea_1.default, Object.assign({ required: true }, register('message', {
153
- required: { message: 'Message is required', value: true },
144
+ required: (0, Validation_1.makeRequiredRule)(t)(true, t(Translation_1.Translation.UserPortal.HelpScreen.Message)),
154
145
  })))),
155
- react_1.default.createElement(BEButton_1.default, { icon: Icon_1.IconType.ArrowRight, iconPosition: "right", filled: true, primary: true, htmlType: "submit", isLoading: isLoading, disabled: isLoading || apiStatus.success }, "Submit")),
146
+ react_1.default.createElement(BEButton_1.default, { icon: Icon_1.IconType.ArrowRight, iconPosition: "right", filled: true, primary: true, htmlType: "submit", isLoading: isLoading, disabled: isLoading || apiStatus.success }, t(Translation_1.Translation.Misc.Submit))),
156
147
  react_1.default.createElement(AutoAutoHeight_1.default, { open: !!apiStatus.success },
157
148
  react_1.default.createElement("div", { className: "u-pad-top" },
158
149
  react_1.default.createElement(Text_1.default, { color: Color_1.Color.Success }, t(Translation_1.Translation.Step.Room.ErrorForm.ConfirmationMessage)))),
@@ -1 +1 @@
1
- {"version":3,"file":"AccountHelpPage.js","sourceRoot":"/","sources":["src/pages/account/Help/AccountHelpPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport Alert, { AlertType } from '@/components/generic/Alert';\nimport BEButton from '@/components/generic/BEButton';\nimport Headline from '@/components/generic/Headline';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextArea from '@/components/generic/TextArea';\nimport TextBox from '@/components/generic/TextBox';\nimport React from 'react';\nimport { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\nimport { Color } from '@/util/Color';\n\nimport API from '@/api/BookingAPI';\nimport { useCurrentHotel, useMember } from '@frontend/hooks';\nimport { AccountRoutes } from '../AccountRoutes';\nimport EnhancedPhoneNumberField from '@/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField';\n\nexport const AccountHelpPage = () => {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n const { user, fullName } = useMember();\n\n const { register, formState, handleSubmit, reset, control } = useForm({\n mode: 'onChange',\n reValidateMode: 'onBlur',\n });\n\n const [apiStatus, setApiStatus] = useState<{ success?: boolean; message?: string }>({});\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n if (user) {\n reset({\n name: fullName,\n email: user.email,\n telephone: user.phoneNumber,\n });\n }\n }, [fullName, user]);\n\n const onSubmit = async (values: any) => {\n setApiStatus({});\n setIsLoading(true);\n\n try {\n await API.Error.sendMemberAreaContactForm(hotel?.hotelID as string, {\n name: values.name,\n telephone: values.telephone,\n email: values.email,\n message: values.message,\n });\n\n setApiStatus({ success: true });\n } catch (ex) {\n setApiStatus({ success: false, message: t(Translation.Step.Room.ErrorForm.APIError) });\n }\n\n setIsLoading(false);\n };\n\n const getValidationClass = (name: string) => {\n if (formState.errors) {\n if (formState.errors[name]) {\n return 'error';\n } else {\n return 'success';\n }\n }\n };\n\n return (\n <div>\n <div className=\"u-marg-top--heavy@m u-marg-top@m- u-marg-bottom--heavy\">\n <Link to={AccountRoutes.Home.path}>\n <BEButton isText icon={IconType.ArrowLeft} size=\"small\">\n BACK TO YOUR ACCOUNT\n </BEButton>\n </Link>\n </div>\n\n <div className=\"u-marg-bottom--heavy u-pad-top@m\">\n <Headline size=\"extra-large\" className=\"u-marg-bottom\">\n Need some help?\n </Headline>\n </div>\n\n <form onSubmit={handleSubmit(onSubmit)} className=\"u-marg-bottom\" style={{ maxWidth: 500 }}>\n <AutoAutoHeight open={!!formState.errors}>\n <div className=\"u-flex flex-column\">\n {Object.keys(formState.errors).map((errorName, index) => {\n return (\n <Alert type={AlertType.Danger} icon={IconType.Error} key={index}>\n <Text type={TextType.Small}>{formState.errors[errorName]?.message}</Text>\n </Alert>\n );\n })}\n </div>\n </AutoAutoHeight>\n\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n Name\n </Text>\n </div>\n <TextBox\n required\n validationStatus={getValidationClass('name')}\n {...register('name', {\n required: { message: `Name is required`, value: true },\n })}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignIn.EmailAddress)}\n </Text>\n </div>\n <TextBox\n placeholder=\"example@mail.com\"\n required\n validationStatus={getValidationClass('email')}\n {...register('email', {\n required: {\n message: `${t(Translation.Navigation.SignIn.EmailAddress)} is required`,\n value: true,\n },\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: t(Translation.FindReservation.InvalidEmailAddress),\n },\n })}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n Telephone\n </Text>\n </div>\n <Controller\n rules={{\n pattern: {\n value: /.*\\s\\d+/,\n message: 'Telephone is required',\n },\n }}\n control={control}\n name=\"telephone\"\n render={({ field }) => {\n return (\n <EnhancedPhoneNumberField\n {...field}\n onChange={(e: any) => {\n field.onChange(e);\n }}\n validationStatus={getValidationClass('telephone')}\n />\n );\n }}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n Message\n </Text>\n </div>\n <TextArea\n required\n {...register('message', {\n required: { message: 'Message is required', value: true },\n })}\n />\n </div>\n <BEButton icon={IconType.ArrowRight} iconPosition=\"right\" filled primary htmlType=\"submit\" isLoading={isLoading} disabled={isLoading || apiStatus.success}>\n Submit\n </BEButton>\n </form>\n\n <AutoAutoHeight open={!!apiStatus.success}>\n <div className=\"u-pad-top\">\n <Text color={Color.Success}>{t(Translation.Step.Room.ErrorForm.ConfirmationMessage)}</Text>\n </div>\n </AutoAutoHeight>\n\n <AutoAutoHeight open={apiStatus.success === false}>\n <div className=\"u-pad-top\">\n <Text color={Color.Alert}>{apiStatus.message}</Text>\n </div>\n </AutoAutoHeight>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"AccountHelpPage.js","sourceRoot":"/","sources":["src/pages/account/Help/AccountHelpPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport Alert, { AlertType } from '@/components/generic/Alert';\nimport BEButton from '@/components/generic/BEButton';\nimport Headline from '@/components/generic/Headline';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextArea from '@/components/generic/TextArea';\nimport TextBox from '@/components/generic/TextBox';\nimport React, { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\nimport { Color } from '@/util/Color';\n\nimport API from '@/api/BookingAPI';\nimport { useCurrentHotel, useMember } from '@frontend/hooks';\nimport { AccountRoutes } from '../AccountRoutes';\nimport EnhancedPhoneNumberField from '@/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField';\nimport { makeEmailPatternRule, makePhonePatternRule, makeRequiredRule } from '@/util/Validation';\n\nexport const AccountHelpPage = () => {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n const { user, fullName } = useMember();\n\n const { register, formState, handleSubmit, reset, control } = useForm({\n mode: 'onChange',\n reValidateMode: 'onBlur',\n });\n\n const [apiStatus, setApiStatus] = useState<{ success?: boolean; message?: string }>({});\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n if (user) {\n reset({\n name: fullName,\n email: user.email,\n telephone: user.phoneNumber,\n });\n }\n }, [fullName, user]);\n\n const onSubmit = async (values: any) => {\n setApiStatus({});\n setIsLoading(true);\n\n try {\n await API.Error.sendMemberAreaContactForm(hotel?.hotelID as string, {\n name: values.name,\n telephone: values.telephone,\n email: values.email,\n message: values.message,\n });\n\n setApiStatus({ success: true });\n } catch (ex) {\n setApiStatus({ success: false, message: t(Translation.Step.Room.ErrorForm.APIError) });\n }\n\n setIsLoading(false);\n };\n\n const getValidationClass = (name: string) => {\n if (formState.errors) {\n if (formState.errors[name]) {\n return 'error';\n } else {\n return 'success';\n }\n }\n };\n\n return (\n <div>\n <div className=\"u-marg-top--heavy@m u-marg-top@m- u-marg-bottom--heavy\">\n <Link to={AccountRoutes.Home.path}>\n <BEButton isText icon={IconType.ArrowLeft} size=\"small\">\n {t(Translation.Reservation.BackToYourAccount)}\n </BEButton>\n </Link>\n </div>\n\n <div className=\"u-marg-bottom--heavy u-pad-top@m\">\n <Headline size=\"extra-large\" className=\"u-marg-bottom\">\n {t(Translation.UserPortal.HelpScreen.NeedSomeHelp)}\n </Headline>\n </div>\n\n <form onSubmit={handleSubmit(onSubmit)} className=\"u-marg-bottom\" style={{ maxWidth: 500 }}>\n <AutoAutoHeight open={!!formState.errors}>\n <div className=\"u-flex flex-column\">\n {Object.keys(formState.errors).map((errorName, index) => {\n return (\n <Alert type={AlertType.Danger} icon={IconType.Error} key={index}>\n <Text type={TextType.Small}>{formState.errors[errorName]?.message}</Text>\n </Alert>\n );\n })}\n </div>\n </AutoAutoHeight>\n\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.UserPortal.HelpScreen.Name)}\n </Text>\n </div>\n <TextBox\n required\n validationStatus={getValidationClass('name')}\n {...register('name', {\n required: makeRequiredRule(t)(true, t(Translation.UserPortal.HelpScreen.Name)),\n })}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignIn.EmailAddress)}\n </Text>\n </div>\n <TextBox\n placeholder=\"example@mail.com\"\n required\n validationStatus={getValidationClass('email')}\n {...register('email', {\n required: makeRequiredRule(t)(true, t(Translation.Navigation.SignIn.EmailAddress)),\n pattern: makeEmailPatternRule(t),\n })}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.UserPortal.HelpScreen.Telephone)}\n </Text>\n </div>\n <Controller\n rules={{\n pattern: makePhonePatternRule(t),\n }}\n control={control}\n name=\"telephone\"\n render={({ field }) => {\n return (\n <EnhancedPhoneNumberField\n {...field}\n onChange={(e: any) => {\n field.onChange(e);\n }}\n validationStatus={getValidationClass('telephone')}\n />\n );\n }}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.UserPortal.HelpScreen.Message)}\n </Text>\n </div>\n <TextArea\n required\n {...register('message', {\n required: makeRequiredRule(t)(true, t(Translation.UserPortal.HelpScreen.Message)),\n })}\n />\n </div>\n <BEButton icon={IconType.ArrowRight} iconPosition=\"right\" filled primary htmlType=\"submit\" isLoading={isLoading} disabled={isLoading || apiStatus.success}>\n {t(Translation.Misc.Submit)}\n </BEButton>\n </form>\n\n <AutoAutoHeight open={!!apiStatus.success}>\n <div className=\"u-pad-top\">\n <Text color={Color.Success}>{t(Translation.Step.Room.ErrorForm.ConfirmationMessage)}</Text>\n </div>\n </AutoAutoHeight>\n\n <AutoAutoHeight open={apiStatus.success === false}>\n <div className=\"u-pad-top\">\n <Text color={Color.Alert}>{apiStatus.message}</Text>\n </div>\n </AutoAutoHeight>\n </div>\n );\n};\n"]}
@@ -51,6 +51,10 @@ const ReservationList_1 = __importDefault(require("../../../components/reservati
51
51
  const SimpleModal_1 = __importStar(require("../../../components/generic/modal/SimpleModal"));
52
52
  const BookingAPI_1 = __importDefault(require("../../../api/BookingAPI"));
53
53
  const Currency_1 = __importDefault(require("../../../components/generic/Currency"));
54
+ const hooks_1 = require("../../../hooks");
55
+ const PrintOnly_1 = __importDefault(require("../../../components/generic/print/PrintOnly"));
56
+ const dayjs_1 = __importDefault(require("dayjs"));
57
+ const ModifyBookingFeature_1 = __importDefault(require("../../../providers/feature/ModifyBookingFeature"));
54
58
  const getRoomNamesString = (itineraries) => {
55
59
  var _a;
56
60
  const roomNames = {};
@@ -68,6 +72,7 @@ const getRoomNamesString = (itineraries) => {
68
72
  const CancelReservationModal = (props) => {
69
73
  const { items, booking, visible, onClose } = props;
70
74
  const { fetchRoomstayMember } = (0, react_1.useContext)(contexts_1.RoomstayMemberContext);
75
+ const { t } = (0, react_i18next_1.useTranslation)();
71
76
  const [isLoading, setIsLoading] = (0, react_1.useState)(false);
72
77
  const onCancelClick = () => {
73
78
  const cancellations = [];
@@ -84,11 +89,11 @@ const CancelReservationModal = (props) => {
84
89
  };
85
90
  const footers = (react_1.default.createElement("div", { className: "d-flex u-pad align-items-center justify-content-center" },
86
91
  react_1.default.createElement("div", { className: "u-marg-right" },
87
- react_1.default.createElement(BEButton_1.default, { isText: true, onClick: onClose }, "Abort")),
88
- react_1.default.createElement(BEButton_1.default, { filled: true, primary: true, onClick: onCancelClick, isLoading: isLoading }, "Yes i'm sure")));
89
- return (react_1.default.createElement(SimpleModal_1.default, { title: "Cancelling Reservation", open: visible, size: SimpleModal_1.SimpleModalSize.ExtraSmall, desktopFooter: footers, mobileFooter: footers, onClose: onClose },
92
+ react_1.default.createElement(BEButton_1.default, { isText: true, onClick: onClose }, t(Translation_1.Translation.Misc.Abort))),
93
+ react_1.default.createElement(BEButton_1.default, { filled: true, primary: true, onClick: onCancelClick, isLoading: isLoading }, t(Translation_1.Translation.Misc.YesImSure))));
94
+ return (react_1.default.createElement(SimpleModal_1.default, { title: t(Translation_1.Translation.Misc.CancellingReservation), open: visible, size: SimpleModal_1.SimpleModalSize.ExtraSmall, desktopFooter: footers, mobileFooter: footers, onClose: onClose },
90
95
  react_1.default.createElement("div", { className: "u-pad" },
91
- react_1.default.createElement(Text_1.default, null, "This will cancel..."))));
96
+ react_1.default.createElement(Text_1.default, null, t(Translation_1.Translation.Misc.ThisWillCancel)))));
92
97
  };
93
98
  const CodeNumberInformation = (props) => {
94
99
  const { itineraries, booking } = props;
@@ -110,12 +115,12 @@ const CodeNumberInformation = (props) => {
110
115
  [
111
116
  { label: 'Cancelled', value: cancelled, type: Pill_1.PillType.Danger },
112
117
  { label: 'Confirmed', value: confirmed, type: Pill_1.PillType.Success },
113
- ].map((item) => {
118
+ ].map((item, index) => {
114
119
  if (item.value.length > 0) {
115
- return (react_1.default.createElement(react_1.default.Fragment, null,
120
+ return (react_1.default.createElement(react_1.Fragment, { key: index },
116
121
  react_1.default.createElement(Text_1.default, { className: "u-marg-right--light", inline: true, type: Text_1.TextType.Small }, item.label),
117
- item.value.map((row, index) => {
118
- return (react_1.default.createElement(react_1.Fragment, { key: index },
122
+ item.value.map((row, rowIndex) => {
123
+ return (react_1.default.createElement(react_1.Fragment, { key: rowIndex },
119
124
  react_1.default.createElement(Text_1.default, { className: "u-marg-right", inline: true, type: Text_1.TextType.Small },
120
125
  react_1.default.createElement(Pill_1.default, { type: item.type },
121
126
  "#",
@@ -125,16 +130,19 @@ const CodeNumberInformation = (props) => {
125
130
  }
126
131
  }),
127
132
  react_1.default.createElement("div", { className: "u-marg-top" },
128
- react_1.default.createElement(Text_1.default, { className: "u-marg-right--light", inline: true, type: Text_1.TextType.Small }, "Itinerary"),
133
+ react_1.default.createElement(Text_1.default, { className: "u-marg-right--light", inline: true, type: Text_1.TextType.Small }, t(Translation_1.Translation.UserPortal.ReservationSingleScreen.Itinerary)),
129
134
  react_1.default.createElement(Pill_1.default, { variant: Pill_1.PillVariant.Outlined, type: Pill_1.PillType.Grey },
130
135
  "#",
131
136
  booking.itineraryId))));
132
137
  };
138
+ const displayTime = (timeString) => (0, dayjs_1.default)().set('hours', +timeString.slice(0, 2)).set('minute', +timeString.slice(2)).format('h:mm A');
133
139
  const AccountReservationSinglePage = () => {
134
- var _a, _b, _c, _d, _e, _f, _g;
140
+ var _a, _b, _c, _d, _e, _f, _g, _h;
135
141
  const { t } = (0, react_i18next_1.useTranslation)();
142
+ const { hotel } = (0, hooks_1.useCurrentHotel)();
136
143
  const beContext = (0, react_1.useContext)(contexts_1.BookingEngineContext);
137
144
  const { getHotel } = (0, react_1.useContext)(contexts_1.CompanyContext);
145
+ const ccx = (0, react_1.useContext)(contexts_1.CompanyContext);
138
146
  const { getItinerary } = (0, LoggedInUserHook_1.useMember)();
139
147
  const [showingCancellationFor, setShowingCancellationFor] = (0, react_1.useState)(null);
140
148
  const [bookingHotel, setBookingHotel] = (0, react_1.useState)();
@@ -145,7 +153,7 @@ const AccountReservationSinglePage = () => {
145
153
  const booking = getItinerary(params.resId);
146
154
  if (booking === null || booking === void 0 ? void 0 : booking.itinerary) {
147
155
  for (const itinerary of Object.values(booking.itinerary)) {
148
- itineraries.push(Object.assign(Object.assign({}, itinerary), { bookingId: booking.itineraryId }));
156
+ itineraries.push(Object.assign(Object.assign({}, itinerary), { bookingId: booking.itineraryId, hotel: booking.hotel, hotelId: booking.hotelId }));
149
157
  }
150
158
  }
151
159
  return [booking, itineraries];
@@ -157,16 +165,10 @@ const AccountReservationSinglePage = () => {
157
165
  });
158
166
  }
159
167
  }, [booking, getHotel]);
160
- const allCancelled = (0, react_1.useMemo)(() => {
161
- for (const row of itineraries) {
162
- if (row.status !== core_1.IBookingStatus.Cancelled) {
163
- return false;
164
- }
165
- return true;
166
- }
167
- }, [itineraries]);
168
+ const allCancelled = (0, react_1.useMemo)(() => itineraries.every((row) => row.status === core_1.IBookingStatus.Cancelled), [itineraries]);
169
+ const allCancellable = (0, react_1.useMemo)(() => itineraries.every((row) => row.isCancellable), [itineraries]);
168
170
  if (!booking) {
169
- return react_1.default.createElement(react_1.default.Fragment, null, "Loading");
171
+ return react_1.default.createElement(react_1.default.Fragment, null, t(Translation_1.Translation.Misc.Loading));
170
172
  }
171
173
  const { line1, line2, postalCode, country } = (_a = bookingHotel === null || bookingHotel === void 0 ? void 0 : bookingHotel.address) !== null && _a !== void 0 ? _a : {};
172
174
  const onActionClick = (action, item) => {
@@ -182,13 +184,15 @@ const AccountReservationSinglePage = () => {
182
184
  const onPrintClicked = () => {
183
185
  window.print();
184
186
  };
185
- return (react_1.default.createElement("div", null,
186
- react_1.default.createElement("div", { className: "u-marg-top--heavy@m u-marg-top@m- u-marg-bottom--heavy u-print-none" },
187
+ const hotelImageElement = (hotel === null || hotel === void 0 ? void 0 : hotel.logo) && typeof hotel.logo !== 'string' ? hotel.logo : react_1.default.createElement("img", { src: typeof (hotel === null || hotel === void 0 ? void 0 : hotel.logo) === 'string' ? hotel.logo : ccx.logo, alt: "Hotel Logo", className: "u-block" });
188
+ return (react_1.default.createElement("div", { id: `reservation-body-${booking.itineraryId}` },
189
+ !!((_b = booking === null || booking === void 0 ? void 0 : booking.hotel) === null || _b === void 0 ? void 0 : _b.colors) && react_1.default.createElement("style", null, `#reservation-body-${booking.itineraryId} {${(0, Color_1.getAccentOverrideStyleContent)(booking.hotel.colors)}}`),
190
+ react_1.default.createElement("div", { className: "u-marg-top--heavy@m u-marg-top@m- u-marg-bottom--light u-print-none" },
187
191
  react_1.default.createElement(react_router_dom_1.Link, { to: AccountRoutes_1.AccountRoutes.Reservations.path },
188
192
  react_1.default.createElement(BEButton_1.default, { isText: true, icon: Icon_1.IconType.ArrowLeft, size: "small" }, t(Translation_1.Translation.Reservation.BackToYourReservations)))),
189
- react_1.default.createElement("div", { className: "u-flex-align-stretch@m- u-flex u-flex-align-flex-end u-marg-bottom--heavy u-pad-top@m u-flex-direction-column@m- u-print-none" },
193
+ react_1.default.createElement("div", { className: "u-flex-align-stretch@m- u-flex u-flex-align-flex-end u-marg-bottom u-pad-top@m u-flex-direction-column@m- u-print-none" },
190
194
  react_1.default.createElement("div", null,
191
- react_1.default.createElement(Text_1.default, { className: "u-marg-bottom--light" }, StringHelper_1.default.pluralWithCount(itineraries.length, 'Room')),
195
+ react_1.default.createElement(Text_1.default, { className: "u-marg-bottom--light" }, StringHelper_1.default.pluralWithCount(itineraries.length, 'Room', t)),
192
196
  react_1.default.createElement(Headline_1.default, { size: "extra-large", className: "u-marg-bottom--light" }, getRoomNamesString(itineraries)),
193
197
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Body }, bookingHotel === null || bookingHotel === void 0 ? void 0 :
194
198
  bookingHotel.name,
@@ -197,11 +201,16 @@ const AccountReservationSinglePage = () => {
197
201
  react_1.default.createElement("div", { className: "u-flex u-flex-gap u-flex-direction-column@m- u-flex-gap--light@m- u-marg-top--heavy@m-" },
198
202
  react_1.default.createElement(BEButton_1.default, { wide: isMobile, rounded: isMobile, textColor: Color_1.Color.Navy, isText: !isMobile, icon: Icon_1.IconType.Share, iconPosition: "left" }, t(Translation_1.Translation.Reservation.Share)),
199
203
  react_1.default.createElement(BEButton_1.default, { wide: isMobile, mobileWidth: true, rounded: isMobile, textColor: Color_1.Color.Navy, className: "", isText: !isMobile, icon: Icon_1.IconType.Print, iconPosition: "left", onClick: onPrintClicked }, t(Translation_1.Translation.Reservation.Print)),
200
- !allCancelled && (react_1.default.createElement(BEButton_1.default, { danger: true, wide: isMobile, mobileWidth: true, rounded: isMobile, textColor: Color_1.Color.Alert, isText: !isMobile, onClick: () => setShowingCancellationFor(itineraries) }, StringHelper_1.default.plural(itineraries.length, t(Translation_1.Translation.Reservation.CancelReservation)))))),
204
+ !allCancelled && (react_1.default.createElement(react_1.default.Fragment, null,
205
+ ModifyBookingFeature_1.default.isActive() ? (react_1.default.createElement(BEButton_1.default, { wide: isMobile, mobileWidth: true, rounded: isMobile, textColor: Color_1.Color.Navy, isText: !isMobile, disabled: !allCancellable }, StringHelper_1.default.plural(itineraries.length, t(Translation_1.Translation.Reservation.ModifyReservation), t))) : null,
206
+ react_1.default.createElement(BEButton_1.default, { danger: true, wide: isMobile, mobileWidth: true, rounded: isMobile, textColor: Color_1.Color.Alert, isText: !isMobile, onClick: () => setShowingCancellationFor(itineraries), disabled: !allCancellable }, StringHelper_1.default.plural(itineraries.length, t(Translation_1.Translation.Reservation.CancelReservation), t)))))),
201
207
  react_1.default.createElement("span", { className: "u-print-none" },
202
- react_1.default.createElement(LineBreak_1.default, { fullBleed: true })),
203
- react_1.default.createElement("div", { className: "u-marg-bottom--massive u-marg-bottom--none@m- u-print-marg-none" },
204
- react_1.default.createElement(ReservationList_1.default, { actions: [ReservationItem_1.ReservationAction.Cancel, ReservationItem_1.ReservationAction.BookAgain], reservationItems: itineraries, onActionClick: onActionClick, showCancelledNotifications: true })),
208
+ react_1.default.createElement(LineBreak_1.default, { smallMargins: true, fullBleed: true })),
209
+ react_1.default.createElement(PrintOnly_1.default, null,
210
+ react_1.default.createElement("div", { className: "c-header d-inline-block" },
211
+ react_1.default.createElement("div", { className: "c-header__logo u-flex u-flex-align-center" }, hotelImageElement))),
212
+ react_1.default.createElement("div", { className: "u-marg-bottom--massive u-marg-bottom--none@m- u-print-marg-none u-marg-top--heavy" },
213
+ react_1.default.createElement(ReservationList_1.default, { actions: [ReservationItem_1.ReservationAction.Cancel, ReservationItem_1.ReservationAction.Modify, ReservationItem_1.ReservationAction.BookAgain], reservationItems: itineraries, onActionClick: onActionClick, showCancelledNotifications: true })),
205
214
  react_1.default.createElement(LineBreak_1.default, { noMargins: isMobile }),
206
215
  react_1.default.createElement("div", { className: "u-flex u-marg-top--heavy@m-" },
207
216
  react_1.default.createElement(Headline_1.default, { size: "large", bold: true }, t(Translation_1.Translation.Reservation.Total)),
@@ -211,14 +220,12 @@ const AccountReservationSinglePage = () => {
211
220
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: Color_1.Color.DarkGrey }, t(Translation_1.Translation.Reservation.PriceNote)))),
212
221
  react_1.default.createElement("div", { className: "row u-marg-top--massive@m u-marg-top--heavy@m-" },
213
222
  react_1.default.createElement("div", { className: "col-md-4 u-flex u-print-col-md-4" },
214
- react_1.default.createElement(Card_1.Card, { className: "w-100", title: t(Translation_1.Translation.Reservation.ProfileInformation) },
215
- react_1.default.createElement(IconText_1.default, { icon: Icon_1.IconType.Person }, ((_c = (_b = itineraries === null || itineraries === void 0 ? void 0 : itineraries[0]) === null || _b === void 0 ? void 0 : _b.profile) === null || _c === void 0 ? void 0 : _c.firstName) + ' ' + ((_e = (_d = itineraries === null || itineraries === void 0 ? void 0 : itineraries[0]) === null || _d === void 0 ? void 0 : _d.profile) === null || _e === void 0 ? void 0 : _e.lastName)),
216
- react_1.default.createElement(IconText_1.default, { icon: Icon_1.IconType.Email }, (_g = (_f = itineraries === null || itineraries === void 0 ? void 0 : itineraries[0]) === null || _f === void 0 ? void 0 : _f.profile) === null || _g === void 0 ? void 0 : _g.email),
217
- react_1.default.createElement(IconText_1.default, { icon: Icon_1.IconType.CreditCard },
218
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
219
- "\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 1111",
220
- ' ',
221
- react_1.default.createElement(Text_1.default, { inline: true, type: Text_1.TextType.Small, color: Color_1.Color.DarkGrey }, "(Visa)"))))),
223
+ react_1.default.createElement(Card_1.Card, { className: "w-100", title: t(Translation_1.Translation.Navigation.Menu.PaymentInformation) },
224
+ react_1.default.createElement(IconText_1.default, { icon: Icon_1.IconType.Person }, ((_d = (_c = itineraries === null || itineraries === void 0 ? void 0 : itineraries[0]) === null || _c === void 0 ? void 0 : _c.profile) === null || _d === void 0 ? void 0 : _d.firstName) + ' ' + ((_f = (_e = itineraries === null || itineraries === void 0 ? void 0 : itineraries[0]) === null || _e === void 0 ? void 0 : _e.profile) === null || _f === void 0 ? void 0 : _f.lastName)),
225
+ react_1.default.createElement(IconText_1.default, { icon: Icon_1.IconType.Email }, (_h = (_g = itineraries === null || itineraries === void 0 ? void 0 : itineraries[0]) === null || _g === void 0 ? void 0 : _g.profile) === null || _h === void 0 ? void 0 : _h.email),
226
+ react_1.default.createElement(IconText_1.default, { icon: Icon_1.IconType.CreditCard, TextProps: { type: Text_1.TextType.Small } },
227
+ "\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 1111 ",
228
+ react_1.default.createElement("span", { style: { color: Color_1.Color.DarkGrey } }, "(Visa)")))),
222
229
  react_1.default.createElement("div", { className: "col-md-4 u-flex u-print-col-md-4" },
223
230
  react_1.default.createElement(Card_1.Card, { className: "w-100", title: t(Translation_1.Translation.Reservation.HotelInformation) },
224
231
  react_1.default.createElement(IconText_1.default, { icon: Icon_1.IconType.Map },
@@ -238,29 +245,38 @@ const AccountReservationSinglePage = () => {
238
245
  " ",
239
246
  t(Translation_1.Translation.Reservation.Policies)),
240
247
  react_1.default.createElement("div", { className: "u-marg-top--medium" },
241
- react_1.default.createElement("div", { className: "u-w-100" },
242
- react_1.default.createElement("div", { className: "u-flex u-flex-direction-column@m- u-flex-gap--medium@m-" },
248
+ react_1.default.createElement("div", { className: "u-w-100 row" },
249
+ react_1.default.createElement("div", { className: "u-flex u-flex-direction-column@m- u-flex-gap--medium@m- col-6 col-md-3" },
243
250
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
244
251
  react_1.default.createElement("strong", null, t(Translation_1.Translation.Reservation.CheckIn)),
245
252
  react_1.default.createElement("br", null),
246
253
  t(Translation_1.Translation.Reservation.After),
247
- " 2:00 PM"),
254
+ " ",
255
+ displayTime(booking.hotel.checkInTime)),
248
256
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
249
257
  react_1.default.createElement("strong", null, t(Translation_1.Translation.Reservation.CheckOut)),
250
258
  react_1.default.createElement("br", null),
251
- t(Translation_1.Translation.Reservation.After),
252
- " 2:00 PM"),
253
- react_1.default.createElement("div", null, itineraries.map((itinerary) => {
254
- return (react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, key: itinerary.id },
255
- itinerary.roomName,
256
- " - ",
257
- itinerary.rateName));
258
- }))))),
259
- react_1.default.createElement(Text_1.default, { className: "u-marg-top--medium", type: Text_1.TextType.Caption },
260
- t(Translation_1.Translation.Reservation.Policy1),
261
- react_1.default.createElement("br", null),
262
- react_1.default.createElement("br", null),
263
- t(Translation_1.Translation.Reservation.Policy2)))),
259
+ t(Translation_1.Translation.Reservation.Before),
260
+ " ",
261
+ displayTime(booking.hotel.checkOutTime))))),
262
+ react_1.default.createElement("div", { className: "u-marg-bottom" }, itineraries.map((itinerary, index) => (react_1.default.createElement("div", { key: index, className: "u-marg-top--heavy" },
263
+ react_1.default.createElement("div", { className: "u-marg-bottom" },
264
+ react_1.default.createElement(Text_1.default, { key: index, type: Text_1.TextType.Small },
265
+ react_1.default.createElement("strong", null,
266
+ t(Translation_1.Translation.Misc.Room),
267
+ " ",
268
+ index + 1),
269
+ "\u00A0",
270
+ itinerary.roomName,
271
+ " - ",
272
+ itinerary.rateName)),
273
+ react_1.default.createElement("div", { className: "u-marg-bottom" },
274
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, bold: true, className: "u-marg-bottom--light" }, t(Translation_1.Translation.Misc.GuaranteePolicy)),
275
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
276
+ react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: itinerary.guaranteePolicyLongDescription || '' } }))),
277
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, bold: true, className: "u-marg-bottom--light" }, t(Translation_1.Translation.Misc.CancellationPolicy)),
278
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
279
+ react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: itinerary.cancellationPolicyLongDescription || '' } })))))))),
264
280
  react_1.default.createElement(CancelReservationModal, { onClose: onCloseCancellationModal, items: showingCancellationFor, booking: booking, visible: !!showingCancellationFor })));
265
281
  };
266
282
  exports.AccountReservationSinglePage = AccountReservationSinglePage;