@roomstay/frontend 2.6.79-1 → 2.6.79

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 (94) hide show
  1. package/dist/430.bundle.js +1 -1
  2. package/dist/537.bundle.js +1 -1
  3. package/dist/659.bundle.js +1 -0
  4. package/dist/978.bundle.js +1 -1
  5. package/dist/984.bundle.js +1 -0
  6. package/dist/main.bundle.js +1 -1
  7. package/dist/src/api/BookingAPI.d.ts +0 -2
  8. package/dist/src/api/BookingAPI.js +0 -2
  9. package/dist/src/api/BookingAPI.js.map +1 -1
  10. package/dist/src/api/ReservationAPI.js +9 -12
  11. package/dist/src/api/ReservationAPI.js.map +1 -1
  12. package/dist/src/components/generic/BookingWizard/BookingWizard.d.ts +0 -1
  13. package/dist/src/components/generic/BookingWizard/BookingWizard.js +1 -7
  14. package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -1
  15. package/dist/src/components/generic/Event/EventCard.js +8 -16
  16. package/dist/src/components/generic/Event/EventCard.js.map +1 -1
  17. package/dist/src/components/generic/Event/EventCarousel.js +1 -3
  18. package/dist/src/components/generic/Event/EventCarousel.js.map +1 -1
  19. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js +2 -9
  20. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  21. package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js +10 -11
  22. package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js.map +1 -1
  23. package/dist/src/components/steps/confirmation/StepConfirmationForm.js +4 -11
  24. package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
  25. package/dist/src/components/steps/room/AvailableUpgradesModal.js +5 -0
  26. package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
  27. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +2 -2
  28. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
  29. package/dist/src/components/summary/BESummaryRoomRow.js +1 -1
  30. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  31. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +11 -63
  32. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  33. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +0 -1
  34. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  35. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +2 -5
  36. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  37. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +2 -10
  38. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  39. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +0 -1
  40. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
  41. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js +0 -1
  42. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js.map +1 -1
  43. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +0 -3
  44. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  45. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js +0 -1
  46. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js.map +1 -1
  47. package/dist/src/index.d.ts +0 -1
  48. package/dist/src/index.js +2 -4
  49. package/dist/src/index.js.map +1 -1
  50. package/dist/src/models/Api/HotelDTO.d.ts +0 -1
  51. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  52. package/dist/src/models/BasketRow.d.ts +1 -2
  53. package/dist/src/models/BasketRow.js +2 -32
  54. package/dist/src/models/BasketRow.js.map +1 -1
  55. package/dist/src/models/Client/Hotel/Hotel.d.ts +0 -1
  56. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  57. package/dist/src/models/RoomstaySession.d.ts +0 -1
  58. package/dist/src/models/RoomstaySession.js.map +1 -1
  59. package/dist/src/providers/FeatureProvider.js +0 -2
  60. package/dist/src/providers/FeatureProvider.js.map +1 -1
  61. package/dist/src/providers/feature/Feature.d.ts +0 -2
  62. package/dist/src/providers/feature/Feature.js +0 -4
  63. package/dist/src/providers/feature/Feature.js.map +1 -1
  64. package/dist/src/providers/storage/SessionProvider.js +0 -2
  65. package/dist/src/providers/storage/SessionProvider.js.map +1 -1
  66. package/dist/src/translations/Translation.d.ts +0 -18
  67. package/dist/src/translations/Translation.js +0 -18
  68. package/dist/src/translations/Translation.js.map +1 -1
  69. package/dist/src/translations/languages/en-gb.js +0 -18
  70. package/dist/src/translations/languages/en-gb.js.map +1 -1
  71. package/dist/src/util/TotalCalculator.js.map +1 -1
  72. package/dist/test.bundle.js +1 -1
  73. package/dist/vendors.bundle.js +1 -1
  74. package/package.json +2 -2
  75. package/dist/456.bundle.js +0 -1
  76. package/dist/977.bundle.js +0 -1
  77. package/dist/src/api/TrueRewardsAPI.d.ts +0 -4
  78. package/dist/src/api/TrueRewardsAPI.js +0 -37
  79. package/dist/src/api/TrueRewardsAPI.js.map +0 -1
  80. package/dist/src/components/steps/confirmation/StepConfirmationImportantInformation.d.ts +0 -7
  81. package/dist/src/components/steps/confirmation/StepConfirmationImportantInformation.js +0 -54
  82. package/dist/src/components/steps/confirmation/StepConfirmationImportantInformation.js.map +0 -1
  83. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.d.ts +0 -2
  84. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.js +0 -53
  85. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.js.map +0 -1
  86. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.d.ts +0 -2
  87. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.js +0 -115
  88. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.js.map +0 -1
  89. package/dist/src/handlers/payment/TrueRewardsPaymentHandler.d.ts +0 -2
  90. package/dist/src/handlers/payment/TrueRewardsPaymentHandler.js +0 -44
  91. package/dist/src/handlers/payment/TrueRewardsPaymentHandler.js.map +0 -1
  92. package/dist/src/providers/feature/ConfirmationImportantInformationFeature.d.ts +0 -10
  93. package/dist/src/providers/feature/ConfirmationImportantInformationFeature.js +0 -13
  94. package/dist/src/providers/feature/ConfirmationImportantInformationFeature.js.map +0 -1
