@roomstay/frontend 2.3.32 → 2.3.33

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
- "use strict";(("undefined"!=typeof self?self:this).webpackChunkroomstay=("undefined"!=typeof self?self:this).webpackChunkroomstay||[]).push([[975],{2258:function(e,t,n){n.d(t,{Z:function(){return h}});var r=n(885),o=n(360),a=n(7294),l=n(6793),i=n(9478),c=n(1126),m=n(8442),u=n(858),s=n(3010),d=n(8886),f=n(4485),v=n(584),g=n(4744),p=n(7754),y=n(292);function h(e){var t=(0,l.$)().t,n=(0,a.useContext)(o.g7),h=(0,a.useContext)(o.hy),E=(0,a.useState)(!1),S=(0,r.Z)(E,2),Z=S[0],b=S[1],R=(0,a.useState)(!0),N=(0,r.Z)(R,2),x=N[0],C=N[1],P=(0,a.useState)(!0),I=(0,r.Z)(P,2),k=I[0],w=I[1],A=(0,a.useState)(""),D=(0,r.Z)(A,2),M=D[0],W=D[1],Y=(0,a.useState)(""),T=(0,r.Z)(Y,2),G=T[0],L=T[1],O=(0,a.useState)(""),B=(0,r.Z)(O,2),z=B[0],F=B[1],j=(0,a.useState)(""),_=(0,r.Z)(j,2),H=_[0],U=_[1],$=(0,a.useState)([]),q=(0,r.Z)($,2),Q=q[0],J=q[1];return(0,a.useEffect)((function(){var t=h.selectedBasketRow;t&&m.Z.Availability.getCheapestPricePerDay(t.getStartDate(),t.getEndDate(),t.getAdults(),t.getChildren(),t.getPromoCode(),e.hotelId,!0).catch().then((function(n){if(n){for(var r=!0,o=t.getStartDate();o.isBefore(t.getEndDate(),"day");o=o.add(1,"day"))if(!n[o.format(c.yJ)]){r=!1;break}if(b(r),C(!0),r){w(!0);var a=m.Z.Availability.getCrossSellHotelInfo(e.hotelId);L(a.name),W(a.image),F(a.description);var l=["arrive="+t.getStartDate().format("YYYY-M-D"),"depart="+t.getEndDate().format("YYYY-M-D")];t.getAdults()>1&&l.push("adults="+t.getAdults()),t.getChildren()>0&&l.push("children="+t.getChildren()),t.getPromoCode()&&l.push("promocode="+t.getPromoCode()),U(a.checkoutUrl+"#/step/room/?"+l.join("&")),m.Z.Availability.fetchAvailabilityData(t,e.hotelId).catch((function(e){return[]})).then((function(e){null!=e&&e.length?(J(e),w(!1)):(C(!1),w(!1))}))}}}))}),[h.selectedBasketRow]),Z?a.createElement("div",{className:"u-marg-top--heavy u-marg-bottom"},a.createElement("div",{className:"cross-sell-module"},a.createElement("div",{className:"cross-sell-module--image",style:{backgroundImage:"url('".concat(g.Z.resizeImage(M,g.h.Original),"')")}}),a.createElement("div",{className:"cross-sell-module--content u-pad--heavy u-pad@m-"},a.createElement("div",{className:"u-marg-bottom--heavy"},a.createElement("div",{className:"cross-sell-module--content-title u-marg-bottom--light"},a.createElement(s.Z,{bold:!0,size:x?"large":"normal"},t(k?i.W.Step.Room.CrossSellBlock.AvailabilityNearBy1:x?i.W.Step.Room.CrossSellBlock.AvailabilityNearBy2:i.W.Step.Room.CrossSellBlock.DateUnavailable))),x&&a.createElement("div",{className:"cross-sell-module--content-description u-marg-bottom--light"},a.createElement(v.ZP,{color:p.Il.DarkGrey,type:v.yG.Body},a.createElement("strong",{style:{color:p.Il.Accent}},G),a.createElement("div",{dangerouslySetInnerHTML:{__html:z}})))),k?a.createElement(f.Z,null):a.createElement(a.Fragment,null,Q.slice(0,4).map((function(e,n){var r=H+"&room="+e.code,o="u-flex align-items-end";return n<Q.length-1&&(o+=" u-pad-bottom u-border-bottom u-marg-bottom"),a.createElement("a",{key:e.code,className:o,href:r,target:"_blank",rel:"noreferrer"},a.createElement("div",{className:"u-flex flex-column align-items-start justify-content-start"},a.createElement(v.ZP,{type:v.yG.Body,color:p.Il.Accent,bold:!0},e.name),a.createElement(v.ZP,{type:v.yG.Small,color:p.Il.DarkGrey},t(i.W.Step.Room.Sleeps,{maxOccupancy:e.occupancy}))),a.createElement("div",{className:"u-flex flex-column align-items-end align-items-md-end"},a.createElement(v.ZP,{type:v.yG.Small,color:p.Il.DarkGrey,inline:!0},t(i.W.Misc.From)),a.createElement(v.ZP,{type:v.yG.Body,color:p.Il.Accent,bold:!0},a.createElement(u.Z,null,e.getLowestPrice(!0)))))}))),x&&a.createElement("div",{className:"u-marg-top--light u-flex justify-content-start u-w-100@m- u-marg-top--heavy"},a.createElement("a",{className:"link-button --primary --filled --success --icon-right --normal"+(n.screenSize<=y.Z.Medium?" --wide":""),tabIndex:0,type:"button",href:H,target:"_blank",rel:"noreferrer"},a.createElement("span",null,"See all ",Q.length," rooms",a.createElement(d.ZP,{icon:d.Tu.ArrowRight,size:"1em"}))))))):null}},2458:function(e,t,n){n.d(t,{Z:function(){return y}});var r=n(2982),o=n(7688),a=n(7294),l=n(6793),i=n(9478),c=n(3010),m=n(8886),u=n(9874),s=n(5128),d=n(584),f=n(291),v=n(8013),g=n(4354),p=n(7754);function y(e){var t,n=(0,l.$)().t,y=(0,o.WP)().hotel,h=y,E=h.perks,S=h.rooms,Z=null==S?void 0:S[e.room.code],b=null!=Z&&Z.amenities?(0,r.Z)(Z.amenities):[];return null!=Z&&null!==(t=Z.features)&&void 0!==t&&t.length&&Z.features.forEach((function(e){b.push(e)})),a.createElement(s.Z,{title:e.room.name+" "+n(i.W.Step.Room.RoomInfo.Information),open:e.open,size:s.g.Small,onClose:e.onClose},a.createElement("div",null,a.createElement("div",{style:{height:"350px"}},a.createElement(f.Z,{images:e.room.getImages()})),a.createElement("div",{className:"u-marg-heavy u-marg@m-"},a.createElement("div",{className:"u-marg-bottom--light"},a.createElement(c.Z,{bold:!0,size:"large"},e.room.name)),a.createElement(v.R,{room:e.room}),a.createElement("div",{className:"u-marg-bottom--heavy"},a.createElement(d.ZP,{color:p.Il.DarkGrey,type:d.yG.Small},a.createElement("span",{dangerouslySetInnerHTML:{__html:e.room.getShortDescription(!1)||""}}))),!(null!=y&&y.perksHideOnRoomDetail)&&a.createElement("div",{className:"u-marg-bottom--heavy"},!!E&&a.createElement("div",{className:"row"},E.map((function(e,t){return a.createElement("div",{key:t,className:"u-marg-bottom col-6 col-md-4 u-flex align-items-center justify-content-start"},a.createElement("div",{className:"room-perk-icon --has-bg"},e.iconElement?e.iconElement:a.createElement(m.ZP,{icon:e.icon})),a.createElement("div",{className:"u-marg-left--light"},a.createElement(d.ZP,{type:d.yG.Small},e.name)))})))),!(null==b||!b.length)&&a.createElement(a.Fragment,null,a.createElement("div",{className:"u-marg-bottom"},a.createElement(d.ZP,{color:p.Il.Accent,type:d.yG.Small},a.createElement("strong",null,n(i.W.Step.Room.RoomInfo.RoomAmenities)))),a.createElement("div",{className:"row"},b.map((function(e){return a.createElement("div",{key:e.description,className:"col-sm-6 u-marg-bottom--light u-flex justify-content-start"},a.createElement(m.ZP,{icon:m.Tu.Check,color:p.Il.White,backgroundColor:p.Il.Navy,borderRadius:"round",noPadding:!0,size:"16px"}),a.createElement("div",{className:"u-marg-left--light u-flex"},a.createElement(d.ZP,{type:d.yG.Small,inline:!0},e.description)))})))),a.createElement(u.Z,null),a.createElement("div",{className:"u-marg-bottom--heavy"},a.createElement(d.ZP,{type:d.yG.Small,color:p.Il.Graphite},a.createElement("span",{dangerouslySetInnerHTML:{__html:e.room.getLongDescription()||""}})))),a.createElement(g.Z,{featuredRates:e.featuredRates,rates:e.rates,roomCode:e.room.code})))}},9368:function(e,t,n){n.d(t,{F:function(){return C}});var r=n(7462),o=n(5861),a=n(885),l=n(4687),i=n.n(l),c=n(360),m=n(7484),u=n.n(m),s=n(7294),d=n(7536),f=n(6793),v=n(9478),g=n(9740),p=n(8442),y=n(7933),h=n(4854),E=n(3010),S=n(8886),Z=n(584),b=n(1432),R=n(514),N=n(7754),x=n(6431),C=function(){var e=(0,d.cI)(),t=e.register,n=e.handleSubmit,l=e.formState,m=(0,R.W)().hotel,C=(0,s.useContext)(c.hy),P=(0,f.$)().t,I=(0,s.useState)({}),k=(0,a.Z)(I,2),w=k[0],A=k[1],D=(0,s.useState)(!1),M=(0,a.Z)(D,2),W=M[0],Y=M[1],T=function(){var e=(0,o.Z)(i().mark((function e(t){var n,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A({}),Y(!0),e.prev=2,n=C.selectedBasketRow,r="",[{name:"Adults",value:n.getAdults()},{name:"Children",value:n.getChildren()},{name:"Promo Code",value:n.getPromoCode()},{name:"Dates range",value:n.getStayDateRange("ddd D MMM YYYY"," till ")},{name:"Date Sent",value:u()().format("dd D MMM YYYY")}].forEach((function(e){var t=e.name,n=e.value;n&&(r+="".concat(t,": ").concat(n,"\n"))})),e.next=8,p.Z.Error.sendRoomFallbackForm(null==m?void 0:m.hotelID,{name:t.name,telephone:t.telephone,email:t.email,searchQuery:r});case 8:A({success:!0}),e.next=14;break;case 11:e.prev=11,e.t0=e.catch(2),A({success:!1,message:P(v.W.Step.Room.ErrorForm.APIError)});case 14:Y(!1);case 15:case"end":return e.stop()}}),e,null,[[2,11]])})));return function(t){return e.apply(this,arguments)}}();return s.createElement("div",{className:"u-fill-white u-rounded"},s.createElement("div",{className:"row u-pad--heavy"},s.createElement("div",{className:"col-lg-6 d-flex justify-content-center flex-column"},s.createElement("div",{className:"u-marg-bottom--light"},s.createElement(S.ZP,{icon:S.Tu.Error,color:N.Il.Alert,size:"24px"})),s.createElement("div",{className:"u-marg-bottom--light"},s.createElement(E.Z,{bold:!0,color:N.Il.Alert},s.createElement("span",{style:{color:"inherit"},dangerouslySetInnerHTML:{__html:P(v.W.Step.Room.ErrorForm.Title)}}))),s.createElement(Z.ZP,{type:Z.yG.Small},s.createElement("span",{dangerouslySetInnerHTML:{__html:P(v.W.Step.Room.ErrorForm.Description)}}))),s.createElement("div",{className:"col-lg-6"},s.createElement("form",null,s.createElement(g.Z,{open:!!l.errors},Object.values(l.errors).map((function(e,t){return s.createElement(y.ZP,{key:t,type:y.NK.Danger},s.createElement(Z.ZP,{type:Z.yG.Small},null==e?void 0:e.message))}))),s.createElement("div",{className:"u-marg-bottom--light u-marg-top"},s.createElement(b.Z,(0,r.Z)({placeholder:P(v.W.Step.Room.ErrorForm.Inputs.Name)},t("name",{required:{value:!0,message:"".concat(P(v.W.Step.Room.ErrorForm.Inputs.Name)," is a required field")}})))),s.createElement("div",{className:"u-marg-bottom--light"},s.createElement(b.Z,(0,r.Z)({placeholder:P(v.W.Step.Room.ErrorForm.Inputs.Email)},t("email",{required:{value:!0,message:"".concat(P(v.W.Step.Room.ErrorForm.Inputs.Email)," is a required field")},pattern:{value:x.CU,message:"Email must be valid"}})))),s.createElement("div",{className:"u-marg-bottom--light"},s.createElement(b.Z,(0,r.Z)({placeholder:P(v.W.Step.Room.ErrorForm.Inputs.Telephone)},t("telephone",{required:{value:!0,message:"".concat(P(v.W.Step.Room.ErrorForm.Inputs.Telephone)," is a required field")}})))),s.createElement(h.Z,{filled:!0,primary:!0,onClick:n(T),isLoading:W,disabled:W||w.success},P(v.W.Step.Room.ErrorForm.ContactUsButton)),s.createElement(g.Z,{open:!!w.success},s.createElement("div",{className:"u-pad-top"},s.createElement(Z.ZP,{color:N.Il.Success},P(v.W.Step.Room.ErrorForm.ConfirmationMessage)))),s.createElement(g.Z,{open:!1===w.success},s.createElement("div",{className:"u-pad-top"},s.createElement(Z.ZP,{color:N.Il.Alert},w.message)))))))}},2870:function(e,t,n){n.d(t,{y:function(){return a}});var r=n(360),o=n(7294),a=function(){var e=(0,o.useContext)(r.hy).selectedBasketRow;return o.createElement("script",{type:"application/ld+json"},JSON.stringify({"@context":"https://structured-data.triptease.io","@type":"LodgingSearch",checkinTime:null==e?void 0:e.getStartDate().format("YYYY-M-D"),checkoutTime:null==e?void 0:e.getEndDate().format("YYYY-M-D"),numAdults:null==e?void 0:e.getAdults(),numChildren:null==e?void 0:e.getChildren(),numRooms:"1",offerCode:null==e?void 0:e.getPromoCode()}))}},9546:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(2982),o=n(7688),a=n(7294),l=n(6793),i=n(9478),c=n(3351),m=n(3261);function u(e){var t,n,u,s=(0,o.WP)().hotel,d=(0,l.$)().t,f=null!==(t=null===(n=e.row)||void 0===n?void 0:n.getAdults())&&void 0!==t?t:1,v=Math.max((null==s?void 0:s.maxOccupancy)-(null===(u=e.row)||void 0===u?void 0:u.getChildren()),f);return(v<1||isNaN(v))&&(v=1),a.createElement(c.P,{nativeOnMobile:!0,options:(0,r.Z)(Array(v)).map((function(e,t){return t+=1,{text:m.Z.pluralWithDictAndCount(t,i.W.Step.Date.Adult,d),value:t.toString()}})),value:null==f?void 0:f.toString(),onChange:e.onChange,keyName:"value",labelName:"text",inputLabelColor:e.labelColor})}},8341:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(2982),o=n(7688),a=n(7294),l=n(6793),i=n(9478),c=n(3351),m=n(3261);function u(e){var t,n,u,s=(0,o.WP)().hotel,d=(0,l.$)().t,f=null!==(t=null===(n=e.row)||void 0===n?void 0:n.getChildren())&&void 0!==t?t:1,v=Math.max((null==s?void 0:s.maxOccupancy)+1-(null===(u=e.row)||void 0===u?void 0:u.getAdults()));return(v<1||isNaN(v))&&(v=1),a.createElement(c.P,{nativeOnMobile:!0,options:(0,r.Z)(Array(v)).map((function(e,t){return{text:m.Z.pluralWithDictAndCount(t,i.W.Step.Date.Child,d),value:t.toString()}})),value:null==f?void 0:f.toString(),onChange:e.onChange,keyName:"value",labelName:"text",inputLabelColor:e.labelColor})}},4101:function(e,t,n){n.d(t,{Z:function(){return Y}});var r=n(4942),o=n(885),a=n(360),l=n(7688),i=n(4184),c=n.n(i),m=n(7294),u=n(6793),s=n(9478),d=n(9740),f=n(4854),v=n(858),g=n(3010),p=n(8886),y=n(6573),h=n(584),E=n(291),S=n(8013),Z=n(292);function b(e){var t,n=(0,m.useContext)(a.g7),r=e.perks,l=n.screenSize<=Z.Z.Large,i=(0,m.useState)(null===(t=r[0])||void 0===t?void 0:t.name),u=(0,o.Z)(i,2),s=u[0],d=u[1],f=c()("room-perk-icon",{"--has-bg":l});return m.createElement(m.Fragment,null,!(null==r||!r.length)&&m.createElement("ul",null,r.map((function(e,t){if(!(l&&t>=4))return m.createElement("li",{key:t,onClick:function(){d(e.name)}},m.createElement("div",{className:f},e.iconElement?e.iconElement:m.createElement(p.ZP,{icon:e.icon})),m.createElement("div",{className:"u-marg-right u-none@l- u-block@m- "+(l&&s!==e.name||n.screenSize===Z.Z.Tiny?"u-none-2":"")},m.createElement(h.xv,{type:h.yG.Small},e.name)))}))))}var R=n(7700),N=n(4354),x=n(2458),C=n(9723),P=n(6716),I=n(8361),k=n(3633),w=n(4744),A=n(7754),D=n(1715),M=n(4544);function W(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}function Y(e){var t,n=(0,m.useState)([]),i=(0,o.Z)(n,2),Y=i[0],T=i[1],G=(0,m.useState)([]),L=(0,o.Z)(G,2),O=L[0],B=L[1],z=(0,m.useState)(null),F=(0,o.Z)(z,2),j=F[0],_=F[1],H=(0,m.useState)(!1),U=(0,o.Z)(H,2),$=U[0],q=U[1],Q=(0,u.$)().t,J=(0,m.useContext)(a.g7),V=(0,m.useContext)(a.hy),K=(0,m.useContext)(a.Qm),X=(0,l.WP)().hotel,ee=e.room,te=c()("room-details",(0,r.Z)({},"+is-open",j));(0,m.useEffect)((function(){var t;null!==(t=V.selectedBasketRow)&&void 0!==t&&t.getRoom()&&V.selectedBasketRow.getRoom().code===e.room.code&&_(!0),M.ZP.instance.addRoomImpression(ee)}),[V.selectedBasketRow]),(0,m.useEffect)((function(){var e=[],t=[];if(k.Z.isActive()){var n,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 W(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)?W(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}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 a,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,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}(ee.getRates());try{for(r.s();!(n=r.n()).done;){var o,a,l,i=n.value;(null===(o=i.promoCode)||void 0===o?void 0:o.toLowerCase())===(null===(a=V.selectedBasketRow)||void 0===a||null===(l=a.getPromoCode())||void 0===l?void 0:l.toLowerCase())?t.unshift(i):e.push(i)}}catch(e){r.e(e)}finally{r.f()}t.length>0&&(_(!0),T(t))}else e=ee.getRates();B(e)}),[ee.getRates()]);var ne=null==X||null===(t=X.perks)||void 0===t?void 0:t.slice(0,5),re=ee.getShortDescription(),oe=J.screenSize<=Z.Z.Large,ae=j||J.screenSize<=Z.Z.Medium&&null===j,le=Math.round(ee.getLowestPrice(!1,!0)),ie=J.screenSize>Z.Z.Medium&&le.toLocaleString().length<7?"large":"normal",ce=function(e){return Math.round(D.z7(e,!0,K.currentCurrency,null==X?void 0:X.defaultCurrency))},me=(0,C.Z)({hideDecimals:!0,children:le}),ue=me.value,se=me.isLoading,de=V.selectedBasketRow,fe=(0,P.Z)().hasPricePreview;return m.createElement("div",{className:"room-details-container ".concat(e.disableMarginBottom?"":"u-marg-bottom")},m.createElement("div",{className:te},m.createElement("div",{className:"room-details--image"},m.createElement(E.Z,{images:e.room.getImages(),imageSize:w.h.Medium})),m.createElement("div",{className:"room-details--content u-pad--heavy u-pad@l-"},m.createElement("div",{className:"u-marg-bottom"},J.screenSize>Z.Z.Large&&m.createElement(m.Fragment,null,m.createElement("div",{className:"u-marg-bottom"},m.createElement(R.Z,{room:ee,limit:2}))),m.createElement("div",{className:"room-details--content-title u-marg-bottom--light"},m.createElement(g.Z,{bold:!0},ee.name)),m.createElement(S.R,{room:ee}),m.createElement("div",{className:"room-details--content-description u-marg-bottom--light"},m.createElement(h.ZP,{color:A.Il.DarkGrey,type:h.yG.Small},m.createElement("span",{dangerouslySetInnerHTML:{__html:(null==re?void 0:re.replace(/<br(\/|)>/g,""))||""}})))),m.createElement("div",{className:"row"},m.createElement("div",{className:"col-md-6 u-flex u-marg-bottom@m- flex-column align-items-start"},!(null!=X&&X.perksHideOnRoomRow)&&m.createElement("div",{className:"room-details--content-perks u-marg-bottom@m-"},oe&&m.createElement("div",{className:"u-marg-bottom"},m.createElement(h.ZP,{type:h.yG.Small,bold:!0,color:A.Il.Accent},Q(s.W.Misc.Perks.AndYouGetAll))),m.createElement(b,{perks:ne})),m.createElement(f.Z,{icon:p.Tu.ArrowRight2,isText:!0,primary:!0,size:"tiny",iconPosition:"right",onClick:function(){M.ZP.instance.sendInteraction("More Room Details",M.s_.LINK,M._J.ROOMS),q(!0)}},Q(s.W.Step.Room.RoomInfo.MoreDetails))),m.createElement("div",{className:"col-md-6 u-flex justify-content-end flex-column align-items-start align-items-md-end"},m.createElement(h.ZP,{type:h.yG.Small,color:A.Il.Navy,inline:!0},Q(s.W.Misc.From)),m.createElement("div",{className:"room-details--content-price flex-row align-items-end"},m.createElement(g.Z,{size:ie,bold:!0},m.createElement(v.Z,{hideDecimals:!0},le)),m.createElement(h.ZP,{color:A.Il.DarkGrey,inline:!0},"/",Q(s.W.Misc.Night))),m.createElement(h.ZP,{type:h.yG.Small,color:A.Il.Grey,inline:!0,className:"u-nowrap"},ee.getLowestPriceType()===I.I.IncludingFeesAndTaxes?Q(s.W.Step.Room.RoomInfo.IncludesTaxes):Q(s.W.Step.Room.ExcludingTaxes)))),m.createElement("div",{className:"u-flex-direction-column u-flex u-flex-align-flex-end u-flex-align-flex-start@m- u-w-100@m-"},!se&&fe?m.createElement("div",{className:"u-marg-top--light"},m.createElement(y.C,{price:ue,checkin:((null==de?void 0:de.getStartDate())||V.endDate).format("YYYY-MM-DD"),currency:K.currentCurrency})):null,m.createElement(f.Z,{className:"u-marg-top--light",name:"ViewRatesNowButton",primary:!0,primaryActive:!!ae,filled:!0,stopIconAnimation:!0,icon:ae?p.Tu.ArrowUp2:p.Tu.ArrowDown2,iconPosition:"right",onClick:function(){ae||M.ZP.instance.sendRoomClick(ee,V.startDate,V.endDate),_(!ae)},wide:J.screenSize<=Z.Z.Large,textColor:ae?"light"===(0,A.nt)(null==X?void 0:X.colors.accent3.slice(1))?A.Il.Navy:A.Il.White:void 0},Q(ae?s.W.Step.Room.RoomInfo.CloseRates:s.W.Step.Room.RoomInfo.ViewRates))))),m.createElement(d.Z,{open:!!ae},m.createElement(N.Z,{roomCode:ee.code,rates:O,featuredRates:Y})),m.createElement(x.Z,{open:$,room:e.room,rates:O,featuredRates:Y,onClose:function(){q(!1)}}),ee.getRates().map((function(e){return m.createElement("script",{key:ee.code+"-"+e.code,type:"application/ld+json"},JSON.stringify({"@context":"http://schema.org/","@type":"Offer",itemOffered:{"@type":"HotelRoom",name:ee.name},name:e.name,identifier:e.code,priceSpecification:{"@type":"UnitPriceSpecification",price:ce(e.getAveragePrice(!0)),basePrice:ce(e.getTotalPrice(!0)),totalPrice:ce(e.getAveragePrice()),priceCurrency:K.currentCurrency,unitText:"Nightly"}}))})))}},8013:function(e,t,n){n.d(t,{R:function(){return u}});var r=n(7688),o=n(7294),a=n(6793),l=n(8886),i=n(584),c=n(9478),m=n(7754);function u(e){var t,n,u,s,d,f=(0,r.WP)().hotel,v=(0,a.$)().t,g=null==f||null===(t=f.rooms)||void 0===t?void 0:t[null===(n=e.room)||void 0===n?void 0:n.code],p=null==f||null===(u=f.overwrites)||void 0===u?void 0:u[null===(s=e.room)||void 0===s?void 0:s.code],y=null!==(d=e.textColor)&&void 0!==d?d:m.Il.DarkGrey,h="".concat((null==g?void 0:g.bedQuantity)>0?null==g?void 0:g.bedQuantity:""," ").concat(null==g?void 0:g.bedType);return null!=g&&g.bedTypeOverride&&(h=g.bedTypeOverride),o.createElement("ul",{className:"u-inline-flex u-flex-gap u-flex-wrap u-marg-bottom"},o.createElement("li",{className:"u-flex align-items-center"},o.createElement(l.ZP,{icon:l.Tu.People,size:"24px",color:m.Il.Navy}),o.createElement("div",{className:"u-pad-left--light"},o.createElement(i.xv,{type:i.yG.Small,inline:!0,color:y},v(c.W.Step.Room.Sleeps,{maxOccupancy:null==g?void 0:g.maxOccupancy})))),o.createElement("li",{className:"u-flex align-items-center"},o.createElement(l.ZP,{icon:l.Tu.Bed,size:"24px",color:m.Il.Navy}),o.createElement("div",{className:"u-pad-left--light"},o.createElement(i.xv,{type:i.yG.Small,inline:!0,color:y},h))),!(null==p||!p.RoomDimensions)&&o.createElement("li",{className:"u-flex align-items-center"},o.createElement(l.ZP,{icon:l.Tu.RoomSize,size:"24px",color:m.Il.Navy}),o.createElement("div",{className:"u-pad-left--light"},o.createElement(i.xv,{type:i.yG.Small,inline:!0,color:y},p.RoomDimensions))))}},9699:function(e,t,n){n.d(t,{i:function(){return c}});var r=n(5671),o=n(3144),a=n(136),l=n(2963),i=n(1120);var c=function(e){(0,a.Z)(m,e);var t,n,c=(t=m,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 o=(0,i.Z)(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return(0,l.Z)(this,e)});function m(e){var t;return(0,r.Z)(this,m),(t=c.call(this)).search=void 0,t.search=e,t}return(0,o.Z)(m,null,[{key:"getLabel",value:function(){return"Search/Guest"}}]),m}(n(7112).x)},9136:function(e,t,n){n.d(t,{w:function(){return d}});var r=n(885),o=n(360),a=n(9699),l=n(119),i=n(7688),c=n(7484),m=n.n(c),u=n(7294),s=n(4862),d=function(){var e=(0,i.WP)().hotel,t=(0,u.useContext)(o.Qm),n=(0,u.useContext)(o.g7),c=(0,u.useContext)(o.P0).roomstayMember,d=(0,u.useContext)(o.hy),f=d.attemptSelectUnfilledRow,v=d.selectedBasketRow,g=d.getAllValidRows,p=(0,u.useState)([]),y=(0,r.Z)(p,2),h=y[0],E=y[1],S=(0,u.useState)(!1),Z=(0,r.Z)(S,2),b=Z[0],R=Z[1],N=(0,u.useState)(null),x=(0,r.Z)(N,2),C=x[0],P=x[1],I=(0,u.useState)(null),k=(0,r.Z)(I,2),w=k[0],A=k[1],D=null==v?void 0:v.getStartDate(),M=null==v?void 0:v.getEndDate(),W=null==v?void 0:v.getPromoCode(),Y=null==v?void 0:v.getAdults(),T=null==v?void 0:v.getChildren(),G=(0,i.zX)().raise,L=(0,u.useMemo)((function(){var t,n;if(!c||0===(null===(t=c.bookings)||void 0===t?void 0:t.length))return null;var r="";return c.bookings.forEach((function(t){t.hotelId===(null==e?void 0:e.hotelID)&&Object.values(t.itinerary).map((function(e){var t=e.roomCode,o=e.nights,a=Object.keys(o).map(m()),l=m()(Math.max.apply(null,a.map((function(e){return+e}))));n&&!l.isAfter(l)||(n=l,r=t)}))})),h.find((function(e){return e.code===r}))}),[h,c]);return(0,u.useEffect)((function(){var r=!1;try{var o={checkInTime:null==D?void 0:D.format("YYYY-M-D"),checkOutTime:null==M?void 0:M.format("YYYY-M-D"),numAdults:Y,numChildren:T,numRooms:1,promoCode:W},i=new a.i(o);G(i);var c=Object.values(n.currentFilters).filter((function(e){return!!e})),m=v;if(m||h.length||(m=f()),!m){var u=g();m=u[u.length-1]}m&&(R(!0),s.Z.getRoomList(m,c,null==e?void 0:e.hotelID).then((function(e){if(!r){var n;E(e),P(!!v),A(!1);var a=null!==(n=null==e?void 0:e.map((function(e){var n,r;return{name:e.name,code:e.code,lowestPrice:e.getLowestPrice(),highestPrice:e.getHighestPrice(),currency:t.currentCurrency,rates:null!==(n=null===(r=e.getRates())||void 0===r?void 0:r.map((function(e){return{name:e.name,code:e.code,price:{averagePrice:e.getAveragePrice(),totalPrice:e.getTotalPrice(),currency:t.currentCurrency}}})))&&void 0!==n?n:[]}})))&&void 0!==n?n:[],i=new l.j(o,a);G(i)}})).catch((function(){r||(E([]),P(null),A(!0))})).finally((function(){R(!1)})))}catch(e){}return function(){R(!1),r=!0}}),[Y,T,D,M,W,t.currentLanguage,n.currentFilters,null==v?void 0:v.getStale()]),{isLoading:b,rooms:h,openRoom:C,apiHasError:w,retargetingRoom:L}}},4862:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(5861),o=n(3144),a=n(5671),l=n(4687),i=n.n(l),c=n(8442);function m(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 u=(0,o.Z)((function e(){(0,a.Z)(this,e)}));u.getRoomList=function(){var e=(0,r.Z)(i().mark((function e(t,n,r){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=u,e.next=3,u.getUnfilteredRoomList(t,r);case 3:return e.t1=e.sent,e.t2=n,e.abrupt("return",e.t0.filterRooms.call(e.t0,e.t1,e.t2));case 6:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),u.filterRooms=function(e,t){var n=[];return e.forEach((function(e){var r=e;r.filteredRates=e.getOriginalRates();var o,a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}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 a,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,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}(t);try{for(a.s();!(o=a.n()).done;){var l=o.value;if(l&&!(r=l.check(e)))break}}catch(e){a.e(e)}finally{a.f()}r&&n.push(r)})),n.filter((function(e){var t;return!(null===(t=e.filteredRates)||void 0===t||!t.length)}))},u.getUnfilteredRoomList=function(){var e=(0,r.Z)(i().mark((function e(t,n){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.Z.Availability.fetchAvailabilityData(t,n));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()}}]);
1
+ "use strict";(("undefined"!=typeof self?self:this).webpackChunkroomstay=("undefined"!=typeof self?self:this).webpackChunkroomstay||[]).push([[975],{2258:function(e,t,n){n.d(t,{Z:function(){return h}});var r=n(885),o=n(360),a=n(7294),l=n(6793),i=n(9478),c=n(1126),m=n(8442),u=n(858),s=n(3010),d=n(8886),f=n(4485),v=n(584),g=n(4744),p=n(7754),y=n(292);function h(e){var t=(0,l.$)().t,n=(0,a.useContext)(o.g7),h=(0,a.useContext)(o.hy),E=(0,a.useState)(!1),S=(0,r.Z)(E,2),Z=S[0],b=S[1],R=(0,a.useState)(!0),N=(0,r.Z)(R,2),x=N[0],C=N[1],P=(0,a.useState)(!0),k=(0,r.Z)(P,2),I=k[0],w=k[1],A=(0,a.useState)(""),D=(0,r.Z)(A,2),M=D[0],W=D[1],Y=(0,a.useState)(""),T=(0,r.Z)(Y,2),G=T[0],L=T[1],O=(0,a.useState)(""),B=(0,r.Z)(O,2),z=B[0],F=B[1],j=(0,a.useState)(""),_=(0,r.Z)(j,2),H=_[0],U=_[1],$=(0,a.useState)([]),q=(0,r.Z)($,2),J=q[0],Q=q[1];return(0,a.useEffect)((function(){var t=h.selectedBasketRow;t&&m.Z.Availability.getCheapestPricePerDay(t.getStartDate(),t.getEndDate(),t.getAdults(),t.getChildren(),t.getPromoCode(),e.hotelId,!0).catch().then((function(n){if(n){for(var r=!0,o=t.getStartDate();o.isBefore(t.getEndDate(),"day");o=o.add(1,"day"))if(!n[o.format(c.yJ)]){r=!1;break}if(b(r),C(!0),r){w(!0);var a=m.Z.Availability.getCrossSellHotelInfo(e.hotelId);L(a.name),W(a.image),F(a.description);var l=["arrive="+t.getStartDate().format("YYYY-M-D"),"depart="+t.getEndDate().format("YYYY-M-D")];t.getAdults()>1&&l.push("adults="+t.getAdults()),t.getChildren()>0&&l.push("children="+t.getChildren()),t.getPromoCode()&&l.push("promocode="+t.getPromoCode()),U(a.checkoutUrl+"#/step/room/?"+l.join("&")),m.Z.Availability.fetchAvailabilityData(t,e.hotelId).catch((function(e){return[]})).then((function(e){null!=e&&e.length?(Q(e),w(!1)):(C(!1),w(!1))}))}}}))}),[h.selectedBasketRow]),Z?a.createElement("div",{className:"u-marg-top--heavy u-marg-bottom"},a.createElement("div",{className:"cross-sell-module"},a.createElement("div",{className:"cross-sell-module--image",style:{backgroundImage:"url('".concat(g.Z.resizeImage(M,g.h.Original),"')")}}),a.createElement("div",{className:"cross-sell-module--content u-pad--heavy u-pad@m-"},a.createElement("div",{className:"u-marg-bottom--heavy"},a.createElement("div",{className:"cross-sell-module--content-title u-marg-bottom--light"},a.createElement(s.Z,{bold:!0,size:x?"large":"normal"},t(I?i.W.Step.Room.CrossSellBlock.AvailabilityNearBy1:x?i.W.Step.Room.CrossSellBlock.AvailabilityNearBy2:i.W.Step.Room.CrossSellBlock.DateUnavailable))),x&&a.createElement("div",{className:"cross-sell-module--content-description u-marg-bottom--light"},a.createElement(v.ZP,{color:p.Il.DarkGrey,type:v.yG.Body},a.createElement("strong",{style:{color:p.Il.Accent}},G),a.createElement("div",{dangerouslySetInnerHTML:{__html:z}})))),I?a.createElement(f.Z,null):a.createElement(a.Fragment,null,J.slice(0,4).map((function(e,n){var r=H+"&room="+e.code,o="u-flex align-items-end";return n<J.length-1&&(o+=" u-pad-bottom u-border-bottom u-marg-bottom"),a.createElement("a",{key:e.code,className:o,href:r,target:"_blank",rel:"noreferrer"},a.createElement("div",{className:"u-flex flex-column align-items-start justify-content-start"},a.createElement(v.ZP,{type:v.yG.Body,color:p.Il.Accent,bold:!0},e.name),a.createElement(v.ZP,{type:v.yG.Small,color:p.Il.DarkGrey},t(i.W.Step.Room.Sleeps,{maxOccupancy:e.occupancy}))),a.createElement("div",{className:"u-flex flex-column align-items-end align-items-md-end"},a.createElement(v.ZP,{type:v.yG.Small,color:p.Il.DarkGrey,inline:!0},t(i.W.Misc.From)),a.createElement(v.ZP,{type:v.yG.Body,color:p.Il.Accent,bold:!0},a.createElement(u.Z,null,e.getLowestPrice(!0)))))}))),x&&a.createElement("div",{className:"u-marg-top--light u-flex justify-content-start u-w-100@m- u-marg-top--heavy"},a.createElement("a",{className:"link-button --primary --filled --success --icon-right --normal"+(n.screenSize<=y.Z.Medium?" --wide":""),tabIndex:0,type:"button",href:H,target:"_blank",rel:"noreferrer"},a.createElement("span",null,"See all ",J.length," rooms",a.createElement(d.ZP,{icon:d.Tu.ArrowRight,size:"1em"}))))))):null}},2458:function(e,t,n){n.d(t,{Z:function(){return y}});var r=n(2982),o=n(7688),a=n(7294),l=n(6793),i=n(9478),c=n(3010),m=n(8886),u=n(9874),s=n(5128),d=n(584),f=n(291),v=n(8013),g=n(4354),p=n(7754);function y(e){var t,n=(0,l.$)().t,y=(0,o.WP)().hotel,h=y,E=h.perks,S=h.rooms,Z=null==S?void 0:S[e.room.code],b=null!=Z&&Z.amenities?(0,r.Z)(Z.amenities):[];return null!=Z&&null!==(t=Z.features)&&void 0!==t&&t.length&&Z.features.forEach((function(e){b.push(e)})),a.createElement(s.Z,{title:e.room.name+" "+n(i.W.Step.Room.RoomInfo.Information),open:e.open,size:s.g.Small,onClose:e.onClose},a.createElement("div",null,a.createElement("div",{style:{height:"350px"}},a.createElement(f.Z,{images:e.room.getImages()})),a.createElement("div",{className:"u-marg-heavy u-marg@m-"},a.createElement("div",{className:"u-marg-bottom--light"},a.createElement(c.Z,{bold:!0,size:"large"},e.room.name)),a.createElement(v.R,{room:e.room}),a.createElement("div",{className:"u-marg-bottom--heavy"},a.createElement(d.ZP,{color:p.Il.DarkGrey,type:d.yG.Small},a.createElement("span",{dangerouslySetInnerHTML:{__html:e.room.getShortDescription(!1)||""}}))),!(null!=y&&y.perksHideOnRoomDetail)&&a.createElement("div",{className:"u-marg-bottom--heavy"},!!E&&a.createElement("div",{className:"row"},E.map((function(e,t){return a.createElement("div",{key:t,className:"u-marg-bottom col-6 col-md-4 u-flex align-items-center justify-content-start"},a.createElement("div",{className:"room-perk-icon --has-bg"},e.iconElement?e.iconElement:a.createElement(m.ZP,{icon:e.icon})),a.createElement("div",{className:"u-marg-left--light"},a.createElement(d.ZP,{type:d.yG.Small},e.name)))})))),!(null==b||!b.length)&&a.createElement(a.Fragment,null,a.createElement("div",{className:"u-marg-bottom"},a.createElement(d.ZP,{color:p.Il.Accent,type:d.yG.Small},a.createElement("strong",null,n(i.W.Step.Room.RoomInfo.RoomAmenities)))),a.createElement("div",{className:"row"},b.map((function(e){return a.createElement("div",{key:e.description,className:"col-sm-6 u-marg-bottom--light u-flex justify-content-start"},a.createElement(m.ZP,{icon:m.Tu.Check,color:p.Il.White,backgroundColor:p.Il.Navy,borderRadius:"round",noPadding:!0,size:"16px"}),a.createElement("div",{className:"u-marg-left--light u-flex"},a.createElement(d.ZP,{type:d.yG.Small,inline:!0},e.description)))})))),a.createElement(u.Z,null),a.createElement("div",{className:"u-marg-bottom--heavy"},a.createElement(d.ZP,{type:d.yG.Small,color:p.Il.Graphite},a.createElement("span",{dangerouslySetInnerHTML:{__html:e.room.getLongDescription()||""}})))),a.createElement(g.Z,{featuredRates:e.featuredRates,rates:e.rates,roomCode:e.room.code})))}},9368:function(e,t,n){n.d(t,{F:function(){return C}});var r=n(7462),o=n(5861),a=n(885),l=n(4687),i=n.n(l),c=n(360),m=n(7484),u=n.n(m),s=n(7294),d=n(7536),f=n(6793),v=n(9478),g=n(9740),p=n(8442),y=n(7933),h=n(4854),E=n(3010),S=n(8886),Z=n(584),b=n(1432),R=n(514),N=n(7754),x=n(6431),C=function(){var e=(0,d.cI)(),t=e.register,n=e.handleSubmit,l=e.formState,m=(0,R.W)().hotel,C=(0,s.useContext)(c.hy),P=(0,f.$)().t,k=(0,s.useState)({}),I=(0,a.Z)(k,2),w=I[0],A=I[1],D=(0,s.useState)(!1),M=(0,a.Z)(D,2),W=M[0],Y=M[1],T=function(){var e=(0,o.Z)(i().mark((function e(t){var n,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A({}),Y(!0),e.prev=2,n=C.selectedBasketRow,r="",[{name:"Adults",value:n.getAdults()},{name:"Children",value:n.getChildren()},{name:"Promo Code",value:n.getPromoCode()},{name:"Dates range",value:n.getStayDateRange("ddd D MMM YYYY"," till ")},{name:"Date Sent",value:u()().format("dd D MMM YYYY")}].forEach((function(e){var t=e.name,n=e.value;n&&(r+="".concat(t,": ").concat(n,"\n"))})),e.next=8,p.Z.Error.sendRoomFallbackForm(null==m?void 0:m.hotelID,{name:t.name,telephone:t.telephone,email:t.email,searchQuery:r});case 8:A({success:!0}),e.next=14;break;case 11:e.prev=11,e.t0=e.catch(2),A({success:!1,message:P(v.W.Step.Room.ErrorForm.APIError)});case 14:Y(!1);case 15:case"end":return e.stop()}}),e,null,[[2,11]])})));return function(t){return e.apply(this,arguments)}}();return s.createElement("div",{className:"u-fill-white u-rounded"},s.createElement("div",{className:"row u-pad--heavy"},s.createElement("div",{className:"col-lg-6 d-flex justify-content-center flex-column"},s.createElement("div",{className:"u-marg-bottom--light"},s.createElement(S.ZP,{icon:S.Tu.Error,color:N.Il.Alert,size:"24px"})),s.createElement("div",{className:"u-marg-bottom--light"},s.createElement(E.Z,{bold:!0,color:N.Il.Alert},s.createElement("span",{style:{color:"inherit"},dangerouslySetInnerHTML:{__html:P(v.W.Step.Room.ErrorForm.Title)}}))),s.createElement(Z.ZP,{type:Z.yG.Small},s.createElement("span",{dangerouslySetInnerHTML:{__html:P(v.W.Step.Room.ErrorForm.Description)}}))),s.createElement("div",{className:"col-lg-6"},s.createElement("form",null,s.createElement(g.Z,{open:!!l.errors},Object.values(l.errors).map((function(e,t){return s.createElement(y.ZP,{key:t,type:y.NK.Danger},s.createElement(Z.ZP,{type:Z.yG.Small},null==e?void 0:e.message))}))),s.createElement("div",{className:"u-marg-bottom--light u-marg-top"},s.createElement(b.Z,(0,r.Z)({placeholder:P(v.W.Step.Room.ErrorForm.Inputs.Name)},t("name",{required:{value:!0,message:"".concat(P(v.W.Step.Room.ErrorForm.Inputs.Name)," is a required field")}})))),s.createElement("div",{className:"u-marg-bottom--light"},s.createElement(b.Z,(0,r.Z)({placeholder:P(v.W.Step.Room.ErrorForm.Inputs.Email)},t("email",{required:{value:!0,message:"".concat(P(v.W.Step.Room.ErrorForm.Inputs.Email)," is a required field")},pattern:{value:x.CU,message:"Email must be valid"}})))),s.createElement("div",{className:"u-marg-bottom--light"},s.createElement(b.Z,(0,r.Z)({placeholder:P(v.W.Step.Room.ErrorForm.Inputs.Telephone)},t("telephone",{required:{value:!0,message:"".concat(P(v.W.Step.Room.ErrorForm.Inputs.Telephone)," is a required field")}})))),s.createElement(h.Z,{filled:!0,primary:!0,onClick:n(T),isLoading:W,disabled:W||w.success},P(v.W.Step.Room.ErrorForm.ContactUsButton)),s.createElement(g.Z,{open:!!w.success},s.createElement("div",{className:"u-pad-top"},s.createElement(Z.ZP,{color:N.Il.Success},P(v.W.Step.Room.ErrorForm.ConfirmationMessage)))),s.createElement(g.Z,{open:!1===w.success},s.createElement("div",{className:"u-pad-top"},s.createElement(Z.ZP,{color:N.Il.Alert},w.message)))))))}},2870:function(e,t,n){n.d(t,{y:function(){return a}});var r=n(360),o=n(7294),a=function(){var e=(0,o.useContext)(r.hy).selectedBasketRow;return o.createElement("script",{type:"application/ld+json"},JSON.stringify({"@context":"https://structured-data.triptease.io","@type":"LodgingSearch",checkinTime:null==e?void 0:e.getStartDate().format("YYYY-M-D"),checkoutTime:null==e?void 0:e.getEndDate().format("YYYY-M-D"),numAdults:null==e?void 0:e.getAdults(),numChildren:null==e?void 0:e.getChildren(),numRooms:"1",offerCode:null==e?void 0:e.getPromoCode()}))}},9546:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(2982),o=n(7688),a=n(7294),l=n(6793),i=n(9478),c=n(3351),m=n(3261);function u(e){var t,n,u,s=(0,o.WP)().hotel,d=(0,l.$)().t,f=null!==(t=null===(n=e.row)||void 0===n?void 0:n.getAdults())&&void 0!==t?t:1,v=Math.max((null==s?void 0:s.maxOccupancy)-(null===(u=e.row)||void 0===u?void 0:u.getChildren()),f);return(v<1||isNaN(v))&&(v=1),a.createElement(c.P,{nativeOnMobile:!0,options:(0,r.Z)(Array(v)).map((function(e,t){return t+=1,{text:m.Z.pluralWithDictAndCount(t,i.W.Step.Date.Adult,d),value:t.toString()}})),value:null==f?void 0:f.toString(),onChange:e.onChange,keyName:"value",labelName:"text",inputLabelColor:e.labelColor})}},8341:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(2982),o=n(7688),a=n(7294),l=n(6793),i=n(9478),c=n(3351),m=n(3261);function u(e){var t,n,u,s=(0,o.WP)().hotel,d=(0,l.$)().t,f=null!==(t=null===(n=e.row)||void 0===n?void 0:n.getChildren())&&void 0!==t?t:1,v=Math.max((null==s?void 0:s.maxOccupancy)+1-(null===(u=e.row)||void 0===u?void 0:u.getAdults()));return(v<1||isNaN(v))&&(v=1),a.createElement(c.P,{nativeOnMobile:!0,options:(0,r.Z)(Array(v)).map((function(e,t){return{text:m.Z.pluralWithDictAndCount(t,i.W.Step.Date.Child,d),value:t.toString()}})),value:null==f?void 0:f.toString(),onChange:e.onChange,keyName:"value",labelName:"text",inputLabelColor:e.labelColor})}},4101:function(e,t,n){n.d(t,{Z:function(){return Y}});var r=n(4942),o=n(885),a=n(360),l=n(7688),i=n(4184),c=n.n(i),m=n(7294),u=n(6793),s=n(9478),d=n(9740),f=n(4854),v=n(858),g=n(3010),p=n(8886),y=n(6573),h=n(584),E=n(291),S=n(8013),Z=n(292);function b(e){var t,n=(0,m.useContext)(a.g7),r=e.perks,l=n.screenSize<=Z.Z.Large,i=(0,m.useState)(null===(t=r[0])||void 0===t?void 0:t.name),u=(0,o.Z)(i,2),s=u[0],d=u[1],f=c()("room-perk-icon",{"--has-bg":l});return m.createElement(m.Fragment,null,!(null==r||!r.length)&&m.createElement("ul",null,r.map((function(e,t){if(!(l&&t>=4))return m.createElement("li",{key:t,onClick:function(){d(e.name)}},m.createElement("div",{className:f},e.iconElement?e.iconElement:m.createElement(p.ZP,{icon:e.icon})),m.createElement("div",{className:"u-marg-right u-none@l- u-block@m- "+(l&&s!==e.name||n.screenSize===Z.Z.Tiny?"u-none-2":"")},m.createElement(h.xv,{type:h.yG.Small},e.name)))}))))}var R=n(7700),N=n(4354),x=n(2458),C=n(9723),P=n(6716),k=n(8361),I=n(3633),w=n(4744),A=n(7754),D=n(1715),M=n(4544);function W(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}function Y(e){var t,n=(0,m.useState)([]),i=(0,o.Z)(n,2),Y=i[0],T=i[1],G=(0,m.useState)([]),L=(0,o.Z)(G,2),O=L[0],B=L[1],z=(0,m.useState)(null),F=(0,o.Z)(z,2),j=F[0],_=F[1],H=(0,m.useState)(!1),U=(0,o.Z)(H,2),$=U[0],q=U[1],J=(0,u.$)().t,Q=(0,m.useContext)(a.g7),V=(0,m.useContext)(a.hy),K=(0,m.useContext)(a.Qm),X=(0,l.WP)().hotel,ee=e.room,te=c()("room-details",(0,r.Z)({},"+is-open",j));(0,m.useEffect)((function(){var t;null!==(t=V.selectedBasketRow)&&void 0!==t&&t.getRoom()&&V.selectedBasketRow.getRoom().code===e.room.code&&_(!0),M.ZP.instance.addRoomImpression(ee)}),[V.selectedBasketRow]),(0,m.useEffect)((function(){var e=[],t=[];if(I.Z.isActive()){var n,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 W(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)?W(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}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 a,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,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}(ee.getRates());try{for(r.s();!(n=r.n()).done;){var o,a,l,i=n.value;(null===(o=i.promoCode)||void 0===o?void 0:o.toLowerCase())===(null===(a=V.selectedBasketRow)||void 0===a||null===(l=a.getPromoCode())||void 0===l?void 0:l.toLowerCase())?t.unshift(i):e.push(i)}}catch(e){r.e(e)}finally{r.f()}t.length>0&&(_(!0),T(t))}else e=ee.getRates();B(e)}),[ee.getRates()]);var ne=null==X||null===(t=X.perks)||void 0===t?void 0:t.slice(0,5),re=ee.getShortDescription(),oe=Q.screenSize<=Z.Z.Large,ae=j||Q.screenSize<=Z.Z.Medium&&null===j,le=Math.round(ee.getLowestPrice(!1,!0)),ie=Q.screenSize>Z.Z.Medium&&le.toLocaleString().length<7?"large":"normal",ce=function(e){return Math.round(D.z7(e,!0,K.currentCurrency,null==X?void 0:X.defaultCurrency))},me=(0,C.Z)({hideDecimals:!0,children:le}),ue=me.value,se=me.isLoading,de=V.selectedBasketRow,fe=(0,P.Z)().hasPricePreview;return m.createElement("div",{className:"room-details-container ".concat(e.disableMarginBottom?"":"u-marg-bottom")},m.createElement("div",{className:te},m.createElement("div",{className:"room-details--image"},m.createElement(E.Z,{images:e.room.getImages(),imageSize:w.h.Medium})),m.createElement("div",{className:"room-details--content u-pad--heavy u-pad@l-"},m.createElement("div",{className:"u-marg-bottom"},Q.screenSize>Z.Z.Large&&m.createElement(m.Fragment,null,m.createElement("div",{className:"u-marg-bottom"},m.createElement(R.Z,{room:ee,limit:2}))),m.createElement("div",{className:"room-details--content-title u-marg-bottom--light"},m.createElement(g.Z,{bold:!0},ee.name)),m.createElement(S.R,{room:ee}),m.createElement("div",{className:"room-details--content-description u-marg-bottom--light"},m.createElement(h.ZP,{color:A.Il.DarkGrey,type:h.yG.Small},m.createElement("span",{dangerouslySetInnerHTML:{__html:(null==re?void 0:re.replace(/<br(\/|)>/g,""))||""}})))),m.createElement("div",{className:"row"},m.createElement("div",{className:"col-md-6 u-flex u-marg-bottom@m- flex-column align-items-start"},!(null!=X&&X.perksHideOnRoomRow)&&m.createElement("div",{className:"room-details--content-perks u-marg-bottom@m-"},oe&&m.createElement("div",{className:"u-marg-bottom"},m.createElement(h.ZP,{type:h.yG.Small,bold:!0,color:A.Il.Accent},J(s.W.Misc.Perks.AndYouGetAll))),m.createElement(b,{perks:ne})),m.createElement(f.Z,{icon:p.Tu.ArrowRight2,isText:!0,primary:!0,size:"tiny",iconPosition:"right",onClick:function(){M.ZP.instance.sendInteraction("More Room Details",M.s_.LINK,M._J.ROOMS),q(!0)}},J(s.W.Step.Room.RoomInfo.MoreDetails))),m.createElement("div",{className:"col-md-6 u-flex justify-content-end flex-column align-items-start align-items-md-end"},m.createElement(h.ZP,{type:h.yG.Small,color:A.Il.Navy,inline:!0},J(s.W.Misc.From)),m.createElement("div",{className:"room-details--content-price flex-row align-items-end"},m.createElement(g.Z,{size:ie,bold:!0},m.createElement(v.Z,{hideDecimals:!0},le)),m.createElement(h.ZP,{color:A.Il.DarkGrey,inline:!0},"/",J(s.W.Misc.Night))),m.createElement(h.ZP,{type:h.yG.Small,color:A.Il.Grey,inline:!0,className:"u-nowrap"},ee.getLowestPriceType()===k.I.IncludingFeesAndTaxes?J(s.W.Step.Room.RoomInfo.IncludesTaxes):J(s.W.Step.Room.ExcludingTaxes)))),m.createElement("div",{className:"u-flex-direction-column u-flex u-flex-align-flex-end u-flex-align-flex-start@m- u-w-100@m-"},!se&&fe?m.createElement("div",{className:"u-marg-top--light"},m.createElement(y.C,{price:ue,checkin:((null==de?void 0:de.getStartDate())||V.endDate).format("YYYY-MM-DD"),currency:K.currentCurrency})):null,m.createElement(f.Z,{className:"u-marg-top--light",name:"ViewRatesNowButton",primary:!0,primaryActive:!!ae,filled:!0,stopIconAnimation:!0,icon:ae?p.Tu.ArrowUp2:p.Tu.ArrowDown2,iconPosition:"right",onClick:function(){ae||M.ZP.instance.sendRoomClick(ee,V.startDate,V.endDate),_(!ae)},wide:Q.screenSize<=Z.Z.Large,textColor:(0,A.pJ)(ae?null==X?void 0:X.colors.accent3:null==X?void 0:X.colors.accent)},J(ae?s.W.Step.Room.RoomInfo.CloseRates:s.W.Step.Room.RoomInfo.ViewRates))))),m.createElement(d.Z,{open:!!ae},m.createElement(N.Z,{roomCode:ee.code,rates:O,featuredRates:Y})),m.createElement(x.Z,{open:$,room:e.room,rates:O,featuredRates:Y,onClose:function(){q(!1)}}),ee.getRates().map((function(e){return m.createElement("script",{key:ee.code+"-"+e.code,type:"application/ld+json"},JSON.stringify({"@context":"http://schema.org/","@type":"Offer",itemOffered:{"@type":"HotelRoom",name:ee.name},name:e.name,identifier:e.code,priceSpecification:{"@type":"UnitPriceSpecification",price:ce(e.getAveragePrice(!0)),basePrice:ce(e.getTotalPrice(!0)),totalPrice:ce(e.getAveragePrice()),priceCurrency:K.currentCurrency,unitText:"Nightly"}}))})))}},8013:function(e,t,n){n.d(t,{R:function(){return u}});var r=n(7688),o=n(7294),a=n(6793),l=n(8886),i=n(584),c=n(9478),m=n(7754);function u(e){var t,n,u,s,d,f=(0,r.WP)().hotel,v=(0,a.$)().t,g=null==f||null===(t=f.rooms)||void 0===t?void 0:t[null===(n=e.room)||void 0===n?void 0:n.code],p=null==f||null===(u=f.overwrites)||void 0===u?void 0:u[null===(s=e.room)||void 0===s?void 0:s.code],y=null!==(d=e.textColor)&&void 0!==d?d:m.Il.DarkGrey,h="".concat((null==g?void 0:g.bedQuantity)>0?null==g?void 0:g.bedQuantity:""," ").concat(null==g?void 0:g.bedType);return null!=g&&g.bedTypeOverride&&(h=g.bedTypeOverride),o.createElement("ul",{className:"u-inline-flex u-flex-gap u-flex-wrap u-marg-bottom"},o.createElement("li",{className:"u-flex align-items-center"},o.createElement(l.ZP,{icon:l.Tu.People,size:"24px",color:m.Il.Navy}),o.createElement("div",{className:"u-pad-left--light"},o.createElement(i.xv,{type:i.yG.Small,inline:!0,color:y},v(c.W.Step.Room.Sleeps,{maxOccupancy:null==g?void 0:g.maxOccupancy})))),o.createElement("li",{className:"u-flex align-items-center"},o.createElement(l.ZP,{icon:l.Tu.Bed,size:"24px",color:m.Il.Navy}),o.createElement("div",{className:"u-pad-left--light"},o.createElement(i.xv,{type:i.yG.Small,inline:!0,color:y},h))),!(null==p||!p.RoomDimensions)&&o.createElement("li",{className:"u-flex align-items-center"},o.createElement(l.ZP,{icon:l.Tu.RoomSize,size:"24px",color:m.Il.Navy}),o.createElement("div",{className:"u-pad-left--light"},o.createElement(i.xv,{type:i.yG.Small,inline:!0,color:y},p.RoomDimensions))))}},9699:function(e,t,n){n.d(t,{i:function(){return c}});var r=n(5671),o=n(3144),a=n(136),l=n(2963),i=n(1120);var c=function(e){(0,a.Z)(m,e);var t,n,c=(t=m,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 o=(0,i.Z)(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return(0,l.Z)(this,e)});function m(e){var t;return(0,r.Z)(this,m),(t=c.call(this)).search=void 0,t.search=e,t}return(0,o.Z)(m,null,[{key:"getLabel",value:function(){return"Search/Guest"}}]),m}(n(7112).x)},9136:function(e,t,n){n.d(t,{w:function(){return d}});var r=n(885),o=n(360),a=n(9699),l=n(119),i=n(7688),c=n(7484),m=n.n(c),u=n(7294),s=n(4862),d=function(){var e=(0,i.WP)().hotel,t=(0,u.useContext)(o.Qm),n=(0,u.useContext)(o.g7),c=(0,u.useContext)(o.P0).roomstayMember,d=(0,u.useContext)(o.hy),f=d.attemptSelectUnfilledRow,v=d.selectedBasketRow,g=d.getAllValidRows,p=(0,u.useState)([]),y=(0,r.Z)(p,2),h=y[0],E=y[1],S=(0,u.useState)(!1),Z=(0,r.Z)(S,2),b=Z[0],R=Z[1],N=(0,u.useState)(null),x=(0,r.Z)(N,2),C=x[0],P=x[1],k=(0,u.useState)(null),I=(0,r.Z)(k,2),w=I[0],A=I[1],D=null==v?void 0:v.getStartDate(),M=null==v?void 0:v.getEndDate(),W=null==v?void 0:v.getPromoCode(),Y=null==v?void 0:v.getAdults(),T=null==v?void 0:v.getChildren(),G=(0,i.zX)().raise,L=(0,u.useMemo)((function(){var t,n;if(!c||0===(null===(t=c.bookings)||void 0===t?void 0:t.length))return null;var r="";return c.bookings.forEach((function(t){t.hotelId===(null==e?void 0:e.hotelID)&&Object.values(t.itinerary).map((function(e){var t=e.roomCode,o=e.nights,a=Object.keys(o).map(m()),l=m()(Math.max.apply(null,a.map((function(e){return+e}))));n&&!l.isAfter(l)||(n=l,r=t)}))})),h.find((function(e){return e.code===r}))}),[h,c]);return(0,u.useEffect)((function(){var r=!1;try{var o={checkInTime:null==D?void 0:D.format("YYYY-M-D"),checkOutTime:null==M?void 0:M.format("YYYY-M-D"),numAdults:Y,numChildren:T,numRooms:1,promoCode:W},i=new a.i(o);G(i);var c=Object.values(n.currentFilters).filter((function(e){return!!e})),m=v;if(m||h.length||(m=f()),!m){var u=g();m=u[u.length-1]}m&&(R(!0),s.Z.getRoomList(m,c,null==e?void 0:e.hotelID).then((function(e){if(!r){var n;E(e),P(!!v),A(!1);var a=null!==(n=null==e?void 0:e.map((function(e){var n,r;return{name:e.name,code:e.code,lowestPrice:e.getLowestPrice(),highestPrice:e.getHighestPrice(),currency:t.currentCurrency,rates:null!==(n=null===(r=e.getRates())||void 0===r?void 0:r.map((function(e){return{name:e.name,code:e.code,price:{averagePrice:e.getAveragePrice(),totalPrice:e.getTotalPrice(),currency:t.currentCurrency}}})))&&void 0!==n?n:[]}})))&&void 0!==n?n:[],i=new l.j(o,a);G(i)}})).catch((function(){r||(E([]),P(null),A(!0))})).finally((function(){R(!1)})))}catch(e){}return function(){R(!1),r=!0}}),[Y,T,D,M,W,t.currentLanguage,n.currentFilters,null==v?void 0:v.getStale()]),{isLoading:b,rooms:h,openRoom:C,apiHasError:w,retargetingRoom:L}}},4862:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(5861),o=n(3144),a=n(5671),l=n(4687),i=n.n(l),c=n(8442);function m(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 u=(0,o.Z)((function e(){(0,a.Z)(this,e)}));u.getRoomList=function(){var e=(0,r.Z)(i().mark((function e(t,n,r){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=u,e.next=3,u.getUnfilteredRoomList(t,r);case 3:return e.t1=e.sent,e.t2=n,e.abrupt("return",e.t0.filterRooms.call(e.t0,e.t1,e.t2));case 6:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),u.filterRooms=function(e,t){var n=[];return e.forEach((function(e){var r=e;r.filteredRates=e.getOriginalRates();var o,a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}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 a,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,a=e},f:function(){try{l||null==n.return||n.return()}finally{if(i)throw a}}}}(t);try{for(a.s();!(o=a.n()).done;){var l=o.value;if(l&&!(r=l.check(e)))break}}catch(e){a.e(e)}finally{a.f()}r&&n.push(r)})),n.filter((function(e){var t;return!(null===(t=e.filteredRates)||void 0===t||!t.length)}))},u.getUnfilteredRoomList=function(){var e=(0,r.Z)(i().mark((function e(t,n){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.Z.Availability.fetchAvailabilityData(t,n));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()}}]);