@roomstay/frontend 2.6.79 → 2.6.81

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 (133) hide show
  1. package/dist/177.bundle.js +1 -1
  2. package/dist/288.bundle.js +1 -1
  3. package/dist/375.bundle.js +1 -0
  4. package/dist/430.bundle.js +1 -1
  5. package/dist/449.bundle.js +1 -1
  6. package/dist/537.bundle.js +1 -1
  7. package/dist/978.bundle.js +1 -1
  8. package/dist/main.bundle.js +1 -1
  9. package/dist/src/api/AvailabilityAPI.d.ts +3 -1
  10. package/dist/src/api/AvailabilityAPI.js +97 -81
  11. package/dist/src/api/AvailabilityAPI.js.map +1 -1
  12. package/dist/src/api/BookingAPI.d.ts +2 -0
  13. package/dist/src/api/BookingAPI.js +2 -0
  14. package/dist/src/api/BookingAPI.js.map +1 -1
  15. package/dist/src/api/ReservationAPI.d.ts +2 -3
  16. package/dist/src/api/ReservationAPI.js +2 -1
  17. package/dist/src/api/ReservationAPI.js.map +1 -1
  18. package/dist/src/api/TrueRewardsAPI.d.ts +4 -0
  19. package/dist/src/api/TrueRewardsAPI.js +37 -0
  20. package/dist/src/api/TrueRewardsAPI.js.map +1 -0
  21. package/dist/src/components/generic/BEButton.d.ts +1 -0
  22. package/dist/src/components/generic/BEButton.js +2 -1
  23. package/dist/src/components/generic/BEButton.js.map +1 -1
  24. package/dist/src/components/generic/Event/EventCard.js +16 -8
  25. package/dist/src/components/generic/Event/EventCard.js.map +1 -1
  26. package/dist/src/components/generic/Event/EventCarousel.js +3 -1
  27. package/dist/src/components/generic/Event/EventCarousel.js.map +1 -1
  28. package/dist/src/components/generic/PromoCodeInput.d.ts +2 -0
  29. package/dist/src/components/generic/PromoCodeInput.js +2 -4
  30. package/dist/src/components/generic/PromoCodeInput.js.map +1 -1
  31. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js +9 -2
  32. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  33. package/dist/src/components/members/InlineSignUpSection.d.ts +1 -1
  34. package/dist/src/components/members/InlineSignUpSection.js.map +1 -1
  35. package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.d.ts +1 -1
  36. package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js +2 -2
  37. package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js.map +1 -1
  38. package/dist/src/components/steps/common/ItemisedFeesSummary/ItemisedFeesSummary.d.ts +1 -1
  39. package/dist/src/components/steps/common/ItemisedFeesSummary/ItemisedFeesSummary.js.map +1 -1
  40. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.d.ts +2 -0
  41. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.js +56 -0
  42. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.js.map +1 -0
  43. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsModal.d.ts +1 -0
  44. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsModal.js +80 -0
  45. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsModal.js.map +1 -0
  46. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.d.ts +6 -0
  47. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.js +122 -0
  48. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.js.map +1 -0
  49. package/dist/src/components/steps/date/PeoplePicker.js +2 -2
  50. package/dist/src/components/steps/date/PeoplePicker.js.map +1 -1
  51. package/dist/src/components/steps/hotel/HotelSearchParameters.js +5 -13
  52. package/dist/src/components/steps/hotel/HotelSearchParameters.js.map +1 -1
  53. package/dist/src/components/steps/room/UserSearchSummary/PromoCodeVerificationAlert.d.ts +1 -1
  54. package/dist/src/components/steps/room/UserSearchSummary/PromoCodeVerificationAlert.js +2 -1
  55. package/dist/src/components/steps/room/UserSearchSummary/PromoCodeVerificationAlert.js.map +1 -1
  56. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryPromocodeInput.js +3 -13
  57. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryPromocodeInput.js.map +1 -1
  58. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +5 -15
  59. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  60. package/dist/src/components/summary/BESummaryAddonRow.js +1 -1
  61. package/dist/src/components/summary/BESummaryAddonRow.js.map +1 -1
  62. package/dist/src/components/summary/BESummaryPerkBlock.js.map +1 -1
  63. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +3 -1
  64. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  65. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +55 -20
  66. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  67. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextTypes.d.ts +2 -1
  68. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextTypes.js.map +1 -1
  69. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +19 -6
  70. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  71. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.d.ts +3 -1
  72. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +10 -21
  73. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  74. package/dist/src/events/actions/PlacedBookingEvent.d.ts +1 -1
  75. package/dist/src/events/actions/PlacedBookingEvent.js.map +1 -1
  76. package/dist/src/events/views/CommittedBookingEvent.d.ts +1 -1
  77. package/dist/src/events/views/CommittedBookingEvent.js.map +1 -1
  78. package/dist/src/events/views/RolledBackBookingEvent.d.ts +1 -1
  79. package/dist/src/events/views/RolledBackBookingEvent.js.map +1 -1
  80. package/dist/src/handlers/payment/TrueRewardsPaymentHandler.d.ts +2 -0
  81. package/dist/src/handlers/payment/TrueRewardsPaymentHandler.js +47 -0
  82. package/dist/src/handlers/payment/TrueRewardsPaymentHandler.js.map +1 -0
  83. package/dist/src/hooks/ConfirmationQuery.d.ts +1 -0
  84. package/dist/src/hooks/ConfirmationQuery.js +2 -1
  85. package/dist/src/hooks/ConfirmationQuery.js.map +1 -1
  86. package/dist/src/mockApi/ReservationAPI.d.ts +1 -1
  87. package/dist/src/mockApi/ReservationAPI.js.map +1 -1
  88. package/dist/src/models/Addon/Addon.d.ts +0 -24
  89. package/dist/src/models/Addon/Addon.js.map +1 -1
  90. package/dist/src/models/BasketAddonRow.js +3 -5
  91. package/dist/src/models/BasketAddonRow.js.map +1 -1
  92. package/dist/src/models/BasketRow.d.ts +60 -4
  93. package/dist/src/models/BasketRow.js +78 -9
  94. package/dist/src/models/BasketRow.js.map +1 -1
  95. package/dist/src/models/Fee.d.ts +1 -9
  96. package/dist/src/models/Fee.js.map +1 -1
  97. package/dist/src/models/Room/RoomRateNight.d.ts +1 -1
  98. package/dist/src/models/Room/RoomRateNight.js.map +1 -1
  99. package/dist/src/models/RoomstaySession.d.ts +1 -2
  100. package/dist/src/models/RoomstaySession.js.map +1 -1
  101. package/dist/src/pages/findReservation/FindReservationResults.js +2 -2
  102. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  103. package/dist/src/pages/findReservation/ReservationRow.d.ts +1 -1
  104. package/dist/src/pages/findReservation/ReservationRow.js.map +1 -1
  105. package/dist/src/pages/findReservation/ReservationRowModal.d.ts +1 -1
  106. package/dist/src/pages/findReservation/ReservationRowModal.js.map +1 -1
  107. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +2 -2
  108. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
  109. package/dist/src/translations/Translation.d.ts +20 -0
  110. package/dist/src/translations/Translation.js +20 -0
  111. package/dist/src/translations/Translation.js.map +1 -1
  112. package/dist/src/translations/languages/en-gb.js +20 -0
  113. package/dist/src/translations/languages/en-gb.js.map +1 -1
  114. package/dist/src/util/Analytics/Analytics.d.ts +1 -1
  115. package/dist/src/util/Analytics/Analytics.js.map +1 -1
  116. package/dist/src/util/Analytics/GoogleAnalytics4.d.ts +2 -2
  117. package/dist/src/util/Analytics/GoogleAnalytics4.js.map +1 -1
  118. package/dist/src/util/Analytics/UniversalAnalytics.d.ts +1 -1
  119. package/dist/src/util/Analytics/UniversalAnalytics.js.map +1 -1
  120. package/dist/src/util/DataLayer.d.ts +1 -1
  121. package/dist/src/util/DataLayer.js.map +1 -1
  122. package/dist/src/util/DerbysoftPixel.d.ts +1 -1
  123. package/dist/src/util/DerbysoftPixel.js.map +1 -1
  124. package/dist/test.bundle.js +1 -1
  125. package/dist/vendors.bundle.js +1 -1
  126. package/package.json +2 -2
  127. package/dist/659.bundle.js +0 -1
  128. package/dist/src/models/Api/ReservationsDTO.d.ts +0 -80
  129. package/dist/src/models/Api/ReservationsDTO.js +0 -3
  130. package/dist/src/models/Api/ReservationsDTO.js.map +0 -1
  131. package/dist/src/util/TotalCalculator.d.ts +0 -24
  132. package/dist/src/util/TotalCalculator.js +0 -157
  133. package/dist/src/util/TotalCalculator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ReservationRow.js","sourceRoot":"/","sources":["src/pages/findReservation/ReservationRow.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkD;AAClD,2CAA4D;AAC5D,yCAAuD;AACvD,kDAA0B;AAC1B,+CAAwC;AACxC,iDAA+C;AAC/C,0DAAuD;AAEvD,kEAAmC;AACnC,6EAAqD;AACrD,6EAAqD;AACrD,uEAAgE;AAChE,qGAA6E;AAC7E,kEAA2D;AAC3D,oGAA4E;AAC5E,gFAA6E;AAE7E,sGAA8E;AAC9E,wCAAqC;AACrC,iEAAyC;AACzC,uEAA+C;AAO/C,SAAwB,cAAc,CAAC,KAA0B;;IAC7D,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACpC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAE7B,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC;IAE9B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAC3E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEtD,IAAI,iBAAiB,GAAG,sBAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAEpH,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE;QAC1B,iBAAiB,IAAI,IAAI,GAAG,sBAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC7H;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,cAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC1B,SAAS,EAAE,CAAC;QACZ,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACjC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,eAAK,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAA,eAAK,EAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEvE,IAAI,MAAM,GAAa,GAAG,CAAC,MAAM,CAAC;IAElC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,EAAE;QAC3D,MAAM,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC9C;IAED,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,oBAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAiB,CAAC;aAC9F,IAAI,CAAC,GAAG,EAAE;YACP,mBAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,6CAAqB,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAEzE,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAE1B,IAAI,KAAK,CAAC,WAAW,EAAE;gBACnB,KAAK,CAAC,WAAW,EAAE,CAAC;aACvB;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YACV,uBAAY,CAAC,GAAG,CAAC;gBACb,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;gBACrD,OAAO,EAAE,EAAE,CAAC,OAAO;aACtB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,IAAI,CAAC;IAEhF,OAAO,CACH;QACI,uCAAK,SAAS,EAAC,iBAAiB;YAC5B,uCAAK,SAAS,EAAC,wBAAwB;gBACnC,uCAAK,SAAS,EAAC,qBAAqB;oBAChC,8BAAC,4BAAkB,IAAC,MAAM,EAAE,MAAM,GAAI,CACpC;gBACN,uCAAK,SAAS,EAAC,6CAA6C;oBACxD,uCAAK,SAAS,EAAC,eAAe;wBAC1B,uCAAK,SAAS,EAAC,kDAAkD,IAC5D,CAAC,WAAW,CAAC,CAAC,CAAC,CACZ,8BAAC,cAAI;4BACD,8CAAS,QAAQ,CAAU;4BAC3B,yCAAO,KAAK,EAAE,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE;;gCAAK,GAAG,CAAC,iBAAiB,CAAS,CACnE,CACV,CAAC,CAAC,CAAC,CACA,8BAAC,cAAI;4BACD;gCACI,8CAAS,QAAQ,CAAU,CACzB;4BACN,yCAAO,KAAK,EAAE,EAAE,KAAK,EAAE,aAAK,CAAC,KAAK,EAAE;;gCAAI,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAS,CAC3E,CACV,CACC;wBACN,uCAAK,SAAS,EAAC,wDAAwD;4BACnE,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK;gCAC7C,8DACK,KAAK,aAAL,KAAK;oCAAL,KAAK,CAAE,IAAI;2CAAK,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO;uCAAE,KAAK,CACvC,CACA,CACL,CACJ;oBAEN,uCAAK,SAAS,EAAC,EAAE;wBACb;4BACI,sCAAI,SAAS,EAAC,mDAAmD;gCAC7D,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE,IAAI,EAAE,eAAQ,CAAC,MAAM,GAAI;gCAClD,uCAAK,SAAS,EAAC,oBAAoB;oCAC/B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wCACrB,GAAG,CAAC,KAAK,CAAC,SAAS;;wCAAG,GAAG,CAAC,KAAK,CAAC,QAAQ;;wCAAE,wCAAM,KAAK,EAAE,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE;;4CAAK,iBAAiB,CAAQ,CAC5G,CACL,CACL;4BACL,sCAAI,SAAS,EAAC,mDAAmD;gCAC7D,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;gCACjD,uCAAK,SAAS,EAAC,oBAAoB;oCAC/B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAQ,CAClD,CACL;4BACL,sCAAI,SAAS,EAAC,mDAAmD;gCAC7D,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;gCACpD,uCAAK,SAAS,EAAC,oBAAoB;oCAC/B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAQ;oCAC3E,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAQ,CACxE,CACL;4BACL,sCAAI,SAAS,EAAC,8BAA8B;gCACxC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;gCACtD,uCAAK,SAAS,EAAC,oBAAoB;oCAC/B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IACrB,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,aAAa,MAAK,4BAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CACpD,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CACnD,CAAC,CAAC,CAAC,CACA;uHACoB,MAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,KAAK,mCAAI,KAAK;wCAAE,GAAG;wCACpD,wCAAM,KAAK,EAAE,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE;iDAAI,MAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,IAAI,mCAAI,KAAK;gDAAS,CAClF,CACN,CACE,CACL,CACL,CACJ,CACH,CACJ,CACJ;YACN,uCAAK,SAAS,EAAC,0BAA0B;gBACrC,uCAAK,SAAS,EAAC,iDAAiD;oBAC5D,uCAAK,SAAS,EAAC,mCAAmC;wBAC9C,8BAAC,kBAAQ,IAAC,IAAI,EAAE,eAAQ,CAAC,WAAW,EAAE,MAAM,QAAC,OAAO,QAAC,IAAI,EAAC,MAAM,EAAC,YAAY,EAAC,OAAO,EAAC,OAAO,EAAE,gBAAgB,IAC1G,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CACvC,CACT;oBACN,uCAAK,SAAS,EAAC,eAAe,IACzB,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,MAAK,IAAI,IAAI,CACpC,8BAAC,kBAAQ,IACL,MAAM,QACN,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW,EAC1C,SAAS,EAAE,aAAK,CAAC,QAAQ,EACzB,OAAO,EAAE,mBAAmB,IAE3B,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CACpB,CACd,CACC,CACJ;gBACN,uCAAK,SAAS,EAAC,gDAAgD;oBAC3D,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ,IAC5C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CACvB;oBACP,uCAAK,SAAS,EAAC,aAAa,IACvB,CAAC,WAAW,CAAC,CAAC,CAAC,CACZ,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,IAAI;wBACnB;4BACI,8BAAC,kBAAQ,QAAE,MAAA,GAAG,CAAC,KAAK,CAAC,UAAU,mCAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAY,CAC5D,CACN,CACV,CAAC,CAAC,CAAC,CACA,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,IAAI;wBACnB;4BACI,0CAAQ,SAAS,EAAC,gDAAgD;gCAC9D,8BAAC,kBAAQ,QAAE,MAAA,GAAG,CAAC,KAAK,CAAC,UAAU,mCAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAY,CAC5D,CACP,CACH,CACV,CACC,CACJ,CACJ,CACJ;QACN,8BAAC,6BAAmB,IAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,GAAI;QACtH,8BAAC,2BAAiB,IAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAC,mDAAmD,EAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,GAAI,CACpK,CACN,CAAC;AACN,CAAC;AArMD,iCAqMC","sourcesContent":["import { ErrorHandler } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { EBookingPaymentMethod } from '@roomstay/core';\nimport dayjs from 'dayjs';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport ConfirmationModal from '@/components/generic/modal/ConfirmationModal';\nimport Text, { TextType } from '@/components/generic/Text';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { CancelledBookingEvent } from '@/events/views/CancelledBookingEvent';\nimport { ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport ReservationRowModal from '@/pages/findReservation/ReservationRowModal';\nimport { Color } from '@/util/Color';\nimport DataLayer from '@/util/DataLayer';\nimport StringHelper from '@/util/StringHelper';\n\ninterface ReservationRowProps {\n reservation: ReservationDTO;\n onCancelled?: () => void;\n}\n\nexport default function ReservationRow(props: ReservationRowProps) {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n const { raise } = useEvent();\n\n const obj = props.reservation;\n\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isCancelled, setIsCancelled] = useState(obj.status === 'Cancelled');\n const [isCancelLoading, setIsCancelLoading] = useState(false);\n\n const [confirmOpen, setConfirmOpen] = useState(false);\n\n let adultsAndChildren = StringHelper.pluralWithDictAndCount(obj.guestCounts.adults, Translation.Step.Date.Adult, t);\n\n if (obj.guestCounts.children) {\n adultsAndChildren += ', ' + StringHelper.pluralWithDictAndCount(obj.guestCounts.children, Translation.Step.Date.Child, t);\n }\n\n const nightKeys = Object.keys(obj.nights);\n\n const openModalOnClick = () => {\n setIsModalOpen(true);\n };\n const closeModalOnClick = () => {\n setIsModalOpen(false);\n };\n const confirmModalOnClick = () => {\n setConfirmOpen(true);\n };\n const onConfirmHandler = () => {\n cancelRow();\n setConfirmOpen(false);\n };\n const openConfirmationHandler = () => {\n setConfirmOpen(false);\n };\n\n const firstNight = dayjs(nightKeys[0]);\n const lastNight = dayjs(nightKeys[nightKeys.length - 1]).add(1, 'day');\n\n let images: string[] = obj.images;\n\n if ((!images || !images.length) && hotel?.rooms[obj.roomCode]) {\n images = hotel?.rooms[obj.roomCode].images;\n }\n\n const cancelRow = () => {\n setIsCancelLoading(true);\n\n API.Reservation.cancelReservation(obj.reservationNumber, obj.guest.email, hotel?.hotelID as string)\n .then(() => {\n DataLayer.instance.sendCancellation(obj);\n raise(new CancelledBookingEvent(obj.reservationNumber, obj.guest.email));\n\n setIsCancelled(true);\n setIsCancelLoading(false);\n\n if (props.onCancelled) {\n props.onCancelled();\n }\n })\n .catch((ex) => {\n ErrorHandler.add({\n title: t(Translation.Step.Thanks.Errors.CancelFailed),\n message: ex.Message,\n });\n });\n };\n\n const roomName = obj.roomType ? obj.roomType : hotel?.rooms[obj.roomCode]?.name;\n\n return (\n <>\n <div className=\"reservation-row\">\n <div className=\"room-details +is-open \">\n <div className=\"room-details--image\">\n <ImageGallerySlider images={images} />\n </div>\n <div className=\"room-details--content u-pad--heavy u-pad@m-\">\n <div className=\"u-marg-bottom\">\n <div className=\"room-details--content-title u-marg-bottom--light\">\n {!isCancelled ? (\n <Text>\n <strong>{roomName}</strong>\n <small style={{ color: Color.Grey }}> #{obj.reservationNumber}</small>\n </Text>\n ) : (\n <Text>\n <del>\n <strong>{roomName}</strong>\n </del>\n <small style={{ color: Color.Alert }}> {t(Translation.Misc.Cancelled)}</small>\n </Text>\n )}\n </div>\n <div className=\"room-details--content-description u-marg-bottom--light\">\n <Text color={Color.DarkGrey} type={TextType.Small}>\n <>\n {hotel?.name} - {hotel?.address?.line1}\n </>\n </Text>\n </div>\n </div>\n\n <div className=\"\">\n <ul>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon color={Color.Grey} icon={IconType.Person} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>\n {obj.guest.firstName} {obj.guest.lastName} <span style={{ color: Color.DarkGrey }}>- {adultsAndChildren}</span>\n </Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon icon={IconType.Email} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>{obj.guest.email}</Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon icon={IconType.Calendar} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>{firstNight.format('dddd, MMM D, YYYY')}</Text>\n <Text type={TextType.Small}>{lastNight.format('dddd, MMM D, YYYY')}</Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start\">\n <Icon icon={IconType.CreditCard} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>\n {obj?.paymentMethod === EBookingPaymentMethod.Planpay ? (\n t(Translation.Step.Confirmation.PaidWithPlanpay)\n ) : (\n <>\n •••• •••• •••• {obj.paymentCard?.last4 ?? 'N/A'}{' '}\n <span style={{ color: Color.DarkGrey }}>({obj.paymentCard?.type ?? 'N/A'})</span>\n </>\n )}\n </Text>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n <div className=\"reservation-row--actions\">\n <div className=\"u-flex justify-content-start align-items-center\">\n <div className=\"u-marg-right--heavy u-inline-flex\">\n <BEButton icon={IconType.ArrowRight2} isText primary size=\"tiny\" iconPosition=\"right\" onClick={openModalOnClick}>\n {t(Translation.Step.Room.RoomInfo.MoreDetails)}\n </BEButton>\n </div>\n <div className=\"u-inline-flex\">\n {hotel?.preventCancellation !== true && (\n <BEButton\n isText\n size=\"tiny\"\n isLoading={isCancelLoading}\n disabled={!obj.isCancelable || isCancelled}\n textColor={Color.DarkGrey}\n onClick={confirmModalOnClick}\n >\n {t(Translation.Misc.Cancel)}\n </BEButton>\n )}\n </div>\n </div>\n <div className=\"u-flex u-flex-direction-row align-items-center\">\n <Text type={TextType.Small} color={Color.DarkGrey}>\n {t(Translation.Misc.Total)}\n </Text>\n <div className=\"u-marg-left\">\n {!isCancelled ? (\n <Text color={Color.Navy}>\n <strong>\n <Currency>{obj.total.beforeFees ?? obj.total.afterTax}</Currency>\n </strong>\n </Text>\n ) : (\n <Text color={Color.Navy}>\n <del>\n <strong className=\"u-flex u-flex-direction-row align-items-center\">\n <Currency>{obj.total.beforeFees ?? obj.total.afterTax}</Currency>\n </strong>\n </del>\n </Text>\n )}\n </div>\n </div>\n </div>\n </div>\n <ReservationRowModal open={isModalOpen} onClose={closeModalOnClick} reservation={props.reservation} images={images} />\n <ConfirmationModal open={confirmOpen} message=\"Are you sure you want to cancel this reservation?\" onConfirm={onConfirmHandler} onClose={openConfirmationHandler} />\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"ReservationRow.js","sourceRoot":"/","sources":["src/pages/findReservation/ReservationRow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ErrorHandler } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { EBookingPaymentMethod, ReservationDTO } from '@roomstay/core';\nimport dayjs from 'dayjs';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport ConfirmationModal from '@/components/generic/modal/ConfirmationModal';\nimport Text, { TextType } from '@/components/generic/Text';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { CancelledBookingEvent } from '@/events/views/CancelledBookingEvent';\nimport ReservationRowModal from '@/pages/findReservation/ReservationRowModal';\nimport { Color } from '@/util/Color';\nimport DataLayer from '@/util/DataLayer';\nimport StringHelper from '@/util/StringHelper';\n\ninterface ReservationRowProps {\n reservation: ReservationDTO;\n onCancelled?: () => void;\n}\n\nexport default function ReservationRow(props: ReservationRowProps) {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n const { raise } = useEvent();\n\n const obj = props.reservation;\n\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isCancelled, setIsCancelled] = useState(obj.status === 'Cancelled');\n const [isCancelLoading, setIsCancelLoading] = useState(false);\n\n const [confirmOpen, setConfirmOpen] = useState(false);\n\n let adultsAndChildren = StringHelper.pluralWithDictAndCount(obj.guestCounts.adults, Translation.Step.Date.Adult, t);\n\n if (obj.guestCounts.children) {\n adultsAndChildren += ', ' + StringHelper.pluralWithDictAndCount(obj.guestCounts.children, Translation.Step.Date.Child, t);\n }\n\n const nightKeys = Object.keys(obj.nights);\n\n const openModalOnClick = () => {\n setIsModalOpen(true);\n };\n const closeModalOnClick = () => {\n setIsModalOpen(false);\n };\n const confirmModalOnClick = () => {\n setConfirmOpen(true);\n };\n const onConfirmHandler = () => {\n cancelRow();\n setConfirmOpen(false);\n };\n const openConfirmationHandler = () => {\n setConfirmOpen(false);\n };\n\n const firstNight = dayjs(nightKeys[0]);\n const lastNight = dayjs(nightKeys[nightKeys.length - 1]).add(1, 'day');\n\n let images: string[] = obj.images;\n\n if ((!images || !images.length) && hotel?.rooms[obj.roomCode]) {\n images = hotel?.rooms[obj.roomCode].images;\n }\n\n const cancelRow = () => {\n setIsCancelLoading(true);\n\n API.Reservation.cancelReservation(obj.reservationNumber, obj.guest.email, hotel?.hotelID as string)\n .then(() => {\n DataLayer.instance.sendCancellation(obj);\n raise(new CancelledBookingEvent(obj.reservationNumber, obj.guest.email));\n\n setIsCancelled(true);\n setIsCancelLoading(false);\n\n if (props.onCancelled) {\n props.onCancelled();\n }\n })\n .catch((ex) => {\n ErrorHandler.add({\n title: t(Translation.Step.Thanks.Errors.CancelFailed),\n message: ex.Message,\n });\n });\n };\n\n const roomName = obj.roomType ? obj.roomType : hotel?.rooms[obj.roomCode]?.name;\n\n return (\n <>\n <div className=\"reservation-row\">\n <div className=\"room-details +is-open \">\n <div className=\"room-details--image\">\n <ImageGallerySlider images={images} />\n </div>\n <div className=\"room-details--content u-pad--heavy u-pad@m-\">\n <div className=\"u-marg-bottom\">\n <div className=\"room-details--content-title u-marg-bottom--light\">\n {!isCancelled ? (\n <Text>\n <strong>{roomName}</strong>\n <small style={{ color: Color.Grey }}> #{obj.reservationNumber}</small>\n </Text>\n ) : (\n <Text>\n <del>\n <strong>{roomName}</strong>\n </del>\n <small style={{ color: Color.Alert }}> {t(Translation.Misc.Cancelled)}</small>\n </Text>\n )}\n </div>\n <div className=\"room-details--content-description u-marg-bottom--light\">\n <Text color={Color.DarkGrey} type={TextType.Small}>\n <>\n {hotel?.name} - {hotel?.address?.line1}\n </>\n </Text>\n </div>\n </div>\n\n <div className=\"\">\n <ul>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon color={Color.Grey} icon={IconType.Person} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>\n {obj.guest.firstName} {obj.guest.lastName} <span style={{ color: Color.DarkGrey }}>- {adultsAndChildren}</span>\n </Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon icon={IconType.Email} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>{obj.guest.email}</Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon icon={IconType.Calendar} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>{firstNight.format('dddd, MMM D, YYYY')}</Text>\n <Text type={TextType.Small}>{lastNight.format('dddd, MMM D, YYYY')}</Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start\">\n <Icon icon={IconType.CreditCard} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>\n {obj?.paymentMethod === EBookingPaymentMethod.Planpay ? (\n t(Translation.Step.Confirmation.PaidWithPlanpay)\n ) : (\n <>\n •••• •••• •••• {obj.paymentCard?.last4 ?? 'N/A'}{' '}\n <span style={{ color: Color.DarkGrey }}>({obj.paymentCard?.type ?? 'N/A'})</span>\n </>\n )}\n </Text>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n <div className=\"reservation-row--actions\">\n <div className=\"u-flex justify-content-start align-items-center\">\n <div className=\"u-marg-right--heavy u-inline-flex\">\n <BEButton icon={IconType.ArrowRight2} isText primary size=\"tiny\" iconPosition=\"right\" onClick={openModalOnClick}>\n {t(Translation.Step.Room.RoomInfo.MoreDetails)}\n </BEButton>\n </div>\n <div className=\"u-inline-flex\">\n {hotel?.preventCancellation !== true && (\n <BEButton\n isText\n size=\"tiny\"\n isLoading={isCancelLoading}\n disabled={!obj.isCancelable || isCancelled}\n textColor={Color.DarkGrey}\n onClick={confirmModalOnClick}\n >\n {t(Translation.Misc.Cancel)}\n </BEButton>\n )}\n </div>\n </div>\n <div className=\"u-flex u-flex-direction-row align-items-center\">\n <Text type={TextType.Small} color={Color.DarkGrey}>\n {t(Translation.Misc.Total)}\n </Text>\n <div className=\"u-marg-left\">\n {!isCancelled ? (\n <Text color={Color.Navy}>\n <strong>\n <Currency>{obj.total.beforeFees ?? obj.total.afterTax}</Currency>\n </strong>\n </Text>\n ) : (\n <Text color={Color.Navy}>\n <del>\n <strong className=\"u-flex u-flex-direction-row align-items-center\">\n <Currency>{obj.total.beforeFees ?? obj.total.afterTax}</Currency>\n </strong>\n </del>\n </Text>\n )}\n </div>\n </div>\n </div>\n </div>\n <ReservationRowModal open={isModalOpen} onClose={closeModalOnClick} reservation={props.reservation} images={images} />\n <ConfirmationModal open={confirmOpen} message=\"Are you sure you want to cancel this reservation?\" onConfirm={onConfirmHandler} onClose={openConfirmationHandler} />\n </>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ReservationDTO } from '../../models/Api/ReservationsDTO';
1
+ import { ReservationDTO } from '@roomstay/core';
2
2
  interface ReservationRowModalProps {
3
3
  reservation: ReservationDTO;
4
4
  onClose: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ReservationRowModal.js","sourceRoot":"/","sources":["src/pages/findReservation/ReservationRowModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Currency from '@/components/generic/Currency';\nimport Headline from '@/components/generic/Headline';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport Text, { TextType } from '@/components/generic/Text';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport { Color } from '@/util/Color';\nimport StringHelper from '@/util/StringHelper';\n\ninterface ReservationRowModalProps {\n reservation: ReservationDTO;\n onClose: () => void;\n open: boolean;\n images?: string[];\n}\n\nexport default function ReservationRowModal(props: ReservationRowModalProps) {\n const { hotel } = useCurrentHotel();\n\n const { reservation } = props;\n const { t } = useTranslation();\n\n const images = reservation.images && reservation.images.length ? reservation.images : props.images ?? [];\n\n let adultsAndChildren = StringHelper.pluralWithDictAndCount(reservation.guestCounts.adults, Translation.Step.Date.Adult, t);\n\n if (reservation.guestCounts.children) {\n adultsAndChildren += ', ' + StringHelper.pluralWithDictAndCount(reservation.guestCounts.children, Translation.Step.Date.Child, t);\n }\n\n const nightKeys = Object.keys(reservation.nights);\n\n const firstNight = dayjs(nightKeys[0]);\n const lastNight = dayjs(nightKeys[nightKeys.length - 1]).add(1, 'day');\n\n const guaranteePolicy = reservation.guaranteePolicyLongDescription || '';\n const cancelPolicy = reservation.cancellationPolicyLongDescription || '';\n\n const roomName = reservation.roomType ? reservation.roomType : hotel?.rooms[reservation.roomCode]?.name;\n\n return (\n <SimpleModal open={props.open} onClose={props.onClose} title={`Reservation #${props.reservation.reservationNumber}`} size={SimpleModalSize.Small}>\n <>\n <div style={{ height: '300px' }}>\n <ImageGallerySlider images={images} />\n </div>\n <div className=\"u-marg-heavy u-marg@m-\">\n <div className=\"u-marg-bottom\">\n <Headline size=\"large\" bold>\n {roomName}\n </Headline>\n <Text type={TextType.Small}>{reservation.rate}</Text>\n </div>\n\n <ul>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon color={Color.Grey} icon={IconType.Person} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>\n {reservation.guest.firstName} {reservation.guest.lastName} <span style={{ color: Color.DarkGrey }}>- {adultsAndChildren}</span>\n </Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon icon={IconType.Email} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>{reservation.guest.email}</Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon icon={IconType.Calendar} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>{firstNight.format('dddd, MMM D, YYYY')}</Text>\n <Text type={TextType.Small}>{lastNight.format('dddd, MMM D, YYYY')}</Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start\">\n <Icon icon={IconType.CreditCard} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>\n •••• •••• •••• {reservation.paymentCard?.last4 ?? 'N/A'}{' '}\n <span style={{ color: Color.DarkGrey }}>({reservation.paymentCard?.type ?? 'N/A'})</span>\n </Text>\n </div>\n </li>\n </ul>\n\n <LineBreak />\n\n {nightKeys.map((night) => {\n const currentDay = dayjs(night);\n const currentDayFormatted = currentDay.format('dddd, MMM DD, YYYY');\n\n return (\n <div className=\"u-flex u-marg-bottom\" key={reservation.reservationNumber}>\n <Text>{currentDayFormatted}</Text>\n <Text color={Color.DarkGrey}>\n <Currency>{reservation.nights[night].total}</Currency>\n </Text>\n </div>\n );\n })}\n <div className=\"u-flex\">\n <Text>{lastNight.format('dddd, MMM DD, YYYY')}</Text>\n <Text color={Color.Success}>{t(Translation.Misc.CheckOut)}</Text>\n </div>\n\n <LineBreak />\n\n <div>\n {guaranteePolicy && (\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Misc.GuaranteePolicy)}</strong>\n </Text>\n </div>\n <Text type={TextType.Small}>\n <span className=\"u-clear-font-weight\" dangerouslySetInnerHTML={{ __html: guaranteePolicy }} />\n </Text>\n </div>\n )}\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Misc.CancellationPolicy)}</strong>\n </Text>\n </div>\n <Text type={TextType.Small}>\n <span className=\"u-clear-font-weight\" dangerouslySetInnerHTML={{ __html: cancelPolicy }} />\n </Text>\n </div>\n </div>\n </div>\n </>\n </SimpleModal>\n );\n}\n"]}
1
+ {"version":3,"file":"ReservationRowModal.js","sourceRoot":"/","sources":["src/pages/findReservation/ReservationRowModal.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,kDAA0B;AAC1B,kDAA0B;AAC1B,iDAA+C;AAC/C,0DAAuD;AAEvD,6EAAqD;AACrD,6EAAqD;AACrD,uEAAgE;AAChE,+EAAuD;AACvD,sFAAsF;AACtF,kEAA2D;AAC3D,oGAA4E;AAC5E,wCAAqC;AACrC,uEAA+C;AAS/C,SAAwB,mBAAmB,CAAC,KAA+B;;IACvE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,MAAM,mCAAI,EAAE,CAAC;IAEzG,IAAI,iBAAiB,GAAG,sBAAY,CAAC,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE5H,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE;QAClC,iBAAiB,IAAI,IAAI,GAAG,sBAAY,CAAC,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACrI;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,IAAA,eAAK,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAA,eAAK,EAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEvE,MAAM,eAAe,GAAG,WAAW,CAAC,8BAA8B,IAAI,EAAE,CAAC;IACzE,MAAM,YAAY,GAAG,WAAW,CAAC,iCAAiC,IAAI,EAAE,CAAC;IAEzE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,0CAAE,IAAI,CAAC;IAExG,OAAO,CACH,8BAAC,qBAAW,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,gBAAgB,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,6BAAe,CAAC,KAAK;QAC5I;YACI,uCAAK,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;gBAC3B,8BAAC,4BAAkB,IAAC,MAAM,EAAE,MAAM,GAAI,CACpC;YACN,uCAAK,SAAS,EAAC,wBAAwB;gBACnC,uCAAK,SAAS,EAAC,eAAe;oBAC1B,8BAAC,kBAAQ,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,UACtB,QAAQ,CACF;oBACX,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,WAAW,CAAC,IAAI,CAAQ,CACnD;gBAEN;oBACI,sCAAI,SAAS,EAAC,mDAAmD;wBAC7D,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE,IAAI,EAAE,eAAQ,CAAC,MAAM,GAAI;wBAClD,uCAAK,SAAS,EAAC,oBAAoB;4BAC/B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;gCACrB,WAAW,CAAC,KAAK,CAAC,SAAS;;gCAAG,WAAW,CAAC,KAAK,CAAC,QAAQ;;gCAAE,wCAAM,KAAK,EAAE,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE;;oCAAK,iBAAiB,CAAQ,CAC5H,CACL,CACL;oBACL,sCAAI,SAAS,EAAC,mDAAmD;wBAC7D,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;wBACjD,uCAAK,SAAS,EAAC,oBAAoB;4BAC/B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAQ,CAC1D,CACL;oBACL,sCAAI,SAAS,EAAC,mDAAmD;wBAC7D,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;wBACpD,uCAAK,SAAS,EAAC,oBAAoB;4BAC/B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAQ;4BAC3E,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAQ,CACxE,CACL;oBACL,sCAAI,SAAS,EAAC,8BAA8B;wBACxC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;wBACtD,uCAAK,SAAS,EAAC,oBAAoB;4BAC/B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;+GACN,MAAA,MAAA,WAAW,CAAC,WAAW,0CAAE,KAAK,mCAAI,KAAK;gCAAE,GAAG;gCAC5D,wCAAM,KAAK,EAAE,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE;yCAAI,MAAA,MAAA,WAAW,CAAC,WAAW,0CAAE,IAAI,mCAAI,KAAK;wCAAS,CACtF,CACL,CACL,CACJ;gBAEL,8BAAC,mBAAS,OAAG;gBAEZ,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrB,MAAM,UAAU,GAAG,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC;oBAChC,MAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;oBAEpE,OAAO,CACH,uCAAK,SAAS,EAAC,sBAAsB,EAAC,GAAG,EAAE,WAAW,CAAC,iBAAiB;wBACpE,8BAAC,cAAI,QAAE,mBAAmB,CAAQ;wBAClC,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,QAAQ;4BACvB,8BAAC,kBAAQ,QAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAY,CACnD,CACL,CACT,CAAC;gBACN,CAAC,CAAC;gBACF,uCAAK,SAAS,EAAC,QAAQ;oBACnB,8BAAC,cAAI,QAAE,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAQ;oBACrD,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,OAAO,IAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,CAC/D;gBAEN,8BAAC,mBAAS,OAAG;gBAEb;oBACK,eAAe,IAAI,CAChB,uCAAK,SAAS,EAAC,sBAAsB;wBACjC,uCAAK,SAAS,EAAC,sBAAsB;4BACjC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;gCACtB,8CAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAU,CACnD,CACL;wBACN,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;4BACtB,wCAAM,SAAS,EAAC,qBAAqB,EAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,GAAI,CAC3F,CACL,CACT;oBACD,uCAAK,SAAS,EAAC,sBAAsB;wBACjC,uCAAK,SAAS,EAAC,sBAAsB;4BACjC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;gCACtB,8CAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAU,CACtD,CACL;wBACN,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;4BACtB,wCAAM,SAAS,EAAC,qBAAqB,EAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAI,CACxF,CACL,CACJ,CACJ,CACP,CACO,CACjB,CAAC;AACN,CAAC;AAzHD,sCAyHC","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport { ReservationDTO } from '@roomstay/core';\nimport dayjs from 'dayjs';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Currency from '@/components/generic/Currency';\nimport Headline from '@/components/generic/Headline';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport Text, { TextType } from '@/components/generic/Text';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { Color } from '@/util/Color';\nimport StringHelper from '@/util/StringHelper';\n\ninterface ReservationRowModalProps {\n reservation: ReservationDTO;\n onClose: () => void;\n open: boolean;\n images?: string[];\n}\n\nexport default function ReservationRowModal(props: ReservationRowModalProps) {\n const { hotel } = useCurrentHotel();\n\n const { reservation } = props;\n const { t } = useTranslation();\n\n const images = reservation.images && reservation.images.length ? reservation.images : props.images ?? [];\n\n let adultsAndChildren = StringHelper.pluralWithDictAndCount(reservation.guestCounts.adults, Translation.Step.Date.Adult, t);\n\n if (reservation.guestCounts.children) {\n adultsAndChildren += ', ' + StringHelper.pluralWithDictAndCount(reservation.guestCounts.children, Translation.Step.Date.Child, t);\n }\n\n const nightKeys = Object.keys(reservation.nights);\n\n const firstNight = dayjs(nightKeys[0]);\n const lastNight = dayjs(nightKeys[nightKeys.length - 1]).add(1, 'day');\n\n const guaranteePolicy = reservation.guaranteePolicyLongDescription || '';\n const cancelPolicy = reservation.cancellationPolicyLongDescription || '';\n\n const roomName = reservation.roomType ? reservation.roomType : hotel?.rooms[reservation.roomCode]?.name;\n\n return (\n <SimpleModal open={props.open} onClose={props.onClose} title={`Reservation #${props.reservation.reservationNumber}`} size={SimpleModalSize.Small}>\n <>\n <div style={{ height: '300px' }}>\n <ImageGallerySlider images={images} />\n </div>\n <div className=\"u-marg-heavy u-marg@m-\">\n <div className=\"u-marg-bottom\">\n <Headline size=\"large\" bold>\n {roomName}\n </Headline>\n <Text type={TextType.Small}>{reservation.rate}</Text>\n </div>\n\n <ul>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon color={Color.Grey} icon={IconType.Person} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>\n {reservation.guest.firstName} {reservation.guest.lastName} <span style={{ color: Color.DarkGrey }}>- {adultsAndChildren}</span>\n </Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon icon={IconType.Email} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>{reservation.guest.email}</Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start u-marg-bottom--light\">\n <Icon icon={IconType.Calendar} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>{firstNight.format('dddd, MMM D, YYYY')}</Text>\n <Text type={TextType.Small}>{lastNight.format('dddd, MMM D, YYYY')}</Text>\n </div>\n </li>\n <li className=\"u-flex justify-content-start\">\n <Icon icon={IconType.CreditCard} color={Color.Grey} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small}>\n •••• •••• •••• {reservation.paymentCard?.last4 ?? 'N/A'}{' '}\n <span style={{ color: Color.DarkGrey }}>({reservation.paymentCard?.type ?? 'N/A'})</span>\n </Text>\n </div>\n </li>\n </ul>\n\n <LineBreak />\n\n {nightKeys.map((night) => {\n const currentDay = dayjs(night);\n const currentDayFormatted = currentDay.format('dddd, MMM DD, YYYY');\n\n return (\n <div className=\"u-flex u-marg-bottom\" key={reservation.reservationNumber}>\n <Text>{currentDayFormatted}</Text>\n <Text color={Color.DarkGrey}>\n <Currency>{reservation.nights[night].total}</Currency>\n </Text>\n </div>\n );\n })}\n <div className=\"u-flex\">\n <Text>{lastNight.format('dddd, MMM DD, YYYY')}</Text>\n <Text color={Color.Success}>{t(Translation.Misc.CheckOut)}</Text>\n </div>\n\n <LineBreak />\n\n <div>\n {guaranteePolicy && (\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Misc.GuaranteePolicy)}</strong>\n </Text>\n </div>\n <Text type={TextType.Small}>\n <span className=\"u-clear-font-weight\" dangerouslySetInnerHTML={{ __html: guaranteePolicy }} />\n </Text>\n </div>\n )}\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Misc.CancellationPolicy)}</strong>\n </Text>\n </div>\n <Text type={TextType.Small}>\n <span className=\"u-clear-font-weight\" dangerouslySetInnerHTML={{ __html: cancelPolicy }} />\n </Text>\n </div>\n </div>\n </div>\n </>\n </SimpleModal>\n );\n}\n"]}
@@ -28,6 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const contexts_1 = require("../../../contexts/index.js");
30
30
  const hooks_1 = require("../../../hooks/index.js");
31
+ const core_1 = require("@roomstay/core");
31
32
  const dayjs_1 = __importDefault(require("dayjs"));
32
33
  const react_1 = __importStar(require("react"));
33
34
  const react_i18next_1 = require("react-i18next");
@@ -46,7 +47,6 @@ const events_1 = require("../../../events");
46
47
  const ReservationRow_1 = __importDefault(require("../../findReservation/ReservationRow"));
47
48
  const Color_1 = require("../../../util/Color");
48
49
  const TextAlignment_1 = require("../../../util/TextAlignment");
49
- const TotalCalculator_1 = require("../../../util/TotalCalculator");
50
50
  function StepThanksComponent() {
51
51
  var _a, _b, _c, _d, _e;
52
52
  const basketContext = (0, react_1.useContext)(contexts_1.BasketContext);
@@ -75,7 +75,7 @@ function StepThanksComponent() {
75
75
  });
76
76
  const event = new events_1.StepThanksViewEvent(reservations, basketContext.currentBasketRows, hotel);
77
77
  raise(event);
78
- return (0, TotalCalculator_1.calculateTotalForReservation)(checkoutData, !isFromRoomstay);
78
+ return core_1.TotalCalculator.calculateTotalForReservation(checkoutData, !isFromRoomstay);
79
79
  }
80
80
  return 0;
81
81
  }, [checkoutData]);