@@ -1 +0,0 @@
1
- (("undefined"!=typeof self?self:this).webpackChunkroomstay=("undefined"!=typeof self?self:this).webpackChunkroomstay||[]).push([[977],{30075:function(e,t,n){"use strict";n.d(t,{m:function(){return s}});var r=n(15671),a=n(43144),o=n(60136),l=n(82963),i=n(61120);var s=function(e){(0,o.Z)(u,e);var t,n,s=(t=u,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,i.Z)(t);if(n){var a=(0,i.Z)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,l.Z)(this,e)});function u(e,t,n){var a;return(0,r.Z)(this,u),(a=s.call(this)).reservation=void 0,a.basketRows=void 0,a.hotel=void 0,a.reservation=e,a.basketRows=t,a.hotel=n,a}return(0,a.Z)(u,null,[{key:"getLabel",value:function(){return"Booking/Placed"}}]),u}(n(97112).x)},95032:function(e,t,n){"use strict";n.d(t,{z:function(){return s}});var r=n(15671),a=n(43144),o=n(60136),l=n(82963),i=n(61120);var s=function(e){(0,o.Z)(u,e);var t,n,s=(t=u,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,i.Z)(t);if(n){var a=(0,i.Z)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,l.Z)(this,e)});function u(e){var t;return(0,r.Z)(this,u),(t=s.call(this)).basketRows=void 0,t.basketRows=e,t}return(0,a.Z)(u,null,[{key:"getLabel",value:function(){return"View/Checkout"}}]),u}(n(97112).x)},99977:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Pn}});var r=n(4918),a=n(95032),o=n(27484),l=n.n(o),i=n(67294),s=n(26793),u=n(89250),c=n(79655),d=n(79478),m=n(13821),p=n(13010),f=n(46409),v=n(19874),g=n(47304),A=n(87462),y=n(70885),C=n(89331),h=n(88144),b=n(87582),E=n(73460),x=n(79740),_=n(83893),P=n(78886),k=n(7832),w=n(30584),Z=n(94184),S=n.n(Z),B=n(44744),I=n(97754);function R(e){var t=e.addon,n=(0,s.$)().t;return i.createElement("div",{className:S()("additional-offers--column",{"--selected":e.selected}),style:{backgroundImage:"url('".concat(t.image&&B.Z.resizeImage(t.image,B.h.Original),"')")},onClick:function(){var t;null===(t=e.cardClicked)||void 0===t||t.call(e)}},i.createElement("div",{className:"additional-offers--column-body"},i.createElement(w.ZP,{type:w.yG.Small,color:I.Il.White},i.createElement("strong",null,t.name)),i.createElement("div",{className:"u-flex"},i.createElement(w.ZP,{inline:!0,type:w.yG.Small,color:I.Il.White},n(d.W.Misc.SeeDetails)),i.createElement(P.ZP,{icon:P.Tu.ArrowRight,color:I.Il.White}))))}var N=n(64854),W=n(20858),M=n(11830),T=n(65128),D=n(16380),q=n(63351);function G(e){var t,n=e.addon,a=((0,s.$)().t,(0,i.useContext)(r.hy)),o=(0,i.useState)(e.basketAddonRow?e.basketAddonRow.getSelectedDate():""),l=(0,y.Z)(o,2),u=l[0],c=l[1],d=(0,i.useState)(e.basketAddonRow?e.basketAddonRow.getSelectedTime():""),m=(0,y.Z)(d,2),f=m[0],v=m[1],g=(0,i.useState)({quantity:1}),A=(0,y.Z)(g,2),C=A[0],h=A[1],b=(0,i.useState)(e.basketAddonRow?e.basketAddonRow.getQuantity():1),E=(0,y.Z)(b,2),x=E[0],_=E[1],P=(0,i.useState)(e.basketAddonRow?e.basketAddonRow.getAdultQuantity():1),k=(0,y.Z)(P,2),Z=k[0],S=k[1],R=(0,i.useState)(e.basketAddonRow?e.basketAddonRow.getChildQuantity():0),G=(0,y.Z)(R,2),O=G[0],F=G[1];return i.useEffect((function(){var t,r,a,o,l,i;if(n)return e.basketAddonRow?(h(null!==(t=n.availability[e.basketAddonRow.getSelectedDate()])&&void 0!==t?t:n.availability[n.firstDate]),c(null!==(r=e.basketAddonRow.getSelectedDate())&&void 0!==r?r:n.firstDate),v(null!==(a=e.basketAddonRow.getSelectedTime())&&void 0!==a?a:""),_(e.basketAddonRow.getQuantity()),S(e.basketAddonRow.getAdultQuantity()),F(e.basketAddonRow.getChildQuantity())):(h(n.availability[n.firstDate]),c(n.firstDate),v((null===(o=n.availability[n.firstDate])||void 0===o||null===(l=o.selectorTimes)||void 0===l||null===(i=l[0])||void 0===i?void 0:i.value)||"")),function(){_(1),S(1),F(0)}}),[n]),i.createElement(T.Z,{open:e.isOpen,onClose:e.onClose,size:T.g.Small,title:n?n.name:""},n&&i.createElement(i.Fragment,null,i.createElement("div",{style:{height:"350px",width:"100%",backgroundImage:'url("'.concat(n.image&&B.Z.resizeImage(n.image,B.h.Original),'")'),backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover"}}),i.createElement("div",{className:"u-marg-heavy u-marg@m-"},i.createElement("div",{className:"u-marg-bottom"},i.createElement(p.Z,{bold:!0},n.name)),i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement(w.ZP,{type:w.yG.Small,color:I.Il.DarkGrey},i.createElement(M.R,{content:n.description}))),i.createElement("div",{className:"row u-marg-top"},i.createElement("div",{className:"u-flex col-md-6"},i.createElement(w.ZP,null,"Date"),i.createElement(q.P,{nativeOnMobile:!0,options:n.selectorDates,value:u,onChange:function(e){var t,r,a,o;t=e,h(n.availability[t]),c(t),v((null===(r=n.availability[t])||void 0===r||null===(a=r.selectorTimes)||void 0===a||null===(o=a[0])||void 0===o?void 0:o.value)||""),n.availability[t].quantity<x&&_(n.availability[t].quantity)},keyName:"value",labelName:"text",className:"u-flex align-items-center"}))),0!==(null==C||null===(t=C.selectorTimes)||void 0===t?void 0:t.length)&&i.createElement("div",{className:"row u-marg-top"},i.createElement("div",{className:"u-flex col-md-6"},i.createElement(w.ZP,null,"Time"),i.createElement(q.P,{nativeOnMobile:!0,options:(null==C?void 0:C.selectorTimes)||[],value:f,onChange:function(e){v(e)},keyName:"value",labelName:"text",className:"u-flex align-items-center"}))),C.price&&i.createElement("div",{className:"row u-marg-top"},i.createElement("div",{className:"u-flex col-md-6"},i.createElement(w.ZP,null,"Quantity"),i.createElement(D.Z,{number:x,min:1,max:C.quantity,onChange:function(e){_(e)}}))),C.adultPrice&&i.createElement("div",{className:"row u-marg-top"},i.createElement("div",{className:"u-flex col-md-6"},i.createElement(w.ZP,null,"Adults"),i.createElement(D.Z,{number:Z,min:0,max:C.quantity-O,onChange:function(e){S(e)}}))),C.childPrice&&i.createElement("div",{className:"row u-marg-top"},i.createElement("div",{className:"u-flex col-md-6"},i.createElement(w.ZP,null,"Children"),i.createElement(D.Z,{number:O,min:0,max:C.quantity-Z,onChange:function(e){F(e)}}))),i.createElement("div",{className:"u-flex align-items-center u-marg-top"},C.price&&i.createElement("h2",{className:"u-marg-none u-flex u-flex-align-center"},i.createElement(W.Z,null,C.price),"/ Qty"),C.adultPrice&&C.childPrice&&i.createElement("h2",{className:"u-marg-none"},i.createElement("div",{className:"u-marg-none u-flex u-flex-align-center"},i.createElement(W.Z,null,C.adultPrice)," / Adult"),i.createElement("br",null),i.createElement("div",{className:"u-marg-none u-flex u-flex-align-center"},i.createElement(W.Z,null,C.childPrice)," / Child")),C.adultPrice&&!C.childPrice&&i.createElement("h2",{className:"u-marg-none u-flex u-flex-align-center"},i.createElement(W.Z,null,C.adultPrice)," / Adult"),C.childPrice&&!C.adultPrice&&i.createElement("h2",{className:"u-marg-none u-flex u-flex-align-center"},i.createElement(W.Z,null,C.childPrice)," / Child"),i.createElement(N.Z,{filled:!0,primary:!0,onClick:function(){a.setAddonQuantities(n,{quantity:x,adult:Z,child:O},u,f),e.onClose()}},e.basketAddonRow?"Update Cart":"Add to Cart")),n.guaranteeDescription&&i.createElement(i.Fragment,null,i.createElement("h4",{className:"u-marg-bottom--light u-marg-top"},"Guarantee"),i.createElement("div",{className:"u-marg-bot--heavy"},i.createElement(w.ZP,{type:w.yG.Small},n.guaranteeDescription))),n.cancelPenalty&&i.createElement(i.Fragment,null,i.createElement("h4",{className:"u-marg-bottom--light u-marg-top"},"Cancellation Policy"),i.createElement("div",{className:"u-marg-bot--heavy"},i.createElement(w.ZP,{type:w.yG.Small},n.cancelPenalty))))))}function O(){var e=(0,i.useContext)(r.hy),t=(0,i.useContext)(r.Qm),n=(0,C.WP)().hotel,a=(0,h.q_)((function(){return{x:0}})),o=(0,y.Z)(a,2),l=o[0].x,u=o[1],c=(0,E.Z)(),m=(0,y.Z)(c,2),f=m[0],v=m[1],g=(0,s.$)().t,Z=i.useState([]),S=(0,y.Z)(Z,2),B=S[0],N=S[1],W=(0,i.useState)(!1),M=(0,y.Z)(W,2),T=M[0],D=M[1],q=(0,i.useState)(null),O=(0,y.Z)(q,2),F=O[0],U=O[1],L=(0,i.useState)(!1),j=(0,y.Z)(L,2),Y=j[0],H=j[1],Q=(0,i.useState)(0),z=(0,y.Z)(Q,2),V=z[0],K=z[1],J=(0,i.useState)(0),$=(0,y.Z)(J,2),X=($[0],$[1]),ee=(0,i.useState)(-1),te=(0,y.Z)(ee,2),ne=te[0],re=te[1];i.useEffect((function(){var t=!1,r=e.getAllValidRows();return H(!0),_.Z.Addons.findAddons(r,null==n?void 0:n.hotelID).then((function(e){t||(H(!1),N(e))})),function(){H(!1),t=!0}}),[t.currentLanguage]);var ae=222,oe=ae*B.length>=v.width,le=(0,b.c0)((function(e){var t=e.down,n=(0,y.Z)(e.movement,1)[0];ie(t,n)})),ie=function(e,t){if(oe)if(e)u({x:V+1.5*t});else{var n=V+t,r=(B.length-1)*ae,a=0;if(n>0)a=0,re(-1);else if(n<-(r-v.width+ae))a=-(r-v.width+ae),re(1);else{var o=-n/ae,l=n%ae>-111?Math.floor(o):Math.ceil(o);a=-l*ae,X(l),re(0)}u({x:a}),K(a)}};return i.createElement(x.Z,{open:!Y&&0!==(null==B?void 0:B.length)||!(null==n||!n.showAddonLoader)},i.createElement("div",{className:"u-pad-bottom--heavy "},i.createElement("div",{className:"u-marg-bottom"},i.createElement(p.Z,{bold:!0},g(d.W.Step.Confirmation.AdditionalOfferings))),Y&&null!=n&&n.showAddonLoader?i.createElement(k.Z,null):0===(null==B?void 0:B.length)?i.createElement("div",null,i.createElement(w.ZP,{color:I.Il.DarkGrey},g(d.W.Step.Confirmation.NoAdditionalOfferings))):i.createElement("div",{className:"additional-offers"+(B.length>2?"":" --wide"),ref:f},oe&&i.createElement("div",{className:"additional-offers--navigation"},i.createElement(P.ZP,{icon:P.Tu.ArrowLeft2,onClick:function(){ie(!1,ae)},color:-1===ne?I.Il.DarkGrey:I.Il.White,backgroundColor:I.Il.Navy,borderRadius:"round",size:"24px"}),i.createElement(P.ZP,{icon:P.Tu.ArrowRight2,onClick:function(){ie(!1,-222)},color:1===ne?I.Il.DarkGrey:I.Il.White,backgroundColor:I.Il.Navy,borderRadius:"round",size:"24px"})),i.createElement("div",{className:"additional-offers--track-container"},i.createElement(h.q.div,(0,A.Z)({className:"additional-offers--track"},le(),{style:{left:l}}),B.map((function(t,n){return i.createElement(R,{selected:!!e.getRowForAddon(t),key:n,addon:t,cardClicked:function(){D(!0),U(t)}})}))))),i.createElement(G,{isOpen:T&&!!F,addon:F,basketAddonRow:e.getRowForAddon(F),onClose:function(){D(!1)}})))}var F=n(87933);function U(e){var t=(0,i.useState)(e.endTimeDate.diff(l()(),"second")),n=(0,y.Z)(t,2),r=n[0],a=n[1];return(0,i.useEffect)((function(){var t=!1,n=setTimeout((function(){t||(r>0?a((function(e){return e-1})):(e.onEnd&&e.onEnd(),t=!0,clearTimeout(n)))}),1e3);return function(){t=!0,clearTimeout(n)}}),[r]),(0,i.useMemo)((function(){var e=[Math.floor(r/60/60),Math.floor(r/60%60),Math.floor(r%60)];return i.createElement(i.Fragment,null,e.map((function(e){return e.toString().padStart(2,"0")})).join(":"))}),[r])}var L=n(84544);function j(e){var t=(0,i.useState)(!1),n=(0,y.Z)(t,2),r=n[0],a=n[1],o=(0,s.$)().t;return i.createElement(F.ZP,{type:F.NK.Accent1},i.createElement("div",{className:"u-flex w-100 flex-wrap align-items-center"},i.createElement("div",null,i.createElement(w.ZP,null,i.createElement("strong",null,o(d.W.Step.Confirmation.YourRoomIs))),i.createElement(w.ZP,null,i.createElement("strong",null,o(d.W.Step.Confirmation.BeingHeldFor)))),i.createElement("div",{className:r?"a-flash":""},i.createElement(p.Z,{size:"large",bold:!0,color:I.Il.White},i.createElement(U,{endTimeDate:e.endDate,onEnd:function(){L.ZP.instance.sendInteraction("Countdown End Seen",L.s_.LINK,L._J.GUEST_DETAILS),a(!0)}})))))}var Y=n(4511),H=n(38279),Q=n(40370),z=n(3933),V=n(16337),K=n(25400),J=n(90292),$=n(95692),X=n(4942),ee=n(15861),te=n(64687),ne=n.n(te),re=n(76598),ae=n(23115),oe=n(39666),le=n(13819),ie=n(96486),se=n(87536),ue=n(78029),ce=n(79852),de=n(33409);function me(e){var t,n,a=(0,i.useContext)(r.hy),o=(0,s.$)().t,u=(0,i.useState)(l()().add(14,"minute")),c=(0,y.Z)(u,2),m=c[0];c[1],(0,i.useEffect)((function(){var t,n=!1,r=null;return(e.differences.length||null!==(t=e.warnings)&&void 0!==t&&t.length)&&(r=setTimeout((function(){n||e.onClose()}),74e4)),function(){n=!0,clearTimeout(r)}}),[e.differences.length,null===(t=e.warnings)||void 0===t?void 0:t.length]);var f=i.createElement("div",{className:"u-flex"},i.createElement(N.Z,{isText:!0,size:"small",icon:P.Tu.ArrowLeft,onClick:e.onClose,isLoading:e.isLoading},o(d.W.Step.Confirmation.TakeMeBack)),i.createElement(N.Z,{primary:!0,filled:!0,icon:P.Tu.ArrowRight,iconPosition:"right",onClick:e.onProceed,isLoading:e.isLoading},o(d.W.Step.Confirmation.ContinueWithReservation)));return i.createElement(T.Z,{open:!!e.differences.length||!(null===(n=e.warnings)||void 0===n||!n.length),title:o(d.W.Step.Confirmation.YourTotalPriceHasChanged),mobileFooter:f,desktopFooter:i.createElement("div",{className:"u-marg-heavy u-marg@m-"},f),size:T.g.Small,alignCenter:!0},i.createElement("div",{className:"u-marg-heavy u-marg@m-"},i.createElement("div",{className:"row"},i.createElement("div",{className:"col-md-8"},i.createElement(w.ZP,{type:w.yG.Small},o(d.W.Step.Confirmation.ConfirmationCheckoutTitle))),i.createElement("div",{className:"col-md-4"},i.createElement(de.ZP,{icon:P.Tu.Time,type:de.Rm.Primary},i.createElement("span",{className:"u-marg-right--light"},o(d.W.Step.Confirmation.RevertsIn)),i.createElement(U,{endTimeDate:m})))),i.createElement(v.Z,null),!(!e.differences||!e.differences.length)&&e.differences.map((function(e){var t,n,r,o=a.getAllValidRows().find((function(t){return t.getID()===e.id}));return i.createElement("div",{key:e.id},!!o&&i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement("div",{className:"u-marg-bottom--light"},i.createElement(p.Z,null,o.getRoom().name)),i.createElement(w.ZP,null,null===(t=o.getRate())||void 0===t?void 0:t.name)),i.createElement("div",{className:"u-flex u-marg-bottom--light"},i.createElement(w.ZP,{type:w.yG.Body},i.createElement("strong",null,"Displayed price:")),i.createElement(w.ZP,{color:I.Il.Alert},i.createElement(W.Z,null,null===(n=e.totalPrice)||void 0===n?void 0:n.before))),i.createElement("div",{className:"u-flex"},i.createElement(w.ZP,{type:w.yG.Body},i.createElement("strong",null,"Actual price:")),i.createElement(w.ZP,{color:I.Il.Success},i.createElement(W.Z,null,null===(r=e.totalPrice)||void 0===r?void 0:r.after))),i.createElement(v.Z,null))})),!(!e.warnings||!e.warnings.length)&&e.warnings.map((function(e,t){return i.createElement(w.ZP,{key:t},e)}))))}var pe=(0,i.createContext)({}),fe=function(){return(0,i.useContext)(pe)},ve=n(30075),ge=n(86820),Ae=n(15671),ye=n(43144),Ce=n(60136),he=n(82963),be=n(61120);var Ee,xe,_e=function(e){(0,Ce.Z)(a,e);var t,n,r=(t=a,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,be.Z)(t);if(n){var a=(0,be.Z)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,he.Z)(this,e)});function a(e){var t;return(0,Ae.Z)(this,a),(t=r.call(this)).reservation=void 0,t.reservation=e,t}return(0,ye.Z)(a,null,[{key:"getLabel",value:function(){return"Booking/RolledBack"}}]),a}(n(97112).x),Pe=(n(47577),n(37533),n(51698)),ke=(0,i.forwardRef)((function(e,t){var n,a,o=(0,i.useRef)(null),l=(0,i.useContext)(r.hy),s=(0,i.useState)(null),u=(0,y.Z)(s,2),c=u[0],d=u[1],m=null===(n=l.reservationData)||void 0===n||null===(a=n.payment)||void 0===a?void 0:a.adyen;return(0,i.useImperativeHandle)(t,(function(){return{submitPayment:function(){return(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=(0,ee.Z)(ne().mark((function e(t){var n;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!c){e.next=8;break}return c.submit(),e.next=4,xe;case 4:if(!(n=e.sent)||"Authorised"===n.resultCode){e.next=7;break}return e.abrupt("return",t({success:!1,message:"Payment failed to authorize",data:{sessionData:n.sessionData,sessionResponse:n.sessionResult}}));case 7:t({success:!0,message:"Payment successful"});case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})))()}}})),(0,i.useEffect)((function(){var e,t=!1;return(0,ee.Z)(ne().mark((function n(){var r,a,l,i,s;return ne().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(m&&o.current&&!t&&null!=m&&m.sessionId&&null!=m&&m.sessionData){n.next=2;break}return n.abrupt("return");case 2:return c&&c.unmount(),xe=new Promise((function(e){Ee=e})),n.next=6,(0,Pe.wk)({session:{id:null!==(r=null==m?void 0:m.sessionId)&&void 0!==r?r:"",sessionData:null==m?void 0:m.sessionData},environment:m.isLive?"live":"test",amount:{currency:null!==(a=null==m?void 0:m.currency)&&void 0!==a?a:"",value:100*parseFloat(null!==(l=null==m?void 0:m.amount)&&void 0!==l?l:"0")},clientKey:null!==(i=null==m?void 0:m.clientKey)&&void 0!==i?i:"",countryCode:null==m?void 0:m.countryCode,onPaymentCompleted:function(e){Ee(e)},onPaymentFailed:function(e,t){null==t||t.setStatus("error",{message:"Payment failed to process"}),Ee(e)},showPayButton:!1});case 6:e=n.sent,o.current&&((s=new Pe.TP(e)).mount(o.current),d(s));case 8:case"end":return n.stop()}}),n)})))(),function(){t=!0,c&&c.unmount()}}),[o,m]),i.createElement(i.Fragment,null,i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement(p.Z,{bold:!0},"Choose your payment method")),i.createElement("div",{ref:o,id:"dropin-container"}))})),we=function(){var e,t,n=(0,C.WP)().hotel,r=(0,i.useRef)(null);return{name:"Adyen",isAvailable:(null==n?void 0:n.cardProcessor)===re.EHotelCardProcessor.Adyen,isExclusive:!0,requireBookingPlaced:!0,bookingPaymentMethod:re.EBookingPaymentMethod.Adyen,onConfirm:(t=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r.current){e.next=2;break}return e.abrupt("return",r.current.submitPayment());case 2:return e.abrupt("return",{success:!1,retryPayment:!1,message:"Something has gone wrong. Failed to get payment infromation details."});case 3:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)}),getBookingPaymentRequestObject:(e=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{Method:re.EBookingPaymentMethod.Adyen});case 1:case"end":return e.stop()}}),e)}))),function(){return e.apply(this,arguments)}),renderPaymentInput:function(){return i.createElement(ke,{ref:r})}}},Ze=n(49723),Se=n(62364),Be=n(276),Ie=n.n(Be),Re=function(){var e=(0,(0,r.Kc)().getTotalPayNow)(),t=(0,Ze.Z)({children:e}),n=t.symbol,a=t.prettyValue;return i.createElement("div",{className:S()(Ie().root,"u-flex","u-flex-align-center")},i.createElement("div",null,i.createElement("img",{src:Se.Z.getAssetUrl()+"assets/img/afterpay.svg",alt:"Afterpay",height:33})),i.createElement(w.ZP,{bold:!0,className:"u-flex",color:I.Il.Navy,type:w.yG.Small},n,a))},Ne=function(){var e,t,n,r=(0,C.WP)().hotel;return{name:"Afterpay",isAvailable:!(null==r||null===(e=r.paymentMethods)||void 0===e||!e.includes(re.EBookingPaymentMethod.Afterpay)),isExclusive:!1,requireBookingPlaced:!1,bookingPaymentMethod:re.EBookingPaymentMethod.Afterpay,onConfirm:(n=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{success:!0,retryPayment:!1,message:"Redirecting to payment gateway"});case 1:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)}),getBookingPaymentRequestObject:(t=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{Method:re.EBookingPaymentMethod.Afterpay});case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)}),renderInput:function(){return i.createElement(Re,null)},renderPaymentInput:void 0}},We=function(){var e,t,n=null===(e=(0,i.useContext)(r.hy).reservationData)||void 0===e||null===(t=e.payment)||void 0===t?void 0:t.mastercard;return(0,i.useEffect)((function(){if(null!=n&&n.sessionId){var e=document.getElementById("mastercard-checkout-script");e&&(e.remove(),window.Checkout=void 0),sessionStorage.removeItem("HostedCheckout_sessionId"),sessionStorage.removeItem("HostedCheckout_merchantState"),sessionStorage.removeItem("HostedCheckout_embedContainer"),window.mastercardError=function(){},window.mastercardCancel=function(){},window.mastercardComplete=function(){};var t=document.createElement("script");t.id="mastercard-checkout-script",t.src="".concat(n.baseUrl,"/static/checkout/checkout.min.js"),t.dataset.error="mastercardError",t.dataset.cancel="mastercardCancel",t.dataset.complete="mastercardComplete",t.onload=function(){window.Checkout?(window.Checkout.configure({session:{id:n.sessionId}}),"PaymentPage"===n.paymentMode?window.Checkout.showPaymentPage():"EmbeddedPage"===n.paymentMode&&window.Checkout.showEmbeddedPage("#mastercard-payment-container")):console.error("Mastercard Checkout SDK failed!")},document.head.appendChild(t)}}),[null==n?void 0:n.sessionId]),i.createElement("div",{id:"mastercard-payment-container"})},Me=function(){var e,t,n=(0,C.WP)().hotel;return{name:"Mastercard",isAvailable:(null==n?void 0:n.cardProcessor)===re.EHotelCardProcessor.Mastercard,isExclusive:!0,hasCustomConfirmButton:!0,requireBookingPlaced:!0,bookingPaymentMethod:re.EBookingPaymentMethod.Card,onConfirm:(t=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{success:!0,message:"Success"});case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)}),getBookingPaymentRequestObject:(e=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{Method:re.EBookingPaymentMethod.Card});case 1:case"end":return e.stop()}}),e)}))),function(){return e.apply(this,arguments)}),renderPaymentInput:function(){return i.createElement(We,null)}}},Te=n(46716),De=n(1320),qe=n.n(De),Ge=function(){var e=(0,s.$)().t;return i.createElement("div",{className:qe()["label-and-logo"]},i.createElement("div",null,e(d.W.Step.Confirmation.PlanpayLabel)),i.createElement("div",{className:"u-flex u-flex-align-center u-marg-left--light"},i.createElement("img",{style:{borderRadius:"24px",width:"65px",height:"16px"},height:16,width:65,src:Se.Z.getImageAssetUrl("planpay-logo-small.svg"),alt:""})))},Oe=function(){var e=(0,s.$)().t;return i.createElement(w.ZP,{color:I.Il.Graphite,className:"u-flex u-flex-align-center",style:{color:"#313131",fontSize:10}},i.createElement(P.ZP,{color:I.Il.DarkGrey,icon:P.Tu.Info,className:"u-marg-right--lighter u-marg-left--light"}),e(d.W.Step.Confirmation.PlanpayHelperText))},Fe=function(e){var t=e.symbol,n=e.rawPrice;return i.createElement(w.ZP,{bold:!0,className:qe().price,color:I.Il.Navy,type:w.yG.Small},t,null==n?void 0:n.installmentAmount," ",null==n?void 0:n.frequency)},Ue=function(){var e,t,n,a,o,l,s,u,c,d,m,p,f,v,g,A,C,h,b,E=(0,se.Gc)(),x=(0,i.useContext)(r.g7),_=(n=(e={}).price,a=e.checkin,o=e.currency,l=(0,r.Kc)(),s=(0,Te.Z)(),u=s.planpay,c=s.planpayConfig,d=s.hasPlanpay,m=(0,i.useContext)(r.Qm).currentCurrency,p=null!=o?o:m,f=l.getTotalPrice()||n,v=(0,Ze.Z)({children:f}).value,g=null!=a?a:((null===(t=l.selectedBasketRow)||void 0===t?void 0:t.getStartDate())||l.endDate).format("YYYY-MM-DD"),A=(0,i.useState)(void 0),C=(0,y.Z)(A,2),h=C[0],b=C[1],(0,i.useEffect)((function(){if(d&&v){var e=function(){var e=(0,ee.Z)(ne().mark((function e(){var t;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.pricePreview.fetch({totalCost:f,merchantId:c.username,currencyCode:p,redemptionDate:g});case 2:t=e.sent,b(t);case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();e()}}),[v,d,p,f]),h),P=(0,r.Kc)().getTotalPrice,k=(0,Ze.Z)({children:P()}).symbol,w=x.screenSize<=J.Z.Large;return i.createElement("div",{className:"u-flex u-flex-justify-between w-100 u-flex-align-center"},i.createElement("div",{className:qe().root},i.createElement("div",{className:qe().container},i.createElement(Ge,null),w?i.createElement(Fe,{symbol:k,rawPrice:_}):E.formState.isValid?null:i.createElement(Oe,null)),w?i.createElement(Oe,null):i.createElement(Fe,{symbol:k,rawPrice:_})))},Le=n(53296),je=n(69747),Ye=n(514),He=function(){return i.createElement("div",null,i.createElement("div",{className:"row no-gutters"},i.createElement("div",{className:"col-md-4"},i.createElement("div",{className:"d-flex justify-content-center"},i.createElement(je.Z,{type:"text",w:"md",h:"sm",blink:!0})),i.createElement(je.Z,{type:"text",h:"md",blink:!0}),i.createElement(je.Z,{type:"text",h:"md",blink:!0})),i.createElement("div",{className:"col-md-4"},i.createElement("div",{className:"d-flex justify-content-center"},i.createElement(je.Z,{type:"text",w:"md",h:"sm",blink:!0})),i.createElement(je.Z,{type:"text",h:"sm",blink:!0}),i.createElement(je.Z,{type:"text",h:"sm",blink:!0}),i.createElement(je.Z,{type:"text",h:"sm",blink:!0})),i.createElement("div",{className:"col-md-4"},i.createElement("div",{className:"d-flex justify-content-center"},i.createElement(je.Z,{type:"text",w:"md",h:"sm",blink:!0})),i.createElement("div",{className:"d-flex justify-content-center u-marg-top u-marg-bottom"},i.createElement(je.Z,{type:"text",w:"xs",h:"sm",blink:!0,noMarg:!0})),i.createElement("div",{className:"d-flex justify-content-center"},i.createElement(je.Z,{type:"text",w:"md",h:"sm",blink:!0,noMarg:!0})),i.createElement("div",{className:"d-flex justify-content-center u-marg-top u-marg-bottom"},i.createElement(je.Z,{type:"text",w:"xs",h:"sm",blink:!0,noMarg:!0})))),i.createElement("div",{className:"row no-gutters"},i.createElement("div",{className:"col-md-4"},i.createElement(je.Z,{type:"text",h:"lg",blink:!0})),i.createElement("div",{className:"offset-md-4 col-md-4 d-flex align-items-center"},i.createElement(je.Z,{type:"text",w:"xl",h:"sm",blink:!0}))))},Qe=function(){var e,t,n=(0,i.useContext)(r.hy),a=(0,Ye.W)().hotel,o=(0,Te.Z)(),l=o.hasPlanpay,s=o.loadPlanPaySDK,u=null===(e=n.reservationData)||void 0===e||null===(t=e.payment)||void 0===t?void 0:t.planpay;return(0,i.useLayoutEffect)((function(){null!=u&&u.id&&Le.planpay.checkout.refresh()}),[null==u?void 0:u.id]),(0,i.useEffect)((function(){l&&s()}),[a,l]),i.createElement(i.Fragment,null,i.createElement("div",{className:"planpay-payment-container","data-planpay-checkout-id":null==u?void 0:u.id,style:{minHeight:"204px",display:"flex",justifyContent:"flex-end",flexDirection:"column"}},i.createElement(He,null)))},ze=n(25758),Ve=function(){var e=(0,ze.u)(),t=(0,ze.a)(),n=(0,i.useMemo)((function(){return["paymentMethod","roomstayId","planpay_checkout_id","returnFromPayment","success"].map((function(n){return t.get(n)||e.get(n)}))}),[e,t]),r=(0,y.Z)(n,5);return{queryPaymentMethod:r[0],queryRoomstayId:r[1],queryPlanpayCheckoutId:r[2],returnFromPayment:"true"===r[3],success:"true"===r[4]}},Ke=function(){var e,t,n=Ve().queryPlanpayCheckoutId,a=(0,i.useContext)(r.hy),o=(0,r.dF)(),s=(0,Te.Z)(),u=s.hasPricePreview,c=s.planpayConfig;return{name:"Planpay",isAvailable:!!u&&!(null==c||!c.minDaysShowPlanpay)&&l()(a.startDate).diff(l()(),"day")>c.minDaysShowPlanpay,isExclusive:!1,disabledReason:"You must fill all the above details before proceeding with Planpay",requireBookingPlaced:!0,requireFormFilled:!0,bookingPaymentMethod:re.EBookingPaymentMethod.Planpay,onConfirm:(t=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{success:!0,retryPayment:!1,message:"Success"});case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)}),getBookingPaymentRequestObject:(e=(0,ee.Z)(ne().mark((function e(){var t,r,a;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(t=new URLSearchParams(window.location.search)).set("roomstayId","{{rsId}}"),t.set("session",o.sessionProvider.getCurrentSessionID().toString()),t.set("paymentMethod",re.EBookingPaymentMethod.Planpay),r="".concat(window.location.origin).concat(window.location.pathname).concat(window.location.search,"#/step/confirmation/?").concat(t),a={Method:re.EBookingPaymentMethod.Planpay,PlanpayCheckoutId:n||void 0,RedirectUrl:r},e.abrupt("return",a);case 7:case"end":return e.stop()}}),e)}))),function(){return e.apply(this,arguments)}),renderInput:function(){return i.createElement(Ue,null)},renderPaymentInput:function(){return i.createElement(Qe,null)}}},Je=n(35729),$e=n.n(Je),Xe=function(e){var t=e.vgsCardName,n=e.large;return i.createElement("div",{className:S()($e().root,(0,X.Z)({},$e()["--large"],n)),style:{backgroundImage:"url('".concat(Se.Z.getImageAssetUrl()+t+".png","')")}})},et=n(59111),tt=function(e){var t,n=e.isCurrent,r=e.isDefault,a=e.style,o=(0,C.WP)().hotel,l=(null!==(t=null==o?void 0:o.paymentCardTypes)&&void 0!==t?t:[]).map((function(e){return et.w[e]?{name:et.w[e],status:!1}:null})).filter((function(e){return e}));return i.createElement("div",{className:"u-flex flex-row justify-content-start"},Object.keys(l).map((function(e){var t,o;return i.createElement("div",{key:e,id:null===(t=l[e])||void 0===t?void 0:t.name,className:S()("cc-icon u-flex u-marg-right--light",{"-current":null==n?void 0:n(e),"-default":null==r?void 0:r(e)}),style:Object.assign({backgroundImage:"url('".concat(Se.Z.getAssetUrl()+"assets/img/"+(null===(o=l[e])||void 0===o?void 0:o.name)+".png","')"),backgroundSize:"contain"},a||{})})})))},nt=n(39605),rt=n(75498),at=n.n(rt),ot=function(e){var t,n=e.card,a=(e.active,e.overrideSubLabel),o=(0,s.$)().t,l=(0,r.ZS)().roomstayMember,u=(0,(0,r.Kc)().getTotalPayNow)(),c=(0,Ze.Z)({children:u}),m=c.symbol,p=c.prettyValue,f=a||(n?"Expires ".concat((t=n.expiry).slice(0,2)+" / "+t.slice(2)):o(d.W.Step.Confirmation.CardSubLabel));return i.createElement("div",{className:"u-flex u-flex-justify-between w-100 u-flex-align-center"},i.createElement("div",{className:at().root},n?i.createElement("div",{className:"flex-shrink-0"},i.createElement(Xe,{vgsCardName:n.type,large:!0})):null,i.createElement("div",null,i.createElement(w.ZP,{align:nt.P.Left,type:w.yG.Small,color:I.Il.Navy},n?"**** **** **** ".concat(n.cardNumber.slice(-4)):o(d.W.Step.Confirmation.CardLabel)),i.createElement(w.ZP,{className:"u-marg-top--lighter",align:nt.P.Left,type:w.yG.Caption,color:I.Il.DarkGrey},f)),!n&&i.createElement("div",null,i.createElement(tt,{style:{width:24,height:16,borderRadius:1.5,border:"0.5px solid #DFE1E5"},isCurrent:function(){return!0}})),(null==l?void 0:l.defaultCard)&&n&&n.cardId===l.defaultCard&&i.createElement(de.ZP,{size:"small",type:de.Rm.Primary},"DEFAULT CARD")),i.createElement(w.ZP,{bold:!0,className:"u-flex",color:I.Il.Navy,type:w.yG.Small},m,p))},lt=function(){var e,t,n,r=(0,C.WP)().hotel,a=(0,s.$)().t;return{name:"Redirect",isAvailable:!(null==r||!r.cardProcessor||r.cardProcessor===re.EHotelCardProcessor.Passthrough||null==r||null===(e=r.paymentMethods)||void 0===e||!e.includes(re.EBookingPaymentMethod.Card)),isExclusive:!1,requireBookingPlaced:!1,bookingPaymentMethod:re.EBookingPaymentMethod.Card,onConfirm:(n=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{success:!0,retryPayment:!1,message:"Redirecting to payment gateway"});case 1:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)}),getBookingPaymentRequestObject:(t=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{Method:re.EBookingPaymentMethod.Card});case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)}),renderInput:function(){return i.createElement(ot,{active:!0,overrideSubLabel:a(d.W.Step.Confirmation.CardThirdPartyLabel)})},renderPaymentInput:void 0}},it=n(36765),st=n.n(it),ut=function(){var e=(0,s.$)().t,t=(0,(0,r.Kc)().getTotalPayNow)(),n=(0,Ze.Z)({children:t}),a=n.symbol,o=n.prettyValue;return i.createElement("div",{className:"u-flex u-flex-justify-between w-100 u-flex-align-center"},i.createElement("div",{className:st().root},i.createElement(w.ZP,{align:nt.P.Left,type:w.yG.Small,color:I.Il.Navy},e(d.W.Step.Confirmation.GiftCard))),i.createElement(w.ZP,{bold:!0,className:"u-flex",color:I.Il.Navy,type:w.yG.Small},a,o))},ct=n(41432),dt=n(33236),mt=n(36231),pt=n.n(mt),ft=function(){var e=(0,s.$)().t,t=(0,dt.useCurrentHotel)().hotel,n=(0,(0,dt.useBasket)().getTotalPayNow)(),r=(0,i.useState)(""),a=(0,y.Z)(r,2),o=a[0],l=a[1],u=(0,i.useState)(null),c=(0,y.Z)(u,2),m=c[0],p=c[1],f=(0,i.useState)(""),v=(0,y.Z)(f,2),g=v[0],A=v[1],C=(0,i.useState)(!1),h=(0,y.Z)(C,2),b=h[0],E=h[1],x=o.trim(),_=x.length>6,k=null!==m?m-n:0,Z=(0,Ze.Z)({children:k}),S=Z.symbol,B=Z.prettyValue,R=Z.isLoading,W=(0,Ze.Z)({children:m}),M=W.prettyValue,T=W.isLoading,D=function(){var n=(0,ee.Z)(ne().mark((function n(){var r;return ne().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(A(""),p(null),null==t||!t.hotelID){n.next=18;break}return n.prev=3,E(!0),n.next=7,dt.API.TrueRewards.fetchBalance(x,t.hotelID);case 7:null===(r=n.sent)?A(e(d.W.Step.Confirmation.TrueRewardsInvalid)):p(r),n.next=15;break;case 11:n.prev=11,n.t0=n.catch(3),console.error(n.t0),A(e(d.W.Step.Confirmation.TrueRewardsFailed));case 15:return n.prev=15,E(!1),n.finish(15);case 18:case"end":return n.stop()}}),n,null,[[3,11,15,18]])})));return function(){return n.apply(this,arguments)}}();return i.createElement("div",{className:pt().container},i.createElement("div",{className:pt().inputRow},i.createElement(ct.Z,{value:o,onChange:function(e){l(e.target.value),A("")},placeholder:e(d.W.Step.Confirmation.EnterCode)}),i.createElement(N.Z,{className:pt().applyCodeButton,isLoading:b,size:"small",onClick:D,disabled:!_,icon:null!==m?P.Tu.Check:P.Tu.ArrowRight,iconPosition:"right",rounded:!0},e(null!==m?d.W.Step.Confirmation.CodeApplied:d.W.Step.Confirmation.ApplyCode))),null===m||T||R?i.createElement(i.Fragment,null,g&&i.createElement(w.ZP,{color:I.Il.Danger,type:w.yG.Small,style:{marginTop:"8px"}},g),i.createElement(w.ZP,{color:I.Il.DarkGrey,type:w.yG.Small,style:{marginTop:"8px"}},e(d.W.Step.Confirmation.TrueRewardsInputHelperText))):i.createElement("div",{className:pt().infoBlock},i.createElement("div",{className:pt().leftContent},i.createElement(w.ZP,{bold:!0,type:w.yG.Small},e(m>=n?d.W.Step.Confirmation.TrueRewardsCoversFullBooking:d.W.Step.Confirmation.TrueRewardsInsufficient)),i.createElement(w.ZP,{type:w.yG.Small},e(m>=n?d.W.Step.Confirmation.TrueRewardsCoversFullInstructions:d.W.Step.Confirmation.TrueRewardsInsufficientInstructions))),i.createElement("div",{className:pt().rightContent},i.createElement("div",{className:pt().card},i.createElement(w.ZP,{type:w.yG.Small},e(d.W.Step.Confirmation.YourBalance)),i.createElement(w.ZP,{bold:!0,color:I.Il.Navy},S,M)),i.createElement("div",{className:pt().card},i.createElement(w.ZP,{type:w.yG.Small},e(d.W.Step.Confirmation.Remaining)),i.createElement(w.ZP,{bold:!0,color:k<0?I.Il.Danger:I.Il.Navy},S,B)))))},vt=function(){var e,t,n,r=(0,C.WP)().hotel;return{name:"TrueRewards",isAvailable:!(null==r||null===(e=r.paymentMethods)||void 0===e||!e.includes(re.EBookingPaymentMethod.TrueRewards)),isExclusive:!1,requireBookingPlaced:!1,requireFormFilled:!1,bookingPaymentMethod:re.EBookingPaymentMethod.TrueRewards,onConfirm:(n=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{success:!0,retryPayment:!1,message:"Success"});case 1:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)}),getBookingPaymentRequestObject:(t=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{Method:re.EBookingPaymentMethod.TrueRewards});case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)}),renderInput:function(){return i.createElement(ut,null)},renderPaymentInput:function(){return i.createElement(ft,null)}}},gt=function(){var e,t,n,a=(0,C.WP)(),o=a.hotel,l=a.isMemberPaymentInformationAvailable,s=(0,r.ZS)(),u=s.cards,c=s.roomstayMember,d=null==o||!o.cardProcessor||o.cardProcessor===re.EHotelCardProcessor.Passthrough,m=null==u?void 0:u[0];return null!=c&&c.defaultCard&&(m=null==u?void 0:u.find((function(e){return e.cardId===(null==c?void 0:c.defaultCard)}))),{name:"VGSMember",isAvailable:d&&!(null==o||null===(e=o.paymentMethods)||void 0===e||!e.includes(re.EBookingPaymentMethod.Card))&&!(null==u||!u.length)&&l,isExclusive:!1,requireBookingPlaced:!1,bookingPaymentMethod:re.EBookingPaymentMethod.Card,subOptions:null==u?void 0:u.map((function(e){return{label:i.createElement(ot,{card:e}),value:e.cardId}})),onConfirm:(n=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{success:!0,message:"Using saved card"});case 1:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)}),getBookingPaymentRequestObject:(t=(0,ee.Z)(ne().mark((function e(){var t;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{Method:re.EBookingPaymentMethod.SavedCard,SavedCardID:null===(t=m)||void 0===t?void 0:t.cardId});case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)}),renderInput:function(){return i.createElement(ot,{card:m})},renderPaymentInput:void 0,onSubOptionChange:function(e){m=null==u?void 0:u.find((function(t){return t.cardId===e}))}}},At=n(45993),yt=n(71291),Ct=(0,i.forwardRef)((function(e,t){var n,r=(0,C.WP)().hotel,a=(0,i.useState)({}),o=(0,y.Z)(a,2),l=o[0],u=o[1],c=(0,s.$)().t,m=(0,C.b)().focusElement,p={fontSize:"13px",lineHeight:"18px","&::placeholder":{color:"#8B8F9A",opacity:1}},f=(0,yt.c)([{label:c(d.W.Step.Confirmation.Inputs.CardNumber),name:"credit-card",type:"card-number",vgsProps:{autoComplete:["cc-number"],successColor:"#4F8A10",errorColor:"#D8000C",showCardIcon:!1,placeholder:c(d.W.Step.Confirmation.Inputs.CardNumber)+" *",validations:["required","validCardNumber"],css:p}},{label:c(d.W.Step.Confirmation.Inputs.NameOnCard),name:"card-name",type:"text",vgsProps:{validations:["required"],css:p,placeholder:c(d.W.Step.Confirmation.Inputs.NameOnCard)+" *"}},{label:c(d.W.Step.Confirmation.Inputs.CardExpiry),name:"expiration-date",type:"card-expiration-date",vgsProps:{placeholder:c(d.W.Step.Confirmation.Inputs.CardExpiry)+" *",validations:["required","validCardExpirationDate"],css:p}},{label:c(d.W.Step.Confirmation.Inputs.SecurityCode),name:"security-code",type:"card-security-code",vgsProps:{placeholder:c(d.W.Step.Confirmation.Inputs.SecurityCode)+" *",validations:["required","validCardSecurityCode"],css:p}}]),v=(0,y.Z)(f.fields,4),g=v[0],A=v[1],h=v[2],b=v[3],E=f.vgsForm,_=function(e){var t={};Object.keys(e).forEach((function(n){var r="";switch(n){case"credit-card":r=c(d.W.Step.Confirmation.Inputs.CardNumber);break;case"expiration-date":r=c(d.W.Step.Confirmation.Inputs.CardExpiry);break;case"security-code":r=c(d.W.Step.Confirmation.Inputs.SecurityCode);break;default:r=c(d.W.Step.Confirmation.Inputs.NameOnCard)}t[n]=r+" "+e[n].errorMessages[e[n].errorMessages.length-1]})),u(t)};(0,i.useEffect)((function(){var e,t;l&&0!==Object.keys(l).length&&null!=g&&null!==(e=g.ref)&&void 0!==e&&e.current&&m(null==g||null===(t=g.ref)||void 0===t?void 0:t.current)}),[l]),(0,i.useImperativeHandle)(t,(function(){return{submitPayment:function(){return new Promise((function(e,t){E?E.submit("/post",{serializer:"deep",methods:"POST"},(function(n,r){var a=r,o=a["expiration-date"].match(/^(\d+)\s*\/\s*(\d+)$/);if(!o||o[1].length>2||4!==o[2].length&&2!==o[2].length)return _({"expiration-date":{errorMessages:[c(d.W.Step.Confirmation.InputErrors.CardExpiry.Invalid)]}}),void t(c(d.W.Step.Confirmation.InputErrors.CardExpiry.Invalid));var l=(1===o[1].length?"0":"")+o[1]+(2===o[2].length?o[2]:o[2].substr(2)),i={CVV:a["security-code"],Expiry:l,Name:a["card-name"],Number:a["credit-card"],Type:g.state.cardType};e({success:!0,message:"Payment successful",data:{PaymentCard:i}})}),(function(e){_(e),t(e)})):console.error("VGS not on element, problem has occurred")}))}}}));var k=(0,i.useRef)(null),Z=(null!==(n=null==r?void 0:r.paymentCardTypes)&&void 0!==n?n:[]).map((function(e){return et.w[e]?{name:et.w[e],status:!1}:null})).filter((function(e){return e}));return i.createElement("div",null,["credit-card","card-name","expiration-date","security-code"].map((function(e){var t=l[e];return i.createElement(x.Z,{open:!!t,key:e},i.createElement("div",{className:"u-flex"},i.createElement(F.ZP,{type:F.NK.Danger,icon:P.Tu.Error},i.createElement(w.ZP,{type:w.yG.Small},t))))})),i.createElement("div",{className:"u-marg-bottom"},i.createElement(tt,{isCurrent:function(e){var t;return null!==g.state.cardType&&(null===(t=Z[e])||void 0===t?void 0:t.name)===g.state.cardType},isDefault:function(e){return null===g.state.cardType}})),i.createElement("form",{ref:k},i.createElement(At.Z,{dimensions:"2/2"},i.createElement("div",{className:g.getClasses(),ref:g.ref}),i.createElement(At.Z,{dimensions:"2/2"},i.createElement("div",{className:h.getClasses(),ref:h.ref}),i.createElement("div",{className:b.getClasses(),ref:b.ref}))),i.createElement(At.Z,{dimensions:"1"},i.createElement("div",{className:A.getClasses(),ref:A.ref}))))})),ht=function(){var e,t,n,r=(0,C.WP)().hotel,a=(0,i.useRef)(null);return{name:"VGS",isAvailable:!(null!=r&&r.cardProcessor&&r.cardProcessor!==re.EHotelCardProcessor.Passthrough||null==r||null===(e=r.paymentMethods)||void 0===e||!e.includes(re.EBookingPaymentMethod.Card)),isExclusive:!1,requireBookingPlaced:!1,bookingPaymentMethod:re.EBookingPaymentMethod.Card,onConfirm:(n=(0,ee.Z)(ne().mark((function e(){var t,n;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,null===(t=a.current)||void 0===t?void 0:t.submitPayment();case 2:if(!(n=e.sent)){e.next=5;break}return e.abrupt("return",n);case 5:return e.abrupt("return",{success:!1,retryPayment:!1,message:"Something has gone wrong. Failed to get payment infromation details."});case 6:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)}),getBookingPaymentRequestObject:(t=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{Method:re.EBookingPaymentMethod.Card});case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)}),renderInput:function(){return i.createElement(ot,{active:!0})},renderPaymentInput:function(){return i.createElement(Ct,{ref:a})}}},bt=n(22566),Et=n(57133),xt=n(15891),_t=n(71657),Pt=function(e){var t=e.errorData,n=e.onClose,r=e.isLoading;return i.createElement(T.Z,{open:!!t,size:T.g.Small,alignCenter:!0,onClose:n},i.createElement("div",{className:"u-pad--heavy-plus"},i.createElement("div",{className:"u-flex justify-content-center u-marg-bottom"},i.createElement(P.ZP,{icon:P.Tu.Error,size:"85px",color:I.Il.Accent})),i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement(p.Z,{align:nt.P.Center,size:"larger",bold:!0},"Apologies ",i.createElement("br",null),"for the inconvenience.")),i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement(w.ZP,{type:w.yG.Body,align:nt.P.Center},null==t?void 0:t.publicMessage)),!(null!=t&&t.isPaymentTaken)&&i.createElement(w.ZP,{type:w.yG.Small,color:I.Il.Grey,align:nt.P.Center},"* No payment has been taken")),i.createElement("div",{className:"u-flex justify-content-center"},i.createElement(N.Z,{icon:P.Tu.Close,stopIconAnimation:!0,onClick:n,wide:!0,isLoading:e.isLoading,disabled:r},"Reload"),(null==t?void 0:t.canRetryPayment)&&i.createElement(N.Z,{className:"u-marg-left",primary:!0,filled:!0,icon:P.Tu.ArrowRight2,stopIconAnimation:!0,iconPosition:"right",wide:!0,onClick:e.onRetry,isLoading:e.isLoading,disabled:e.isLoading},"Retry"))))};function kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?kt(Object(n),!0).forEach((function(t){(0,X.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Zt=pe.Provider,St=function(e){var t=e.children,n=(0,i.useState)({differences:[],warnings:[]}),a=(0,y.Z)(n,2),o=a[0],l=a[1],u=Ve(),c=u.queryPaymentMethod,m=u.queryRoomstayId,p=u.queryPlanpayCheckoutId,f=u.returnFromPayment,v=u.success,g=(0,i.useContext)(r.g7),A=(0,r.ZS)().roomstayMember,h=(0,i.useState)(),b=(0,y.Z)(h,2),E=b[0],P=b[1],k=(0,i.useState)(!1),Z=(0,y.Z)(k,2),S=Z[0],B=Z[1],I=(0,i.useState)(!1),R=(0,y.Z)(I,2),W=R[0],M=R[1],T=(0,i.useState)(""),D=(0,y.Z)(T,2),q=D[0],G=D[1],O=(0,i.useState)(!1),U=(0,y.Z)(O,2),j=U[0],Y=U[1],H=(0,i.useState)(!1),Q=(0,y.Z)(H,2),z=Q[0],V=Q[1],K=(0,Et.t)(),J=K.isExternalMemberHotel,$=K.memberNumber,X=(0,i.useState)(),te=(0,y.Z)(X,2),de=te[0],pe=te[1],fe=(0,i.useState)(!1),Ae=(0,y.Z)(fe,2),ye=Ae[0],Ce=Ae[1],he=(0,i.useState)(!1),be=(0,y.Z)(he,2),Ee=be[0],xe=be[1],Pe=(0,se.cI)({mode:"onSubmit"}),ke=(0,i.useState)([]),Ze=(0,y.Z)(ke,2),Se=Ze[0],Be=Ze[1],Ie=(0,i.useState)([]),Re=(0,y.Z)(Ie,2),We=Re[0],Te=Re[1],De=(0,i.useContext)(r.hy),qe=De.getAllValidRows(),Ge=De.basketAddonRows,Oe=(0,i.useMemo)((function(){return g.sessionProvider.getSession()}),[De.reservationData]),Fe=(0,C.WP)().hotel,Ue=(0,s.$)().t,Le=(0,C.zX)().raise,je=[lt(),we(),ht(),gt(),Ke(),Ne(),Me(),vt()],Ye=(0,bt.J)(),He=!!p&&!!m&&!!c,Qe=!(!f||!v&&He||!m),ze=Pe.watch("paymentMethod"),Je=(0,i.useRef)(!0);(0,i.useEffect)((function(){return function(){Je.current=!1}}),[]),(0,i.useEffect)((function(){var e,t;P(null===(e=g.engine.getSessionProvider().getSession())||void 0===e?void 0:e.source);var n=null===(t=De.reservationData)||void 0===t?void 0:t.roomstayId;Qe&&!(!m||n&&m!==n)&&(null==ot||ot(De.reservationData,"Please wait... Finalising your reservation")),He&&m===n&&(null==ot||ot(De.reservationData,"Please wait... Finalising your reservation"))}),[]),(0,i.useEffect)((function(){((null==Fe?void 0:Fe.requireDeposit)||(null==Fe?void 0:Fe.bookingFlow)!==re.EBookingFlow.Default)&&""!==De.quoteQueryID&&De.quoteOrPencilReservation((function(){return Je.current}))}),[null==Fe?void 0:Fe.requireDeposit,null==Fe?void 0:Fe.bookingFlow,De.quoteQueryID]),(0,i.useEffect)((function(){var e=je.filter((function(e){return e.isAvailable})),t="";null!=A&&A.cards&&e.some((function(e){return"VGSMember"===e.name}))&&(t="VGSMember"),!t&&e.length>0&&(t=e[0].name),Pe.setValue("paymentMethod",t),Te(e)}),[Fe]),(0,i.useEffect)((function(){var e=We.find((function(e){return e.name===ze}));e&&e.requireBookingPlaced&&!e.isExclusive&&dt()}),[ze]);var $e=(0,i.useMemo)((function(){return We.find((function(e){return e.isExclusive}))}),[We]),Xe=function(e){return e.userProfiles.map((function(t){var n=t.CountryCode;if(!n){var r=xt.T.find((function(e){return e.label===t.Country}));n=null==r?void 0:r.code}return{title:t.Title,firstName:t.Forename,lastName:t.Surname,phone:t.Phone.replace(" ",""),email:t.Email,address:{line1:t.Address,city:t.City,postalCode:t.PostCode,state:t.State,country:t.Country,countryId:t.CountryId,countryCode:n},marketingOptIn:e.marketingOptIn,auxInputs:t.AuxInputs}}))},et=function(e){var t=Se.every((function(t){return t().validate(e)}));return void 0===t||t},tt=function(){var e=(0,ee.Z)(ne().mark((function e(t){var n;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=[],!t.reservations){e.next=5;break}t.reservations.forEach((function(e,t){var r=De.currentBasketRows[t].checkDiffFromReservation(e);r&&n.push(r)})),e.next=7;break;case 5:throw oe.n_({level:le.z.Error,message:"No reservation data: "+JSON.stringify(t)}),new Error("The reservation could not be completed due to an unexpected issue, please try again");case 7:if(!(n.length||t.warnings&&t.warnings.length)){e.next=9;break}return e.abrupt("return",{differences:n,warnings:t.warnings});case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),nt=function(){var e=(0,ee.Z)(ne().mark((function e(t,n){var r,a,o,l;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Le(new ve.m(t,De.currentBasketRows,Fe)),n!==re.EBookingPaymentMethod.Planpay){e.next=3;break}return e.abrupt("return");case 3:if((null==Fe?void 0:Fe.cardProcessor)!==re.EHotelCardProcessor.Passthrough){e.next=8;break}return e.next=6,null==ot?void 0:ot(t);case 6:e.next=9;break;case 8:null!==(r=t.payment)&&void 0!==r&&null!==(a=r.external)&&void 0!==a&&a.redirectUrl&&st(null===(o=t.payment)||void 0===o||null===(l=o.external)||void 0===l?void 0:l.redirectUrl);case 9:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),rt=function(){var e=(0,ee.Z)(ne().mark((function e(t,n){var r,a,o,i,s,u;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return L.ZP.instance.sendInteraction("Complete Booking",L.s_.BUTTON,L._J.GUEST_DETAILS),B(!0),a=Xe(t),e.prev=3,o=null!=Fe&&Fe.captureChildAge?t.userProfiles.flatMap((function(e,t){var n;return(null==e||null===(n=e.CaptureChildAge)||void 0===n?void 0:n.map((function(e,n){return"Room ".concat(t+1," - Child: ").concat(n+1," Age: ").concat(e)})))||[]})):[],i=t.comments,s=o.length>0?"".concat(i,"\n").concat(o.join("\n")):i,e.next=9,_.Z.Reservation.bookNow(qe,a,n,Ge,s||"",null==Fe?void 0:Fe.hotelID,g.sessionProvider.getCurrentSessionID().toString(),De.pencilId,void 0,void 0,void 0,J?$:void 0);case 9:return r=e.sent,e.next=12,De.booked(r,{userProfiles:a,payment:n,comments:s||""});case 12:return e.next=14,tt(r);case 14:if(!(u=e.sent)){e.next=21;break}return B(!1),l(u),e.abrupt("return",null);case 21:return e.next=23,nt(r,n.Method);case 23:return e.abrupt("return",r);case 24:e.next=29;break;case 26:e.prev=26,e.t0=e.catch(3),pe(e.t0);case 29:return e.prev=29,B(!1),e.finish(29);case 32:return e.abrupt("return",null);case 33:case"end":return e.stop()}}),e,null,[[3,26,29,32]])})));return function(t,n){return e.apply(this,arguments)}}(),at=function(e){var t;return null==e||null===(t=e.reservations)||void 0===t?void 0:t.map((function(e){return e.reservationNumber}))},ot=function(){var e=(0,ee.Z)(ne().mark((function e(t,n){var a,o;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n&&G(n),B(!0),!t){e.next=22;break}if(!(a=at(t)).length){e.next=20;break}return e.prev=6,e.next=9,_.Z.Reservation.commit(a,t.itineraryNumber,null==Fe?void 0:Fe.hotelID,p||void 0);case 9:o=e.sent;try{L.ZP.instance.sendReservationConfirmed(De.getAllValidRows(),De.basketAddonRows,o)}catch(e){oe.Tb("Failed to read reservations from GTM code: "+JSON.stringify(e))}De.checkedOut(o),Le(new ge.C(t,De.currentBasketRows,Fe)),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(6),pe(e.t0);case 18:e.next=22;break;case 20:r.qL.add({message:Ue(d.W.Step.Confirmation.UnexpectedErrorOnCommittingReservation)}),oe.Tb("No reservation IDs found when attempting to commit: "+JSON.stringify(t));case 22:e.next=28;break;case 24:e.prev=24,e.t1=e.catch(0),console.error(e.t1),oe.Tb(e.t1);case 28:B(!1);case 29:case"end":return e.stop()}}),e,null,[[0,24],[6,15]])})));return function(t,n){return e.apply(this,arguments)}}(),it=function(){var e=(0,ee.Z)(ne().mark((function e(){var t;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(De.reservationData){e.next=2;break}return e.abrupt("return");case 2:if(e.prev=2,!(t=at(De.reservationData)).length){e.next=11;break}return B(!0),e.next=8,_.Z.Reservation.rollback(t,De.reservationData.itineraryNumber,null==Fe?void 0:Fe.hotelID);case 8:Le(new _e(De.reservationData)),e.next=12;break;case 11:oe.Tb("No reservation IDs found when attempting to rollback: "+JSON.stringify(De.reservationData));case 12:e.next=18;break;case 14:e.prev=14,e.t0=e.catch(2),console.log("Failed to rollback reservations"),oe.Tb(e.t0);case 18:return e.prev=18,De.rollback(),B(!1),e.finish(18);case 22:case"end":return e.stop()}}),e,null,[[2,14,18,22]])})));return function(){return e.apply(this,arguments)}}(),st=function(e,t){B(!0),t&&G(t),window.location.href=e},ut=function(){var e=(0,ee.Z)(ne().mark((function e(){var t,n,r,a,o;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Ce(!0),B(!0),n=null==Oe?void 0:Oe.reservationRequest,r=null==Oe||null===(t=Oe.reservation)||void 0===t?void 0:t.roomstayId,n&&r){e.next=7;break}return console.error("No reservation request or roomstay ID found in session",{resRequest:n,roomstayId:r}),e.abrupt("return",null);case 7:return e.prev=7,e.next=10,_.Z.Reservation.bookNow(qe,n.userProfiles,n.payment,Ge,"",null==Fe?void 0:Fe.hotelID,g.sessionProvider.getCurrentSessionID().toString(),De.pencilId,void 0,!0,r,J?$:void 0);case 10:return a=e.sent,e.next=13,De.booked(a);case 13:return e.next=15,tt(a);case 15:if(!e.sent){e.next=20;break}B(!1),e.next=22;break;case 20:return e.next=22,nt(a,null===(o=n.payment)||void 0===o?void 0:o.Method);case 22:e.next=27;break;case 24:e.prev=24,e.t0=e.catch(7),pe(e.t0);case 27:return e.prev=27,B(!1),Ce(!1),Y(!1),pe(void 0),e.finish(27);case 33:case"end":return e.stop()}}),e,null,[[7,24,27,33]])})));return function(){return e.apply(this,arguments)}}(),ct=function(){var e=(0,ee.Z)(ne().mark((function e(){var t;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Ce(!0),t=new URLSearchParams(window.location.search),window.history.replaceState({},"","".concat(window.location.pathname,"?").concat(t)),window.location.reload();case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),dt=function(){var e=(0,ee.Z)(ne().mark((function e(){var t,n,r,a,o,l;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,new Promise(function(){var e=(0,ee.Z)(ne().mark((function e(t){var n,r,a;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,et();case 2:n=e.sent,V(!n),r=function(e){t(n?e:null)},a=function(){t(null)},Pe.handleSubmit(r,a)();case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());case 2:if(t=e.sent){e.next=5;break}return e.abrupt("return");case 5:if(!$e){e.next=33;break}if(!Ee){e.next=20;break}return M(!0),e.next=10,null===(n=$e.onConfirm)||void 0===n?void 0:n.call($e);case 10:if(r=e.sent,M(!1),!r.success){e.next=17;break}return e.next=15,ot(De.reservationData,"Please wait... Finalising your reservation");case 15:e.next=18;break;case 17:Y(!0);case 18:e.next=31;break;case 20:if(!$e.requireBookingPlaced){e.next=28;break}return e.t0=rt,e.t1=t,e.next=25,null==$e?void 0:$e.getBookingPaymentRequestObject();case 25:return e.t2=e.sent,e.next=28,(0,e.t0)(e.t1,e.t2);case 28:return xe(!0),e.next=31,null===(a=$e.onSelect)||void 0===a?void 0:a.call($e);case 31:e.next=67;break;case 33:if(o=We.find((function(e){return e.name===t.paymentMethod}))){e.next=37;break}return console.error("No payment mode found for selected payment method",{paymentMethod:t.paymentMethod,availablePaymentHandlers:We}),e.abrupt("return");case 37:return e.prev=37,M(!0),e.next=41,o.onConfirm();case 41:if(l=e.sent,M(!1),!l.success){e.next=59;break}return e.t3=rt,e.t4=t,e.t5=wt,e.t6=wt,e.t7={},e.next=51,null==o?void 0:o.getBookingPaymentRequestObject();case 51:return e.t8=e.sent,e.t9=(0,e.t6)(e.t7,e.t8),e.t10=l.data,e.t11=(0,e.t5)(e.t9,e.t10),e.next=57,(0,e.t3)(e.t4,e.t11);case 57:e.next=59;break;case 59:e.next=64;break;case 61:e.prev=61,e.t12=e.catch(37),console.error(e.t12);case 64:return e.prev=64,M(!1),e.finish(64);case 67:case"end":return e.stop()}}),e,null,[[37,61,64,67]])})));return function(){return e.apply(this,arguments)}}();return i.createElement(se.RV,Pe,i.createElement(Zt,{value:{onContinueClick:dt,bookingSource:E,commitReservation:ot,rollbackReservation:it,redirectOut:st,setLoadingStatus:G,errorChecks:Se,addErrorChecks:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Be((function(e){return(0,ie.unionBy)(t,e,(function(e){return e().name}))}))},isLoading:S,isBackFromPlanpay:He,isBackFromExternalPayment:Qe,isInPaymentMode:Ee,availablePaymentHandlers:We}},S&&i.createElement(ce.E,{isFullscreen:!0,label:q}),i.createElement(Pt,{onRetry:ut,onClose:ct,errorData:de,isLoading:ye}),i.createElement(x.Z,{open:z},i.createElement("div",{className:"u-pad-bottom"},i.createElement(F.ZP,{icon:ae.Tu.Error,type:F.NK.Danger},i.createElement(w.ZP,{type:w.yG.Small},Ue(d.W.Step.Confirmation.CustomInputFieldError))))),t,i.createElement(me,{differences:o.differences,warnings:o.warnings,isLoading:S,onClose:(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,null==it?void 0:it();case 2:Ye((0,_t.Z)().getStepUrl());case 3:case"end":return e.stop()}}),e)}))),onProceed:(0,ee.Z)(ne().mark((function e(){var t,n,a;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=null==Oe?void 0:Oe.reservationRequest,n=De.reservationData,e.prev=2,!t||!n){e.next=9;break}return e.next=6,nt(n,null==t||null===(a=t.payment)||void 0===a?void 0:a.Method);case 6:l({differences:[],warnings:[]}),e.next=11;break;case 9:r.qL.add({message:Ue(d.W.Step.Confirmation.UnexpectedErrorOnCommittingReservation)}),oe.Tb("No reservation request or response found when attempting to commit: "+JSON.stringify({resRequest:t,resResponse:n}));case 11:e.next=17;break;case 13:e.prev=13,e.t0=e.catch(2),console.error("Failed to commit reservation",e.t0),oe.Tb(e.t0);case 17:case"end":return e.stop()}}),e,null,[[2,13]])})))}),i.createElement("div",{className:"u-flex u-marg-top--heavy justify-content-end"},$e&&Ee&&i.createElement("div",{className:"u-marg-right d-flex"},i.createElement(N.Z,{icon:ae.Tu.ArrowLeft,isText:!0,onClick:function(){xe(!1)}},Ue(d.W.Step.Confirmation.EditDetails))),j&&i.createElement("div",{className:"u-marg-right d-flex"},i.createElement(N.Z,{icon:ae.Tu.Edit,stopIconAnimation:!0,primary:!0,filled:!0,onClick:ut,isLoading:S},Ue(d.W.Step.Confirmation.RetryPayment))),(!(null!=$e&&$e.hasCustomConfirmButton)||!Ee)&&i.createElement(ue.Z,{disabled:ze===re.EBookingPaymentMethod.Planpay||S||W,text:Ue($e&&!Ee?d.W.Step.Confirmation.ContinueToPayment:d.W.Step.Confirmation.ConfirmReservation),isLoading:S,onClick:dt}))))},Bt=n(25112);function It(){var e=(0,s.$)().t;return i.createElement(Bt.Z,{title:e(d.W.Step.Confirmation.SSLSecure)},i.createElement("img",{src:Se.Z.getAssetUrl()+"assets/img/ssl-secure-connection.png"}))}var Rt=n(53653),Nt=n(45987),Wt=n(89089),Mt=n(57970),Tt=n.n(Mt),Dt=function(e,t){var n,r=e.checked,a=e.onChange,o=e.disabled,l=e.label,s=e.renderContent,u=e.className,c=e.headerRef,d=e.style;return i.createElement("div",{className:S()(Tt().root,u,(n={},(0,X.Z)(n,Tt().disabled,o),(0,X.Z)(n,Tt().checked,r),n)),onClick:a,ref:t,style:d},i.createElement("div",{className:Tt().header,ref:c},i.createElement("div",{className:Tt().design}),i.createElement("div",{className:Tt().text},l)),s&&r&&i.createElement(x.Z,{open:!0},i.createElement("div",{className:Tt().content},s())))},qt=(0,i.forwardRef)(Dt),Gt=n(9502),Ot=n.n(Gt),Ft=["renderContent"],Ut=function(e){var t=e.option,n=e.value,r=e.onChange,a=e.renderChildrenContent,o=e.isSubOption,l=t.options,s=!(null==l||!l.length),u=(0,i.useState)(null),c=(0,y.Z)(u,2),d=c[0],m=c[1],p=(0,i.useState)(!1),f=(0,y.Z)(p,2),v=f[0],g=f[1],A=s&&n&&l.find((function(e){return e.value===n}))||t,C=i.createElement(qt,{headerRef:m,className:Ot().item,key:null==A?void 0:A.value,checked:!(null!=A&&A.disabled)&&(null==A?void 0:A.value)===n,onChange:function(){null!=A&&A.disabled||(s?g(!v):null!=A&&A.value&&(null==A?void 0:A.value)!==n&&(null==r||r(A.value,t.value)))},label:null==A?void 0:A.label,disabled:null==A?void 0:A.disabled,renderContent:null==A?void 0:A.renderContent}),h=!s&&(null==A?void 0:A.value)===n,b=s&&v,E=null!=A&&A.renderContent||s?h||b?{transform:"scaleY(-1) translateY(2px)"}:void 0:{transform:"translateX(1px) translateY(-2px) rotate(270deg)"};return null!=A&&A.disabled&&null!=A&&A.disabledReason?i.createElement(Bt.Z,{key:null==A?void 0:A.value,wrapperClasses:Ot().wrapper,title:null==A?void 0:A.disabledReason},C):i.createElement(i.Fragment,null,i.createElement("div",{key:null==A?void 0:A.value,className:Ot().wrapper},C,!o&&i.createElement("div",{className:Ot().childrenIndicator,style:E},i.createElement(P.ZP,{size:"24px",icon:P.Tu.Dropdown}))),l&&i.createElement(Wt.a,{onClose:function(){return g(!1)},className:Ot().overlay,hideStyles:!0,containerClassName:"u-w-100",open:v,followElement:d||void 0,offset:[0,0],placement:"bottom-start"},i.createElement(Lt,{options:l.map((function(e){e.renderContent;var t=(0,Nt.Z)(e,Ft);return a?e:t})),onChange:function(e){null==r||r(t.value,e),g(!1)},value:n,isSubGroup:!0})))},Lt=function(e){var t=e.options,n=void 0===t?[]:t,r=e.value,a=e.onChange,o=e.renderChildrenContent,l=e.isSubGroup;return i.createElement("div",{className:Ot().root},n.map((function(e){return i.createElement(Ut,{key:e.value,option:e,value:r,onChange:a,renderChildrenContent:o,isSubOption:l})})))},jt=Lt;function Yt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ht=function(){var e,t=(0,se.Gc)(),n=(0,i.useContext)(pe).availablePaymentHandlers,r=[],a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Yt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Yt(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,l=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return l=e.done,e},e:function(e){i=!0,o=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw o}}}}(n);try{for(a.s();!(e=a.n()).done;){var o=e.value;o.isExclusive||o.isAvailable&&r.push({value:o.name,label:o.renderInput?o.renderInput():i.createElement(i.Fragment,null,"Payment Handler"),disabled:o.isDisabled||o.requireFormFilled&&!t.formState.isValid,disabledReason:o.disabledReason,options:o.subOptions,renderContent:o.renderPaymentInput})}}catch(e){a.e(e)}finally{a.f()}return i.createElement(se.Qr,{control:t.control,name:"paymentMethod",render:function(e){var t=e.field,a=t.onChange,o=t.value;return i.createElement(i.Fragment,null,i.createElement("div",null,i.createElement(jt,{options:r,value:o,onChange:function(e,t){var r,o=n.find((function(t){return t.name===e}));null==o||null===(r=o.onSubOptionChange)||void 0===r||r.call(o,t),a(e)}})))}})},Qt=n(50361),zt=n.n(Qt),Vt=n(69024),Kt=n(66604),Jt=n(14590),$t=n(65762),Xt=n(95494),en=function(e){return e.Title="Title",e.Forename="Forename",e.Surname="Surname",e.Email="Email",e.Phone="Phone",e.Address="Address",e.City="City",e.PostCode="PostCode",e.State="State",e.Country="Country",e.CountryId="CountryId",e.CountryCode="CountryCode",e}({}),tn=function(e){return e.AuxInputs="AuxInputs",e}({}),nn=n(61248),rn=n(48340),an=n(43261),on=n(16431),ln=["ref","onChange"],sn=["ref"],un=["ref"],cn=["ref"],dn=function(e){var t,n,r,a,o=e.hotel,l=e.numberOfChildrens,s=e.control,u=e.roomIndex;if(null==o||!o.captureChildAge||0===l)return i.createElement(i.Fragment,null);for(var c=(0,se.Gc)().formState.errors,d=[],m=(null==o||null===(t=o.childConfiguration)||void 0===t||null===(n=t.childRange)||void 0===n?void 0:n.min)||0,p=(null==o||null===(r=o.childConfiguration)||void 0===r||null===(a=r.childRange)||void 0===a?void 0:a.max)||0,f=m;f<=p;f++)d.push({label:"".concat(f),value:"".concat(f)});var v="userProfiles[".concat(u,"].").concat((0,re.nameof)("CaptureChildAge")),g=Array.from({length:l},(function(e,t){return t})).map((function(e){return{name:"".concat(v,"[").concat(e,"]"),id:"".concat(v,"[").concat(e,"].id"),label:"Child ".concat(e+1," Age"),childIndex:e}})),y=function(e){var t,n,r;if(c.userProfiles)return null!==(t=c.userProfiles)&&void 0!==t&&null!==(n=t[u])&&void 0!==n&&null!==(r=n.CaptureChildAge)&&void 0!==r&&r[e]?"error":"success"},C=function(e,t){for(var n=[],r=0;r<e.length;r+=3)n.push(e.slice(r,r+3));return n}(g);return i.createElement("div",{className:"u-marg-top"},C.map((function(e,t){return i.createElement(At.Z,{dimensions:"1/1/1",key:"InputGroup-".concat(t)},e.map((function(e){var t=e.id,n=e.name,r=e.label,a=e.childIndex;return i.createElement(se.Qr,{key:t,control:s,name:n,rules:{required:!0},render:function(e){var t=e.field,n=(t.ref,(0,Nt.Z)(t,cn));return i.createElement(i.Fragment,null,i.createElement("div",{className:"u-marg-bottom--light"},i.createElement(w.ZP,{type:w.yG.Small},i.createElement("strong",null,r))),i.createElement(Jt.JD,(0,A.Z)({keyName:"value",labelName:"label",options:d,placeholder:"Please Select *"},n,{validationStatus:y(a)})))}})})))})))},mn=function(){var e=(0,se.Gc)(),t=e.register,n=e.formState,a=e.control,o=e.watch,l=e.getValues,u=e.setValue,c=(0,i.useContext)(r.hy),m=c.getAllValidRows(),f=c.basketAddonRows,v=(0,C.WP)().hotel,g=(0,se.Dq)({control:a,name:"userProfiles",rules:{required:!1}}),h=g.update,b=g.fields,E=o(["copyCheckBox","paymentMethod"]),_=(0,y.Z)(E,2),k=_[0],Z=_[1],S=n.errors,B=(0,s.$)().t,R=(0,i.useContext)(r.P0).roomstayMember,N=(0,Xt.X)().showChildren;(0,i.useEffect)((function(){var e,t;null===(e=S.userProfiles)||void 0===e||null===(t=e.forEach)||void 0===t||t.call(e,(function(e,t){var n;null!==(n=S.userProfiles)&&void 0!==n&&n[t]&&(T[t]=!0)})),D(T.slice(0))}),[S.userProfiles,k]),(0,i.useEffect)((function(){var e=function(e){return 0===e&&arguments.length>1&&void 0!==arguments[1]?arguments[1]:""},t=m.map((function(t,n){var r,a,o,l,i,s,u,c,d,m,p,f,v,g,A,y,C=t.checkoutDefaults,h=null==C?void 0:C.address;return y={},(0,X.Z)(y,en.Title,""),(0,X.Z)(y,en.Forename,e(n,null!==(r=null==C?void 0:C.firstName)&&void 0!==r?r:null==R?void 0:R.forename)),(0,X.Z)(y,en.Surname,e(n,null!==(a=null==C?void 0:C.lastName)&&void 0!==a?a:null==R?void 0:R.surname)),(0,X.Z)(y,en.Email,e(n,null!==(o=null==C?void 0:C.email)&&void 0!==o?o:null==R?void 0:R.email)),(0,X.Z)(y,en.Phone,e(n,null!==(l=null==C?void 0:C.phone)&&void 0!==l?l:null==R?void 0:R.phoneNumber)),(0,X.Z)(y,en.Address,e(n,null!==(i=null==h?void 0:h.line1)&&void 0!==i?i:null==R||null===(s=R.address)||void 0===s?void 0:s.address)),(0,X.Z)(y,en.City,e(n,null!==(u=null==h?void 0:h.city)&&void 0!==u?u:null==R||null===(c=R.address)||void 0===c?void 0:c.city)),(0,X.Z)(y,en.PostCode,e(n,null!==(d=null==h?void 0:h.postalCode)&&void 0!==d?d:null==R||null===(m=R.address)||void 0===m?void 0:m.zip)),(0,X.Z)(y,en.State,e(n,null!==(p=null==h?void 0:h.state)&&void 0!==p?p:null==R||null===(f=R.address)||void 0===f?void 0:f.state)),(0,X.Z)(y,en.Country,e(n,null!==(v=null==h?void 0:h.country)&&void 0!==v?v:null==R||null===(g=R.address)||void 0===g?void 0:g.country)),(0,X.Z)(y,en.CountryId,e(n,null==h||null===(A=h.countryId)||void 0===A?void 0:A.toString())),(0,X.Z)(y,en.CountryCode,e(n,null==h?void 0:h.countryCode)),(0,X.Z)(y,tn.AuxInputs,t.auxiliaryFilter),y}));u("userProfiles",t),u("copyCheckBox",!!(null!=m&&m.length&&m.length>1))}),[R,null==m?void 0:m.length]);var W=(0,i.useState)(m.map((function(e,t){return 0===t}))),M=(0,y.Z)(W,2),T=M[0],D=M[1],q=function(e){var t=zt()(l("userProfiles.0")),n=zt()(l("userProfiles.".concat(e)));return t[tn.AuxInputs]=n.AuxInputs,t},G=function(e,t){return function(e){L.ZP.instance.sendInteraction(t,L.s_.FORM_FIELD,L._J.GUEST_DETAILS)}};return(0,i.useEffect)((function(){k&&b.forEach((function(e,t){if(0!==t){var n=q(t);h(t,n)}}))}),[k]),(0,i.useEffect)((function(){var e=o((function(e,t){var n=t.name;"change"===t.type&&null!=n&&n.includes("userProfiles")&&"0"===n.split(".")[1]&&e.copyCheckBox&&b.map((function(e,t){if(0!==t){var n=q(t);h(t,n)}}))})).unsubscribe;return function(){e()}}),[b]),(0,i.useEffect)((function(){L.ZP.instance.sendCheckoutView(m,f)}),[]),i.createElement(i.Fragment,null,b.map((function(e,r){for(var o,l,s=function(e){return function(e,t){return"userProfiles.".concat(t,".").concat(e)}(e,r)},c=function(e){var t,n,a;if(S.userProfiles&&!(k&&r>=1))return null!==(t=S.userProfiles[r])&&void 0!==t&&t[e]||null!==(n=S.userProfiles[r])&&void 0!==n&&null!==(a=n.AuxInputs)&&void 0!==a&&a[e.replace("AuxInputs.","")]?"error":"success"},f=m[r],g=f.getRoom(),y=f.getAuxiliaryFilter(),C=k&&r>=1||Z===re.EBookingPaymentMethod.Planpay,h=(null==v?void 0:v.stateFieldConfiguration)===re.EHotelStateFieldConfiguration.Optional||(null==v?void 0:v.stateFieldConfiguration)===re.EHotelStateFieldConfiguration.Required,E=(null==v?void 0:v.stateFieldConfiguration)===re.EHotelStateFieldConfiguration.Required,_=null==v||null===(o=v.roomGroups)||void 0===o?void 0:o.find((function(e){return e.id===g.roomGroupId})),R=[],W=function(){var e,t,n=q[M],r=null==_?void 0:_.filters[n],a=null==g||null===(e=g.auxiliaryValues)||void 0===e||null===(t=e[n])||void 0===t?void 0:t.map((function(e){return e.toString()}));if(null!=r&&r.requireInput&&a){var o=r.options.filter((function(e){if(a.includes(e.value.toString()))return e})),l="".concat((0,re.nameof)("AuxInputs"),".").concat(n);1===o.length?u(s(l),o[0].value):null!=y&&y[n]&&u(s(l),y[n]),R.push({id:l,name:r.name,label:r.name,options:o.map((function(e){return{label:e.label,value:e.value}}))})}},M=0,q=Object.keys(null!==(O=null==_?void 0:_.filters)&&void 0!==O?O:{});M<q.length;M++){var O;W()}var U,L,j,Y=i.createElement(se.Qr,{control:a,name:s(en.Country),rules:{required:{value:!0,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.Country)})}},render:function(e){var t=e.field,n=(t.ref,t.onChange),r=(0,Nt.Z)(t,ln);return i.createElement($t.Z,(0,A.Z)({disabled:C,validationStatus:c(en.Country),onChange:function(e){n(e),G(s(en.Country),"Country - Address")(e)},onChangeId:function(e){u(s(en.CountryId),e)},onChangeCode:function(e){u(s(en.CountryCode),e)}},r))}});return i.createElement("div",{key:e.id},i.createElement("div",{className:0===r?"":"u-marg-bottom--heavy"},i.createElement("div",{className:"u-marg-bottom",onClick:function(){0!==r&&function(e,t){T.splice(e,1,t),D(T.slice(0))}(r,!T[r])}},i.createElement("div",{className:"u-flex u-marg-bottom align-items-center"},i.createElement(p.Z,{bold:!0},B(d.W.Misc.Room)," ",r+1),0!==r&&i.createElement(P.ZP,{icon:T[r]?P.Tu.ArrowDown2:P.Tu.ArrowUp2,color:I.Il.Grey})),f&&i.createElement("div",{className:"u-marg-bottom"},i.createElement(w.ZP,null,i.createElement("strong",{className:"u-block@l-"},f.getRoom().name)," for"," ",an.Z.pluralWithDictAndCount(f.getAdults(),d.W.Step.Date.Adult,B),N?i.createElement(i.Fragment,null,", ",an.Z.pluralWithDictAndCount(f.getChildren(),d.W.Step.Date.Child,B)):null,null!=v&&null!==(l=v.childConfiguration)&&void 0!==l&&l.supportInfants?i.createElement(i.Fragment,null,", ",an.Z.pluralWithDictAndCount(f.getInfants(),d.W.Step.Date.Infant,B)):null),i.createElement("div",{className:"step-one-status--dates u-flex justify-content-start"},i.createElement(w.ZP,{type:w.yG.Small,color:I.Il.Accent},i.createElement("strong",null,f.getStartDate().format("ddd, MMM D"))),i.createElement(P.ZP,{icon:P.Tu.ArrowRight2,size:"18px"}),i.createElement(w.ZP,{type:w.yG.Small,color:I.Il.Accent},i.createElement("strong",null,f.getEndDate().format("ddd, MMM D"))))),(U=r,(j=null===(L=S.userProfiles)||void 0===L?void 0:L[U])&&n.submitCount>=1&&(0===U||!k)?Object.values(j).map((function(e,t){return i.createElement(x.Z,{key:t,open:!0},i.createElement("div",{className:"u-flex"},i.createElement(F.ZP,{icon:P.Tu.Error,type:F.NK.Danger,noMargin:t===Object.keys(j).length-1},i.createElement(w.ZP,{type:w.yG.Small},null==e?void 0:e.message))))})):null)),i.createElement("div",{className:"room-contact-details--row",style:{maxHeight:T[r]?void 0:0}},i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement("div",{className:"u-marg-bottom--light"},i.createElement(w.ZP,{type:w.yG.Small},i.createElement("strong",null,B(d.W.Step.Confirmation.ContactInfo)))),i.createElement(At.Z,{dimensions:rn.Z.isActive()?"1/2/2":"2/2"},rn.Z.isActive()&&i.createElement(se.Qr,{control:a,name:s(en.Title),rules:{required:!0},render:function(e){var t=e.field,n=(t.ref,(0,Nt.Z)(t,sn));return i.createElement(Jt.JD,(0,A.Z)({keyName:"value",labelName:"label",options:rn.Z.getTitleOptions(),placeholder:B(d.W.Step.Confirmation.Inputs.Title)+" *",required:!0,validationStatus:c(en.Title)},n))}}),i.createElement(ct.Z,(0,A.Z)({inputProps:{disabled:C},placeholder:B(d.W.Step.Confirmation.Inputs.Forename)+" *",wide:!0,required:!0,validationStatus:c(en.Forename)},t(s(en.Forename),{onChange:G(s(en.Forename),"Forename - Contact Info"),required:{value:!0,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.Forename)})}}))),i.createElement(ct.Z,(0,A.Z)({inputProps:{disabled:C},placeholder:B(d.W.Step.Confirmation.Inputs.Surname)+" *",wide:!0,required:!0,validationStatus:c(en.Surname)},t(s(en.Surname),{onChange:G(s(en.Surname),"Surname - Contact Info"),required:{value:!0,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.Surname)})}})))),i.createElement(At.Z,{dimensions:"2/2"},i.createElement(ct.Z,(0,A.Z)({inputProps:{disabled:C},placeholder:B(d.W.Step.Confirmation.Inputs.Email)+" *",wide:!0,validationStatus:c(en.Email),required:!0},t(s(en.Email),{onChange:G(s(en.Email),"Email - Contact Info"),required:{value:!0,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.Email)})},pattern:{value:on.CU,message:B(d.W.Step.Confirmation.Inputs.InvalidEmail)}}))),nn.Z.isActive()?i.createElement(se.Qr,{control:a,name:s(en.Phone),rules:{required:{value:!0,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.Phone)})},minLength:{value:5,message:"Phone number is required"},maxLength:{value:17,message:"Phone number is too long"},pattern:{value:/^[1-9]( |\d){1,15}$/g,message:"Incorrect phone number entered"}},render:function(e){var t=e.field;return i.createElement(Kt.Z,(0,A.Z)({disabled:C,validationStatus:c(en.Phone)},t,{onChange:function(e){t.onChange(e),G(s(en.Phone),"Phone - Contact Info")(e)}}))}}):i.createElement(ct.Z,(0,A.Z)({inputProps:{disabled:C},placeholder:B(d.W.Step.Confirmation.Inputs.Phone)+" *",wide:!0,required:!0,validationStatus:c(en.Phone)},t(s(en.Phone),{onChange:G(s(en.Phone),"Phone - Contact Info"),required:{value:!0,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.Phone)})}}))))),i.createElement("div",{className:""},i.createElement("div",{className:"u-marg-bottom--light"},i.createElement(w.ZP,{type:w.yG.Small},i.createElement("strong",null,B(d.W.Step.Confirmation.Address)))),i.createElement(At.Z,{dimensions:"3/1"},i.createElement(ct.Z,(0,A.Z)({inputProps:{disabled:C},placeholder:B(d.W.Step.Confirmation.Inputs.Address)+" *",wide:!0,required:!0,validationStatus:c(en.Address)},t(s(en.Address),{onChange:G(s(en.Address),"Address - Address"),required:{value:!0,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.Address)})}}))),i.createElement(ct.Z,(0,A.Z)({inputProps:{disabled:C},placeholder:B(d.W.Step.Confirmation.Inputs.City)+" *",wide:!0,required:!0,validationStatus:c(en.City)},t(s(en.City),{onChange:G(s(en.City),"City - Address"),required:{value:!0,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.City)})}})))),i.createElement(At.Z,{dimensions:"2/2"},i.createElement(ct.Z,(0,A.Z)({inputProps:{disabled:C},placeholder:B(d.W.Step.Confirmation.Inputs.PostCode)+" *",wide:!0,required:!0,validationStatus:c(en.PostCode)},t(s(en.PostCode),{onChange:G(s(en.PostCode),"PostCode - Address"),required:{value:!0,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.PostCode)})}}))),h?i.createElement(ct.Z,(0,A.Z)({inputProps:{disabled:C},placeholder:B(d.W.Step.Confirmation.Inputs.State)+(E?" *":""),wide:!0,required:E,validationStatus:c(en.State)},t(s(en.State),{onChange:G(s(en.State),"State - Address"),required:{value:E,message:B(d.W.Step.Confirmation.Inputs.Required,{field:B(d.W.Step.Confirmation.Inputs.State)})}}))):Y),h&&i.createElement(At.Z,{dimensions:"1"},Y))),R.length>0&&i.createElement("div",{className:"u-marg-top"},i.createElement("div",{className:"u-marg-top"},i.createElement(At.Z,{dimensions:"2/2"},R.map((function(e){var t=e.options;return i.createElement(se.Qr,{key:e.id,control:a,name:s(e.id),rules:{required:!0},render:function(n){var r=n.field,a=(r.ref,(0,Nt.Z)(r,un));return i.createElement(i.Fragment,null,i.createElement("div",{className:"u-marg-bottom--light"},i.createElement(w.ZP,{type:w.yG.Small},i.createElement("strong",null,e.name))),i.createElement(Jt.JD,(0,A.Z)({key:e.id,keyName:(0,re.nameof)("value"),labelName:(0,re.nameof)("label"),options:t,placeholder:"Please Select *",validationStatus:c(e.id)},a)))}})}))))),i.createElement(dn,{hotel:v,numberOfChildrens:Number(f.getChildren()),control:a,roomIndex:r})),b.length>1&&0===r?i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement(Vt.Z,(0,A.Z)({label:B(d.W.Step.Confirmation.ApplySameInfoToOtherRooms)},t("copyCheckBox")))):null)})))};function pn(){var e=(0,s.$)().t,t=(0,C.WP)().hotel,n=(0,se.Gc)(),r=n.register,a=n.formState;return i.createElement("div",{className:"rs-step-confirmation-acks"},i.createElement("div",{className:"u-marg-bottom rs-step-confirmation-acks-headline"},i.createElement(p.Z,{bold:!0},e(d.W.Step.Confirmation.Acknowledgement))),i.createElement("div",{className:"rs-confirmation-acks-checklist"},i.createElement("div",null,i.createElement(Vt.Z,(0,A.Z)({label:e(d.W.Step.Confirmation.EmailSpecialOffers)},r("marketingOptIn",{})))),i.createElement("div",{className:"u-marg-top--light"},i.createElement(Vt.Z,(0,A.Z)({},r("privacyPolicy",{required:!0}),{label:i.createElement("div",null,e(d.W.Step.Confirmation.IHaveUnderstoodPrivacyPolicy)," ",i.createElement("a",{style:{color:I.Il.Accent},className:"--underlined",href:null==t?void 0:t.privacyPolicyUrl,target:"_blank",rel:"noreferrer"},e(d.W.Step.Confirmation.PrivacyPolicy)))})))),i.createElement(x.Z,{open:!!a.errors.privacyPolicy},i.createElement("div",{className:"u-flex u-marg-top rs-confirmation-acks-alert"},i.createElement(F.ZP,{type:F.NK.Danger,icon:P.Tu.Error},i.createElement(w.ZP,{type:w.yG.Small},e(d.W.Step.Confirmation.PrivacyPolicyError))))))}var fn=n(92710),vn=i.forwardRef((function(e,t){var n=e.confirmationError,r=e.withCheckbox,a=(0,s.$)().t;return i.createElement("div",{className:"u-marg-bottom step-confirmation-important-information"},i.createElement("div",{className:"u-marg-bottom step-confirmation-important-information-headline"},i.createElement(p.Z,{bold:!0},a(d.W.Step.Confirmation.ImportantInformation))),i.createElement(w.ZP,{type:w.yG.Small,color:I.Il.Graphite,bold:!0,className:"u-marg-bottom step-confirmation-important-information-notes"},a(d.W.Step.Confirmation.ImportantInformationNotes)),r&&i.createElement("div",{className:"step-confirmation-important-information-checkbox"},i.createElement(Vt.Z,{ref:t,label:i.createElement("div",null,a(d.W.Step.Confirmation.ImportantInformationIHaveUnderstood)," ")})),i.createElement(x.Z,{open:n},i.createElement("div",{className:"u-flex u-marg-top"},i.createElement(F.ZP,{type:F.NK.Danger,icon:P.Tu.Error},i.createElement(w.ZP,{type:w.yG.Small},a(d.W.Step.Confirmation.ImportantInformationError))))))})),gn=n(56439);function An(){var e=(0,s.$)().t,t=(0,C.WP)().hotel;return i.createElement(i.Fragment,null,i.createElement("div",{className:"u-marg-bottom"},i.createElement(p.Z,{bold:!0},e(d.W.Step.Confirmation.Policies))),i.createElement("div",{className:"u-marg-bottom step-confirmation-policies-section"},i.createElement(gn.G,{hotel:t,wrapperClassName:"row",colClassName:"col-6 col-md-3",CheckInRender:function(){return i.createElement(w.ZP,{type:w.yG.Small},i.createElement("strong",null,e(d.W.Misc.CheckIn)))},CheckOutRender:function(){return i.createElement(w.ZP,{type:w.yG.Small},i.createElement("strong",null,e(d.W.Misc.CheckOut)))},LineRender:function(e){var t=e.line;return i.createElement(w.ZP,{type:w.yG.Small},t)}})))}function yn(){var e=(0,i.useContext)(r.hy),t=(0,s.$)().t,n=t(d.W.Misc.Room);return(0,i.useMemo)((function(){var r={},a=e.getAllValidRows(),o=0;return a.length>1?a.forEach((function(e){o++;var t=e.getRate(),n=r["".concat(null==t?void 0:t.cancelPolicyCode,"-").concat(null==t?void 0:t.guaranteeCode)];n||(n=r["".concat(null==t?void 0:t.cancelPolicyCode,"-").concat(null==t?void 0:t.guaranteeCode)]={rooms:[]}),n.rooms.push({index:o,room:e})})):r[0]={rooms:[{index:1,room:a[0]}]},i.createElement("div",{className:"u-marg-bottom step-confirmation-policy-block"},Object.values(r).map((function(e,r){var a,o,l,s=e.rooms[0];return i.createElement("div",{className:"u-marg-bottom--heavy",key:r},i.createElement("div",{className:"u-marg-bottom"},e.rooms.map((function(e){var t;return i.createElement(w.ZP,{key:e.index,type:w.yG.Small},i.createElement("strong",null,n," ",e.index)," ",e.room.getRoom().name," - ",null===(t=e.room.getRate())||void 0===t?void 0:t.name)}))),i.createElement("div",{className:"u-marg-bottom"},null!==(a=s.room.getRate())&&void 0!==a&&a.getGuaranteePolicy()?i.createElement(i.Fragment,null,i.createElement(w.ZP,{type:w.yG.Small,bold:!0,className:"u-marg-bottom--light"},t(d.W.Misc.GuaranteePolicy)),i.createElement(w.ZP,{type:w.yG.Small},i.createElement(M.R,{content:(null===(o=s.room.getRate())||void 0===o?void 0:o.getGuaranteePolicy())||""}))):null),i.createElement(w.ZP,{type:w.yG.Small,bold:!0,className:"u-marg-bottom--light"},t(d.W.Misc.CancellationPolicy)),i.createElement(w.ZP,{type:w.yG.Small},i.createElement(M.R,{content:(null===(l=s.room.getRate())||void 0===l?void 0:l.getCancellationPolicy())||""})))})))}),[e.currentBasketRows])}var Cn=n(19089),hn=n(96222),bn=n(28016),En=function(){var e=(0,i.useContext)(pe);return{exclusivePayment:(0,i.useMemo)((function(){return e.availablePaymentHandlers.find((function(e){return e.isAvailable&&e.isExclusive}))}),[e.availablePaymentHandlers])}};function xn(){var e,t,n=(0,i.useState)(!1),r=(0,y.Z)(n,2),a=r[0],o=(r[1],(0,i.useRef)(null)),l=(0,s.$)().t,u=(0,se.Gc)(),c=fe(),m=c.isInPaymentMode,f=c.isBackFromPlanpay,g=c.bookingSource,C=(0,bt.J)(),h=En().exclusivePayment,b=function(){var e=(0,ee.Z)(ne().mark((function e(){return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:C((0,_t.Z)().getStepUrl());case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),E=i.createElement(i.Fragment,null,i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement("div",{className:"u-marg-bottom--light"},i.createElement(p.Z,{bold:!0},l(d.W.Step.Confirmation.GuestDetails))),i.createElement(w.ZP,{type:w.yG.Small,color:I.Il.Success},i.createElement("strong",null,l(d.W.Step.Confirmation.AlmostDone,{required:"*"})))),i.createElement(mn,null),"inline"===g?i.createElement(F.ZP,{type:F.NK.Accent2,heavyPadding:!0},i.createElement("div",{className:"u-flex u-w-100 flex-wrap flex-xl-nowrap"},i.createElement("div",null,i.createElement(w.ZP,{color:I.Il.Accent,bold:!0},l(d.W.Step.Confirmation.WantMoreRooms)),i.createElement(w.ZP,{color:I.Il.Navy},l(d.W.Step.Confirmation.YouCanAddAndEditRooms))),i.createElement("div",{className:"d-flex align-items-center u-marg-top@xl-"},i.createElement(N.Z,{filled:!0,primary:!0,icon:P.Tu.Add,iconPosition:"left",onClick:b},l(d.W.Step.Confirmation.AddMoreRooms))))):i.createElement(i.Fragment,null),bn.Z.isActive()&&i.createElement(i.Fragment,null,i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement("div",{className:"u-marg-bottom"},i.createElement(p.Z,{bold:!0},l(d.W.Step.Confirmation.TravelAgent))),i.createElement("div",{className:"u-marg-bottom--light"},i.createElement(w.ZP,{type:w.yG.Small},i.createElement("strong",null,l(d.W.Step.Confirmation.Inputs.IATANumber)))),i.createElement("div",{className:"u-marg-bottom--light"},i.createElement(w.ZP,{type:w.yG.Small},l(d.W.Step.Confirmation.Inputs.IATANumberGuide))),i.createElement(ct.Z,(0,A.Z)({placeholder:l(d.W.Step.Confirmation.Inputs.IATANumber),wide:!0},u.register("IATANumber")))),i.createElement(v.Z,null)),i.createElement(fn.h,null),i.createElement(v.Z,null),!h&&i.createElement(i.Fragment,null,i.createElement("div",{className:"u-marg-bottom--heavy"},i.createElement("div",{className:"u-marg-bottom"},i.createElement(p.Z,{bold:!0},l(d.W.Navigation.Menu.PaymentInformation))),i.createElement(Ht,null),i.createElement("div",{className:"u-marg-top u-flex align-items-center"},i.createElement("div",{className:"u-flex align-items-center justify-content-start"},i.createElement(P.ZP,{icon:P.Tu.Lock,color:I.Il.Success}),i.createElement("div",{className:"u-marg-left--light"},i.createElement(w.ZP,{type:w.yG.Small,color:I.Il.Success},i.createElement("strong",null,l(d.W.Step.Confirmation.Secured))))),i.createElement(It,null))),Cn.Z.isActive()&&i.createElement(i.Fragment,null,i.createElement(v.Z,null),i.createElement(vn,{ref:o,confirmationError:a,withCheckbox:!(null===(e=Cn.Z.getOptions())||void 0===e||!e.withCheckbox)})),i.createElement(v.Z,null)),i.createElement(An,null),i.createElement("div",{className:"u-pad-top--light u-marg-bottom"},i.createElement(yn,null)),hn.Z.isActive()&&i.createElement(i.Fragment,null,i.createElement(v.Z,null),i.createElement("div",null,i.createElement(pn,null))));return i.createElement("form",null,f?i.createElement(k.Z,null):i.createElement(i.Fragment,null,i.createElement(x.Z,{open:!h||!m},E),h&&i.createElement(x.Z,{open:m},i.createElement(Rt.Z,null),null===(t=h.renderPaymentInput)||void 0===t?void 0:t.call(h))))}function _n(){return i.createElement(St,null,i.createElement(xn,null))}var Pn=function(){var e=(0,i.useContext)(r.g7),t=(0,i.useContext)(r.aN).currentStep,n=(0,i.useContext)(r.hy).currentBasketRows,o=(0,u.TH)(),A=(0,s.$)().t,y=(0,V.z)().raise;return(0,i.useEffect)((function(){var e=new a.z(n);y(e)}),[]),i.createElement("div",{className:"container rs-step-confirmation"},i.createElement(g.V,{step:"Confirmation"}),i.createElement(r.s$,null,i.createElement(Q.default,null),i.createElement(f.i5,null,i.createElement(f.mV,null,e.screenSize>J.Z.Medium&&i.createElement(i.Fragment,null,i.createElement(c.rU,{to:{pathname:$.Z.getPreviousStepUrl(t),search:o.search}},i.createElement(m.Z,null)),i.createElement("div",{className:"u-marg-top--light u-marg-bottom--heavy"},i.createElement(p.Z,{bold:!0},A(d.W.Navigation.Steps.Confirmation)))),i.createElement("div",{className:"u-marg-top@m-"},i.createElement(Y.Z,null))),e.screenSize>J.Z.Medium&&i.createElement(f.f,null,i.createElement(H.Z,null))),i.createElement(v.Z,null),i.createElement(f.i5,null,i.createElement(f.mV,null,i.createElement("div",{className:"block-container"},!K.Z.isActive()&&i.createElement(O,null),i.createElement(_n,null))),e.screenSize>J.Z.Medium&&i.createElement(f.f,null,i.createElement(j,{endDate:l()().add(10,"minute")}),i.createElement(z.v,{showImages:!0})))))}},56374:function(e,t,n){(t=n(23645)(!1)).push([e.id,".adyen-checkout__status--error{padding:0}.adyen-checkout__status{border:none}",""]),e.exports=t},31693:function(e,t,n){(t=n(23645)(!0)).push([e.id,".AfterpayButton-module__root___eeNZH{width:100%}.AfterpayButton-module__root___eeNZH img{display:block}","",{version:3,sources:["AfterpayButton.module.scss"],names:[],mappings:"AAAA,qCAAM,UAAU,CAAC,yCAAU,aAAa",file:"AfterpayButton.module.scss",sourcesContent:[".root{width:100%}.root img{display:block}"]}]),t.locals={root:"AfterpayButton-module__root___eeNZH"},e.exports=t},12899:function(e,t,n){(t=n(23645)(!0)).push([e.id,".InlinePaymentCard-module__root___3JISW{width:24px;height:16px;background-size:contain;background-repeat:no-repeat;border-radius:2.5px;border:.5px solid #dfe1e5}.InlinePaymentCard-module__root___3JISW.InlinePaymentCard-module__--large____T4UH{width:48px;height:32px}","",{version:3,sources:["InlinePaymentCard.module.scss"],names:[],mappings:"AAAA,wCAAM,UAAU,CAAC,WAAW,CAAC,uBAAuB,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,kFAAc,UAAU,CAAC,WAAW",file:"InlinePaymentCard.module.scss",sourcesContent:[".root{width:24px;height:16px;background-size:contain;background-repeat:no-repeat;border-radius:2.5px;border:.5px solid #dfe1e5}.root.--large{width:48px;height:32px}"]}]),t.locals={root:"InlinePaymentCard-module__root___3JISW","--large":"InlinePaymentCard-module__--large____T4UH"},e.exports=t},94319:function(e,t,n){(t=n(23645)(!0)).push([e.id,".InlinePaymentOption-module__root___qRPN1{display:flex;align-items:center;gap:12px;margin-left:4px}@media(max-width: 991px){.InlinePaymentOption-module__root___qRPN1{flex-direction:column;align-items:flex-start}}","",{version:3,sources:["InlinePaymentOption.module.scss"],names:[],mappings:"AAAA,0CAAM,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,yBAAyB,0CAAM,qBAAqB,CAAC,sBAAsB,CAAC",file:"InlinePaymentOption.module.scss",sourcesContent:[".root{display:flex;align-items:center;gap:12px;margin-left:4px}@media(max-width: 991px){.root{flex-direction:column;align-items:flex-start}}"]}]),t.locals={root:"InlinePaymentOption-module__root___qRPN1"},e.exports=t},80987:function(e,t,n){(t=n(23645)(!0)).push([e.id,'.roomstay-booking-container .RadioButton-module__root___1w9es{width:100%;display:block;border:1px solid var(--rs-color-light-grey);border-radius:8px;margin:10px 0;cursor:pointer;transition:.3s}.roomstay-booking-container .RadioButton-module__root___1w9es+.RadioButton-module__root___1w9es{margin-top:8px}.roomstay-booking-container .RadioButton-module__root___1w9es.RadioButton-module__disabled___1HXUO{background:#f6f6fa;cursor:not-allowed}.roomstay-booking-container .RadioButton-module__root___1w9es.RadioButton-module__disabled___1HXUO .RadioButton-module__design___3kmtW{border:solid 1px #dfe1e5;background:rgba(0,0,0,0)}.roomstay-booking-container .RadioButton-module__root___1w9es.RadioButton-module__disabled___1HXUO .RadioButton-module__design___3kmtW::before{background:rgba(0,0,0,0)}.roomstay-booking-container .RadioButton-module__root___1w9es.RadioButton-module__disabled___1HXUO .RadioButton-module__text___1CCxU{color:#c0c3cc}.roomstay-booking-container .RadioButton-module__root___1w9es.RadioButton-module__checked___XmNJ8 .RadioButton-module__design___3kmtW{background:var(--rs-color-accent-2);border:solid 1px var(--rs-color-accent-1)}.roomstay-booking-container .RadioButton-module__root___1w9es.RadioButton-module__checked___XmNJ8 .RadioButton-module__design___3kmtW::before{transform:translate(-50%, -50%) scale(1);background:var(--rs-color-accent-1)}.roomstay-booking-container .RadioButton-module__root___1w9es.RadioButton-module__checked___XmNJ8 .RadioButton-module__text___1CCxU{color:var(--rs-color-navy)}.roomstay-booking-container .RadioButton-module__input___3WTPl{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;z-index:-1}.roomstay-booking-container .RadioButton-module__design___3kmtW{flex-shrink:0;width:16px;height:16px;border-radius:100px;position:relative;border:solid 1px var(--rs-color-light-grey)}.roomstay-booking-container .RadioButton-module__design___3kmtW::before{content:"";width:10px;height:10px;display:inline-block;border-radius:inherit;top:50%;left:50%;transform:translate(-50%, -50%);background:rgba(0,0,0,0);transition:.3s;position:absolute}.roomstay-booking-container .RadioButton-module__text___1CCxU{width:100%;color:var(--rs-color-navy);font-size:14px;font-weight:400;line-height:18px;margin-left:8px;transition:.3s}.roomstay-booking-container .RadioButton-module__content___2b4U9{display:block;padding:16px;border-top:solid 1px var(--rs-color-light-grey)}.roomstay-booking-container .RadioButton-module__header___2nA7I{padding:8px 16px;display:flex;align-items:center;padding-right:50px}',"",{version:3,sources:["RadioButton.module.scss"],names:[],mappings:"AAAA,8DAA2C,UAAU,CAAC,aAAa,CAAC,2CAA2C,CAAC,iBAAiB,CAAC,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,gGAAiD,cAAc,CAAC,mGAAoD,kBAAkB,CAAC,kBAAkB,CAAC,uIAA4D,wBAAwB,CAAC,wBAAwB,CAAC,+IAAoE,wBAAwB,CAAC,qIAA0D,aAAa,CAAC,sIAA2D,mCAAmC,CAAC,yCAAyC,CAAC,8IAAmE,wCAAwC,CAAC,mCAAmC,CAAC,oIAAyD,0BAA0B,CAAC,+DAA4C,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gEAA6C,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,2CAA2C,CAAC,wEAAqD,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,wBAAwB,CAAC,cAAc,CAAC,iBAAiB,CAAC,8DAA2C,UAAU,CAAC,0BAA0B,CAAC,cAAc,CAAC,eAAe,CAAC,gBAAgB,CAAC,eAAe,CAAC,cAAc,CAAC,iEAA8C,aAAa,CAAC,YAAY,CAAC,+CAA+C,CAAC,gEAA6C,gBAAgB,CAAC,YAAY,CAAC,kBAAkB,CAAC,kBAAkB",file:"RadioButton.module.scss",sourcesContent:[':global(.roomstay-booking-container) .root{width:100%;display:block;border:1px solid var(--rs-color-light-grey);border-radius:8px;margin:10px 0;cursor:pointer;transition:.3s}:global(.roomstay-booking-container) .root+.root{margin-top:8px}:global(.roomstay-booking-container) .root.disabled{background:#f6f6fa;cursor:not-allowed}:global(.roomstay-booking-container) .root.disabled .design{border:solid 1px #dfe1e5;background:rgba(0,0,0,0)}:global(.roomstay-booking-container) .root.disabled .design::before{background:rgba(0,0,0,0)}:global(.roomstay-booking-container) .root.disabled .text{color:#c0c3cc}:global(.roomstay-booking-container) .root.checked .design{background:var(--rs-color-accent-2);border:solid 1px var(--rs-color-accent-1)}:global(.roomstay-booking-container) .root.checked .design::before{transform:translate(-50%, -50%) scale(1);background:var(--rs-color-accent-1)}:global(.roomstay-booking-container) .root.checked .text{color:var(--rs-color-navy)}:global(.roomstay-booking-container) .input{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;z-index:-1}:global(.roomstay-booking-container) .design{flex-shrink:0;width:16px;height:16px;border-radius:100px;position:relative;border:solid 1px var(--rs-color-light-grey)}:global(.roomstay-booking-container) .design::before{content:"";width:10px;height:10px;display:inline-block;border-radius:inherit;top:50%;left:50%;transform:translate(-50%, -50%);background:rgba(0,0,0,0);transition:.3s;position:absolute}:global(.roomstay-booking-container) .text{width:100%;color:var(--rs-color-navy);font-size:14px;font-weight:400;line-height:18px;margin-left:8px;transition:.3s}:global(.roomstay-booking-container) .content{display:block;padding:16px;border-top:solid 1px var(--rs-color-light-grey)}:global(.roomstay-booking-container) .header{padding:8px 16px;display:flex;align-items:center;padding-right:50px}']}]),t.locals={root:"RadioButton-module__root___1w9es",disabled:"RadioButton-module__disabled___1HXUO",design:"RadioButton-module__design___3kmtW",text:"RadioButton-module__text___1CCxU",checked:"RadioButton-module__checked___XmNJ8",input:"RadioButton-module__input___3WTPl",content:"RadioButton-module__content___2b4U9",header:"RadioButton-module__header___2nA7I"},e.exports=t},5205:function(e,t,n){(t=n(23645)(!0)).push([e.id,".RadioButtonGroup-module__root___3QZUp{position:relative}.RadioButtonGroup-module__root___3QZUp .RadioButtonGroup-module__wrapper___3_Rg6{position:relative}.RadioButtonGroup-module__root___3QZUp .RadioButtonGroup-module__wrapper___3_Rg6:first-child .RadioButtonGroup-module__item___3rGSy{border-top-left-radius:5px !important;border-top-right-radius:5px !important}.RadioButtonGroup-module__root___3QZUp .RadioButtonGroup-module__wrapper___3_Rg6:last-child .RadioButtonGroup-module__item___3rGSy{border-bottom:1px solid var(--rs-color-light-grey) !important;border-bottom-left-radius:5px !important;border-bottom-right-radius:5px !important}.RadioButtonGroup-module__root___3QZUp .RadioButtonGroup-module__item___3rGSy{border-radius:0 !important;margin-top:0 !important;margin-bottom:0 !important;border-bottom:0 !important}.RadioButtonGroup-module__root___3QZUp .RadioButtonGroup-module__item___3rGSy:hover{background:rgba(204,204,204,.14)}.RadioButtonGroup-module__overlay___p2ip9{background-color:#fff;box-shadow:0px 8px 24px rgba(0,0,0,.25);border:1px solid #dfe1e5;border-radius:5px}.RadioButtonGroup-module__childrenIndicator___16sSu{position:absolute;right:16px;top:16px;pointer-events:none}","",{version:3,sources:["RadioButtonGroup.module.scss"],names:[],mappings:"AAAA,uCAAM,iBAAiB,CAAC,iFAAe,iBAAiB,CAAC,oIAAiC,qCAAqC,CAAC,sCAAsC,CAAC,mIAAgC,6DAA6D,CAAC,wCAAwC,CAAC,yCAAyC,CAAC,8EAAY,0BAA0B,CAAC,uBAAuB,CAAC,0BAA0B,CAAC,0BAA0B,CAAC,oFAAkB,gCAAgC,CAAC,0CAAS,qBAAqB,CAAC,uCAAuC,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,oDAAmB,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB",file:"RadioButtonGroup.module.scss",sourcesContent:[".root{position:relative}.root .wrapper{position:relative}.root .wrapper:first-child .item{border-top-left-radius:5px !important;border-top-right-radius:5px !important}.root .wrapper:last-child .item{border-bottom:1px solid var(--rs-color-light-grey) !important;border-bottom-left-radius:5px !important;border-bottom-right-radius:5px !important}.root .item{border-radius:0 !important;margin-top:0 !important;margin-bottom:0 !important;border-bottom:0 !important}.root .item:hover{background:rgba(204,204,204,.14)}.overlay{background-color:#fff;box-shadow:0px 8px 24px rgba(0,0,0,.25);border:1px solid #dfe1e5;border-radius:5px}.childrenIndicator{position:absolute;right:16px;top:16px;pointer-events:none}"]}]),t.locals={root:"RadioButtonGroup-module__root___3QZUp",wrapper:"RadioButtonGroup-module__wrapper___3_Rg6",item:"RadioButtonGroup-module__item___3rGSy",overlay:"RadioButtonGroup-module__overlay___p2ip9",childrenIndicator:"RadioButtonGroup-module__childrenIndicator___16sSu"},e.exports=t},87518:function(e,t,n){(t=n(23645)(!0)).push([e.id,".PlanpayLabel-module__root___a2__0{display:flex;align-items:center;justify-content:space-between;width:100%}@media(max-width: 991px){.PlanpayLabel-module__root___a2__0{flex-direction:column;align-items:flex-start}}.PlanpayLabel-module__container___pMoWg{display:flex;align-items:center;gap:12px}@media(max-width: 991px){.PlanpayLabel-module__container___pMoWg{flex:1 auto;flex-direction:row;align-items:center}}.PlanpayLabel-module__label-and-logo___3gMbJ{display:flex;align-items:center;flex:1 auto}@media(max-width: 991px){.PlanpayLabel-module__label-and-logo___3gMbJ{flex-direction:row-reverse;align-items:center;gap:12px}}.PlanpayLabel-module__price___2TINl{display:flex}@media(max-width: 991px){.PlanpayLabel-module__price___2TINl{text-align:right}}","",{version:3,sources:["PlanpayLabel.module.scss"],names:[],mappings:"AAAA,mCAAM,YAAY,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,UAAU,CAAC,yBAAyB,mCAAM,qBAAqB,CAAC,sBAAsB,CAAC,CAAC,wCAAW,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,yBAAyB,wCAAW,WAAW,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,6CAAgB,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,yBAAyB,6CAAgB,0BAA0B,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,oCAAO,YAAY,CAAC,yBAAyB,oCAAO,gBAAgB,CAAC",file:"PlanpayLabel.module.scss",sourcesContent:[".root{display:flex;align-items:center;justify-content:space-between;width:100%}@media(max-width: 991px){.root{flex-direction:column;align-items:flex-start}}.container{display:flex;align-items:center;gap:12px}@media(max-width: 991px){.container{flex:1 auto;flex-direction:row;align-items:center}}.label-and-logo{display:flex;align-items:center;flex:1 auto}@media(max-width: 991px){.label-and-logo{flex-direction:row-reverse;align-items:center;gap:12px}}.price{display:flex}@media(max-width: 991px){.price{text-align:right}}"]}]),t.locals={root:"PlanpayLabel-module__root___a2__0",container:"PlanpayLabel-module__container___pMoWg","label-and-logo":"PlanpayLabel-module__label-and-logo___3gMbJ",price:"PlanpayLabel-module__price___2TINl"},e.exports=t},91597:function(e,t,n){(t=n(23645)(!0)).push([e.id,".TrueRewardsLabel-module__root___1ysKi{display:flex;align-items:center;gap:12px;margin-left:4px;height:34px}@media(max-width: 991px){.TrueRewardsLabel-module__root___1ysKi{flex-direction:column;align-items:flex-start}}","",{version:3,sources:["TrueRewardsLabel.module.scss"],names:[],mappings:"AAAA,uCAAM,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,yBAAyB,uCAAM,qBAAqB,CAAC,sBAAsB,CAAC",file:"TrueRewardsLabel.module.scss",sourcesContent:[".root{display:flex;align-items:center;gap:12px;margin-left:4px;height:34px}@media(max-width: 991px){.root{flex-direction:column;align-items:flex-start}}"]}]),t.locals={root:"TrueRewardsLabel-module__root___1ysKi"},e.exports=t},84224:function(e,t,n){(t=n(23645)(!0)).push([e.id,".TrueRewardsPaymentMethod-module__inputRow___3jUkY{display:flex;align-items:center;gap:8px}.TrueRewardsPaymentMethod-module__infoBlock___kDhEY{margin-top:12px;display:flex;gap:16px;padding-top:2px;padding-bottom:2px}@media(max-width: 1199px){.TrueRewardsPaymentMethod-module__infoBlock___kDhEY{flex-direction:column;gap:12px}}.TrueRewardsPaymentMethod-module__leftContent___11IyK{flex:1;flex-direction:column;display:flex;gap:4px;min-width:0}.TrueRewardsPaymentMethod-module__rightContent___2VG_J{display:flex;gap:8px}.TrueRewardsPaymentMethod-module__card___3lavK{padding:12px;border-radius:8px;background-color:#f8f9fa;border:1px solid #e9ecef;min-width:190px;max-height:66px}@media(max-width: 768px){.TrueRewardsPaymentMethod-module__card___3lavK{min-width:unset;width:100%}}.TrueRewardsPaymentMethod-module__applyCodeButton___3wgc3{height:40px;font-weight:normal !important}.TrueRewardsPaymentMethod-module__applyCodeButton___3wgc3 [class*=diji-icon]{font-size:18px !important}.TrueRewardsPaymentMethod-module__container___NkcG2{margin-bottom:8px}","",{version:3,sources:["TrueRewardsPaymentMethod.module.scss"],names:[],mappings:"AAAA,mDAAU,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,oDAAW,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,0BAA0B,oDAAW,qBAAqB,CAAC,QAAQ,CAAC,CAAC,sDAAa,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,uDAAc,YAAY,CAAC,OAAO,CAAC,+CAAM,YAAY,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,eAAe,CAAC,eAAe,CAAC,yBAAyB,+CAAM,eAAe,CAAC,UAAU,CAAC,CAAC,0DAAiB,WAAW,CAAC,6BAA6B,CAAC,6EAAoC,yBAAyB,CAAC,oDAAW,iBAAiB",file:"TrueRewardsPaymentMethod.module.scss",sourcesContent:[".inputRow{display:flex;align-items:center;gap:8px}.infoBlock{margin-top:12px;display:flex;gap:16px;padding-top:2px;padding-bottom:2px}@media(max-width: 1199px){.infoBlock{flex-direction:column;gap:12px}}.leftContent{flex:1;flex-direction:column;display:flex;gap:4px;min-width:0}.rightContent{display:flex;gap:8px}.card{padding:12px;border-radius:8px;background-color:#f8f9fa;border:1px solid #e9ecef;min-width:190px;max-height:66px}@media(max-width: 768px){.card{min-width:unset;width:100%}}.applyCodeButton{height:40px;font-weight:normal !important}.applyCodeButton [class*=diji-icon]{font-size:18px !important}.container{margin-bottom:8px}"]}]),t.locals={inputRow:"TrueRewardsPaymentMethod-module__inputRow___3jUkY",infoBlock:"TrueRewardsPaymentMethod-module__infoBlock___kDhEY",leftContent:"TrueRewardsPaymentMethod-module__leftContent___11IyK",rightContent:"TrueRewardsPaymentMethod-module__rightContent___2VG_J",card:"TrueRewardsPaymentMethod-module__card___3lavK",applyCodeButton:"TrueRewardsPaymentMethod-module__applyCodeButton___3wgc3",container:"TrueRewardsPaymentMethod-module__container___NkcG2"},e.exports=t},37533:function(e,t,n){var r=n(93379),a=n(56374);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},276:function(e,t,n){var r=n(93379),a=n(31693);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},35729:function(e,t,n){var r=n(93379),a=n(12899);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},75498:function(e,t,n){var r=n(93379),a=n(94319);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},57970:function(e,t,n){var r=n(93379),a=n(80987);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},9502:function(e,t,n){var r=n(93379),a=n(5205);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},1320:function(e,t,n){var r=n(93379),a=n(87518);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},36765:function(e,t,n){var r=n(93379),a=n(91597);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},36231:function(e,t,n){var r=n(93379),a=n(84224);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}}}]);
@@ -1,4 +0,0 @@
1
- import BaseAPI from './BaseAPI';
2
- export default class TrueRewardsAPI extends BaseAPI {
3
- fetchBalance: (cardReference: string, hotelId: string) => Promise<number | null>;
4
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const BaseAPI_1 = __importDefault(require("./BaseAPI"));
16
- class TrueRewardsAPI extends BaseAPI_1.default {
17
- constructor() {
18
- super(...arguments);
19
- this.fetchBalance = (cardReference, hotelId) => __awaiter(this, void 0, void 0, function* () {
20
- const response = yield fetch(`${this.getApiPath()}true-rewards/${hotelId}/balance?cardReference=${cardReference}`, {
21
- headers: { 'Content-Type': 'application/json' },
22
- });
23
- if (response.status === 400) {
24
- // Invalid card
25
- return null;
26
- }
27
- const data = yield response.json();
28
- if (response.status === 200) {
29
- return data.balance;
30
- }
31
- console.error('True Rewards failed to fetch card balance', data);
32
- throw new Error(`Failed to fetch balance: ${response.status} ${response.statusText}`);
33
- });
34
- }
35
- }
36
- exports.default = TrueRewardsAPI;
37
- //# sourceMappingURL=TrueRewardsAPI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TrueRewardsAPI.js","sourceRoot":"/","sources":["src/api/TrueRewardsAPI.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AAEpC,MAAqB,cAAe,SAAQ,iBAAO;IAAnD;;QACW,iBAAY,GAAG,CAAO,aAAqB,EAAE,OAAe,EAA0B,EAAE;YAC3F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,OAAO,0BAA0B,aAAa,EAAE,EAAE;gBAC/G,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;aAClD,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBACzB,eAAe;gBACf,OAAO,IAAI,CAAC;aACf;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEnC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBACzB,OAAO,IAAI,CAAC,OAAO,CAAC;aACvB;YAED,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,IAAI,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1F,CAAC,CAAA,CAAC;IACN,CAAC;CAAA;AApBD,iCAoBC","sourcesContent":["import BaseAPI from '@/api/BaseAPI';\n\nexport default class TrueRewardsAPI extends BaseAPI {\n public fetchBalance = async (cardReference: string, hotelId: string): Promise<number | null> => {\n const response = await fetch(`${this.getApiPath()}true-rewards/${hotelId}/balance?cardReference=${cardReference}`, {\n headers: { 'Content-Type': 'application/json' },\n });\n\n if (response.status === 400) {\n // Invalid card\n return null;\n }\n\n const data = await response.json();\n\n if (response.status === 200) {\n return data.balance;\n }\n\n console.error('True Rewards failed to fetch card balance', data);\n throw new Error(`Failed to fetch balance: ${response.status} ${response.statusText}`);\n };\n}\n"]}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- interface ImportantInformationProps {
3
- withCheckbox: boolean;
4
- confirmationError: boolean;
5
- }
6
- declare const _default: React.ForwardRefExoticComponent<ImportantInformationProps & React.RefAttributes<unknown>>;
7
- export default _default;
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importDefault(require("react"));
30
- const react_i18next_1 = require("react-i18next");
31
- const AutoAutoHeight_1 = __importDefault(require("../../../animations/AutoAutoHeight"));
32
- const Alert_1 = __importStar(require("../../generic/Alert"));
33
- const Checkbox_1 = __importDefault(require("../../generic/Checkbox/Checkbox"));
34
- const Headline_1 = __importDefault(require("../../generic/Headline"));
35
- const Icon_1 = require("../../generic/Icon/Icon");
36
- const Text_1 = __importStar(require("../../generic/Text"));
37
- const Translation_1 = require("../../../translations/Translation");
38
- const Color_1 = require("../../../util/Color");
39
- exports.default = react_1.default.forwardRef(function StepConfirmationImportantInformation({ confirmationError, withCheckbox }, ref) {
40
- const { t } = (0, react_i18next_1.useTranslation)();
41
- return (react_1.default.createElement("div", { className: "u-marg-bottom step-confirmation-important-information" },
42
- react_1.default.createElement("div", { className: "u-marg-bottom step-confirmation-important-information-headline" },
43
- react_1.default.createElement(Headline_1.default, { bold: true }, t(Translation_1.Translation.Step.Confirmation.ImportantInformation))),
44
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: Color_1.Color.Graphite, bold: true, className: "u-marg-bottom step-confirmation-important-information-notes" }, t(Translation_1.Translation.Step.Confirmation.ImportantInformationNotes)),
45
- withCheckbox && (react_1.default.createElement("div", { className: "step-confirmation-important-information-checkbox" },
46
- react_1.default.createElement(Checkbox_1.default, { ref: ref, label: react_1.default.createElement("div", null,
47
- t(Translation_1.Translation.Step.Confirmation.ImportantInformationIHaveUnderstood),
48
- " ") }))),
49
- react_1.default.createElement(AutoAutoHeight_1.default, { open: confirmationError },
50
- react_1.default.createElement("div", { className: "u-flex u-marg-top" },
51
- react_1.default.createElement(Alert_1.default, { type: Alert_1.AlertType.Danger, icon: Icon_1.IconType.Error },
52
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, t(Translation_1.Translation.Step.Confirmation.ImportantInformationError)))))));
53
- });
54
- //# sourceMappingURL=StepConfirmationImportantInformation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StepConfirmationImportantInformation.js","sourceRoot":"/","sources":["src/components/steps/confirmation/StepConfirmationImportantInformation.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAA+C;AAE/C,iFAAyD;AACzD,oEAA8D;AAC9D,sFAA8D;AAC9D,6EAAqD;AACrD,yDAA0D;AAC1D,kEAA2D;AAC3D,4DAAyD;AACzD,wCAAqC;AAOrC,kBAAe,eAAK,CAAC,UAAU,CAAC,SAAS,oCAAoC,CAAC,EAAE,iBAAiB,EAAE,YAAY,EAA6B,EAAE,GAAQ;IAClJ,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,OAAO,CACH,uCAAK,SAAS,EAAC,uDAAuD;QAClE,uCAAK,SAAS,EAAC,gEAAgE;YAC3E,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAY,CAC/E;QACN,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE,IAAI,QAAC,SAAS,EAAC,6DAA6D,IAC1H,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,CACxD;QACN,YAAY,IAAI,CACb,uCAAK,SAAS,EAAC,kDAAkD;YAC7D,8BAAC,kBAAQ,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;oBAAM,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,mCAAmC,CAAC;wBAAQ,GAAI,CAC/G,CACT;QAED,8BAAC,wBAAc,IAAC,IAAI,EAAE,iBAAiB;YACnC,uCAAK,SAAS,EAAC,mBAAmB;gBAC9B,8BAAC,eAAK,IAAC,IAAI,EAAE,iBAAS,CAAC,MAAM,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK;oBAC/C,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAQ,CAC3F,CACN,CACO,CACf,CACT,CAAC;AACN,CAAC,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport Alert, { AlertType } from '@/components/generic/Alert';\nimport Checkbox from '@/components/generic/Checkbox/Checkbox';\nimport Headline from '@/components/generic/Headline';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\ninterface ImportantInformationProps {\n withCheckbox: boolean;\n confirmationError: boolean;\n}\n\nexport default React.forwardRef(function StepConfirmationImportantInformation({ confirmationError, withCheckbox }: ImportantInformationProps, ref: any) {\n const { t } = useTranslation();\n\n return (\n <div className=\"u-marg-bottom step-confirmation-important-information\">\n <div className=\"u-marg-bottom step-confirmation-important-information-headline\">\n <Headline bold>{t(Translation.Step.Confirmation.ImportantInformation)}</Headline>\n </div>\n <Text type={TextType.Small} color={Color.Graphite} bold className=\"u-marg-bottom step-confirmation-important-information-notes\">\n {t(Translation.Step.Confirmation.ImportantInformationNotes)}\n </Text>\n {withCheckbox && (\n <div className=\"step-confirmation-important-information-checkbox\">\n <Checkbox ref={ref} label={<div>{t(Translation.Step.Confirmation.ImportantInformationIHaveUnderstood)} </div>} />\n </div>\n )}\n\n <AutoAutoHeight open={confirmationError}>\n <div className=\"u-flex u-marg-top\">\n <Alert type={AlertType.Danger} icon={IconType.Error}>\n <Text type={TextType.Small}>{t(Translation.Step.Confirmation.ImportantInformationError)}</Text>\n </Alert>\n </div>\n </AutoAutoHeight>\n </div>\n );\n});\n"]}
@@ -1,2 +0,0 @@
1
- declare const TrueRewardsLabel: () => JSX.Element;
2
- export default TrueRewardsLabel;
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importDefault(require("react"));
30
- const react_i18next_1 = require("react-i18next");
31
- const Text_1 = __importStar(require("../../../generic/Text"));
32
- const contexts_1 = require("../../../../contexts");
33
- const Currency_1 = __importDefault(require("../../../../hooks/Currency"));
34
- const Translation_1 = require("../../../../translations/Translation");
35
- const Color_1 = require("../../../../util/Color");
36
- const TextAlignment_1 = require("../../../../util/TextAlignment");
37
- const TrueRewardsLabel_module_scss_1 = __importDefault(require("./TrueRewardsLabel.module.scss"));
38
- const TrueRewardsLabel = () => {
39
- const { t } = (0, react_i18next_1.useTranslation)();
40
- const { getTotalPayNow } = (0, contexts_1.useBasket)();
41
- const totalPayNow = getTotalPayNow();
42
- const { symbol, prettyValue } = (0, Currency_1.default)({
43
- children: totalPayNow,
44
- });
45
- return (react_1.default.createElement("div", { className: "u-flex u-flex-justify-between w-100 u-flex-align-center" },
46
- react_1.default.createElement("div", { className: TrueRewardsLabel_module_scss_1.default.root },
47
- react_1.default.createElement(Text_1.default, { align: TextAlignment_1.TextAlign.Left, type: Text_1.TextType.Small, color: Color_1.Color.Navy }, t(Translation_1.Translation.Step.Confirmation.GiftCard))),
48
- react_1.default.createElement(Text_1.default, { bold: true, className: "u-flex", color: Color_1.Color.Navy, type: Text_1.TextType.Small },
49
- symbol,
50
- prettyValue)));
51
- };
52
- exports.default = TrueRewardsLabel;
53
- //# sourceMappingURL=TrueRewardsLabel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TrueRewardsLabel.js","sourceRoot":"/","sources":["src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAA+C;AAE/C,kEAA2D;AAC3D,yCAAuC;AACvC,gEAA2C;AAC3C,4DAAyD;AACzD,wCAAqC;AACrC,wDAAiD;AAEjD,kGAAoD;AAEpD,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,oBAAS,GAAE,CAAC;IACvC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAW,EAAC;QACxC,QAAQ,EAAE,WAAW;KACxB,CAAC,CAAC;IAEH,OAAO,CACH,uCAAK,SAAS,EAAC,yDAAyD;QACpE,uCAAK,SAAS,EAAE,sCAAM,CAAC,IAAI;YACvB,8BAAC,cAAI,IAAC,KAAK,EAAE,yBAAS,CAAC,IAAI,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,IAC/D,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CACvC,CACL;QACN,8BAAC,cAAI,IAAC,IAAI,QAAC,SAAS,EAAC,QAAQ,EAAC,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK;YAChE,MAAM;YACN,WAAW,CACT,CACL,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC","sourcesContent":["import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Text, { TextType } from '@/components/generic/Text';\nimport { useBasket } from '@/contexts';\nimport useCurrency from '@/hooks/Currency';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\nimport { TextAlign } from '@/util/TextAlignment';\n\nimport styles from './TrueRewardsLabel.module.scss';\n\nconst TrueRewardsLabel = () => {\n const { t } = useTranslation();\n const { getTotalPayNow } = useBasket();\n const totalPayNow = getTotalPayNow();\n const { symbol, prettyValue } = useCurrency({\n children: totalPayNow,\n });\n\n return (\n <div className=\"u-flex u-flex-justify-between w-100 u-flex-align-center\">\n <div className={styles.root}>\n <Text align={TextAlign.Left} type={TextType.Small} color={Color.Navy}>\n {t(Translation.Step.Confirmation.GiftCard)}\n </Text>\n </div>\n <Text bold className=\"u-flex\" color={Color.Navy} type={TextType.Small}>\n {symbol}\n {prettyValue}\n </Text>\n </div>\n );\n};\n\nexport default TrueRewardsLabel;\n"]}
@@ -1,2 +0,0 @@
1
- import { FC } from 'react';
2
- export declare const TrueRewardsPaymentMethod: FC;
@@ -1,115 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.TrueRewardsPaymentMethod = void 0;
39
- const react_1 = __importStar(require("react"));
40
- const react_i18next_1 = require("react-i18next");
41
- const BEButton_1 = __importDefault(require("../../../generic/BEButton"));
42
- const Icon_1 = require("../../../generic/Icon/Icon");
43
- const Text_1 = __importStar(require("../../../generic/Text"));
44
- const TextBox_1 = __importDefault(require("../../../generic/TextBox"));
45
- const Currency_1 = __importDefault(require("../../../../hooks/Currency"));
46
- const index_1 = require("../../../../index");
47
- const Translation_1 = require("../../../../translations/Translation");
48
- const Color_1 = require("../../../../util/Color");
49
- const TrueRewardsPaymentMethod_module_scss_1 = __importDefault(require("./TrueRewardsPaymentMethod.module.scss"));
50
- const TrueRewardsPaymentMethod = () => {
51
- const { t } = (0, react_i18next_1.useTranslation)();
52
- const { hotel } = (0, index_1.useCurrentHotel)();
53
- const { getTotalPayNow } = (0, index_1.useBasket)();
54
- const totalPayNow = getTotalPayNow();
55
- const [cardReference, setCardReference] = (0, react_1.useState)('');
56
- const [cardBalance, setCardBalance] = (0, react_1.useState)(null);
57
- const [errorMessage, setErrorMessage] = (0, react_1.useState)('');
58
- const [isLoading, setIsLoading] = (0, react_1.useState)(false);
59
- const trimmedReference = cardReference.trim();
60
- const canSubmit = trimmedReference.length > 6;
61
- const remaining = cardBalance !== null ? cardBalance - totalPayNow : 0;
62
- const { symbol, prettyValue: remainingPrettyValue, isLoading: isRemainingLoading } = (0, Currency_1.default)({ children: remaining });
63
- const { prettyValue: cardBalancePrettyValue, isLoading: isCardBalanceLoading } = (0, Currency_1.default)({ children: cardBalance });
64
- const onSubmit = () => __awaiter(void 0, void 0, void 0, function* () {
65
- setErrorMessage('');
66
- setCardBalance(null);
67
- if (hotel === null || hotel === void 0 ? void 0 : hotel.hotelID) {
68
- try {
69
- setIsLoading(true);
70
- const balance = yield index_1.API.TrueRewards.fetchBalance(trimmedReference, hotel.hotelID);
71
- if (balance === null) {
72
- setErrorMessage(t(Translation_1.Translation.Step.Confirmation.TrueRewardsInvalid));
73
- }
74
- else {
75
- setCardBalance(balance);
76
- }
77
- }
78
- catch (e) {
79
- console.error(e);
80
- setErrorMessage(t(Translation_1.Translation.Step.Confirmation.TrueRewardsFailed));
81
- }
82
- finally {
83
- setIsLoading(false);
84
- }
85
- }
86
- });
87
- return (react_1.default.createElement("div", { className: TrueRewardsPaymentMethod_module_scss_1.default.container },
88
- react_1.default.createElement("div", { className: TrueRewardsPaymentMethod_module_scss_1.default.inputRow },
89
- react_1.default.createElement(TextBox_1.default, { value: cardReference, onChange: (val) => {
90
- setCardReference(val.target.value);
91
- setErrorMessage('');
92
- }, placeholder: t(Translation_1.Translation.Step.Confirmation.EnterCode) }),
93
- react_1.default.createElement(BEButton_1.default, { className: TrueRewardsPaymentMethod_module_scss_1.default.applyCodeButton, isLoading: isLoading, size: "small", onClick: onSubmit, disabled: !canSubmit, icon: cardBalance !== null ? Icon_1.IconType.Check : Icon_1.IconType.ArrowRight, iconPosition: "right", rounded: true }, cardBalance !== null ? t(Translation_1.Translation.Step.Confirmation.CodeApplied) : t(Translation_1.Translation.Step.Confirmation.ApplyCode))),
94
- cardBalance !== null && !isCardBalanceLoading && !isRemainingLoading ? (react_1.default.createElement("div", { className: TrueRewardsPaymentMethod_module_scss_1.default.infoBlock },
95
- react_1.default.createElement("div", { className: TrueRewardsPaymentMethod_module_scss_1.default.leftContent },
96
- react_1.default.createElement(Text_1.default, { bold: true, type: Text_1.TextType.Small }, cardBalance >= totalPayNow ? t(Translation_1.Translation.Step.Confirmation.TrueRewardsCoversFullBooking) : t(Translation_1.Translation.Step.Confirmation.TrueRewardsInsufficient)),
97
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, cardBalance >= totalPayNow
98
- ? t(Translation_1.Translation.Step.Confirmation.TrueRewardsCoversFullInstructions)
99
- : t(Translation_1.Translation.Step.Confirmation.TrueRewardsInsufficientInstructions))),
100
- react_1.default.createElement("div", { className: TrueRewardsPaymentMethod_module_scss_1.default.rightContent },
101
- react_1.default.createElement("div", { className: TrueRewardsPaymentMethod_module_scss_1.default.card },
102
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, t(Translation_1.Translation.Step.Confirmation.YourBalance)),
103
- react_1.default.createElement(Text_1.default, { bold: true, color: Color_1.Color.Navy },
104
- symbol,
105
- cardBalancePrettyValue)),
106
- react_1.default.createElement("div", { className: TrueRewardsPaymentMethod_module_scss_1.default.card },
107
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, t(Translation_1.Translation.Step.Confirmation.Remaining)),
108
- react_1.default.createElement(Text_1.default, { bold: true, color: remaining < 0 ? Color_1.Color.Danger : Color_1.Color.Navy },
109
- symbol,
110
- remainingPrettyValue))))) : (react_1.default.createElement(react_1.default.Fragment, null,
111
- errorMessage && (react_1.default.createElement(Text_1.default, { color: Color_1.Color.Danger, type: Text_1.TextType.Small, style: { marginTop: '8px' } }, errorMessage)),
112
- react_1.default.createElement(Text_1.default, { color: Color_1.Color.DarkGrey, type: Text_1.TextType.Small, style: { marginTop: '8px' } }, t(Translation_1.Translation.Step.Confirmation.TrueRewardsInputHelperText))))));
113
- };
114
- exports.TrueRewardsPaymentMethod = TrueRewardsPaymentMethod;
115
- //# sourceMappingURL=TrueRewardsPaymentMethod.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TrueRewardsPaymentMethod.js","sourceRoot":"/","sources":["src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA4C;AAC5C,iDAA+C;AAE/C,6EAAqD;AACrD,yDAA0D;AAC1D,kEAA2D;AAC3D,2EAAmD;AACnD,gEAA2C;AAC3C,mCAA0D;AAC1D,4DAAyD;AACzD,wCAAqC;AAErC,kHAA4D;AAErD,MAAM,wBAAwB,GAAO,GAAG,EAAE;IAC7C,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACpC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,iBAAS,GAAE,CAAC;IACvC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAElD,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAA,kBAAW,EAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1H,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,IAAA,kBAAW,EAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAExH,MAAM,QAAQ,GAAG,GAAS,EAAE;QACxB,eAAe,CAAC,EAAE,CAAC,CAAC;QACpB,cAAc,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE;YAChB,IAAI;gBACA,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnB,MAAM,OAAO,GAAG,MAAM,WAAG,CAAC,WAAW,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAEpF,IAAI,OAAO,KAAK,IAAI,EAAE;oBAClB,eAAe,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;iBACxE;qBAAM;oBACH,cAAc,CAAC,OAAO,CAAC,CAAC;iBAC3B;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,eAAe,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACvE;oBAAS;gBACN,YAAY,CAAC,KAAK,CAAC,CAAC;aACvB;SACJ;IACL,CAAC,CAAA,CAAC;IAEF,OAAO,CACH,uCAAK,SAAS,EAAE,8CAAM,CAAC,SAAS;QAC5B,uCAAK,SAAS,EAAE,8CAAM,CAAC,QAAQ;YAC3B,8BAAC,iBAAO,IACJ,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;oBACd,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnC,eAAe,CAAC,EAAE,CAAC,CAAC;gBACxB,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GACzD;YACF,8BAAC,kBAAQ,IACL,SAAS,EAAE,8CAAM,CAAC,eAAe,EACjC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,SAAS,EACpB,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,eAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,eAAQ,CAAC,UAAU,EACjE,YAAY,EAAC,OAAO,EACpB,OAAO,UAEN,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAC1G,CACT;QACL,WAAW,KAAK,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CACpE,uCAAK,SAAS,EAAE,8CAAM,CAAC,SAAS;YAC5B,uCAAK,SAAS,EAAE,8CAAM,CAAC,WAAW;gBAC9B,8BAAC,cAAI,IAAC,IAAI,QAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAC1B,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,CACnJ;gBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IACrB,WAAW,IAAI,WAAW;oBACvB,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,iCAAiC,CAAC;oBACpE,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,mCAAmC,CAAC,CACvE,CACL;YACN,uCAAK,SAAS,EAAE,8CAAM,CAAC,YAAY;gBAC/B,uCAAK,SAAS,EAAE,8CAAM,CAAC,IAAI;oBACvB,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAQ;oBACjF,8BAAC,cAAI,IAAC,IAAI,QAAC,KAAK,EAAE,aAAK,CAAC,IAAI;wBACvB,MAAM;wBACN,sBAAsB,CACpB,CACL;gBACN,uCAAK,SAAS,EAAE,8CAAM,CAAC,IAAI;oBACvB,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAQ;oBAC/E,8BAAC,cAAI,IAAC,IAAI,QAAC,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAK,CAAC,IAAI;wBACtD,MAAM;wBACN,oBAAoB,CAClB,CACL,CACJ,CACJ,CACT,CAAC,CAAC,CAAC,CACA;YACK,YAAY,IAAI,CACb,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,MAAM,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IACvE,YAAY,CACV,CACV;YACD,8BAAC,cAAI,IAAC,KAAK,EAAE,aAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IACzE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,CACzD,CACR,CACN,CACC,CACT,CAAC;AACN,CAAC,CAAC;AA5GW,QAAA,wBAAwB,4BA4GnC","sourcesContent":["import React, { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport BEButton from '@/components/generic/BEButton';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextBox from '@/components/generic/TextBox';\nimport useCurrency from '@/hooks/Currency';\nimport { API, useBasket, useCurrentHotel } from '@/index';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\nimport styles from './TrueRewardsPaymentMethod.module.scss';\n\nexport const TrueRewardsPaymentMethod: FC = () => {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n const { getTotalPayNow } = useBasket();\n const totalPayNow = getTotalPayNow();\n\n const [cardReference, setCardReference] = useState('');\n const [cardBalance, setCardBalance] = useState<number | null>(null);\n const [errorMessage, setErrorMessage] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n\n const trimmedReference = cardReference.trim();\n const canSubmit = trimmedReference.length > 6;\n const remaining = cardBalance !== null ? cardBalance - totalPayNow : 0;\n\n const { symbol, prettyValue: remainingPrettyValue, isLoading: isRemainingLoading } = useCurrency({ children: remaining });\n const { prettyValue: cardBalancePrettyValue, isLoading: isCardBalanceLoading } = useCurrency({ children: cardBalance });\n\n const onSubmit = async () => {\n setErrorMessage('');\n setCardBalance(null);\n\n if (hotel?.hotelID) {\n try {\n setIsLoading(true);\n const balance = await API.TrueRewards.fetchBalance(trimmedReference, hotel.hotelID);\n\n if (balance === null) {\n setErrorMessage(t(Translation.Step.Confirmation.TrueRewardsInvalid));\n } else {\n setCardBalance(balance);\n }\n } catch (e) {\n console.error(e);\n setErrorMessage(t(Translation.Step.Confirmation.TrueRewardsFailed));\n } finally {\n setIsLoading(false);\n }\n }\n };\n\n return (\n <div className={styles.container}>\n <div className={styles.inputRow}>\n <TextBox\n value={cardReference}\n onChange={(val) => {\n setCardReference(val.target.value);\n setErrorMessage('');\n }}\n placeholder={t(Translation.Step.Confirmation.EnterCode)}\n />\n <BEButton\n className={styles.applyCodeButton}\n isLoading={isLoading}\n size=\"small\"\n onClick={onSubmit}\n disabled={!canSubmit}\n icon={cardBalance !== null ? IconType.Check : IconType.ArrowRight}\n iconPosition=\"right\"\n rounded\n >\n {cardBalance !== null ? t(Translation.Step.Confirmation.CodeApplied) : t(Translation.Step.Confirmation.ApplyCode)}\n </BEButton>\n </div>\n {cardBalance !== null && !isCardBalanceLoading && !isRemainingLoading ? (\n <div className={styles.infoBlock}>\n <div className={styles.leftContent}>\n <Text bold type={TextType.Small}>\n {cardBalance >= totalPayNow ? t(Translation.Step.Confirmation.TrueRewardsCoversFullBooking) : t(Translation.Step.Confirmation.TrueRewardsInsufficient)}\n </Text>\n <Text type={TextType.Small}>\n {cardBalance >= totalPayNow\n ? t(Translation.Step.Confirmation.TrueRewardsCoversFullInstructions)\n : t(Translation.Step.Confirmation.TrueRewardsInsufficientInstructions)}\n </Text>\n </div>\n <div className={styles.rightContent}>\n <div className={styles.card}>\n <Text type={TextType.Small}>{t(Translation.Step.Confirmation.YourBalance)}</Text>\n <Text bold color={Color.Navy}>\n {symbol}\n {cardBalancePrettyValue}\n </Text>\n </div>\n <div className={styles.card}>\n <Text type={TextType.Small}>{t(Translation.Step.Confirmation.Remaining)}</Text>\n <Text bold color={remaining < 0 ? Color.Danger : Color.Navy}>\n {symbol}\n {remainingPrettyValue}\n </Text>\n </div>\n </div>\n </div>\n ) : (\n <>\n {errorMessage && (\n <Text color={Color.Danger} type={TextType.Small} style={{ marginTop: '8px' }}>\n {errorMessage}\n </Text>\n )}\n <Text color={Color.DarkGrey} type={TextType.Small} style={{ marginTop: '8px' }}>\n {t(Translation.Step.Confirmation.TrueRewardsInputHelperText)}\n </Text>\n </>\n )}\n </div>\n );\n};\n"]}