PageSourceSearch

https://book.andoliving.com/_next/static/chunks/8432-83ba42f2053cb904.js

js andoliving.com collected 2026-10-04 13:29:35 UTC 27,902 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8432],{39524:function(e,n,t){var r,i,a,o;t.d(n,{Q:function(){return i},R:function(){return r}}),(a=r||(r={})).perNight="perNight",a.totalStay="totalStay",(o=i||(i={})).andoliving="andoliving",o.ferienhaus="ferienhaus",o.all="all"},25220:function(e,n,t){var r,i;t.d(n,{d:function(){return r}}),(i=r||(r={})).perNight="perNight",i.perMonth="perMonth"},55354:function(e,n,t){var r,i;t.d(n,{m:function(){return r}}),(i=r||(r={})).shortTerm="short_term",i.shortTermAndMidTerm="short_term_and_mid_term",i.midTerm="mid_term",i.longTerm="long_term"},62883:function(e,n,t){t.d(n,{AW:function(){return u},H9:function(){return l},Ml:function(){return s},Sr:function(){return d},XT:function(){return o}});var r=t(52464),i=t(39524),a=t(55354);let o=10,l=3e3,s={adults:1,children:0,infants:0,rooms:0,childrenAges:[]},u={bookWithUs:{guests:s,checkIn:null,checkOut:null,destination:"",destinationId:void 0,rentalType:a.m.shortTerm},priceRange:[o,l],priceRangeType:i.R.perNight,sortByPrice:void 0},d=(0,r.F)()(e=>({brand:i.Q.all,setBrand:n=>e(()=>({brand:n})),priceRangeType:u.priceRangeType,setPriceRangeType:n=>e(e=>({...e,priceRangeType:n})),priceRange:u.priceRange,setPriceRange:n=>e(e=>({...e,priceRange:n})),sortByPrice:void 0,setSortByPrice:n=>e({sortByPrice:n}),bookWithUs:u.bookWithUs,setBookWithUs:n=>e(e=>({...e,bookWithUs:{...e.bookWithUs,...n}})),generalFilters:{minBathrooms:0},setGeneralFilters:n=>e(e=>({...e,generalFilters:{...e.generalFilters,...n}})),isSelfCheckIn:!1,setSelfCheckIn:n=>e(()=>({isSelfCheckIn:n})),neighbourhood:void 0,setNeighbourhood:n=>e(()=>({neighbourhood:n})),coordinates:void 0,setCoordinates:n=>e(()=>({coordinates:n})),rentalType:a.m.shortTerm,setRentalType:n=>e(()=>({rentalType:n})),isFiltersLoading:!1,setFiltersLoading:n=>e(()=>({isFiltersLoading:n})),resetFilters:()=>e(e=>({...e,brand:i.Q.all,neighbourhood:void 0,coordinates:void 0,priceRange:u.priceRange,priceRangeType:u.priceRangeType,sortByPrice:void 0,generalFilters:{minBathrooms:0,amenities:[]},isSelfCheckIn:!1,rentalType:a.m.shortTerm}))}))},8432:function(e,n,t){t.d(n,{$_:function(){return isPortugueseLocale},BF:function(){return buildPropertyAvailabilityQuery},Cg:function(){return getAvailabilityParamsFromUrl},EO:function(){return R},Ht:function(){return getChildrenAgesParam},Ii:function(){return getAvailabilityListQueryParams},Kd:function(){return hasMissingChildrenAges},N6:function(){return getSearchedRentalType},Nw:function(){return getBookingInfo},OB:function(){return getMidTermMaxDate},OC:function(){return capGuestsQueryToMaxOccupancy},OS:function(){return getPropertiesParams},Oi:function(){return getMainAmenities},P0:function(){return D},Qm:function(){return formatGuestInfo},SA:function(){return getRentalTypeLabelKey},UQ:function(){return isMonthlyPriced},Ug:function(){return buildRecommendationBeds},Yp:function(){return parseUrlParams},Zf:function(){return getPropertyGroupAvailableQuery},ah:function(){return humanizeAmenityType},cS:function(){return A},ct:function(){return formatBookingGuestsSummary},dR:function(){return getRoomInfantsToDisplay},di:function(){return syncChildrenAges},dl:function(){return getChildrenAgesQueryKeys},e_:function(){return M},gU:function(){return toAvailabilityGuestParams},hR:function(){return isQuotePayloadValid},hV:function(){return distributeGuestsAcrossUnits},h_:function(){return getPropertyTypeInfo},i3:function(){return snakeToCamelCase},jf:function(){return C},lE:function(){return cacheDestinationPlace},n2:function(){return O},nb:function(){return updateUrlWithFilters},os:function(){return buildRecommendation},rI:function(){return getAvailabilityParamsFromCheckout},rT:function(){return buildPropertiesAvailableQuery},sQ:function(){return formatBookingRoomGuests},tN:function(){return getBlockedDates},tX:function(){return getCoordsAndMunicipalityByDestination},uW:function(){return getDatesToBeBlocked},vi:function(){return S},wc:function(){return processFilterUpdate}});var r=t(85893),i=t(29422),a=t(42298),o=t(14176),l=t.n(o),s=t(78718),u=t.n(s),d=t(53182),c=t(59886),m=t(39524),g=t(25220),h=t(55354),f=t(62883),p=t(13719),v=t(45177),y=t(47001),b=t(98560),T=t(34487),k=t(62195);let A=4,C=7,P="d MMM",w=["rentalTypes","checkIn","checkOut","guests","allowsChildren","minBedrooms","amenities","brand","minBathrooms","isSelfCheckIn","allowsPets"],I=["geoZoneIds","checkIn","checkOut","guests","pricePerNightRange","totalPriceRange","minGuests","minBathrooms","amenities","allowsPets","allowsChildren","heating","withoutPagination","rentalTypes","isSelfCheckIn","neighbourhood","sort","brand","coordinates","propertyGroupId","propertyGroupType"],M=Array.from({length:11}
1,(e,n)=>2+n),S={control:e=>({...e,borderRadius:d.TV.radii.middle,boxShadow:"none"})},syncChildrenAges=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Array.from({length:Math.max(e,0)},(e,t)=>n[t])},hasMissingChildrenAges=e=>!!((null==e?void 0:e.children)&&syncChildrenAges(e.children,e.childrenAges).some(e=>null==e)),getChildrenAgesParam=(e,n)=>{let t=Number(e)||0,r=(null!=n?n:[]).slice(0,t).map(e=>Number(e)).filter(e=>!isNaN(e));return t>0&&r.length===t?r:void 0},toAvailabilityGuestParams=e=>({adults:e.adults,children:e.children,infants:e.infants,rooms:e.rooms,childrenAges:getChildrenAgesParam(e.children,e.childrenAges)}),isQuotePayloadValid=e=>e.every(e=>{var n;return 0===e.numberOfChildren||(null===(n=e.childrenAges)||void 0===n?void 0:n.length)===e.numberOfChildren}),distributeGuestsAcrossUnits=e=>{let{allocations:n,adults:t,children:r,childrenAges:i}=e;if(!n.length||n.some(e=>e<1)||t<n.length||i.length!==r)return null;let a=n.reduce((e,n)=>e+n,0);if(a!==t+r)return null;let o=r,l=0,s=n.map(e=>{let n=Math.min(o,Math.max(e-1,0));o-=n;let t=i.slice(l,l+n);return l+=n,{adults:e-n,children:n,childrenAges:t}}),u=0===o&&s.every(e=>e.adults>=1);return u?s:null},childrenAgesKeyPattern=e=>new RegExp("^".concat(e.replace(/[[\]]/g,"\\$&"),"\\[(\\d+)\\]$")),parseChildrenAgesFromQuery=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"childrenAges",t=[],r=childrenAgesKeyPattern(n);return Object.keys(e).forEach(n=>{let i=n.match(r);i&&e[n]&&(t[Number(i[1])]=Number(e[n]))}),t},getChildrenAgesQueryKeys=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"childrenAges",t=childrenAgesKeyPattern(n);return Object.keys(e).filter(e=>t.test(e))},B=new Set(["tv","wifi","ac"]),humanizeAmenityType=e=>e.split("_").map((e,n)=>B.has(e.toLowerCase())?e.toUpperCase():0===n?e.charAt(0).toUpperCase()+e.slice(1):e.toLowerCase()).join(" "),isPortugueseLocale=e=>!!(null==e?void 0:e.toLowerCase().startsWith("pt")),isMonthlyPriced=function(e,n){var t;let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return r?e.pricingModel?e.pricingModel===g.d.perMonth:(null!==(t=e.rentalType)&&void 0!==t?t:n)!==h.m.shortTerm:n!==h.m.shortTerm},getSearchedRentalType=e=>{let{rentalType:n}=e;return Array.isArray(n)?n[0]:n},getRentalTypeLabelKey=(e,n)=>{let t=e.rentalType;return t&&t!==(null!=n?n:h.m.shortTerm)&&isMonthlyPriced(e,n,!0)?t===h.m.longTerm?"common:longTerm":t===h.m.midTerm||t===h.m.shortTermAndMidTerm?"common:midTerm":void 0:void 0},getMidTermMaxDate=e=>(0,i.Z)(e,{days:364}),getDatesToBeBlocked=(e,n)=>{let t=Array.from(Array(n),(n,t)=>(0,i.Z)(e,{days:t}));return t},getBlockedDates=e=>{let{destinationId:n,isFerienHaus:t,checkIn:r,rentalType:i}=e;return n===b.tY.Madeira||t?getDatesToBeBlocked(r,A):i===h.m.midTerm?getDatesToBeBlocked(r,C):[]},buildRecommendationBeds=(e,n)=>{var t,i;let a=0,o=null!==(i=null===(t=e.beds)||void 0===t?void 0:t.map(e=>{let{quantity:n,type:t}=e;return a+=n,"".concat(n," ").concat(t)}))&&void 0!==i?i:[];return 0===a&&e.bedrooms&&(a=e.bedrooms),a>0?(0,r.jsxs)(r.Fragment,{children:[n("apartments:cards.beds",{count:a})," ",o.length>0&&"(".concat(o.join(", "),")")]}):null},buildRecommendation=(e,n)=>{let{area:t,bathrooms:r,bedrooms:i,maxOccupancy:a,allocatedGuests:o}=e,l=[];return 0===i?l.push(n("common:studio")):i&&l.push(n("apartments:cards.bedrooms",{count:i})),r&&l.push(n("apartments:cards.bathrooms",{count:r})),(o||a)&&l.push(n("apartments:cards.guests",{count:o||a})),t&&l.push("".concat(t,"m\xb2")),l.join(" • ")},formatGuestInfo=(e,n)=>{let{adults:t,children:r,infants:i}=e,a=[];return t&&t>0&&a.push(n("common:apartmentsMainFilter.fields.adults",{count:t})),r&&r>0&&a.push(n("common:apartmentsMainFilter.fields.children",{count:r})),i&&i>0&&a.push(n("common:apartmentsMainFilter.fields.infants",{count:i})),a.join(", ")},formatBookingRoomGuests=(e,n,t)=>{var r,i,a;return formatGuestInfo({adults:null!==(r=e.numberOfAdults)&&void 0!==r?r:null,children:null!==(i=e.numberOfChildren)&&void 0!==i?i:null,infants:null!==(a=null!=t?t:e.numberOfInfants)&&void 0!==a?a:null},n)},aggregateBookingGuests=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=(null!=e?e:[]).reduce((e,n)=>{var t,r,i;return{adults:e.adults+(null!==(t=n.numberOfAdults)&&void 0!==t?t:0),children:e.children+(null!==(r=n.numberOfChildren)&&void 0!==r?r:0),infants:e.infants+(null!==(i=n.numberOfInfants)&&void 0!==i?i:0)}},{adults:0,children:0,infants:0});return{...t,infants:t.infants||n}},formatBookingGuestsSummary=(e,n)=>{let{adults:t,children:r,infants:i}=aggregateBookingGuests(e.propertyTypes,e.numberOfInfants);if(t+r>0)return formatGuestInfo({adults:t,children:r,infants:i},n);if(!e.numberOfGuests)return"";let a=[n("common:apartmentsMainFilter.fields.guests",{count:e.numberOfGuests})];return e.numberOfInfants>0&&a.push(n("common:apartmentsMainFilter.fields.infants",{count:e.numberOfInfants})),a.join(", ")},getRoomInfantsToDisplay=(e,n)=>{let t=(null!=e?e:[]).some(e=>e.numberOfInfants>0);if(!t&&(null==e?void 0:e.length)===1)return n||void 0},getAvailabilityParamsFromUrl=e=>{let n=e.adults?Number(e.adults):0,t=e.children?Number(e.children):0,r=e.infants?Number(e.infants):0,i=e.rentalType,a=(0,p.oS)(e["dates[checkIn]"]),o=(0,p.oS)(e["dates[checkOut]"]);return{adults:n,children:t,infants:r,rentalType:i,checkInDate:a,checkOutDate:o}},removeUndefined=e=>l()(e,n=>!n||0===Object.keys(e).length),processFilterUpdate=e=>{var n,t;let{filterData:r,setBrand:i,setSelfCheckIn:a,setPriceRange:o,setNeighbourhood:l,setSortByPrice:s,setGeneralFilters:u,setBookWithUs:d,bookWithUs:c,generalFilters:m,priceRange:g,priceRangeType:h,brand:f,neighbourhood:p,isSelfCheckIn:v,sortByPrice:y}=e;if(r&&(void 0!==r.brand&&i(r.brand),"isSelfCheckIn"in r&&void 0!==r.isSelfCheckIn&&a(r.isSelfCheckIn),void 0!==r.priceRange&&o(r.priceRange),"neighbourhood"in r&&l(r.neighbourhood),"sortByPrice"in r&&s(r.sortByPrice),void 0!==r.rentalType&&d({rentalType:r.rentalType}),void 0!==r.minBathrooms||void 0!==r.amenities)){let e={};void 0!==r.minBathrooms&&(e.minBathrooms=r.minBathrooms),void 0!==r.amenities&&(e.amenities=r.amenities),u(e)}let b=r?{bookWithUs:void 0!==r.rentalType?{...c,rentalType:r.rentalType}:c,generalFilters:{...m,...void 0!==r.minBathrooms&&{minBathrooms:r.minBathrooms},...void 0!==r.amenities&&{amenities:r.amenities}},priceRange:null!==(n=r.priceRange)&&void 0!==n?n:g,priceRangeType:h,brand:null!==(t=r.brand)&&void 0!==t?t:f,neighbourhood:"neighbourhood"in r?r.neighbourhood:p,isSelfCheckIn:"isSelfCheckIn"in r?r.isSelfCheckIn:v,sortByPrice:"sortByPrice"in r?r.sortByPrice:y}:{bookWithUs:c,generalFilters:m,priceRange:g,priceRangeType:h,brand:f,neighbourhood:p,isSelfCheckIn:v,sortByPrice:y};return b},getBrand=e=>e===v.O3.andoliving?"AndoLiving":e===v.O3.ferienhaus?"Ferienhaus":null,O="ZERO_RESULTS",R="Madeira, Portugal",geocodeAddress=async e=>{(0,y.qP)()||await (0,y._V)();try{let{results:n}=await new google.maps.Geocoder().geocode({address:e});if(!n.length)throw O;return n}catch(e){throw e instanceof Error&&e.message.includes(O)?O:e}},G="administrative_area_level_2",N=new Map,boundsToCoordinates=e=>
1{let n=e.getNorthEast(),t=e.getSouthWest();return{northeast:{lat:n.lat(),lng:n.lng()},southwest:{lat:t.lat(),lng:t.lng()}}},pointToCoordinates=(e,n)=>({northeast:{lat:e+.05,lng:n+.05},southwest:{lat:e-.05,lng:n-.05}}),getResultCoordinates=e=>{var n;let{geometry:t}=e,r=null!==(n=t.viewport)&&void 0!==n?n:t.bounds;if(r)return boundsToCoordinates(r);let i=t.location;if(!i)throw O;return pointToCoordinates(i.lat(),i.lng())},cacheDestinationPlace=(e,n)=>{var t,r,i;let a=n.viewport?boundsToCoordinates(n.viewport):n.location?pointToCoordinates(n.location.lat(),n.location.lng()):null;if(!a)return;let o=null!==(i=null===(r=n.addressComponents)||void 0===r?void 0:null===(t=r.find(e=>{let{types:n}=e;return n.includes(G)}))||void 0===t?void 0:t.longText)&&void 0!==i?i:void 0;N.set(e,{...a,municipality:o})},getCoordsAndMunicipalityByDestination=async e=>{var n,t;let r=N.get(e);if(r)return r;let[i]=await geocodeAddress(e),{northeast:a,southwest:o}=getResultCoordinates(i),l=null===(t=i.address_components)||void 0===t?void 0:null===(n=t.find(e=>{let{types:n}=e;return n.includes(G)}))||void 0===n?void 0:n.long_name;return{northeast:a,southwest:o,municipality:l}},buildPropertiesAvailableQuery=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(!e)return"";let t=n?12*n:0,{rentalType:r,adults:i,infants:a,children:o,childrenAges:l,rooms:s,dates:d,price:c,brand:m,listingsPerPage:g,buildingId:f,skipRentalTypeFilter:p,...v}=e,y=u()({listingsPerPage:12,guests:removeUndefined({adults:i,infants:a,children:o,childrenAges:getChildrenAgesParam(o,l)}),checkIn:null==d?void 0:d.checkIn,checkOut:null==d?void 0:d.checkOut,pricePerNightRange:removeUndefined({min:null==c?void 0:c.min,max:null==c?void 0:c.max}),rentalTypes:p?void 0:[r||h.m.shortTerm],offset:t,brand:getBrand(m),propertyGroupId:f,...v},I),b=(0,T.Y$)(removeUndefined(y)),k="";return g&&(k="pagination[offset]=".concat(t,"&pagination[limit]=").concat(g,"&")),b?"?".concat(k).concat(b,"&minBedrooms=").concat(s||0,"&visibleOnWebsite=true"):""},buildPropertyAvailabilityQuery=e=>{var n;let{checkIn:t,checkOut:r,rentalType:i,adults:a,infants:o,children:l,childrenAges:s,rooms:d,amenities:c,brand:m,minBathrooms:g,allowsChildren:h,allowsPets:f,isSelfCheckIn:p}=e,v=removeUndefined({adults:a,children:l,infants:o,childrenAges:getChildrenAgesParam(l,s)}),y=Object.keys(v).length>0?v:{adults:1},b=u()({checkIn:t,checkOut:r,guests:y,rentalTypes:[null!=i?i:"short_term"],amenities:(null==c?void 0:c.length)?c:void 0,brand:null!==(n=getBrand(m))&&void 0!==n?n:void 0,minBathrooms:null!=g?g:void 0,allowsChildren:null!=h?h:void 0,allowsPets:null!=f?f:void 0,isSelfCheckIn:null!=p?p:void 0},w),k=(0,T.Y$)(removeUndefined(b));return"".concat(k,"&minBedrooms=").concat(d||0,"&visibleOnWebsite=true")},getAvailabilityParamsFromCheckout=e=>{var n,t,r,i;let a=[];try{let t=JSON.parse(String(null!==(n=e.bookingRooms)&&void 0!==n?n:"[]"));Array.isArray(t)&&(a=t)}catch(e){a=[]}let o=a.reduce((e,n)=>e+(n.numberOfAdults||0),0),l=a.reduce((e,n)=>e+(n.numberOfChildren||0),0),s=a.flatMap(e=>{var n;return null!==(n=e.childrenAges)&&void 0!==n?n:[]}),u=Array.isArray(e.rentalTypes)?e.rentalTypes[0]:e.rentalTypes,d={checkIn:String(null!==(t=e.checkIn)&&void 0!==t?t:""),checkOut:String(null!==(r=e.checkOut)&&void 0!==r?r:""),"guests[adults]":String(o||1),"guests[children]":String(l),"guests[infants]":String(null!==(i=e.infants)&&void 0!==i?i:0),rooms:"0",rentalType:String(null!=u?u:h.m.shortTerm)};return l>0&&s.length===l&&s.forEach((e,n)=>{d["guests[childrenAges][".concat(n,"]")]=String(e)}),d},getPropertiesParams=(e,n)=>{var t,r,i,a,o,l,s;let u=getChildrenAgesParam(e.children,parseChildrenAgesFromQuery(e)),d={checkIn:null!==(t=e["dates[checkIn]"])&&void 0!==t?t:"",checkOut:null!==(r=e["dates[checkOut]"])&&void 0!==r?r:"",guests:{adults:null!==(i=e.adults)&&void 0!==i?i:1,children:null!==(a=e.children)&&void 0!==a?a:0,infants:null!==(o=e.infants)&&void 0!==o?o:0,...u?{childrenAges:u}:{}},rooms:null!==(l=e.rooms)&&void 0!==l?l:0,rentalType:null!==(s=null!=n?n:e.rentalType)&&void 0!==s?s:h.m.shortTerm},c=[];return Object.keys(e).forEach(n=>{let t=n.match(/^amenities\[(\d+)\]$/);t&&e[n]&&c.push(e[n])}),c.length>0&&(d.amenities=c),e.brand&&(d.brand=e.brand),e.minBathrooms&&(d.minBathrooms=e.minBathrooms),"true"===e.isSelfCheckIn&&(
1d.isSelfCheckIn=e.isSelfCheckIn),"true"===e.allowsChildren&&(d.allowsChildren=e.allowsChildren),"true"===e.allowsPets&&(d.allowsPets=e.allowsPets),(0,T.Y$)(removeUndefined(d))},getAvailabilityListQueryParams=e=>{let n=(0,p.oS)(e["dates[checkIn]"]),t=(0,p.oS)(e["dates[checkOut]"]),r=e.adults?Number(e.adults):1,i=e.children?Number(e.children):0,a=e.infants?Number(e.infants):0,o=syncChildrenAges(i,parseChildrenAgesFromQuery(e)),l=e.rooms?Number(e.rooms):0,s=e.page?Number(e.page):0,u=e.destination?decodeURIComponent(e.destination):"",d=e.neighbourhood||"",c=e.rentalType||h.m.shortTerm,g={northeast:{lat:e["coordinates[northeast][lat]"],lng:e["coordinates[northeast][lng]"]},southwest:{lat:e["coordinates[southwest][lat]"],lng:e["coordinates[southwest][lng]"]}},v="true"===e.isSelfCheckIn,y=e.brand||m.Q.all,b=e["price[min]"]&&e["price[max]"]?[Number(e["price[min]"]),Number(e["price[max]"])]:[f.XT,f.H9],T=e["sort[price]"],k=e.minBathrooms?Number(e.minBathrooms):0,A=[];return Object.keys(e).forEach(n=>{let t=n.match(/^amenities\[(\d+)\]$/);t&&e[n]&&A.push(e[n])}),{adults:r,children:i,infants:a,childrenAges:o,rooms:l,page:s,destination:u,coordinates:g,checkIn:n,checkOut:t,neighbourhood:d,rentalType:c,isSelfCheckIn:v,brand:y,priceRange:b,sortByPrice:T,minBathrooms:k,amenities:A.length>0?A:void 0}},getPropertyGroupAvailableQuery=async e=>{let{bookWithUs:n,generalFilters:t,priceRange:r,priceRangeType:i,sortByPrice:a,brand:o,neighbourhood:s,isSelfCheckIn:u,currentCompany:d,push:c,setCoordinates:g,basePath:f,presetCoordinates:y,presetMunicipality:b}=e,A=d===v.O3.ferienhaus,{guests:C,destination:P,checkIn:w,checkOut:I,rentalType:M}=n,{minBathrooms:S,amenities:B}=t,O=A?R:P,G=null==B?void 0:B.flat().filter(e=>{let{checked:n}=e;return n}),N={adults:C.adults,children:C.children,infants:C.infants,childrenAges:getChildrenAgesParam(C.children,C.childrenAges),rooms:C.rooms,destination:O,dates:{checkIn:(0,p.as)(w),checkOut:(0,p.as)(I)},minBathrooms:S,amenities:null==G?void 0:G.map(e=>{let{name:n}=e;return n}),[i===m.R.perNight?"price":"totalPrice"]:M===h.m.midTerm?null:{min:r[0],max:r[1]},neighbourhood:s,brand:A?v.O3.ferienhaus:o,isSelfCheckIn:u,"sort[price]":a,rentalType:M};if(y)N.coordinates=y,N.municipality=b,null==g||g({northeast:{lat:String(y.northeast.lat),lng:String(y.northeast.lng)},southwest:{lat:String(y.southwest.lat),lng:String(y.southwest.lng)}});else if(O){let{northeast:e,southwest:n,municipality:t}=await getCoordsAndMunicipalityByDestination(O);N.coordinates={northeast:{lat:e.lat,lng:e.lng},southwest:{lat:n.lat,lng:n.lng}},N.municipality=t,g&&g({northeast:{lat:String(e.lat),lng:String(e.lng)},southwest:{lat:String(n.lat),lng:String(n.lng)}})}let D=(0,T.Y$)(l()(N,e=>!e));c({pathname:(0,k.Om)(null!=f?f:k.Z6.availability,d),query:D},void 0,{scroll:!1})},D={wifi:"Wifi",tv:"Tv",airConditioning:"AirConditioning",heating:"Heating",balcony:"Balcony",toiletryKit:"ToiletryKit",pool:"SwimmingPool",freeParking:"Parking",elevator:"Elevator",seaview:"Waves",oceanview:"Waves",riverview:"Waves",lakeview:"Waves",poolview:"SwimmingPool",gardenview:"Garden",parkview:"Park",countryview:"Park",cityview:"City",landmarkview:"City",mountainview:"Mountain",courtyardview:"Landscape",view:"Landscape"},F=[{name:"wifi",color:"#e96b2b"},{name:"tv",color:"#21735d"},{name:"airConditioning",color:"#af40a2"},{name:"heating",color:"#f39c12"},{name:"balcony",color:"#6d2e6f"},{name:"toiletryKit",color:"#c5c5ca"},{name:"seaview",color:"#3b82c4"},{name:"oceanview",color:"#1e6091"},{name:"riverview",color:"#4a90a8"},{name:"lakeview",color:"#5b8db4"},{name:"poolview",color:"#6d9ca9"},{name:"gardenview",color:"#6ba556"},{name:"parkview",color:"#5a9651"},{name:"countryview",color:"#a09060"},{name:"cityview",color:"#7d6f8a"},{name:"landmarkview",color:"#9b6e3a"},{name:"mountainview",color:"#7a5e4a"},{name:"courtyardview",color:"#8e7a6a"},{name:"view",color:"#5b8db4"},{name:"pool",color:"#6d9ca9"},{name:"freeParking",color:"#2222ba"},{name:"elevator",color:"#adad27"}],getGuestsQueryParam=(e,n)=>{var t;return null!==(t=e["guests[".concat(n,"]")])&&void 0!==t?t:e[n]},getGuestsChildrenAgesFromQuery=e=>{if(getChildrenAgesQueryKeys(e,"guests[childrenAges]").length)return parseChildrenAgesFromQuery(e,"guests[childrenAges]");let n=e.childrenAges;return void 0===n?[]:[].concat(n)},parseUrlParams=e=>{let n=[];Object.keys(e).forEach(t=>{let r=t.match(/^amenities\[(\d+)\]$/);r&&e[t]&&n.push(e[t])});let t=getGuestsQueryParam(e,"adults"),r=getGuestsQueryParam(e,"children"),i=getGuestsQueryParam(e,"infants"),a={checkIn:e.checkIn,checkOut:e.checkOut,adults:t?parseInt(t):1,children:r?parseInt(r):void 0,infants:i?parseInt(i):void 0,childrenAges:getChildrenAgesParam(r,getGuestsChildrenAgesFromQuery(e)),rooms:e.rooms?parseInt(e.rooms):void 0,rentalType:e.rentalType?e.rentalType:"short_term",amenities:n.length>0?n:void 0,brand:e.brand?e.brand:void 0,minBathrooms:e.minBathrooms?parseInt(e.minBathrooms):void 0,allowsChildren:"true"===e.allowsChildren||void 0,allowsPets:"true"===e.allowsPets||void 0,isSelfCheckIn:"true"===e.isSelfCheckIn||void 0};return a},capGuestsQueryToMaxOccupancy=(e,n)=>{if(!n||n<=0)return e;let t=e["guests[adults]"]?parseInt(e["guests[adults]"]):1,r=e["guests[children]"]?parseInt(e["guests[children]"]):0;if(t+r<=n)return e;let i=Math.min(t,n),a=Math.max(0,n-i),o=parseChildrenAgesFromQuery(e,"guests[childrenAges]"),l={...e};return getChildrenAgesQueryKeys(e,"guests[childrenAges]").forEach(e
1=>{delete l[e]}),o.slice(0,a).forEach((e,n)=>{l["guests[childrenAges][".concat(n,"]")]=String(e)}),{...l,"guests[adults]":String(i),"guests[children]":String(a)}},getBookingInfo=e=>{var n,t,r;let i=parseUrlParams(e),o=0,l="";if((null==i?void 0:i.checkIn)&&(null==i?void 0:i.checkOut)){let e=new Date(i.checkIn),n=new Date(i.checkOut);isNaN(e.getTime())||isNaN(n.getTime())||(o=Math.ceil((n.getTime()-e.getTime())/864e5),l="".concat((0,a.default)(e,P)," - ").concat((0,a.default)(n,P)))}return{checkIn:null==i?void 0:i.checkIn,checkOut:null==i?void 0:i.checkOut,adults:null!==(n=null==i?void 0:i.adults)&&void 0!==n?n:null,children:null!==(t=null==i?void 0:i.children)&&void 0!==t?t:null,infants:null!==(r=null==i?void 0:i.infants)&&void 0!==r?r:null,childrenAges:null==i?void 0:i.childrenAges,minBedrooms:null==i?void 0:i.rooms,rentalTypes:(null==i?void 0:i.rentalType)?[null==i?void 0:i.rentalType]:[],nights:o,dateRange:l}},updateUrlWithFilters=(e,n)=>{var t,r;let i={...e.query};n.checkIn&&(i.checkIn=n.checkIn),n.checkOut&&(i.checkOut=n.checkOut),n.rentalType&&(i.rentalTypes=[n.rentalType]),i["guests[adults]"]=n.adults?n.adults.toString():"1",i["guests[children]"]=n.children?n.children.toString():"0",i["guests[infants]"]=n.infants?n.infants.toString():"0",i.rooms=n.rooms?n.rooms.toString():"0",getChildrenAgesQueryKeys(i,"guests[childrenAges]").forEach(e=>{delete i[e]}),null===(t=getChildrenAgesParam(n.children,n.childrenAges))||void 0===t||t.forEach((e,n)=>{i["guests[childrenAges][".concat(n,"]")]=e.toString()}),(null===(r=n.amenities)||void 0===r?void 0:r.length)&&n.amenities.forEach((e,n)=>{i["amenities[".concat(n,"]")]=e}),n.brand&&(i.brand=n.brand),n.minBathrooms&&(i.minBathrooms=n.minBathrooms.toString()),n.isSelfCheckIn&&(i.isSelfCheckIn="true"),n.allowsChildren&&(i.allowsChildren="true"),n.allowsPets&&(i.allowsPets="true"),e.replace({pathname:e.pathname,query:i},(0,k.kG)(e,i),{shallow:!0})},snakeToCamelCase=e=>e.replace(/_([a-z])/g,(e,n)=>n.toUpperCase()),getMainAmenities=e=>{if(!e)return[];let n=[];return e.forEach(e=>{let t=snakeToCamelCase(e).toLowerCase(),r=F.find(e=>t.includes(e.name.toLowerCase()));r&&n.push({...r,amenityType:snakeToCamelCase(e)})}),n},getPropertyTypeInfo=(e,n)=>{let{maxOccupancy:t=0,bedrooms:r=0,bathrooms:i=0,area:a}=e;return[{condition:t>0,icon:c.P.Users,text:n("apartments:cards.guests",{count:t})},{condition:r>0,icon:c.P.Bedroom,text:n("apartments:cards.bedrooms",{count:r})},{condition:i>0,icon:c.P.Bathtub,text:n("apartments:cards.bathrooms",{count:i})},{condition:!!a,icon:c.P.SquareMeter,text:"".concat(a," m\xb2")}]}},13719:function(e,n,t){t.d(n,{IQ:function(){return getDateReplacement},Oe:function(){return generateDateSeriesFromMonthRange},Oi:function(){return getDaysDiff},as:function(){return formatDateToQueryParam},oS:function(){return getDateFromQueryParam},p6:function(){return formatDate},t4:function(){return getDateLocale}});var r=t(67803),i=t(9005),a=t(4135),o=t(42298),l=t(70197),s=t(23855),u=t(89345),d=t(63345),c=t(75830),m=t(94952);let g={en:u.Z,pt:m.Z,es:d.Z,fr:c.Z},getDateLocale=e=>{let n=g[e];return null!=n?n:u.Z},formatDate=function(e,n){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en";return(0,o.default)(e,n,{locale:getDateLocale(t)})},getDateFromQueryParam=e=>e?(0,s.default)(e):null,formatDateToQueryParam=e=>e?formatDate(e,"yyyy-MM-dd"):"",getDaysDiff=e=>{let{startDate:n,endDate:t}=e;return n&&t?(0,r.Z)(t,n):0},getDateReplacement=e=>{var n;let t={en:{D:/\d/,M:/\d/,Y:/\d/},pt:{D:/\d/,M:/\d/,A:/\d/},es:{D:/\d/,M:/\d/,A:/\d/},fr:{J:/\d/,M:/\d/,A:/\d/}};return null!==(n=t[e])&&void 0!==n?n:t.en};function generateDateSeriesFromMonthRange(e,n){let t=(0,l.default)(e,"yyyy-MM",new Date),r=(0,a.default)((0,l.default)(n,"yyyy-MM",new Date)),o=(0,i.Z)({start:t,end:r});return o.map(e=>formatDate(e,"yyyy-MM-dd"))}},47001:function(e,n,t){t.d(n,{_V:function(){return loadGoogleMaps},qP:function(){return isGoogleMapsLoaded}});var r=t(39626),i=t(35177);let a=["places"],o=null,isGoogleMapsLoaded=()=>{var e,n;return!!(null===(n=window.google)||void 0===n?void 0:null===(e=n.maps)||void 0===e?void 0:e.places)},loadGoogleMaps=function(){var e;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"en";if(o)return o;let t=new r.aN({apiKey:null!==(e=i.OB.NEXT_PUBLIC_GOOGLE_API_KEY)&&void 0!==e?e:"",version:"quarterly",libraries:a,language:n}),l=t.load().catch(e=>{throw o===l&&(o=null),e});return o=l}},98560:function(e,n,t){t.d(n,{MQ:function(){return u},hW:function(){return s},nh:function(){return a},tY:function(){return o}});var r,i,a,o,l=t(79362);(r=a||(a={}))[r.Portugal=1]="Portugal",r[r.France=2]="France",r[r.Turkey=3]="Turkey",(i=o||(o={}))[i.Lisbon=1]="Lisbon",i[i.Mafra=2]="Mafra",i[i.Matosinhos=3]="Matosinhos",i[i.Porto=4]="Porto",i[i.Cascais=5]="
1Cascais",i[i.Gaia=6]="Gaia",i[i.Algarve=7]="Algarve",i[i.Sintra=8]="Sintra",i[i.Normandy=10]="Normandy",i[i.Madeira=12]="Madeira",i[i.Istanbul=13]="Istanbul";let s=[{id:1,name:"Portugal",img:"".concat(l.Mx,"/imgs/destinations/portugal.png")},{id:2,name:"France",img:"".concat(l.Mx,"/imgs/destinations/france.png")},{id:3,name:"Turkey",img:"".concat(l.Mx,"/imgs/destinations/turkey.png")}],u=[{id:1,name:"Lisbon",countryId:1,image:"".concat(l.Mx,"/imgs/destinations/lisbon.jpg"),andoLiving:!0,midTerm:!0,longTerm:!0},{id:2,name:"Mafra",countryId:1,image:"".concat(l.Mx,"/imgs/destinations/mafra.jpg")},{id:3,name:"Matosinhos",countryId:1,image:"".concat(l.Mx,"/imgs/destinations/matosinhos.jpg")},{id:4,name:"Porto",countryId:1,image:"".concat(l.Mx,"/imgs/destinations/porto.png"),andoLiving:!0,midTerm:!0,longTerm:!0},{id:5,name:"Cascais",countryId:1,image:"".concat(l.Mx,"/imgs/destinations/cascais.jpeg")},{id:6,name:"V.N Gaia",countryId:1,image:"".concat(l.Mx,"/imgs/destinations/vngaia.jpg")},{id:7,name:"Algarve",countryId:1,image:"".concat(l.Mx,"/imgs/destinations/algarve.jpeg"),midTerm:!0,longTerm:!0},{id:8,name:"Sintra",countryId:1,image:"".concat(l.Mx,"/imgs/destinations/sintra.png")},{id:10,name:"Normandy",countryId:2,image:"".concat(l.Mx,"/imgs/destinations/normandy.jpg")},{id:12,name:"Madeira",countryId:1,image:"".concat(l.Mx,"/imgs/destinations/madeira-mini.png"),ferienHaus:!0,midTerm:!0},{id:13,name:"Istanbul",countryId:3,image:"".concat(l.Mx,"/imgs/destinations/istanbul.png"),andoLiving:!0}]}}]);

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.