1"use strict";(self.webpackChunkbookcore_client=self.webpackChunkbookcore_client||[]).push([[41],{11965:function(e,t,a){var i=a(24994);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(51678),s=i(a(27165));const n=a(19516);t.default={get:()=>n.get(s.default.bookingSummary).then(o.checkResponseErrors)};e.exports=t.default},58234:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;const i=a(19516);t.default={contact:async(e="/m2/ajax/contact/")=>i.get(e)};e.exports=t.default},59633:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(51678);const o=a(19516);t.default={setCookie:function(e,t){const a=(0,i.buildEndPoint)(t,"/bookcore/set-cookie/");return o.post(a,e).then(i.checkResponseErrors)}};e.exports=t.default},62259:function(e,t,a){var i=a(24994);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=i(a(27165)),s=a(51678);const n=a(19516);t.default={changeCurrency:(e,t)=>{const a=(0,s.buildEndPoint)(t,o.default.changeCurrency);return n.post(a,e)}};e.exports=t.default},60011:function(e,t,a){var i=a(24994);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(51678),s=i(a(27165));const n=a(19516);t.default={customizationTokens:async e=>{const t=(0,o.buildEndPoint)(e,s.default.customizationTokens);return n.get(t).then(o.checkResponseErrors)}};e.exports=t.default},95756:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;const i=a(19516),{alternativeHotels:o}=a(53103);t.default={get:function(e,t="/m2/ajax/ficha/"){const a=`${t}?hotelcode=${e}`;return i.get(a)},services:async(e=0,t="/m2/ajax/hotel/services/")=>{const a=`${t}?quantity=${e}`;return i.get(a)},servicesImages:async(e="/m2/ajax/hotel/services/images/")=>i.get(e),servicesSectionHeader:async(e="/m2/ajax/hotel/services/section/header/")=>i.get(e),hotelMap:async(e="/m2/ajax/hotel/map/")=>i.get(e),socialNetworks:async(e="/m2/ajax/hotel/ssnn/")=>i.get(e),photos:async(e="/m2/ajax/hotel/photos/")=>i.get(e),alternativeHotels:o};e.exports=t.default},95206:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;const i=a(24460),o=a(45933),s=a(11965),n=a(94435),r=a(73818),c=a(3901),l=a(58234),d=a(59633),p=a(62259),u=a(60011),h=a(81743),g=a(95756),f=a(60707),m=a(11368),k=a(31925),y=a(47991),b=a(7943),v=a(71181),T=a(13051),C=a(90584),x=a(48287),P=a(3722),O=a(20636),S=a(39884);t.default={auth:i,availability:o,bookingSummary:s,cancellation:n,cart:r,confirmation:c,contact:l,cookies:d,currency:p,customization:u,extras:h,hotel:g,hotelverse:f,loyalty:m,mobilis:k,modifyBooking:y,myBooking:b,pack:v,page:T,props:C,room:x,schemas:P,translations:O,voucher:S};e.exports=t.default},13051:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;const i=a(19516);t.default={currentPage:async(e="/m2/ajax/current/page/")=>i.get(e),galleryPage:async(e="/m2/ajax/gallery/page/")=>i.get(e)};e.exports=t.default},90584:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;const i=a(19516);t.default={homeDescription:async(e="/m2/ajax/home/description/")=>i.get(e),homeImage:async(e="/m2/ajax/home/image/")=>i.get(e),homeMapDescription:async(e="/m2/ajax/home/map/description/")=>i.get(e),homeSectionHeader:async(e="/m2/ajax/home/section/header/")=>i.get(e),offers:async(e="/m2/ajax/offers/")=>i.get(e)};e.exports=t.default},48287:function(e,t,a){var i=a(24994);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(51678),s=i(a(27165));const n=a(19516);t.default={get:function(e,t,a="/m2/ajax/hotel/{hotelCode}/room/{roomCode}"){const i=a.replace("{hotelCode}",e).replace("{roomCode}",t);return n.get(i).then(o.checkResponseErrors)},roomDetails:(e,t=s.default.roomDetails)=>n.get(`${t}?roomCode=${e}`),rooms:async(e="/m2/ajax/rooms/")=>n.get(e),sectionHeader:async(e="/m2/ajax/rooms/section/header/")=>n.get(e)};e.exports=t.default},3722:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;const i=a(19516);t.default={home:async(e="/m2/ajax/schema/home/",t)=>i.post(e,t),rooms:async(e="/m2/ajax/schema/rooms/",t)=>i.post(e,t,!1),services:async(e="/m2/ajax/schema/services/",t)=>i.post(e,t,!1),contact:async(e="/m2/ajax/schema/contact/",t)=>
1i.post(e,t,!1),photos:async(e="/m2/ajax/schema/photos/",t)=>i.post(e,t,!1)};e.exports=t.default},39884:function(e,t,a){var i=a(24994);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=i(a(27165));const s=a(19516);t.default={getBonoTrackings:e=>s.get(`${o.default.voucherTrackings}?bookingId=${e}`),getVoucherMessage:e=>s.get(`${o.default.voucherMessage}?bookingId=${e}`)};e.exports=t.default},67795:function(e,t){function a(e,t){const a=e.length;let i;for(let o=0;o<a;o+=1)e[o].codigo===t&&(i=e[o]);return i||null}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={getCurrency:function(e,t,i){const o=a(e,t),s=o?o.tasa:1,n=a(e,i);return(n?n.tasa:1)/s}};e.exports=t.default},99444:function(e,t,a){var i=a(24994);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(96540),s=i(a(5556)),n=a(51678),r=i(a(12873)),c=a(9841),l=a(30317),d=a(60397),p=a(74848);class u extends o.Component{constructor(e){super(e),this.importDeviceView()}componentDidMount(){window.addEventListener("resize",this.updateDimensions)}componentDidUpdate(e){e.calendarOpen!==this.props.calendarOpen&&this.props.calendarOpen&&this.renderCalendar(),this.manageAvailabilityResponse()}componentWillUnmount(){window.removeEventListener("resize",this.updateDimensions)}updateDimensions(){this.forceUpdate()}manageAvailabilityResponse(){if(this.props.hasNewAvailabilitResponse){const{packId:e,mode:t,error:a}=this.props.lastAvailabilityResponse;if(a)this.props.handleError(a),this.props.updatePackStatus({loadStatus:c.ITEM_STATUS_LOADED,packId:e});else if(this.props.lastAvailabilityResponse.paquete){const a=(0,d.mapResponse)(this.props.lastAvailabilityResponse),i=(0,l.convertAvailablityPrices)(a,this.props.currencySelector.currentCurrency);this.props.updatePackAvailability(e,i),this.props.updatePackStatus({loadStatus:c.ITEM_STATUS_LOADED,mode:t||this.props.packStatuses[e].mode,packId:e})}this.props.onNewAvailabilityResponseManaged()}}importDeviceView(){this.props.isDesktop?this.View=(0,o.lazy)(()=>(0,n.lazyRetry)(()=>Promise.all([a.e(62),a.e(10),a.e(16)]).then(a.t.bind(a,3646,23)))):this.View=(0,o.lazy)(()=>(0,n.lazyRetry)(()=>Promise.all([a.e(62),a.e(10),a.e(16)]).then(a.t.bind(a,4952,23))))}renderCalendar(){const e={callbackSubmitForm:this.props.handleDatesSelected,closeCalendar:()=>{const e=this.props.calendarOpenForPack,t=e?this.props.packStatuses[e].mode:"hidden";this.props.closeCalendar(e,t)},oneDayOnly:this.props.calendarOneDayOnly};this.props.onCallDatesCalendar(e)}render(){const{View:e}=this;return(0,p.jsx)(o.Suspense,{fallback:this.props.isDesktop?null:(0,p.jsx)(r.default,{type:"inlineloader"}),children:(0,p.jsx)(e,{addPackOptionToCart:this.props.addPackOptionToCart,addText:this.props.addText,availability:this.props.availability,availabilitySearchParams:this.props.availabilitySearchParams,bookNowText:this.props.bookNowText,calendarOneDayOnly:this.props.calendarOneDayOnly,cdn:this.props.cdn,checkoutDateTextWithoutNights:this.props.checkoutDateTextWithoutNights,clearErrorMessage:this.props.clearErrorMessage,conditionsLinkText:this.props.conditionsLinkText,currencySelectText:this.props.currencySelectText,currencySelector:this.props.currencySelector,dateText:this.props.dateText,datesText:this.props.datesText,discoverTheHotelText:this.props.discoverTheHotelText,dispatchEvent:this.props.dispatchEvent,errorMessageTimeToHide:this.props.errorMessageTimeToHide,errorMsg:this.props.errorMsg,experiencesText:this.props.experiencesText,fetchGiftOptionsAvailability:this.props.fetchGiftOptionsAvailability,fetchRoomsAvailability:this.props.fetchRoomsAvailability,forcedCurrencyFormat:this.props.forcedCurrencyFormat,fromText:this.props.fromText,giveAPresentText:this.props.giveAPresentText,hotelCode:this.props.hotelCode,hotelName:this.props.hotelName,hotelverse:this.props.hotelverse,hotelverseDescriptionTooltipText:this.props.hotelverseDescriptionTooltipText,isAvailabilityDetailedView:this.props.isAvailabilityDetailedView,isDesktop:this.props.isDesktop,isSpa:this.props.isSpa,locale:this.props.locale,message:this.props.message,modeFromURL:this.props.modeFromURL,nightText:this.props.nightText,nightsText:this.props.nightsText,noAvailText:this.props.noAvailText,onAddToCart:this.props.addPackOptionToCart,onOpenDatesSelectorForPack:this.props.openCalendarForPack,onToggleRecipient:this.props.onToggleRecipient,oneDayOnly:this.props.calendarOneDayOnly,openCalendarForPack:this.props.openCalendarForPack,openPackageItem:this.props.openPackageItem,packAvailOptions:this.props.packAvailOptions,packDates:this.props.packDates,packStatuses:this.props.packStatuses,packageGiftOptionsTitleText:this.props.packageGiftOptionsTitleText,packageOptionsTitleText:this.props.packageOptionsTitleText,packagesTabsCounter:this.props.packagesTabsCounter,packs:this.props.packs,readLessText:this.props.readLessText,readMoreText:this.props.readMoreText,recipientForm:this.props.recipientForm,recipientFormFieldValues:this.props.recipientFormFieldValues,roomTabsCounter:this.props.roomTabsCounter,roomsText:this.props.roomsText,setRecipientFormFieldsValues:this.props.setRecipientFormFieldsValues,showHotelverse:this.props.showHotelverse,showLoader:this.props.showLoader,taxesText:this.props.taxesText,textTitleConditions:this.props.textTitleConditions,toggleConditionsDialog:this.props.toggleConditionsDialog,updatePackStatus:this.props.updatePackStatus})})}}t.default=u,u.displayName="PackagesPageController",u.propTypes={addPackOptionToCart:s.default.func,addText:s.default.string,bookNowText:s.default.string,calendarOneDayOnly:s.default.bool,cdn:s.default.string,changeCurrency:s.default.func,clearErrorMessage:s.default.func,closeCalendar:s.default.func,conditionsLinkText:s.default.string,currencies:s.default.array,currenciesChangeUrl:s.default.string,currencyAdvice:s.default.string,currencyCode:s.default.string,currencyConversion:s.default.number,currencyDefault:s.default.string,currencySelectText:s.default.string,datesText:s.default.string,dateText:s.default.string,errorMessageTimeToHide:s.default.number,errorMsg:s.default.string,fetchGiftOptionsAvailability:s.default.func,forcedCurrencyFormat:s.default.object,fromText:s.default.string,giveAPresentText:s.default.string,handleDatesSelected:s.default.func,isAvailabilityDetailedView:s.default.bool,isDesktop:s.default.bool,locale:s.default.string,modeFromURL:s.default.string,navTabs:s.default.array,nightsText:s.default.string,nightText:s.default.string,noAvailText:s.default.string,onToggleRecipient:s.default.func,openCalendarForPack:s.default.func,openPackageItem:s.default.func,packageGiftOptionsTitleText:s.default.string,packageOptionsTitleText:s.default.string,packAvailOptions:s.default.object,packDates:s.default.object,packs:s.default.array,packStatuses:s.default.object,readLessText:s.default.string,readMoreText:s.default.string,recipientForm:s.default.object,recipientFormFieldValues:s.default.object,setRecipientFormFieldsValues:s.default.func,showLoader:s.default.bool,taxesText:s.default.string,textTitleConditions:s.default.string,toggleConditionsDialog:s.default.func,updatePackStatus:s.default.func},u.defaultProps={addPackOptionToCart:n.defaultEmptyFunction,changeCurrency:n.defaultEmptyFunction,clearErrorMessage:n.defaultEmptyFunction,closeCalendar:n.defaultEmptyFunction,fetchGiftOptionsAvailability:n.defaultEmptyFunction,handleDatesSelected:n.defaultEmptyFunction,onToggleRecipient:n.defaultEmptyFunction,openCalendarForPack:n.defaultEmptyFunction,openPackageItem:n.defaultEmptyFunction,setRecipientFormFieldsValues:n.defaultEmptyFunction,toggleConditionsDialog:n.defaultEmptyFunction},e.exports=t.default},41567:function(e,t,a){var i=a(24994);
1Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(96540),s=i(a(5556)),n=a(95206),r=a(51678),c=a(67795),l=i(a(99444)),d=a(9841),p=a(30317),u=a(28150),h=a(60397),g=a(87970),f=a(51349),m=a(74848);class k extends o.Component{constructor(e){super(e),this.state={calendarOneDayOnly:!1,calendarOpen:!1,calendarOpenForPack:null,cart:e.cart||{},errorMsg:"",hasNewAvailabilitResponse:!1,packAvailOptions:{},packDates:this.initPackDates(e),packStatuses:this.initPackStatuses(e.packs),promoCode:(0,g.getPromoCode)(e),recipientForm:{},recipientFormFieldValues:{},showLoader:!1},this.bindActions()}bindActions(){this.bindCalendarActions(),this.bindAvailabilityOptionsActions(),this.addPackOptionToCart=this.addPackOptionToCart.bind(this),this.changeCurrency=this.changeCurrency.bind(this),this.clearErrorMessage=this.clearErrorMessage.bind(this),this.fetchGiftOptionsAvailability=this.fetchGiftOptionsAvailability.bind(this),this.handleError=this.handleError.bind(this),this.openPackageItem=this.openPackageItem.bind(this),this.updatePackStatus=this.updatePackStatus.bind(this)}bindAvailabilityOptionsActions(){this.toggleConditionsDialog=this.toggleConditionsDialog.bind(this),this.onNewAvailabilityResponseManaged=this.onNewAvailabilityResponseManaged.bind(this),this.onToggleRecipient=this.onToggleRecipient.bind(this),this.setRecipientFormFieldsValues=this.setRecipientFormFieldsValues.bind(this),this.updatePackAvailability=this.updatePackAvailability.bind(this)}bindCalendarActions(){this.closeCalendar=this.closeCalendar.bind(this),this.handleDatesSelected=this.handleDatesSelected.bind(this),this.openCalendarForPack=this.openCalendarForPack.bind(this),this.updateDatesForPack=this.updateDatesForPack.bind(this)}initPackStatuses(e){const t={};return e.forEach(e=>{t[e.id]={loadStatus:d.ITEM_STATUS_NOT_LOADED,hasToShowPackageItem:!!this.props.modeFromURL&&this.props.fromDeeplink,mode:"hidden"}}),t}initPackDates(e){const t={};return e.packs.forEach(a=>{t[a.id]={checkIn:e.defaultCheckIn,checkOut:e.defaultCheckOut}}),t}componentDidMount(){const{fromDeeplink:e,modeFromURL:t,packs:a}=this.props;if((0,h.hasToLaunchDeeplinkSearch)(a.length,t)&&e){const e="booking"===t,i="gift"===t;this.manageOptionsMode(a[0].id,e,i)}this.getRecipientForm()}getRecipientForm(){if(this.props.packs.some(e=>e.is_giftable)){const{isDesktop:e,hotelName:t,giftPackageImageUrl:a,recipientFormTexts:i}=this.props,o={...(0,f.buildRecipientForm)(a,i,t),isDesktop:e};this.setState({recipientForm:o})}}componentDidUpdate(e){this.checkDatesOnUpdate(e),(0,r.areSimpleObjectsEqual)(e.cart,this.props.cart)||this.setState({cart:this.props.cart}),(0,r.areSimpleObjectsEqual)(e.lastAvailabilityResponse,this.props.lastAvailabilityResponse)||this.onNewAvailabilityResponseManaged(!0)}checkDatesOnUpdate(e){if(!(0,r.areSimpleObjectsEqual)(e.newPackageSearchConfig,this.props.newPackageSearchConfig)){const{packId:e,checkin:t,checkout:a}=this.props.newPackageSearchConfig;this.updateDatesForPack(t,a,e)}this.compareDates(e)&&this.updateDatesForEveryPack(this.props.defaultCheckIn,this.props.defaultCheckOut)}compareDates(e){return!(0,r.areSimpleObjectsEqual)(e.defaultCheckIn,this.props.defaultCheckIn)||!(0,r.areSimpleObjectsEqual)(e.defaultCheckOut,this.props.defaultCheckOut)}onNewAvailabilityResponseManaged(e=!1){this.setState({hasNewAvailabilitResponse:e})}manageOptionsMode(e,t,a){if(t&&!a){const{checkIn:t,checkOut:a}=this.state.packDates[e];this.fetchBookingOptionsAvailability(e,t,a)}else a&&!t&&this.fetchGiftOptionsAvailability(e)}openPackageItem(e,t,a){this.updatePackStatus({packId:e,hasToTogglePackageItem:!0},()=>{this.manageOptionsMode(e,t,a),this.onNewAvailabilityResponseManaged(!0)})}fetchBookingOptionsAvailability(e,t,a){this.fetchAvailability({checkIn:t,checkOut:a,mode:"booking",packId:e})}fetchGiftOptionsAvailability(e){this.fetchAvailability({isGiftSearch:!0,mode:"gift",packId:e})}toggleConditionsDialog(e,t){this.toggleOptionAttribute(e,t,"showConditions")}toggleOptionAttribute(e,t,a){const i=[...this.state.packAvailOptions[e]],o=i.findIndex(e=>e.id===t);i[o]={...i[o],[a]:!i[o][a]},this.setState({packAvailOptions:{...this.state.packAvailOptions,[e]:i}}),i[o][a]&&this.ga4SendEventData(e,t)}ga4SendEventData(e,t){const a=this.state.packAvailOptions[e],i=a.filter(e=>e.id===t),o=a.findIndex(e=>e.id===t);this.props.sendEvent("ga4SelectItem",{baseTaxesIncluded:this.props.baseTaxesIncluded,currency:this.props.currencySelector.defaultCurrency,hotelCode:this.props.hotelCode,itemCategory:"packages_gift",listId:"packages_options",listName:"packages options availability",packageCode:i[0].id,packageName:i[0].title,parentId:e,position:o+1,price:i[0].price,quantity:1})}fetchAvailability({packId:e,checkIn:t,checkOut:a,isGiftSearch:i=!1,mode:o}){const{lastAvailabilityResponse:s}=this.props;i?s?.packId===e&&s?.mode===o||this.updatePackStatus({packId:e,loadStatus:d.ITEM_STATUS_LOADING},()=>{const t={availabilityParams:{packId:e,promoCode:this.state.promoCode,isGiftSearch:i},availabilityEndpoint:this.props.giftAvailabilityEndpoint,getAvailability:this.props.fetchGiftPackagesAvailability};t.getAvailability({availabilityEndpoint:t.availabilityEndpoint,availabilityParams:t.availabilityParams,mode:o,packId:e})}):this.updatePackStatus({packId:e,loadStatus:d.ITEM_STATUS_LOADING},()=>{const i={availabilityParams:{packId:e,checkIn:t,checkOut:a,promoCode:this.state.promoCode},availabilityEndpoint:this.props.availabilityEndpoint,getAvailability:this.props.fetchBookablePackagesAvailability};i.getAvailability({availabilityEndpoint:i.availabilityEndpoint,availabilityParams:i.availabilityParams,mode:o,packId:e}),this.onNewAvailabilityResponseManaged(!0)})}updatePackStatus({packId:e,loadStatus:t="",hasToTogglePackageItem:a=!1,mode:i},o=r.defaultEmptyFunction){const s=this.state.packStatuses[e],{hasToShowPackageItem:n,modeValue:c}=(0,u.getPackageItemStatus)(s,a,i),l={...this.state.packStatuses,[e]:{loadStatus:t||s.loadStatus,hasToShowPackageItem:n,mode:c}};this.setState({packStatuses:l},o)}updatePackAvailability(e,t){const a={...this.state.packAvailOptions,[e]:t};this.setState({packAvailOptions:a})}
1setRecipientFormFieldsValues(e,t){this.setState({recipientFormFieldValues:{...this.state.recipientFormFieldValues,[e]:t}})}onToggleRecipient(e,t){this.setState({recipientFormFieldValues:{}},this.toggleOptionAttribute(e,t,"hasToShowRecipientForm"))}updateDatesForPack(e,t,a){const i={...this.state.packDates,[a]:{checkIn:e,checkOut:t}},o={...this.state.packAvailOptions};delete o[a],this.setState({packDates:i,packAvailOptions:o}),this.updatePackStatus({packId:a,loadStatus:d.ITEM_STATUS_NOT_LOADED},()=>this.fetchAvailability({checkIn:e,checkOut:t,mode:"booking",packId:a}))}updateDatesForEveryPack(e,t){const a={};this.props.packs.forEach(i=>{a[i.id]={checkIn:e,checkOut:t}}),this.setState({packDates:a})}addPackOptionToCart(e,t,a){const i={checkIn:this.props.defaultCheckIn,checkOut:this.props.defaultCheckOut},o=this.state.packDates[e]||i,s={optionId:t,hotelCode:this.props.hotelCode,checkIn:o.checkIn,checkOut:o.checkOut,packProps:a,promoCode:this.state.promoCode},c={availabilityInfo:this.props.availabilityInfo,brandInfo:this.props.brandInfo,currency:this.props.currencySelector.defaultCurrency,hotelInfo:this.props.hotelInfo,locale:this.props.locale,loyaltyInfo:this.props.loyaltyInfo,packCode:e,packData:this.props.packs,packInfo:s,packOptions:this.state.packAvailOptions[e],projectName:this.props.projectName};return this.setState({showLoader:!0}),n.cart.addPackage(s,this.props.addToCartEndpoint).then(()=>{this.props.onAddToCart(s),s.packProps&&(this.props.dispatchEvent("addPack",{eLabel:s.packProps.title}),(0,r.hasObjectData)(this.state.packAvailOptions)&&this.props.sendEvent("ga4Add",{...(0,u.getPackageDataForSendEvent)({...c})}))}).then(()=>{const{mode:a}=this.state.packStatuses[e];this.setState({showLoader:!1},"gift"===a?this.onToggleRecipient(e,t):r.defaultEmptyFunction)}).catch(e=>this.handleError(e))}handleDatesSelected(e){this.updateDatesForPack(e.checkin,e.checkout,this.state.calendarOpenForPack),this.closeCalendar(this.state.calendarOpenForPack,"booking")}handleError(e){this.setState({errorMsg:e.message,showLoader:!1})}openCalendarForPack(e,t){this.setState({calendarOpen:!0,calendarOpenForPack:e,calendarOneDayOnly:"NA"!==t,packStatuses:{...this.state.packStatuses,[e]:{...this.state.packStatuses[e],hasToShowPackageItem:!1}}})}closeCalendar(e,t){this.props.onCloseCalendar();const a=e?{...this.state.packStatuses,[e]:{...this.state.packStatuses[e],hasToShowPackageItem:!0,mode:t}}:this.state.packStatuses;this.setState({calendarOpen:!1,calendarOpenForPack:null,calendarOneDayOnly:!1,packStatuses:a})}changeCurrency(e){const t=(0,c.getCurrency)(this.props.currencySelector.currencies,this.props.currencySelector.currentCurrency||this.props.currencySelector.defaultCurrency,e),a={};Object.keys(this.state.packAvailOptions).forEach(t=>{a[t]=(0,p.convertAvailablityPrices)(this.state.packAvailOptions[t],e)}),this.props.onChangeCurrency(e,t),this.setState({packAvailOptions:a})}clearErrorMessage(){this.setState({errorMsg:""})}render(){return(0,m.jsx)(l.default,{...this.props,...this.state,addPackOptionToCart:this.addPackOptionToCart,currencySelector:{...this.props.currencySelector,onChange:this.changeCurrency},clearErrorMessage:this.clearErrorMessage,closeCalendar:this.closeCalendar,fetchGiftOptionsAvailability:this.fetchGiftOptionsAvailability,handleDatesSelected:this.handleDatesSelected,handleError:this.handleError,onNewAvailabilityResponseManaged:this.onNewAvailabilityResponseManaged,onToggleRecipient:this.onToggleRecipient,openCalendarForPack:this.openCalendarForPack,openPackageItem:this.openPackageItem,setRecipientFormFieldsValues:this.setRecipientFormFieldsValues,toggleConditionsDialog:this.toggleConditionsDialog,updateDatesForPack:this.updateDatesForPack,updatePackAvailability:this.updatePackAvailability,updatePackStatus:this.updatePackStatus})}}t.default=k,l.default.displayName="PackagesPageModel",k.propTypes={addToCartEndpoint:s.default.string.isRequired,availabilityEndpoint:s.default.string.isRequired,availabilityInfo:s.default.object,cart:s.default.object,cdn:s.default.string,currencies:s.default.array,currenciesChangeUrl:s.default.string,currenciesEndpoint:s.default.string,currencyAdvice:s.default.string.isRequired,currencyDefault:s.default.string.isRequired,currencySelectText:s.default.string,defaultCheckIn:s.default.string.isRequired,defaultCheckOut:s.default.string.isRequired,errorMessageTimeToHide:s.default.number,fromText:s.default.string.isRequired,lastAvailabilityResponse:s.default.object,locale:s.default.string.isRequired,modeFromURL:s.default.string,navTabs:s.default.array,newPackageSearchConfig:s.default.object,nightsText:s.default.string.isRequired,nightText:s.default.string.isRequired,noAvailText:s.default.string.isRequired,onCallDatesCalendar:s.default.func,onChangeCurrency:s.default.func,packs:s.default.array.isRequired,readLessText:s.default.string.isRequired,readMoreText:s.default.string.isRequired,recipientForm:s.default.object,taxesText:s.default.string.isRequired,giftPackageImageUrl:s.default.string.isRequired},k.defaultProps={cdn:"",currencies:[],errorMessageTimeToHide:5e3,lastAvailabilityResponse:null,onCallDatesCalendar:r.defaultEmptyFunction,onChangeCurrency:r.defaultEmptyFunction,onCloseCalendar:r.defaultEmptyFunction},e.exports=t.default}
1,9841:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={ITEM_STATUS_NOT_LOADED:"not-loaded",ITEM_STATUS_LOADED:"loaded",ITEM_STATUS_LOADING:"loading",URL_DATES_FORMAT:"YYYY-MM-DD"};e.exports=t.default},30317:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={convertAvailablityPrices:(e,t)=>e.map(e=>({...e,oldPrice:e.oldPrices[t],price:e.prices[t],priceBeforeConversion:e.price})),extractCurrenciesFromResponseData:e=>[e.monedas.principal,...e.monedas.otras],mapCurrencies:e=>e.map(e=>({...e,conversion:e.tasa,name:e.nombre,symbol:e.simbolo,text:e.codigo}))};e.exports=t.default},60397:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={hasToLaunchDeeplinkSearch:(e,t)=>""!==t&&1===e,mapResponse:e=>e.paquete.opciones.map(e=>({conditions:e.condiciones,description:e.descripcion,hasToShowRecipientForm:!1,id:e.id,oldPrices:e.nprecio_antes,price:e.precio,prices:e.nprecio,showConditions:!1,title:e.nombre}))};e.exports=t.default},87970:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={getPromoCode:({availabilityInfo:e})=>{const t=new URLSearchParams(window.location.search);return e?.promocode||t.get("codpromo")||t.get("cp")}};e.exports=t.default},28150:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(31090),o=a(98424),s=a(44908);const n=({addText:e,conditionsLinkText:t,currencyCode:a,forcedCurrencyFormat:i,getRecipientFormFieldValues:s,locale:n,mode:r,onAddToCart:c,onToggleRecipient:l,packageAvailabilityOptions:d,packageId:p,packageTitle:u,recipientForm:h,recipientFormFieldValues:g,textTitleConditions:f,toggleConditionsDialog:m})=>{const k=d[p]||[],y=[];for(let d=0;d<k.length;d+=1){const b=k[d],v={currencyCode:a,formatArgs:i.currency_format,locale:n,price:b.price};y[d]={addButton:{addText:e,handleButtonClick:"booking"===r?({optionId:e})=>c(p,e,{title:u}):({optionId:e})=>l(p,e)},conditionsLinkText:t,conditions:b.conditions,getRecipientFormFieldValues:s,hasToShowRecipientForm:b.hasToShowRecipientForm,onConditionsOpenChange:()=>m(p,b.id),onToggleRecipient:({optionId:e})=>l(p,e),optionDescription:b.description,optionName:b.title,optionTitle:b.title,option:{showConditions:b.showConditions},price:{finalPrice:b.price,priceFormatted:(0,o.convertAndFormatPrice)(v)},props:{optionId:b.id},recipientForm:{...h,onClickSubmit:()=>c(p,b.id,{title:u,giftPackageRecipientForm:g})},recipientFormFieldValues:g,textTitleConditions:f}}return y},r=(e,t)=>{const a=e.findIndex(e=>e.id===t),i=a>=0?e[a]:null;return{index:a+1,isGiftable:i?.is_giftable}},c=(e,t)=>e.find(e=>e.id===t)||null;t.default={getCDNImage:s.getCDNImage,getCurrencyCode:e=>e.currentCurrency||e.defaultCurrency,getCurrencyConversion:e=>e.currencyConversion||1,getPackageDataForSendEvent:({availabilityInfo:e,currency:t,hotelInfo:a,locale:i,loyaltyInfo:o,packCode:s,packData:n,packInfo:l,packOptions:d,projectName:p})=>{const{index:u,isGiftable:h}=r(n,s),g=c(d,l.optionId),f={corporateGroupNumber:o.corporateGroupNumber,currency:t,customerEmail:o.customerEmail,hotelCity:a.hotelCity,hotelCode:l.hotelCode,hotelCountry:a.hotelCountry,hotelCountryCode:a.hotelCountryCode,hotelAddress:a.hotelAddress,hotelName:a.hotelName,hotelState:a.hotelState,itemCategory:h?"packages_gift":"packages",locale:i,listId:"packages_options",listName:"packages options availability",numberOfAdults:e.numberOfAdults,numberOfChildren:e.numberOfChildren,onsite_click_element:"add_to_cart",packageCode:l.optionId,packageName:g.title,parentId:s,position:u,price:g.priceBeforeConversion,promoCode:l.promoCode,quantity:1,siteType:p,specialOfferCode:e.promocode};return h||(f.checkInDate=l.checkIn,f.checkOutDate=l.checkOut),f},getPackageInfoByPackageCode:r,getPackageItemStatus:(e,t,a)=>({hasToShowPackageItem:t?!e?.hasToShowPackageItem:e?.hasToShowPackageItem||!1,modeValue:a||e?.mode}),getPackageOptionSelected:c,getPreviewProps:({addText:e,bookNowText:t,cdn:a,conditionsLinkText:r,currencyCode:c,currencyConversion:l,datesText:d,dateText:p,fetchGiftOptionsAvailability:u,forcedCurrencyFormat:h,fromText:g,getRecipientFormFieldValues:f,giveAPresentText:m,isDesktop:k,locale:y,modeFromURL:b,nightsText:v,nightText:T,noAvailText:C,onAddToCart:x,onOpenDatesSelectorForPack:P,onToggleRecipient:O,openPackageItem:S,packageGiftOptionsTitleText:F,packageOptionsTitleText:A,packAvailOptions:D,packDates:I,packStatuses:_,readLessText:R,readMoreText:E,recipientForm:M,recipientFormFieldValues:w,taxesText:j,textTitleConditions:N,toggleConditionsDialog:L,updatePackStatus:V},{description:q,id:G,image:U,images:B=[],is_bookable:H,is_giftable:z,price_from:$,title:Y,type:W,packageId:J})=>{const{loadStatus:K}=_[G],{hasToShowPackageItem:Q,isBookable:X,isGiftable:Z,mode:ee}=(({isBookableValue:e,isGiftableValue:t,modeFromURL:a,packStatus:i})=>{let o;return a&&"hidden"===i.mode?o=a:({mode:o}=i),{hasToShowPackageItem:i.hasToShowPackageItem,isBookable:"booking"===a||e,isGiftable:"gift"===a||t,mode:o}})({isBookableValue:H,isGiftableValue:z,modeFromURL:b,packStatus:_[G]}),te="NA"!==W,ae={buttons:{bookNowText:t,giveAPresentText:m,mode:ee,onBookNow:()=>P(G,W),onGiveAGift:()=>u(G)},conditionsLinkText:r,hasToShowPackageItem:Q,header:{fromText:g,images:B.map(({titulo:e,url:t})=>{const{src:i,srcSet:o}=(0,s.getCDNImage)(a,t,{packages:k?"itemDesktop":"itemMobile"});return{name:e,src:i,srcSet:o}}),onClose:()=>V({packId:G,hasToTogglePackageItem:!0}),price:(0,o.convertAndFormatPrice)({currencyCode:c,currencyConversion:l,formatArgs:h.currency_format,locale:y,price:$}),taxesText:j},id:G,isBookable:X,isDesktop:k,isGiftable:Z,isLoading:"loading"===K,mode:ee,packageOptions:{availabilityOptions:n({addText:e,conditionsLinkText:r,currencyCode:c,forcedCurrencyFormat:h,getRecipientFormFieldValues:f,locale:y,mode:ee,onAddToCart:x,onToggleRecipient:O,packageAvailabilityOptions:D,packageId:G,packageTitle:Y,recipientForm:M,recipientFormFieldValues:w,textTitleConditions:N,toggleConditionsDialog:L}),mode:ee,readLessText:R,readMoreText:E,title:"gift"===ee?F:A},readMore:{readLessText:R,readMoreText:E,text:q},selectedDates:{checkinSelectedDate:(0,i.getDate)({date:I[G].checkIn}),checkoutSelectedDate:te?null:(0,i.getDate)({date:I[G].checkOut}),datesText:d,dateText:p,nightsText:v,nightText:T,onClickDateSelected:()=>P(G,W),oneDayOnly:te,hideLabel:!0},title:Y,openPackageItem:()=>S(G,X,Z),packageId:J};return{cdn:a,currencyCode:c,forcedCurrencyFormat:h,fromPrice:$*l,fromText:g,image:U,isBookable:X,isDesktop:k,isGiftable:Z,locale:y,noAvailText:C,packageItem:ae,taxesText:j,title:Y}}};e.exports=t.default}
1,51349:function(e,t,a){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(31090),o=a(51678);t.default={buildRecipientForm:(e,t,a)=>({form:{acceptance_email:{error:t.mandatoryField,label:t.hotelEmailSendConsent.replace("<HOTEL_NAME>",a),name:"acceptance_email",related_to:"send_email",order:7,required:!0,type:"checkbox",value:!1},message:{error:t.mandatoryField,label:t.message,maxLengthNumber:300,name:"message",order:3,required:!1,showMaxLengthNumber:!0,type:"TextAreaField",value:null},recipient_email:{error:t.mandatoryField,label:t.recipientEmail,name:"recipient_email",related_to:"send_email",order:5,pattern:"[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,3}$",required:!0,type:"email",value:null},recipient_name:{error:t.mandatoryField,label:t.recipientName,name:"recipient_name",order:1,required:!0,type:"text",value:null},send_date:{error:t.mandatoryField,label:t.sendGiftDate,name:"send_date",related_to:"send_email",order:6,required:!0,type:"date",value:null,minDate:(0,i.getFormattedDate)("YYYY-MM-DD")},sender_name:{error:t.mandatoryField,label:t.senderName,name:"sender_name",order:2,required:!0,type:"text",value:null},send_email:{activateOptionalFields:["send_date","recipient_email","acceptance_email"],error:t.mandatoryField,label:t.emailVoucherToRecipient,name:"send_email",order:4,required:!1,type:"checkbox",value:!1}},buttonText:t.continue,backgroundUrl:e,letterForText:(0,o.capitalize)(t.for),letterFromText:(0,o.capitalize)(t.onBehalfOf),textRequired:t.required,title:t.giftDetails})};e.exports=t.default},36354:function(e,t,a){var i=a(24994);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=i(a(41567));t.default=o.default;e.exports=t.default}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.