@roomstay/frontend 2.6.5 → 2.6.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.
Files changed (67) hide show
  1. package/dist/166.bundle.js +1 -0
  2. package/dist/370.bundle.js +1 -1
  3. package/dist/457.bundle.js +1 -1
  4. package/dist/468.bundle.js +1 -1
  5. package/dist/736.bundle.js +1 -1
  6. package/dist/850.bundle.js +1 -0
  7. package/dist/903.bundle.js +1 -1
  8. package/dist/main.bundle.js +1 -1
  9. package/dist/src/components/Event/EventCarouselContainer.d.ts +2 -2
  10. package/dist/src/components/Event/EventCarouselContainer.js +9 -3
  11. package/dist/src/components/Event/EventCarouselContainer.js.map +1 -1
  12. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +6 -0
  13. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -1
  14. package/dist/src/components/generic/Event/EventCard.js +15 -1
  15. package/dist/src/components/generic/Event/EventCard.js.map +1 -1
  16. package/dist/src/components/generic/PaymentCard/InlinePaymentOption.js +3 -3
  17. package/dist/src/components/generic/PaymentCard/InlinePaymentOption.js.map +1 -1
  18. package/dist/src/components/generic/buttons/NextStepButton.js +3 -1
  19. package/dist/src/components/generic/buttons/NextStepButton.js.map +1 -1
  20. package/dist/src/components/navigation/StepSelector.js +7 -1
  21. package/dist/src/components/navigation/StepSelector.js.map +1 -1
  22. package/dist/src/components/reservation/ReservationItem.js +1 -1
  23. package/dist/src/components/reservation/ReservationItem.js.map +1 -1
  24. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js +3 -2
  25. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js.map +1 -1
  26. package/dist/src/components/steps/room/TripteaseLodgingSearchSchema.js +3 -2
  27. package/dist/src/components/steps/room/TripteaseLodgingSearchSchema.js.map +1 -1
  28. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummary.js +3 -1
  29. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummary.js.map +1 -1
  30. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js +3 -1
  31. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js.map +1 -1
  32. package/dist/src/components/summary/BEMobileSummaryModal.js +34 -2
  33. package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
  34. package/dist/src/components/summary/BESummary.js +31 -20
  35. package/dist/src/components/summary/BESummary.js.map +1 -1
  36. package/dist/src/components/summary/BESummaryRoomRow.js +0 -4
  37. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  38. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +2 -0
  39. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  40. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +23 -2
  41. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  42. package/dist/src/hooks/RoomRateAvailabilityListFromApi.d.ts +2 -0
  43. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js +14 -1
  44. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js.map +1 -1
  45. package/dist/src/hooks/useNextStepAction.d.ts +15 -0
  46. package/dist/src/hooks/useNextStepAction.js +146 -0
  47. package/dist/src/hooks/useNextStepAction.js.map +1 -0
  48. package/dist/src/index.d.ts +1 -0
  49. package/dist/src/index.js +4 -2
  50. package/dist/src/index.js.map +1 -1
  51. package/dist/src/models/BasketRow.d.ts +11 -1
  52. package/dist/src/models/BasketRow.js +31 -7
  53. package/dist/src/models/BasketRow.js.map +1 -1
  54. package/dist/src/models/Client/Hotel/Hotel.d.ts +1 -1
  55. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  56. package/dist/src/translations/Translation.d.ts +10 -0
  57. package/dist/src/translations/Translation.js +10 -0
  58. package/dist/src/translations/Translation.js.map +1 -1
  59. package/dist/src/translations/languages/en-gb.js +10 -0
  60. package/dist/src/translations/languages/en-gb.js.map +1 -1
  61. package/dist/src/util/EventsHelper.d.ts +6 -1
  62. package/dist/src/util/EventsHelper.js +13 -5
  63. package/dist/src/util/EventsHelper.js.map +1 -1
  64. package/dist/test.bundle.js +1 -1
  65. package/package.json +1 -1
  66. package/dist/387.bundle.js +0 -1
  67. package/dist/537.bundle.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roomstay/frontend",
