@roomstay/frontend 2.1.33 → 2.2.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 (468) 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 +1 -1
  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 -2
  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/RoomBuilderProgress.js +1 -0
  205. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js.map +1 -1
  206. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +16 -18
  207. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  208. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +2 -2
  209. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  210. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js +6 -3
  211. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js.map +1 -1
  212. package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js +3 -1
  213. package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js.map +1 -1
  214. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js +7 -8
  215. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js.map +1 -1
  216. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +4 -6
  217. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
  218. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js +4 -5
  219. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js.map +1 -1
  220. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js +7 -5
  221. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js.map +1 -1
  222. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js +4 -1
  223. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js.map +1 -1
  224. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js +5 -2
  225. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js.map +1 -1
  226. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js +11 -10
  227. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js.map +1 -1
  228. package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js +1 -1
  229. package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js.map +1 -1
  230. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js +7 -8
  231. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js.map +1 -1
  232. package/dist/src/components/summary/BEMobileSummaryModal.js +1 -1
  233. package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
  234. package/dist/src/components/summary/BESummaryPerkBlock.js +4 -1
  235. package/dist/src/components/summary/BESummaryPerkBlock.js.map +1 -1
  236. package/dist/src/components/summary/BESummaryPrivacyPolicy.js +5 -10
  237. package/dist/src/components/summary/BESummaryPrivacyPolicy.js.map +1 -1
  238. package/dist/src/components/summary/BESummaryRoomRow.js +4 -6
  239. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  240. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js +5 -1
  241. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js.map +1 -1
  242. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +1 -0
  243. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  244. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +36 -13
  245. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  246. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +26 -2
  247. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  248. package/dist/src/contexts/ConfirmationFormContext.d.ts +0 -2
  249. package/dist/src/contexts/ConfirmationFormContext.js +0 -3
  250. package/dist/src/contexts/ConfirmationFormContext.js.map +1 -1
  251. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +13 -8
  252. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  253. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.d.ts +1 -6
  254. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +24 -18
  255. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  256. package/dist/src/contexts/HotelOverridesContext.js +4 -0
  257. package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
  258. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.d.ts +10 -6
  259. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.js.map +1 -1
  260. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +76 -26
  261. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
  262. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContext.d.ts +8 -5
  263. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContext.js.map +1 -1
  264. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +35 -4
  265. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
  266. package/dist/src/engines/BaseEngine.d.ts +2 -1
  267. package/dist/src/engines/BaseEngine.js +1 -1
  268. package/dist/src/engines/BaseEngine.js.map +1 -1
  269. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
  270. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +24 -25
  271. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  272. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.d.ts +22 -0
  273. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.js +33 -0
  274. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.js.map +1 -0
  275. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.d.ts +6 -0
  276. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js +116 -0
  277. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js.map +1 -0
  278. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js +11 -10
  279. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js.map +1 -1
  280. package/dist/src/errors/GetAvailabilityError.d.ts +2 -1
  281. package/dist/src/errors/GetAvailabilityError.js +10 -3
  282. package/dist/src/errors/GetAvailabilityError.js.map +1 -1
  283. package/dist/src/hooks/HistoryConsistentPush.d.ts +1 -0
  284. package/dist/src/hooks/HistoryConsistentPush.js +12 -0
  285. package/dist/src/hooks/HistoryConsistentPush.js.map +1 -0
  286. package/dist/src/hooks/LoggedInUserHook.d.ts +3 -3
  287. package/dist/src/hooks/Query.js +2 -6
  288. package/dist/src/hooks/Query.js.map +1 -1
  289. package/dist/src/hooks/UpdateQueryParameters.d.ts +1 -0
  290. package/dist/src/hooks/UpdateQueryParameters.js +16 -0
  291. package/dist/src/hooks/UpdateQueryParameters.js.map +1 -0
  292. package/dist/src/hooks/VGSHooks.d.ts +11 -1
  293. package/dist/src/hooks/VGSHooks.js +26 -11
  294. package/dist/src/hooks/VGSHooks.js.map +1 -1
  295. package/dist/src/index.d.ts +2 -3
  296. package/dist/src/index.js +2 -0
  297. package/dist/src/index.js.map +1 -1
  298. package/dist/src/mockApi/HotelAPI.d.ts +1 -1
  299. package/dist/src/mockApi/HotelAPI.js.map +1 -1
  300. package/dist/src/models/Api/HotelDTO.d.ts +11 -3
  301. package/dist/src/models/Api/HotelDTO.js +17 -8
  302. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  303. package/dist/src/models/Api/HotelOverrideDTO.d.ts +1 -0
  304. package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
  305. package/dist/src/models/Api/ReservationsDTO.d.ts +2 -0
  306. package/dist/src/models/Api/ReservationsDTO.js.map +1 -1
  307. package/dist/src/models/AppQueryParameters.d.ts +14 -0
  308. package/dist/src/models/AppQueryParameters.js +19 -0
  309. package/dist/src/models/AppQueryParameters.js.map +1 -0
  310. package/dist/src/models/BookingWizard/BookingWizardProperty.d.ts +2 -2
  311. package/dist/src/models/BookingWizard/BookingWizardProperty.js.map +1 -1
  312. package/dist/src/models/Client/Hotel/ColorProfile.d.ts +3 -0
  313. package/dist/src/models/Client/Hotel/ColorProfile.js.map +1 -1
  314. package/dist/src/models/Client/Hotel/Company.d.ts +2 -2
  315. package/dist/src/models/Client/Hotel/Company.js.map +1 -1
  316. package/dist/src/models/Client/Hotel/Hotel.d.ts +15 -5
  317. package/dist/src/models/Client/Hotel/Hotel.js +3 -1
  318. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  319. package/dist/src/models/Confirmation.d.ts +1 -1
  320. package/dist/src/models/Confirmation.js.map +1 -1
  321. package/dist/src/models/Room/Filters/Filter.d.ts +2 -1
  322. package/dist/src/models/Room/Filters/Filter.js.map +1 -1
  323. package/dist/src/models/Room/Filters/RateTypeFilter.d.ts +2 -1
  324. package/dist/src/models/Room/Filters/RateTypeFilter.js +3 -2
  325. package/dist/src/models/Room/Filters/RateTypeFilter.js.map +1 -1
  326. package/dist/src/models/Room/Filters/RoomTypeFilter.d.ts +2 -1
  327. package/dist/src/models/Room/Filters/RoomTypeFilter.js +3 -2
  328. package/dist/src/models/Room/Filters/RoomTypeFilter.js.map +1 -1
  329. package/dist/src/pages/account/AccountHome/AccountHomePage.js +9 -10
  330. package/dist/src/pages/account/AccountHome/AccountHomePage.js.map +1 -1
  331. package/dist/src/pages/account/AccountRouter.js +7 -9
  332. package/dist/src/pages/account/AccountRouter.js.map +1 -1
  333. package/dist/src/pages/account/Details/AccountDetailsCardsPage.js +19 -32
  334. package/dist/src/pages/account/Details/AccountDetailsCardsPage.js.map +1 -1
  335. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js +9 -7
  336. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js.map +1 -1
  337. package/dist/src/pages/account/Details/AccountDetailsProfilePage.js +25 -38
  338. package/dist/src/pages/account/Details/AccountDetailsProfilePage.js.map +1 -1
  339. package/dist/src/pages/account/Help/AccountHelpPage.js +16 -25
  340. package/dist/src/pages/account/Help/AccountHelpPage.js.map +1 -1
  341. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +68 -52
  342. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
  343. package/dist/src/pages/account/Reservations/AccountReservationsPage.js.map +1 -1
  344. package/dist/src/pages/findReservation/FindReservation.js +40 -23
  345. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  346. package/dist/src/pages/findReservation/ReservationRow.js +10 -9
  347. package/dist/src/pages/findReservation/ReservationRow.js.map +1 -1
  348. package/dist/src/pages/findReservation/ReservationRowModal.js +3 -3
  349. package/dist/src/pages/findReservation/ReservationRowModal.js.map +1 -1
  350. package/dist/src/pages/hotel/HotelInfo.js +6 -6
  351. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  352. package/dist/src/pages/steps/Step.d.ts +2 -2
  353. package/dist/src/pages/steps/Step.js.map +1 -1
  354. package/dist/src/pages/steps/StepAddon/StepAddon.d.ts +2 -2
  355. package/dist/src/pages/steps/StepAddon/StepAddon.js.map +1 -1
  356. package/dist/src/pages/steps/StepConfirmation/StepConfirmation.d.ts +2 -2
  357. package/dist/src/pages/steps/StepConfirmation/StepConfirmation.js.map +1 -1
  358. package/dist/src/pages/steps/StepDate/StepDate.d.ts +2 -2
  359. package/dist/src/pages/steps/StepDate/StepDate.js.map +1 -1
  360. package/dist/src/pages/steps/StepDate/StepDateComponent.js +1 -1
  361. package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
  362. package/dist/src/pages/steps/StepHotel/StepHotel.d.ts +2 -2
  363. package/dist/src/pages/steps/StepHotel/StepHotel.js.map +1 -1
  364. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +10 -7
  365. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
  366. package/dist/src/pages/steps/StepRoom/StepRoom.d.ts +2 -2
  367. package/dist/src/pages/steps/StepRoom/StepRoom.js.map +1 -1
  368. package/dist/src/pages/steps/StepThanks/StepThanks.d.ts +2 -2
  369. package/dist/src/pages/steps/StepThanks/StepThanks.js.map +1 -1
  370. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +5 -0
  371. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
  372. package/dist/src/providers/FeatureProvider.js +2 -0
  373. package/dist/src/providers/FeatureProvider.js.map +1 -1
  374. package/dist/src/providers/RoomstayThemeEngine.d.ts +3 -3
  375. package/dist/src/providers/RoomstayThemeEngine.js +4 -18
  376. package/dist/src/providers/RoomstayThemeEngine.js.map +1 -1
  377. package/dist/src/providers/feature/ModifyBookingFeature.d.ts +6 -0
  378. package/dist/src/providers/feature/ModifyBookingFeature.js +10 -0
  379. package/dist/src/providers/feature/ModifyBookingFeature.js.map +1 -0
  380. package/dist/src/stories/EventCarousel.stories.d.ts +6 -0
  381. package/dist/src/stories/EventCarousel.stories.js +236 -0
  382. package/dist/src/stories/EventCarousel.stories.js.map +1 -0
  383. package/dist/src/stories/RadioButton.stories.d.ts +3 -3
  384. package/dist/src/stories/RadioButtonGroup.stories.d.ts +4 -1
  385. package/dist/src/stories/RadioButtonGroup.stories.js +73 -1
  386. package/dist/src/stories/RadioButtonGroup.stories.js.map +1 -1
  387. package/dist/src/translations/Translation.d.ts +196 -8
  388. package/dist/src/translations/Translation.js +198 -10
  389. package/dist/src/translations/Translation.js.map +1 -1
  390. package/dist/src/translations/languages/en-gb.js +198 -10
  391. package/dist/src/translations/languages/en-gb.js.map +1 -1
  392. package/dist/src/util/Color.d.ts +3 -0
  393. package/dist/src/util/Color.js +21 -1
  394. package/dist/src/util/Color.js.map +1 -1
  395. package/dist/src/util/CurrencyHelper.d.ts +11 -3
  396. package/dist/src/util/CurrencyHelper.js +306 -5
  397. package/dist/src/util/CurrencyHelper.js.map +1 -1
  398. package/dist/src/util/EventsHelper.d.ts +11 -0
  399. package/dist/src/util/EventsHelper.js +43 -0
  400. package/dist/src/util/EventsHelper.js.map +1 -0
  401. package/dist/src/util/StringHelper.d.ts +2 -2
  402. package/dist/src/util/StringHelper.js +5 -4
  403. package/dist/src/util/StringHelper.js.map +1 -1
  404. package/dist/src/util/TextAlignment.d.ts +2 -1
  405. package/dist/src/util/TextAlignment.js +1 -0
  406. package/dist/src/util/TextAlignment.js.map +1 -1
  407. package/dist/src/util/Validation.d.ts +17 -13
  408. package/dist/src/util/Validation.js +34 -18
  409. package/dist/src/util/Validation.js.map +1 -1
  410. package/dist/test.bundle.js +1 -2
  411. package/dist/tests/jest/engines/RoomstayThemeEngine.test.d.ts +1 -0
  412. package/dist/tests/jest/engines/RoomstayThemeEngine.test.js +41 -0
  413. package/dist/tests/jest/engines/RoomstayThemeEngine.test.js.map +1 -0
  414. package/dist/tests/jest/events/EventManager.test.d.ts +1 -0
  415. package/dist/tests/jest/events/EventManager.test.js +101 -0
  416. package/dist/tests/jest/events/EventManager.test.js.map +1 -0
  417. package/dist/tests/jest/helpers/ObjectHelper.test.d.ts +1 -0
  418. package/dist/tests/jest/helpers/ObjectHelper.test.js +72 -0
  419. package/dist/tests/jest/helpers/ObjectHelper.test.js.map +1 -0
  420. package/dist/tests/jest/models/RoomRate.test.d.ts +1 -0
  421. package/dist/tests/jest/models/RoomRate.test.js +133 -0
  422. package/dist/tests/jest/models/RoomRate.test.js.map +1 -0
  423. package/dist/tests/jest/providers/LanguageProvider.test.d.ts +1 -0
  424. package/dist/tests/jest/providers/LanguageProvider.test.js +32 -0
  425. package/dist/tests/jest/providers/LanguageProvider.test.js.map +1 -0
  426. package/dist/tests/jest/providers/SessionProvider.test.d.ts +1 -0
  427. package/dist/tests/jest/providers/SessionProvider.test.js +230 -0
  428. package/dist/tests/jest/providers/SessionProvider.test.js.map +1 -0
  429. package/dist/tests/jest/providers/storage/LocalStorageProvider.test.d.ts +1 -0
  430. package/dist/tests/jest/providers/storage/LocalStorageProvider.test.js +126 -0
  431. package/dist/tests/jest/providers/storage/LocalStorageProvider.test.js.map +1 -0
  432. package/dist/tests/jest/reducers/BasketReducer.test.d.ts +1 -0
  433. package/dist/tests/jest/reducers/BasketReducer.test.js +103 -0
  434. package/dist/tests/jest/reducers/BasketReducer.test.js.map +1 -0
  435. package/dist/tests/offline/RoomstayBestRateAlert.d.ts +1 -0
  436. package/dist/tests/offline/RoomstayBestRateAlert.js +48 -0
  437. package/dist/tests/offline/RoomstayBestRateAlert.js.map +1 -0
  438. package/dist/tests/offline/entry/RSCompany.js +7 -2
  439. package/dist/tests/offline/entry/RSCompany.js.map +1 -1
  440. package/dist/tests/offline/entry/ReactWrapper.d.ts +1 -0
  441. package/dist/tests/offline/entry/ReactWrapper.js +140 -0
  442. package/dist/tests/offline/entry/ReactWrapper.js.map +1 -0
  443. package/dist/tests/offline/entry/allEngines.d.ts +1 -0
  444. package/dist/tests/offline/entry/allEngines.js +50 -0
  445. package/dist/tests/offline/entry/allEngines.js.map +1 -0
  446. package/dist/tests/offline/entry/components/TestPicker.d.ts +1 -0
  447. package/dist/tests/offline/entry/components/TestPicker.js +214 -0
  448. package/dist/tests/offline/entry/components/TestPicker.js.map +1 -0
  449. package/dist/tests/offline/entry/context/EngineContext.d.ts +9 -0
  450. package/dist/tests/offline/entry/context/EngineContext.js +37 -0
  451. package/dist/tests/offline/entry/context/EngineContext.js.map +1 -0
  452. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.d.ts +1 -0
  453. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js +68 -0
  454. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js.map +1 -0
  455. package/dist/tests/setupTests.d.ts +0 -0
  456. package/dist/tests/setupTests.js +12 -0
  457. package/dist/tests/setupTests.js.map +1 -0
  458. package/dist/vendors.bundle.js +1 -1
  459. package/package.json +3 -3
  460. package/dist/14.bundle.js +0 -1
  461. package/dist/559.bundle.js +0 -1
  462. package/dist/848.bundle.js +0 -1
  463. package/dist/962.bundle.js +0 -1
  464. package/dist/main.bundle.js.LICENSE.txt +0 -5
  465. package/dist/src/components/temp/Login.d.ts +0 -2
  466. package/dist/src/components/temp/Login.js +0 -79
  467. package/dist/src/components/temp/Login.js.map +0 -1
  468. package/dist/test.bundle.js.LICENSE.txt +0 -5
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const Filter_1 = __importDefault(require("./Filter"));
7
+ const Translation_1 = require("../../../translations/Translation");
7
8
  class RoomTypeFilter extends Filter_1.default {
8
9
  constructor(roomNames) {
9
10
  super();
@@ -12,8 +13,8 @@ class RoomTypeFilter extends Filter_1.default {
12
13
  getVisibleRooms() {
13
14
  return this.visibleRooms;
14
15
  }
15
- getLabel() {
16
- return 'Room Type';
16
+ getLabel(t) {
17
+ return t(Translation_1.Translation.Step.Room.Filter.RoomType);
17
18
  }
18
19
  check(room) {
19
20
  if (this.visibleRooms.includes(room.name) || this.visibleRooms.includes(room.code)) {
@@ -1 +1 @@
1
- {"version":3,"file":"RoomTypeFilter.js","sourceRoot":"/","sources":["src/models/Room/Filters/RoomTypeFilter.ts"],"names":[],"mappings":";;;;;AAAA,0EAAkD;AAGlD,MAAqB,cAAe,SAAQ,gBAAM;IAE9C,YAAmB,SAAmB;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAClC,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,QAAQ;QACX,OAAO,WAAW,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,IAAU;QACnB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAc,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAc,CAAC,EAAE;YACpG,OAAO,IAAI,CAAC;SACf;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAtBD,iCAsBC","sourcesContent":["import Filter from '@/models/Room/Filters/Filter';\nimport { Room } from '@/models/Room/Room';\n\nexport default class RoomTypeFilter extends Filter {\n private visibleRooms: string[];\n public constructor(roomNames: string[]) {\n super();\n this.visibleRooms = roomNames;\n }\n\n public getVisibleRooms() {\n return this.visibleRooms;\n }\n\n public getLabel() {\n return 'Room Type';\n }\n\n public check(room: Room) {\n if (this.visibleRooms.includes(room.name as string) || this.visibleRooms.includes(room.code as string)) {\n return room;\n }\n\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"RoomTypeFilter.js","sourceRoot":"/","sources":["src/models/Room/Filters/RoomTypeFilter.ts"],"names":[],"mappings":";;;;;AAAA,0EAAkD;AAElD,4DAAyD;AAGzD,MAAqB,cAAe,SAAQ,gBAAM;IAG9C,YAAmB,SAAmB;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAClC,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,QAAQ,CAAC,CAAY;QACxB,OAAO,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,IAAU;QACnB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAc,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAc,CAAC,EAAE;YACpG,OAAO,IAAI,CAAC;SACf;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAvBD,iCAuBC","sourcesContent":["import Filter from '@/models/Room/Filters/Filter';\nimport { Room } from '@/models/Room/Room';\nimport { Translation } from '@/translations/Translation';\nimport { TFunction } from 'i18next';\n\nexport default class RoomTypeFilter extends Filter {\n private visibleRooms: string[];\n\n public constructor(roomNames: string[]) {\n super();\n this.visibleRooms = roomNames;\n }\n\n public getVisibleRooms() {\n return this.visibleRooms;\n }\n\n public getLabel(t: TFunction) {\n return t(Translation.Step.Room.Filter.RoomType);\n }\n\n public check(room: Room) {\n if (this.visibleRooms.includes(room.name as string) || this.visibleRooms.includes(room.code as string)) {\n return room;\n }\n\n return null;\n }\n}\n"]}
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.AccountHomePage = void 0;
30
- const react_1 = __importDefault(require("react"));
30
+ const react_1 = __importStar(require("react"));
31
31
  const ReservationItem_1 = __importDefault(require("../../../components/reservation/ReservationItem"));
32
32
  const Headline_1 = __importDefault(require("../../../components/generic/Headline"));
33
33
  const Text_1 = __importStar(require("../../../components/generic/Text"));
@@ -40,15 +40,14 @@ const StepManager_1 = __importDefault(require("../../../util/StepManager"));
40
40
  const hooks_1 = require("../../../hooks/index.js");
41
41
  const react_i18next_1 = require("react-i18next");
42
42
  const Translation_1 = require("translations/Translation");
43
- const react_2 = require("react");
44
43
  const contexts_1 = require("../../../contexts/index.js");
45
44
  const ScreenSize_1 = __importDefault(require("../../../util/ScreenSize"));
46
45
  const AccountRoutes_1 = require("../AccountRoutes");
47
- const RoomstayThemeEngine_1 = __importDefault(require("../../../providers/RoomstayThemeEngine"));
46
+ const HomeEmptyReservation_1 = __importDefault(require("../../../components/graphics/HomeEmptyReservation"));
48
47
  const AccountHomePage = () => {
49
48
  const { fullName, upcomingBookings } = (0, hooks_1.useMember)();
50
49
  const { t } = (0, react_i18next_1.useTranslation)();
51
- const context = (0, react_2.useContext)(contexts_1.BookingEngineContext);
50
+ const context = (0, react_1.useContext)(contexts_1.BookingEngineContext);
52
51
  const isMobile = context.screenSize <= ScreenSize_1.default.Large;
53
52
  const firstStepUrl = StepManager_1.default.getFirstStep().getStepUrl();
54
53
  const hasBookings = (upcomingBookings === null || upcomingBookings === void 0 ? void 0 : upcomingBookings.length) > 0;
@@ -63,9 +62,9 @@ const AccountHomePage = () => {
63
62
  fullName,
64
63
  "!"),
65
64
  hasBookings ? (react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Body }, t(Translation_1.Translation.UserPortal.HomeScreen.Subtitle))) : (react_1.default.createElement(Text_1.default, { className: "u-marg-top" }, t(Translation_1.Translation.Reservation.EmptyPage.SubTitle)))),
66
- react_1.default.createElement("div", { className: "u-marg-bottom--heavy" }, hasBookings ? (react_1.default.createElement(ReservationItem_1.default, { itineraryItem: upcomingBookings === null || upcomingBookings === void 0 ? void 0 : upcomingBookings[0] })) : (react_1.default.createElement("div", { className: "u-marg-top--heavy u-flex u-flex-align-center u-flex-direction-column@l- u-flex-gap" },
65
+ react_1.default.createElement("div", { className: "u-marg-bottom--heavy" }, hasBookings ? (react_1.default.createElement(ReservationItem_1.default, { itineraryItem: upcomingBookings === null || upcomingBookings === void 0 ? void 0 : upcomingBookings[0], defaultEventsExpanded: true })) : (react_1.default.createElement("div", { className: "u-marg-top--heavy u-flex u-flex-align-center u-flex-direction-column@l- u-flex-gap" },
67
66
  react_1.default.createElement("div", null,
68
- react_1.default.createElement("img", { className: "mw-100", src: RoomstayThemeEngine_1.default.getImageAssetUrl('account/account-home-empty-graphic.svg'), alt: "Account homepage image" })),
67
+ react_1.default.createElement(HomeEmptyReservation_1.default, { className: "mw-100" })),
69
68
  react_1.default.createElement("div", { className: "u-marg-top--heavy@m-" },
70
69
  react_1.default.createElement(Headline_1.default, { size: "large" }, t(Translation_1.Translation.Reservation.EmptyPage.Message)),
71
70
  react_1.default.createElement(Text_1.default, { color: Color_1.Color.DarkGrey, type: Text_1.TextType.Small, className: "u-marg-top--light" }, t(Translation_1.Translation.Reservation.EmptyPage.SubMessage)),
@@ -76,28 +75,28 @@ const AccountHomePage = () => {
76
75
  react_1.default.createElement(BEButton_1.default, { wide: isMobile, rounded: true, icon: Icon_1.IconType.ArrowRight, iconPosition: "right" }, t(Translation_1.Translation.Reservation.EmptyPage.SeeAll)))))))),
77
76
  react_1.default.createElement("div", { className: "row" },
78
77
  react_1.default.createElement("div", { className: "col-md-3" },
79
- react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Info, title: "View all bookings", description: "See all of your bookings, past, present and cancelled.", link: {
78
+ react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Info, title: t(Translation_1.Translation.UserPortal.HomeScreen.ViewAllBookings), description: "See all of your bookings, past, present and cancelled.", link: {
80
79
  text: 'See list',
81
80
  pathTo: AccountRoutes_1.AccountRoutes.Reservations.path,
82
81
  icon: 'arrow',
83
82
  color: Color_1.Color.Accent,
84
83
  } })),
85
84
  react_1.default.createElement("div", { className: "col-md-3" },
86
- react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Person, title: "Profile Information", description: "Edit your personal details, like address, and name", link: {
85
+ react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Person, title: t(Translation_1.Translation.Navigation.Menu.ProfileInformation), description: "Edit your personal details, like address, and name", link: {
87
86
  text: 'Edit Info',
88
87
  pathTo: AccountRoutes_1.AccountRoutes.ProfileDetails.path,
89
88
  icon: 'arrow',
90
89
  color: Color_1.Color.Accent,
91
90
  } })),
92
91
  react_1.default.createElement("div", { className: "col-md-3" },
93
- react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.CreditCard, title: "Payment Information", description: "Effortlessly manage cards for smoother checkout", link: {
92
+ react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.CreditCard, title: t(Translation_1.Translation.Navigation.Menu.PaymentInformation), description: "Effortlessly manage cards for smoother checkout", link: {
94
93
  text: 'Manage cards',
95
94
  pathTo: AccountRoutes_1.AccountRoutes.CardDetails.path,
96
95
  icon: 'arrow',
97
96
  color: Color_1.Color.Accent,
98
97
  } })),
99
98
  react_1.default.createElement("div", { className: "col-md-3" },
100
- react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Time, title: "Need Help?", description: "Connect with our hotel staff for prompt assistance", link: {
99
+ react_1.default.createElement(IconNavCard_1.IconNavCard, { icon: Icon_1.IconType.Time, title: t(Translation_1.Translation.Navigation.Menu.NeedHelp), description: "Connect with our hotel staff for prompt assistance", link: {
101
100
  text: 'Contact now',
102
101
  pathTo: AccountRoutes_1.AccountRoutes.Help.path,
103
102
  icon: 'arrow',
@@ -1 +1 @@
1
- {"version":3,"file":"AccountHomePage.js","sourceRoot":"/","sources":["src/pages/account/AccountHome/AccountHomePage.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReservationItem from '@/components/reservation/ReservationItem';\nimport Headline from '@/components/generic/Headline';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { IconNavCard } from '@/components/generic/Card/IconNavCard/IconNavCard';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport { Color } from '@/util/Color';\nimport BEButton from '@/components/generic/BEButton';\nimport { Link } from 'react-router-dom';\nimport StepManager from '@/util/StepManager';\nimport { useMember } from '@frontend/hooks';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\nimport { useContext } from 'react';\nimport { BookingEngineContext, IRoomstayMemberBookingItemWithRef } from '@frontend/contexts';\nimport ScreenSize from '@/util/ScreenSize';\nimport { AccountRoutes } from '@/pages/account/AccountRoutes';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\n\nexport const AccountHomePage = () => {\n const { fullName, upcomingBookings } = useMember();\n const { t } = useTranslation();\n\n const context = useContext(BookingEngineContext);\n const isMobile = context.screenSize <= ScreenSize.Large;\n\n const firstStepUrl = StepManager.getFirstStep().getStepUrl();\n\n const hasBookings = (upcomingBookings?.length as number) > 0;\n\n return (\n <div>\n <div className=\"u-marg-top--heavy@m u-marg-top@m- u-marg-bottom\">\n <Link to={StepManager.getFirstStep().getStepUrl()}>\n <BEButton isText icon={IconType.ArrowLeft} size=\"small\">\n {t(Translation.UserPortal.HomeScreen.BackToBooking)}\n </BEButton>\n </Link>\n </div>\n <div className=\"u-marg-bottom--heavy u-pad-top@m\">\n <Headline size=\"extra-large\" className=\"u-marg-bottom\">\n {t(Translation.UserPortal.HomeScreen.Title)} {fullName}!\n </Headline>\n {hasBookings ? (\n <Text type={TextType.Body}>{t(Translation.UserPortal.HomeScreen.Subtitle)}</Text>\n ) : (\n <Text className=\"u-marg-top\">{t(Translation.Reservation.EmptyPage.SubTitle)}</Text>\n )}\n </div>\n\n <div className=\"u-marg-bottom--heavy\">\n {hasBookings ? (\n <ReservationItem itineraryItem={upcomingBookings?.[0] as IRoomstayMemberBookingItemWithRef} />\n ) : (\n <div className=\"u-marg-top--heavy u-flex u-flex-align-center u-flex-direction-column@l- u-flex-gap\">\n <div>\n <img className=\"mw-100\" src={RoomstayThemeEngine.getImageAssetUrl('account/account-home-empty-graphic.svg')} alt=\"Account homepage image\" />\n </div>\n <div className=\"u-marg-top--heavy@m-\">\n <Headline size=\"large\">{t(Translation.Reservation.EmptyPage.Message)}</Headline>\n <Text color={Color.DarkGrey} type={TextType.Small} className=\"u-marg-top--light\">\n {t(Translation.Reservation.EmptyPage.SubMessage)}\n </Text>\n <div className=\"u-marg-top--heavy u-flex u-flex-flex-start u-flex-gap--light u-flex-direction-column@l-\">\n <Link to={firstStepUrl}>\n <BEButton wide={isMobile} rounded filled icon={IconType.ArrowRight} iconPosition=\"right\" primary>\n {t(Translation.Reservation.EmptyPage.SearchRooms)}\n </BEButton>\n </Link>\n <Link to={AccountRoutes.Reservations.path}>\n <BEButton wide={isMobile} rounded icon={IconType.ArrowRight} iconPosition=\"right\">\n {t(Translation.Reservation.EmptyPage.SeeAll)}\n </BEButton>\n </Link>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div className=\"row\">\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Info}\n title=\"View all bookings\"\n description=\"See all of your bookings, past, present and cancelled.\"\n link={{\n text: 'See list',\n pathTo: AccountRoutes.Reservations.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Person}\n title=\"Profile Information\"\n description=\"Edit your personal details, like address, and name\"\n link={{\n text: 'Edit Info',\n pathTo: AccountRoutes.ProfileDetails.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.CreditCard}\n title=\"Payment Information\"\n description=\"Effortlessly manage cards for smoother checkout\"\n link={{\n text: 'Manage cards',\n pathTo: AccountRoutes.CardDetails.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Time}\n title=\"Need Help?\"\n description=\"Connect with our hotel staff for prompt assistance\"\n link={{\n text: 'Contact now',\n pathTo: AccountRoutes.Help.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"AccountHomePage.js","sourceRoot":"/","sources":["src/pages/account/AccountHome/AccountHomePage.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport ReservationItem from '@/components/reservation/ReservationItem';\nimport Headline from '@/components/generic/Headline';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { IconNavCard } from '@/components/generic/Card/IconNavCard/IconNavCard';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport { Color } from '@/util/Color';\nimport BEButton from '@/components/generic/BEButton';\nimport { Link } from 'react-router-dom';\nimport StepManager from '@/util/StepManager';\nimport { useMember } from '@frontend/hooks';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\nimport { BookingEngineContext, IRoomstayMemberBookingItemWithRefAndHotelDetails } from '@frontend/contexts';\nimport ScreenSize from '@/util/ScreenSize';\nimport { AccountRoutes } from '@/pages/account/AccountRoutes';\nimport HomeEmptyReservation from '@/components/graphics/HomeEmptyReservation';\n\nexport const AccountHomePage = () => {\n const { fullName, upcomingBookings } = useMember();\n const { t } = useTranslation();\n\n const context = useContext(BookingEngineContext);\n const isMobile = context.screenSize <= ScreenSize.Large;\n\n const firstStepUrl = StepManager.getFirstStep().getStepUrl();\n\n const hasBookings = (upcomingBookings?.length as number) > 0;\n\n return (\n <div>\n <div className=\"u-marg-top--heavy@m u-marg-top@m- u-marg-bottom\">\n <Link to={StepManager.getFirstStep().getStepUrl()}>\n <BEButton isText icon={IconType.ArrowLeft} size=\"small\">\n {t(Translation.UserPortal.HomeScreen.BackToBooking)}\n </BEButton>\n </Link>\n </div>\n <div className=\"u-marg-bottom--heavy u-pad-top@m\">\n <Headline size=\"extra-large\" className=\"u-marg-bottom\">\n {t(Translation.UserPortal.HomeScreen.Title)} {fullName}!\n </Headline>\n {hasBookings ? (\n <Text type={TextType.Body}>{t(Translation.UserPortal.HomeScreen.Subtitle)}</Text>\n ) : (\n <Text className=\"u-marg-top\">{t(Translation.Reservation.EmptyPage.SubTitle)}</Text>\n )}\n </div>\n\n <div className=\"u-marg-bottom--heavy\">\n {hasBookings ? (\n <ReservationItem itineraryItem={upcomingBookings?.[0] as IRoomstayMemberBookingItemWithRefAndHotelDetails} defaultEventsExpanded />\n ) : (\n <div className=\"u-marg-top--heavy u-flex u-flex-align-center u-flex-direction-column@l- u-flex-gap\">\n <div>\n <HomeEmptyReservation className=\"mw-100\" />\n </div>\n <div className=\"u-marg-top--heavy@m-\">\n <Headline size=\"large\">{t(Translation.Reservation.EmptyPage.Message)}</Headline>\n <Text color={Color.DarkGrey} type={TextType.Small} className=\"u-marg-top--light\">\n {t(Translation.Reservation.EmptyPage.SubMessage)}\n </Text>\n <div className=\"u-marg-top--heavy u-flex u-flex-flex-start u-flex-gap--light u-flex-direction-column@l-\">\n <Link to={firstStepUrl}>\n <BEButton wide={isMobile} rounded filled icon={IconType.ArrowRight} iconPosition=\"right\" primary>\n {t(Translation.Reservation.EmptyPage.SearchRooms)}\n </BEButton>\n </Link>\n <Link to={AccountRoutes.Reservations.path}>\n <BEButton wide={isMobile} rounded icon={IconType.ArrowRight} iconPosition=\"right\">\n {t(Translation.Reservation.EmptyPage.SeeAll)}\n </BEButton>\n </Link>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div className=\"row\">\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Info}\n title={t(Translation.UserPortal.HomeScreen.ViewAllBookings)}\n description=\"See all of your bookings, past, present and cancelled.\"\n link={{\n text: 'See list',\n pathTo: AccountRoutes.Reservations.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Person}\n title={t(Translation.Navigation.Menu.ProfileInformation)}\n description=\"Edit your personal details, like address, and name\"\n link={{\n text: 'Edit Info',\n pathTo: AccountRoutes.ProfileDetails.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.CreditCard}\n title={t(Translation.Navigation.Menu.PaymentInformation)}\n description=\"Effortlessly manage cards for smoother checkout\"\n link={{\n text: 'Manage cards',\n pathTo: AccountRoutes.CardDetails.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n\n <div className=\"col-md-3\">\n <IconNavCard\n icon={IconType.Time}\n title={t(Translation.Navigation.Menu.NeedHelp)}\n description=\"Connect with our hotel staff for prompt assistance\"\n link={{\n text: 'Contact now',\n pathTo: AccountRoutes.Help.path,\n icon: 'arrow',\n color: Color.Accent,\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n"]}
@@ -14,17 +14,15 @@ const AccountDetailsProfilePage_1 = require("./Details/AccountDetailsProfilePage
14
14
  const AccountDetailsCardsPage_1 = require("./Details/AccountDetailsCardsPage");
15
15
  const AccountHelpPage_1 = require("./Help/AccountHelpPage");
16
16
  const AccountRoutes_1 = require("./AccountRoutes");
17
- const PrivateRoute_1 = require("../../containers/PrivateRoute");
18
17
  const AccountRouter = () => {
19
18
  return (react_1.default.createElement(react_1.default.Fragment, null,
20
- react_1.default.createElement(PrivateRoute_1.PrivateRoute, { path: "/account" },
21
- react_1.default.createElement(AccountOutlet_1.AccountOutlet, null,
22
- react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.Home.path, component: AccountHomePage_1.AccountHomePage }),
23
- react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.Reservations.matchPath, component: AccountReservationsPage_1.AccountReservationPage, exact: true }),
24
- react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.SingleReservation.matchPath, component: AccountReservationSinglePage_1.AccountReservationSinglePage }),
25
- react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.ProfileDetails.path, component: AccountDetailsProfilePage_1.AccountDetailsProfilePage }),
26
- react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.CardDetails.path, component: AccountDetailsCardsPage_1.AccountDetailsCardsPage }),
27
- react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.Help.path, component: AccountHelpPage_1.AccountHelpPage })))));
19
+ react_1.default.createElement(AccountOutlet_1.AccountOutlet, null,
20
+ react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.Home.path, component: AccountHomePage_1.AccountHomePage }),
21
+ react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.Reservations.matchPath, component: AccountReservationsPage_1.AccountReservationPage, exact: true }),
22
+ react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.SingleReservation.matchPath, component: AccountReservationSinglePage_1.AccountReservationSinglePage }),
23
+ react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.ProfileDetails.path, component: AccountDetailsProfilePage_1.AccountDetailsProfilePage }),
24
+ react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.CardDetails.path, component: AccountDetailsCardsPage_1.AccountDetailsCardsPage }),
25
+ react_1.default.createElement(react_router_dom_1.Route, { path: AccountRoutes_1.AccountRoutes.Help.path, component: AccountHelpPage_1.AccountHelpPage }))));
28
26
  };
