(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{0:function(e,t,n){"use strict";function o(e,t=document){return t.querySelector(e)}function a(e,t=document){return Array.from(t.querySelectorAll(e))}function i(e,t=document){let{parentElement:n}=t;for(;n;){if((n.msMatchesSelector||n.matches).call(n,e))return n;n=n.parentElement}return t}n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return i}))},10:function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return r}));let o=0;function a(){o=window.pageYOffset,document.body.style.top="-".concat(o,"px"),document.body.classList.add("is-fixed")}function i(e=!0){if(e)document.body.style.top=0,document.body.classList.remove("is-fixed"),window.scroll(0,o),o=0;else{const e=Math.abs(parseInt(document.body.style.top));document.body.classList.remove("is-fixed"),window.scroll(0,e),o=0}}function r(){return document.body.classList.contains("is-fixed")}},11:function(e,t,n){"use strict";function o(e,{bubbles:t,cancelable:n,detail:o}={bubbles:!1,cancelable:!1,detail:null}){const a=document.createEvent("CustomEvent");return a.initCustomEvent(e,t,n,o),a}n.d(t,"a",(function(){return o})),o.prototype=Event.prototype},12:function(e,t,n){"use strict";n(48);function o(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(n,!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const r={state:{emptyTrackingObject:{item_id:"UDSOLGT",item_name:"",item_variant:"",item_brand:"",item_category:"",item_category2:"",item_category3:"",item_category4:"",item_category5:"",item_list_id:"",item_list_name:"",affiliation:"",currency:"",index:0,location_id:"",price:0,quantity:0},wrapperObject:{transaction_id:"0",affiliation:"da",value:0,tax:0,shipping:0,currency:"DKK",items:[]},hotelInfoList:[{hotelname:"Phoenix Copenhagen",hotelcode:"PHO"},{hotelname:"Nyhavn Hotel",hotelcode:"NYH"},{hotelname:"Imperial Hotel",hotelcode:"IMP"},{hotelname:"The Square",hotelcode:"SQU"},{hotelname:"Tivoli Hotel",hotelcode:"TIV"},{hotelname:"Copenhagen Island",hotelcode:"ISL"},{hotelname:"Copenhagen Strand",hotelcode:"STR"},{hotelname:"Gentofte Hotel",hotelcode:"GEN"}],Step1_item_list_TrackingObject:[],Step_Payment_TrackingObject:[],confirmation_datalayer:{checkin:"",checkout:"",currency:"DKK",guests:"",hotelid:"",nights:"",priceWithTaxes:"",priceWithoutTaxes:"",rooms:"",transactionId:""},customerData:{customer_email:"",customer_phone:""},currentBookingStep:0},getters:{currentBookingStep:e=>e.currentBookingStep},mutations:{setCustomerData(e,t){e.customer_data=t},setStep1_item_list_TrackingObject(e,t){e.Step1_item_list_TrackingObject=t},setStep_Payment_TrackingObject(e,t){e.Step_Payment_TrackingObject=t},resetStep_Payment_TrackingObject(e){e.Step_Payment_TrackingObject=[]},setconfirmation_datalayer(e,t){e.confirmation_datalayer=t},setCurrentBookingStep(e,t){e.currentBookingStep=t}},actions:{fireCustomerDataEvent({state:e}){dataLayer.push({event:"customer_data",customer_email:e.customerData.customer_email,customer_phone:e.customerData.customer_phone}),e.customerData={customer_email:"",customer_phone:""}},setCustomerData({commit:e},t){e("setCustomerData",t)},setCurrentBookingStep({commit:e},t){e("setCurrentBookingStep",t)},fireGAEvent(e,t,n){n?dataLayer.push({event:t,ecommerce:a({},n)}):dataLayer.push({event:t,ecommerce:{items:e}})},Step1_item_list_tracking(e,t,n,o){var i=[],r=document.getElementById("hotel-service-menu").getAttribute("languageprop");for(let t=0;t<e.hotelInfoList.length;t++){const n=e.emptyTrackingObject;n.item_brand=e.hotelInfoList[t].hotelname,n.item_category5=e.hotelInfoList[t].hotelcode,i.push(a({},n))}for(let e=0;e<i.length;e++){for(let t=0;t<n.length;t++)i[e].item_category5===n[t].code&&(i[e].item_id="AVAILABLE",i[e].index=n[t].displaySortOrder,i[e].price=n[t].lowestPrice);i[e].affiliation="ARP."+r,i[e].currency=window.localStorage.Currency,i[e].item_category=o.arrivalDate,i[e].item_category2=o.utility.adultsTotal+" adults",i[e].item_category3=o.utility.flexibleNights+" nights",i[e].item_category4=o.utility.roomsTotal+" rooms",i[e].item_list_id="STEP-1",i[e].item_list_name="HOTEL LIST",i[e].quantity=o.utility.flexibleNights*o.utility.roomsTotal}t.setStep1_item_list_TrackingObject(e,i),this.fireGAEvent(e.Step1_item_list_TrackingObject,"view_item_list")},GAStep_Payment_TrackingObject(e,t,n,o){if(void 0===n)return;var i=[];for(let t=0;t<n.length;t++){var r=n[t];const c=e.emptyTrackingObject;var s=document.getElementById("hotel-service-menu").getAttribute("languageprop");c.item_id=r.stay.room.code,c.item_name=r.stay.room.shortDescription,c.item_variant=r.stay.rate.code,c.item_brand=r.ahhgHotelInfo.name,c.item_category=r.stay.arrivalDate,c.item_category2=o.flexibleNights,c.item_category3=1,c.item_category4=r.stay.room.numberOfAdults,c.item_category5=r.stay.room.numberOfChildren,c.item_list_id="DONE",c.item_list_name="DONE",c.affiliation=s,c.currency="DKK",c.index=0,c.location_id=0,c.price=r.stay.pricePerNight,c.quantity=o.flexibleNights,i.push(a({},c))}t.setStep_Payment_TrackingObject(e,i);var c=0;for(let t=0;t<e.Step_Payment_TrackingObject.length;t++)c+=e.Step_Payment_TrackingObject[t].price;var l=0;for(let e=0;e<n.length;e++)l+=n[e].stay.bookingNumber,l+=",";l=l.slice(0,-1);const d=a({},this.wrapperObject);d.transaction_id=l,d.affiliation=s,d.value=c*o.flexibleNights,d.tax=0,d.shipping=0,d.currency="DKK",d.items=e.Step_Payment_TrackingObject,this.fireGAEvent(e.Step_Payment_TrackingObject,"purchase",d)},GAStep_Confirmation_TrackingObject(e,t,n,o){n.forEach(e=>{const t=e.stay.room.numberOfAdults+e.stay.room.numberOfChildren;let n=e.stay.bookingNumber;const a=e.totalPrice,i=.8*a;let r={checkin:e.stay.arrivalDate.split("T")[0],checkout:e.stay.departureDate.split("T")[0],currency:"DKK",guests:t,hotelid:e.ahhgHotelInfo.code,nights:o.flexibleNights,priceWithTaxes:a,priceWithoutTaxes:i,rooms:1,transactionId:n};this.fireGAEvent(r,"meta_search")})}}};t.a=r},13:function(e,t,n){"use strict";n(28),n(20);var o=n(39),a=n.n(o);function i(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.a={install(e){e.prototype.$l=this.getLabel.bind(this)},addLabels(e){this.labels=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(n,!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},this.labels,{},e)},getLabels(){return this.labels},getLabel(e,...t){const n=a()(this.labels,e);return n?this.compileLabel(n,...t):(console.warn("LabelsPlugin: Unable to find ".concat(e," label")),e)},compileLabel(e,...t){let n=0;return e.replace(/%s/g,()=>t[n++])}}},16:function(e,t,n){"use strict";n.r(t),n.d(t,"COMMANDS",(function(){return l})),n.d(t,"default",(function(){return d}));var o=n(0),a=n(7),i=n(10),r=n(6),s=n(11),c=n(3);const l={open:"companyDashboard:open",close:"companyDashboard:close"};class d{constructor(e){this.element=e,this.closeButton=Object(o.a)(".js-companyDashboardCloseButton",e),this.backdrop=Object(o.a)(".js-companyDashboardBackdrop"),this.handleBackdropClick=this.handleBackdropClick.bind(this),this.handleCloseKeydown=this.handleCloseKeydown.bind(this),this.addListeners()}addListeners(){this.closeButton.addEventListener("click",this.close.bind(this)),document.addEventListener(l.open,this.open.bind(this))}addCloseListeners(){this.backdrop.addEventListener("click",this.handleBackdropClick),document.addEventListener("keydown",this.handleCloseKeydown)}removeCloseListeners(){this.backdrop.removeEventListener("click",this.handleBackdropClick),document.removeEventListener("keydown",this.handleCloseKeydown)}handleBackdropClick(){this.close()}handleCloseKeydown({keyCode:e}){27===e&&this.close()}open(){this.element.classList.add("is-visible"),this.backdrop.classList.add("is-visible"),this.addCloseListeners(),Object(r.b)(c.b.sm)&&Object(i.a)(),Object(a.a)(this.element,"transitionend",()=>{this.element.focus()})}close(){this.element.classList.remove("is-visible"),this.backdrop.classList.remove("is-visible"),this.removeCloseListeners(),Object(r.b)(c.b.sm)&&Object(i.b)(),document.dispatchEvent(new s.a(OUTBOUND_EVENTS.close))}}},17:function(e,t,n){"use strict";t.a={namespaced:!0,state:{isContentAttached:!1,hasWhiteContentMobile:!1,isfrontpage:!1},mutations:{setContentAttached(e,t){e.isContentAttached=t},setHasWhiteContentMobile(e,t){e.hasWhiteContentMobile=t},setIsfrontpage(e,t){e.isfrontpage="True"===t}}}},19:function(e,t,n){"use strict";var o=n(40),a=n(9),i=n(21),r=(n(14),n(26),n(1)),s=n(5),c=n.n(s),l=n(15),d=n.n(l),u=n(23),h=n(3),m=n(2);function p(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g={state:{CorporateId:"",isCompanyLoggedIn:!1,companyName:"",isCompanyCookieStatusChecked:!1,isDashboardPristine:!0,dashboardList:[],dashboardItem:null,isGroup:!1,selectedBilling:""},getters:{companyInfo:e=>({CorporateId:e.CorporateId,companyName:e.companyName,isGroup:e.isGroup}),selectedBilling:e=>e.selectedBilling},mutations:{setCompanyData(e,t){e.isCompanyLoggedIn=t.IsLoggedIn,e.isAgent=t.IsAgent,e.isCorporate=t.IsCorporate,e.corporateGuarantee=t.CorporateGuarantee,e.payOnCc=t.PayOnCc,e.sendInvoice=t.SendInvoice,e.companyName=t.ProfileName,e.isGroup=t.IsGroup,e.CorporateId=t.CorporateId},setSelectedBilling(e,t){e.selectedBilling=t},setDashboardList(e,t){e.dashboardList=t||[]},setDashboardItem(e,t){e.dashboardItem=t||null},clearCompanyState(e){const t={CorporateId:"",isCompanyLoggedIn:!1,companyName:"",isCompanyCookieStatusChecked:!1,isDashboardPristine:!0,dashboardList:[],dashboardItem:null,isGroup:!1,selectedBilling:""};Object.keys(t).forEach(n=>{e[n]=t[n]})}},actions:{checkCompanyStatus({state:e}){c.a.post("/api/ahhg/OwsName/Status").then(({data:e})=>{e.IsLoggedIn||d.a.remove(h.a.companyName),document.dispatchEvent(new CustomEvent(u.COMMANDS.update,{detail:e}))})},setSelectedBilling({commit:e},t){e("setSelectedBilling",t)},setCompanyData({commit:e},t){e("setCompanyData",t),e("updateOrderCompanyInfo",{guarantee:"Guest",billing:"Guest"}),(t.IsAgent||t.IsCorporate)&&(t.PayOnCc&&e("updateOrderCompanyInfo",{guarantee:"PayOnCc",billing:"PayOnCc"}),t.SendInvoice&&e("updateOrderCompanyInfo",{billing:"Corporate"}),t.CorporateGuarantee&&e("updateOrderCompanyInfo",{guarantee:"Corporate"}))},getDashboardList({state:e,commit:t},n){const o={hotels:"Ahhg",startDate:Object(r.format)(n.startDate,m.d.backend),endDate:Object(r.format)(n.endDate,m.d.backend)},a=c.a.post("/api/ahhg/OwsResv/GetBookings",o);return e.isDashboardLoading=!0,a.then(({data:e})=>{const n=e.futureBookingRows.map(e=>function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(n,!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e,{bookNo:parseInt(e.bookNo,10),arrivalDateString:Object(r.format)(Object(r.parse)(e.arrivalDate),"DD-MM-YYYY"),arrivalDateTime:new Date(e.arrivalDate).getTime(),departureDateString:Object(r.format)(Object(r.parse)(e.departureDate),"DD-MM-YYYY"),departureDateTime:new Date(e.departureDate).getTime()}));t("setDashboardList",n)}).finally(()=>{e.isDashboardPristine=!1,e.isDashboardLoading=!1}),a},getDashboardItem({state:e,commit:t},n){const o=c.a.post("/api/ahhg/OwsResv/GetBooking",n);return e.isDashboardLoading=!0,o.then(({data:e})=>{t("setDashboardItem",e)}).catch(()=>{}).finally(()=>{e.isDashboardLoading=!1}),o}}},f=(n(20),n(22)),y=n(7),O=n(10),v=n(4);function D(){return{currentHotel:v.a.hotelCode,hasHotelStep:v.a.hasHotelStep,operaMaintenanceStatus:v.a.operaMaintenanceStatus,maxOccupancy:v.a.maxOccupancy,newsletterSignupId:v.a.newsletterSignupId,termsAndConditionLink:v.a.termsAndConditionLink,personalInformationLink:v.a.personalInformationLink,isEngineActive:!1,isFlowOpen:!1,isFlowLoading:!1,isFlowSoldOut:!1,isFlowMaintenance:!1,isFlowError:!1,isReservationOpen:!1,isReservationLoading:!1,isReservationSoldOut:!1,isReservationMaintenance:!1,isReservationError:!1,isDashboardOpen:!1,isDashboardLoading:!1,isDashboardSoldOut:!1,isDashboardMaintenance:!1,isDashboardError:!1,isMobileBookingBoxVisible:!1,isMobileBookingBoxDisabled:!1,bookingBoxDatePickerIsOpen:!1,bookingBoxDateOccupancyPickerIsOpen:!1,showUserNewslettersignupBooking:!1,currentRoute:v.a.hasHotelStep?m.g.hotel:m.g.room,steps:[...v.a.hasHotelStep?[{routeName:m.g.hotel,labelKey:"Booking.ProgressBar.Hotel"}]:[],{routeName:m.g.room,labelKey:"Booking.ProgressBar.Room"},{routeName:m.g.payment,labelKey:"Booking.ProgressBar.Payment"},{routeName:m.g.done,labelKey:"Booking.ProgressBar.Done"}],isBookingModalBackdropOpen:!1,IsUrlParameters:!1,isSCOutOfServiceEnabled:!1,disabledStartDate:null,disabledEndDate:null,outOfService:!1}}var C={state:D(),mutations:{setUserNewslettersignupBooking(e,t){e.showUserNewslettersignupBooking=t},setBookingBoxDatePickerIsOpen(e,t){e.bookingBoxDatePickerIsOpen=t,!0===e.bookingBoxDateOccupancyPickerIsOpen&&(e.bookingBoxDateOccupancyPickerIsOpen=!1)},setBookingBoxDateOccupancyPickerIsOpen(e,t){e.bookingBoxDateOccupancyPickerIsOpen=t,!0===e.bookingBoxDatePickerIsOpen&&(e.bookingBoxDatePickerIsOpen=!1)},setEngineActive(e,t){e.isEngineActive=t},setFlowOpen(e,t){e.isFlowOpen=t},handleFlowLoading(e,t){t?(e.isFlowLoading=!0,e.isFlowSoldOut=!1,e.isFlowMaintenance=!1):e.isFlowLoading=!1},handleFlowSoldOut(e,t){t?(e.isFlowSoldOut=!0,e.isFlowMaintenance=!1,e.isMobileBookingBoxDisabled=!1):e.isFlowSoldOut=!1},handleFlowError(e,t){t?(e.isFlowError=!0,e.isFlowSoldOut=!1,e.isFlowMaintenance=!1,e.isMobileBookingBoxDisabled=!1):e.isFlowError=!1},handleFlowMaintenance(e,t){t?(e.isFlowSoldOut=!1,e.isFlowMaintenance=!0,e.isMobileBookingBoxDisabled=!0):(e.isFlowMaintenance=!1,e.isMobileBookingBoxDisabled=!1)},setReservationOpen(e,t){e.isReservationOpen=t,t&&(e.isReservationError=!1)},handleReservationLoading(e,t){t?(e.isReservationLoading=!0,e.isReservationSoldOut=!1,e.isReservationMaintenance=!1,e.isReservationError=!1):e.isReservationLoading=!1},handleReservationError(e,t){t?(e.isReservationLoading=!1,e.isReservationSoldOut=!1,e.isReservationMaintenance=!1,e.isReservationError=!0):e.isReservationError=!1},setDashboardOpen(e,t){e.isDashboardOpen=t},toggleMobileBookingBox(e,t){e.isMobileBookingBoxVisible=void 0!==t?!!t:!e.isMobileBookingBoxVisible},setIsBookingModalBackdropOpen(e,t){e.isBookingModalBackdropOpen=t},setCurrentRoute(e,t){e.currentRoute=t},clearEngineState(e){const t=D();Object.keys(t).forEach(n=>{e[n]=t[n]})},setIsUrlParameters(e,t){e.IsUrlParameters=t},setSCOutOfServiceEnabled(e,t){e.isSCOutOfServiceEnabled=t},setDisabledStartDate(e,t){e.disabledStartDate=t},setDisabledEndDate(e,t){e.disabledEndDate=t},setShowOutOfService(e,t){e.outOfService=t}},actions:{isIsUrlParameters({commit:e},t){e("setIsUrlParameters",t)},openModal({state:e,rootState:t,commit:n},o){const{isRespondingToMd:a,isRespondingToSm:i}=t.screen,{isEngineActive:r,isFlowOpen:s}=e,c=a||i;return r||n("setEngineActive",!0),new Promise(e=>{Object(y.a)(document,f.EVENTS.contentAttached,e),document.dispatchEvent(new CustomEvent(s||c?f.COMMANDS.attachContentManually:f.COMMANDS.attachContentByScrolling))}).then(()=>{switch(Object(O.a)(),document.dispatchEvent(new CustomEvent(f.COMMANDS.hideLogo)),o){case m.a.flow:n("setFlowOpen",!0),n("setReservationOpen",!1),n("setDashboardOpen",!1);break;case m.a.reservation:n("setReservationOpen",!0),n("setDashboardOpen",!1),n("clearReservationState");break;case m.a.dashboard:n("setDashboardOpen",!0)}})},closeModal({state:e,commit:t},n){switch(n){case m.a.flow:t("setFlowOpen",!1),e.isReservationOpen||e.isDashboardOpen||Object(O.b)();break;case m.a.reservation:t("setReservationOpen",!1),e.isFlowOpen||e.isDashboardOpen||Object(O.b)();break;case m.a.dashboard:t("setDashboardOpen",!1),e.isReservationOpen||e.isFlowOpen||Object(O.b)()}},setDisabledStartDate({commit:e},t){e("setDisabledStartDate",t)},setDisabledEndDate({commit:e},t){e("setDisabledEndDate",t)},setShowOutOfService({commit:e},t){e("setShowOutOfService",t)},setSCOutOfServiceEnabled({commit:e},t){e("setSCOutOfServiceEnabled",t)}},getters:{disabledStartDate:e=>e.disabledStartDate,disabledEndDate:e=>e.disabledEndDate,showOutOfService:e=>e.outOfService}},w=(n(46),n(13)),k=n(12);function j(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?j(n,!0).forEach((function(t){L(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function L(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function R(){return{order:{hotelCode:v.a.hotelCode,rooms:[],giftcard:{isGiftcardUsed:!1},corporate:{guarantee:"Guest",billing:"Guest"}},hotels:[],zoom:[],facilityIcons:[],roomsResponse:void 0,filterFacilitiesSelected:[],chartPrices:[],matrixPrices:[]}}function P(e){return e.reduce((e,t)=>{switch(t.rateCategory){case m.f.core:e.core.push(t);break;case m.f.corporate:e.corporate.push(t);break;case m.f.package:e.package.push(t);break;default:e.campaign.push(t)}return e},{corporate:[],core:[],package:[],campaign:[]})}var E={state:R(),getters:{getHotelCode:e=>e.order.hotelCode,filterFacilities(e){const t={};for(const n of e.hotels)for(const o of n.filterFacilities)t[o.text]||(t[o.text]=S({},o,{isActive:-1!==e.filterFacilitiesSelected.indexOf(o.text),count:0})),t[o.text].count+=n.isMatchingFilter?1:0;return Object.entries(t).map(([e,t])=>t)},filteredHotels:e=>e.hotels.filter(e=>e.isMatchingFilter).sort((e,t)=>"GEN"===e.code?1:0),getRate:e=>(t,n,o)=>{const{rates:a,ahhgRoomsRates:i}=e.roomsResponse,r=a[o],s=i[n][t]&&i[n][t][o];return r&&s?S({},a[o],{},i[n][t][o]):null},getSameRateRooms:e=>t=>{if(!e.roomsResponse)return[];const{rooms:n,rates:o,ahhgRoomsRates:a}=e.roomsResponse,{rateCode:i}=e.order;return Object.entries(a[t]).filter(([,e])=>e[i]).sort(([e],[t])=>n[e].sortOrder-n[t].sortOrder).map(([e,t])=>{const a=n[e],r=o[i],s=t[i],{shortDescription:c,longDescription:l,roomShortFacilityList:d,roomFacilityList:u,roomImages:h}=a;return{roomCode:e,rateCode:i,price:s.price,breakfastIncluded:r.breakfastIncluded,isFlexRate:r.isFlexRate,shortDescription:c,longDescription:l,roomShortFacilityList:d,roomFacilityList:u,roomImages:h}})},roomRates:e=>Object.entries(e.roomsResponse.rates).map(([t,n])=>{const o=e.roomsResponse.ahhgRoomsRates.map(e=>Object.entries(e).map(([e,n])=>n[t]?n[t].price:void 0).filter(e=>void 0!==e)).map(e=>Math.min(...e));return S({},n,{prices:o,price:o.reduce((e,t)=>e+t,0)})}).sort((e,t)=>e.price-t.price),roomRatesByCategory:(e,t)=>P(t.roomRates),roomRatesForOrderedRoom(e,t){let n=[];return Object.values(e.roomsResponse.ratesRooms).forEach(t=>{const o=Object.entries(t).reduce((t,[n,o])=>e.order.rooms.every(e=>Object.keys(o).includes(e.roomCode))?[...t,n]:[...t],[]);n.push(...o)}),t.roomRates.filter(({code:e})=>n.includes(e)).map(t=>{const n=e.order.rooms.reduce((n,o,a)=>n+e.roomsResponse.ahhgRoomsRates[a][o.roomCode][t.code].price+o.packages.reduce((e,{amount:t,selected:n})=>t&&n?e+t:0,0),0);return S({},t,{price:n})})},roomRatesForOrderedRoomByCategory:(e,t)=>P(t.roomRatesForOrderedRoom),roomRateSelected:(e,t)=>t.roomRates.find(({code:t})=>e.order.rateCode===t),orderSubtotal(e,t){const n=(e,{amount:t})=>t?e+t:e;return e.roomsResponse?e.order.rooms.reduce((o,a,i)=>{const r=t.getRate(a.roomCode,i,e.order.rateCode),s=a.packages.reduce(n,0);return r?o+r.price+s:o},0):0},roomsData:e=>e.roomsResponse?e.order.rooms.map(({roomCode:t},n)=>{const o=e.roomsResponse.rooms[t],a=Object.entries(e.roomsResponse.ahhgRoomsRates[n]).sort(([t],[n])=>e.roomsResponse.rooms[t].sortOrder-e.roomsResponse.rooms[n].sortOrder),i=a.map(([e])=>e),r=a.map(([t,o])=>({name:e.roomsResponse.rooms[t].shortDescription,price:Math.min(...Object.entries(o).map(([e,t])=>t.price)),isActive:t===e.order.rooms[n].roomCode,code:t})),s=r.map(({name:e,code:t})=>({title:e,value:t})),{numberOfAdults:c,numberOfChildren:l}=e.roomsResponse.searched.rooms[n],d="".concat(c," ").concat(1===c?w.a.getLabel("Booking.Bookbox.NoOfRoomsAndOccupancy.SingularAdult"):w.a.getLabel("Booking.Bookbox.NoOfRoomsAndOccupancy.PluralAdult")),u=" / ".concat(l," ").concat(1===l?w.a.getLabel("Booking.Bookbox.NoOfRoomsAndOccupancy.SingularChild"):w.a.getLabel("Booking.Bookbox.NoOfRoomsAndOccupancy.PluralChild")),h="".concat(d).concat(l?u:""),m=e.roomsResponse.ahhgRoomsRates[n][t][e.order.rateCode].price;return{roomCode:t,name:o.shortDescription,description:o.longDescription,facilities:o.roomFacilityList,gallery:o.roomImages,price:m,occupancy:h,availableTypes:a,availableTypeCodes:i,availableTypesWithPrice:r,pagination:s}}):[]},mutations:{applyFacilitiesFilter(e,t){e.filterFacilitiesSelected=t,e.hotels=e.hotels.map(t=>{const n=0===e.filterFacilitiesSelected.length||e.filterFacilitiesSelected.reduce((e,n)=>!!e&&-1!==t.filterFacilities.findIndex(e=>e.text===n),!0);return S({},t,{isMatchingFilter:n})})},setChartPrices(e,t){e.chartPrices=t},setMatrixPrices(e,t){e.matrixPrices=t},updateOrder(e,t){e.order=S({},e.order,{},t)},setOrderRateCode(e,t){e.order=S({},e.order,{rateCode:t,rooms:e.order.rooms.map(e=>S({},e,{rateCode:t}))})},updateOrderRoom(e,{roomIndex:t,updates:n}){e.order=S({},e.order,{rooms:e.order.rooms.map((e,o)=>o===t?S({},e,{},n):e)})},updateOrderRoomInfo(e,{roomIndex:t,updates:n}){e.order=S({},e.order,{rooms:e.order.rooms.map((e,o)=>{return o===t?S({},e,{nameAddress:(a=e.nameAddress,S({},a,{},n))}):e;var a})})},updateOrderCompanyInfo(e,t){e.order=S({},e.order,{corporate:S({},e.order.corporate,{},t)})},setOrderGiftCard(e,t){e.order=S({},e.order,{giftcard:t})},clearHotels(e){const{hotels:t}=R();e.hotels=t},clearRoomsResponse(e){const{roomsResponse:t}=R();e.roomsResponse=t},clearFlowState(e){const t=R();Object.keys(t).forEach(n=>{e[n]=t[n]})}},actions:{clearHotels(e){e.hotels=[]},syncOrderWithCurrentQuery({state:e,commit:t}){const{checkInDate:n,checkOutDate:o,flexibleMonth:a,flexibleNights:i,isFlexibleDates:s,occupancy:c}=e.currentQuery;t("updateOrder",{arrivalDate:Object(r.format)(n,m.d.backend),departureDate:Object(r.format)(o,m.d.backend),rooms:c.map(({adults:e,children:t})=>({packages:[],specialRequests:[],nameAddress:{},numberOfAdults:e,numberOfChildren:t.length,childAges:t.map(e=>({age:e}))})),utility:{isFlexibleDates:s,checkInDate:n,checkOutDate:o,flexibleMonth:a,flexibleNights:i,occupancy:c,roomsTotal:c.length,adultsTotal:c.reduce((e,t)=>e+t.adults,0),childrenTotal:c.reduce((e,t)=>e+t.children.length,0)}})},search({state:e,dispatch:t}){t(e.hasHotelStep?"searchHotel":"searchRoom")},searchHotel({state:e,commit:t,dispatch:n}){if(e.hotels=[],e.operaMaintenanceStatus)return void t("handleFlowMaintenance",!0);n("syncOrderWithCurrentQuery"),t("handleFlowLoading",!0),e.order.hotelCode="AHHG";const o=c.a.post("/api/ahhg/OwsAvail/AhhgPortal",e.order);return o.then(({data:n})=>{const o=!n.hotels.length;t("handleFlowSoldOut",o),o||(e.order.isFlexibleDates=e.currentQuery.isFlexibleDates,e.facilityIcons=n.icons,e.zoom=n.zoom,e.hotels=n.hotels.map(({hotelInfo:{code:e,name:t,latitude:n,longitude:o,displaySortOrder:a},hasCorpRate:i,price:r,voucher:s,hotelFacilities:c,facilityFilter:l,hotelRooms:d,hotelImages:u})=>({code:e,name:t,location:{lat:n,lng:o},images:u,lowestPrice:r,facilities:c,filterFacilities:l,rooms:d,voucher:s,hasCorpRate:i,isMatchingFilter:!0,displaySortOrder:a})).sort((e,t)=>e.lowestPrice>t.lowestPrice?1:e.lowestPrice<t.lowestPrice?-1:0).sort((e,t)=>"GEN"===t.code?-1:0))}).catch(()=>{t("handleFlowSoldOut",!0)}).finally(()=>{t("handleFlowLoading",!1),k.a.actions.Step1_item_list_tracking(k.a.state,k.a.mutations,e.hotels,e.order)}),o},searchRoom({state:e,commit:t,dispatch:n}){if(e.operaMaintenanceStatus)return void t("handleFlowMaintenance",!0);t("handleFlowLoading",!0),t("clearRoomsResponse"),n("syncOrderWithCurrentQuery");const o=c.a.post("/api/ahhg/OwsAvail/AhhgSingleHotel",e.order);return o.then(({data:n})=>{const o=n[0].selected[0].allSoldOut;t("handleFlowSoldOut",o),o||(e.order=S({},e.order,{rooms:e.order.rooms.map((e,t)=>S({},e,{roomCode:n[0].selected[t].roomCode}))}),e.roomsResponse=n[0])}).catch(e=>{e.message.includes("code 500")?t("handleFlowError",!0):t("handleFlowSoldOut",!0)}).finally(()=>{t("handleFlowLoading",!1)}),o},setOrderRoomCode({state:e,getters:t,commit:n,dispatch:o},{roomIndex:a,roomCode:i}){n("updateOrderRoom",{roomIndex:a,updates:{roomCode:i}})},getChartPrices({state:e,commit:t},{flexMonth:n,flexNights:o}){const a={arrivalDate:Object(r.format)(n,"YYYY-MM-DD"),departureDate:Object(r.format)(Object(r.addDays)(n,o),"YYYY-MM-DD"),hotelCode:e.order.hotelCode,isCalendarSearch:!0},i=Promise.all(e.order.rooms.map(({numberOfAdults:e,numberOfChildren:t,childAges:n})=>c.a.post("/api/ahhg/OwsCalendar/BarSearch",S({},a,{rooms:[{numberOfAdults:e,numberOfChildren:t,childAges:n,rateCode:"ALL"}]})).then(({data:e})=>e)));return i.then(e=>{const n=e.reduce((e,{days:t},n)=>n?e.map((e,n)=>S({},e,{isBlank:e.isBlank?e.isBlank:t[n].isBlank,isSoldout:e.isSoldout?e.isSoldout:t[n].isSoldout,price:e.price+t[n].price})):e,e[0].days.map(e=>{const t=Object(r.parse)(e.arrivalDate),n=Object(r.parse)(e.departureDate);return S({},e,{arrivalDate:t,departureDate:n,key:t.getTime()+n.getTime()})}));t("setChartPrices",n)}),i},getMatrixPrices({state:e,commit:t},{flexWeek:n,flexNights:o}){const a={arrivalDate:Object(r.format)(n,"YYYY-MM-DD"),departureDate:Object(r.format)(Object(r.addDays)(n,o),"YYYY-MM-DD"),hotelCode:e.order.hotelCode,isCalendarSearch:!0},i=Promise.all(e.order.rooms.map(({numberOfAdults:e,numberOfChildren:t,childAges:n})=>c.a.post("/api/ahhg/OwsCalendar/MatrixSearch",S({},a,{rooms:[{numberOfAdults:e,numberOfChildren:t,childAges:n,rateCode:"ALL"}]})).then(({data:e})=>e)));return i.then(e=>{const n=e.reduce((e,{rows:t},n)=>n?e.map((e,n)=>({days:e.days.map((e,o)=>S({},e,{isBestPrice:!!e.isBestPrice&&t[n].days[o].pricePerNight,price:e.price+t[n].days[o].price,pricePerNight:e.pricePerNight+t[n].days[o].pricePerNight,arrivalDate:Object(r.parse)(e.arrivalDate),departureDate:Object(r.parse)(e.departureDate)}))})):e,e[0].rows);t("setMatrixPrices",n)}),i}}};function M(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function I(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(n,!0).forEach((function(t){B(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function B(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function F(){return{currentQuery:{isFlexibleDates:!1,checkInDate:Object(r.startOfDay)(new Date),checkInDateMin:Object(r.startOfDay)(new Date),checkOutDate:Object(r.addDays)(Object(r.startOfDay)(new Date),1),flexibleMonth:Object(r.startOfMonth)(new Date),flexibleNights:1,occupancy:[{adults:2,children:[]}]}}}var A={state:F(),getters:{},mutations:{toggleQueryFlexibleDates(e,t){e.currentQuery=I({},e.currentQuery,{isFlexibleDates:void 0!==t?!!t:!e.currentQuery.isFlexibleDates})},setDates(e,{checkInDate:t,checkOutDate:n,flexibleMonth:o,flexibleNights:a}){e.currentQuery=I({},e.currentQuery,{checkInDate:t,checkOutDate:n,flexibleMonth:o,flexibleNights:a})},setOccupancy(e,t){e.currentQuery=I({},e.currentQuery,{occupancy:t})},clearQueryState(e){const t=F();Object.keys(t).forEach(n=>{e[n]=t[n]})}},actions:{acceptQueryDatesRange({commit:e},{checkInDate:t,checkOutDate:n}){e("setDates",{checkInDate:t,checkOutDate:n,flexibleMonth:Object(r.startOfMonth)(t),flexibleNights:Object(r.differenceInDays)(n,t)})},acceptQueryFlexibleDates({state:e,commit:t},{flexibleMonth:n,flexibleNights:o}){t("setDates",{checkInDate:e.currentQuery.checkInDate,checkOutDate:Object(r.addDays)(e.currentQuery.checkInDate,o),flexibleMonth:n,flexibleNights:o})},acceptQueryOccupancy({commit:e},t){e("setOccupancy",t)},toggleQueryFlexibleDates({commit:e},t){e("toggleQueryFlexibleDates",t)},resetQueryDates({commit:e}){const{currentQuery:t}=F(),{checkInDate:n,checkOutDate:o,flexibleMonth:a,flexibleNights:i}=t;e("setDates",{checkInDate:n,checkOutDate:o,flexibleMonth:a,flexibleNights:i})},resetQueryOccupancy({commit:e}){const{currentQuery:t}=F(),{occupancy:n}=t;e("setOccupancy",n)}}};function x(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(n,!0).forEach((function(t){_(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var T={state:{reservationQuery:{bookingNumber:"",lastName:""},reservationData:null,reservationDataOriginal:null,reservationDataSaved:null,reservationAvailability:{},availableRooms:[],availablePackages:{},isReservationAvailable:!0,isReservationDetailsLoading:!1,isReservationNotFound:!1,isReservationNotEditable:!1,reservationFailedMsg:""},getters:{},mutations:{setReservationQuery(e,t){e.reservationQuery=t},setReservationData(e,t){e.reservationData=t},setReservationDataDates(e,{checkInDate:t,checkOutDate:n}){e.reservationData=N({},e.reservationData,{stay:N({},e.reservationData.stay,{arrivalDate:Object(r.format)(t,m.d.backend),departureDate:Object(r.format)(n,m.d.backend)})})},setReservationDataOccupancy(e,t){e.reservationData=N({},e.reservationData,{stay:N({},e.reservationData.stay,{room:N({},e.reservationData.stay.room,{numberOfAdults:t[0].adults,numberOfChildren:t[0].children.length,childAges:t[0].children.map(e=>({age:e}))})})})},setReservationDataRoomCode(e,t){e.reservationData=N({},e.reservationData,{stay:N({},e.reservationData.stay,{room:N({},e.reservationData.stay.room,{code:t})})})},setReservationDataOriginal(e,t){e.reservationDataOriginal=t},setReservationDataSaved(e,t){e.reservationDataSaved=t},setReservationAvailability(e,t){e.reservationAvailability=t},setAvailableRooms(e,t){e.availableRooms=t},setAvailablePackages(e,t){e.availablePackages=t},handleReservationIsAvailable(e,t){e.isReservationAvailable=t},handleReservationDetailsLoading(e,t){e.isReservationDetailsLoading=t},handleReservationIsNotFound(e,t){e.isReservationNotFound=!!t},handleReservationIsNotEditable(e,t){e.isReservationNotEditable=!!t},handleReservationFailedMsg(e,t){e.reservationFailedMsg=t},clearReservationState(e){const t={reservationQuery:{bookingNumber:"",lastName:""},reservationData:null,reservationDataOriginal:null,reservationDataSaved:null,reservationAvailability:{},availableRooms:[],availablePackages:{},isReservationAvailable:!0,isReservationDetailsLoading:!1,isReservationNotFound:!1,isReservationNotEditable:!1,reservationFailedMsg:""};Object.keys(t).forEach(n=>{e[n]=t[n]})}},actions:{getReservationData({commit:e},{bookingNumber:t,lastName:n}){const o={bookingNumber:t,lastName:n};e("setReservationQuery",{bookingNumber:t,lastName:n}),e("handleReservationLoading",!0),e("handleReservationIsNotFound",!1),e("handleReservationIsNotEditable",!1);const a=c.a.post("/api/ahhg/OwsResv/GetBooking",o);return a.then(({data:t})=>{if(t.stay.arrivalDate=Object(r.format)(Object(r.parse)(t.stay.arrivalDate),m.d.backend),t.stay.departureDate=Object(r.format)(Object(r.parse)(t.stay.departureDate),m.d.backend),"#WrongUserError#"==t.bookingSystemUser)return e("handleReservationFailedMsg","#WrongUserError#"),void e("handleReservationIsNotEditable",!0);t.stay.rate.cancelPossible?(e("setReservationData",t),e("setReservationDataOriginal",t)):e("handleReservationIsNotEditable",!0)}).catch(t=>{if(t.response&&t.response.data&&t.response.data.Message){if("string"==typeof t.response.data.Message&&"Booking not found"===t.response.data.Message)return void e("handleReservationIsNotFound",!0);const n=JSON.parse(t.response.data.Message);if(n.bookingCanceled)return void e("handleReservationFailedMsg","BookingCanceled");if(n.datesPassed)return void e("handleReservationFailedMsg","DatesPassed")}e("handleReservationFailedMsg",""),e("handleReservationIsNotFound",!0)}).finally(()=>{e("handleReservationLoading",!1)}),a},getReservationAvailability({state:e,commit:t}){const{ahhgHotelInfo:n,stay:{arrivalDate:o,departureDate:a,rate:i,room:{numberOfAdults:r,numberOfChildren:s,childAges:l}}}=e.reservationData,d={arrivalDate:o,departureDate:a,hotelCode:n.code,isCalendarSearch:!1,rooms:[{numberOfAdults:r,numberOfChildren:s,childAges:l,rateCode:i.code}]};t("handleReservationDetailsLoading",!0);const u=c.a.post("/api/ahhg/OwsAvail/AhhgSingleHotel",d);return u.then(({data:n})=>{const o=n[0];let a=!1,i=[];o.selected&&o.selected[0]&&!o.selected[0].allSoldOut&&(a=!0,i=Object.entries(o.ahhgRoomsRates[0]).map(([t,n])=>{const{shortDescription:a,sortOrder:i}=o.rooms[t],{isSoldout:r,price:s}=n[e.reservationData.stay.rate.code];return{code:t,shortDescription:a,sortOrder:i,price:s,isSoldout:r}}).filter(e=>!e.isSoldout).sort((e,t)=>e.sortOrder-t.sortOrder));const r=o.packages.reduce((e,{code:t,shortDescription:n,amount:o})=>(e[t]={shortDescription:n,amount:o},e),{});t("setReservationAvailability",o),t("handleReservationIsAvailable",a),t("setAvailableRooms",i),t("setAvailablePackages",r);const s=-1!==i.findIndex(t=>t.code===e.reservationData.stay.room.code);a&&!s&&t("setReservationDataRoomCode",i[0].code)}).catch(()=>{t("handleReservationError",!0)}).finally(()=>{t("handleReservationDetailsLoading",!1)}),u},saveReservationData({state:e,commit:t}){const n={newBooking:N({},e.reservationData),oldBooking:N({},e.reservationDataOriginal)};t("handleReservationDetailsLoading",!0);const o=c.a.post("/api/ahhg/OwsResv/ModifyBooking",n);return o.then(({data:e})=>{t("setReservationDataSaved",e)}).catch(()=>{t("handleReservationError",!0)}).finally(()=>{t("handleReservationDetailsLoading",!1)}),o},deleteReservationData({state:e,commit:t}){const n={bookingNumber:e.reservationData.stay.bookingNumber,hotelCode:e.reservationData.ahhgHotelInfo.code,lastName:e.reservationData.nameAddress.lastName};t("handleReservationDetailsLoading",!0);const o=c.a.post("/api/ahhg/OwsResv/CancelBooking",n);return o.catch(()=>{t("handleReservationError",!0)}).finally(()=>{t("handleReservationDetailsLoading",!1)}),o}}};function H(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function Q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?H(n,!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):H(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function G(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Y={namespaced:!0,state:Q({},C.state,{},A.state,{},E.state,{},T.state,{},g.state,{},k.a.state),getters:Q({},C.getters,{},A.getters,{},E.getters,{},T.getters,{},g.getters,{},k.a.getters),mutations:Q({},C.mutations,{},A.mutations,{},E.mutations,{},T.mutations,{},g.mutations,{},k.a.mutations),actions:Q({},C.actions,{},A.actions,{},E.actions,{},T.actions,{},g.actions,{},k.a.actions,{cleanState({commit:e}){e("clearEngineState"),e("clearQueryState"),e("clearFlowState"),e("clearReservationState"),e("clearCompanyState")}})};const{Rates:U,Selected:K}=window.____exchangerates___,W=U[K];window.localStorage.setItem("Currency",W.Code);var V={namespaced:!0,state:{currencies:U,selectedCurrency:W},getters:{getCurrencyByCode:e=>t=>e.currencies.find(e=>e.Code===t),getSelectedCurrency:e=>e.selectedCurrency},mutations:{setSelectedCurrency(e,t){e.selectedCurrency=t}},actions:{setSelectedCurrency({commit:e},t){e("setSelectedCurrency",t),window.localStorage.setItem("Currency",t.Code)}}};var q={namespaced:!0,state:{hotelid:v.a.hotelCode}},z={namespaced:!0,state:{memberInfo:null},mutations:{setMemberInfo(e,t){e.memberInfo=t},resetMemberInfo(e){e.memberInfo=null}}};n(34);var J=e=>{const{booking:t}=e.state,{miriameta:n}=e.state;n.hotelid=v.a.hotelCode,t.termsAndConditionLink=v.a.termsAndConditionLink,t.personalInformationLink=v.a.personalInformationLink,t.operaMaintenanceStatus=v.a.operaMaintenanceStatus,t.newsletterSignupId=v.a.newsletterSignupId;const{searchParams:o}=new URL(window.location.href);t.isFlowOpen=o.has("confirmation")||o.has("cancellation"),t.isFlowLoading=!1,t.isFlowSoldOut=!1,t.isFlowMaintenance=!1,t.isFlowError=!1,t.isReservationOpen=!1,t.isReservationLoading=!1,t.isReservationSoldOut=!1,t.isReservationMaintenance=!1,t.isReservationError=!1,t.isDashboardOpen=!1,t.isDashboardLoading=!1,t.isDashboardSoldOut=!1,t.isDashboardMaintenance=!1,t.isDashboardError=!1,t.isMobileBookingBoxVisible=!1,t.isMobileBookingBoxDisabled=!1;const a=Object(r.startOfDay)(new Date),i=Object(r.startOfDay)(Object(r.parse)(t.currentQuery.checkInDate)),s=!Object(r.isBefore)(i,a);t.currentQuery.checkInDate=s?i:a;const c=Object(r.startOfDay)(Object(r.parse)(t.currentQuery.checkOutDate)),l=Object(r.isBefore)(t.currentQuery.checkInDate,c);t.currentQuery.checkOutDate=l?c:Object(r.addDays)(t.currentQuery.checkInDate,1);const d=Object(r.startOfMonth)(a),u=Object(r.startOfDay)(Object(r.parse)(t.currentQuery.flexibleMonth)),h=Object(r.isEqual)(u,d);return t.currentQuery.flexibleMonth=h?u:d,t.currentQuery.checkInDateMin=a,t.reservationQuery={bookingNumber:"",lastName:""},t.reservationData=null,t.reservationDataOriginal=null,t.reservationDataSaved=null,t.isDashboardPristine=!0,t.dashboardList=[],t.dashboardItem=null,e},X=n(17),$=n(6),Z={namespaced:!0,state:{isRespondingToMd:Object($.b)(h.b.md),isRespondingToSm:Object($.b)(h.b.sm),isRespondingToXs:Object($.b)(h.b.xs)},getters:{isRespondingToMdOnly:e=>e.isRespondingToMd&&!e.isRespondingToSm,isRespondingToLg:e=>!e.isRespondingToMd&&!e.isRespondingToSm&&!e.isRespondingToXs},mutations:{setRespondingToMd(e,t){e.isRespondingToMd=t},setRespondingToSm(e,t){e.isRespondingToSm=t},setRespondingToXs(e,t){e.isRespondingToXs=t}}},ee=n(16);a.a.use(i.b);const te=new i.a({plugins:[Object(o.a)({storage:window.sessionStorage,paths:["booking","currency","miriameta"],rehydrated:e=>J(e),fetchBeforeUse:!0})],modules:{booking:Y,currency:V,miriameta:q,header:X.a,loyalty:z,screen:Z}});Object($.a)(h.b.md).addListener(({matches:e})=>{te.commit("screen/setRespondingToMd",e)}),Object($.a)(h.b.sm).addListener(({matches:e})=>{te.commit("screen/setRespondingToSm",e)}),Object($.a)(h.b.xs).addListener(({matches:e})=>{te.commit("screen/setRespondingToXs",e)}),document.addEventListener(u.COMMANDS.update,({detail:e})=>{window.isDeeplink||!te.state.booking.isEngineActive&&e.IsLoggedIn&&te.dispatch("booking/acceptQueryOccupancy",[{adults:1,children:[]}])}),document.addEventListener(ee.COMMANDS.open,()=>{te.dispatch("booking/openModal",m.a.dashboard)}),document.addEventListener(ee.COMMANDS.close,()=>{te.dispatch("booking/closeModal",m.a.dashboard)});t.a=te},2:function(e,t,n){"use strict";n.d(t,"g",(function(){return o})),n.d(t,"b",(function(){return a})),n.d(t,"d",(function(){return i})),n.d(t,"f",(function(){return r})),n.d(t,"e",(function(){return s})),n.d(t,"a",(function(){return c})),n.d(t,"c",(function(){return l})),n.d(t,"h",(function(){return d}));const o={default:"default",hotel:"hotel",room:"room",payment:"payment",done:"done"},a={openFlexibleDatesPicker:"openFlexibleDatesPicker",openDatesRangePicker:"openDatesRangePicker",openHotelFlexibleDatesPrices:"openHotelFlexibleDatesPrices"},i={backend:"YYYY-MM-DD"},r={core:"core",corporate:"corporate",package:"package"},s="GEN",c={flow:"flow",reservation:"reservation",dashboard:"dashboard"},l={number:"bookNo",arrival:"arrivalDateTime",departure:"departureDateTime",guest:"guestLastName",hotel:"hotelName",price:"totalPrice",status:"status"},d={asc:"asc",desc:"desc"}},22:function(e,t,n){"use strict";n.r(t),n.d(t,"EVENTS",(function(){return m})),n.d(t,"COMMANDS",(function(){return p})),n.d(t,"companyData",(function(){return b})),n.d(t,"default",(function(){return g}));n(14);var o=n(36),a=n(27),i=n(0),r=(n(7),n(6)),s=n(10),c=n(11),l=n(3),d=n(15),u=n.n(d),h=n(17);const m={contentAttached:"header:contentAttached"},p={hideLogo:"header:hideLogo",attachContentManually:"header:attachContentManually",attachContentByScrolling:"header:attachContentByScrolling"};let b={IsLoggedIn:!1,ProfileName:"",IsFlow:!1};class g{constructor(e){this.element=e,this.openMenuButton=Object(i.a)(".js-headerOpenMenuButton",e),this.servicesMenu=Object(i.a)(".js-headerServicesMenu",e),this.contentWrapper=Object(i.a)(".js-headerContentWrapper",e),this.content=Object(i.a)(".js-headerContent"),this.isContentExist=Boolean(this.content),this.isContentAttached=!!this.isContentExist&&this.contentWrapper.contains(this.content),this.lastScrollTop=0,this.lastDirectionChange=0,this.lastDirection=!0,this.handleScroll=this.handleScroll.bind(this);let t=this.element.getAttribute("data-isFrontpage");h.a.mutations.setIsfrontpage(h.a.state,t),this.addListeners(),this.isContentExist&&(this.addScrollListener(),this.handleScroll(),requestAnimationFrame(()=>{this.enableAnimations()}),this.CheckCookieConsent())}CheckCookieConsent(){window.addEventListener("CookieInformationConsentGiven",(function(e){let t=u.a.get("CookieInformationConsent"),n=CookieInformation.getConsentGivenFor("cookie_cat_statistic");t&&!n&&fetch("/api/cookies/DisableAnalyticsCookie",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cookieName:"SC_ANALYTICS_GLOBAL_COOKIE"})})}),!1)}addListeners(){this.openMenuButton.addEventListener("click",e=>{this.handleOpenMenuButtonClick(e)}),document.addEventListener(a.EVENTS.close,()=>{this.handleMenuClose()}),document.addEventListener(p.hideLogo,()=>{this.hideLogo()}),document.addEventListener(p.attachContentManually,()=>{this.attachContentManually()}),document.addEventListener(p.attachContentByScrolling,()=>{this.attachContentByScrolling()})}addScrollListener(){document.addEventListener("scroll",this.handleScroll)}removeScrollListener(){document.removeEventListener("scroll",this.handleScroll)}handleOpenMenuButtonClick(e){e.stopPropagation(),document.dispatchEvent(new c.a(a.COMMANDS.open)),this.openMenuButton.setAttribute("aria-expanded",!0)}handleMenuClose(){this.openMenuButton.setAttribute("aria-expanded",!1),this.openMenuButton.focus()}handleScroll(){const e=window.pageYOffset,t=e>this.lastScrollTop;e<0||e===this.lastScrollTop||Object(s.c)()||(0===e||Object(r.b)(l.b.md)?this.showLogo():e>100&&(t?this.hideLogo():e+100<this.lastDirectionChange&&this.showLogo()),this.attachContentIfScrolledBy(),this.lastScrollTop=e,this.lastDirectionChange=t===this.lastDirection?this.lastDirectionChange:e,this.lastDirection=t)}showLogo(){this.element.classList.remove("Header--compact")}hideLogo(){this.element.classList.add("Header--compact")}attachContentIfScrolledBy(){if(!this.isContentExist||this.isContentAttached)return;this.contentWrapper.getBoundingClientRect().top>=this.content.getBoundingClientRect().top&&this.attachContent()}attachContentByScrolling(){this.isContentAttached?document.dispatchEvent(new c.a(m.contentAttached)):Object(o.a)(this.content,{offset:-30})}attachContentManually(){this.isContentAttached?document.dispatchEvent(new c.a(m.contentAttached)):this.attachContent()}attachContent(){this.element.classList.add("Header--withContent"),this.element.classList.remove("Header--light"),this.servicesMenu.classList.remove("ServicesMenu--light"),this.contentWrapper.appendChild(this.content),h.a.mutations.setHasWhiteContentMobile(h.a.state,!0),setTimeout(()=>{this.isContentAttached=!0,document.dispatchEvent(new c.a(m.contentAttached))},1e3)}enableAnimations(){this.element.classList.remove("Header--noAnimations")}}},23:function(e,t,n){"use strict";n.r(t),n.d(t,"COMMANDS",(function(){return h})),n.d(t,"default",(function(){return m}));n(14),n(26),n(28);var o=n(5),a=n.n(o),i=n(15),r=n.n(i),s=n(16),c=n(25),l=n(0),d=n(8),u=n(3);const h={update:"companyLogin:update"};class m{constructor(e){this.element=e,this.servicesMenuItemButtom__Login=Object(l.a)(".js-companyLoginItemButton__Login",e),this.servicesMenuItemButtom__Profile=Object(l.a)(".js-companyLoginItemButton__Profile",e),this.form=Object(l.a)(".js-companyLoginForm",e),this.errorElm=Object(l.a)(".js-companyLoginError",e),this.inputCompanyId=Object(l.a)(".js-companyLoginFormCompanyName",this.form),this.inputPassword=Object(l.a)(".js-companyLoginFormCompanyPassword",this.form),this.submitFormButton=Object(l.a)(".js-companyLoginSubmitButton",e),this.profile=Object(l.a)(".js-companyProfile",e),this.showDashboardButton=Object(l.a)(".js-companyProfileShowDashboardButton",e),this.logoutButton=Object(l.a)(".js-companyProfileLogoutButton",e),this.companyNameDisplay=Object(l.a)(".js-companyLoginCompanyNameDisplay",e),this.companyNameParagraph=Object(l.a)("p",this.companyNameDisplay),this.isSubmitting=!1,this.bindHandles(),this.addListeners();const t=r.a.get(u.a.companyName);this.handleCompanyDataUpdate({IsLoggedIn:!!t,ProfileName:t||""})}bindHandles(){this.submitLoginForm=this.submitLoginForm.bind(this),this.validateLoginForm=this.validateLoginForm.bind(this),this.logout=this.logout.bind(this),this.handleCompanyDataUpdate=this.handleCompanyDataUpdate.bind(this)}addListeners(){document.addEventListener(h.update,e=>{this.handleCompanyDataUpdate(e.detail)}),this.submitFormButton.addEventListener("click",this.validateLoginForm),this.form.submit=this.submitLoginForm,this.logoutButton.addEventListener("click",this.logout),this.companyNameDisplay.addEventListener("mouseenter",()=>{this.companyNameDisplay.style.maxWidth="".concat(this.companyNameDisplay.scrollWidth+1,"px")}),this.companyNameDisplay.addEventListener("mouseleave",()=>{this.companyNameDisplay.style.maxWidth=""})}validateLoginForm(e){e.preventDefault(),Object(l.b)(".Input--invalid:valid",this.form).forEach(e=>{e.classList.remove("Input--invalid")}),this.form.checkValidity()?(this.toggleLoginFormErrorMessage(!1),this.form.submit()):(this.toggleLoginFormErrorMessage(!0),Object(l.b)("input:invalid",this.form).forEach(e=>e.classList.add("Input--invalid")),Object(l.a)("input:invalid",this.form).focus())}submitLoginForm(){this.isSubmitting||(this.toggleLoginFormDisability(!0),a.a.post("/api/ahhg/OwsName/Login",{CorporateId:this.inputCompanyId.value,Password:this.inputPassword.value}).then(({data:e})=>{let t;window.dataLayer=window.dataLayer||[],t=e.CustomProfileEventName.length>0?e.CustomProfileEventName:e.IsCorporate?"corpLogin":"agentLogin",window.dataLayer.push({event:t}),document.dispatchEvent(new CustomEvent(h.update,{detail:e})),this.toggleLoginFormErrorMessage(!1),document.dispatchEvent(new CustomEvent(c.COMMANDS.close))}).catch(()=>{this.toggleLoginFormErrorMessage(!0)}).finally(()=>{this.toggleLoginFormDisability(!1)}))}toggleLoginFormDisability(e){this.isSubmitting=e,this.inputCompanyId.disabled=e,this.inputPassword.disabled=e,this.submitFormButton.disabled=e}toggleLoginFormErrorMessage(e){Object(d.a)(this.errorElm,"u-hidden",!e)}handleCompanyDataUpdate(e){const{IsLoggedIn:t,ProfileName:n}=e;Object(d.a)(this.element,"is-loggedIn",t),Object(d.a)(this.servicesMenuItemButtom__Login,"u-hidden",t),Object(d.a)(this.form,"u-hidden",t),Object(d.a)(this.servicesMenuItemButtom__Profile,"u-hidden",!t),Object(d.a)(this.profile,"u-hidden",!t),Object(d.a)(this.companyNameDisplay,"u-hidden",!t),this.companyNameDisplay.innerText=n||""}showDashboard(){document.dispatchEvent(new CustomEvent(s.COMMANDS.open)),document.dispatchEvent(new CustomEvent(c.COMMANDS.close))}logout(){this.toggleLoginFormDisability(!0),a.a.post("/api/ahhg/OwsName/Logout").then(({data:e})=>{document.dispatchEvent(new CustomEvent(h.update,{detail:e}))}).finally(()=>{this.toggleLoginFormDisability(!1),document.dispatchEvent(new CustomEvent(c.COMMANDS.close)),r.a.remove(u.a.companyName),sessionStorage.clear(),setTimeout(()=>{window.location.replace("/")},400)})}}},24:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));n(28);var o=n(0);function a(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const r=Object(o.b)(".js-state");function s(e){return r.reduce((t,n)=>{if(n.dataset.stateName!==e)return t;return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(n,!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t,{},function(e){return JSON.parse((t=e.textContent,t.replace(/<!--|-->/g,"")));var t}(n))},{})}},25:function(e,t,n){"use strict";n.r(t),n.d(t,"EVENTS",(function(){return r})),n.d(t,"COMMANDS",(function(){return s})),n.d(t,"default",(function(){return c}));var o=n(0),a=n(7),i=n(8);const r={opened:"servicesMenu:opened"},s={close:"servicesMenu:close"};class c{constructor(e){this.element=e,this.buttons=Object(o.b)(".js-servicesMenuButton",e),this.hasActive=!1,this.handleCloseKeydown=this.handleCloseKeydown.bind(this),this.handleOutsideClick=this.handleOutsideClick.bind(this),this.addListeners()}addListeners(){Object(a.b)(this.buttons,"click",e=>{this.handleButtonClick(e)}),document.addEventListener(s.close,()=>{this.close()})}addCloseListeners(){document.addEventListener("click",this.handleOutsideClick),document.addEventListener("keydown",this.handleCloseKeydown)}removeCloseListeners(){document.removeEventListener("click",this.handleOutsideClick),document.removeEventListener("keydown",this.handleCloseKeydown)}handleButtonClick({currentTarget:e}){const t=e;t.blur();const n=t.classList.contains("is-active");this.hasActive&&n&&this.removeHasActiveState(),this.closeAllItems(),n||(this.openItem(t.parentElement),this.hasActive||this.setHasActiveState())}handleShouldClose(){this.close()}handleOutsideClick({target:e}){this.element.contains(e)||this.element===e||this.close()}handleCloseKeydown({keyCode:e}){27===e&&this.close()}close(){this.removeHasActiveState(),this.closeAllItems()}openItem(e){this.toggleItem({item:e,isActive:!0}),document.dispatchEvent(new CustomEvent(r.opened))}closeAllItems(){this.buttons.forEach(e=>{const t=Object(o.c)(".js-servicesMenuItem",e);this.toggleItem({item:t,isActive:!1})})}toggleItem({item:e,isActive:t}){const n=Object(o.a)(".js-servicesMenuButton",e),r=Object(o.a)(".js-servicesMenuContent",e);Object(i.a)(n,"is-active",t),n.setAttribute("aria-expanded",t),Object(i.a)(r,"is-visible",t),r.setAttribute("aria-hidden",!t),t?(this.addCloseListeners(),this.hasActive?r.focus():Object(a.a)(r,"transitionend",()=>{r.focus()})):this.removeCloseListeners()}setHasActiveState(){this.hasActive=!0,Object(a.a)(this.element,"transitionend",()=>{this.toggleAnimations()})}removeHasActiveState(){this.hasActive=!1,this.toggleAnimations()}toggleAnimations(){this.element.classList.toggle("ServicesMenu--noAnimations")}}},27:function(e,t,n){"use strict";n.r(t),n.d(t,"EVENTS",(function(){return h})),n.d(t,"COMMANDS",(function(){return m})),n.d(t,"default",(function(){return p}));var o=n(33),a=n(0),i=n(7),r=n(10),s=n(6),c=n(11),l=n(8),d=n(3),u=n(16);const h={closed:"menu:closed"},m={open:"menu:open"};class p{constructor(e){this.element=e,this.backdrop=Object(a.a)(".js-menuBackdrop"),this.closeButton=Object(a.a)(".js-menuCloseButton",this.element),this.toggleNavButtons=Object(a.b)(".js-menuToggleNavButton",this.element),this.handleBackdropClick=this.handleBackdropClick.bind(this),this.handleCloseKeydown=this.handleCloseKeydown.bind(this),this.addListeners()}addListeners(){this.closeButton.addEventListener("click",()=>{this.close()}),document.addEventListener(m.open,()=>{this.open()}),document.addEventListener(u.COMMANDS.open,()=>{this.close()}),Object(i.b)(this.toggleNavButtons,o.EVENTS.toggle,p.handleNavButtonToggle)}addCloseListeners(){this.backdrop.addEventListener("click",this.handleBackdropClick),document.addEventListener("keydown",this.handleCloseKeydown)}removeCloseListeners(){this.backdrop.removeEventListener("click",this.handleBackdropClick),document.removeEventListener("keydown",this.handleCloseKeydown)}static handleNavButtonToggle({currentTarget:e,detail:t}){const n=e.previousElementSibling;Object(l.a)(n,"is-active",t.isExpanded)}handleBackdropClick(){this.close()}handleCloseKeydown({keyCode:e}){27===e&&this.close()}open(){this.element.classList.add("is-visible"),this.backdrop.classList.add("is-visible"),this.addCloseListeners(),Object(s.b)(d.b.sm)&&Object(r.a)(),Object(i.a)(this.element,"transitionend",()=>{this.element.focus()})}close(){this.element.classList.remove("is-visible"),this.backdrop.classList.remove("is-visible"),this.removeCloseListeners(),Object(s.b)(d.b.sm)&&Object(r.b)(),document.dispatchEvent(new c.a(h.closed))}}},3:function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){return i}));const o={lg:"lg",md:"md",sm:"sm",xs:"xs"},a={[o.xs]:576,[o.sm]:768,[o.md]:992},i={companyName:"companyName",cookieConsent:"cookieConsent"}},31:function(e,t,n){"use strict";n.d(t,"h",(function(){return a})),n.d(t,"j",(function(){return i})),n.d(t,"e",(function(){return s})),n.d(t,"c",(function(){return c})),n.d(t,"b",(function(){return l})),n.d(t,"i",(function(){return d})),n.d(t,"f",(function(){return u})),n.d(t,"l",(function(){return h})),n.d(t,"g",(function(){return m})),n.d(t,"d",(function(){return p})),n.d(t,"a",(function(){return b})),n.d(t,"k",(function(){return g}));n(47),n(20),n(34),n(19);var o=n(1);function a(e,t,n){let o=new URLSearchParams(window.location.search);o.has("arrival")?o.set("arrival",r(e.checkInDate)):o.append("arrival",r(e.checkInDate)),o.has("departure")?o.set("departure",r(e.checkOutDate)):o.append("departure",r(e.checkOutDate)),o.has("rooms")?o.set("rooms",e.occupancy.length):o.append("rooms",e.occupancy.length);for(let t=e.occupancy.length;t<9;t++)o.has("adultsRoom".concat(t+1))&&o.delete("adultsRoom".concat(t+1));for(let t=0;t<e.occupancy.length;t++)o.has("adultsRoom".concat(t+1))?o.set("adultsRoom".concat(t+1),e.occupancy[t].adults):o.append("adultsRoom".concat(t+1),e.occupancy[t].adults);for(let t=0;t<e.occupancy.length;t++)o.has("childrenRoom".concat(t+1))?o.set("childrenRoom".concat(t+1),e.occupancy[t].children.length):o.append("childrenRoom".concat(t+1),e.occupancy[t].children.length);for(let t=e.occupancy.length;t<9;t++)o.has("childrenRoom".concat(t+1))&&o.delete("childrenRoom".concat(t+1));for(let t=0;t<e.occupancy.length;t++)for(let n=0;n<e.occupancy[t].children.length;n++)o.has("ageChildren".concat(n+1,"Room").concat(t+1))?o.set("ageChildren".concat(n+1,"Room").concat(t+1),e.occupancy[t].children[n]):o.append("ageChildren".concat(n+1,"Room").concat(t+1),e.occupancy[t].children[n]);for(let t=e.occupancy.length;t<9;t++)for(let e=0;e<11;e++)o.has("ageChildren".concat(e+1,"Room").concat(t+1))&&o.delete("ageChildren".concat(e+1,"Room").concat(t+1));o.has("step")||("AHHG"===n?o.append("step",0):o.append("step",1)),window.history.replaceState({},"","".concat(location.pathname,"?").concat(o))}function i(e,t,n){let a=new URLSearchParams(window.location.search),i=!1;if(a.has("arrival")){const t=new Date(a.get("arrival"));e.checkInDate=Object(o.startOfDay)(t),i=!0}if(a.has("departure")){const t=new Date(a.get("departure"));e.checkOutDate=Object(o.startOfDay)(t),i=!0}if(a.has("rooms")){e.occupancy=[];for(let t=0;t<a.get("rooms");t++)e.occupancy.push({adults:1,children:[]});i=!0}if(a.has("adultsRoom1")){let t=a.get("rooms");for(let n=0;n<t;n++){const t=a.get("adultsRoom".concat(n+1));e.occupancy[n].adults=parseInt(t)}i=!0}if(a.has("childrenRoom1")){let t=a.get("rooms");for(let n=0;n<t;n++){const t=a.get("childrenRoom".concat(n+1));for(let o=0;o<t;o++){let t=a.get("ageChildren".concat(o+1,"Room").concat(n+1));null!=t&&""!==t||(t=-1),e.occupancy[n].children.push(parseInt(t))}}i=!0;for(let t=0;t<e.occupancy.length;t++)for(let n=0;n<e.occupancy[t].children.length;n++)-1===e.occupancy[t].children[n]&&(i=!1)}if(a.has("step")){a.get("step")>0&&a.has("hotel")&&(n.hotelCode=a.get("hotel"))}return i}function r(e){const t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(n,"-").concat(o)}function s(e){let t=new URLSearchParams(window.location.search);t.has("profile")?t.set("profile",e):t.append("profile",e),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t))}function c(e){let t=new URLSearchParams(window.location.search);t.has("hotel")?t.set("hotel",e):t.append("hotel",e),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t))}function l(e){let t=new URLSearchParams(window.location.search);t.has("currency")?t.set("currency",e):t.append("currency",e),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t))}function d(){return new URLSearchParams(window.location.search).get("currency")}function u(e){let t=new URLSearchParams(window.location.search);t.has("rc")?t.set("rc",e):t.append("rc",e),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t))}function h(e,t){let n=new URLSearchParams(window.location.search);n.has("mrc".concat(t))?n.set("mrc".concat(t),e):n.has("rr")&&n.set("rr",e),window.history.replaceState({},"","".concat(location.pathname,"?").concat(n))}function m(e){let t=new URLSearchParams(window.location.search);t.has("rr")?t.set("rr",e):t.append("rr",e),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t))}function p(e,t){let n=new URLSearchParams(window.location.search);n.has("mrc".concat(t))?n.set("mrc".concat(t),e):n.append("mrc".concat(t),e),window.history.replaceState({},"","".concat(location.pathname,"?").concat(n))}function b(e){let t=new URLSearchParams(window.location.search);t.has("step")?t.set("step",g[e]):t.append("step",g[e]),window.history.replaceState({},"","".concat(location.pathname,"?").concat(t))}const g={hotel:0,room:1,payment:2,done:3,0:"hotel",1:"room",2:"payment",3:"done"}},32:function(e,t,n){"use strict";const o={trackRouteChange:e=>{"done"!==e&&window.dataLayer.push({event:"Routechange",routeName:e})}};t.a=o},33:function(e,t,n){"use strict";n.r(t),n.d(t,"EVENTS",(function(){return s})),n.d(t,"default",(function(){return c}));var o=n(0),a=n(7),i=n(11),r=n(8);const s={toggle:"expand-collapse:toggle"};class c{constructor(e){this.button=e,this.content=null,this.inner=null,this.isReady=!0,this.addListeners()}addListeners(){this.button.addEventListener("click",this.handleButtonClick.bind(this))}handleButtonClick(){if(this.content=this.content||Object(o.a)(this.button.dataset.expandCollapseTarget),this.inner=this.inner||Object(o.a)(".js-expandCollapseInner",this.content),!this.isReady||!this.content||!this.inner)return;const e=this.content.classList.contains("is-expanded");this.toggleContent({isVisible:!e})}toggleContent({isVisible:e}){this.isReady=!1,Object(r.a)(this.button,"is-expanded",e),this.button.setAttribute("aria-expanded",e),this.content.setAttribute("aria-hidden",!e),this.button.dispatchEvent(new i.a(s.toggle,{detail:{isVisible:e}})),e?(this.content.classList.add("is-visible"),this.content.focus(),this.setContentMaxHeight(this.inner.clientHeight||500),Object(a.a)(this.content,"transitionend",()=>{this.resetContentMaxHeight(),this.content.classList.add("is-expanded"),this.isReady=!0})):(this.setContentMaxHeight(this.content.clientHeight),setTimeout(()=>{this.resetContentMaxHeight(),this.content.classList.remove("is-expanded")},100),Object(a.a)(this.content,"transitionend",()=>{this.content.classList.remove("is-visible"),this.isReady=!0}))}setContentMaxHeight(e){this.content.style.maxHeight="".concat(e,"px")}resetContentMaxHeight(){this.content.style.maxHeight=""}}},348:function(e,t,n){n(41),e.exports=n(349)},349:function(e,t,n){},4:function(e,t,n){"use strict";var o=n(24);t.a=Object(o.a)("booking-settings")},41:function(e,t,n){"use strict";n.r(t);n(14),n(49);var o=n(21),a=n(35),i=n(9),r=n(37),s=n.n(r),c=(n(50),n(51),n(38)),l=n(13);function d(e){if(e){const t="0".concat(e.getDate()),n="0".concat(e.getMonth()+1);return"\n            ".concat(t.slice(-2),".").concat(n.slice(-2),".").concat(e.getFullYear(),"\n        ")}return"-"}function u(e){return e?e.getFullYear():"-"}var h=n(1);function m(e){return e?Object(h.parse)(e):new Date}var p={install(e){e.filter("dateToNicePrint",d),e.filter("dateToYear",u),e.filter("toDate",m)}},b=n(29),g=n(4),f=n(2);var y=[{name:f.g.hotel,path:"/",component:()=>Promise.all([n.e(0),n.e(2),n.e(6),n.e(45)]).then(n.bind(null,641)),beforeEnter:(e,t,n)=>{g.a.hasHotelStep?n():n({name:f.g.room})}},{name:f.g.room,path:"/room",component:()=>Promise.all([n.e(0),n.e(2),n.e(8),n.e(6),n.e(60)]).then(n.bind(null,645))},{name:f.g.payment,path:"/payment",component:()=>Promise.all([n.e(0),n.e(2),n.e(8),n.e(57)]).then(n.bind(null,639))},{name:f.g.done,path:"/done",component:()=>Promise.all([n.e(0),n.e(19)]).then(n.bind(null,646))}],O=n(32),v=n(19),D=n(31);i.a.use(b.a);const C=new b.a({mode:"abstract",routes:y});C.beforeEach((e,t,n)=>{n()}),C.afterEach(e=>{v.a.state.booking.isFlowOpen&&(O.a.trackRouteChange(e.name),Object(D.a)(e.name)),v.a.commit("booking/setCurrentRoute",e.name)});var w=C,k=n(0),j=n(24),S=n(30),L=n.n(S);window.dataLayer=window.dataLayer||[],{bootstrap(){Object.keys(this).forEach(e=>{e.startsWith("init")&&this[e].call(this)})},initVue(){l.a.addLabels(Object(j.a)("labels")),i.a.config.devtools=!0,i.a.use(a.b,{inject:!1}),i.a.use(l.a),i.a.use(p),i.a.use(c.a),i.a.use(s.a),i.a.use(L.a),"undefined"!=typeof Sitecore&&(document.querySelectorAll('code[type="text/sitecore"]').forEach(e=>e.setAttribute("v-pre","")),i.a.use(L.a),Sitecore.PageModes.ChromeManager.resetChromes()),new i.a({el:".js-app",router:w,store:v.a,components:{BaseForm:()=>n.e(11).then(n.bind(null,451)),BaseIcon:()=>n.e(12).then(n.bind(null,399)),BaseMap:()=>n.e(13).then(n.bind(null,497)),BookingBox:()=>Promise.all([n.e(0),n.e(4),n.e(14)]).then(n.bind(null,501)),BookingEngine:()=>Promise.all([n.e(0),n.e(2),n.e(4),n.e(15)]).then(n.bind(null,640)),CurrencyCode:()=>n.e(16).then(n.bind(null,413)),CurrencySelectorButton:()=>n.e(17).then(n.bind(null,612)),CurrencyValue:()=>n.e(18).then(n.bind(null,410)),FaqItem:()=>n.e(20).then(n.bind(null,613)),FaqList:()=>Promise.all([n.e(0),n.e(21)]).then(n.bind(null,614)),FormBirthdate:()=>Promise.all([n.e(0),n.e(23)]).then(n.bind(null,615)),MeetingRoomForm:()=>Promise.all([n.e(0),n.e(5),n.e(54)]).then(n.bind(null,642)),GroupForm:()=>Promise.all([n.e(0),n.e(5),n.e(43)]).then(n.bind(null,616)),FeedbackFormAhhg:()=>Promise.all([n.e(0),n.e(22)]).then(n.bind(null,617)),FormCheckbox:()=>n.e(24).then(n.bind(null,433)),FormCountry:()=>n.e(25).then(n.bind(null,618)),FormDate:()=>Promise.all([n.e(0),n.e(26)]).then(n.bind(null,619)),FormDateRange:()=>Promise.all([n.e(0),n.e(27)]).then(n.bind(null,620)),FormLoyaltyPostRegistrationOfPoints:()=>Promise.all([n.e(0),n.e(28)]).then(n.bind(null,488)),FormPhone:()=>n.e(29).then(n.bind(null,489)),FormSelect:()=>n.e(30).then(n.bind(null,444)),FormSelectWithAppend:()=>n.e(31).then(n.bind(null,621)),FormTextarea:()=>n.e(33).then(n.bind(null,498)),FormTextField:()=>Promise.all([n.e(0),n.e(32)]).then(n.bind(null,404)),Gallery:()=>n.e(38).then(n.bind(null,481)),GalleryFull:()=>n.e(39).then(n.bind(null,483)),GalleryItem:()=>Promise.all([n.e(0),n.e(40)]).then(n.bind(null,484)),GalleryMain:()=>n.e(41).then(n.bind(null,482)),GalleryWithTextAndButton:()=>n.e(42).then(n.bind(null,622)),roomgalleryslider:()=>n.e(72).then(n.bind(null,623)),ImageMapGallery:()=>n.e(46).then(n.bind(null,624)),FullscreenGallery:()=>n.e(37).then(n.bind(null,490)),AhhgTextModule:()=>n.e(10).then(n.bind(null,625)),LabelsProvider:()=>n.e(48).then(n.bind(null,499)),Loyalty:()=>Promise.all([n.e(0),n.e(7),n.e(50)]).then(n.bind(null,644)),LoyaltyProfile:()=>Promise.all([n.e(0),n.e(7)]).then(n.bind(null,610)),MapHotelMarker:()=>Promise.all([n.e(0),n.e(51)]).then(n.bind(null,626)),MapInfoWindow:()=>n.e(52).then(n.bind(null,627)),MapPoiMarker:()=>Promise.all([n.e(0),n.e(53)]).then(n.bind(null,628)),PriceCalendar:()=>Promise.all([n.e(0),n.e(2),n.e(58)]).then(n.bind(null,643)),Slider:()=>Promise.all([n.e(0),n.e(63)]).then(n.bind(null,629)),SpriteIcon:()=>n.e(64).then(n.bind(null,402)),CompanyHeaderMobile:()=>n.e(79).then(n.bind(null,630)),OutOfService:()=>n.e(56).then(n.bind(null,631))},computed:Object(o.f)("booking",["isEngineActive","isFlowOpen","isReservationOpen","isDashboardOpen"]),methods:Object(o.c)("booking",["openModal"])})},initAccordion(){const e=Object(k.b)(".js-accordion");e.length>0&&n.e(3).then(n.bind(null,564)).then(({default:t})=>{e.forEach(e=>{t(e)})})},initCompanyDashboard(){const e=Object(k.b)(".js-companyDashboard");e.length>0&&Promise.resolve().then(n.bind(null,16)).then(({default:t})=>{e.forEach(e=>{new t(e)})})},initCompanyLogin(){const e=Object(k.b)(".js-companyLogin");e.length>0&&Promise.resolve().then(n.bind(null,23)).then(({default:t})=>{e.forEach(e=>{new t(e)})})},initExpandCollapse(){const e=Object(k.b)(".js-expandCollapseButton");e.length>0&&Promise.resolve().then(n.bind(null,33)).then(({default:t})=>{e.forEach(e=>{new t(e)})})},initFrontpageHeroImages(){const e=Object(k.a)(".js-frontpageHeroImages");e&&n.e(34).then(n.bind(null,632)).then(({default:t})=>{new t(e)})},initFrontpageHeroTexts(){const e=Object(k.a)(".js-frontpageHeroTexts");e&&n.e(35).then(n.bind(null,633)).then(({default:t})=>{t(e)})},initFrontpageHeroVideo(){const e=Object(k.a)(".js-frontpageHeroVideo");e&&n.e(36).then(n.bind(null,634)).then(({default:t})=>{new t(e)})},initHeader(){const e=Object(k.a)(".js-header");e&&Promise.resolve().then(n.bind(null,22)).then(({default:t})=>{new t(e)})},initHero(){const e=Object(k.a)(".js-hero");e&&n.e(44).then(n.bind(null,635)).then(({default:t})=>{t(e)})},initLazyPicture(){const e=Object(k.b)(".js-lazyPicture");e.length>0&&n.e(49).then(n.bind(null,492)).then(({default:t})=>{e.forEach(e=>{new t(e)})})},initShowOnScroll(){const e=Object(k.b)(".js-showOnScroll");e.length>0&&n.e(62).then(n.bind(null,493)).then(({default:t})=>{e.forEach(e=>{new t(e)})})},initMenu(){const e=Object(k.a)(".js-menu");e&&Promise.resolve().then(n.bind(null,27)).then(({default:t})=>{new t(e)})},initRequestForm(){const e=Object(k.a)(".js-requestForm");e&&n.e(61).then(n.bind(null,636)).then(({default:t})=>{new t(e)})},initReveal(){const e=Object(k.b)(".js-reveal");e.length>0&&n.e(59).then(n.bind(null,637)).then(({default:t})=>{e.forEach(e=>{new t(e)})})},initServicesMenu(){const e=Object(k.b)(".js-servicesMenu");e.length>0&&Promise.resolve().then(n.bind(null,25)).then(({default:t})=>{e.forEach(e=>{new t(e)})})},initVideo(){const e=Object(k.b)(".js-video");e.length>0&&n.e(9).then(n.bind(null,611)).then(({default:t})=>{e.forEach(e=>{t(e)})})},initNotifier(){const e=Object(k.b)(".js-notifier");e.length>0&&n.e(55).then(n.bind(null,638)).then(({default:t})=>{e.forEach(e=>{new t(e)})})}}.bootstrap()},6:function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return i}));var o=n(3);function a(e){return window.matchMedia("(max-width: ".concat(o.c[e]-1,"px)"))}function i(e){return a(e).matches}},7:function(e,t,n){"use strict";function o(e,t,n){e.forEach(e=>{e.addEventListener(t,n)})}function a(e,t,n){const o=a=>{n.call(this,a),e.removeEventListener(t,o)};e.addEventListener(t,o)}n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a}))},8:function(e,t,n){"use strict";function o(e,t,n){void 0===n?e.classList.toggle(t):n?e.classList.add(t):e.classList.remove(t)}n.d(t,"a",(function(){return o}))}},[[348,1,0]]]);
//# sourceMappingURL=gentofte.0d0998f3921d878b8659.js.map