@@ -1 +1 @@
1
- {"version":3,"file":"StepThanksComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepThanks/StepThanksComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React, { useCallback, useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport Headline from '@/components/generic/Headline';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { InlineSignUpSection } from '@/components/members/InlineSignUpSection';\nimport { CommonAddonSummary } from '@/components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { ItemisedFeesSummary } from '@/components/steps/common/ItemisedFeesSummary/ItemisedFeesSummary';\nimport { StepThanksViewEvent } from '@/events';\nimport { IEventReservation } from '@/models/Api/IEventReservation';\nimport { ReservationAddonDTO, ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport { SimpleItemisedFee } from '@/models/Fee';\nimport ReservationRow from '@/pages/findReservation/ReservationRow';\nimport { Color } from '@/util/Color';\nimport { TextAlign } from '@/util/TextAlignment';\nimport { calculateTotalForReservation } from '@/util/TotalCalculator';\n\nexport default function StepThanksComponent() {\n const basketContext = useContext(BasketContext);\n\n const { hotel } = useCurrentHotel();\n const ccx = useContext(CompanyContext);\n const { raise } = useEvent();\n\n const [itemisedFees, setItemisedFees] = useState<SimpleItemisedFee[]>([]);\n\n const checkoutData = basketContext.reservationData;\n\n const isFromRoomstay = checkoutData?.itineraryNumber?.startsWith('RS');\n\n const { t } = useTranslation();\n\n const total = useCallback(() => {\n if (checkoutData?.reservations) {\n const reservations: IEventReservation[] = checkoutData?.reservations?.map((obj: ReservationDTO) => {\n const nightKeys = Object.keys(obj.nights);\n const dateFormat = 'YYYY-MM-DDTHH:mm:ss';\n\n return {\n reservationId: obj.reservationNumber,\n checkInTime: dayjs(nightKeys[0]).format(dateFormat),\n checkOutTime: dayjs(nightKeys[nightKeys.length - 1])\n .add(1, 'day')\n .format(dateFormat),\n totalPrice: obj.total.afterTax,\n priceCurrency: ccx.currentCurrency,\n };\n });\n const event = new StepThanksViewEvent(reservations, basketContext.currentBasketRows, hotel);\n raise(event);\n\n return calculateTotalForReservation(checkoutData, !isFromRoomstay);\n }\n\n return 0;\n }, [checkoutData]);\n\n useEffect(() => {\n setItemisedFees(checkoutData.feesSummary || []);\n }, [checkoutData]);\n\n const addons: ReservationAddonDTO[] = [];\n const comments: string[] = [];\n\n useEffect(() => {\n return () => {\n basketContext.finish();\n };\n }, []);\n\n return (\n <div className=\"container u-marg-top--heavy rs-step-thanks\">\n <div className=\"row justify-content-center\">\n <div className=\"col-lg-8 col-md-12 u-flex align-items-center u-flex-direction-column\">\n <div className=\"u-marg-bottom\">\n <Icon icon={IconType.Check} size=\"48px\" color={Color.White} backgroundColor={Color.Accent} borderRadius=\"round\" noPadding />\n </div>\n <div className=\"u-marg-bottom\" style={{ maxWidth: '530px' }}>\n <Headline size=\"large\" align={TextAlign.Center}>\n {t(Translation.Step.Thanks.ThankYouHeadline, { hotel: hotel?.name })}\n </Headline>\n </div>\n <div className=\"u-marg-bottom--heavy\">\n <Text color={Color.DarkGrey}>\n {t(Translation.Step.Thanks.InvoiceNumber)} {checkoutData.itineraryNumber}\n </Text>\n </div>\n\n <div className=\"u-marg-bottom--massive\">\n <Link to=\"/\">\n <BEButton>{t(Translation.Step.Thanks.GoBackHome)}</BEButton>\n </Link>\n </div>\n\n {checkoutData?.reservations?.[0]?.guest && <InlineSignUpSection reservation={checkoutData.reservations[0]} hotelId={hotel?.hotelID || ''} />}\n\n <>\n <div className=\"u-marg-top w-100\">\n {checkoutData?.reservations?.map((obj: ReservationDTO) => {\n if (obj.addons) {\n const nights = Object.keys(obj.nights);\n obj.addons.forEach((addon) => {\n if (isFromRoomstay) {\n addons.push({ ...addon, nights: nights.length });\n } else {\n addons.push(addon);\n }\n });\n }\n\n if (obj.comments) {\n obj.comments.map((comment: string) => {\n comments.push(comment);\n });\n }\n\n return <ReservationRow reservation={obj} key={obj.reservationNumber} />;\n })}\n </div>\n <LineBreak />\n\n <div className=\"w-100\">\n <CommonAddonSummary addons={addons} />\n {comments.length >= 1 && (\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Label} color={Color.Grey}>\n {t(Translation.Step.Confirmation.Comments)}\n </Text>\n </div>\n {comments.map((comment, index) => (\n <Text\n style={{\n whiteSpace: 'pre',\n }}\n key={index}\n type={TextType.Small}\n >\n {comment}\n </Text>\n ))}\n </div>\n )}\n\n <ItemisedFeesSummary fees={itemisedFees} />\n\n <Text type={TextType.Small} align={TextAlign.Right}>\n {t(Translation.Misc.Total)}\n </Text>\n <Headline bold size=\"large\" align={TextAlign.Right}>\n <Currency>{total}</Currency>\n </Headline>\n <Text type={TextType.Small} align={TextAlign.Right} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: t(Translation.Step.Thanks.IncludingTaxes) }}></span>\n </Text>\n </div>\n </>\n </div>\n </div>\n {checkoutData?.reservations?.map((obj: ReservationDTO, index) => {\n const nightKeys = Object.keys(obj.nights);\n\n const firstNight = dayjs(nightKeys[0]);\n const lastNight = dayjs(nightKeys[nightKeys.length - 1]).add(1, 'day');\n\n return (\n <script key={index} type=\"application/ld+json\">\n {JSON.stringify({\n '@context': 'http://schema.org',\n '@type': 'LodgingReservation',\n reservationId: obj.reservationNumber,\n reservationStatus: 'http://schema.org/ReservationConfirmed',\n checkinTime: firstNight.format('YYYY-MM-DDTHH:mm:ss'),\n checkoutTime: lastNight.format('YYYY-MM-DDTHH:mm:ss'),\n totalPrice: obj.total.afterTax,\n basePrice: obj.total.beforeTax,\n priceCurrency: ccx.currentCurrency,\n })}\n </script>\n );\n })}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"StepThanksComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepThanks/StepThanksComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { ReservationAddonDTO, ReservationDTO, SimpleItemisedFee, TotalCalculator } from '@roomstay/core';\nimport dayjs from 'dayjs';\nimport React, { useCallback, useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport Headline from '@/components/generic/Headline';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { InlineSignUpSection } from '@/components/members/InlineSignUpSection';\nimport { CommonAddonSummary } from '@/components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { ItemisedFeesSummary } from '@/components/steps/common/ItemisedFeesSummary/ItemisedFeesSummary';\nimport { StepThanksViewEvent } from '@/events';\nimport { IEventReservation } from '@/models/Api/IEventReservation';\nimport ReservationRow from '@/pages/findReservation/ReservationRow';\nimport { Color } from '@/util/Color';\nimport { TextAlign } from '@/util/TextAlignment';\n\nexport default function StepThanksComponent() {\n const basketContext = useContext(BasketContext);\n\n const { hotel } = useCurrentHotel();\n const ccx = useContext(CompanyContext);\n const { raise } = useEvent();\n\n const [itemisedFees, setItemisedFees] = useState<SimpleItemisedFee[]>([]);\n\n const checkoutData = basketContext.reservationData;\n\n const isFromRoomstay = checkoutData?.itineraryNumber?.startsWith('RS');\n\n const { t } = useTranslation();\n\n const total = useCallback(() => {\n if (checkoutData?.reservations) {\n const reservations: IEventReservation[] = checkoutData?.reservations?.map((obj: ReservationDTO) => {\n const nightKeys = Object.keys(obj.nights);\n const dateFormat = 'YYYY-MM-DDTHH:mm:ss';\n\n return {\n reservationId: obj.reservationNumber,\n checkInTime: dayjs(nightKeys[0]).format(dateFormat),\n checkOutTime: dayjs(nightKeys[nightKeys.length - 1])\n .add(1, 'day')\n .format(dateFormat),\n totalPrice: obj.total.afterTax,\n priceCurrency: ccx.currentCurrency,\n };\n });\n const event = new StepThanksViewEvent(reservations, basketContext.currentBasketRows, hotel);\n raise(event);\n\n return TotalCalculator.calculateTotalForReservation(checkoutData, !isFromRoomstay);\n }\n\n return 0;\n }, [checkoutData]);\n\n useEffect(() => {\n setItemisedFees(checkoutData.feesSummary || []);\n }, [checkoutData]);\n\n const addons: ReservationAddonDTO[] = [];\n const comments: string[] = [];\n\n useEffect(() => {\n return () => {\n basketContext.finish();\n };\n }, []);\n\n return (\n <div className=\"container u-marg-top--heavy rs-step-thanks\">\n <div className=\"row justify-content-center\">\n <div className=\"col-lg-8 col-md-12 u-flex align-items-center u-flex-direction-column\">\n <div className=\"u-marg-bottom\">\n <Icon icon={IconType.Check} size=\"48px\" color={Color.White} backgroundColor={Color.Accent} borderRadius=\"round\" noPadding />\n </div>\n <div className=\"u-marg-bottom\" style={{ maxWidth: '530px' }}>\n <Headline size=\"large\" align={TextAlign.Center}>\n {t(Translation.Step.Thanks.ThankYouHeadline, { hotel: hotel?.name })}\n </Headline>\n </div>\n <div className=\"u-marg-bottom--heavy\">\n <Text color={Color.DarkGrey}>\n {t(Translation.Step.Thanks.InvoiceNumber)} {checkoutData.itineraryNumber}\n </Text>\n </div>\n\n <div className=\"u-marg-bottom--massive\">\n <Link to=\"/\">\n <BEButton>{t(Translation.Step.Thanks.GoBackHome)}</BEButton>\n </Link>\n </div>\n\n {checkoutData?.reservations?.[0]?.guest && <InlineSignUpSection reservation={checkoutData.reservations[0]} hotelId={hotel?.hotelID || ''} />}\n\n <>\n <div className=\"u-marg-top w-100\">\n {checkoutData?.reservations?.map((obj: ReservationDTO) => {\n if (obj.addons) {\n const nights = Object.keys(obj.nights);\n obj.addons.forEach((addon) => {\n if (isFromRoomstay) {\n addons.push({ ...addon, nights: nights.length });\n } else {\n addons.push(addon);\n }\n });\n }\n\n if (obj.comments) {\n obj.comments.map((comment: string) => {\n comments.push(comment);\n });\n }\n\n return <ReservationRow reservation={obj} key={obj.reservationNumber} />;\n })}\n </div>\n <LineBreak />\n\n <div className=\"w-100\">\n <CommonAddonSummary addons={addons} />\n {comments.length >= 1 && (\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Label} color={Color.Grey}>\n {t(Translation.Step.Confirmation.Comments)}\n </Text>\n </div>\n {comments.map((comment, index) => (\n <Text\n style={{\n whiteSpace: 'pre',\n }}\n key={index}\n type={TextType.Small}\n >\n {comment}\n </Text>\n ))}\n </div>\n )}\n\n <ItemisedFeesSummary fees={itemisedFees} />\n\n <Text type={TextType.Small} align={TextAlign.Right}>\n {t(Translation.Misc.Total)}\n </Text>\n <Headline bold size=\"large\" align={TextAlign.Right}>\n <Currency>{total}</Currency>\n </Headline>\n <Text type={TextType.Small} align={TextAlign.Right} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: t(Translation.Step.Thanks.IncludingTaxes) }}></span>\n </Text>\n </div>\n </>\n </div>\n </div>\n {checkoutData?.reservations?.map((obj: ReservationDTO, index) => {\n const nightKeys = Object.keys(obj.nights);\n\n const firstNight = dayjs(nightKeys[0]);\n const lastNight = dayjs(nightKeys[nightKeys.length - 1]).add(1, 'day');\n\n return (\n <script key={index} type=\"application/ld+json\">\n {JSON.stringify({\n '@context': 'http://schema.org',\n '@type': 'LodgingReservation',\n reservationId: obj.reservationNumber,\n reservationStatus: 'http://schema.org/ReservationConfirmed',\n checkinTime: firstNight.format('YYYY-MM-DDTHH:mm:ss'),\n checkoutTime: lastNight.format('YYYY-MM-DDTHH:mm:ss'),\n totalPrice: obj.total.afterTax,\n basePrice: obj.total.beforeTax,\n priceCurrency: ccx.currentCurrency,\n })}\n </script>\n );\n })}\n </div>\n );\n}\n"]}
@@ -402,6 +402,25 @@ export declare const Translation: {
402
402
  BeingHeldFor: string;
403
403
  PrivacyPolicyDetail: string;
404
404
  EditThisProperty: string;
405
+ GiftCard: string;
406
+ EnterCode: string;
407
+ ApplyCode: string;
408
+ CodeApplied: string;
409
+ YourBalance: string;
410
+ Remaining: string;
411
+ TrueRewardsCoversFullBooking: string;
412
+ TrueRewardsCoversFullInstructions: string;
413
+ TrueRewardsInsufficient: string;
414
+ TrueRewardsInsufficientInstructions: string;
415
+ TrueRewardsInputHelperText: string;
416
+ TrueRewardsInvalid: string;
417
+ TrueRewardsFailed: string;
418
+ TrueRewardsEnterGiftCard: string;
419
+ TrueRewardsEnterFirstGiftCard: string;
420
+ TrueRewardsEnterCreditCard: string;
421
+ TrueRewardsRedirectExternalPage: string;
422
+ TrueRewardsContinueToGiftCardPayment: string;
423
+ TrueRewardsContinueToRemainingPayment: string;
405
424
  };
406
425
  Thanks: {
407
426
  AddOnItems: string;
@@ -559,6 +578,7 @@ export declare const Translation: {
559
578
  ApplyNow: string;
560
579
  PerksDisclaimer: string;
561
580
  LoadMoreDates: string;
581
+ MoreInfo: string;
562
582
  };
563
583
  FindReservation: {
564
584
  FindYourReservation: string;
@@ -405,6 +405,25 @@ exports.Translation = {
405
405
  BeingHeldFor: 'Step.Confirmation.BeingHeldFor',
406
406
  PrivacyPolicyDetail: 'Step.Confirmation.PrivacyPolicyDetail',
407
407
  EditThisProperty: 'Step.Confirmation.EditThisProperty',
408
+ GiftCard: 'Step.Confirmation.GiftCard',
409
+ EnterCode: 'Step.Confirmation.EnterCode',
410
+ ApplyCode: 'Step.Confirmation.ApplyCode',
411
+ CodeApplied: 'Step.Confirmation.CodeApplied',
412
+ YourBalance: 'Step.Confirmation.YourBalance',
413
+ Remaining: 'Step.Confirmation.Remaining',
414
+ TrueRewardsCoversFullBooking: 'Step.Confirmation.TrueRewardsCoversFullBooking',
415
+ TrueRewardsCoversFullInstructions: 'Step.Confirmation.TrueRewardsCoversFullInstructions',
416
+ TrueRewardsInsufficient: 'Step.Confirmation.TrueRewardsInsufficient',
417
+ TrueRewardsInsufficientInstructions: 'Step.Confirmation.TrueRewardsInsufficientInstructions',
418
+ TrueRewardsInputHelperText: 'Step.Confirmation.TrueRewardsInputHelperText',
419
+ TrueRewardsInvalid: 'Step.Confirmation.TrueRewardsInvalid',
420
+ TrueRewardsFailed: 'Step.Confirmation.TrueRewardsFailed',
421
+ TrueRewardsEnterGiftCard: 'Step.Confirmation.TrueRewardsEnterGiftCard',
422
+ TrueRewardsEnterFirstGiftCard: 'Step.Confirmation.TrueRewardsEnterFirstGiftCard',
423
+ TrueRewardsEnterCreditCard: 'Step.Confirmation.TrueRewardsEnterCreditCard',
424
+ TrueRewardsRedirectExternalPage: 'Step.Confirmation.TrueRewardsRedirectExternalPage',
425
+ TrueRewardsContinueToGiftCardPayment: 'Step.Confirmation.TrueRewardsContinueToGiftCardPayment',
426
+ TrueRewardsContinueToRemainingPayment: 'Step.Confirmation.TrueRewardsContinueToRemainingPayment',
408
427
  },
409
428
  Thanks: {
410
429
  AddOnItems: 'Step.Thanks.AddOnItems',
@@ -562,6 +581,7 @@ exports.Translation = {
562
581
  ApplyNow: 'Misc.ApplyNow',
563
582
  PerksDisclaimer: 'Misc.PerksDisclaimer',
564
583
  LoadMoreDates: 'Misc.LoadMoreDates',
584
+ MoreInfo: 'Misc.MoreInfo',
565
585
  },
566
586
  FindReservation: {
567
587
  FindYourReservation: 'FindReservation.FindYourReservation',