29
27
  exports.AccountRouter = AccountRouter;
30
28
  //# sourceMappingURL=AccountRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccountRouter.js","sourceRoot":"/","sources":["src/pages/account/AccountRouter.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,uDAAyC;AACzC,iEAA8D;AAC9D,iFAA8E;AAC9E,kGAA8F;AAC9F,4GAAyG;AACzG,iGAA8F;AAC9F,6FAA0F;AAC1F,0EAAuE;AACvE,mDAAgD;AAChD,4DAAyD;AAElD,MAAM,aAAa,GAAG,GAAG,EAAE;IAC9B,OAAO,CACH;QACI,8BAAC,2BAAY,IAAC,IAAI,EAAC,UAAU;YACzB,8BAAC,6BAAa;gBACV,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,iCAAe,GAAI;gBACpE,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,gDAAsB,EAAE,KAAK,SAAG;gBAE9F,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,2DAA4B,GAAI;gBAEnG,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,qDAAyB,GAAI;gBACxF,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,iDAAuB,GAAI;gBAEnF,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,iCAAe,GAAI,CACxD,CACL,CAChB,CACN,CAAC;AACN,CAAC,CAAC;AAlBW,QAAA,aAAa,iBAkBxB","sourcesContent":["import React from 'react';\nimport { Route } from 'react-router-dom';\nimport { AccountOutlet } from '@/pages/account/AccountOutlet';\nimport { AccountHomePage } from '@/pages/account/AccountHome/AccountHomePage';\nimport { AccountReservationPage } from '@/pages/account/Reservations/AccountReservationsPage';\nimport { AccountReservationSinglePage } from '@/pages/account/Reservations/AccountReservationSinglePage';\nimport { AccountDetailsProfilePage } from '@/pages/account/Details/AccountDetailsProfilePage';\nimport { AccountDetailsCardsPage } from '@/pages/account/Details/AccountDetailsCardsPage';\nimport { AccountHelpPage } from '@/pages/account/Help/AccountHelpPage';\nimport { AccountRoutes } from './AccountRoutes';\nimport { PrivateRoute } from '@/containers/PrivateRoute';\n\nexport const AccountRouter = () => {\n return (\n <>\n <PrivateRoute path=\"/account\">\n <AccountOutlet>\n <Route path={AccountRoutes.Home.path} component={AccountHomePage} />\n <Route path={AccountRoutes.Reservations.matchPath} component={AccountReservationPage} exact />\n\n <Route path={AccountRoutes.SingleReservation.matchPath} component={AccountReservationSinglePage} />\n\n <Route path={AccountRoutes.ProfileDetails.path} component={AccountDetailsProfilePage} />\n <Route path={AccountRoutes.CardDetails.path} component={AccountDetailsCardsPage} />\n\n <Route path={AccountRoutes.Help.path} component={AccountHelpPage} />\n </AccountOutlet>\n </PrivateRoute>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"AccountRouter.js","sourceRoot":"/","sources":["src/pages/account/AccountRouter.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,uDAAyC;AACzC,iEAA8D;AAC9D,iFAA8E;AAC9E,kGAA8F;AAC9F,4GAAyG;AACzG,iGAA8F;AAC9F,6FAA0F;AAC1F,0EAAuE;AACvE,mDAAgD;AAGzC,MAAM,aAAa,GAAG,GAAG,EAAE;IAC9B,OAAO,CACH;QACI,8BAAC,6BAAa;YACV,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,iCAAe,GAAI;YACpE,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,gDAAsB,EAAE,KAAK,SAAG;YAE9F,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,2DAA4B,GAAI;YAEnG,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,qDAAyB,GAAI;YACxF,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,iDAAuB,GAAI;YAEnF,8BAAC,wBAAK,IAAC,IAAI,EAAE,6BAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,iCAAe,GAAI,CACxD,CACjB,CACN,CAAC;AACN,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB","sourcesContent":["import React from 'react';\nimport { Route } from 'react-router-dom';\nimport { AccountOutlet } from '@/pages/account/AccountOutlet';\nimport { AccountHomePage } from '@/pages/account/AccountHome/AccountHomePage';\nimport { AccountReservationPage } from '@/pages/account/Reservations/AccountReservationsPage';\nimport { AccountReservationSinglePage } from '@/pages/account/Reservations/AccountReservationSinglePage';\nimport { AccountDetailsProfilePage } from '@/pages/account/Details/AccountDetailsProfilePage';\nimport { AccountDetailsCardsPage } from '@/pages/account/Details/AccountDetailsCardsPage';\nimport { AccountHelpPage } from '@/pages/account/Help/AccountHelpPage';\nimport { AccountRoutes } from './AccountRoutes';\nimport { PrivateRoute } from '@/containers/PrivateRoute';\n\nexport const AccountRouter = () => {\n return (\n <>\n <AccountOutlet>\n <Route path={AccountRoutes.Home.path} component={AccountHomePage} />\n <Route path={AccountRoutes.Reservations.matchPath} component={AccountReservationPage} exact />\n\n <Route path={AccountRoutes.SingleReservation.matchPath} component={AccountReservationSinglePage} />\n\n <Route path={AccountRoutes.ProfileDetails.path} component={AccountDetailsProfilePage} />\n <Route path={AccountRoutes.CardDetails.path} component={AccountDetailsCardsPage} />\n\n <Route path={AccountRoutes.Help.path} component={AccountHelpPage} />\n </AccountOutlet>\n </>\n );\n};\n"]}
