1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[704],{80591:function(e,t,r){r.d(t,{O:function(){return useDisplayModeToggle}});var n=r(66550),i=r(83303),l=r(67294);let s={defaultMode:"projects",filterKey:n.OK.Full},useDisplayModeToggle=function(){let{defaultMode:e,initiallyDisabled:t,filterKey:r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,{queryValue:a,updateQuery:o}=(0,i.i)("mode"),[c,u]=(0,l.useReducer)(reducer,{mode:e,disabled:"boolean"==typeof t&&t});(0,l.useEffect)(()=>{a&&c.mode!==a&&("objects"===a?u({type:"setMode",mode:"objects"}):u({type:"setMode",mode:"projects"}))},[a,c.mode,u]);let d=(0,l.useCallback)(e=>{o(e),(0,n.Ko)(r,"mode",e)},[o,r]),f=(0,l.useCallback)(()=>{u({type:"enable"})},[]),p=(0,l.useCallback)(()=>{u({type:"disable"})},[]);return{state:c,setMode:d,enable:f,disable:p}};function reducer(e,t){switch(t.type){case"setMode":return{...e,mode:t.mode};case"disable":return{...e,disabled:!0};case"enable":return{...e,disabled:!1};default:return t}}},47025:function(e,t,r){r.d(t,{Q:function(){return a}});var n=r(85893),i=r(74410),l=r(86010),s=r(67294);let a={open:"Filter ausblenden",close:"Filter einblenden"},o=s.forwardRef(function(e,t){let{className:r,children:s,...a}=e;
1return(0,n.jsxs)("button",{ref:t,"aria-label":"expand filter",...a,className:(0,l.Z)("flex shrink-0 items-center justify-center rounded-[2px]","bg-dark-petrol-450 baustolz:bg-warm-gray-550","text-beige-300 baustolz:text-beige-900 ",r),children:[(0,n.jsx)("div",{className:"h-6 w-6 flex shrink-0 items-center justify-center",children:(0,n.jsx)(i.k1,{className:"w-3 h-3 fill-beige-300 baustolz:fill-beige-900"})}),s?(0,n.jsx)("span",{className:"text-inherit mr-2",children:s}):null]})});t.Z=o},25998:function(e,t,r){r.d(t,{Dd:function(){return initObjectTypesByProject},U_:function(){return initRentalObjectTypes},ox:function(){return initObjectTypes}});var n=r(6827),i=r(52825);let fetchObjectTypes=async(e,t)=>{try{let r=[];(null==e?void 0:e.length)&&r.push({terms:{"brand.slug.keyword":e}}),t&&r.push({term:{"estateProject.sid.keyword":t}});let i=await n.MY.searchObjects({size:0,query:{bool:{filter:r}},aggregations:{houseType:{terms:{field:"houseType.keyword"}},appartmentType:{terms:{field:"appartmentType.keyword"}}}}),l=i.aggregations;if(!l)throw Error("Could not fetch the data");let{houseType:s,appartmentType:a}=l,o="buckets"in a&&a.buckets,c=o?o.map(e=>{let{key:t}=e;return t.trim()}).filter(e=>e):[],u="buckets"in s&&s.buckets,d=u?u.map(e=>{let{key:t}=e;return t.toLowerCase().trim()}).filter(e=>e):[];return{houseTypes:d,appartmentTypes:c}}catch(e){if(e instanceof Error)throw e}},initObjectTypesByProject=e=>fetchObjectTypes([i.s.Baustolz,i.s.Used,i.s.Strenger],e),initObjectTypes=()=>fetchObjectTypes([i.s.Baustolz,i.s.Used,i.s.Strenger]),initRentalObjectTypes=()=>fetchObjectTypes([i.s.Rental])},92289:function(e,t,r){r.d(t,{_:function(){return useObjectTypeFilter}});var n=r(83021),i=r(67294),l=r(88767);let s={isInitialized:!1,disabled:!1,elasticFilter:null,isDirty:!1,hasSelection:!1,options:[]};var a=r(85698);let getElasticQueryByObjectTypes=e=>{let{houseTypes:t,appartmentTypes:r}=e;return r.length||t.length?{bool:{should:[{terms:{houseType:[...t.map(e=>e.toLowerCase())]}},{terms:{appartmentType:[...r.map(e=>e.toLowerCase())]}}]}}:null};var o=r(73879);let objectFilterReducer=(e,t)=>{let r={...e};switch(t.type){case"init":{r.isInitialized=!0;let e=t.options.map(e=>{var r;return(null===(r=t.defaultSelected)||void 0===r?void 0:r.includes(e.objectType))?(0,a.Ul)(e):e}),n=(0,a.XR)(e);r.options=(0,a.OT)(n),r.elasticFilter=getElasticQueryByObjectTypes(...getOptionTypes(n));break}case"toggleSelection":{let n=[...e.options],i=e.options.findIndex(e=>{let{objectType:r}=e;return r===t.objectType});if(-1===i)break;n[i]=(0,a.Ul)(n[i]),r.options=n;break}case"cancel":r.options=(0,a.ar)(e.options),t.storeFn&&t.storeFn("objectType",void 0);break;case"apply":{let n=(0,a.XR)(e.options);if(r.options=(0,a.OT)(n),r.elasticFilter=getElasticQueryByObjectTypes(...getOptionTypes(n)),t.storeFn){let e=(0,o.Z)(r.options).map(e=>e.objectType);t.storeFn("objectType",e)}break}case"disable":return{...e,disabled:!0};case"enable":return{...e,disabled:!1};default:return t}return r.isDirty=(0,a.Y7)(r.options),r.hasSelection=(0,a.RM)(r.options),r},getOptionTypes=e=>{let t=e.filter(e=>!0===e.isSelected.current),r=t.filter(e=>{let{houseOrAppartment:t}=e;return"appartment"===t}).map(e=>{let{objectType:t}=e;return t}),n=t.filter(e=>{let{houseOrAppartment:t}=e;return"house"===t}).map(e=>{let{objectType:t}=e;return t});return[{appartmentTypes:r,houseTypes:n}]},useObjectTypeFilter=e=>{let t=e.initFn,r=(0,i.useMemo)(()=>["objectTypes",e.cacheID],[e.cacheID]),{data:a,refetch:o,isLoading:c,error:u}=(0,l.useQuery)(r,async()=>await t(),{enabled:!1}),[d,f]=(0,i.useReducer)(objectFilterReducer,{...s,disabled:"boolean"==typeof e.initiallyDisabled&&e.initiallyDisabled}),{options:p,isInitialized:g,disabled:h,elasticFilter:m,hasSelection:b,isDirty:v}=d;return((0,i.useEffect)(()=>{o()},[o,r]),(0,i.useEffect)(()=>{if(!a||g||h)return;let t=[...a.houseTypes.map(e=>({objectType:e,isSelected:{current:!1},houseOrAppartment:"house"})),...a.appartmentTypes.map(e=>({objectType:e,isSelected:{current:!1},houseOrAppartment:"appartment"}))];f({type:"init",options:t,defaultSelected:e.storedObjectType})}
1,[a,g,h,e.storedObjectType]),c)?{status:n.q.Loading,elasticFilter:m,dispatch:f}:u?{status:n.q.Error,error:u,elasticFilter:m,dispatch:f}:h?{status:n.q.Disabled,elasticFilter:null,dispatch:f}:{status:n.q.Idle,dispatch:f,hasSelection:b,isDirty:v,options:p,elasticFilter:m}}},33470:function(e,t,r){r.d(t,{a:function(){return getProductElasticFilter}});var n=r(41853),i=r(52825);let getProductElasticFilter=e=>{switch(e){case n.xs.All:return null;case n.xs.Baustolz:return{term:{"brand.slug":i.s.Baustolz}};case n.xs.Strenger:return{term:{"brand.slug":i.s.Strenger}}}}},41853:function(e,t,r){r.d(t,{mg:function(){return getDefaultState},xs:function(){return i}});var n,i,l=r(33470);(n=i||(i={})).All="all",n.Baustolz="baustolz",n.Strenger="strenger";let s=[{value:"all",displayText:"Alle Produkte"},{value:"baustolz",displayText:"Baustolz"},{value:"strenger",displayText:"Strenger"}],getDefaultState=e=>({options:s,active:s.find(t=>t.value===e),elasticFilter:(0,l.a)(e)})},94045:function(e,t,r){r.d(t,{Z:function(){return useProductFilter}});var n=r(66550),i=r(83303),l=r(67294),s=r(33470),a=r(41853);let useProductFilter=(e,t)=>{let[r,o]=(0,l.useState)((0,a.mg)(e)),{queryValue:c,updateQuery:u}=(0,i.i)("brand");(0,l.useEffect)(()=>{let e="string"==typeof c&&[a.xs.All,a.xs.Baustolz,a.xs.Strenger].includes(c);e&&o(e=>({...e,active:e.options.find(e=>e.value===c),elasticFilter:(0,s.a)(c)}))},[c]);let d=(0,l.useCallback)(e=>{u(e),t&&(0,n.Ko)(t,"productBrand",e)},[t,u]);return{state:r,setValue:d}}},29722:function(e,t,r){r.d(t,{bE:function(){return RegionFilter},Hg:function(){return initObjectRegionData},vg:function(){return initProjectRegionData},GL:function(){return initRentalRegionData},Zd:function(){return useRegionFilter}});var n=r(85893),i=r(9404),l=r(38208),s=r(74410),a=r(83021),o=r(86215),c=r(54699),u=r(9933),d=r(86010),f=r(67294),p=r(85698),g=r(66550),h=r(88767);let m={initializedData:{},status:"loading",regions:[],isDirty:!1,hasSelection:!1,cities:[],elasticFilter:null};var b=r(73879);let getRegionElasticFilter=(e,t)=>{let r=e.filter(e=>e.isSelected.current).map(e=>e.name),n=t.filter(e=>{let{selectable:t,isSelected:r}=e;return t&&r.current}).map(e=>e.name);if(!e.length||!e.length&&!t.length)return null;let i=[];return r.length&&i.push({bool:{should:[{terms:{"regionPick.keyword":r}},{terms:{"addressRegion.keyword":r}}]}}),n.length&&i.push({terms:{"addressCity.keyword":n}}),{bool:{filter:i}}},regionFilterReducer=(e,t)=>{let r={...e};switch(t.type){case"_init":{var n;let i=(null===(n=e.initializedData)||void 0===n?void 0:n.current)||{cities:[],regions:[]};r.initializedData.current=t.data,r.initializedData.previous=i;let{regions:l,cities:s}=function(e){let t=e.regions.map(e=>({name:e.name,isSelected:{current:!1},cities:e.cities})),r=e.cities,n=r.map(e=>({name:e,selectable:!0,isSelected:{current:!1}})),i=parseCities(t,n);return{regions:t,cities:i}}(t.data),a=Array.from(new Set([...getActiveRegionNames(e.regions),...t.storedSelected.regions])),o=Array.from(new Set([...getActiveCityNames(e.cities),...t.storedSelected.cities])),c=l.map(e=>a.includes(e.name)?{...e,isSelected:{current:!0}}:e),u=s.map(e=>o.includes(e.name)?{...e,isSelected:{current:!0}}:e);r.status="idle",r.regions=(0,p.FY)(c),r.cities=(0,p.FY)(u),r.elasticFilter=getRegionElasticFilter(r.regions,r.cities)}break;case"toggle-city":{let n=e.cities.findIndex(e=>e.name===t.city);if(-1===n)break;let i=e.cities.map(e=>{if(e.name===t.city){let{dirty:t,current:r}=e.isSelected;return{...e,isSelected:{...e.isSelected,dirty:!(void 0===t?r:t)}}}return e});r.cities=i;break}case"toggle-region":{let e=r.regions.map(e=>{if(e.name===t.region){let{dirty:t,current:r}=e.isSelected,n={...e,isSelected:{current:e.isSelected.current,dirty:!(void 0===t?r:t)}};return{...n}}return{...e}});r.regions=e,r.cities=parseCities(r.regions,r.cities)}break;case"apply":r.cities=(0,p.FY)((0,p.XR)(e.cities)),r.regions=(0,p.FY)((0,p.XR)(e.regions)),r.elasticFilter=getRegionElasticFilter(r.regions,r.cities),r.cities=parseCities(r.regions,r.cities),t.storeFn&&t.storeFn("regions",{regions:(0,b.Z)(r.regions).map(e=>e.name),cities:(0,b.Z)(r.cities).map(e=>e.name)}
1);break;case"cancel":let i=(0,p.ar)(e.regions),l=(0,p.ar)(e.cities),s=parseCities(i,l);r.cities=(0,p.FY)(s),r.regions=(0,p.FY)(i),r.elasticFilter=getRegionElasticFilter(r.regions,r.cities),t.storeFn&&t.storeFn("regions",void 0);break;default:return t}return r.isDirty=(0,p.Y7)(r.regions)||(0,p.Y7)(r.cities),r.hasSelection=(0,p.RM)(r.regions)||(0,p.RM)(r.cities),r},parseCities=(e,t)=>{let r=e.filter(e=>void 0!==e.isSelected.dirty?e.isSelected.dirty:e.isSelected.current),n=r.map(e=>e.cities).flat(),i=t.map(e=>{let t=!n.length||n.includes(e.name);return t?{...e,selectable:!0}:{...e,selectable:!1,isSelected:{current:!1}}}).filter(e=>e.name);return i},getActiveRegionNames=e=>e.filter(e=>e.isSelected.current).map(e=>e.name),getActiveCityNames=e=>e.filter(e=>e.isSelected.current).map(e=>e.name),useRegionFilter=(e,t)=>{let{initFn:r,cacheID:n,contentfulRegions:i}=e,[l,s]=(0,f.useReducer)(regionFilterReducer,{...m}),o=(0,f.useMemo)(()=>["regionData",n],[n]),c=(0,h.useQuery)(o,r,{enabled:!1}),{elasticFilter:u}=l;return((0,f.useEffect)(()=>{(()=>{let e=c.refetch;e()})()},[c.refetch,o]),(0,f.useEffect)(()=>{var e;if(!(null===(e=c.data)||void 0===e?void 0:e.regions))return;let r={regions:[],cities:[]};i?r.regions.push(...i):t&&(r=t),s({type:"_init",data:c.data,storedSelected:r})},[c.data,t,i]),c.isLoading)?{status:a.q.Loading,elasticFilter:u,dispatch:s}:c.error?{status:a.q.Error,error:c.error,elasticFilter:u,dispatch:s}:{status:a.q.Idle,regions:l.regions,hasSelection:l.hasSelection,isDirty:l.isDirty,cities:l.cities,elasticFilter:u,dispatch:s}};var v=r(52825),y=r(6827);let fetchRegionData=async e=>{let{brands:t,source:r}=e,n="objects"===r?y.MY.searchObjects:y.MY.searchProjects;try{var i;let e="addressCity",l="objects"===r?"regionPick":"addressRegion",s=await n({size:1e4,_source:!1,fields:[e,l],query:{bool:{filter:{terms:{"brand.slug.keyword":t}}}},aggs:{cities:{terms:{field:"".concat(e,".keyword")}}}}),a=s.hits.hits,o=null===(i=s.aggregations)||void 0===i?void 0:i.cities,c=o&&"buckets"in o?o.buckets:[];if(a&&c){let e=a.map(e=>{var t,r;let n=e.fields;return{region:n?null==n?void 0:null===(t=n[l])||void 0===t?void 0:t[0]:null,city:n?null==n?void 0:null===(r=n.addressCity)||void 0===r?void 0:r[0]:null}}).filter(e=>{let{region:t,city:r}=e;return t&&r}),t=Array.from(new Set(e.map(e=>{let{region:t}=e;return t.trim()}).flat().filter(e=>e))),r=t.map(t=>{let r=Array.from(new Set(e.filter(e=>{let{region:r}=e;return t===r}).map(e=>{let{city:t}=e;return t.trim()})));return{name:t,cities:r}}),n=Array.from(new Set(a.map(e=>{var t;let r=e.fields;return null==r?void 0:null===(t=r.addressCity)||void 0===t?void 0:t[0]}))).filter(e=>e);return{regions:r,cities:n}}}catch(e){if(e instanceof Error)throw e}},initProjectRegionData=()=>fetchRegionData({brands:[v.x.Baustolz,v.x.Mixed,v.x.Strenger],source:"projects"}),initObjectRegionData=()=>fetchRegionData({brands:[v.s.Baustolz,v.s.Used,v.s.Strenger],source:"objects"}),initRentalRegionData=()=>fetchRegionData({brands:[v.s.Rental],source:"objects"}),RegionFilter=e=>{let t,{state:r,filterKey:h,...m}=e,{status:b}=r,[v,y]=(0,f.useState)(!1),x=(0,f.useRef)(null),j=(0,f.useRef)(null);(0,c.Z)(x,17),(0,u.O)(j,()=>{b===a.q.Idle&&r.isDirty&&r.dispatch({type:"cancel",storeFn:h&&(0,g.Ee)(h)}),y(!1)},v);let S=0;switch(b){case a.q.Error:t=(0,n.jsx)(n.Fragment,{children:"Error Happened"}),r.error instanceof Error&&console.error(r.error);break;case a.q.Loading:t=(0,n.jsx)(n.Fragment,{children:"Wird geladen â¦"});break;case a.q.Idle:{let{dispatch:e}=r;S=[...r.regions,...r.cities].filter(e=>e.isSelected.current).length,t=(0,n.jsxs)("div",{className:"w-full md:p-2",children:[(0,n.jsxs)("div",{className:"flex flex-col w-full md:flex-row theme-none text-black flex-grow flex-wrap md:flex-nowrap",children:[(0,n.jsxs)("div",{className:"",children:[(0,n.jsx)("h6",{className:"p-2 pb-1",children:"Region"}),(0,n.jsx)("div",{className:" max-h-[230px] w-full md:w-fit md:mr-4 min-w-[217px] scrollbar-thin overflow-y-auto flex-shrink-0",children:r.regions.length?r.regions.map(t=>{let{isSelected:{dirty:r,current:i}}=t;return(0,n.jsxs)(f.Fragment,{children:[(0,n.jsx)("button",{onClick:()=>e({type:"toggle-region",region:t.name}),className:(0,d.Z)("p-2 w-full hover:bg-grey-50",p.gu),children:(0,n.jsx)(l.Z,{variant:"tertiary",className:" pointer-events-none !input-regular",label:t.name,checked:void 0===r?i:r,readOnly:!0})}),(0,n.jsx)("div",{})]},t.name)}
1):(0,n.jsx)("div",{className:"p-2",children:"No regions have been found"})})]}),(0,n.jsx)("div",{children:(0,n.jsxs)("div",{children:[(0,n.jsx)("h6",{className:"p-2 pb-1",children:"Ort"}),(0,n.jsx)("div",{className:"max-h-[230px] w-full min-w-[217px] md:w-fit scrollbar-thin overflow-y-auto flex-shrink-0",children:r.cities.length?r.cities.map(t=>{if(!t.selectable)return null;let{isSelected:{dirty:r,current:i}}=t;return(0,n.jsxs)(f.Fragment,{children:[(0,n.jsx)("button",{onClick:()=>e({type:"toggle-city",city:t.name}),className:(0,d.Z)("p-2 w-full hover:bg-grey-50",p.gu),children:(0,n.jsx)(l.Z,{variant:"tertiary",className:" pointer-events-none !input-regular",label:t.name,checked:void 0===r?i:r,readOnly:!0})}),(0,n.jsx)("div",{})]},t.name)}):(0,n.jsx)("div",{className:"p-2",children:"No Cities have been found"})})]})})]}),(0,n.jsxs)("div",{className:"flex flex-col items-center p-2 theme-none md:w-[calc(100%_-_252px)] ml-auto",children:[(0,n.jsx)(i.Z,{variant:"primary",className:"w-full",size:"small",onClick:()=>{y(!1),e({type:"apply",storeFn:h&&(0,g.Ee)(h)})},children:"Anwenden"}),(0,n.jsx)("button",{onClick:()=>{e({type:"cancel",storeFn:h&&(0,g.Ee)(h)}),e({type:"apply"})},className:"text-link-standalone text-[16px] mt-3 mx-auto",children:"Zur\xfccksetzen"})]})]})}}return(0,n.jsx)("div",{...m,children:(0,n.jsx)(o.J,{className:"relative",children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{children:(0,n.jsxs)(o.J.Button,{as:"button",className:(0,d.Z)((0,p.XU)(),S&&"font-bold"),onMouseDown:()=>y(e=>!e),children:[(0,n.jsxs)("div",{ref:x,className:"text-left text-inherit",children:["Region/Ort",S?"(".concat(S,")"):null]}),(0,n.jsx)(s.v4,{type:"solid",className:(0,d.Z)((0,p.pl)(),"w-3 h-3 m-1 ml-auto block","shrink-0 ease-in-out",v&&"rotate-180")})]})}),v?(0,n.jsx)(o.J.Panel,{ref:j,static:!0,className:"absolute z-30 shadow-menu text-black left-0 w-full lg:w-auto max-w-[501px] bg-white theme-baustolz",children:t}):null]})})})}},2737:function(e,t,r){r.d(t,{Z:function(){return RoomFilter_useRoomFilter}});var n=r(67294);function getRoomFilterElasticQuery(e){let t=["1","2","3","4"];if(!e||(null==e?void 0:e.length)===0)return null;let r=[],n=[],i=null;return e.forEach(e=>{t.includes(e)&&n.push(e),"5+"===e&&(i={range:{numberOfRooms:{gte:5}}})}),n.length&&n.forEach(e=>{r.push({range:{numberOfRooms:{lt:Number(e)+1,gte:Number(e)}}})}),i&&r.push(i),{bool:{should:r}}}var i=r(85698),l=r(73879);let createOption=(e,t)=>({value:e,isSelected:{current:t||!1}}),getOptions=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return[createOption("1",null==e?void 0:e.includes("1")),createOption("2",null==e?void 0:e.includes("2")),createOption("3",null==e?void 0:e.includes("3")),createOption("4",null==e?void 0:e.includes("4")),createOption("5+",null==e?void 0:e.includes("5+"))]},getDefaultState=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,t=getOptions(e);return{options:(0,i.FF)(t),isDirty:!1,disabled:!1,hasSelection:!1,elasticFilter:getRoomFilterElasticQuery(e)}},s={defaultSelected:void 0,initiallyDisabled:!1},reducer=(e,t)=>{let r={...e};switch(t.type){case"toggle":{let n=[...e.options],l=e.options.findIndex(e=>{let{value:r}=e;return r===t.value});if(-1===l)break;n[l]=(0,i.Ul)(n[l]),r.options=n;break}case"apply":r.options=(0,i.FF)((0,i.XR)(e.options)),r.elasticFilter=getRoomFilterElasticQuery(getSelectionsFromOptions(r.options)),t.storeFn&&t.storeFn("room",(0,l.Z)(r.options).map(e=>e.value));break;case"initStored":{let e=getOptions(t.options);r.elasticFilter=getRoomFilterElasticQuery(getSelectionsFromOptions(e));break}case"cancel":return t.storeFn&&t.storeFn("room",void 0),getDefaultState();case"enable":r.disabled=!1;break;case"disable":r.disabled=!0;break;default:return t}return r.isDirty=(0,i.Y7)(r.options),r.hasSelection=(0,i.RM)(r.options),r},getSelectionsFromOptions=e=>e.filter(e=>e.isSelected.current).map(e=>e.value);var RoomFilter_useRoomFilter=function(){let{defaultSelected:e,initiallyDisabled:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,[r,i]=(0,n.useReducer)(reducer,{...getDefaultState(e),disabled:"boolean"==typeof t&&t});return{state:r,dispatch:i}}},19265:function(e,t,r){r.d(t,{A:function(){return getElasticSortEntry}});var n=r(70844);let mapTypeToProp=e=>{switch(e){case n.hn.Size:return"livingArea";case n.hn.PostingDate:return"publishedTime";case n.hn.Price:return"buyingPrice"}},getElasticSortEntry=e=>{let t=n.h8[e].type,r=n.h8[e].direction;return{[mapTypeToProp(t)]:r}}},70844:function(e,t,r){var n,i,l,s,a,o;r.d(t,{DT:function(){return d},ER:function(){return l},bw:function(){return u},h8:function(){return c},hn:function(){return n}}),(s=n||(n={})).PostingDate="post-date",s.Price="price",s.Size="size",(a=i||(i={})).Asc="asc",a.Desc="desc",(o=l||(l={})).NewFirst="new-first",o.OldFirst="old-first",o.ExpensiveFirst="expensive-first",o.CheapFirst="cheap-first",o.BigFirst="big-first",o.SmallFirst="small-first";let c={"new-first":{displayText:"Neueste zuerst",type:"post-date",direction:"desc"},"old-first":{displayText:"\xc4lteste zuerst",type:"post-date",direction:"asc"},"expensive-first":{displayText:"Preis aufsteigend",type:"price",direction:"asc"},"cheap-first":{displayText:"Preis absteigend",type:"price",direction:"desc"},"big-first":{displayText:"Wohnfl\xe4che aufsteigend",type:"size",direction:"asc"},"small-first":{displayText:"Wohnfl\xe4che absteigend",type:"size",direction:"desc"}},getSortData=e=>[e,c[e]],u=[getSortData("new-first"),getSortData("expensive-first"),getSortData("cheap-first"),getSortData("big-first"),getSortData("small-first")],d=[getSortData("new-first"),getSortData("old-first")]},75054:function(e,t,r){r.d(t,{Z:function(){return useSort}});var n=r(66550),i=r(67294);function useSort(e,t){let[r,l]=(0,i.useReducer)(reducer,{mode:e,disabled:!1}),s=(0,i.useCallback)(e=>{t&&(0,n.Ko)(t,"sort",e),l({type:"setMode",mode:e})},[t]);return{state:r,setSortMode:s,dispatch:l}}function reducer(e,t){switch(t.type){case"setMode":return{...e,mode:t.mode};case"disable":return{...e,disabled:!0};case"enable":return{...e,disabled:!1};default:return t}}},82189:function(e,t,r){r.d(t,{D:function(){return getStatusElasticFilter}});var n=r(88583),i=r(52825);let getStatusElasticFilter=e=>{switch(e){case n.Rn.NewAndResaleProperties:return{terms:{"brand.slug":[i.s.Strenger,i.s.Baustolz,i.s.Used]}};case n.Rn.NewProperties:return{terms:{"brand.slug":[i.s.Strenger,i.s.Baustolz]}};case n.Rn.ResaleProperties:return{term:{"brand.slug":i.s.Used}}}}},88583:function(e,t,r){r.d(t,{Rn:function(){return i},mg:function(){return getDefaultState}});var n=r(82189);let i={NewProperties:"neubauimmobilien",ResaleProperties:"gebrauchtimmobilien",NewAndResaleProperties:"neu-und-gebraucht"},l=[{value:i.NewProperties,displayText:"Neubauimmobilien"},{value:i.ResaleProperties,displayText:"Gebrauchtimmobilien"},{value:i.NewAndResaleProperties,displayText:"Neu- und Gebrauchtimmobilien"}],getDefaultState=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{options:l,disabled:t,active:l.find(t=>t.value===e),elasticFilter:(0,n.D)(e)}}},87596:function(e,t,r){r.d(t,{Y:function(){return useStatusFilter}});var n=r(66550),i=r(83303),l=r(67294),s=r(82189),a=r(88583);let useStatusFilter=e=>{let{contentfulStatus:t,initiallyDisabled:r,filterKey:s}=e,o=t||a.Rn.NewAndResaleProperties,[c,u]=(0,l.useReducer)(reducer,(0,a.mg)(o,r)),{queryValue:d,updateQuery:f}=(0,i.i)("status");(0,l.useEffect)(()=>{let e="string"==typeof d&&[a.Rn.NewAndResaleProperties,a.Rn.NewProperties,a.Rn.ResaleProperties].includes(d);e&&u({type:"setValue",value:d})},[d]);let p=(0,l.useCallback)(e=>{f(e),s&&(0,n.Ko)(s,"status",e)},[s,f]);return(0,l.useEffect)(()=>{t&&p(t)}
1,[t,p]),{state:c,setStatus:p,dispatch:u}};function reducer(e,t){switch(t.type){case"setValue":return{...e,active:e.options.find(e=>e.value===t.value),elasticFilter:(0,s.D)(t.value)};case"disable":return{...e,disabled:!0};case"enable":return{...e,disabled:!1};default:return t}}},41403:function(e,t,r){r.d(t,{xC:function(){return DisplayModeToggle},Wm:function(){return ObjectTypeFilter},k7:function(){return ProductFilter},bE:function(){return w.bE},c5:function(){return RoomFilter},PE:function(){return Sort},rr:function(){return StatusFilter},AI:function(){return d.A},_N:function(){return x._},ZH:function(){return S.Z},ZO:function(){return f.Z}});var n=r(85893),i=r(74410),l=r(64729),s=r(67294);function useSelectLabelWidthStyle(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"displayText",l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:248,a=s.useLayoutEffect;if(!n)throw Error("a unique id is required to use this hook");a(()=>{let e=document.querySelector("#".concat(n));if(e)throw Error("an element with id ".concat(n," already exists"))},[n]),a(()=>{if(!r.current)return;let s=document.createElement(r.current.localName||"span");s.id=n;let a=e.reduce((e,t)=>{var r,n;return(null===(r=t[i])||void 0===r?void 0:r.length)>(null===(n=e[i])||void 0===n?void 0:n.length)?t:e})[i];s.innerHTML=a;let o=t.split(" ");return o.forEach(e=>{s.classList.add(e)}),s.classList.add("invisible","absolute","top-[-300000px]"),document.body.prepend(s),r.current&&(r.current.style.width="".concat(Math.min(s.clientWidth+10,l-72),"px"),r.current.style.display="block",r.current.style.textAlign="left",r.current.style.whiteSpace="nowrap",r.current.style.overflow="hidden",r.current.style.textOverflow="ellipsis",r.current.style.textDecoration="none"),()=>{var e;null===(e=document.querySelector("#".concat(n)))||void 0===e||e.remove()}},[e,t,r.current,n])}var a=r(86010),o=r(85698),c=r(1543),u=r(94522),d=r(19265),f=r(75054);let Sort=e=>{var t;let{value:r,onSelect:d,disabled:f,options:p,...g}=e,h="text-inherit p-1 pr-[16px]",m=(0,s.useRef)(null);useSelectLabelWidthStyle(p.map(e=>e[1]),h,m,"sort_filter");let b=null===(t=p.find(e=>{let[t]=e;return t===r}))||void 0===t?void 0:t[1].displayText,{translatedWord:v}=(0,c.Z)(b||"");return(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("div",{...g,children:(0,n.jsx)(l.R,{value:r,onChange:e=>{d(e),u.O7.trackFilterEvent(u.fK.ChangeSortOrder,e)},children:e=>{let{open:t}=e;return(0,n.jsxs)("div",{className:"relative w-full text-black",children:[(0,n.jsxs)(l.R.Button,{"aria-disabled":f,className:(0,a.Z)((0,o.XU)({disabled:f})),children:[(0,n.jsx)("div",{ref:m,className:h,children:v}),(0,n.jsx)(i.gA,{className:(0,a.Z)((0,o.pl)(f),"w-3 h-3 m-1 ml-auto block","stroke-2 shrink-0 ease-in-out",t&&"rotate-180")})]}),(0,n.jsx)(l.R.Options,{className:"absolute z-30 shadow-menu theme-none text-black scrollbar-thin w-full m-0 p-0 overflow-auto bg-white max-h-60 ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm",children:p.map(e=>{let[t,i]=e;return(0,n.jsx)(l.R.Option,{value:t,className:(0,a.Z)("p-2 w-full hover:bg-grey-50 m-0 input-regular cursor-pointer",t===r&&"bg-brey-50",o.gu),children:i.displayText},t)})})]})}})})})};var p=r(9404),g=r(38208),h=r(83021),m=r(86215),b=r(54699),v=r(9933),y=r(66550),x=r(92289);let ObjectTypeFilter=e=>{let t,{state:r,filterKey:l,...c}
1=e,[u,d]=(0,s.useState)(!1),f=0;switch(r.status){case h.q.Error:t=(0,n.jsx)(n.Fragment,{children:"Error Happened"}),console.error("error:",h.q.Error);break;case h.q.Loading:t=(0,n.jsx)(n.Fragment,{children:"Wird geladen â¦"});break;case h.q.Idle:{let{dispatch:e}=r;f=r.options.filter(e=>e.isSelected.current).length,t=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"max-h-[220px] w-auto min-w-[278px] theme-none overflow-y-auto scrollbar-thin ",children:r.options.length?r.options.map(t=>{let{isSelected:{dirty:r,current:i}}=t;return(0,n.jsx)(s.Fragment,{children:(0,n.jsx)("button",{onClick:()=>e({type:"toggleSelection",objectType:t.objectType}),className:(0,a.Z)("p-2 w-full hover:bg-grey-50",o.gu),children:(0,n.jsx)(g.Z,{variant:"tertiary",className:" pointer-events-none !input-regular",label:t.objectType,checked:void 0===r?i:r,readOnly:!0,customLabelClass:"capitalize"})})},t.objectType)}):(0,n.jsx)("div",{className:"p-2 pt-4 text-center",children:"No object types have been found"})}),(0,n.jsxs)("div",{className:"flex flex-col items-center p-2 theme-none",children:[(0,n.jsx)(p.Z,{variant:"primary",size:"small",className:"w-full",onClick:()=>{d(!1),e({type:"apply",storeFn:l&&(0,y.Ee)(l)})},children:"Anwenden"}),(0,n.jsx)("button",{onClick:()=>{e({type:"cancel",storeFn:l&&(0,y.Ee)(l)}),e({type:"apply"})},className:"text-link-standalone text-[16px] my-2 mx-auto",children:"Zur\xfccksetzen"})]})]})}}let x=r.status===h.q.Disabled,j=(0,s.useRef)(null),S=(0,s.useRef)(null);return(0,b.Z)(j,2),(0,v.O)(S,()=>{r.status===h.q.Idle&&r.isDirty&&r.dispatch({type:"cancel",storeFn:l&&(0,y.Ee)(l)}),d(!1)},u),x?null:(0,n.jsx)("div",{...c,children:(0,n.jsx)(m.J,{className:"relative",children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:(0,a.Z)("w-full",x&&"pointer-events-none"),children:(0,n.jsxs)(m.J.Button,{disabled:x,as:"button",className:(0,a.Z)((0,o.XU)({disabled:x}),f&&"font-bold"),onMouseDown:()=>d(e=>!e),children:[(0,n.jsxs)("div",{ref:j,className:"input-regular text-inherit text-left",style:{padding:8},children:["Immobilientyp",f?"(".concat(f,")"):null]}),(0,n.jsx)(i.gA,{type:"solid",className:(0,a.Z)((0,o.pl)(x),"w-3 h-3 m-1 ml-auto block"," shrink-0 ease-in-out",u&&"rotate-180")})]})}),u?(0,n.jsx)(m.J.Panel,{ref:S,static:!0,className:"absolute z-30 shadow-menu text-black left-0 bg-white theme-baustolz",children:t}):null]})})})};var j=r(72870);r(33470);var S=r(94045);let ProductFilter=e=>{let{state:t,setValue:r,isDisabled:d,...f}=e,p="text-inherit shrink-0 p-1 pr-[16px]",g=(0,s.useRef)(null);useSelectLabelWidthStyle(t.options,p,g,"product_filter");let{translatedWord:h}=(0,c.Z)(t.active.displayText);return(0,n.jsx)("div",{...f,children:(0,n.jsx)(l.R,{value:t.active.value,onChange:e=>{r(e),j.O.trackFilterEvent(u.fK.ChangeProduct,e)},disabled:d,children:e=>{let{open:r}=e;return(0,n.jsxs)("div",{className:"relative text-black",children:[(0,n.jsxs)(l.R.Button,{className:(0,o.XU)({disabled:!!d}),children:[(0,n.jsx)("div",{ref:g,className:p,id:"product-option",children:h}),(0,n.jsx)(i.gA,{type:"solid",className:(0,a.Z)((0,o.pl)(d),"w-3 h-3 m-1 ml-auto block"," shrink-0 ease-in-out",r&&"rotate-180")})]}),(0,n.jsx)(l.R.Options,{className:"absolute z-30 shadow-menu w-full theme-none input-regular m-0 p-0 bg-white max-h-60 ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm",children:t.options.map(e=>{let r=e.value===t.active.value;return(0,n.jsx)(l.R.Option,{disabled:d,value:e.value,className:(0,a.Z)("p-2 w-full text-black hover:bg-grey-50 m-0 cursor-pointer",r&&"bg-brey-50",o.gu),children:e.displayText},e.value)})})]})}})})};var w=r(29722);r(2737);let RoomFilter=e=>{let{state:t,onApply:r,onCancel:l,onToggle:c,...u}=e,[d,f]=(0,s.useState)(!1),handleApply=()=>{f(!1),r()},h=(0,s.useRef)(null),y=(0,s.useRef)(null);(0,b.Z)(h,4);let handleCancel=()=>{l()};(0,v.O)(y,()=>{t.isDirty&&l(),f(!1)},d);let x=t.options.filter(e=>e.isSelected.current).length;return t.disabled?null:(0,n.jsx)("div",{...u,children:(0,n.jsx)(m.J,{className:"relative",children:e=>{let{open:r}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:t.disabled?"pointer-events-none":"",children:(0,n.jsxs)(m.J.Button,{disabled:t.disabled,as:"button",className:(0,a.Z)((0,o.XU)({disabled:t.disabled}),x&&!t.disabled&&"font-bold"),onMouseDown:()=>f(e=>!e),children:[(0,n.jsxs)("div",{ref:h,className:"text-left text-inherit",style:{padding:8},children:["Zimmer"," ",x&&!t.disabled?"(".concat(x,")"):null]}),(0,n.jsx)(i.gA,{className:(0,a.Z)((0,o.pl)(t.disabled),"w-3 h-3 m-1 ml-auto block","stroke-2 shrink-0 ease-in-out",r&&"rotate-180")}
1)]})}),d?(0,n.jsx)(m.J.Panel,{ref:y,static:!0,className:"absolute shadow-menu text-black z-30 left-0 bg-white",children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"max-h-[220px] w-full min-w-[278px] theme-none overflow-y-auto scrollbar-thin",children:t.options.map(e=>{let{isSelected:{dirty:t,current:r}}=e;return(0,n.jsx)(s.Fragment,{children:(0,n.jsx)("button",{onClick:()=>{c(e.value)},className:(0,a.Z)("p-2 w-full hover:bg-grey-50",o.gu),children:(0,n.jsx)(g.Z,{variant:"tertiary",className:"pointer-events-none !input-regular",label:"".concat(e.value," Zimmer"),checked:void 0===t?r:t,readOnly:!0})})},e.value)})}),(0,n.jsxs)("div",{className:"flex flex-col items-center p-2 theme-none",children:[(0,n.jsx)(p.Z,{variant:"primary",className:"w-full",size:"small",onClick:handleApply,children:"Anwenden"}),(0,n.jsx)("button",{onClick:handleCancel,className:"text-link-standalone text-[16px] my-2 mx-auto",children:"Zur\xfccksetzen"})]})]})}):null]})}})})};r(82189),r(87596);let StatusFilter=e=>{let{state:t,dispatch:r,...u}=e,d="text-inherit p-1 mr-[16px]",f=(0,s.useRef)(null);useSelectLabelWidthStyle(t.options,d,f,"status_filter");let{translatedWord:p}=(0,c.Z)(t.active.displayText);return t.disabled?null:(0,n.jsx)("div",{...u,children:(0,n.jsx)(l.R,{disabled:t.disabled,value:t.active.value,onChange:e=>r(e),children:e=>{let{open:r}=e;return(0,n.jsxs)("div",{className:"relative text-black",children:[(0,n.jsxs)(l.R.Button,{className:(0,o.XU)({disabled:t.disabled}),"aria-disabled":t.disabled,children:[(0,n.jsx)("div",{ref:f,className:(0,a.Z)(d),children:p}),(0,n.jsx)(i.v4,{className:(0,a.Z)((0,o.pl)(t.disabled),"w-3 h-3 m-1 ml-auto block","stroke-2 shrink-0 ease-in-out",r&&"rotate-180")})]}),(0,n.jsx)(l.R.Options,{className:"absolute z-30 shadow-menu w-full theme-none input-regular m-0 p-0 overflow-auto bg-white max-h-60 ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm",children:t.options.map(e=>{let r=e.value===t.active.value;return(0,n.jsx)(l.R.Option,{value:e.value,className:(0,a.Z)("p-2 w-full text-black hover:bg-grey-50 m-0 cursor-pointer",r&&"bg-brey-50",o.gu),children:e.displayText},e.value)})})]})}})})};var k=r(59965);r(80591);let F={projects:"Projekte",objects:"Immobilien"},DisplayModeToggle=e=>{let{state:t,onChange:r,...i}
1=e,[l,o]=(0,s.useState)("projects");(0,s.useEffect)(()=>{o(t.mode)},[t.mode]);let c="projects"===t.mode?0:1;return(0,n.jsx)("div",{...i,children:(0,n.jsx)(k.O.Group,{selectedIndex:c,onChange:e=>{r(0===e?"projects":"objects"),j.O.trackFilterEvent(u.fK.ChangeDisplayMode,0===e?"projects":"objects")},children:(0,n.jsx)(k.O.List,{className:(0,a.Z)("flex bg-dark-petrol-450 baustolz:bg-warm-gray-550 p-1 text-beige-300 baustolz:text-beige-900 rounded-[2px]"),children:Object.entries(F).map(e=>{let[r,i]=e;return(0,n.jsx)(k.O,{disabled:t.disabled,className:(0,a.Z)("py-1 px-[12px] input-regular",l===r&&"bg-beige-300 text-black baustolz:bg-beige-400 baustolz:text-black"," baustolz:text-beige-900","font-regular rounded-[2px]",l===r&&"disabled:bg-slate-400 disabled:text-dark-petrol-450 font-bold",l!==r&&"disabled:text-slate-400"),children:i},r)})})})})};r(47025)},22059:function(e,t,r){r.d(t,{W:function(){return fetchEntities}});var n=r(6827);let fetchElasticObjects=async e=>{var t,r,i,l;let{sort:s,filters:a,pagination:o}=e,c=await (l={filters:a,sort:s,pagination:o},n.MY.searchObjects({query:{bool:{filter:l.filters}},docvalue_fields:[],sort:l.sort||void 0,from:l.pagination.from||0,size:l.pagination.size,aggs:{projectIDs:{terms:{field:"estateProject.sid.keyword",size:500}}}})),u=Array.from(new Set(null==c?void 0:null===(r=c.hits)||void 0===r?void 0:null===(t=r.hits)||void 0===t?void 0:t.map(e=>{var t,r;return(null===(r=e._source)||void 0===r?void 0:null===(t=r.estateProject)||void 0===t?void 0:t.sid)||""}).filter(e=>e)));return{...c,projectIDs:u,allItemCount:(null==c?void 0:null===(i=c.hits)||void 0===i?void 0:i.total)&&"number"!=typeof c.hits.total?c.hits.total.value:0}};var i=r(24062);let fetchElasticProjects=async e=>{var t,r;let{sort:i,filters:l,pagination:s}=e,a=await (r={filters:l,sort:i,pagination:s},n.MY.searchProjects({query:{bool:{filter:r.filters}},docvalue_fields:[],sort:r.sort||void 0,from:r.pagination.from||0,size:r.pagination.size}));return a.hits.hits.map(e=>e._source),{...a,allItemCount:(null==a?void 0:null===(t=a.hits)||void 0===t?void 0:t.total)&&"number"!=typeof a.hits.total?a.hits.total.value:0}},fetchEntities=async e=>{let{displayMode:t,sort:r,filters:n,projectSID:l,page:s}=e,a=0,o=0;switch(t){case"objects":{a=1===s?i.ys.OBJECT.INITIAL:i.ys.OBJECT.ON_LOAD_MORE,o=1===s?0:i.ys.OBJECT.INITIAL+(s-2)*i.ys.OBJECT.ON_LOAD_MORE,l&&n.push({term:{"estateProject.sid.keyword":l.toLowerCase()}});let e=await fetchElasticObjects({filters:n,sort:r,pagination:{from:o,size:a}});return{mode:"objects",data:e}}case"projects":{a=1===s?i.ys.PROJECT.INITIAL:i.ys.PROJECT.ON_LOAD_MORE,o=1===s?0:i.ys.PROJECT.INITIAL+(s-2)*i.ys.PROJECT.ON_LOAD_MORE;let e=await fetchElasticProjects({filters:n,sort:r,pagination:{from:o,size:a}});return{mode:"projects",data:e}}}}},24062:function(e,t,r){var n,i,l,s,a,o;r.d(t,{ys:function(){return c}});let c={OBJECT:{INITIAL:30,ON_LOAD_MORE:30},PROJECT:{INITIAL:28,ON_LOAD_MORE:8}};(s=n||(n={})).Strenger="strenger",s.Baustolz="baustolz",s.Qualitatsmakler="qualitaetsmakler",(a=i||(i={})).PostingDate="post-date",a.Price="price",a.Size="size",(o=l||(l={})).Asc="asc",o.Desc="desc"},85698:function(e,t,r){r.d(t,{FF:function(){return sortRoomFilterSelectedOptions},FY:function(){return sortRegionFilterSelectedOptions},OT:function(){return sortObjectTypeFilterSelectedOptions},RM:function(){return haveOptionsSelected},Ul:function(){return toggleSelection},XR:function(){return makeDirtySelectionsActive},XU:function(){return filterButtonClasses},Y7:function(){return areOptionsDirty},ar:function(){return removeSelections},gu:function(){return i},pl:function(){return filterButtonSvgStrokeClasses}});var n=r(86010);let i=(0,n.Z)("relative","after:content-[''] after:absolute after:bottom-0 after:left-0 after:right-0","after:bg-grey-50","after:mx-2 after:h-[1px] after:z-30","last:after:hidden","before:content-[''] before:hidden hover:before:block before:absolute ","before:bg-grey-50","before:top-[-1px] before:left-0 before:right-0 before:h-[1px]"),filterButtonClasses=function(){let{disabled:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{disabled:!1};return(0,n.Z)(e&&"pointer-events-none",{"px-[12px] py-1 flex shrink-0 items-center w-full rounded-[2px] input-regular":!0,"bg-dark-petrol-450 baustolz:bg-warm-gray-550":!0,"focu
1s:outline focus:outline-1 focus:outline-offset-2 focus:outline-focus-outline-blue":!0,"text-beige-300 baustolz:text-beige-900":!e,"text-slate-400 baustolz:text-gray-200":e})},filterButtonSvgStrokeClasses=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(0,n.Z)({"fill-beige-300 baustolz:fill-beige-900":!e,"fill-slate-400 baustolz:fill-gray-200":e})};function removeSelections(e){return e.map(e=>({...e,isSelected:{...e.isSelected,dirty:!1}}))}function makeDirtySelectionsActive(e){return e.map(e=>({...e,isSelected:{current:void 0!==e.isSelected.dirty?e.isSelected.dirty:e.isSelected.current}}))}function toggleSelection(e){let t=void 0===e.isSelected.dirty?e.isSelected.current:e.isSelected.dirty;return{...e,isSelected:{...e.isSelected,dirty:!t}}}function areOptionsDirty(e){return e.some(e=>{let{isSelected:t}=e;return void 0!==t.dirty})}function haveOptionsSelected(e){return e.some(e=>{let{isSelected:t}=e;return t.dirty||t.current})}function sortByIsSelected(e,t){var r,n,i,l,s,a;let o=(null==e?void 0:null===(r=e.isSelected)||void 0===r?void 0:r.dirty)===void 0?null==e?void 0:null===(n=e.isSelected)||void 0===n?void 0:n.current:null==e?void 0:null===(i=e.isSelected)||void 0===i?void 0:i.dirty,c=(null==t?void 0:null===(l=t.isSelected)||void 0===l?void 0:l.dirty)===void 0?null==t?void 0:null===(s=t.isSelected)||void 0===s?void 0:s.current:null==t?void 0:null===(a=t.isSelected)||void 0===a?void 0:a.dirty;return o&&!c?-1:c&&!o?1:0}let l=/[^a-zA-Z]/g,s=/[^0-9]/g;function getAlphanumericSort(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value";return function(t,r){let n=t[e],i=r[e];if(n&&i){let e=n.replace(l,""),t=i.replace(l,"");if(e!==t)return e>t?1:-1;{let e=parseInt(n.replace(s,""),10),t=parseInt(i.replace(s,""),10);return e===t?0:e>t?1:-1}}return 0}}function sortSelectedOptions(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value",r=e.sort(sortByIsSelected),n=r.slice().reverse().findIndex(e=>{var t,r,n;return(null==e?void 0:null===(t=e.isSelected)||void 0===t?void 0:t.dirty)===void 0?null==e?void 0:null===(r=e.isSelected)||void 0===r?void 0:r.current:null==e?void 0:null===(n=e.isSelected)||void 0===n?void 0:n.dirty}),i=r.length-Math.max(n,0),l=r.slice(0,i).sort(getAlphanumericSort(t)),s=r.slice(i).sort(getAlphanumericSort(t));return l.concat(s)}function sortRegionFilterSelectedOptions(e){return sortSelectedOptions(e,"name")}function sortObjectTypeFilterSelectedOptions(e){return sortSelectedOptions(e,"objectType")}function sortRoomFilterSelectedOptions(e){return sortSelectedOptions(e)}},83200:function(e,t,r){r.d(t,{H:function(){return c},v:function(){return getKeyFactPriceKey}});var n=r(29944),i=r(4345),l=r(52825),s=r(17931),a=r(21673);let o=["Erdgeschosswohnung","Etagenwohnung","Dachgeschoss","Penthouse"],c={fromProjectData:e=>{try{var t;if(!(null==e?void 0:null===(t=e.estateProjectFacts)||void 0===t?void 0:t.length))return null;let r=e.estateProjectFacts.map(e=>({key:(null==e?void 0:e.keyText)||"",value:(null==e?void 0:e.valueText)||"",main:(null==e?void 0:e.main)||!1})),n=r.filter(e=>null==e?void 0:e.main),i=(null==n?void 0:n.length)===1;if(!i)return null;return{keyFacts:r}}catch(e){return null}},fromObjectData:e=>{let{numberOfRooms:t,livingArea:r,buyingPrice:n,parkingSpaces:s,floor:c,parkingSpacePrice:u,usableFrom:d,brand:f,houseType:p,rentExcludingBills:g,realEstateState:h}=e;try{let e=[createKeyFact("Zimmer",t)],m="buy";switch((null==f?void 0:f.slug)===l.s.Rental&&(m="rent"),m){case"buy":{let t="number"==typeof u?"".concat((0,i.T)(u)).concat("\xa0","â¬"):null,l=0===u,g=!!(p&&o.includes(p)),m=(null==f?void 0:f.id)===a.C.Baustolz?"Wohn-/Nutzfl\xe4che":"Wohnfl\xe4che";e.push(...[createKeyFact("Bezugsfertig",d),createKeyFact("Garage/Stellplatz",s),createKeyFact(m,"".concat(Math.round(Number(r||0))).concat("\xa0","m\xb2")),g?createFloorKeyfact(c):null,createKeyFact("Preis Garage/Stellplatz",l?"Inclusive":t),createKeyFact("Preis",getKeyFactPriceKey(h,n),{isMain:!0})]);break}case"rent":e.push(createKeyFact("Bezugsstatus",d),createKeyFact("Wohnfl\xe4che","".concat(Math.round(Number(r||0))).concat("\xa0","m\xb2")),createKeyFact("Kaltmiete",getKeyFactPriceKey(h,g),{isMain:!0}))}let b=e.filter(Boolean);return{keyFacts:b}}catch(e){return console.error(e),null}}},createKeyFact=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{isMain:!1};return t?{key:e,value:t,main:!!(null==r?void 0:r.isMain)}:null},createFloorKeyfact=e=>"number"!=typeof e?null:0===e?createKeyFact("Etage","Erdgeschoss"):createKeyFact("Etage","".concat(e,".")),getKeyFactPriceKey=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"â¬";return e===n.ZU.Reserved?s.I0:t&&0!==t?"".concat((0,i.T)(t||0)).concat("\xa0").concat(r):s.DP}},88331:function(e,t,r){var n=r(85893);r(67294);var i=r(74410),l=r(86010),s=r(9404),a=r(91371),o=r(83021),c=r(11163),u=r(74778),d=r(41664),f=r.n(d),p=r(50493),g=r(1404);let ObjectFactTable=e=>{let{objectFact:t}=e,r=Object.entries(t);return(0,n.jsx)("table",{className:"table-fixed baustolz:text-black",children:(0,n.jsx)("tbody",{children:r.map(e=>{let[t,r]=e;return(0,n.jsxs)("tr",{children:[(0,n.jsxs)("td",{className:"teaser-table-category w-[80px]",children:[t,":"]}),(0,n.jsx)("td",{className:"teaser-table-value ml-[8px] pl-[8px] wg-notranslate",children:r})]},t)})})})},TeaserImage=e=>{let{isMobile:t,href:r,alt:i,src:l,...s}=e;return t?(0,n.jsx)(f(),{href:r,children:(0,n.jsx)(p.Z,{src:l,alt:i,...s})}):(0,n.jsx)(p.Z,{src:l,alt:i,...s})};t.Z=e=>{let{variant:t="strenger",onsiteNoticeData:r,objectFact:d,headline:f,financialNotice:p,subheadline:h,id:m,image:b,objectDesignPetrolBW:v}=e,y={width:420.67,height:252},x=(0,c.useRouter)();x&&m&&x.prefetch("/objects/".concat(m));let j=(0,a.Z)(),S=j<o.U.md,{theme:w}=(0,u.F)(),k=(0,l.Z)({"theme-strenger":v||"strenger"===t||"mixed"===t,"theme-baustolz":!v&&"baustolz"===t,"h-full":!0});return(0,n.jsx)("div",{className:k,children:(0,n.jsxs)("div",{className:"shadow-sm h-full flex flex-col justify-between",children:[(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(TeaserImage,{src:null==b?void 0:b.src,alt:f,height:y.height,width:y.width,sizes:null==b?void 0:b.sizes,className:"object-cover w-full aspect-[420.67/252]",isMobile:S,href:"/objects/".concat(m)}),(0,n.jsx)("div",{className:"absolute bottom-0",children:"baustolz"===t&&"Strenger"===w&&!v&&(0,n.jsx)(i.GG,{className:"ml-2 ".concat(r?"mb-[52px]":"mb-2"),width:S?54:64,height:S?54:64})}),r||p?(0,n.jsx)("div",{className:"absolute right-0 bottom-[-22px]",children:(0,n.jsx)(g.Z,{onsiteNotice:r||void 0,financial:p?{content:p}:void 0})}):null]}),(0,n.jsxs)("div",{className:"p-2 bg-dark-petrol-450 flex flex-col justify-between baustolz:bg-warm-gray-550 h-full",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h5",{className:"text-h5 mb-0 ",children:(0,n.jsx)("span",{className:"inline-flex flex-nowrap baustolz:text-black text-beige-300 wg-notranslate",children:f})}),(0,n.jsx)("p",{className:"teaser-subheadline baustolz:text-black text-white",children:h}),(0,n.jsx)(ObjectFactTable,{objectFact:d})]}),(0,n.jsx)(s.Z,{asLink:!0,href:"/objects/".concat(m),variant:"primary",size:"small",className:"mt-3 w-full teaser-btn",children:"Zur Immobilie"})]})]})})}},24697:function(e,t,r){r.d(t,{N:function(){return p}});var n=r(85893),i=r(40758),l=r(4345),s=r(52044),a=r(51072),o=r(52825);r(67294);var c=r(74778),u=r(88331),d=r(83200),f=r(83148);let p={fromObjectArray:e=>e.map(e=>{var t,r;let n="buy";(null===(t=e.brand)||void 0===t?void 0:t.slug)===o.s.Rental&&(n="rent");let c={};switch(n){case"buy":c={Zimmer:(null==e?void 0:e.numberOfRooms)?String(Math.floor(e.numberOfRooms)):"",Wohnfläche:"".concat(e.livingArea," m\xb2"),Preis:(0,d.v)(e.realEstateState,e.buyingPrice)};break;case"rent":c={Zimmer:(null==e?void 0:e.numberOfRooms)?String(Math.floor(e.numberOfRooms)):"",Wohnfläche:"".concat(e.livingArea," m\xb2"),Mietpreis:(0,d.v)(e.realEstateState,e.rentExcludingBills),Zusatzkosten:"".concat((0,l.T)((null==e?void 0:e.extraCh
1arges)||0)," â¬")}}let u=null,p=null==e?void 0:e.estateProject;return p&&(u=i.Z.fromProjectData(p)),{headline:e.name||"",id:e.sid||"",onsiteNoticeData:u,image:(0,f.ht)(e),objectFact:c,variant:(0,s.Z)(null==e?void 0:null===(r=e.brand)||void 0===r?void 0:r.slug),subheadline:(0,a.a)((null==e?void 0:e.websiteContentHeadline)||"",180,{maxLengthIncludesDots:!0}),objectDesignPetrolBW:!!e.objectDesignPetrolBW}})};t.Z=e=>{let{items:t=[]}=e;return(0,c.F)("Strenger"),(0,n.jsx)("div",{className:"container py-5 ",children:(0,n.jsx)("div",{className:"grid grid-cols-8",children:(0,n.jsx)("div",{className:"col-span-full grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-y-3 md:gap-x-3 lg:gap-x-4",children:t.map((e,t)=>(0,n.jsx)(u.Z,{...e},t))})})})}},54699:function(e,t,r){r.d(t,{Z:function(){return useMultiSelectLabelWidthStyle}});var n=r(67294);function useMultiSelectLabelWidthStyle(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:17,r=n.useLayoutEffect;r(()=>{if(!e.current)return;let r=getElementFullWidth(e.current);e.current.style.width="".concat(r+t,"px")},[e.current])}let getElementFullWidth=e=>{let t=window.getComputedStyle(e),r=e.clientWidth,n=parseFloat(t.marginLeft)+parseFloat(t.marginRight),i=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),l=parseFloat(t.borderLeftWidth)+parseFloat(t.borderRightWidth);return r+n+i+l}},9933:function(e,t,r){r.d(t,{O:function(){return useOutsideClick}});var n=r(67294);function useOutsideClick(e,t){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2];(0,n.useEffect)(()=>{if(!r)return;let listener=r=>{let n=null==e?void 0:e.current;!n||n.contains(r.target)||t(r)};return document.addEventListener("mousedown",listener),document.addEventListener("touchstart",listener),()=>{document.removeEventListener("mousedown",listener),document.removeEventListener("touchstart",listener)}},[e,t,r])}},83303:function(e,t,r){r.d(t,{i:function(){return useUrlQuery}});let createQueryUpdaterFn=e=>(t,r)=>{let{asPath:n,query:i,pathname:l}=e,s=new URL(n,window.location.origin);void 0===r?s.searchParams.delete(t):s.searchParams.set(t,r);let a={...i};return s.searchParams.forEach((e,t)=>{a[t]=e}),e.push({pathname:l,query:a},void 0,{shallow:!0})};var n=r(11163),i=r(67294);let useUrlQuery=e=>{let t=(0,n.useRouter)(),r=(0,i.useCallback)(r=>createQueryUpdaterFn(t)(e,r),[e,t]),l=(0,i.useMemo)(()=>{let r=t.query[e];return r},[e,t.query]);return{updateQuery:r,queryValue:l}}},52825:function(e,t,r){var n,i,l,s;r.d(t,{s:function(){return n},x:function(){return i}}),(l=n||(n={})).Baustolz="baustolz",l.Strenger="strenger",l.Used="qualitaetsmakler",l.Rental="wohnstolz",(s=i||(i={})).Baustolz="baustolz",s.Strenger="strenger",s.Mixed="strenger-baustolz"},21673:function(e,t,r){var n,i;r.d(t,{C:function(){return n},x:function(){return getThemeByBrandID}}),(i=n||(n={}))[i.Strenger=1]="Strenger",i[i.Baustolz=2]="Baustolz",i[i.StrengerBaustolz=3]="StrengerBaustolz",i[i.QualitaetsMakler=4]="QualitaetsMakler";let getThemeByBrandID=e=>{switch(e){case 1:case 4:case 3:return"Strenger";case 2:return"Baustolz";default:return null}}},40758:function(e,t,r){r.d(t,{Z:function(){return i}});var n=r(30727);let i={fromProjectData:e=>{let t=null,{onsiteConsultingContent:r,onsiteConsultingDate:i,onsiteConsultingHeadline:l,onsiteConsultingNotice:s,title:a}=e;return r&&l&&i&&a&&(t={content:r,date:(0,n.p)(new Date(i),"."),notice:s||null,headline:l,subheadline:a}),t}}},72870:function(e,t,r){r.d(t,{O:function(){return l},a:function(){return i}});var n=r(30592);let GA_tracker=class GA_tracker{trackEvent(e,t){if("dataLayer"in window){var r,n;null===(r=window.dataLayer)||void 0===r||r.push({ecommerce:null}),null===(n=window.dataLayer)||void 0===n||n.push({event:e,ecommerce:t})}}constructor(){if("dataLayer"in window){var e;null===(e=window.dataLayer)||void 0===e||e.push({ecommerce:null})}}};let i=new class extends GA_tracker{parseConfiguratorToTrackingData(e){return{items_list_id:e.listId||"",items_list_name:e.listName||"",items:e.listItems.map((t,r)=>{var n,i;return{item_id:t.uuid,item_name:null!==(n=t.titleText)&&void 0!==n?n:t.name,price:null!==(i=t.price)&&void 0!==i?i:0,brand:e.objectSid,currency:"EUR",index:r,item_category:e.listName,items_list_id:e.listId,items_list_name:e.listName}})}}viewChoosables(e,t){let r=this.parseConfiguratorToTrackingData(t);this.trackEvent(e,r)}
1selectOrDeselectChoosable(e,t){var r;let n=this.parseConfiguratorToTrackingData(t),i={currency:"EUR",value:null===(r=n.items[0])||void 0===r?void 0:r.price,items:n.items};this.trackEvent(e,i)}beginCheckout(e,t){let r=e.map(e=>this.parseConfiguratorToTrackingData(e)),i=r.map(e=>e.items[0]);this.trackEvent(n.F.BeginCheckoutProcess,{currency:"EUR",value:t,items:i})}},l=new class extends GA_tracker{trackFilterEvent(e,t){this.trackEvent(e,{value:t})}}},94522:function(e,t,r){r.d(t,{Fk:function(){return l.F},fK:function(){return i},a2:function(){return s.a},O7:function(){return s.O}}),(n=i||(i={})).ChangeProduct="product_changed",n.ChangeDisplayMode="project_object_selection",n.ChangeSortOrder="sort_order_selection",n.FullFilter="filter_settings";var n,i,l=r(30592),s=r(72870)},30592:function(e,t,r){var n,i;r.d(t,{F:function(){return n}}),(i=n||(n={})).ViewConfiguratorChoosables="view_item_list",i.SelectConfiguratorChoosable="add_to_cart",i.DeselectConfiguratorChoosable="remove_from_cart",i.ViewConfiguratorChoosableDetails="view_item",i.BeginCheckoutProcess="begin_checkout"},6827:function(e,t,r){r.d(t,{MY:function(){return d},SS:function(){return fetchProjectsButtonData},oU:function(){return fetchProjectsOnsiteData}});var n,i,l=r(29061);(n=i||(i={})).EstateObject="prod-estate-object",n.EstateProject="prod-estate-project";var s=r(17931);let a="https://search.strenger.io",o="sw22-frontend-prod",c="7c8WLzYVZjqdCV6CUsBHhhkDqgR7mizM!!";if(!o||!c||!a)throw Error("ElasticSearch credentials are not set among the environment variables");let u=l.Z.create({baseURL:a,auth:{username:o,password:c}}),filterOutBannedObjects=e=>{var t,r,n;let i=null==e?void 0:null===(r=e.query)||void 0===r?void 0:null===(t=r.bool)||void 0===t?void 0:t.must_not,l=Array.isArray(i),a=[{terms:{sid:s.B8}}];return l&&a.push(...i),i&&!l&&a.push({...i}),{...e,query:{...null==e?void 0:e.query,bool:{...null==e?void 0:null===(n=e.query)||void 0===n?void 0:n.bool,must_not:a}}}},d={post:u.post,get:u.get,search:async e=>{let{index:t,body:r,config:n}=e,{data:l}=await u.post("/".concat(t,"/_search"),t===i.EstateObject?filterOutBannedObjects(r):r,n);return l},searchObjects:async(e,t)=>{let{data:r}=await u.post("/".concat(i.EstateObject,"/_search"),filterOutBannedObjects(e),t);return r},searchProjects:async(e,t)=>{let{data:r}=await u.post("/".concat(i.EstateProject,"/_search"),e,t);return r}};var f=r(82729),p=r(28687),g=r(80166),h=r(29944);function _templateObject(){let e=(0,f._)(["\n query ProjectsOnsiteData {\n estateProjectList {\n totalCount\n edges {\n node {\n sid\n onsiteConsultingDate\n onsiteConsultingNotice\n onsiteConsultingContent\n onsiteConsultingHeadline\n }\n }\n }\n }\n"]);return _templateObject=function(){return e},e}(0,p.gql)(_templateObject());let fetchProjectsOnsiteData=async()=>{try{let e=await (0,g.D)(),t=await e.request(h.Mk);return t.estateProjectList}catch(e){return console.error(e),null}},fetchProjectsButtonData=async()=>{try{var e;let t=await (0,g.D)(),r=await t.request("\n query ProjectsButtonData {\n estateProjectList(first: 500) {\n edges {\n node {\n sid\n buttonText\n buttonLink\n }\n }\n }\n }\n");if(!(null===(e=r.estateProjectList)||void 0===e?void 0:e.edges))return[];return r.estateProjectList.edges.flatMap(e=>(null==e?void 0:e.node)?[e.node]:[])}catch(e){return console.error("fetchProjectsButtonData error:",e),[]}}},80166:function(e,t,r){let n,i;r.d(t,{D:function(){return getAuthenticatedStrengerClient},I:function(){return client_getStrengerGQLClient}});var l=r(17931),s=r(28687),a=r(82729),o=r(29944),c=r(88767);function _templateObject(){let e=(0,a._)(["\n mutation createSession($input: SessionCreateInput!) {\n sessionCreate(input: $input) {\n token\n channel {\n id\n title\n }\n }\n }\n"]);return _templateObject=function(){return e},e}(0,s.gql)(_templateObject());let getSession=async()=>{try{let e=new c.QueryClient,{sessionCreate:t}=await e.fetchQuery("currentSession",async()=>await client_getStrengerGQLClient({withoutSession:!0}).request(o.gd,{input:{channelToken:l.zQ}}));if(!t)throw Error("Session can't be established");return t}catch(e){throw Error("Session can't be established")}},getToken=async()=>{try{{let e=sessionStorage.getItem("gql_token");e&&(n=e)}if(n)return n;let{token:e}=await getSession();sessionStorage.setItem("gql_token",e||""),n=e}catch(e){e instanceof Error&&console.error(e)}if(!n)throw Error("Could not fetch session token");return n},client_getStrengerGQLClient=function(){let e,{sessionToken:t,withoutSession:r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!t&&!r)throw Error("Either provide a sessionToken, or set the withoutSession flag to true");if(t&&r)throw Error("Either provide a sessionToken, or set the withoutSession. Do not provide both.");return t&&(e={"x-session-token":t}),new s.GraphQLClient(l.hW,{headers:e})},getAuthenticatedStrengerClient=async()=>
1{if(i)return i;try{let e=await getToken();if("string"!=typeof e)throw Error("Session token is missing or invalid");i=client_getStrengerGQLClient({sessionToken:e})}catch(e){console.log(e)}if(!i)throw Error("Could not get the client");return i}},73879:function(e,t,r){r.d(t,{Z:function(){return filterSelectedOptions}});function filterSelectedOptions(e){return e.filter(e=>e.isSelected.current)}},66550:function(e,t,r){r.d(t,{Ee:function(){return updateFilterValues},Ko:function(){return updateFilterStore},OK:function(){return i},if:function(){return getFilterValues}});var n,i,l=r(94522);(n=i||(i={})).Full="full-filter",n.Rental="rental-filter";let getFilterValues=e=>{try{let t=sessionStorage.getItem(e);return t?JSON.parse(t):null}catch(e){return null}};function updateFilterStore(e,t,r){let n=getFilterValues(e),i=null;return i=n?{...n,[t]:r}:{[t]:r},l.O7.trackFilterEvent(l.fK.FullFilter,i),sessionStorage.setItem(e,JSON.stringify(i))}function updateFilterValues(e){return(t,r)=>updateFilterStore(e,t,r)}},4345:function(e,t,r){r.d(t,{T:function(){return formatPrice}});let formatPrice=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:".";return t=t||",",String(e).replace(/\.\d+|\d(?=(?:\d{3})+(?!\d))/g,function(e){return 1==e.length?e+t:e})}},52044:function(e,t,r){r.d(t,{Z:function(){return getTeaserVariant}});function getTeaserVariant(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"strenger";return"baustolz"===e?"baustolz":"strenger"===e?"strenger":"mixed"}}}]);
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.