@roomstay/frontend 2.0.5 → 2.0.6

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.
@@ -1 +1 @@
1
- (("undefined"!=typeof self?self:this).webpackChunkroomstay=("undefined"!=typeof self?self:this).webpackChunkroomstay||[]).push([[218],{5032:function(e,t,n){"use strict";n.d(t,{z:function(){return c}});var r=n(5671),a=n(3144),o=n(136),l=n(2963),i=n(1120);var c=function(e){(0,o.Z)(s,e);var t,n,c=(t=s,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 s(e){var t;return(0,r.Z)(this,s),(t=c.call(this)).basketRows=void 0,t.basketRows=e,t}return(0,a.Z)(s,null,[{key:"getLabel",value:function(){return"View/Checkout"}}]),s}(n(7112).x)},4218:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return et}});var r=n(7294),a=n(3010),o=n(5692),l=n(3933),i=n(3727),c=n(9874),s=n(3821),u=n(9478),m=n(370),d=n(292),f=n(8279),p=n(4478),v=n(7462),g=n(885),E=n(8886),h=n(584),y=n(7754);function b(e){var t=e.addon;return r.createElement("div",{className:"additional-offers--column "+(e.selected?"--selected":""),style:{backgroundImage:"url('".concat(t.image,"')")},onClick:function(){e.cardClicked()}},r.createElement("div",{className:"additional-offers--column-body"},r.createElement(h.ZP,{type:h.yG.Small,color:y.I.White},r.createElement("strong",null,t.name)),r.createElement("div",{className:"u-flex"},r.createElement(h.ZP,{inline:!0,type:h.yG.Small,color:y.I.White},"See details"),r.createElement(E.ZP,{icon:E.Tu.ArrowRight,color:y.I.White}))))}var C=n(1472),Z=n(3460),x=n(7582),k=n(5128),S=n(6380),P=n(3122),w=n(4854),N=n(858),A=n(9314);function I(e){var t,n=e.addon,o=((0,p.$)().t,(0,r.useContext)(A.hy)),l=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getSelectedDate():""),i=(0,g.Z)(l,2),c=i[0],s=i[1],u=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getSelectedTime():""),m=(0,g.Z)(u,2),d=m[0],f=m[1],v=(0,r.useState)({quantity:1}),b=(0,g.Z)(v,2),C=b[0],Z=b[1],x=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getQuantity():1),I=(0,g.Z)(x,2),W=I[0],R=I[1],M=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getAdultQuantity():1),T=(0,g.Z)(M,2),_=T[0],D=T[1],q=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getChildQuantity():0),F=(0,g.Z)(q,2),G=F[0],L=F[1];return r.useEffect((function(){var t,r,a,o,l,i;if(n)return e.basketAddonRow?(Z(null!==(t=n.availability[e.basketAddonRow.getSelectedDate()])&&void 0!==t?t:n.availability[n.firstDate]),s(null!==(r=e.basketAddonRow.getSelectedDate())&&void 0!==r?r:n.firstDate),f(null!==(a=e.basketAddonRow.getSelectedTime())&&void 0!==a?a:""),R(e.basketAddonRow.getQuantity()),D(e.basketAddonRow.getAdultQuantity()),L(e.basketAddonRow.getChildQuantity())):(Z(n.availability[n.firstDate]),s(n.firstDate),f(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(){R(1),D(1),L(0)}}),[n]),r.createElement(k.Z,{open:e.isOpen,onClose:e.onClose,size:k.g.Small,title:n?n.name:""},n&&r.createElement(r.Fragment,null,r.createElement("div",{style:{height:"350px",width:"100%",backgroundImage:'url("'.concat(n.image,'")'),backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover"}}),r.createElement("div",{className:"u-marg-heavy u-marg@m-"},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},n.name)),r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement(h.ZP,{type:h.yG.Small,color:y.I.DarkGrey},n.description)),r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Date"),r.createElement(P.Z,{className:"u-flex align-items-center",onChange:function(e){var t,r,a,o;t=e,Z(n.availability[t]),s(t),f(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<W&&R(n.availability[t].quantity)},selectedValue:c,iconComponent:E.Tf,items:n.selectorDates}))),0!==(null==C||null===(t=C.selectorTimes)||void 0===t?void 0:t.length)&&r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Time"),r.createElement(P.Z,{className:"u-flex align-items-center",onChange:function(e){f(e)},selectedValue:d,iconComponent:E.Tf,items:null==C?void 0:C.selectorTimes}))),C.price&&r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Quantity"),r.createElement(S.Z,{number:W,min:1,max:C.quantity,onChange:function(e){R(e)}}))),C.adultPrice&&r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Adults"),r.createElement(S.Z,{number:_,min:0,max:C.quantity-G,onChange:function(e){D(e)}}))),C.childPrice&&r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Children"),r.createElement(S.Z,{number:G,min:0,max:C.quantity-_,onChange:function(e){L(e)}}))),r.createElement("div",{className:"u-flex align-items-center u-marg-top"},C.price&&r.createElement("h2",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.price),"/ Qty"),C.adultPrice&&C.childPrice&&r.createElement("h2",{className:"u-marg-none"},r.createElement("div",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.adultPrice)," / Adult"),r.createElement("br",null),r.createElement("div",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.childPrice)," / Child")),C.adultPrice&&!C.childPrice&&r.createElement("h2",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.adultPrice)," / Adult"),C.childPrice&&!C.adultPrice&&r.createElement("h2",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.childPrice)," / Child"),r.createElement(w.Z,{filled:!0,primary:!0,onClick:function(){o.setAddonQuantities(n,{quantity:W,adult:_,child:G},c,d),e.onClose()}},e.basketAddonRow?"Update Cart":"Add to Cart")),n.guaranteeDescription&&r.createElement(r.Fragment,null,r.createElement("h4",{className:"u-marg-bottom--light u-marg-top"},"Guarantee"),r.createElement("div",{className:"u-marg-bot--heavy"},r.createElement(h.ZP,{type:h.yG.Small},n.guaranteeDescription))),n.cancelPenalty&&r.createElement(r.Fragment,null,r.createElement("h4",{className:"u-marg-bottom--light u-marg-top"},"Cancellation Policy"),r.createElement("div",{className:"u-marg-bot--heavy"},r.createElement(h.ZP,{type:h.yG.Small},n.cancelPenalty))))))}var W=n(4516),R=n(9740),M=n(7832),T=n(7688);function _(){var e=(0,r.useContext)(A.hy),t=(0,r.useContext)(A.Qm),n=(0,T.WP)().hotel,o=(0,C.useSpring)((function(){return{x:0}})),l=(0,g.Z)(o,2),i=l[0].x,c=l[1],s=(0,Z.Z)(),m=(0,g.Z)(s,2),d=m[0],f=m[1],k=(0,p.$)().t,S=r.useState([]),P=(0,g.Z)(S,2),w=P[0],N=P[1],_=(0,r.useState)(!1),D=(0,g.Z)(_,2),q=D[0],F=D[1],G=(0,r.useState)(null),L=(0,g.Z)(G,2),O=L[0],U=L[1],B=(0,r.useState)(!1),H=(0,g.Z)(B,2),V=H[0],j=H[1],z=(0,r.useState)(0),Q=(0,g.Z)(z,2),Y=Q[0],J=Q[1],X=(0,r.useState)(0),K=(0,g.Z)(X,2),$=(K[0],K[1]),ee=(0,r.useState)(-1),te=(0,g.Z)(ee,2),ne=te[0],re=te[1];r.useEffect((function(){var t=!1,r=e.getAllValidRows();return j(!0),W.Z.Addons.findAddons(r,n.hotelID).then((function(e){t||(j(!1),N(e))})),function(){j(!1),t=!0}}),[t.currentLanguage]);var ae=222,oe=ae*w.length>=f.width,le=(0,x.c0)((function(e){var t=e.down,n=(0,g.Z)(e.movement,1)[0];ie(t,n)})),ie=function(e,t){if(oe)if(e)c({x:Y+1.5*t});else{var n=Y+t,r=(w.length-1)*ae,a=0;if(n>0)a=0,re(-1);else if(n<-(r-f.width+ae))a=-(r-f.width+ae),re(1);else{var o=-n/ae,l=n%ae>-111?Math.floor(o):Math.ceil(o);a=-l*ae,$(l),re(0)}c({x:a}),J(a)}};return r.createElement(R.Z,{open:!V&&0!==(null==w?void 0:w.length)||(null==n?void 0:n.showAddonLoader)},r.createElement("div",{className:"u-pad-bottom--heavy "},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},k(u.W.Step.Confirmation.AdditionalOfferings))),V&&null!=n&&n.showAddonLoader?r.createElement(M.Z,null):0===(null==w?void 0:w.length)?r.createElement("div",null,r.createElement(h.ZP,{color:y.I.DarkGrey},"Sorry, there are currently no additional offerings available.")):r.createElement("div",{className:"additional-offers"+(w.length>2?"":" --wide"),ref:d},oe&&r.createElement("div",{className:"additional-offers--navigation"},r.createElement(E.ZP,{icon:E.Tu.ArrowLeft2,onClick:function(){ie(!1,ae)},color:-1===ne?y.I.DarkGrey:y.I.White,backgroundColor:y.I.Navy,borderRadius:"round",size:"24px"}),r.createElement(E.ZP,{icon:E.Tu.ArrowRight2,onClick:function(){ie(!1,-222)},color:1===ne?y.I.DarkGrey:y.I.White,backgroundColor:y.I.Navy,borderRadius:"round",size:"24px"})),r.createElement("div",{className:"additional-offers--track-container"},r.createElement(C.animated.div,(0,v.Z)({className:"additional-offers--track"},le(),{style:{left:i}}),w.map((function(t,n){return r.createElement(b,{selected:!!e.getRowForAddon(t),key:n,addon:t,cardClicked:function(){F(!0),U(t)}})}))))),r.createElement(I,{isOpen:q&&!!O,addon:O,basketAddonRow:e.getRowForAddon(O),onClose:function(){F(!1)}})))}var D=n(7933),q=n(7484);function F(e){var t=(0,r.useState)(e.endTimeDate.diff(q(),"second")),n=(0,g.Z)(t,2),a=n[0],o=n[1];return(0,r.useEffect)((function(){var t=!1,n=setTimeout((function(){t||(a>0?o((function(e){return e-1})):(e.onEnd&&e.onEnd(),t=!0,clearTimeout(n)))}),1e3);return function(){t=!0,clearTimeout(n)}}),[a]),(0,r.useMemo)((function(){var e=[Math.floor(a/60/60),Math.floor(a/60%60),Math.floor(a%60)];return r.createElement(r.Fragment,null,e.map((function(e){return e.toString().padStart(2,"0")})).join(":"))}),[a])}var G=n(4544);function L(e){var t=(0,r.useState)(!1),n=(0,g.Z)(t,2),o=n[0],l=n[1];return r.createElement(D.ZP,{type:D.NK.Accent1},r.createElement("div",{className:"u-flex w-100 flex-wrap align-items-center"},r.createElement("div",null,r.createElement(h.ZP,null,r.createElement("strong",null,"Your room is")),r.createElement(h.ZP,null,r.createElement("strong",null,"being held for"))),r.createElement("div",{className:o?"a-flash":""},r.createElement(a.Z,{size:"large",bold:!0,color:y.I.White},r.createElement(F,{endTimeDate:e.endDate,onEnd:function(){G.ZP.instance.sendInteraction("Countdown End Seen",G.s_.LINK,G._J.GUEST_DETAILS),l(!0)}})))))}var O,U=n(4511),B=n(5400),H=n(6337),V=n(5032),j=n(5861),z=n(4687),Q=n.n(z),Y=n(7536),J=n(5987),X=n(4942),K=n(5993),$=n(1432),ee=n(5762),te=n(3261),ne=n(6604),re=n(1248);!function(e){e.Forename="Forename",e.Surname="Surname",e.Email="Email",e.Phone="Phone",e.Address="Address",e.City="City",e.PostCode="PostCode",e.Country="Country"}(O||(O={}));var ae=n(9024),oe=n(7972),le=n(6431),ie=["ref","onChange"],ce=function(){var e=(0,Y.Gc)(),t=e.register,n=e.formState,o=e.control,l=e.watch,i=e.getValues,s=e.setValue,m=(0,r.useContext)(A.hy),d=m.getAllValidRows(),f=m.basketAddonRows,b=(0,Y.Dq)({control:o,name:"userProfiles"}),C=b.update,Z=b.fields,x=l(["copyCheckBox","paymentMethod"]),k=(0,g.Z)(x,2),S=k[0],P=k[1],w=n.errors,N=(0,p.$)().t,I=(0,r.useContext)(A.P0).roomstayMember;(0,r.useEffect)((function(){var e;null===(e=w.userProfiles)||void 0===e||e.forEach((function(e,t){w.userProfiles[t]&&(T[t]=!0)})),_(T.slice(0))}),[w.userProfiles,S]),(0,r.useEffect)((function(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return 0===e?t:""},t=d.map((function(t,n){var r,a,o,l,i;return i={},(0,X.Z)(i,O.Forename,e(n,null==I?void 0:I.forename)),(0,X.Z)(i,O.Surname,e(n,null==I?void 0:I.surname)),(0,X.Z)(i,O.Email,e(n,null==I?void 0:I.email)),(0,X.Z)(i,O.Phone,e(n,null==I?void 0:I.phoneNumber)),(0,X.Z)(i,O.Address,e(n,null==I||null===(r=I.address)||void 0===r?void 0:r.address)),(0,X.Z)(i,O.City,e(n,null==I||null===(a=I.address)||void 0===a?void 0:a.city)),(0,X.Z)(i,O.PostCode,e(n,null==I||null===(o=I.address)||void 0===o?void 0:o.zip)),(0,X.Z)(i,O.Country,e(n,null==I||null===(l=I.address)||void 0===l?void 0:l.country)),i}));s("userProfiles",t),s("copyCheckBox",(null==d?void 0:d.length)&&d.length>1)}),[I,null==d?void 0:d.length]);var W=(0,r.useState)(d.map((function(e,t){return 0===t}))),M=(0,g.Z)(W,2),T=M[0],_=M[1],q=function(e,t){return function(e){G.ZP.instance.sendInteraction(t,G.s_.FORM_FIELD,G._J.GUEST_DETAILS)}};return(0,r.useEffect)((function(){S&&Z.forEach((function(e,t){0!==t&&C(t,i("userProfiles.0"))}))}),[S]),(0,r.useEffect)((function(){var e=l((function(e,t){var n=t.name;"change"===t.type&&n.includes("userProfiles")&&"0"===n.split(".")[1]&&e.copyCheckBox&&Z.map((function(e,t){0!==t&&C(t,i("userProfiles.0"))}))})).unsubscribe;return function(){e()}}),[Z]),(0,r.useEffect)((function(){G.ZP.instance.sendCheckoutView(d,f)}),[]),r.createElement(r.Fragment,null,Z.map((function(e,l){var i,s=function(e){return function(e,t){return"userProfiles.".concat(t,".").concat(e)}(e,l)},m=function(e){var t;return!w.userProfiles||S&&l>=1?null:null!==(t=w.userProfiles[l])&&void 0!==t&&t[e]?"error":"success"},f=d[l],p=S&&l>=1||P===oe.EBookingPaymentMethod.Planpay;return r.createElement("div",{key:e.id},r.createElement("div",{className:0===l?"":"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom",onClick:function(){0!==l&&function(e,t){T.splice(e,1,t),_(T.slice(0))}(l,!T[l])}},r.createElement("div",{className:"u-flex u-marg-bottom align-items-center"},r.createElement(a.Z,{bold:!0},N(u.W.Misc.Room)," ",l+1),0!==l&&r.createElement(E.ZP,{icon:T[l]?E.Tu.ArrowDown2:E.Tu.ArrowUp2,color:y.I.Grey})),f&&r.createElement("div",{className:"u-marg-bottom"},r.createElement(h.ZP,null,r.createElement("strong",{className:"u-block@l-"},f.getRoom().name)," for"," ",te.Z.pluralWithDictAndCount(f.getAdults(),u.W.Step.Date.Adult,N),", ",te.Z.pluralWithDictAndCount(f.getChildren(),u.W.Step.Date.Child,N)),r.createElement("div",{className:"step-one-status--dates u-flex justify-content-start"},r.createElement(h.ZP,{type:h.yG.Small,color:y.I.Accent},r.createElement("strong",null,f.getStartDate().format("ddd, MMM D"))),r.createElement(E.ZP,{icon:E.Tu.ArrowRight2,size:"18px"}),r.createElement(h.ZP,{type:h.yG.Small,color:y.I.Accent},r.createElement("strong",null,f.getEndDate().format("ddd, MMM D"))))),(null===(i=w.userProfiles)||void 0===i?void 0:i[l])&&n.submitCount>=1&&(0===l||!S)&&Object.values(w.userProfiles[l]).map((function(e,t){return r.createElement(R.Z,{key:t,open:!0},r.createElement("div",{className:"u-flex"},r.createElement(D.ZP,{icon:E.Tu.Error,type:D.NK.Danger,noMargin:t===Object.keys(w.userProfiles[l]).length-1},r.createElement(h.ZP,{type:h.yG.Small},null==e?void 0:e.message))))}))),r.createElement("div",{className:"room-contact-details--row",style:{maxHeight:T[l]?"":0}},r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,N(u.W.Step.Confirmation.ContactInfo)))),r.createElement(K.Z,{dimensions:"2/2"},r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Forename)+" *",wide:!0,required:!0,validationStatus:m(O.Forename)},t(s(O.Forename),{onChange:q(s(O.Forename),"Forename - Contact Info"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Forename)})}}))),r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Surname)+" *",wide:!0,required:!0,validationStatus:m(O.Surname)},t(s(O.Surname),{onChange:q(s(O.Surname),"Surname - Contact Info"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Surname)})}})))),r.createElement(K.Z,{dimensions:"2/2"},r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Email)+" *",wide:!0,validationStatus:m(O.Email),required:!0},t(s(O.Email),{onChange:q(s(O.Email),"Email - Contact Info"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Email)})},pattern:{value:le.CU,message:N(u.W.Step.Confirmation.Inputs.InvalidEmail)}}))),re.Z.isActive()?r.createElement(Y.Qr,{control:o,name:s(O.Phone),rules:{required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.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 r.createElement(ne.Z,(0,v.Z)({disabled:p,validationStatus:m(O.Phone)},t,{onChange:function(e){t.onChange(e),q(s(O.Phone),"Phone - Contact Info")(e)}}))}}):r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Phone)+" *",wide:!0,required:!0,validationStatus:m(O.Phone)},t(s(O.Phone),{onChange:q(s(O.Phone),"Phone - Contact Info"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Phone)})}}))))),r.createElement("div",{className:""},r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,N(u.W.Step.Confirmation.Address)))),r.createElement(K.Z,{dimensions:"3/1"},r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Address)+" *",wide:!0,required:!0,validationStatus:m(O.Address)},t(s(O.Address),{onChange:q(s(O.Address),"Address - Address"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Address)})}}))),r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.City)+" *",wide:!0,required:!0,validationStatus:m(O.City)},t(s(O.City),{onChange:q(s(O.City),"City - Address"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.City)})}})))),r.createElement(K.Z,{dimensions:"2/2"},r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.PostCode)+" *",wide:!0,required:!0,validationStatus:m(O.PostCode)},t(s(O.PostCode),{onChange:q(s(O.PostCode),"PostCode - Address"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.PostCode)})}}))),r.createElement(Y.Qr,{control:o,name:s(O.Country),rules:{required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Country)})}},render:function(e){var t=e.field,n=(t.ref,t.onChange),a=(0,J.Z)(t,ie);return r.createElement(ee.Z,(0,v.Z)({disabled:p,validationStatus:m(O.Country),onChange:function(e){n(e),q(s(O.Country),"Country - Address")(e)}},a))}})))),r.createElement(c.Z,null)),Z.length>1&&0===l?r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement(ae.Z,(0,v.Z)({label:N(u.W.Step.Confirmation.ApplySameInfoToOtherRooms)},t("copyCheckBox")))):null)})))};function se(){var e=(0,p.$)().t,t=(0,T.WP)().hotel;return r.createElement(r.Fragment,null,r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},e(u.W.Step.Confirmation.Policies))),r.createElement("div",{className:"u-marg-bottom"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-6 col-md-3"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,e(u.W.Misc.CheckIn))),r.createElement(h.ZP,{type:h.yG.Small},e(u.W.Misc.After)," ",t.checkInTime)),r.createElement("div",{className:"col-6 col-md-3"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,e(u.W.Misc.CheckOut))),r.createElement(h.ZP,{type:h.yG.Small},e(u.W.Misc.Before)," ",t.checkOutTime)))))}var ue=n(8029),me=n(2364),de=n(5112);function fe(){return r.createElement(de.Z,{title:"Shop without worries! This site is protected by high level encryption, to ensure every purchase is always safe & secure"},r.createElement("img",{src:me.Z.getAssetUrl()+"assets/img/ssl-secure-connection.png"}))}var pe=n(3409);function ve(e){var t,n,o=(0,r.useContext)(A.hy),l=(0,r.useState)(q().add(14,"minute")),i=(0,g.Z)(l,2),s=i[0];i[1],(0,r.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 u=r.createElement("div",{className:"u-flex"},r.createElement(w.Z,{isText:!0,size:"small",icon:E.Tu.ArrowLeft,onClick:e.onClose,isLoading:e.isLoading},"Take me back"),r.createElement(w.Z,{primary:!0,filled:!0,icon:E.Tu.ArrowRight,iconPosition:"right",onClick:e.onProceed,isLoading:e.isLoading},"Continue with reservation"));return r.createElement(k.Z,{open:!!e.differences.length||!(null===(n=e.warnings)||void 0===n||!n.length),title:"Your total price has Changed!",mobileFooter:u,desktopFooter:r.createElement("div",{className:"u-marg-heavy u-marg@m-"},u),size:k.g.Small,alignCenter:!0},r.createElement("div",{className:"u-marg-heavy u-marg@m-"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-md-8"},r.createElement(h.ZP,{type:h.yG.Small},"We apologize for any inconvenience, but the price for your selected reservation has changed during your checkout, please confirm that you accept the new total shown below.")),r.createElement("div",{className:"col-md-4"},r.createElement(pe.ZP,{icon:E.Tu.Time,type:pe.Rm.Primary},r.createElement("span",{className:"u-marg-right--light"},"Reverts in"),r.createElement(F,{endTimeDate:s})))),r.createElement(c.Z,null),!(!e.differences||!e.differences.length)&&e.differences.map((function(e){var t=o.getAllValidRows().find((function(t){return t.getID()===e.id}));return r.createElement("div",{key:e.id},!!t&&r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(a.Z,null,t.getRoom().name)),r.createElement(h.ZP,null,t.getRate().name)),r.createElement("div",{className:"u-flex u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Body},r.createElement("strong",null,"Displayed price:")),r.createElement(h.ZP,{color:y.I.Alert},r.createElement(N.Z,null,e.totalPrice.before))),r.createElement("div",{className:"u-flex"},r.createElement(h.ZP,{type:h.yG.Body},r.createElement("strong",null,"Actual price:")),r.createElement(h.ZP,{color:y.I.Success},r.createElement(N.Z,null,e.totalPrice.after))),r.createElement(c.Z,null))})),!(!e.warnings||!e.warnings.length)&&e.warnings.map((function(e,t){return r.createElement(h.ZP,{key:t},e)}))))}var ge=n(6550),Ee=n(1625);function he(){var e=(0,r.useContext)(A.hy),t=(0,p.$)().t,n=t(u.W.Misc.Room);return(0,r.useMemo)((function(){var a={},o=e.getAllValidRows(),l=0;return o.length>1?o.forEach((function(e){l++;var t=e.getRate(),n=a["".concat(t.cancelPolicyCode,"-").concat(t.guaranteeCode)];n||(n=a["".concat(t.cancelPolicyCode,"-").concat(t.guaranteeCode)]={rooms:[]}),n.rooms.push({index:l,room:e})})):a[0]={rooms:[{index:1,room:o[0]}]},r.createElement("div",{className:"u-marg-bottom"},Object.values(a).map((function(e,a){var o=e.rooms[0];return r.createElement("div",{className:"u-marg-bottom--heavy",key:a},r.createElement("div",{className:"u-marg-bottom"},e.rooms.map((function(e){return r.createElement(h.ZP,{key:e.index,type:h.yG.Small},r.createElement("strong",null,n," ",e.index)," ",e.room.getRoom().name," - ",e.room.getRate().name)}))),r.createElement("div",{className:"u-marg-bottom"},r.createElement(h.ZP,{type:h.yG.Small,bold:!0},t(u.W.Misc.GuaranteePolicy)),r.createElement(h.ZP,{type:h.yG.Small,preformatted:!0},r.createElement("span",{dangerouslySetInnerHTML:{__html:o.room.getRate().getGuaranteePolicy()}}))),r.createElement(h.ZP,{type:h.yG.Small,bold:!0},t(u.W.Misc.CancellationPolicy)),r.createElement(h.ZP,{type:h.yG.Small,preformatted:!0},r.createElement("span",{dangerouslySetInnerHTML:{__html:o.room.getRate().getCancellationPolicy()}})))})))}),[e.currentBasketRows])}var ye=n(6222),be=function(){var e,t=(0,p.$)().t,n=(0,T.WP)().hotel,o=(0,Y.Gc)(),l=o.control,i=null===(e=(0,o.getFieldState)("isPolicyConfirmed").error)||void 0===e?void 0:e.message;return r.createElement(r.Fragment,null,r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},t(u.W.Step.Confirmation.Acknowledgement))),r.createElement("div",null,r.createElement(ae.Z,{label:t(u.W.Step.Confirmation.EmailSpecialOffers)})),r.createElement("div",{className:"u-marg-top--light"},r.createElement(Y.Qr,{control:l,render:function(e){var a=e.field,o=a.value,l=a.onChange,i=a.ref;return r.createElement(ae.Z,{checked:o,onChange:l,ref:i,label:r.createElement("div",null,t(u.W.Step.Confirmation.IHaveUnderstoodPrivacyPolicy)," ",r.createElement("a",{style:{color:y.I.Accent},className:"--underlined",href:n.privacyPolicyUrl,target:"_blank",rel:"noreferrer"},t(u.W.Step.Confirmation.PrivacyPolicy)))})},name:"isPolicyConfirmed",rules:{required:{value:ye.Z.isActive(),message:t(u.W.Step.Confirmation.PrivacyPolicyError)}}})),r.createElement(R.Z,{open:!!i},r.createElement("div",{className:"u-flex u-marg-top"},r.createElement(D.ZP,{type:D.NK.Danger,icon:E.Tu.Error},r.createElement(h.ZP,{type:h.yG.Small},i)))))},Ce=n(4707),Ze=n(2912),xe=n(8016),ke=n(3423),Se=n(9747),Pe=n(514),we=function(){return r.createElement("div",null,r.createElement("div",{className:"row no-gutters"},r.createElement("div",{className:"col-md-4"},r.createElement("div",{className:"d-flex justify-content-center"},r.createElement(Se.Z,{type:"text",w:"md",h:"sm",blink:!0})),r.createElement(Se.Z,{type:"text",h:"md",blink:!0}),r.createElement(Se.Z,{type:"text",h:"md",blink:!0})),r.createElement("div",{className:"col-md-4"},r.createElement("div",{className:"d-flex justify-content-center"},r.createElement(Se.Z,{type:"text",w:"md",h:"sm",blink:!0})),r.createElement(Se.Z,{type:"text",h:"sm",blink:!0}),r.createElement(Se.Z,{type:"text",h:"sm",blink:!0}),r.createElement(Se.Z,{type:"text",h:"sm",blink:!0})),r.createElement("div",{className:"col-md-4"},r.createElement("div",{className:"d-flex justify-content-center"},r.createElement(Se.Z,{type:"text",w:"md",h:"sm",blink:!0})),r.createElement("div",{className:"d-flex justify-content-center u-marg-top u-marg-bottom"},r.createElement(Se.Z,{type:"text",w:"xs",h:"sm",blink:!0,noMarg:!0})),r.createElement("div",{className:"d-flex justify-content-center"},r.createElement(Se.Z,{type:"text",w:"md",h:"sm",blink:!0,noMarg:!0})),r.createElement("div",{className:"d-flex justify-content-center u-marg-top u-marg-bottom"},r.createElement(Se.Z,{type:"text",w:"xs",h:"sm",blink:!0,noMarg:!0})))),r.createElement("div",{className:"row no-gutters"},r.createElement("div",{className:"col-md-4"},r.createElement(Se.Z,{type:"text",h:"lg",blink:!0})),r.createElement("div",{className:"offset-md-4 col-md-4 d-flex align-items-center"},r.createElement(Se.Z,{type:"text",w:"xl",h:"sm",blink:!0}))))},Ne=function(){var e,t,n=(0,r.useContext)(A.hy),a=(0,Pe.W)().hotel,o=null===(e=n.reservationData)||void 0===e||null===(t=e.payment)||void 0===t?void 0:t.planpay;return(0,r.useLayoutEffect)((function(){null!=o&&o.id&&ke.MQ.checkout.refresh()}),[null==o?void 0:o.id]),(0,r.useEffect)((function(){var e;ke.MQ.init({environment:null==a||null===(e=a.planpay)||void 0===e?void 0:e.env})}),[a]),r.createElement(r.Fragment,null,r.createElement("div",{className:"planpay-payment-container","data-planpay-checkout-id":null==o?void 0:o.id,style:{minHeight:"204px",display:"flex",justifyContent:"flex-end",flexDirection:"column"}},r.createElement(we,null)))},Ae=n(258),Ie=(0,r.createContext)({}),We=function(){var e,t=(e=(0,ge.TH)().search,r.useMemo((function(){return new URLSearchParams(e)}),[e])),n=r.useMemo((function(){return new URLSearchParams(window.location.search)}),[window.location.search]),a=(0,r.useMemo)((function(){return["paymentMethod","roomstayId","planpay_checkout_id"].map((function(e){return n.get(e)||t.get(e)}))}),[t]),o=(0,g.Z)(a,3);return{queryPaymentMethod:o[0],queryRoomstayId:o[1],queryPlanpayCheckoutId:o[2]}},Re={VI:"visa",MC:"mastercard",JC:"jcb",DS:"dinersclub",AX:"amex",DN:"dinersclub",UP:"unionpay"},Me=n(1291),Te=n(9527),_e=n(3733);function De(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 qe=function(e){var t=(0,Te.K)().user,n=(0,r.useContext)(A.P0).cards,a=(0,r.useState)(),o=(0,g.Z)(a,2),l=o[0],i=o[1];return(0,r.useEffect)((function(){if(t.defaultCard){var e,r=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 De(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)?De(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(r.s();!(e=r.n()).done;){var a=e.value;if(t.defaultCard===a.cardId)return void i(t.defaultCard)}}catch(e){r.e(e)}finally{r.f()}}n.length>0&&i(n[0].cardId)}),[t,n]),r.createElement(r.Fragment,null,r.createElement("div",null,n.map((function(e){return r.createElement(_e.c,{selected:l===e.cardId,onClick:function(){var t;t=e.cardId,i(t)},item:e})}))))},Fe=n(4184),Ge=function(e){var t,n=e.isCurrent,a=e.isDefault,o=e.style,l=(0,T.WP)().hotel,i=(null!==(t=null==l?void 0:l.paymentCardTypes)&&void 0!==t?t:[]).map((function(e){return Re[e]?{name:Re[e],status:!1}:null})).filter((function(e){return e}));return r.createElement("div",{className:"u-flex flex-row justify-content-start"},Object.keys(i).map((function(e){return r.createElement("div",{key:e,id:i[e].name,className:Fe("cc-icon u-flex u-marg-right--light",{"-current":null==n?void 0:n(e),"-default":null==a?void 0:a(e)}),style:Object.assign({backgroundImage:"url('".concat(me.Z.getAssetUrl()+"assets/img/"+i[e].name+".png","')"),backgroundSize:"contain"},o||{})})})))};function Le(e,t){var n,a=(0,T.WP)().hotel,o=(0,T.Kb)(),l=(0,r.useState)({}),i=(0,g.Z)(l,2),c=i[0],s=i[1],m=(0,p.$)().t,d=(0,T.b)().focusElement,f={fontSize:"13px",lineHeight:"18px","&::placeholder":{color:"#8B8F9A",opacity:1}},v=(0,Me.c)([{label:m(u.W.Step.Confirmation.Inputs.CardNumber),name:"credit-card",type:"card-number",vgsProps:{autoComplete:["cc-number"],successColor:"#4F8A10",errorColor:"#D8000C",showCardIcon:!1,placeholder:m(u.W.Step.Confirmation.Inputs.CardNumber)+" *",validations:["required","validCardNumber"],css:f}},{label:m(u.W.Step.Confirmation.Inputs.NameOnCard),name:"card-name",type:"text",vgsProps:{validations:["required"],css:f,placeholder:m(u.W.Step.Confirmation.Inputs.NameOnCard)+" *"}},{label:m(u.W.Step.Confirmation.Inputs.CardExpiry),name:"expiration-date",type:"card-expiration-date",vgsProps:{placeholder:m(u.W.Step.Confirmation.Inputs.CardExpiry)+" *",validations:["required","validCardExpirationDate"],css:f}},{label:m(u.W.Step.Confirmation.Inputs.SecurityCode),name:"security-code",type:"card-security-code",vgsProps:{placeholder:m(u.W.Step.Confirmation.Inputs.SecurityCode)+" *",validations:["required","validCardSecurityCode"],css:f}}]),y=(0,g.Z)(v.fields,4),b=y[0],C=y[1],Z=y[2],x=y[3],k=(v.triggerFieldUpdate,v.vgsForm),S=function(e){var t={};Object.keys(e).forEach((function(n){var r="";switch(n){case"credit-card":r="Credit Card";break;case"expiration-date":r="Expiration Date";break;case"security-code":r="Security Code";break;default:r="Card Name"}t[n]=r+" "+e[n].errorMessages[e[n].errorMessages.length-1]})),s(t)};(0,r.useEffect)((function(){var e,t;c&&0!==Object.keys(c).length&&null!=b&&null!==(e=b.ref)&&void 0!==e&&e.current&&d(null==b||null===(t=b.ref)||void 0===t?void 0:t.current)}),[c]),(0,r.useImperativeHandle)(t,(function(){return{getTokenizedCode:function(){return new Promise((function(e,t){k?k.submit("/post",{serializer:"deep",methods:"POST"},(function(n,r){var a=JSON.parse(r.data),o=a["expiration-date"].match(/^(\d+)\s*\/\s*(\d+)$/);if(!o||o[1].length>2||4!==o[2].length&&2!==o[2].length)return S({"expiration-date":{errorMessages:["Invalid - it must be in the format MM / YY or MM / YYYY"]}}),void t("invalid expiration date");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:b.state.cardType};e(i)}),(function(e){S(e),t(e)})):console.error("VGS not on element, problem has occurred")}))}}}));var P=(0,r.useRef)(null),w=(null!==(n=null==a?void 0:a.paymentCardTypes)&&void 0!==n?n:[]).map((function(e){return Re[e]?{name:Re[e],status:!1}:null})).filter((function(e){return e}));return r.createElement("div",null,r.createElement("div",null,!!o.user&&r.createElement(qe,{onCardSelected:function(e){}})),r.createElement("div",null,["credit-card","card-name","expiration-date","security-code"].map((function(e){var t=c[e];return r.createElement(R.Z,{open:!!t,key:e},r.createElement("div",{className:"u-flex"},r.createElement(D.ZP,{type:D.NK.Danger,icon:E.Tu.Error},r.createElement(h.ZP,{type:h.yG.Small},t))))})),r.createElement("div",{className:"u-marg-bottom"},r.createElement(Ge,{isCurrent:function(e){return null!==b.state.cardType&&w[e].name===b.state.cardType},isDefault:function(e){return null===b.state.cardType}})),r.createElement("form",{ref:P},r.createElement(K.Z,{dimensions:"2/2"},r.createElement("div",{className:b.getClasses(),ref:b.ref}),r.createElement(K.Z,{dimensions:"2/2"},r.createElement("div",{className:Z.getClasses(),ref:Z.ref}),r.createElement("div",{className:x.getClasses(),ref:x.ref}))),r.createElement(K.Z,{dimensions:"1"},r.createElement("div",{className:C.getClasses(),ref:C.ref})))))}var Oe=(0,r.forwardRef)(Le),Ue=n(4166),Be=n.n(Ue),He=function(e){var t,n=e.checked,a=e.onChange,o=e.disabled,l=e.label,i=e.renderContent,c=e.className,s=(0,r.useMemo)((function(){return Math.random().toString()}),[]);return r.createElement("label",{htmlFor:s,className:Fe(Be().root,c,(t={},(0,X.Z)(t,Be().disabled,o),(0,X.Z)(t,Be().checked,n),t))},r.createElement("div",{className:Be().header},r.createElement("input",{className:Be().input,hidden:!0,disabled:o,id:s,onChange:a,type:"radio",checked:n}),r.createElement("div",{className:Be().design}),r.createElement("div",{className:Be().text},l)),r.createElement("div",null,i&&n&&r.createElement("div",{className:Be().content},i())))},Ve=n(6928),je=n.n(Ve),ze=function(e){var t=e.options,n=e.value,a=e.onChange;return r.createElement("div",{className:je().root},t.map((function(e){var t=e.value,o=e.label,l=e.disabled,i=e.disabledReason,c=e.renderContent,s=r.createElement(He,{className:je().item,key:t,checked:t===n,onChange:function(){a(t)},label:o,disabled:l,renderContent:function(){return r.createElement(R.Z,{open:!0},c())}});return l&&i?r.createElement(de.Z,{title:i},s):s})))};function Qe(){var e=(0,r.useState)({differences:[],warnings:[]}),t=(0,g.Z)(e,2),n=t[0],o=t[1],l=(0,r.useState)(""),i=(0,g.Z)(l,2),s=i[0],m=i[1],d=(0,p.$)().t,f=We(),b=f.queryPaymentMethod,C=f.queryRoomstayId,Z=f.queryPlanpayCheckoutId,x=(0,A.dF)(),k=(0,Y.Gc)(),S=(0,r.useContext)(Ie),P=S.isBackFromPlanpay,N=S.isLoading,I=S.apiErrors,W=S.clearApiErrors,R=S.book,_=S.rollbackReservation,F=S.commitReservation,G=(0,A.Kc)(),L=(0,r.useRef)(null),O=(0,ge.k6)(),U=(0,T.WP)().hotel,B=function(){var e=(0,j.Z)(Q().mark((function e(t){var n,r,a;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=t,e.next=e.t0===oe.EBookingPaymentMethod.Planpay?3:10;break;case 3:return(r=new URLSearchParams(window.location.search)).set("roomstayId","{{rsId}}"),r.set("session",x.sessionProvider.getCurrentSessionID().toString()),r.set("paymentMethod",oe.EBookingPaymentMethod.Planpay),a="".concat(window.location.origin).concat(window.location.pathname).concat(window.location.search,"#/step/confirmation/?").concat(r),n={Method:oe.EBookingPaymentMethod.Planpay,PlanpayCheckoutId:Z,RedirectUrl:a},e.abrupt("break",15);case 10:return e.t1=oe.EBookingPaymentMethod.Card,e.next=13,L.current.getTokenizedCode();case 13:e.t2=e.sent,n={Method:e.t1,PaymentCard:e.t2};case 15:return e.abrupt("return",n);case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();(0,r.useEffect)((function(){var e,t=Object.values(oe.EBookingPaymentMethod).includes(b)?b:oe.EBookingPaymentMethod.Card;return k.setValue("paymentMethod",t),K(t),P&&(C===(null===(e=G.reservationData)||void 0===e?void 0:e.roomstayId)?H(t):_()),function(){P||_()}}),[]);var H=function(){var e=(0,j.Z)(Q().mark((function e(t){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,F(G.reservationData);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),V=k.watch("paymentMethod");x.engine.getSessionProvider().getSession().then((function(e){m(e.source)}));var z=function(){var e=(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:O.push(Ze.Z.getStepUrl());case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),J=function(){var e=(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,X(V,function(){var e=(0,j.Z)(Q().mark((function e(t){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",F(t));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());case 2:return e.abrupt("return",!1);case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),X=function(){var e=(0,j.Z)(Q().mark((function e(t,n){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R((0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",B(t));case 1:case"end":return e.stop()}}),e)}))),(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,t!==oe.EBookingPaymentMethod.Card){e.next=4;break}return e.next=4,L.current.getTokenizedCode();case 4:return e.abrupt("return",!0);case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",!1);case 10:case"end":return e.stop()}}),e,null,[[0,7]])}))),(function(e){e&&o(e)}),n);case 2:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),K=function(){var e=(0,j.Z)(Q().mark((function e(t){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t===oe.EBookingPaymentMethod.Planpay){e.next=3;break}return e.next=3,_();case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return r.createElement("form",null,P?r.createElement(M.Z,null):r.createElement(r.Fragment,null,r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(a.Z,{bold:!0},d(u.W.Step.Confirmation.GuestDetails))),r.createElement(h.ZP,{type:h.yG.Small,color:y.I.Success},r.createElement("strong",null,d(u.W.Step.Confirmation.AlmostDone,{required:"*"})))),r.createElement(ce,null),"inline"===s?r.createElement(D.ZP,{type:D.NK.Accent2,heavyPadding:!0},r.createElement("div",{className:"u-flex u-w-100 flex-wrap flex-xl-nowrap"},r.createElement("div",null,r.createElement(h.ZP,{color:y.I.Accent,bold:!0},d(u.W.Step.Confirmation.WantMoreRooms)),r.createElement(h.ZP,{color:y.I.Navy},d(u.W.Step.Confirmation.YouCanAddAndEditRooms))),r.createElement("div",{className:"d-flex align-items-center u-marg-top@xl-"},r.createElement(w.Z,{filled:!0,primary:!0,icon:E.Tu.Add,iconPosition:"left",onClick:z},d(u.W.Step.Confirmation.AddMoreRooms))))):r.createElement(r.Fragment,null),xe.Z.isActive()&&r.createElement(r.Fragment,null,r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},"Travel Agent")),r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,d(u.W.Step.Confirmation.Inputs.IATANumber)))),r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Small},d(u.W.Step.Confirmation.Inputs.IATANumberGuide))),r.createElement($.Z,(0,v.Z)({placeholder:d(u.W.Step.Confirmation.Inputs.IATANumber),wide:!0},k.register("IATANumber")))),r.createElement(c.Z,null)),r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},d(u.W.Step.Confirmation.Comments))),r.createElement(Ae.Z,(0,v.Z)({disabled:V===oe.EBookingPaymentMethod.Planpay,placeholder:d(u.W.Step.Confirmation.Inputs.EnterSpecialRequestsHere)},k.register("comment")))),r.createElement(c.Z,null),r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},d(u.W.Step.Confirmation.PaymentInformation))),r.createElement(Y.Qr,{control:k.control,name:"paymentMethod",render:function(e){var t=e.field,n=t.onChange,a=t.value;return r.createElement(r.Fragment,null,r.createElement("div",null,r.createElement(ze,{options:[{value:oe.EBookingPaymentMethod.Card,label:r.createElement("div",{className:"u-flex u-flex-align-center"},r.createElement("div",{className:"u-marg-right--light"},d(u.W.Step.Confirmation.CardLabel)),r.createElement(Ge,{isDefault:function(e){return!0},style:{height:16,width:24,borderRadius:2.5,border:"0.5px solid #DFE1E5",marginRight:4}})),renderContent:function(){return r.createElement(Oe,{ref:L})}},{value:oe.EBookingPaymentMethod.Planpay,label:r.createElement("div",{className:"u-flex u-flex-align-center"},r.createElement("div",null,d(u.W.Step.Confirmation.PlanpayLabel)),r.createElement("div",{className:"u-flex u-flex-align-center u-marg-left--light",style:{borderRadius:"24px",overflow:"hidden"}},r.createElement("img",{height:16,src:me.Z.getImageAssetUrl("planpay-logo-small.svg"),alt:""})),!k.formState.isValid&&r.createElement(h.ZP,{color:y.I.Graphite,className:"u-flex u-flex-align-center",style:{color:"#313131",fontSize:10}},r.createElement(E.ZP,{color:y.I.DarkGrey,icon:E.Tu.Info,className:"u-marg-right--lighter u-marg-left--light"}),d(u.W.Step.Confirmation.PlanpayHelperText))),disabled:!k.formState.isValid,disabledReason:k.formState.isValid?"":"You must fill all the above details before proceeding with Planpay",renderContent:function(){return r.createElement(Ne,null)}}].filter((function(e){var t,n=e.value;return null==U||null===(t=U.paymentMethods)||void 0===t?void 0:t.includes(n)})).filter((function(e){var t;return e.value!==oe.EBookingPaymentMethod.Planpay||q(G.startDate).diff(q(),"day")>(null==U||null===(t=U.planpay)||void 0===t?void 0:t.minDaysShowPlanpay)})),value:a,onChange:function(){var e=(0,j.Z)(Q().mark((function e(t){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n(t),e.next=3,K(t);case 3:if(t!==oe.EBookingPaymentMethod.Planpay){e.next=6;break}return e.next=6,X(t);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()})))}}),r.createElement("div",{className:"u-marg-top u-flex align-items-center"},r.createElement("div",{className:"u-flex align-items-center justify-content-start"},r.createElement(E.ZP,{icon:E.Tu.Lock,color:y.I.Success}),r.createElement("div",{className:"u-marg-left--light"},r.createElement(h.ZP,{type:h.yG.Small,color:y.I.Success},r.createElement("strong",null,"Secured")))),r.createElement(fe,null))),r.createElement(c.Z,null),r.createElement(se,null),r.createElement("div",{className:"u-pad-top--light u-marg-bottom"},r.createElement(he,null)),ye.Z.isActive()&&r.createElement(r.Fragment,null,r.createElement(c.Z,null),r.createElement("div",null,r.createElement(be,null))),r.createElement("div",{className:"u-flex u-marg-top--heavy justify-content-end"},r.createElement(ue.Z,{disabled:V===oe.EBookingPaymentMethod.Planpay||N,text:d(u.W.Step.Confirmation.ConfirmReservation),history:null,isLoading:N,currentStep:Ce.Z,onClick:J}))),r.createElement(Ee.default,{open:!!I,onClose:W},r.createElement(h.ZP,null,I)),r.createElement(ve,{differences:n.differences,warnings:n.warnings,isLoading:N,onClose:(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,_();case 2:O.push(Ze.Z.getStepUrl());case 3:case"end":return e.stop()}}),e)}))),onProceed:(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(V!==oe.EBookingPaymentMethod.Planpay){e.next=4;break}o({differences:[],warnings:[]}),e.next=6;break;case 4:return e.next=6,F(G.reservationData);case 6:case"end":return e.stop()}}),e)})))}))}var Ye=n(9666),Je=n(3819),Xe=Ie.Provider,Ke=function(e){var t=e.children,n=We(),a=n.queryPaymentMethod,o=n.queryRoomstayId,l=n.queryPlanpayCheckoutId,i=(0,r.useState)(!1),c=(0,g.Z)(i,2),s=c[0],u=c[1],m=(0,r.useState)(""),d=(0,g.Z)(m,2),f=d[0],p=d[1],v=(0,Y.cI)({mode:"onChange"}),E=(0,r.useContext)(A.hy),h=E.getAllValidRows(),y=E.basketAddonRows,b=(0,T.WP)().hotel,C=function(e){return e.userProfiles.map((function(e){return{FirstName:e.Forename,LastName:e.Surname,Phone:e.Phone.replace(" ",""),Email:e.Email,Address:{Line1:e.Address,City:e.City,PostalCode:e.PostCode,Country:e.Country},MarketingOptIn:!1}}))},Z=function(){var e=(0,j.Z)(Q().mark((function e(t){var n;return Q().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=E.currentBasketRows[t].checkDiffFromReservation(e);r&&n.push(r)})),e.next=7;break;case 5:throw Ye.n_({level:Je.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)}}(),x=function(e,t,n,r){return function(){var a=(0,j.Z)(Q().mark((function a(o){var l,i,c,s;return Q().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(G.ZP.instance.sendInteraction("Complete Booking",G.s_.BUTTON,G._J.GUEST_DETAILS),u(!0),a.t0=!t,a.t0){a.next=7;break}return a.next=6,t();case 6:a.t0=a.sent;case 7:if(a.t0){a.next=11;break}return u(!1),a.abrupt("return");case 11:return a.next=13,e();case 13:return i=a.sent,a.prev=14,a.next=17,W.Z.Reservation.bookNow(h,C(o),i,y,o.comment,b.hotelID);case 17:return l=a.sent,E.booked(l),a.next=21,Z(l);case 21:(c=a.sent)?null==n||n(c):null==r||r(l),a.next=30;break;case 25:a.prev=25,a.t1=a.catch(14),console.log(a.t1),p(null!==(s=null===a.t1||void 0===a.t1?void 0:a.t1.Message)&&void 0!==s?s:"Unexpected error returned from the booking database."),u(!1);case 30:case"end":return a.stop()}}),a,null,[[14,25]])})));return function(e){return a.apply(this,arguments)}}()},k=!!l&&!!o&&!!a,S=function(e){var t;return null==e||null===(t=e.reservations)||void 0===t?void 0:t.map((function(e){return e.reservationNumber}))},P=function(){var e=(0,j.Z)(Q().mark((function e(t){var n,r;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:try{if(u(!0),t)if((n=S(t)).length)try{W.Z.Reservation.commit(n,t.itineraryNumber,b.hotelID,l).then((function(e){try{G.ZP.instance.sendReservationConfirmed(E.getAllValidRows(),E.basketAddonRows,e)}catch(e){Ye.Tb("Failed to read reservations from GTM code: "+JSON.stringify(e))}E.checkedOut(e)})).catch((function(e){console.log(e),p("Unexpected error")})).finally((function(){u(!1)}))}catch(e){p(null!==(r=null==e?void 0:e.Message)&&void 0!==r?r:"Unexpected error returned from the booking database.")}else p("Committing reservation failed due to an unexpected error"),A.qL.add({message:"Committing reservation failed due to an unexpected error"}),Ye.Tb("No reservation IDs found when attempting to commit: "+JSON.stringify(t))}catch(e){p("Failed to commit reservation"),console.log("Failed to commit reservation "),console.error(e),Ye.Tb(e)}case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),w=function(){var e=(0,j.Z)(Q().mark((function e(){var t;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(E.reservationData){e.next=2;break}return e.abrupt("return");case 2:if(e.prev=2,!(t=S(E.reservationData)).length){e.next=10;break}return u(!0),e.next=8,W.Z.Reservation.rollback(t,E.reservationData.itineraryNumber,b.hotelID);case 8:e.next=11;break;case 10:Ye.Tb("No reservation IDs found when attempting to rollback: "+JSON.stringify(E.reservationData));case 11:e.next=17;break;case 13:e.prev=13,e.t0=e.catch(2),console.log("Failed to rollback reservations"),Ye.Tb(e.t0);case 17:return e.prev=17,E.rollback(),u(!1),e.finish(17);case 21:case"end":return e.stop()}}),e,null,[[2,13,17,21]])})));return function(){return e.apply(this,arguments)}}(),N=function(){var e=(0,j.Z)(Q().mark((function e(t,n,r,a){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,v.handleSubmit(x(t,n,r,a))();case 2:case"end":return e.stop()}}),e)})));return function(t,n,r,a){return e.apply(this,arguments)}}();return r.createElement(Y.RV,v,r.createElement(Xe,{value:{book:N,commitReservation:P,rollbackReservation:w,isLoading:s,apiErrors:f,clearApiErrors:function(){return p("")},isBackFromPlanpay:k}},t))};function $e(){return r.createElement(Ke,null,r.createElement(Qe,null))}var et=function(){var e=(0,r.useContext)(A.g7),t=(0,r.useContext)(A.aN).currentStep,n=(0,r.useContext)(A.hy).currentBasketRows,v=(0,p.$)().t,g=(0,H.z)().raise;return(0,r.useEffect)((function(){var e=new V.z(n);g(e)}),[]),r.createElement("div",{className:"container"},r.createElement(m.default,null),r.createElement("div",{className:"row"+(e.screenSize>d.Z.ExtraLarge?" no-gutters":"")},r.createElement("div",{className:"col-md-7 col-xl-8"},e.screenSize>d.Z.Medium&&r.createElement(r.Fragment,null,r.createElement(i.rU,{to:o.Z.getPreviousStepUrl(t)},r.createElement(s.Z,null)),r.createElement("div",{className:"u-marg-top--light u-marg-bottom--heavy"},r.createElement(a.Z,{bold:!0},v(u.W.Navigation.Steps.Confirmation)))),r.createElement("div",{className:"u-marg-top@m-"},r.createElement(U.Z,null))),e.screenSize>d.Z.Medium&&r.createElement("div",{className:"offset-xl-1 col-md-4 col-xl-3 align-self-end"},r.createElement(f.Z,null))),r.createElement(c.Z,null),r.createElement("div",{className:"row"+(e.screenSize>d.Z.ExtraLarge?" no-gutters":"")},r.createElement("div",{className:"col-md-7 col-xl-8 d-table"},r.createElement("div",{className:"block-container"},!B.Z.isActive()&&r.createElement(_,null),r.createElement($e,null))),e.screenSize>d.Z.Medium&&r.createElement("div",{className:"col-xl-3 col-md-5 offset-xl-1"},r.createElement(L,{endDate:q().add(10,"minute")}),r.createElement(l.v,{showImages:!0}))))}},7701:function(e,t,n){(t=n(3645)(!1)).push([e.id,'.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE{display:block;border:1px solid var(--rs-color-light-grey);border-radius:8px;margin:10px 0;cursor:pointer;transition:.3s}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE+._1w9esuEAWeVo01pSbRCYRE{margin-top:8px}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE._1HXUOfG_q1yvxdAqMJTxpv{background:#f6f6fa;cursor:not-allowed}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE._1HXUOfG_q1yvxdAqMJTxpv ._3kmtWXHaspvwHpgixNLrHZ{border:solid 1px #dfe1e5;background:rgba(0,0,0,0)}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE._1HXUOfG_q1yvxdAqMJTxpv ._3kmtWXHaspvwHpgixNLrHZ::before{background:rgba(0,0,0,0)}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE._1HXUOfG_q1yvxdAqMJTxpv ._1CCxUg3a1cMgFeQKuab4ZB{color:#c0c3cc}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE.XmNJ84nut1siTCddtQEhW ._3kmtWXHaspvwHpgixNLrHZ{background:var(--rs-color-accent-2);border:solid 1px var(--rs-color-accent-1)}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE.XmNJ84nut1siTCddtQEhW ._3kmtWXHaspvwHpgixNLrHZ::before{transform:translate(-50%, -50%) scale(1);background:var(--rs-color-accent-1)}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE.XmNJ84nut1siTCddtQEhW ._1CCxUg3a1cMgFeQKuab4ZB{color:var(--rs-color-navy)}.roomstay-booking-container ._3WTPlkWtf38fd4sYEWOHWF{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;z-index:-1}.roomstay-booking-container ._3kmtWXHaspvwHpgixNLrHZ{flex-shrink:0;width:16px;height:16px;border-radius:100px;position:relative;border:solid 1px var(--rs-color-light-grey)}.roomstay-booking-container ._3kmtWXHaspvwHpgixNLrHZ::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 ._1CCxUg3a1cMgFeQKuab4ZB{color:var(--rs-color-navy);font-size:14px;font-weight:400;line-height:18px;margin-left:8px;transition:.3s}.roomstay-booking-container ._2b4U9HVKpCst_LvAFwO94E{display:block;padding:16px;border-top:solid 1px var(--rs-color-light-grey)}.roomstay-booking-container ._2nA7IF1LViqyTyoWBDZ9VN{padding:8px 16px;display:flex;align-items:center}.roomstay-booking-container ._2nA7IF1LViqyTyoWBDZ9VN:hover{background:rgba(204,204,204,.14)}',""]),t.locals={root:"_1w9esuEAWeVo01pSbRCYRE",disabled:"_1HXUOfG_q1yvxdAqMJTxpv",design:"_3kmtWXHaspvwHpgixNLrHZ",text:"_1CCxUg3a1cMgFeQKuab4ZB",checked:"XmNJ84nut1siTCddtQEhW",input:"_3WTPlkWtf38fd4sYEWOHWF",content:"_2b4U9HVKpCst_LvAFwO94E",header:"_2nA7IF1LViqyTyoWBDZ9VN"},e.exports=t},6728:function(e,t,n){(t=n(3645)(!1)).push([e.id,"._3QZUpAcJfjPS7WbzhW70jI ._3rGSy_g5xOnECmj037thsT{margin-top:0 !important;margin-bottom:0 !important;border-radius:0 !important;border-bottom:0 !important}._3QZUpAcJfjPS7WbzhW70jI ._3rGSy_g5xOnECmj037thsT:first-child{border-top-left-radius:8px !important;border-top-right-radius:8px !important}._3QZUpAcJfjPS7WbzhW70jI ._3rGSy_g5xOnECmj037thsT:last-child{border-bottom:1px solid var(--rs-color-light-grey) !important;border-bottom-left-radius:8px !important;border-bottom-right-radius:8px !important}",""]),t.locals={root:"_3QZUpAcJfjPS7WbzhW70jI",item:"_3rGSy_g5xOnECmj037thsT"},e.exports=t},4166:function(e,t,n){var r=n(3379),a=n(7701);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},6928:function(e,t,n){var r=n(3379),a=n(6728);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}}}]);
1
+ (("undefined"!=typeof self?self:this).webpackChunkroomstay=("undefined"!=typeof self?self:this).webpackChunkroomstay||[]).push([[218],{5032:function(e,t,n){"use strict";n.d(t,{z:function(){return c}});var r=n(5671),a=n(3144),o=n(136),l=n(2963),i=n(1120);var c=function(e){(0,o.Z)(s,e);var t,n,c=(t=s,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 s(e){var t;return(0,r.Z)(this,s),(t=c.call(this)).basketRows=void 0,t.basketRows=e,t}return(0,a.Z)(s,null,[{key:"getLabel",value:function(){return"View/Checkout"}}]),s}(n(7112).x)},4218:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return et}});var r=n(7294),a=n(3010),o=n(5692),l=n(3933),i=n(3727),c=n(9874),s=n(3821),u=n(9478),m=n(370),d=n(292),f=n(8279),p=n(4478),v=n(7462),g=n(885),E=n(8886),h=n(584),y=n(7754);function b(e){var t=e.addon;return r.createElement("div",{className:"additional-offers--column "+(e.selected?"--selected":""),style:{backgroundImage:"url('".concat(t.image,"')")},onClick:function(){e.cardClicked()}},r.createElement("div",{className:"additional-offers--column-body"},r.createElement(h.ZP,{type:h.yG.Small,color:y.I.White},r.createElement("strong",null,t.name)),r.createElement("div",{className:"u-flex"},r.createElement(h.ZP,{inline:!0,type:h.yG.Small,color:y.I.White},"See details"),r.createElement(E.ZP,{icon:E.Tu.ArrowRight,color:y.I.White}))))}var C=n(1472),Z=n(3460),x=n(7582),k=n(5128),S=n(6380),P=n(3122),w=n(4854),N=n(858),A=n(9314);function I(e){var t,n=e.addon,o=((0,p.$)().t,(0,r.useContext)(A.hy)),l=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getSelectedDate():""),i=(0,g.Z)(l,2),c=i[0],s=i[1],u=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getSelectedTime():""),m=(0,g.Z)(u,2),d=m[0],f=m[1],v=(0,r.useState)({quantity:1}),b=(0,g.Z)(v,2),C=b[0],Z=b[1],x=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getQuantity():1),I=(0,g.Z)(x,2),W=I[0],R=I[1],M=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getAdultQuantity():1),T=(0,g.Z)(M,2),_=T[0],D=T[1],q=(0,r.useState)(e.basketAddonRow?e.basketAddonRow.getChildQuantity():0),F=(0,g.Z)(q,2),G=F[0],L=F[1];return r.useEffect((function(){var t,r,a,o,l,i;if(n)return e.basketAddonRow?(Z(null!==(t=n.availability[e.basketAddonRow.getSelectedDate()])&&void 0!==t?t:n.availability[n.firstDate]),s(null!==(r=e.basketAddonRow.getSelectedDate())&&void 0!==r?r:n.firstDate),f(null!==(a=e.basketAddonRow.getSelectedTime())&&void 0!==a?a:""),R(e.basketAddonRow.getQuantity()),D(e.basketAddonRow.getAdultQuantity()),L(e.basketAddonRow.getChildQuantity())):(Z(n.availability[n.firstDate]),s(n.firstDate),f(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(){R(1),D(1),L(0)}}),[n]),r.createElement(k.Z,{open:e.isOpen,onClose:e.onClose,size:k.g.Small,title:n?n.name:""},n&&r.createElement(r.Fragment,null,r.createElement("div",{style:{height:"350px",width:"100%",backgroundImage:'url("'.concat(n.image,'")'),backgroundPosition:"center",backgroundRepeat:"no-repeat",backgroundSize:"cover"}}),r.createElement("div",{className:"u-marg-heavy u-marg@m-"},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},n.name)),r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement(h.ZP,{type:h.yG.Small,color:y.I.DarkGrey},n.description)),r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Date"),r.createElement(P.Z,{className:"u-flex align-items-center",onChange:function(e){var t,r,a,o;t=e,Z(n.availability[t]),s(t),f(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<W&&R(n.availability[t].quantity)},selectedValue:c,iconComponent:E.Tf,items:n.selectorDates}))),0!==(null==C||null===(t=C.selectorTimes)||void 0===t?void 0:t.length)&&r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Time"),r.createElement(P.Z,{className:"u-flex align-items-center",onChange:function(e){f(e)},selectedValue:d,iconComponent:E.Tf,items:null==C?void 0:C.selectorTimes}))),C.price&&r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Quantity"),r.createElement(S.Z,{number:W,min:1,max:C.quantity,onChange:function(e){R(e)}}))),C.adultPrice&&r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Adults"),r.createElement(S.Z,{number:_,min:0,max:C.quantity-G,onChange:function(e){D(e)}}))),C.childPrice&&r.createElement("div",{className:"row u-marg-top"},r.createElement("div",{className:"u-flex col-md-6"},r.createElement(h.ZP,null,"Children"),r.createElement(S.Z,{number:G,min:0,max:C.quantity-_,onChange:function(e){L(e)}}))),r.createElement("div",{className:"u-flex align-items-center u-marg-top"},C.price&&r.createElement("h2",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.price),"/ Qty"),C.adultPrice&&C.childPrice&&r.createElement("h2",{className:"u-marg-none"},r.createElement("div",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.adultPrice)," / Adult"),r.createElement("br",null),r.createElement("div",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.childPrice)," / Child")),C.adultPrice&&!C.childPrice&&r.createElement("h2",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.adultPrice)," / Adult"),C.childPrice&&!C.adultPrice&&r.createElement("h2",{className:"u-marg-none u-flex u-flex-align-center"},r.createElement(N.Z,null,C.childPrice)," / Child"),r.createElement(w.Z,{filled:!0,primary:!0,onClick:function(){o.setAddonQuantities(n,{quantity:W,adult:_,child:G},c,d),e.onClose()}},e.basketAddonRow?"Update Cart":"Add to Cart")),n.guaranteeDescription&&r.createElement(r.Fragment,null,r.createElement("h4",{className:"u-marg-bottom--light u-marg-top"},"Guarantee"),r.createElement("div",{className:"u-marg-bot--heavy"},r.createElement(h.ZP,{type:h.yG.Small},n.guaranteeDescription))),n.cancelPenalty&&r.createElement(r.Fragment,null,r.createElement("h4",{className:"u-marg-bottom--light u-marg-top"},"Cancellation Policy"),r.createElement("div",{className:"u-marg-bot--heavy"},r.createElement(h.ZP,{type:h.yG.Small},n.cancelPenalty))))))}var W=n(4516),R=n(9740),M=n(7832),T=n(7688);function _(){var e=(0,r.useContext)(A.hy),t=(0,r.useContext)(A.Qm),n=(0,T.WP)().hotel,o=(0,C.useSpring)((function(){return{x:0}})),l=(0,g.Z)(o,2),i=l[0].x,c=l[1],s=(0,Z.Z)(),m=(0,g.Z)(s,2),d=m[0],f=m[1],k=(0,p.$)().t,S=r.useState([]),P=(0,g.Z)(S,2),w=P[0],N=P[1],_=(0,r.useState)(!1),D=(0,g.Z)(_,2),q=D[0],F=D[1],G=(0,r.useState)(null),L=(0,g.Z)(G,2),O=L[0],H=L[1],U=(0,r.useState)(!1),B=(0,g.Z)(U,2),V=B[0],j=B[1],z=(0,r.useState)(0),Q=(0,g.Z)(z,2),Y=Q[0],J=Q[1],X=(0,r.useState)(0),K=(0,g.Z)(X,2),$=(K[0],K[1]),ee=(0,r.useState)(-1),te=(0,g.Z)(ee,2),ne=te[0],re=te[1];r.useEffect((function(){var t=!1,r=e.getAllValidRows();return j(!0),W.Z.Addons.findAddons(r,n.hotelID).then((function(e){t||(j(!1),N(e))})),function(){j(!1),t=!0}}),[t.currentLanguage]);var ae=222,oe=ae*w.length>=f.width,le=(0,x.c0)((function(e){var t=e.down,n=(0,g.Z)(e.movement,1)[0];ie(t,n)})),ie=function(e,t){if(oe)if(e)c({x:Y+1.5*t});else{var n=Y+t,r=(w.length-1)*ae,a=0;if(n>0)a=0,re(-1);else if(n<-(r-f.width+ae))a=-(r-f.width+ae),re(1);else{var o=-n/ae,l=n%ae>-111?Math.floor(o):Math.ceil(o);a=-l*ae,$(l),re(0)}c({x:a}),J(a)}};return r.createElement(R.Z,{open:!V&&0!==(null==w?void 0:w.length)||(null==n?void 0:n.showAddonLoader)},r.createElement("div",{className:"u-pad-bottom--heavy "},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},k(u.W.Step.Confirmation.AdditionalOfferings))),V&&null!=n&&n.showAddonLoader?r.createElement(M.Z,null):0===(null==w?void 0:w.length)?r.createElement("div",null,r.createElement(h.ZP,{color:y.I.DarkGrey},"Sorry, there are currently no additional offerings available.")):r.createElement("div",{className:"additional-offers"+(w.length>2?"":" --wide"),ref:d},oe&&r.createElement("div",{className:"additional-offers--navigation"},r.createElement(E.ZP,{icon:E.Tu.ArrowLeft2,onClick:function(){ie(!1,ae)},color:-1===ne?y.I.DarkGrey:y.I.White,backgroundColor:y.I.Navy,borderRadius:"round",size:"24px"}),r.createElement(E.ZP,{icon:E.Tu.ArrowRight2,onClick:function(){ie(!1,-222)},color:1===ne?y.I.DarkGrey:y.I.White,backgroundColor:y.I.Navy,borderRadius:"round",size:"24px"})),r.createElement("div",{className:"additional-offers--track-container"},r.createElement(C.animated.div,(0,v.Z)({className:"additional-offers--track"},le(),{style:{left:i}}),w.map((function(t,n){return r.createElement(b,{selected:!!e.getRowForAddon(t),key:n,addon:t,cardClicked:function(){F(!0),H(t)}})}))))),r.createElement(I,{isOpen:q&&!!O,addon:O,basketAddonRow:e.getRowForAddon(O),onClose:function(){F(!1)}})))}var D=n(7933),q=n(7484);function F(e){var t=(0,r.useState)(e.endTimeDate.diff(q(),"second")),n=(0,g.Z)(t,2),a=n[0],o=n[1];return(0,r.useEffect)((function(){var t=!1,n=setTimeout((function(){t||(a>0?o((function(e){return e-1})):(e.onEnd&&e.onEnd(),t=!0,clearTimeout(n)))}),1e3);return function(){t=!0,clearTimeout(n)}}),[a]),(0,r.useMemo)((function(){var e=[Math.floor(a/60/60),Math.floor(a/60%60),Math.floor(a%60)];return r.createElement(r.Fragment,null,e.map((function(e){return e.toString().padStart(2,"0")})).join(":"))}),[a])}var G=n(4544);function L(e){var t=(0,r.useState)(!1),n=(0,g.Z)(t,2),o=n[0],l=n[1];return r.createElement(D.ZP,{type:D.NK.Accent1},r.createElement("div",{className:"u-flex w-100 flex-wrap align-items-center"},r.createElement("div",null,r.createElement(h.ZP,null,r.createElement("strong",null,"Your room is")),r.createElement(h.ZP,null,r.createElement("strong",null,"being held for"))),r.createElement("div",{className:o?"a-flash":""},r.createElement(a.Z,{size:"large",bold:!0,color:y.I.White},r.createElement(F,{endTimeDate:e.endDate,onEnd:function(){G.ZP.instance.sendInteraction("Countdown End Seen",G.s_.LINK,G._J.GUEST_DETAILS),l(!0)}})))))}var O,H=n(4511),U=n(5400),B=n(6337),V=n(5032),j=n(5861),z=n(4687),Q=n.n(z),Y=n(7536),J=n(5987),X=n(4942),K=n(5993),$=n(1432),ee=n(5762),te=n(3261),ne=n(6604),re=n(1248);!function(e){e.Forename="Forename",e.Surname="Surname",e.Email="Email",e.Phone="Phone",e.Address="Address",e.City="City",e.PostCode="PostCode",e.Country="Country"}(O||(O={}));var ae=n(9024),oe=n(6598),le=n(6431),ie=["ref","onChange"],ce=function(){var e=(0,Y.Gc)(),t=e.register,n=e.formState,o=e.control,l=e.watch,i=e.getValues,s=e.setValue,m=(0,r.useContext)(A.hy),d=m.getAllValidRows(),f=m.basketAddonRows,b=(0,Y.Dq)({control:o,name:"userProfiles"}),C=b.update,Z=b.fields,x=l(["copyCheckBox","paymentMethod"]),k=(0,g.Z)(x,2),S=k[0],P=k[1],w=n.errors,N=(0,p.$)().t,I=(0,r.useContext)(A.P0).roomstayMember;(0,r.useEffect)((function(){var e;null===(e=w.userProfiles)||void 0===e||e.forEach((function(e,t){w.userProfiles[t]&&(T[t]=!0)})),_(T.slice(0))}),[w.userProfiles,S]),(0,r.useEffect)((function(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return 0===e?t:""},t=d.map((function(t,n){var r,a,o,l,i;return i={},(0,X.Z)(i,O.Forename,e(n,null==I?void 0:I.forename)),(0,X.Z)(i,O.Surname,e(n,null==I?void 0:I.surname)),(0,X.Z)(i,O.Email,e(n,null==I?void 0:I.email)),(0,X.Z)(i,O.Phone,e(n,null==I?void 0:I.phoneNumber)),(0,X.Z)(i,O.Address,e(n,null==I||null===(r=I.address)||void 0===r?void 0:r.address)),(0,X.Z)(i,O.City,e(n,null==I||null===(a=I.address)||void 0===a?void 0:a.city)),(0,X.Z)(i,O.PostCode,e(n,null==I||null===(o=I.address)||void 0===o?void 0:o.zip)),(0,X.Z)(i,O.Country,e(n,null==I||null===(l=I.address)||void 0===l?void 0:l.country)),i}));s("userProfiles",t),s("copyCheckBox",(null==d?void 0:d.length)&&d.length>1)}),[I,null==d?void 0:d.length]);var W=(0,r.useState)(d.map((function(e,t){return 0===t}))),M=(0,g.Z)(W,2),T=M[0],_=M[1],q=function(e,t){return function(e){G.ZP.instance.sendInteraction(t,G.s_.FORM_FIELD,G._J.GUEST_DETAILS)}};return(0,r.useEffect)((function(){S&&Z.forEach((function(e,t){0!==t&&C(t,i("userProfiles.0"))}))}),[S]),(0,r.useEffect)((function(){var e=l((function(e,t){var n=t.name;"change"===t.type&&n.includes("userProfiles")&&"0"===n.split(".")[1]&&e.copyCheckBox&&Z.map((function(e,t){0!==t&&C(t,i("userProfiles.0"))}))})).unsubscribe;return function(){e()}}),[Z]),(0,r.useEffect)((function(){G.ZP.instance.sendCheckoutView(d,f)}),[]),r.createElement(r.Fragment,null,Z.map((function(e,l){var i,s=function(e){return function(e,t){return"userProfiles.".concat(t,".").concat(e)}(e,l)},m=function(e){var t;return!w.userProfiles||S&&l>=1?null:null!==(t=w.userProfiles[l])&&void 0!==t&&t[e]?"error":"success"},f=d[l],p=S&&l>=1||P===oe.EBookingPaymentMethod.Planpay;return r.createElement("div",{key:e.id},r.createElement("div",{className:0===l?"":"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom",onClick:function(){0!==l&&function(e,t){T.splice(e,1,t),_(T.slice(0))}(l,!T[l])}},r.createElement("div",{className:"u-flex u-marg-bottom align-items-center"},r.createElement(a.Z,{bold:!0},N(u.W.Misc.Room)," ",l+1),0!==l&&r.createElement(E.ZP,{icon:T[l]?E.Tu.ArrowDown2:E.Tu.ArrowUp2,color:y.I.Grey})),f&&r.createElement("div",{className:"u-marg-bottom"},r.createElement(h.ZP,null,r.createElement("strong",{className:"u-block@l-"},f.getRoom().name)," for"," ",te.Z.pluralWithDictAndCount(f.getAdults(),u.W.Step.Date.Adult,N),", ",te.Z.pluralWithDictAndCount(f.getChildren(),u.W.Step.Date.Child,N)),r.createElement("div",{className:"step-one-status--dates u-flex justify-content-start"},r.createElement(h.ZP,{type:h.yG.Small,color:y.I.Accent},r.createElement("strong",null,f.getStartDate().format("ddd, MMM D"))),r.createElement(E.ZP,{icon:E.Tu.ArrowRight2,size:"18px"}),r.createElement(h.ZP,{type:h.yG.Small,color:y.I.Accent},r.createElement("strong",null,f.getEndDate().format("ddd, MMM D"))))),(null===(i=w.userProfiles)||void 0===i?void 0:i[l])&&n.submitCount>=1&&(0===l||!S)&&Object.values(w.userProfiles[l]).map((function(e,t){return r.createElement(R.Z,{key:t,open:!0},r.createElement("div",{className:"u-flex"},r.createElement(D.ZP,{icon:E.Tu.Error,type:D.NK.Danger,noMargin:t===Object.keys(w.userProfiles[l]).length-1},r.createElement(h.ZP,{type:h.yG.Small},null==e?void 0:e.message))))}))),r.createElement("div",{className:"room-contact-details--row",style:{maxHeight:T[l]?"":0}},r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,N(u.W.Step.Confirmation.ContactInfo)))),r.createElement(K.Z,{dimensions:"2/2"},r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Forename)+" *",wide:!0,required:!0,validationStatus:m(O.Forename)},t(s(O.Forename),{onChange:q(s(O.Forename),"Forename - Contact Info"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Forename)})}}))),r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Surname)+" *",wide:!0,required:!0,validationStatus:m(O.Surname)},t(s(O.Surname),{onChange:q(s(O.Surname),"Surname - Contact Info"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Surname)})}})))),r.createElement(K.Z,{dimensions:"2/2"},r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Email)+" *",wide:!0,validationStatus:m(O.Email),required:!0},t(s(O.Email),{onChange:q(s(O.Email),"Email - Contact Info"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Email)})},pattern:{value:le.CU,message:N(u.W.Step.Confirmation.Inputs.InvalidEmail)}}))),re.Z.isActive()?r.createElement(Y.Qr,{control:o,name:s(O.Phone),rules:{required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.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 r.createElement(ne.Z,(0,v.Z)({disabled:p,validationStatus:m(O.Phone)},t,{onChange:function(e){t.onChange(e),q(s(O.Phone),"Phone - Contact Info")(e)}}))}}):r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Phone)+" *",wide:!0,required:!0,validationStatus:m(O.Phone)},t(s(O.Phone),{onChange:q(s(O.Phone),"Phone - Contact Info"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Phone)})}}))))),r.createElement("div",{className:""},r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,N(u.W.Step.Confirmation.Address)))),r.createElement(K.Z,{dimensions:"3/1"},r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.Address)+" *",wide:!0,required:!0,validationStatus:m(O.Address)},t(s(O.Address),{onChange:q(s(O.Address),"Address - Address"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Address)})}}))),r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.City)+" *",wide:!0,required:!0,validationStatus:m(O.City)},t(s(O.City),{onChange:q(s(O.City),"City - Address"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.City)})}})))),r.createElement(K.Z,{dimensions:"2/2"},r.createElement($.Z,(0,v.Z)({inputProps:{disabled:p},placeholder:N(u.W.Step.Confirmation.Inputs.PostCode)+" *",wide:!0,required:!0,validationStatus:m(O.PostCode)},t(s(O.PostCode),{onChange:q(s(O.PostCode),"PostCode - Address"),required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.PostCode)})}}))),r.createElement(Y.Qr,{control:o,name:s(O.Country),rules:{required:{value:!0,message:N(u.W.Step.Confirmation.Inputs.Required,{field:N(u.W.Step.Confirmation.Inputs.Country)})}},render:function(e){var t=e.field,n=(t.ref,t.onChange),a=(0,J.Z)(t,ie);return r.createElement(ee.Z,(0,v.Z)({disabled:p,validationStatus:m(O.Country),onChange:function(e){n(e),q(s(O.Country),"Country - Address")(e)}},a))}})))),r.createElement(c.Z,null)),Z.length>1&&0===l?r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement(ae.Z,(0,v.Z)({label:N(u.W.Step.Confirmation.ApplySameInfoToOtherRooms)},t("copyCheckBox")))):null)})))};function se(){var e=(0,p.$)().t,t=(0,T.WP)().hotel;return r.createElement(r.Fragment,null,r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},e(u.W.Step.Confirmation.Policies))),r.createElement("div",{className:"u-marg-bottom"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-6 col-md-3"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,e(u.W.Misc.CheckIn))),r.createElement(h.ZP,{type:h.yG.Small},e(u.W.Misc.After)," ",t.checkInTime)),r.createElement("div",{className:"col-6 col-md-3"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,e(u.W.Misc.CheckOut))),r.createElement(h.ZP,{type:h.yG.Small},e(u.W.Misc.Before)," ",t.checkOutTime)))))}var ue=n(8029),me=n(2364),de=n(5112);function fe(){return r.createElement(de.Z,{title:"Shop without worries! This site is protected by high level encryption, to ensure every purchase is always safe & secure"},r.createElement("img",{src:me.Z.getAssetUrl()+"assets/img/ssl-secure-connection.png"}))}var pe=n(3409);function ve(e){var t,n,o=(0,r.useContext)(A.hy),l=(0,r.useState)(q().add(14,"minute")),i=(0,g.Z)(l,2),s=i[0];i[1],(0,r.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 u=r.createElement("div",{className:"u-flex"},r.createElement(w.Z,{isText:!0,size:"small",icon:E.Tu.ArrowLeft,onClick:e.onClose,isLoading:e.isLoading},"Take me back"),r.createElement(w.Z,{primary:!0,filled:!0,icon:E.Tu.ArrowRight,iconPosition:"right",onClick:e.onProceed,isLoading:e.isLoading},"Continue with reservation"));return r.createElement(k.Z,{open:!!e.differences.length||!(null===(n=e.warnings)||void 0===n||!n.length),title:"Your total price has Changed!",mobileFooter:u,desktopFooter:r.createElement("div",{className:"u-marg-heavy u-marg@m-"},u),size:k.g.Small,alignCenter:!0},r.createElement("div",{className:"u-marg-heavy u-marg@m-"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-md-8"},r.createElement(h.ZP,{type:h.yG.Small},"We apologize for any inconvenience, but the price for your selected reservation has changed during your checkout, please confirm that you accept the new total shown below.")),r.createElement("div",{className:"col-md-4"},r.createElement(pe.ZP,{icon:E.Tu.Time,type:pe.Rm.Primary},r.createElement("span",{className:"u-marg-right--light"},"Reverts in"),r.createElement(F,{endTimeDate:s})))),r.createElement(c.Z,null),!(!e.differences||!e.differences.length)&&e.differences.map((function(e){var t=o.getAllValidRows().find((function(t){return t.getID()===e.id}));return r.createElement("div",{key:e.id},!!t&&r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(a.Z,null,t.getRoom().name)),r.createElement(h.ZP,null,t.getRate().name)),r.createElement("div",{className:"u-flex u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Body},r.createElement("strong",null,"Displayed price:")),r.createElement(h.ZP,{color:y.I.Alert},r.createElement(N.Z,null,e.totalPrice.before))),r.createElement("div",{className:"u-flex"},r.createElement(h.ZP,{type:h.yG.Body},r.createElement("strong",null,"Actual price:")),r.createElement(h.ZP,{color:y.I.Success},r.createElement(N.Z,null,e.totalPrice.after))),r.createElement(c.Z,null))})),!(!e.warnings||!e.warnings.length)&&e.warnings.map((function(e,t){return r.createElement(h.ZP,{key:t},e)}))))}var ge=n(6550),Ee=n(1625);function he(){var e=(0,r.useContext)(A.hy),t=(0,p.$)().t,n=t(u.W.Misc.Room);return(0,r.useMemo)((function(){var a={},o=e.getAllValidRows(),l=0;return o.length>1?o.forEach((function(e){l++;var t=e.getRate(),n=a["".concat(t.cancelPolicyCode,"-").concat(t.guaranteeCode)];n||(n=a["".concat(t.cancelPolicyCode,"-").concat(t.guaranteeCode)]={rooms:[]}),n.rooms.push({index:l,room:e})})):a[0]={rooms:[{index:1,room:o[0]}]},r.createElement("div",{className:"u-marg-bottom"},Object.values(a).map((function(e,a){var o=e.rooms[0];return r.createElement("div",{className:"u-marg-bottom--heavy",key:a},r.createElement("div",{className:"u-marg-bottom"},e.rooms.map((function(e){return r.createElement(h.ZP,{key:e.index,type:h.yG.Small},r.createElement("strong",null,n," ",e.index)," ",e.room.getRoom().name," - ",e.room.getRate().name)}))),r.createElement("div",{className:"u-marg-bottom"},r.createElement(h.ZP,{type:h.yG.Small,bold:!0},t(u.W.Misc.GuaranteePolicy)),r.createElement(h.ZP,{type:h.yG.Small,preformatted:!0},r.createElement("span",{dangerouslySetInnerHTML:{__html:o.room.getRate().getGuaranteePolicy()}}))),r.createElement(h.ZP,{type:h.yG.Small,bold:!0},t(u.W.Misc.CancellationPolicy)),r.createElement(h.ZP,{type:h.yG.Small,preformatted:!0},r.createElement("span",{dangerouslySetInnerHTML:{__html:o.room.getRate().getCancellationPolicy()}})))})))}),[e.currentBasketRows])}var ye=n(6222),be=function(){var e,t=(0,p.$)().t,n=(0,T.WP)().hotel,o=(0,Y.Gc)(),l=o.control,i=null===(e=(0,o.getFieldState)("isPolicyConfirmed").error)||void 0===e?void 0:e.message;return r.createElement(r.Fragment,null,r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},t(u.W.Step.Confirmation.Acknowledgement))),r.createElement("div",null,r.createElement(ae.Z,{label:t(u.W.Step.Confirmation.EmailSpecialOffers)})),r.createElement("div",{className:"u-marg-top--light"},r.createElement(Y.Qr,{control:l,render:function(e){var a=e.field,o=a.value,l=a.onChange,i=a.ref;return r.createElement(ae.Z,{checked:o,onChange:l,ref:i,label:r.createElement("div",null,t(u.W.Step.Confirmation.IHaveUnderstoodPrivacyPolicy)," ",r.createElement("a",{style:{color:y.I.Accent},className:"--underlined",href:n.privacyPolicyUrl,target:"_blank",rel:"noreferrer"},t(u.W.Step.Confirmation.PrivacyPolicy)))})},name:"isPolicyConfirmed",rules:{required:{value:ye.Z.isActive(),message:t(u.W.Step.Confirmation.PrivacyPolicyError)}}})),r.createElement(R.Z,{open:!!i},r.createElement("div",{className:"u-flex u-marg-top"},r.createElement(D.ZP,{type:D.NK.Danger,icon:E.Tu.Error},r.createElement(h.ZP,{type:h.yG.Small},i)))))},Ce=n(4707),Ze=n(2912),xe=n(8016),ke=n(3423),Se=n(9747),Pe=n(514),we=function(){return r.createElement("div",null,r.createElement("div",{className:"row no-gutters"},r.createElement("div",{className:"col-md-4"},r.createElement("div",{className:"d-flex justify-content-center"},r.createElement(Se.Z,{type:"text",w:"md",h:"sm",blink:!0})),r.createElement(Se.Z,{type:"text",h:"md",blink:!0}),r.createElement(Se.Z,{type:"text",h:"md",blink:!0})),r.createElement("div",{className:"col-md-4"},r.createElement("div",{className:"d-flex justify-content-center"},r.createElement(Se.Z,{type:"text",w:"md",h:"sm",blink:!0})),r.createElement(Se.Z,{type:"text",h:"sm",blink:!0}),r.createElement(Se.Z,{type:"text",h:"sm",blink:!0}),r.createElement(Se.Z,{type:"text",h:"sm",blink:!0})),r.createElement("div",{className:"col-md-4"},r.createElement("div",{className:"d-flex justify-content-center"},r.createElement(Se.Z,{type:"text",w:"md",h:"sm",blink:!0})),r.createElement("div",{className:"d-flex justify-content-center u-marg-top u-marg-bottom"},r.createElement(Se.Z,{type:"text",w:"xs",h:"sm",blink:!0,noMarg:!0})),r.createElement("div",{className:"d-flex justify-content-center"},r.createElement(Se.Z,{type:"text",w:"md",h:"sm",blink:!0,noMarg:!0})),r.createElement("div",{className:"d-flex justify-content-center u-marg-top u-marg-bottom"},r.createElement(Se.Z,{type:"text",w:"xs",h:"sm",blink:!0,noMarg:!0})))),r.createElement("div",{className:"row no-gutters"},r.createElement("div",{className:"col-md-4"},r.createElement(Se.Z,{type:"text",h:"lg",blink:!0})),r.createElement("div",{className:"offset-md-4 col-md-4 d-flex align-items-center"},r.createElement(Se.Z,{type:"text",w:"xl",h:"sm",blink:!0}))))},Ne=function(){var e,t,n=(0,r.useContext)(A.hy),a=(0,Pe.W)().hotel,o=null===(e=n.reservationData)||void 0===e||null===(t=e.payment)||void 0===t?void 0:t.planpay;return(0,r.useLayoutEffect)((function(){null!=o&&o.id&&ke.MQ.checkout.refresh()}),[null==o?void 0:o.id]),(0,r.useEffect)((function(){var e;ke.MQ.init({environment:null==a||null===(e=a.planpay)||void 0===e?void 0:e.env})}),[a]),r.createElement(r.Fragment,null,r.createElement("div",{className:"planpay-payment-container","data-planpay-checkout-id":null==o?void 0:o.id,style:{minHeight:"204px",display:"flex",justifyContent:"flex-end",flexDirection:"column"}},r.createElement(we,null)))},Ae=n(258),Ie=(0,r.createContext)({}),We=function(){var e,t=(e=(0,ge.TH)().search,r.useMemo((function(){return new URLSearchParams(e)}),[e])),n=r.useMemo((function(){return new URLSearchParams(window.location.search)}),[window.location.search]),a=(0,r.useMemo)((function(){return["paymentMethod","roomstayId","planpay_checkout_id"].map((function(e){return n.get(e)||t.get(e)}))}),[t]),o=(0,g.Z)(a,3);return{queryPaymentMethod:o[0],queryRoomstayId:o[1],queryPlanpayCheckoutId:o[2]}},Re={VI:"visa",MC:"mastercard",JC:"jcb",DS:"dinersclub",AX:"amex",DN:"dinersclub",UP:"unionpay"},Me=n(1291),Te=n(9527),_e=n(3733);function De(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 qe=function(e){var t=(0,Te.K)().user,n=(0,r.useContext)(A.P0).cards,a=(0,r.useState)(),o=(0,g.Z)(a,2),l=o[0],i=o[1];return(0,r.useEffect)((function(){if(t.defaultCard){var e,r=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 De(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)?De(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(r.s();!(e=r.n()).done;){var a=e.value;if(t.defaultCard===a.cardId)return void i(t.defaultCard)}}catch(e){r.e(e)}finally{r.f()}}n.length>0&&i(n[0].cardId)}),[t,n]),r.createElement(r.Fragment,null,r.createElement("div",null,n.map((function(e){return r.createElement(_e.c,{selected:l===e.cardId,onClick:function(){var t;t=e.cardId,i(t)},item:e})}))))},Fe=n(4184),Ge=function(e){var t,n=e.isCurrent,a=e.isDefault,o=e.style,l=(0,T.WP)().hotel,i=(null!==(t=null==l?void 0:l.paymentCardTypes)&&void 0!==t?t:[]).map((function(e){return Re[e]?{name:Re[e],status:!1}:null})).filter((function(e){return e}));return r.createElement("div",{className:"u-flex flex-row justify-content-start"},Object.keys(i).map((function(e){return r.createElement("div",{key:e,id:i[e].name,className:Fe("cc-icon u-flex u-marg-right--light",{"-current":null==n?void 0:n(e),"-default":null==a?void 0:a(e)}),style:Object.assign({backgroundImage:"url('".concat(me.Z.getAssetUrl()+"assets/img/"+i[e].name+".png","')"),backgroundSize:"contain"},o||{})})})))};function Le(e,t){var n,a=(0,T.WP)().hotel,o=(0,T.Kb)(),l=(0,r.useState)({}),i=(0,g.Z)(l,2),c=i[0],s=i[1],m=(0,p.$)().t,d=(0,T.b)().focusElement,f={fontSize:"13px",lineHeight:"18px","&::placeholder":{color:"#8B8F9A",opacity:1}},v=(0,Me.c)([{label:m(u.W.Step.Confirmation.Inputs.CardNumber),name:"credit-card",type:"card-number",vgsProps:{autoComplete:["cc-number"],successColor:"#4F8A10",errorColor:"#D8000C",showCardIcon:!1,placeholder:m(u.W.Step.Confirmation.Inputs.CardNumber)+" *",validations:["required","validCardNumber"],css:f}},{label:m(u.W.Step.Confirmation.Inputs.NameOnCard),name:"card-name",type:"text",vgsProps:{validations:["required"],css:f,placeholder:m(u.W.Step.Confirmation.Inputs.NameOnCard)+" *"}},{label:m(u.W.Step.Confirmation.Inputs.CardExpiry),name:"expiration-date",type:"card-expiration-date",vgsProps:{placeholder:m(u.W.Step.Confirmation.Inputs.CardExpiry)+" *",validations:["required","validCardExpirationDate"],css:f}},{label:m(u.W.Step.Confirmation.Inputs.SecurityCode),name:"security-code",type:"card-security-code",vgsProps:{placeholder:m(u.W.Step.Confirmation.Inputs.SecurityCode)+" *",validations:["required","validCardSecurityCode"],css:f}}]),y=(0,g.Z)(v.fields,4),b=y[0],C=y[1],Z=y[2],x=y[3],k=(v.triggerFieldUpdate,v.vgsForm),S=function(e){var t={};Object.keys(e).forEach((function(n){var r="";switch(n){case"credit-card":r="Credit Card";break;case"expiration-date":r="Expiration Date";break;case"security-code":r="Security Code";break;default:r="Card Name"}t[n]=r+" "+e[n].errorMessages[e[n].errorMessages.length-1]})),s(t)};(0,r.useEffect)((function(){var e,t;c&&0!==Object.keys(c).length&&null!=b&&null!==(e=b.ref)&&void 0!==e&&e.current&&d(null==b||null===(t=b.ref)||void 0===t?void 0:t.current)}),[c]),(0,r.useImperativeHandle)(t,(function(){return{getTokenizedCode:function(){return new Promise((function(e,t){k?k.submit("/post",{serializer:"deep",methods:"POST"},(function(n,r){var a=JSON.parse(r.data),o=a["expiration-date"].match(/^(\d+)\s*\/\s*(\d+)$/);if(!o||o[1].length>2||4!==o[2].length&&2!==o[2].length)return S({"expiration-date":{errorMessages:["Invalid - it must be in the format MM / YY or MM / YYYY"]}}),void t("invalid expiration date");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:b.state.cardType};e(i)}),(function(e){S(e),t(e)})):console.error("VGS not on element, problem has occurred")}))}}}));var P=(0,r.useRef)(null),w=(null!==(n=null==a?void 0:a.paymentCardTypes)&&void 0!==n?n:[]).map((function(e){return Re[e]?{name:Re[e],status:!1}:null})).filter((function(e){return e}));return r.createElement("div",null,r.createElement("div",null,!!o.user&&r.createElement(qe,{onCardSelected:function(e){}})),r.createElement("div",null,["credit-card","card-name","expiration-date","security-code"].map((function(e){var t=c[e];return r.createElement(R.Z,{open:!!t,key:e},r.createElement("div",{className:"u-flex"},r.createElement(D.ZP,{type:D.NK.Danger,icon:E.Tu.Error},r.createElement(h.ZP,{type:h.yG.Small},t))))})),r.createElement("div",{className:"u-marg-bottom"},r.createElement(Ge,{isCurrent:function(e){return null!==b.state.cardType&&w[e].name===b.state.cardType},isDefault:function(e){return null===b.state.cardType}})),r.createElement("form",{ref:P},r.createElement(K.Z,{dimensions:"2/2"},r.createElement("div",{className:b.getClasses(),ref:b.ref}),r.createElement(K.Z,{dimensions:"2/2"},r.createElement("div",{className:Z.getClasses(),ref:Z.ref}),r.createElement("div",{className:x.getClasses(),ref:x.ref}))),r.createElement(K.Z,{dimensions:"1"},r.createElement("div",{className:C.getClasses(),ref:C.ref})))))}var Oe=(0,r.forwardRef)(Le),He=n(4166),Ue=n.n(He),Be=function(e){var t,n=e.checked,a=e.onChange,o=e.disabled,l=e.label,i=e.renderContent,c=e.className,s=(0,r.useMemo)((function(){return Math.random().toString()}),[]);return r.createElement("label",{htmlFor:s,className:Fe(Ue().root,c,(t={},(0,X.Z)(t,Ue().disabled,o),(0,X.Z)(t,Ue().checked,n),t))},r.createElement("div",{className:Ue().header},r.createElement("input",{className:Ue().input,hidden:!0,disabled:o,id:s,onChange:a,type:"radio",checked:n}),r.createElement("div",{className:Ue().design}),r.createElement("div",{className:Ue().text},l)),r.createElement("div",null,i&&n&&r.createElement("div",{className:Ue().content},i())))},Ve=n(6928),je=n.n(Ve),ze=function(e){var t=e.options,n=e.value,a=e.onChange;return r.createElement("div",{className:je().root},t.map((function(e){var t=e.value,o=e.label,l=e.disabled,i=e.disabledReason,c=e.renderContent,s=r.createElement(Be,{className:je().item,key:t,checked:!l&&t===n,onChange:function(){l||a(t)},label:o,disabled:l,renderContent:function(){return r.createElement(R.Z,{open:!0},c())}});return l&&i?r.createElement(de.Z,{key:t,wrapperClasses:je().wrapper,title:i},s):r.createElement("div",{key:t,className:je().wrapper},s)})))};function Qe(){var e=(0,r.useState)({differences:[],warnings:[]}),t=(0,g.Z)(e,2),n=t[0],o=t[1],l=(0,r.useState)(""),i=(0,g.Z)(l,2),s=i[0],m=i[1],d=(0,p.$)().t,f=We(),b=f.queryPaymentMethod,C=f.queryRoomstayId,Z=f.queryPlanpayCheckoutId,x=(0,A.dF)(),k=(0,Y.Gc)(),S=(0,r.useContext)(Ie),P=S.isBackFromPlanpay,N=S.isLoading,I=S.apiErrors,W=S.clearApiErrors,R=S.book,_=S.rollbackReservation,F=S.commitReservation,G=(0,A.Kc)(),L=(0,r.useRef)(null),O=(0,ge.k6)(),H=(0,T.WP)().hotel,U=function(){var e=(0,j.Z)(Q().mark((function e(t){var n,r,a;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=t,e.next=e.t0===oe.EBookingPaymentMethod.Planpay?3:10;break;case 3:return(r=new URLSearchParams(window.location.search)).set("roomstayId","{{rsId}}"),r.set("session",x.sessionProvider.getCurrentSessionID().toString()),r.set("paymentMethod",oe.EBookingPaymentMethod.Planpay),a="".concat(window.location.origin).concat(window.location.pathname).concat(window.location.search,"#/step/confirmation/?").concat(r),n={Method:oe.EBookingPaymentMethod.Planpay,PlanpayCheckoutId:Z,RedirectUrl:a},e.abrupt("break",15);case 10:return e.t1=oe.EBookingPaymentMethod.Card,e.next=13,L.current.getTokenizedCode();case 13:e.t2=e.sent,n={Method:e.t1,PaymentCard:e.t2};case 15:return e.abrupt("return",n);case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();(0,r.useEffect)((function(){var e,t=Object.values(oe.EBookingPaymentMethod).includes(b)?b:oe.EBookingPaymentMethod.Card;return k.setValue("paymentMethod",t),K(t),P&&(C===(null===(e=G.reservationData)||void 0===e?void 0:e.roomstayId)?B(t):_()),function(){P||_()}}),[]);var B=function(){var e=(0,j.Z)(Q().mark((function e(t){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,F(G.reservationData);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),V=k.watch("paymentMethod");x.engine.getSessionProvider().getSession().then((function(e){m(e.source)}));var z=function(){var e=(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:O.push(Ze.Z.getStepUrl());case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),J=function(){var e=(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,X(V,function(){var e=(0,j.Z)(Q().mark((function e(t){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",F(t));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());case 2:return e.abrupt("return",!1);case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),X=function(){var e=(0,j.Z)(Q().mark((function e(t,n){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R((0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",U(t));case 1:case"end":return e.stop()}}),e)}))),(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,t!==oe.EBookingPaymentMethod.Card){e.next=4;break}return e.next=4,L.current.getTokenizedCode();case 4:return e.abrupt("return",!0);case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",!1);case 10:case"end":return e.stop()}}),e,null,[[0,7]])}))),(function(e){e&&o(e)}),n);case 2:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),K=function(){var e=(0,j.Z)(Q().mark((function e(t){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t===oe.EBookingPaymentMethod.Planpay){e.next=3;break}return e.next=3,_();case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return r.createElement("form",null,P?r.createElement(M.Z,null):r.createElement(r.Fragment,null,r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(a.Z,{bold:!0},d(u.W.Step.Confirmation.GuestDetails))),r.createElement(h.ZP,{type:h.yG.Small,color:y.I.Success},r.createElement("strong",null,d(u.W.Step.Confirmation.AlmostDone,{required:"*"})))),r.createElement(ce,null),"inline"===s?r.createElement(D.ZP,{type:D.NK.Accent2,heavyPadding:!0},r.createElement("div",{className:"u-flex u-w-100 flex-wrap flex-xl-nowrap"},r.createElement("div",null,r.createElement(h.ZP,{color:y.I.Accent,bold:!0},d(u.W.Step.Confirmation.WantMoreRooms)),r.createElement(h.ZP,{color:y.I.Navy},d(u.W.Step.Confirmation.YouCanAddAndEditRooms))),r.createElement("div",{className:"d-flex align-items-center u-marg-top@xl-"},r.createElement(w.Z,{filled:!0,primary:!0,icon:E.Tu.Add,iconPosition:"left",onClick:z},d(u.W.Step.Confirmation.AddMoreRooms))))):r.createElement(r.Fragment,null),xe.Z.isActive()&&r.createElement(r.Fragment,null,r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},"Travel Agent")),r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Small},r.createElement("strong",null,d(u.W.Step.Confirmation.Inputs.IATANumber)))),r.createElement("div",{className:"u-marg-bottom--light"},r.createElement(h.ZP,{type:h.yG.Small},d(u.W.Step.Confirmation.Inputs.IATANumberGuide))),r.createElement($.Z,(0,v.Z)({placeholder:d(u.W.Step.Confirmation.Inputs.IATANumber),wide:!0},k.register("IATANumber")))),r.createElement(c.Z,null)),r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},d(u.W.Step.Confirmation.Comments))),r.createElement(Ae.Z,(0,v.Z)({disabled:V===oe.EBookingPaymentMethod.Planpay,placeholder:d(u.W.Step.Confirmation.Inputs.EnterSpecialRequestsHere)},k.register("comment")))),r.createElement(c.Z,null),r.createElement("div",{className:"u-marg-bottom--heavy"},r.createElement("div",{className:"u-marg-bottom"},r.createElement(a.Z,{bold:!0},d(u.W.Step.Confirmation.PaymentInformation))),r.createElement(Y.Qr,{control:k.control,name:"paymentMethod",render:function(e){var t=e.field,n=t.onChange,a=t.value;return r.createElement(r.Fragment,null,r.createElement("div",null,r.createElement(ze,{options:[{value:oe.EBookingPaymentMethod.Card,label:r.createElement("div",{className:"u-flex u-flex-align-center"},r.createElement("div",{className:"u-marg-right--light"},d(u.W.Step.Confirmation.CardLabel)),r.createElement(Ge,{isDefault:function(e){return!0},style:{height:16,width:24,borderRadius:2.5,border:"0.5px solid #DFE1E5",marginRight:4}})),renderContent:function(){return r.createElement(Oe,{ref:L})}},{value:oe.EBookingPaymentMethod.Planpay,label:r.createElement("div",{className:"u-flex u-flex-align-center"},r.createElement("div",null,d(u.W.Step.Confirmation.PlanpayLabel)),r.createElement("div",{className:"u-flex u-flex-align-center u-marg-left--light",style:{borderRadius:"24px",overflow:"hidden"}},r.createElement("img",{height:16,src:me.Z.getImageAssetUrl("planpay-logo-small.svg"),alt:""})),!k.formState.isValid&&r.createElement(h.ZP,{color:y.I.Graphite,className:"u-flex u-flex-align-center",style:{color:"#313131",fontSize:10}},r.createElement(E.ZP,{color:y.I.DarkGrey,icon:E.Tu.Info,className:"u-marg-right--lighter u-marg-left--light"}),d(u.W.Step.Confirmation.PlanpayHelperText))),disabled:!k.formState.isValid,disabledReason:k.formState.isValid?"":"You must fill all the above details before proceeding with Planpay",renderContent:function(){return r.createElement(Ne,null)}}].filter((function(e){var t,n=e.value;return null==H||null===(t=H.paymentMethods)||void 0===t?void 0:t.includes(n)})).filter((function(e){var t;return e.value!==oe.EBookingPaymentMethod.Planpay||q(G.startDate).diff(q(),"day")>(null==H||null===(t=H.planpay)||void 0===t?void 0:t.minDaysShowPlanpay)})),value:a,onChange:function(){var e=(0,j.Z)(Q().mark((function e(t){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n(t),e.next=3,K(t);case 3:if(t!==oe.EBookingPaymentMethod.Planpay){e.next=6;break}return e.next=6,X(t);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()})))}}),r.createElement("div",{className:"u-marg-top u-flex align-items-center"},r.createElement("div",{className:"u-flex align-items-center justify-content-start"},r.createElement(E.ZP,{icon:E.Tu.Lock,color:y.I.Success}),r.createElement("div",{className:"u-marg-left--light"},r.createElement(h.ZP,{type:h.yG.Small,color:y.I.Success},r.createElement("strong",null,"Secured")))),r.createElement(fe,null))),r.createElement(c.Z,null),r.createElement(se,null),r.createElement("div",{className:"u-pad-top--light u-marg-bottom"},r.createElement(he,null)),ye.Z.isActive()&&r.createElement(r.Fragment,null,r.createElement(c.Z,null),r.createElement("div",null,r.createElement(be,null))),r.createElement("div",{className:"u-flex u-marg-top--heavy justify-content-end"},r.createElement(ue.Z,{disabled:V===oe.EBookingPaymentMethod.Planpay||N,text:d(u.W.Step.Confirmation.ConfirmReservation),history:null,isLoading:N,currentStep:Ce.Z,onClick:J}))),r.createElement(Ee.default,{open:!!I,onClose:W},r.createElement(h.ZP,null,I)),r.createElement(ve,{differences:n.differences,warnings:n.warnings,isLoading:N,onClose:(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,_();case 2:O.push(Ze.Z.getStepUrl());case 3:case"end":return e.stop()}}),e)}))),onProceed:(0,j.Z)(Q().mark((function e(){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(V!==oe.EBookingPaymentMethod.Planpay){e.next=4;break}o({differences:[],warnings:[]}),e.next=6;break;case 4:return e.next=6,F(G.reservationData);case 6:case"end":return e.stop()}}),e)})))}))}var Ye=n(9666),Je=n(3819),Xe=Ie.Provider,Ke=function(e){var t=e.children,n=We(),a=n.queryPaymentMethod,o=n.queryRoomstayId,l=n.queryPlanpayCheckoutId,i=(0,r.useState)(!1),c=(0,g.Z)(i,2),s=c[0],u=c[1],m=(0,r.useState)(""),d=(0,g.Z)(m,2),f=d[0],p=d[1],v=(0,Y.cI)({mode:"onChange"}),E=(0,r.useContext)(A.hy),h=E.getAllValidRows(),y=E.basketAddonRows,b=(0,T.WP)().hotel,C=function(e){return e.userProfiles.map((function(e){return{FirstName:e.Forename,LastName:e.Surname,Phone:e.Phone.replace(" ",""),Email:e.Email,Address:{Line1:e.Address,City:e.City,PostalCode:e.PostCode,Country:e.Country},MarketingOptIn:!1}}))},Z=function(){var e=(0,j.Z)(Q().mark((function e(t){var n;return Q().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=E.currentBasketRows[t].checkDiffFromReservation(e);r&&n.push(r)})),e.next=7;break;case 5:throw Ye.n_({level:Je.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)}}(),x=function(e,t,n,r){return function(){var a=(0,j.Z)(Q().mark((function a(o){var l,i,c,s;return Q().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(G.ZP.instance.sendInteraction("Complete Booking",G.s_.BUTTON,G._J.GUEST_DETAILS),u(!0),a.t0=!t,a.t0){a.next=7;break}return a.next=6,t();case 6:a.t0=a.sent;case 7:if(a.t0){a.next=11;break}return u(!1),a.abrupt("return");case 11:return a.next=13,e();case 13:return i=a.sent,a.prev=14,a.next=17,W.Z.Reservation.bookNow(h,C(o),i,y,o.comment,b.hotelID);case 17:return l=a.sent,E.booked(l),a.next=21,Z(l);case 21:(c=a.sent)?null==n||n(c):null==r||r(l),a.next=30;break;case 25:a.prev=25,a.t1=a.catch(14),console.log(a.t1),p(null!==(s=null===a.t1||void 0===a.t1?void 0:a.t1.Message)&&void 0!==s?s:"Unexpected error returned from the booking database."),u(!1);case 30:case"end":return a.stop()}}),a,null,[[14,25]])})));return function(e){return a.apply(this,arguments)}}()},k=!!l&&!!o&&!!a,S=function(e){var t;return null==e||null===(t=e.reservations)||void 0===t?void 0:t.map((function(e){return e.reservationNumber}))},P=function(){var e=(0,j.Z)(Q().mark((function e(t){var n,r;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:try{if(u(!0),t)if((n=S(t)).length)try{W.Z.Reservation.commit(n,t.itineraryNumber,b.hotelID,l).then((function(e){try{G.ZP.instance.sendReservationConfirmed(E.getAllValidRows(),E.basketAddonRows,e)}catch(e){Ye.Tb("Failed to read reservations from GTM code: "+JSON.stringify(e))}E.checkedOut(e)})).catch((function(e){console.log(e),p("Unexpected error")})).finally((function(){u(!1)}))}catch(e){p(null!==(r=null==e?void 0:e.Message)&&void 0!==r?r:"Unexpected error returned from the booking database.")}else p("Committing reservation failed due to an unexpected error"),A.qL.add({message:"Committing reservation failed due to an unexpected error"}),Ye.Tb("No reservation IDs found when attempting to commit: "+JSON.stringify(t))}catch(e){p("Failed to commit reservation"),console.log("Failed to commit reservation "),console.error(e),Ye.Tb(e)}case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),w=function(){var e=(0,j.Z)(Q().mark((function e(){var t;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(E.reservationData){e.next=2;break}return e.abrupt("return");case 2:if(e.prev=2,!(t=S(E.reservationData)).length){e.next=10;break}return u(!0),e.next=8,W.Z.Reservation.rollback(t,E.reservationData.itineraryNumber,b.hotelID);case 8:e.next=11;break;case 10:Ye.Tb("No reservation IDs found when attempting to rollback: "+JSON.stringify(E.reservationData));case 11:e.next=17;break;case 13:e.prev=13,e.t0=e.catch(2),console.log("Failed to rollback reservations"),Ye.Tb(e.t0);case 17:return e.prev=17,E.rollback(),u(!1),e.finish(17);case 21:case"end":return e.stop()}}),e,null,[[2,13,17,21]])})));return function(){return e.apply(this,arguments)}}(),N=function(){var e=(0,j.Z)(Q().mark((function e(t,n,r,a){return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,v.handleSubmit(x(t,n,r,a))();case 2:case"end":return e.stop()}}),e)})));return function(t,n,r,a){return e.apply(this,arguments)}}();return r.createElement(Y.RV,v,r.createElement(Xe,{value:{book:N,commitReservation:P,rollbackReservation:w,isLoading:s,apiErrors:f,clearApiErrors:function(){return p("")},isBackFromPlanpay:k}},t))};function $e(){return r.createElement(Ke,null,r.createElement(Qe,null))}var et=function(){var e=(0,r.useContext)(A.g7),t=(0,r.useContext)(A.aN).currentStep,n=(0,r.useContext)(A.hy).currentBasketRows,v=(0,p.$)().t,g=(0,B.z)().raise;return(0,r.useEffect)((function(){var e=new V.z(n);g(e)}),[]),r.createElement("div",{className:"container"},r.createElement(m.default,null),r.createElement("div",{className:"row"+(e.screenSize>d.Z.ExtraLarge?" no-gutters":"")},r.createElement("div",{className:"col-md-7 col-xl-8"},e.screenSize>d.Z.Medium&&r.createElement(r.Fragment,null,r.createElement(i.rU,{to:o.Z.getPreviousStepUrl(t)},r.createElement(s.Z,null)),r.createElement("div",{className:"u-marg-top--light u-marg-bottom--heavy"},r.createElement(a.Z,{bold:!0},v(u.W.Navigation.Steps.Confirmation)))),r.createElement("div",{className:"u-marg-top@m-"},r.createElement(H.Z,null))),e.screenSize>d.Z.Medium&&r.createElement("div",{className:"offset-xl-1 col-md-4 col-xl-3 align-self-end"},r.createElement(f.Z,null))),r.createElement(c.Z,null),r.createElement("div",{className:"row"+(e.screenSize>d.Z.ExtraLarge?" no-gutters":"")},r.createElement("div",{className:"col-md-7 col-xl-8 d-table"},r.createElement("div",{className:"block-container"},!U.Z.isActive()&&r.createElement(_,null),r.createElement($e,null))),e.screenSize>d.Z.Medium&&r.createElement("div",{className:"col-xl-3 col-md-5 offset-xl-1"},r.createElement(L,{endDate:q().add(10,"minute")}),r.createElement(l.v,{showImages:!0}))))}},7701:function(e,t,n){(t=n(3645)(!1)).push([e.id,'.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE{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 ._1w9esuEAWeVo01pSbRCYRE+._1w9esuEAWeVo01pSbRCYRE{margin-top:8px}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE._1HXUOfG_q1yvxdAqMJTxpv{background:#f6f6fa;cursor:not-allowed}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE._1HXUOfG_q1yvxdAqMJTxpv ._3kmtWXHaspvwHpgixNLrHZ{border:solid 1px #dfe1e5;background:rgba(0,0,0,0)}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE._1HXUOfG_q1yvxdAqMJTxpv ._3kmtWXHaspvwHpgixNLrHZ::before{background:rgba(0,0,0,0)}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE._1HXUOfG_q1yvxdAqMJTxpv ._1CCxUg3a1cMgFeQKuab4ZB{color:#c0c3cc}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE.XmNJ84nut1siTCddtQEhW ._3kmtWXHaspvwHpgixNLrHZ{background:var(--rs-color-accent-2);border:solid 1px var(--rs-color-accent-1)}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE.XmNJ84nut1siTCddtQEhW ._3kmtWXHaspvwHpgixNLrHZ::before{transform:translate(-50%, -50%) scale(1);background:var(--rs-color-accent-1)}.roomstay-booking-container ._1w9esuEAWeVo01pSbRCYRE.XmNJ84nut1siTCddtQEhW ._1CCxUg3a1cMgFeQKuab4ZB{color:var(--rs-color-navy)}.roomstay-booking-container ._3WTPlkWtf38fd4sYEWOHWF{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;z-index:-1}.roomstay-booking-container ._3kmtWXHaspvwHpgixNLrHZ{flex-shrink:0;width:16px;height:16px;border-radius:100px;position:relative;border:solid 1px var(--rs-color-light-grey)}.roomstay-booking-container ._3kmtWXHaspvwHpgixNLrHZ::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 ._1CCxUg3a1cMgFeQKuab4ZB{color:var(--rs-color-navy);font-size:14px;font-weight:400;line-height:18px;margin-left:8px;transition:.3s}.roomstay-booking-container ._2b4U9HVKpCst_LvAFwO94E{display:block;padding:16px;border-top:solid 1px var(--rs-color-light-grey)}.roomstay-booking-container ._2nA7IF1LViqyTyoWBDZ9VN{padding:8px 16px;display:flex;align-items:center}.roomstay-booking-container ._2nA7IF1LViqyTyoWBDZ9VN:hover{background:rgba(204,204,204,.14)}',""]),t.locals={root:"_1w9esuEAWeVo01pSbRCYRE",disabled:"_1HXUOfG_q1yvxdAqMJTxpv",design:"_3kmtWXHaspvwHpgixNLrHZ",text:"_1CCxUg3a1cMgFeQKuab4ZB",checked:"XmNJ84nut1siTCddtQEhW",input:"_3WTPlkWtf38fd4sYEWOHWF",content:"_2b4U9HVKpCst_LvAFwO94E",header:"_2nA7IF1LViqyTyoWBDZ9VN"},e.exports=t},6728:function(e,t,n){(t=n(3645)(!1)).push([e.id,"._3QZUpAcJfjPS7WbzhW70jI ._3_Rg6DH-HSOj8aYOCLZmW0:first-child ._3rGSy_g5xOnECmj037thsT{border-top-left-radius:8px !important;border-top-right-radius:8px !important}._3QZUpAcJfjPS7WbzhW70jI ._3_Rg6DH-HSOj8aYOCLZmW0:last-child ._3rGSy_g5xOnECmj037thsT{border-bottom:1px solid var(--rs-color-light-grey) !important;border-bottom-left-radius:8px !important;border-bottom-right-radius:8px !important}._3QZUpAcJfjPS7WbzhW70jI ._3rGSy_g5xOnECmj037thsT{border-radius:0 !important;margin-top:0 !important;margin-bottom:0 !important;border-bottom:0 !important}",""]),t.locals={root:"_3QZUpAcJfjPS7WbzhW70jI",wrapper:"_3_Rg6DH-HSOj8aYOCLZmW0",item:"_3rGSy_g5xOnECmj037thsT"},e.exports=t},4166:function(e,t,n){var r=n(3379),a=n(7701);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},6928:function(e,t,n){var r=n(3379),a=n(6728);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}}}]);