@@ -50,9 +50,11 @@ const MembersServiceAPI_1 = require("../../../api/members-service/MembersService
50
50
  const Fade_1 = __importDefault(require("../../../animations/Fade"));
51
51
  const AccountDetailsNoCardsPage_1 = require("./AccountDetailsNoCardsPage");
52
52
  const LargeLoader_1 = __importDefault(require("../../../components/generic/loader/LargeLoader"));
53
+ const react_i18next_1 = require("react-i18next");
54
+ const Translation_1 = require("../../../translations/Translation");
53
55
  const AccountDetailsCardsPage = (ref) => {
54
56
  var _a, _b;
55
- const { roomstayMember, cards: memberCards, updateCardToMemberDetail, fetchRoomstayMember, updateMemberDetails, loading } = (0, react_1.useContext)(contexts_1.RoomstayMemberContext);
57
+ const { roomstayMember, cards: memberCards = [], updateCardToMemberDetail, fetchRoomstayMember, updateMemberDetails, loading } = (0, react_1.useContext)(contexts_1.RoomstayMemberContext);
56
58
  const emptyCard = (0, react_1.useMemo)(() => ({
57
59
  cardId: '',
58
60
  cardNumber: '',
@@ -62,7 +64,8 @@ const AccountDetailsCardsPage = (ref) => {
62
64
  type: '',
63
65
  username: (roomstayMember === null || roomstayMember === void 0 ? void 0 : roomstayMember.username) || '',
64
66
  }), [roomstayMember]);
65
- const [selectedCard, setSelectedCard] = (0, react_1.useState)(null);
67
+ const { t } = (0, react_i18next_1.useTranslation)();
68
+ const [selectedCard, setSelectedCard] = (0, react_1.useState)(emptyCard);
66
69
  const [isAddingCard, setIsAddingCard] = (0, react_1.useState)(!!((_a = roomstayMember === null || roomstayMember === void 0 ? void 0 : roomstayMember.cards) === null || _a === void 0 ? void 0 : _a.length));
67
70
  (0, react_1.useEffect)(() => {
68
71
  var _a;
@@ -71,31 +74,12 @@ const AccountDetailsCardsPage = (ref) => {
71
74
  }
72
75
  }, [(_b = roomstayMember === null || roomstayMember === void 0 ? void 0 : roomstayMember.cards) === null || _b === void 0 ? void 0 : _b.length]);
73
76
  (0, react_1.useEffect)(() => {
74
- // Check if selected card is not there anymore
75
- let cardExists = false;
76
- if (selectedCard) {
77
- for (const newCard of memberCards) {
78
- if (newCard.cardId === selectedCard.cardId) {
79
- cardExists = true;
80
- break;
81
- }
82
- }
83
- }
84
- // Check if user has no cards, set the selected card to be empty in that case.
85
- if ((memberCards === null || memberCards === void 0 ? void 0 : memberCards.length) === 0) {
86
- setSelectedCard(emptyCard);
87
- return;
88
- }
89
- if (((!selectedCard || (selectedCard === null || selectedCard === void 0 ? void 0 : selectedCard.cardId) === emptyCard.cardId) && (memberCards === null || memberCards === void 0 ? void 0 : memberCards.length) > 0) || (!cardExists && (selectedCard === null || selectedCard === void 0 ? void 0 : selectedCard.cardId) !== '')) {
90
- if (roomstayMember === null || roomstayMember === void 0 ? void 0 : roomstayMember.defaultCard) {
91
- for (const card of memberCards) {
92
- if (card.cardId === roomstayMember.defaultCard) {
93
- setSelectedCard(memberCards === null || memberCards === void 0 ? void 0 : memberCards[0]);
94
- return;
95
- }
96
- }
97
- }
98
- setSelectedCard(memberCards === null || memberCards === void 0 ? void 0 : memberCards[0]);
77
+ const existedCard = memberCards.find((card) => card.cardId === selectedCard.cardId);
78
+ if (!existedCard) {
79
+ if (memberCards.length)
80
+ setSelectedCard(memberCards[0]);
81
+ else
82
+ setSelectedCard(emptyCard);
99
83
  }
100
84
  }, [roomstayMember, memberCards === null || memberCards === void 0 ? void 0 : memberCards.length]);
101
85
  const onNewCardClicked = () => {
@@ -104,15 +88,17 @@ const AccountDetailsCardsPage = (ref) => {
104
88
  const onCardChangedSubmit = (card) => __awaiter(void 0, void 0, void 0, function* () {
105
89
  // TODO: Add loading
106
90
  if (!card.cardId) {
107
- (0, MembersServiceAPI_1.AddMemberCard)(card).then((newCard) => {
91
+ return (0, MembersServiceAPI_1.AddMemberCard)(card).then((newCard) => {
108
92
  setSelectedCard(Object.assign(Object.assign({}, card), newCard));
109
93
  updateCardToMemberDetail === null || updateCardToMemberDetail === void 0 ? void 0 : updateCardToMemberDetail(newCard);
94
+ return newCard;
110
95
  });
111
96
  }
112
97
  else
113
- (0, MembersServiceAPI_1.EditMemberCard)(card).then((res) => {
98
+ return (0, MembersServiceAPI_1.EditMemberCard)(card).then((res) => {
114
99
  setSelectedCard(card);
115
100
  updateCardToMemberDetail === null || updateCardToMemberDetail === void 0 ? void 0 : updateCardToMemberDetail(res);
101
+ return res;
116
102
  });
117
103
  });
118
104
  const onDeleteClicked = (card) => __awaiter(void 0, void 0, void 0, function* () {
@@ -126,19 +112,20 @@ const AccountDetailsCardsPage = (ref) => {
126
112
  });
127
113
  const onMarkedAsDefault = (card) => __awaiter(void 0, void 0, void 0, function* () {
128
114
  yield (updateMemberDetails === null || updateMemberDetails === void 0 ? void 0 : updateMemberDetails(Object.assign(Object.assign({}, roomstayMember), { defaultCard: card === null || card === void 0 ? void 0 : card.cardId })));
115
+ setSelectedCard(card);
129
116
  });
130
117
  if (loading)
131
118
  return react_1.default.createElement(LargeLoader_1.default, null);
132
119
  return (react_1.default.createElement(react_1.default.Fragment, null,
133
120
  react_1.default.createElement("div", { className: "u-marg-top--heavy@m u-marg-top@m- u-marg-bottom--heavy" },
134
121
  react_1.default.createElement(react_router_dom_1.Link, { to: "/account/home" },
135
- react_1.default.createElement(BEButton_1.default, { isText: true, icon: Icon_1.IconType.ArrowLeft, size: "small" }, "BACK TO YOUR ACCOUNT"))),
122
+ react_1.default.createElement(BEButton_1.default, { isText: true, icon: Icon_1.IconType.ArrowLeft, size: "small" }, t(Translation_1.Translation.Reservation.BackToYourAccount)))),
136
123
  react_1.default.createElement("div", { className: "u-marg-bottom--heavy@m" },
137
- react_1.default.createElement(Headline_1.default, { size: "extra-large", bold: true }, "Payment Information")),
124
+ react_1.default.createElement(Headline_1.default, { size: "extra-large", bold: true }, t(Translation_1.Translation.Navigation.Menu.PaymentInformation))),
138
125
  react_1.default.createElement(Fade_1.default, { open: isAddingCard },
139
126
  react_1.default.createElement("div", { className: AccountDetailsCardsPage_module_scss_1.default['layout-grid'] },
140
127
  react_1.default.createElement("div", { className: AccountDetailsCardsPage_module_scss_1.default['card-list'] },
141
- react_1.default.createElement(Text_1.default, { bold: true, className: "u-marg-bottom" }, "Saved Cards"),
128
+ react_1.default.createElement(Text_1.default, { bold: true, className: "u-marg-bottom" }, t(Translation_1.Translation.UserPortal.PaymentInformationScreen.SavedCards)),
142
129
  react_1.default.createElement(CardList_1.CardList, { onNewCardClicked: onNewCardClicked, value: selectedCard, onChange: (selectedCard) => setSelectedCard(selectedCard), options: memberCards })),
143
130
  react_1.default.createElement(PaymentCardInput_1.PaymentCardInput, { card: selectedCard, onSubmit: onCardChangedSubmit, onDeleteClicked: onDeleteClicked, onMarkedAsDefaultClicked: onMarkedAsDefault }))),
144
131
  !isAddingCard && react_1.default.createElement(AccountDetailsNoCardsPage_1.AccountDetailsNoCardsPage, { onAddNewCard: () => setIsAddingCard(true) })));
@@ -1 +1 @@
1
- {"version":3,"file":"AccountDetailsCardsPage.js","sourceRoot":"/","sources":["src/pages/account/Details/AccountDetailsCardsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport BEButton from '@/components/generic/BEButton';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Headline from '@/components/generic/Headline';\n\nimport styles from './AccountDetailsCardsPage.module.scss';\nimport { CardList } from '@/components/pages/Account/Card/CardList';\nimport Text from '@/components/generic/Text';\nimport { PaymentCardInput } from '@/components/generic/PaymentCard/PaymentCardInput';\nimport { RoomstayMemberContext } from '@frontend/contexts';\nimport { AddMemberCard, DeleteMemberCard, EditMemberCard } from '@/api/members-service/MembersServiceAPI';\nimport { IRoomstayMember, IRoomstayMemberCards } from '@roomstay/core';\nimport FadeAnimation from '@/animations/Fade';\nimport { AccountDetailsNoCardsPage } from '@/pages/account/Details/AccountDetailsNoCardsPage';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\n\nexport const AccountDetailsCardsPage = (ref: any) => {\n const { roomstayMember, cards: memberCards, updateCardToMemberDetail, fetchRoomstayMember, updateMemberDetails, loading } = useContext(RoomstayMemberContext);\n const emptyCard = useMemo<IRoomstayMemberCards>(\n () => ({\n cardId: '',\n cardNumber: '',\n expiry: '',\n name: '',\n securityCode: '',\n type: '',\n username: roomstayMember?.username || '',\n }),\n [roomstayMember]\n );\n\n const [selectedCard, setSelectedCard] = useState<IRoomstayMemberCards | null>(null);\n const [isAddingCard, setIsAddingCard] = useState<boolean>(!!roomstayMember?.cards?.length);\n\n useEffect(() => {\n if (roomstayMember?.cards?.length) {\n setIsAddingCard(true);\n }\n }, [roomstayMember?.cards?.length]);\n\n useEffect(() => {\n // Check if selected card is not there anymore\n let cardExists = false;\n if (selectedCard) {\n for (const newCard of memberCards as IRoomstayMemberCards[]) {\n if (newCard.cardId === selectedCard.cardId) {\n cardExists = true;\n break;\n }\n }\n }\n\n // Check if user has no cards, set the selected card to be empty in that case.\n if (memberCards?.length === 0) {\n setSelectedCard(emptyCard);\n return;\n }\n\n if (((!selectedCard || selectedCard?.cardId === emptyCard.cardId) && (memberCards?.length as number) > 0) || (!cardExists && selectedCard?.cardId !== '')) {\n if (roomstayMember?.defaultCard) {\n for (const card of memberCards as IRoomstayMemberCards[]) {\n if (card.cardId === roomstayMember.defaultCard) {\n setSelectedCard(memberCards?.[0] as IRoomstayMemberCards);\n return;\n }\n }\n }\n\n setSelectedCard(memberCards?.[0] as IRoomstayMemberCards);\n }\n }, [roomstayMember, memberCards?.length]);\n\n const onNewCardClicked = () => {\n setSelectedCard(emptyCard);\n };\n\n const onCardChangedSubmit = async (card: IRoomstayMemberCards): Promise<void> => {\n // TODO: Add loading\n if (!card.cardId) {\n AddMemberCard(card).then((newCard) => {\n setSelectedCard({ ...card, ...newCard });\n updateCardToMemberDetail?.(newCard);\n });\n } else\n EditMemberCard(card).then((res) => {\n setSelectedCard(card);\n updateCardToMemberDetail?.(res);\n });\n };\n\n const onDeleteClicked = async (card: IRoomstayMemberCards) => {\n try {\n await DeleteMemberCard(card);\n\n await fetchRoomstayMember?.();\n } catch (ex) {\n console.log('Failed deleting card');\n }\n };\n\n const onMarkedAsDefault = async (card: IRoomstayMemberCards) => {\n await updateMemberDetails?.({ ...roomstayMember, defaultCard: card?.cardId } as IRoomstayMember);\n };\n\n if (loading) return <LargeLoader />;\n\n return (\n <>\n <div className=\"u-marg-top--heavy@m u-marg-top@m- u-marg-bottom--heavy\">\n <Link to=\"/account/home\">\n <BEButton isText icon={IconType.ArrowLeft} size=\"small\">\n BACK TO YOUR ACCOUNT\n </BEButton>\n </Link>\n </div>\n <div className=\"u-marg-bottom--heavy@m\">\n <Headline size=\"extra-large\" bold>\n Payment Information\n </Headline>\n </div>\n <FadeAnimation open={isAddingCard}>\n <div className={styles['layout-grid']}>\n <div className={styles['card-list']}>\n <Text bold className=\"u-marg-bottom\">\n Saved Cards\n </Text>\n\n <CardList\n onNewCardClicked={onNewCardClicked}\n value={selectedCard as IRoomstayMemberCards}\n onChange={(selectedCard) => setSelectedCard(selectedCard)}\n options={memberCards}\n />\n </div>\n <PaymentCardInput\n card={selectedCard as IRoomstayMemberCards}\n onSubmit={onCardChangedSubmit}\n onDeleteClicked={onDeleteClicked}\n onMarkedAsDefaultClicked={onMarkedAsDefault}\n />\n </div>\n </FadeAnimation>\n {!isAddingCard && <AccountDetailsNoCardsPage onAddNewCard={() => setIsAddingCard(true)} />}\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"AccountDetailsCardsPage.js","sourceRoot":"/","sources":["src/pages/account/Details/AccountDetailsCardsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport BEButton from '@/components/generic/BEButton';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Headline from '@/components/generic/Headline';\n\nimport styles from './AccountDetailsCardsPage.module.scss';\nimport { CardList } from '@/components/pages/Account/Card/CardList';\nimport Text from '@/components/generic/Text';\nimport { PaymentCardInput } from '@/components/generic/PaymentCard/PaymentCardInput';\nimport { RoomstayMemberContext } from '@frontend/contexts';\nimport { AddMemberCard, DeleteMemberCard, EditMemberCard } from '@/api/members-service/MembersServiceAPI';\nimport { IRoomstayMember, IRoomstayMemberCards } from '@roomstay/core';\nimport FadeAnimation from '@/animations/Fade';\nimport { AccountDetailsNoCardsPage } from '@/pages/account/Details/AccountDetailsNoCardsPage';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from '@/translations/Translation';\n\nexport const AccountDetailsCardsPage = (ref: any) => {\n const { roomstayMember, cards: memberCards = [], updateCardToMemberDetail, fetchRoomstayMember, updateMemberDetails, loading } = useContext(RoomstayMemberContext);\n const emptyCard = useMemo<IRoomstayMemberCards>(\n () => ({\n cardId: '',\n cardNumber: '',\n expiry: '',\n name: '',\n securityCode: '',\n type: '',\n username: roomstayMember?.username || '',\n }),\n [roomstayMember]\n );\n const { t } = useTranslation();\n\n const [selectedCard, setSelectedCard] = useState<IRoomstayMemberCards>(emptyCard);\n const [isAddingCard, setIsAddingCard] = useState<boolean>(!!roomstayMember?.cards?.length);\n\n useEffect(() => {\n if (roomstayMember?.cards?.length) {\n setIsAddingCard(true);\n }\n }, [roomstayMember?.cards?.length]);\n\n useEffect(() => {\n const existedCard = memberCards.find((card) => card.cardId === selectedCard.cardId);\n if (!existedCard) {\n if (memberCards.length) setSelectedCard(memberCards[0]);\n else setSelectedCard(emptyCard);\n }\n }, [roomstayMember, memberCards?.length]);\n\n const onNewCardClicked = () => {\n setSelectedCard(emptyCard);\n };\n\n const onCardChangedSubmit = async (card: IRoomstayMemberCards): Promise<IRoomstayMemberCards> => {\n // TODO: Add loading\n if (!card.cardId) {\n return AddMemberCard(card).then((newCard) => {\n setSelectedCard({ ...card, ...newCard });\n updateCardToMemberDetail?.(newCard);\n return newCard;\n });\n } else\n return EditMemberCard(card).then((res) => {\n setSelectedCard(card);\n updateCardToMemberDetail?.(res);\n return res;\n });\n };\n\n const onDeleteClicked = async (card: IRoomstayMemberCards) => {\n try {\n await DeleteMemberCard(card);\n\n await fetchRoomstayMember?.();\n } catch (ex) {\n console.log('Failed deleting card');\n }\n };\n\n const onMarkedAsDefault = async (card: IRoomstayMemberCards) => {\n await updateMemberDetails?.({ ...roomstayMember, defaultCard: card?.cardId } as IRoomstayMember);\n setSelectedCard(card);\n };\n\n if (loading) return <LargeLoader />;\n\n return (\n <>\n <div className=\"u-marg-top--heavy@m u-marg-top@m- u-marg-bottom--heavy\">\n <Link to=\"/account/home\">\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.PaymentInformation)}\n </Headline>\n </div>\n <FadeAnimation open={isAddingCard}>\n <div className={styles['layout-grid']}>\n <div className={styles['card-list']}>\n <Text bold className=\"u-marg-bottom\">\n {t(Translation.UserPortal.PaymentInformationScreen.SavedCards)}\n </Text>\n\n <CardList\n onNewCardClicked={onNewCardClicked}\n value={selectedCard as IRoomstayMemberCards}\n onChange={(selectedCard) => setSelectedCard(selectedCard)}\n options={memberCards}\n />\n </div>\n <PaymentCardInput\n card={selectedCard as IRoomstayMemberCards}\n onSubmit={onCardChangedSubmit}\n onDeleteClicked={onDeleteClicked}\n onMarkedAsDefaultClicked={onMarkedAsDefault}\n />\n </div>\n </FadeAnimation>\n {!isAddingCard && <AccountDetailsNoCardsPage onAddNewCard={() => setIsAddingCard(true)} />}\n </>\n );\n};\n"]}
@@ -27,25 +27,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.AccountDetailsNoCardsPage = void 0;
30
- const react_1 = __importDefault(require("react"));
31
- const react_2 = require("react");
32
- const RoomstayThemeEngine_1 = __importDefault(require("../../../providers/RoomstayThemeEngine"));
30
+ const react_1 = __importStar(require("react"));
33
31
  const Headline_1 = __importDefault(require("../../../components/generic/Headline"));
34
32
  const Color_1 = require("../../../util/Color");
35
33
  const Text_1 = __importStar(require("../../../components/generic/Text"));
36
34
  const BEButton_1 = __importDefault(require("../../../components/generic/BEButton"));
37
35
  const contexts_1 = require("../../../contexts/index.js");
38
36
  const ScreenSize_1 = __importDefault(require("../../../util/ScreenSize"));
37
+ const HomeEmptyCard_1 = __importDefault(require("../../../components/graphics/HomeEmptyCard"));
38
+ const react_i18next_1 = require("react-i18next");
39
+ const Translation_1 = require("../../../translations/Translation");
39
40
  const AccountDetailsNoCardsPage = ({ onAddNewCard }) => {
40
- const context = (0, react_2.useContext)(contexts_1.BookingEngineContext);
41
+ const context = (0, react_1.useContext)(contexts_1.BookingEngineContext);
41
42
  const isMobile = context.screenSize <= ScreenSize_1.default.Medium;
43
+ const { t } = (0, react_i18next_1.useTranslation)();
42
44
  return (react_1.default.createElement("div", { className: "u-align-center u-marg-top@m-" },
43
- react_1.default.createElement("img", { className: "u-max-width-full", src: RoomstayThemeEngine_1.default.getImageAssetUrl('account/account-details-no-cards-graphic.svg'), alt: "" }),
44
- react_1.default.createElement(Headline_1.default, { className: "u-marg-top--heavy", bold: true, size: isMobile ? 'normal' : 'large', color: Color_1.Color.Navy }, "You don't have any cards yet!"),
45
+ react_1.default.createElement(HomeEmptyCard_1.default, { className: "u-max-width-full" }),
46
+ react_1.default.createElement(Headline_1.default, { className: "u-marg-top--heavy", bold: true, size: isMobile ? 'normal' : 'large', color: Color_1.Color.Navy }, t(Translation_1.Translation.UserPortal.PaymentInformationScreen.YouDontHaveAnyCardsYet)),
45
47
  react_1.default.createElement(Text_1.default, { style: {
46
48
  maxWidth: 660,
47
49
  }, className: "u-marg-top u-marg-left-right--auto", color: Color_1.Color.Graphite, type: isMobile ? Text_1.TextType.Small : Text_1.TextType.Body }, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."),
48
- react_1.default.createElement(BEButton_1.default, { className: "u-marg-top", filled: true, primary: true, rounded: true, onClick: onAddNewCard }, "Add new card")));
50
+ react_1.default.createElement(BEButton_1.default, { className: "u-marg-top", filled: true, primary: true, rounded: true, onClick: onAddNewCard }, t(Translation_1.Translation.UserPortal.PaymentInformationScreen.AddNewCard))));
49
51
  };
50
52
  exports.AccountDetailsNoCardsPage = AccountDetailsNoCardsPage;
51
53
  //# sourceMappingURL=AccountDetailsNoCardsPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccountDetailsNoCardsPage.js","sourceRoot":"/","sources":["src/pages/account/Details/AccountDetailsNoCardsPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iCAAuC;AACvC,iGAAyE;AACzE,6EAAqD;AACrD,wCAAqC;AACrC,kEAA2D;AAC3D,6EAAwE;AACxE,iDAA0D;AAC1D,mEAA2C;AAKpC,MAAM,yBAAyB,GAAuC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;IAC9F,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,oBAAU,CAAC,MAAM,CAAC;IAEzD,OAAO,CACH,uCAAK,SAAS,EAAC,8BAA8B;QACzC,uCAAK,SAAS,EAAC,kBAAkB,EAAC,GAAG,EAAE,6BAAmB,CAAC,gBAAgB,CAAC,8CAA8C,CAAC,EAAE,GAAG,EAAC,EAAE,GAAG;QACtI,8BAAC,kBAAQ,IAAC,SAAS,EAAC,mBAAmB,EAAC,IAAI,QAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,oCAExF;QACX,8BAAC,cAAI,IACD,KAAK,EAAE;gBACH,QAAQ,EAAE,GAAG;aAChB,EACD,SAAS,EAAC,oCAAoC,EAC9C,KAAK,EAAE,aAAK,CAAC,QAAQ,EACrB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,eAAQ,CAAC,IAAI,kIAG5C;QACP,8BAAC,kBAAQ,IAAC,SAAS,EAAC,YAAY,EAAC,MAAM,QAAC,OAAO,QAAC,OAAO,QAAC,OAAO,EAAE,YAAY,mBAElE,CACT,CACT,CAAC;AACN,CAAC,CAAC;AAzBW,QAAA,yBAAyB,6BAyBpC","sourcesContent":["import React from 'react';\nimport { FC, useContext } from 'react';\nimport RoomstayThemeEngine from '../../../providers/RoomstayThemeEngine';\nimport Headline from '@/components/generic/Headline';\nimport { Color } from '@/util/Color';\nimport Text, { TextType } from '@/components/generic/Text';\nimport BEButton, { BEButtonProps } from '@/components/generic/BEButton';\nimport { BookingEngineContext } from '@frontend/contexts';\nimport ScreenSize from '@/util/ScreenSize';\n\ninterface AccountDetailsNoCardsPageProps {\n onAddNewCard?: BEButtonProps['onClick'];\n}\nexport const AccountDetailsNoCardsPage: FC<AccountDetailsNoCardsPageProps> = ({ onAddNewCard }) => {\n const context = useContext(BookingEngineContext);\n const isMobile = context.screenSize <= ScreenSize.Medium;\n\n return (\n <div className=\"u-align-center u-marg-top@m-\">\n <img className=\"u-max-width-full\" src={RoomstayThemeEngine.getImageAssetUrl('account/account-details-no-cards-graphic.svg')} alt=\"\" />\n <Headline className=\"u-marg-top--heavy\" bold size={isMobile ? 'normal' : 'large'} color={Color.Navy}>\n You don&apos;t have any cards yet!\n </Headline>\n <Text\n style={{\n maxWidth: 660,\n }}\n className=\"u-marg-top u-marg-left-right--auto\"\n color={Color.Graphite}\n type={isMobile ? TextType.Small : TextType.Body}\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n </Text>\n <BEButton className=\"u-marg-top\" filled primary rounded onClick={onAddNewCard}>\n Add new card\n </BEButton>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"AccountDetailsNoCardsPage.js","sourceRoot":"/","sources":["src/pages/account/Details/AccountDetailsNoCardsPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAE9C,6EAAqD;AACrD,wCAAqC;AACrC,kEAA2D;AAC3D,6EAAwE;AACxE,iDAA0D;AAC1D,mEAA2C;AAC3C,wFAAgE;AAChE,iDAA+C;AAC/C,4DAAyD;AAMlD,MAAM,yBAAyB,GAAuC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;IAC9F,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,oBAAU,CAAC,MAAM,CAAC;IACzD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,OAAO,CACH,uCAAK,SAAS,EAAC,8BAA8B;QACzC,8BAAC,uBAAa,IAAC,SAAS,EAAC,kBAAkB,GAAG;QAC9C,8BAAC,kBAAQ,IAAC,SAAS,EAAC,mBAAmB,EAAC,IAAI,QAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,IAC9F,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CACnE;QACX,8BAAC,cAAI,IACD,KAAK,EAAE;gBACH,QAAQ,EAAE,GAAG;aAChB,EACD,SAAS,EAAC,oCAAoC,EAC9C,KAAK,EAAE,aAAK,CAAC,QAAQ,EACrB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,eAAQ,CAAC,IAAI,kIAG5C;QACP,8BAAC,kBAAQ,IAAC,SAAS,EAAC,YAAY,EAAC,MAAM,QAAC,OAAO,QAAC,OAAO,QAAC,OAAO,EAAE,YAAY,IACxE,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,CACvD,CACT,CACT,CAAC;AACN,CAAC,CAAC;AA1BW,QAAA,yBAAyB,6BA0BpC","sourcesContent":["import React, { FC, useContext } from 'react';\nimport RoomstayThemeEngine from '../../../providers/RoomstayThemeEngine';\nimport Headline from '@/components/generic/Headline';\nimport { Color } from '@/util/Color';\nimport Text, { TextType } from '@/components/generic/Text';\nimport BEButton, { BEButtonProps } from '@/components/generic/BEButton';\nimport { BookingEngineContext } from '@frontend/contexts';\nimport ScreenSize from '@/util/ScreenSize';\nimport HomeEmptyCard from '@/components/graphics/HomeEmptyCard';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from '@/translations/Translation';\n\ninterface AccountDetailsNoCardsPageProps {\n onAddNewCard?: BEButtonProps['onClick'];\n}\n\nexport const AccountDetailsNoCardsPage: FC<AccountDetailsNoCardsPageProps> = ({ onAddNewCard }) => {\n const context = useContext(BookingEngineContext);\n const isMobile = context.screenSize <= ScreenSize.Medium;\n const { t } = useTranslation();\n\n return (\n <div className=\"u-align-center u-marg-top@m-\">\n <HomeEmptyCard className=\"u-max-width-full\" />\n <Headline className=\"u-marg-top--heavy\" bold size={isMobile ? 'normal' : 'large'} color={Color.Navy}>\n {t(Translation.UserPortal.PaymentInformationScreen.YouDontHaveAnyCardsYet)}\n </Headline>\n <Text\n style={{\n maxWidth: 660,\n }}\n className=\"u-marg-top u-marg-left-right--auto\"\n color={Color.Graphite}\n type={isMobile ? TextType.Small : TextType.Body}\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n </Text>\n <BEButton className=\"u-marg-top\" filled primary rounded onClick={onAddNewCard}>\n {t(Translation.UserPortal.PaymentInformationScreen.AddNewCard)}\n </BEButton>\n </div>\n );\n};\n"]}
@@ -38,8 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  exports.AccountDetailsProfilePage = void 0;
41
- const react_1 = __importDefault(require("react"));
42
- const react_2 = require("react");
41
+ const react_1 = __importStar(require("react"));
43
42
  const BEButton_1 = __importDefault(require("../../../components/generic/BEButton"));
44
43
  const EnhancedPhoneNumberField_1 = __importDefault(require("../../../components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField"));
45
44
  const Headline_1 = __importDefault(require("../../../components/generic/Headline"));
@@ -68,14 +67,14 @@ const LabelAndInputGroup = (props) => {
68
67
  !!hint && (react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Grey }, hint)))));
69
68
  };
70
69
  const AccountDetailsProfilePage = () => {
71
- const { roomstayMember, loading: isLoadingMember, updateMemberDetails } = (0, react_2.useContext)(contexts_1.RoomstayMemberContext);
72
- const notifications = (0, react_2.useContext)(contexts_1.NotificationContext);
70
+ const { roomstayMember, loading: isLoadingMember, updateMemberDetails } = (0, react_1.useContext)(contexts_1.RoomstayMemberContext);
71
+ const notifications = (0, react_1.useContext)(contexts_1.NotificationContext);
73
72
  const { t } = (0, react_i18next_1.useTranslation)();
74
73
  const { watch, register, formState: { errors, isDirty }, handleSubmit, reset: resetFormValues, control, } = (0, react_hook_form_1.useForm)({
75
74
  mode: 'onChange',
76
75
  });
77
76
  const getErrorValidationClass = (name) => (errors[name] ? 'error' : undefined);
78
- (0, react_2.useEffect)(() => {
77
+ (0, react_1.useEffect)(() => {
79
78
  if (roomstayMember) {
80
79
  resetFormValues(roomstayMember);
81
80
  }
@@ -84,7 +83,7 @@ const AccountDetailsProfilePage = () => {
84
83
  updateMemberDetails === null || updateMemberDetails === void 0 ? void 0 : updateMemberDetails(values).then(() => {
85
84
  notifications.addNotification({
86
85
  icon: Icon_1.IconType.Check,
87
- children: react_1.default.createElement(Text_1.default, null, "Details saved succesfully"),
86
+ children: react_1.default.createElement(Text_1.default, null, t(Translation_1.Translation.UserPortal.ProfileScreen.DetailsSavedSuccessfully)),
88
87
  });
89
88
  });
90
89
  };
@@ -94,59 +93,47 @@ const AccountDetailsProfilePage = () => {
94
93
  react_1.default.createElement(react_router_dom_1.Link, { to: AccountRoutes_1.AccountRoutes.Home.path },
95
94
  react_1.default.createElement(BEButton_1.default, { isText: true, icon: Icon_1.IconType.ArrowLeft, size: "small" }, t(Translation_1.Translation.Reservation.BackToYourAccount)))),
96
95
  react_1.default.createElement("div", { className: "u-marg-bottom--heavy@m" },
97
- react_1.default.createElement(Headline_1.default, { size: "extra-large", bold: true }, "Profile Information")),
96
+ react_1.default.createElement(Headline_1.default, { size: "extra-large", bold: true }, t(Translation_1.Translation.Navigation.Menu.ProfileInformation))),
98
97
  react_1.default.createElement("form", { onSubmit: handleSubmit(onSaveDetails) },
99
98
  react_1.default.createElement("div", { className: "row" },
100
99
  react_1.default.createElement("div", { className: "col-md-8" },
101
100
  react_1.default.createElement("div", null,
102
- react_1.default.createElement(LabelAndInputGroup, { label: "First Name", component: react_1.default.createElement(TextBox_1.default, Object.assign({ validationStatus: getErrorValidationClass('forename') }, register('forename', {
103
- required: {
104
- message: 'First name is required',
105
- value: true,
106
- },
101
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.Forename), component: react_1.default.createElement(TextBox_1.default, Object.assign({ validationStatus: getErrorValidationClass('forename') }, register('forename', {
102
+ required: (0, Validation_1.makeRequiredRule)(t)(true, t(Translation_1.Translation.Step.Confirmation.Inputs.Forename)),
107
103
  }))), error: errors.forename }),
108
- react_1.default.createElement(LabelAndInputGroup, { label: "Last Name", component: react_1.default.createElement(TextBox_1.default, Object.assign({ validationStatus: getErrorValidationClass('surname') }, register('surname', {
109
- required: {
110
- message: 'Last name is required',
111
- value: true,
112
- },
104
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.Surname), component: react_1.default.createElement(TextBox_1.default, Object.assign({ validationStatus: getErrorValidationClass('surname') }, register('surname', {
105
+ required: (0, Validation_1.makeRequiredRule)(t)(true, t(Translation_1.Translation.Step.Confirmation.Inputs.Surname)),
113
106
  }))), error: errors.surname }),
114
- react_1.default.createElement(LabelAndInputGroup, { label: "Email Address", component: react_1.default.createElement(TextBox_1.default, { validationStatus: getErrorValidationClass('email'), inputProps: { disabled: true }, value: roomstayMember === null || roomstayMember === void 0 ? void 0 : roomstayMember.email }), error: errors.email }),
115
- react_1.default.createElement(LabelAndInputGroup, { label: "Phone Number", component: react_1.default.createElement(react_hook_form_1.Controller, { rules: {
116
- pattern: {
117
- value: /.*\s\d+/,
118
- message: 'Phone Number is required',
119
- },
107
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.Email), component: react_1.default.createElement(TextBox_1.default, { validationStatus: getErrorValidationClass('email'), inputProps: { disabled: true }, value: roomstayMember === null || roomstayMember === void 0 ? void 0 : roomstayMember.email }), error: errors.email }),
108
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.Phone), component: react_1.default.createElement(react_hook_form_1.Controller, { rules: {
109
+ pattern: (0, Validation_1.makePhonePatternRule)(t),
120
110
  }, control: control, name: "phoneNumber", render: ({ field }) => {
121
111
  return (react_1.default.createElement(EnhancedPhoneNumberField_1.default, Object.assign({}, field, { onChange: (e) => {
122
112
  field.onChange(e);
123
113
  }, validationStatus: getErrorValidationClass('phoneNumber') })));
124
114
  } }), error: errors.phoneNumber }),
125
115
  react_1.default.createElement(LineBreak_1.default, null),
126
- react_1.default.createElement(LabelAndInputGroup, { label: "Password", component: react_1.default.createElement(PasswordBox_1.PasswordBox, Object.assign({ placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }, register('password', {
127
- pattern: Validation_1.passwordPatternRule,
128
- }), { validationStatus: getErrorValidationClass('password') })), hint: "At least 8 characters long, case sensitive, can contain !$#%, no spaces.", error: errors.password }),
129
- react_1.default.createElement(LabelAndInputGroup, { label: "Repeat Password", component: react_1.default.createElement(PasswordBox_1.PasswordBox, Object.assign({ placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }, register('passwordRepeat', {
130
- required: {
131
- value: !!watch('password'),
132
- message: 'Repeat Password is required',
133
- },
116
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.Password), component: react_1.default.createElement(PasswordBox_1.PasswordBox, Object.assign({ placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }, register('password', {
117
+ pattern: (0, Validation_1.makePasswordPatternRule)(t),
118
+ }), { validationStatus: getErrorValidationClass('password') })), hint: "At least 8 characters long, case sensitive, can contain all symbols., no spaces.", error: errors.password }),
119
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.ConfirmPassword), component: react_1.default.createElement(PasswordBox_1.PasswordBox, Object.assign({ placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }, register('passwordRepeat', {
120
+ required: (0, Validation_1.makeRequiredRule)(t)(!!watch('password'), t(Translation_1.Translation.Step.Confirmation.Inputs.ConfirmPassword)),
134
121
  validate: {
135
- isSame: (0, Validation_1.isPassWordMatch)(watch('password')),
122
+ isSame: (0, Validation_1.isPasswordMatch)(t)(watch('password')),
136
123
  },
137
124
  }), { validationStatus: getErrorValidationClass('passwordRepeat') })), error: errors.passwordRepeat }),
138
125
  react_1.default.createElement(LineBreak_1.default, null),
139
- react_1.default.createElement(LabelAndInputGroup, { label: "Address", component: react_1.default.createElement(TextBox_1.default, Object.assign({}, register('address.address'))) }),
140
- react_1.default.createElement(LabelAndInputGroup, { label: "City", component: react_1.default.createElement(TextBox_1.default, Object.assign({}, register('address.city'))) }),
141
- react_1.default.createElement(LabelAndInputGroup, { label: "ZIP/Post Code", component: react_1.default.createElement(TextBox_1.default, Object.assign({}, register('address.zip'))) }),
142
- react_1.default.createElement(LabelAndInputGroup, { label: "Country", component: react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: "address.country", render: ({ field }) => {
126
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.Address), component: react_1.default.createElement(TextBox_1.default, Object.assign({}, register('address.address'))) }),
127
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.City), component: react_1.default.createElement(TextBox_1.default, Object.assign({}, register('address.city'))) }),
128
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.PostCode), component: react_1.default.createElement(TextBox_1.default, Object.assign({}, register('address.zip'))) }),
129
+ react_1.default.createElement(LabelAndInputGroup, { label: t(Translation_1.Translation.Step.Confirmation.Inputs.Country), component: react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: "address.country", render: ({ field }) => {
143
130
  const { ref } = field, rest = __rest(field, ["ref"]);
144
131
  return react_1.default.createElement(StepConfirmationCountrySelector_1.default, Object.assign({}, rest));
145
132
  } }) })))),
146
133
  react_1.default.createElement("div", { className: "u-flex justify-content-start u-marg-top--heavy" },
147
134
  react_1.default.createElement(react_router_dom_1.Link, { to: "/account/home", className: "u-marg-right" },
148
- react_1.default.createElement(BEButton_1.default, null, "Cancel")),
149
- react_1.default.createElement(BEButton_1.default, { disabled: saveButtonDisabled, isLoading: isLoadingMember, primary: true, filled: true, htmlType: "submit" }, "Save all changes")))));
135
+ react_1.default.createElement(BEButton_1.default, null, t(Translation_1.Translation.Misc.Cancel))),
136
+ react_1.default.createElement(BEButton_1.default, { disabled: saveButtonDisabled, isLoading: isLoadingMember, primary: true, filled: true, htmlType: "submit" }, t(Translation_1.Translation.Misc.SaveAllChanges))))));
150
137
  };
151
138
  exports.AccountDetailsProfilePage = AccountDetailsProfilePage;
152
139
  //# sourceMappingURL=AccountDetailsProfilePage.js.map