3
- "version": "2.6.5",
3
+ "version": "2.6.6",
4
4
  "author": {
5
5
  "name": "Roomstay",
6
6
  "email": "rob@roomstay.io",
@@ -1 +0,0 @@
1
- (("undefined"!=typeof self?self:this).webpackChunkroomstay=("undefined"!=typeof self?self:this).webpackChunkroomstay||[]).push([[387],{9387:function(t){t.exports=function(){"use strict";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,r){var o,a=function(t,n,i){void 0===i&&(i={});var r=new Date(t),o=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||"short",r=t+"|"+i,o=e[r];return o||(o=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),e[r]=o),o}(n,i);return o.formatToParts(r)},u=function(e,n){for(var i=a(e,n),o=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(o[c]=parseInt(m,10))}var h=o[3],v=24===h?0:h,d=o[0]+"-"+o[1]+"-"+o[2]+" "+v+":"+o[4]+":"+o[5]+":000",l=+e;return(r.utc(d).valueOf()-(l-=l%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=o);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString("en-US",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=r(a).$set("millisecond",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,"minute")}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||r.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return"timezonename"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=r(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return s.call(n,t,e).tz(this.$x.$timezone,!0)},r.tz=function(t,e,n){var i=n&&e,a=n||e||o,f=u(+r(),a);if("string"!=typeof t)return r(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,r=u(i,n);if(e===r)return[i,e];var o=u(i-=60*(r-e)*1e3,n);return r===o?[i,r]:[t-60*Math.min(r,o)*1e3,Math.max(r,o)]}(r.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],h=r(m).utcOffset(c);return h.$x.$timezone=a,h},r.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},r.tz.setDefault=function(t){o=t}}}()}}]);
@@ -1 +0,0 @@
1
- "use strict";(("undefined"!=typeof self?self:this).webpackChunkroomstay=("undefined"!=typeof self?self:this).webpackChunkroomstay||[]).push([[537],{2258:function(e,t,r){r.d(t,{Z:function(){return E}});var n=r(885),o=r(7791),a=r(7294),l=r(6793),i=r(9478),c=r(1126),m=r(8442),s=r(858),u=r(3010),d=r(8886),f=r(4485),g=r(584),v=r(3349),p=r(4744),y=r(7754),h=r(292);function E(e){var t=(0,l.$)().t,r=(0,a.useContext)(o.g7),E=(0,a.useContext)(o.hy),S=(0,a.useState)(!1),Z=(0,n.Z)(S,2),b=Z[0],R=Z[1],N=(0,a.useState)(!0),I=(0,n.Z)(N,2),P=I[0],k=I[1],x=(0,a.useState)(!0),C=(0,n.Z)(x,2),w=C[0],D=C[1],A=(0,a.useState)(""),M=(0,n.Z)(A,2),T=M[0],Y=M[1],W=(0,a.useState)(""),G=(0,n.Z)(W,2),L=G[0],B=G[1],O=(0,a.useState)(""),z=(0,n.Z)(O,2),F=z[0],j=z[1],_=(0,a.useState)(""),H=(0,n.Z)(_,2),U=H[0],$=H[1],q=(0,a.useState)([]),J=(0,n.Z)(q,2),Q=J[0],V=J[1],K=(0,v.o)().memberNumber;return(0,a.useEffect)((function(){var t=E.selectedBasketRow;t&&m.Z.Availability.getCheapestPricePerDay(t.getStartDate(),t.getEndDate(),t.getAdults(),t.getChildren(),t.getInfants(),t.getPromoCode(),e.hotelId,K,!0).catch().then((function(r){if(r){for(var n=!0,o=t.getStartDate();o.isBefore(t.getEndDate(),"day");o=o.add(1,"day"))if(!r[o.format(c.yJ)]){n=!1;break}if(R(n),k(!0),n){D(!0);var a=m.Z.Availability.getCrossSellHotelInfo(e.hotelId);B(a.name),Y(a.image),j(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.getInfants()>0&&l.push("infants="+t.getInfants()),t.getPromoCode()&&l.push("promocode="+t.getPromoCode()),$(a.checkoutUrl+"#/step/room/?"+l.join("&")),m.Z.Availability.fetchAvailabilityData(t,e.hotelId,K).catch((function(e){return[]})).then((function(e){null!=e&&e.length?(V(e),D(!1)):(k(!1),D(!1))}))}}}))}),[E.selectedBasketRow]),b?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(p.Z.resizeImage(T,p.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(u.Z,{bold:!0,size:P?"large":"normal"},t(w?i.W.Step.Room.CrossSellBlock.AvailabilityNearBy1:P?i.W.Step.Room.CrossSellBlock.AvailabilityNearBy2:i.W.Step.Room.CrossSellBlock.DateUnavailable))),P&&a.createElement("div",{className:"cross-sell-module--content-description u-marg-bottom--light"},a.createElement(g.ZP,{color:y.Il.DarkGrey,type:g.yG.Body},a.createElement("strong",{style:{color:y.Il.Accent}},L),a.createElement("div",{dangerouslySetInnerHTML:{__html:F}})))),w?a.createElement(f.Z,null):a.createElement(a.Fragment,null,Q.slice(0,4).map((function(e,r){var n=U+"&room="+e.code,o="u-flex align-items-end";return r<Q.length-1&&(o+=" u-pad-bottom u-border-bottom u-marg-bottom"),a.createElement("a",{key:e.code,className:o,href:n,target:"_blank",rel:"noreferrer"},a.createElement("div",{className:"u-flex flex-column align-items-start justify-content-start"},a.createElement(g.ZP,{type:g.yG.Body,color:y.Il.Accent,bold:!0},e.name),a.createElement(g.ZP,{type:g.yG.Small,color:y.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(g.ZP,{type:g.yG.Small,color:y.Il.DarkGrey,inline:!0},t(i.W.Misc.From)),a.createElement(g.ZP,{type:g.yG.Body,color:y.Il.Accent,bold:!0},a.createElement(s.Z,null,e.getLowestPrice(!0)))))}))),P&&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"+(r.screenSize<=h.Z.Medium?" --wide":""),tabIndex:0,type:"button",href:U,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,r){r.d(t,{Z:function(){return y}});var n=r(2982),o=r(9331),a=r(7294),l=r(6793),i=r(9478),c=r(3010),m=r(8886),s=r(9874),u=r(5128),d=r(584),f=r(291),g=r(8013),v=r(4354),p=r(7754);function y(e){var t,r=(0,l.$)().t,y=(0,o.WP)().hotel,h=y.rooms,E=e.room.getRoomPerks({hotel:y,room:e.room}),S=E.roomPerks,Z=E.prePerkDisclaimer,b=null==h?void 0:h[e.room.code],R=null!=b&&b.amenities?(0,n.Z)(b.amenities):[];null!=b&&null!==(t=b.features)&&void 0!==t&&t.length&&b.features.forEach((function(e){R.push(e)}));var N=(null==Z?void 0:Z.replace(/<br(\/|)>/g,""))||"";return a.createElement(u.Z,{title:e.room.name+" "+r(i.W.Step.Room.RoomInfo.Information),open:e.open,size:u.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(g.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)&&S&&a.createElement("div",{className:"u-marg-bottom--heavy"},a.createElement("div",{className:"row"},S.map((function(t,r){return a.createElement("div",{key:r,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"},t.iconElement?t.iconElement:a.createElement(m.ZP,{icon:t.icon})),a.createElement("div",{className:"u-marg-left--light"},a.createElement(d.ZP,{type:d.yG.Small},null!=t&&t.perkNameRenderer?t.perkNameRenderer({hotel:y,room:e.room}):t.name)))}))),(null==y?void 0:y.perksShowDisclaimer)&&a.createElement("div",{className:"row u-marg-top--lighter"},a.createElement("small",{className:"col-12"},r(i.W.Misc.PerksDisclaimer)))),!(null==R||!R.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,r(i.W.Step.Room.RoomInfo.RoomAmenities)))),a.createElement("div",{className:"row"},R.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(s.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()||""}}))),!!N&&a.createElement("div",{className:"u-marg-bottom--heavy"},a.createElement(d.ZP,{type:d.yG.Small},a.createElement("strong",null,r(i.W.Step.Room.RoomInfo.Disclaimer))),a.createElement(d.ZP,{type:d.yG.Small},a.createElement("span",{dangerouslySetInnerHTML:{__html:N}})))),a.createElement(v.Z,{featuredRates:e.featuredRates,rates:e.rates,roomCode:e.room.code})))}},9368:function(e,t,r){r.d(t,{F:function(){return P}});var n=r(7462),o=r(5861),a=r(885),l=r(4687),i=r.n(l),c=r(7791),m=r(7484),s=r.n(m),u=r(7294),d=r(7536),f=r(6793),g=r(9478),v=r(9740),p=r(8442),y=r(7933),h=r(4854),E=r(3010),S=r(8886),Z=r(584),b=r(1432),R=r(514),N=r(7754),I=r(6431),P=function(){var e=(0,d.cI)(),t=e.register,r=e.handleSubmit,l=e.formState,m=(0,R.W)().hotel,P=(0,u.useContext)(c.hy),k=(0,f.$)().t,x=(0,u.useState)({}),C=(0,a.Z)(x,2),w=C[0],D=C[1],A=(0,u.useState)(!1),M=(0,a.Z)(A,2),T=M[0],Y=M[1],W=function(){var e=(0,o.Z)(i().mark((function e(t){var r,n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return D({}),Y(!0),e.prev=2,r=P.selectedBasketRow,n="",[{name:"Adults",value:r.getAdults()},{name:"Children",value:r.getChildren()},{name:"Infants",value:r.getInfants()},{name:"Promo Code",value:r.getPromoCode()},{name:"Dates range",value:r.getStayDateRange("ddd D MMM YYYY"," till ")},{name:"Date Sent",value:s()().format("dd D MMM YYYY")}].forEach((function(e){var t=e.name,r=e.value;r&&(n+="".concat(t,": ").concat(r,"\n"))})),e.next=8,p.Z.Error.sendRoomFallbackForm(null==m?void 0:m.hotelID,{name:t.name,telephone:t.telephone,email:t.email,searchQuery:n});case 8:D({success:!0}),e.next=14;break;case 11:e.prev=11,e.t0=e.catch(2),D({success:!1,message:k(g.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 u.createElement("div",{className:"u-fill-white u-rounded"},u.createElement("div",{className:"row u-pad--heavy"},u.createElement("div",{className:"col-lg-6 d-flex justify-content-center flex-column"},u.createElement("div",{className:"u-marg-bottom--light"},u.createElement(S.ZP,{icon:S.Tu.Error,color:N.Il.Alert,size:"24px"})),u.createElement("div",{className:"u-marg-bottom--light"},u.createElement(E.Z,{bold:!0,color:N.Il.Alert},u.createElement("span",{style:{color:"inherit"},dangerouslySetInnerHTML:{__html:k(g.W.Step.Room.ErrorForm.Title)}}))),u.createElement(Z.ZP,{type:Z.yG.Small},u.createElement("span",{dangerouslySetInnerHTML:{__html:k(g.W.Step.Room.ErrorForm.Description)}}))),u.createElement("div",{className:"col-lg-6"},u.createElement("form",null,u.createElement(v.Z,{open:!!l.errors},Object.values(l.errors).map((function(e,t){return u.createElement(y.ZP,{key:t,type:y.NK.Danger},u.createElement(Z.ZP,{type:Z.yG.Small},null==e?void 0:e.message))}))),u.createElement("div",{className:"u-marg-bottom--light u-marg-top"},u.createElement(b.Z,(0,n.Z)({placeholder:k(g.W.Step.Room.ErrorForm.Inputs.Name)},t("name",{required:{value:!0,message:"".concat(k(g.W.Step.Room.ErrorForm.Inputs.Name)," is a required field")}})))),u.createElement("div",{className:"u-marg-bottom--light"},u.createElement(b.Z,(0,n.Z)({placeholder:k(g.W.Step.Room.ErrorForm.Inputs.Email)},t("email",{required:{value:!0,message:"".concat(k(g.W.Step.Room.ErrorForm.Inputs.Email)," is a required field")},pattern:{value:I.CU,message:"Email must be valid"}})))),u.createElement("div",{className:"u-marg-bottom--light"},u.createElement(b.Z,(0,n.Z)({placeholder:k(g.W.Step.Room.ErrorForm.Inputs.Telephone)},t("telephone",{required:{value:!0,message:"".concat(k(g.W.Step.Room.ErrorForm.Inputs.Telephone)," is a required field")}})))),u.createElement(h.Z,{filled:!0,primary:!0,onClick:r(W),isLoading:T,disabled:T||w.success},k(g.W.Step.Room.ErrorForm.ContactUsButton)),u.createElement(v.Z,{open:!!w.success},u.createElement("div",{className:"u-pad-top"},u.createElement(Z.ZP,{color:N.Il.Success},k(g.W.Step.Room.ErrorForm.ConfirmationMessage)))),u.createElement(v.Z,{open:!1===w.success},u.createElement("div",{className:"u-pad-top"},u.createElement(Z.ZP,{color:N.Il.Alert},w.message)))))))}},2870:function(e,t,r){r.d(t,{y:function(){return a}});var n=r(7791),o=r(7294),a=function(){var e=(0,o.useContext)(n.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(),numInfants:null==e?void 0:e.getInfants(),numRooms:"1",offerCode:null==e?void 0:e.getPromoCode()}))}},4101:function(e,t,r){r.d(t,{Z:function(){return W}});var n=r(4942),o=r(885),a=r(7791),l=r(9331),i=r(4184),c=r.n(i),m=r(7294),s=r(6793),u=r(9740),d=r(4854),f=r(858),g=r(3010),v=r(8886),p=r(9874),y=r(6573),h=r(584),E=r(291),S=r(8013),Z=r(292);function b(e){var t,r=(0,m.useContext)(a.g7),n=(0,l.WP)().hotel,i=e.perks,s=r.screenSize<=Z.Z.Large,u=(0,m.useState)(null===(t=i[0])||void 0===t?void 0:t.name),d=(0,o.Z)(u,2),f=d[0],g=d[1],p=c()("room-perk-icon",{"--has-bg":s});return m.createElement(m.Fragment,null,!(null==i||!i.length)&&m.createElement("ul",null,i.map((function(e,t){if(!(s&&t>=4))return m.createElement("li",{key:t,onClick:function(){g(e.name)}},m.createElement("div",{className:p},e.iconElement?e.iconElement:m.createElement(v.ZP,{icon:e.icon})),m.createElement("div",{className:"u-marg-right u-none@l- u-block@m- "+(s&&f!==e.name||r.screenSize===Z.Z.Tiny?"u-none-2":"")},m.createElement(h.xv,{type:h.yG.Small},null!=e&&e.perkNameRenderer?e.perkNameRenderer({hotel:n}):e.name)))}))))}var R=r(7700),N=r(4354),I=r(2458),P=r(9723),k=r(6716),x=r(8361),C=r(3633),w=r(4744),D=r(9478),A=r(7754),M=r(1715),T=r(4544);function Y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function W(e){var t=(0,m.useState)([]),r=(0,o.Z)(t,2),i=r[0],W=r[1],G=(0,m.useState)([]),L=(0,o.Z)(G,2),B=L[0],O=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,s.$)().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,n.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),T.ZP.instance.addRoomImpression(ee)}),[V.selectedBasketRow]),(0,m.useEffect)((function(){var e=[],t=[];if(C.Z.isActive()){var r,n=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Y(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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(){r=r.call(e)},n:function(){var e=r.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==r.return||r.return()}finally{if(i)throw a}}}}(ee.getRates());try{for(n.s();!(r=n.n()).done;){var o,a,l,i=r.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){n.e(e)}finally{n.f()}t.length>0&&(_(!0),W(t))}else e=ee.getRates();O(e)}),[ee.getRates()]);var re=ee.getShortDescription(),ne=Q.screenSize<=Z.Z.Large,oe=j||Q.screenSize<=Z.Z.Medium&&null===j,ae=Math.round(ee.getLowestPrice(!1,!0)),le=Q.screenSize>Z.Z.Medium&&ae.toLocaleString().length<7?"large":"normal",ie=function(e){return Math.round(M.z7(e,!0,K.currentCurrency,null==X?void 0:X.defaultCurrency))},ce=(0,P.Z)({hideDecimals:!0,children:ae}),me=ce.value,se=ce.isLoading,ue=V.selectedBasketRow,de=(0,k.Z)().hasPricePreview,fe=ee.getRoomPerks({hotel:X,room:ee,perksLimitNumber:5}).roomPerks;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}),(null==re?void 0:re.replace(/<br(\/|)>/g,""))&&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"},!(null!=X&&X.perksHideOnRoomRow)&&m.createElement("div",{className:"col-12 u-flex u-marg-bottom@m- flex-column align-items-start"},m.createElement("div",{className:"room-details--content-perks u-marg-bottom@m-"},ne&&m.createElement("div",{className:"u-marg-bottom"},m.createElement(h.ZP,{type:h.yG.Small,bold:!0,color:A.Il.Accent},J(D.W.Misc.Perks.AndYouGetAll))),m.createElement(b,{perks:fe}))),(null==X?void 0:X.showDescriptionOnRoomDetails)&&m.createElement("div",{className:"col-12"},m.createElement(p.Z,{noMargins:!0}),m.createElement("div",{className:"u-marg-top u-text-overflow-ellipsis-3 u-marg-bottom"},m.createElement(h.ZP,{type:h.yG.Small,color:A.Il.Graphite},m.createElement("span",{dangerouslySetInnerHTML:{__html:e.room.getLongDescription()||""}})))),m.createElement("div",{className:"col-md-6 u-flex u-marg-bottom@m- flex-column align-items-start"},m.createElement(d.Z,{icon:v.Tu.ArrowRight2,isText:!0,primary:!0,size:"tiny",iconPosition:"right",onClick:function(){T.ZP.instance.sendInteraction("More Room Details",T.s_.LINK,T._J.ROOMS),q(!0)}},J(D.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(D.W.Misc.From)),m.createElement("div",{className:"room-details--content-price flex-row align-items-end"},m.createElement(g.Z,{size:le,bold:!0},m.createElement(f.Z,{hideDecimals:!0},ae)),m.createElement(h.ZP,{color:A.Il.DarkGrey,inline:!0},"/",J(D.W.Misc.Night))),m.createElement(h.ZP,{type:h.yG.Small,color:A.Il.Grey,inline:!0,className:"u-nowrap"},ee.getLowestPriceType()===x.I.IncludingFeesAndTaxes?J(D.W.Step.Room.RoomInfo.IncludesTaxes):J(D.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&&de?m.createElement("div",{className:"u-marg-top--light"},m.createElement(y.C,{price:me,checkin:((null==ue?void 0:ue.getStartDate())||V.endDate).format("YYYY-MM-DD"),currency:K.currentCurrency})):null,m.createElement(d.Z,{className:"u-marg-top--light",name:"ViewRatesNowButton",primary:!0,primaryActive:!!oe,filled:!0,stopIconAnimation:!0,icon:oe?v.Tu.ArrowUp2:v.Tu.ArrowDown2,iconPosition:"right",onClick:function(){oe||T.ZP.instance.sendRoomClick(ee,V.startDate,V.endDate),_(!oe)},wide:Q.screenSize<=Z.Z.Large,textColor:(0,A.pJ)(oe?null==X?void 0:X.colors.accent3:null==X?void 0:X.colors.accent)},J(oe?D.W.Step.Room.RoomInfo.CloseRates:D.W.Step.Room.RoomInfo.ViewRates))))),m.createElement(u.Z,{open:!!oe},m.createElement(N.Z,{roomCode:ee.code,rates:B,featuredRates:i})),m.createElement(I.Z,{open:$,room:e.room,rates:B,featuredRates:i,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:ie(e.getAveragePrice(!0)),basePrice:ie(e.getTotalPrice(!0)),totalPrice:ie(e.getAveragePrice()),priceCurrency:K.currentCurrency,unitText:"Nightly"}}))})))}},8013:function(e,t,r){r.d(t,{R:function(){return s}});var n=r(9331),o=r(7294),a=r(6793),l=r(8886),i=r(584),c=r(9478),m=r(7754);function s(e){var t,r,s,u,d,f,g,v,p,y,h=(0,n.WP)().hotel,E=(0,a.$)().t,S=null==h||null===(t=h.rooms)||void 0===t?void 0:t[null===(r=e.room)||void 0===r?void 0:r.code],Z=null==h||null===(s=h.rooms)||void 0===s||null===(u=s[null===(d=e.room)||void 0===d?void 0:d.code])||void 0===u?void 0:u.roomSize,b=null==h||null===(f=h.overwrites)||void 0===f||null===(g=f[null===(v=e.room)||void 0===v?void 0:v.code])||void 0===g?void 0:g.RoomDimensions,R=null!=b?b:Z?"".concat(Z," m²"):void 0,N=null!==(p=e.textColor)&&void 0!==p?p:m.Il.DarkGrey,I="".concat((null==S?void 0:S.bedQuantity)>0?null==S?void 0:S.bedQuantity:""," ").concat(null==S?void 0:S.bedType);return null!=S&&null!==(y=S.bedTypeOverride)&&void 0!==y&&y.trim()&&(I=S.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:N},E(c.W.Step.Room.Sleeps,{maxOccupancy:null==S?void 0:S.maxOccupancy})))),!1!==(null==S?void 0:S.showBedType)&&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:N},I))),!!R&&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:N},R))))}},9699:function(e,t,r){r.d(t,{i:function(){return c}});var n=r(5671),o=r(3144),a=r(136),l=r(2963),i=r(1120);var c=function(e){(0,a.Z)(m,e);var t,r,c=(t=m,r=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,n=(0,i.Z)(t);if(r){var o=(0,i.Z)(this).constructor;e=Reflect.construct(n,arguments,o)}else e=n.apply(this,arguments);return(0,l.Z)(this,e)});function m(e){var t;return(0,n.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}(r(7112).x)},9136:function(e,t,r){r.d(t,{w:function(){return f}});var n=r(885),o=r(7791),a=r(9699),l=r(119),i=r(9331),c=r(7484),m=r.n(c),s=r(7294),u=r(4862),d=r(3349),f=function(){var e=(0,i.WP)().hotel,t=(0,s.useContext)(o.Qm),r=(0,s.useContext)(o.g7),c=(0,s.useContext)(o.P0).roomstayMember,f=(0,s.useContext)(o.hy),g=f.attemptSelectUnfilledRow,v=f.selectedBasketRow,p=f.getAllValidRows,y=(0,s.useState)([]),h=(0,n.Z)(y,2),E=h[0],S=h[1],Z=(0,s.useState)(!1),b=(0,n.Z)(Z,2),R=b[0],N=b[1],I=(0,s.useState)(!1),P=(0,n.Z)(I,2),k=P[0],x=P[1],C=(0,s.useState)(null),w=(0,n.Z)(C,2),D=w[0],A=w[1],M=(0,s.useState)(null),T=(0,n.Z)(M,2),Y=T[0],W=T[1],G=null==v?void 0:v.getStartDate(),L=null==v?void 0:v.getEndDate(),B=null==v?void 0:v.getPromoCode(),O=null==v?void 0:v.getAdults(),z=null==v?void 0:v.getChildren(),F=(0,d.o)().memberNumber,j=(0,i.zX)().raise,_=(0,s.useMemo)((function(){var t,r;if(!c||0===(null===(t=c.bookings)||void 0===t?void 0:t.length))return null;var n="";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}))));r&&!l.isAfter(l)||(r=l,n=t)}))})),E.find((function(e){return e.code===n}))}),[E,c]);return(0,s.useEffect)((function(){var n=!1;try{var o={checkInTime:null==G?void 0:G.format("YYYY-M-D"),checkOutTime:null==L?void 0:L.format("YYYY-M-D"),numAdults:O,numChildren:z,numRooms:1,promoCode:B},i=new a.i(o);j(i);var c=Object.values(r.currentFilters).filter((function(e){return!!e})),m=v;if(m||E.length||(m=g()),!m){var s=p();m=s[s.length-1]}m&&(N(!0),u.Z.getRoomList(m,c,null==e?void 0:e.hotelID,F).then((function(e){if(!n){var r;S(e),A(!!v),W(!1);var a=null!==(r=null==e?void 0:e.map((function(e){var r,n;return{name:e.name,code:e.code,lowestPrice:e.getLowestPrice(),highestPrice:e.getHighestPrice(),currency:t.currentCurrency,rates:null!==(r=null===(n=e.getRates())||void 0===n?void 0:n.map((function(e){return{name:e.name,code:e.code,price:{averagePrice:e.getAveragePrice(),totalPrice:e.getTotalPrice(),currency:t.currentCurrency}}})))&&void 0!==r?r:[]}})))&&void 0!==r?r:[],i=new l.j(o,a);j(i)}})).catch((function(){n||(S([]),A(null),W(!0))})).finally((function(){x(!0),N(!1)})))}catch(e){}return function(){N(!1),n=!0}}),[O,z,G,L,B,t.currentLanguage,r.currentFilters,null==v?void 0:v.getStale(),F]),{loadingAttempted:k,isLoading:R,rooms:E,openRoom:D,apiHasError:Y,retargetingRoom:_}}},4862:function(e,t,r){r.d(t,{Z:function(){return s}});var n=r(5861),o=r(3144),a=r(5671),l=r(4687),i=r.n(l),c=r(8442);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var s=(0,o.Z)((function e(){(0,a.Z)(this,e)}));s.getRoomList=function(){var e=(0,n.Z)(i().mark((function e(t,r,n,o){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=s,e.next=3,s.getUnfilteredRoomList(t,n,o);case 3:return e.t1=e.sent,e.t2=r,e.abrupt("return",e.t0.filterRooms.call(e.t0,e.t1,e.t2));case 6:case"end":return e.stop()}}),e)})));return function(t,r,n,o){return e.apply(this,arguments)}}(),s.filterRooms=function(e,t){var r=[];return e.forEach((function(e){var n=e;n.filteredRates=e.getOriginalRates();var o,a=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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(){r=r.call(e)},n:function(){var e=r.next();return l=e.done,e},e:function(e){i=!0,a=e},f:function(){try{l||null==r.return||r.return()}finally{if(i)throw a}}}}(t);try{for(a.s();!(o=a.n()).done;){var l=o.value;if(l&&!(n=l.check(e)))break}}catch(e){a.e(e)}finally{a.f()}n&&r.push(n)})),r.filter((function(e){var t;return!(null===(t=e.filteredRates)||void 0===t||!t.length)}))},s.getUnfilteredRoomList=function(){var e=(0,n.Z)(i().mark((function e(t,r,n){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.Z.Availability.fetchAvailabilityData(t,r,n));case 1:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}()}}]);