PageSourceSearch

https://chathome.lu/_next/static/chunks/30509-b0bfaf44fcf5aea4.js

js chathome.lu collected 2026-10-08 03:21:38 UTC 30,820 bytes, 11 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[30509],{16264:(e,t,r)=>{r.d(t,{R:()=>T});var n=r(54568),a=r(7620),o=r(92007),i=r(34041),s=r(7526),l=r(66748),c=r(26146),u=r(76913);let d=new Set(["LU","FR","BE","DE"]),p=new Set(["commune","country","national","macro_region","region"]),m=new Set(["property_type","existing_dwellings"]),h=/^\d{4}-Q[1-4]$/;function g(e){return null===e||"object"!=typeof e||Array.isArray(e)?null:e}function b(e){return"string"==typeof e&&e.trim().length>0}function v(e){if(!b(e))return!1;try{return"https:"===new URL(e).protocol}catch{return!1}}function f(e){return b(e)&&Number.isFinite(Date.parse(e))}function y(e){let t=g(e);if(!t||"official_public_data"!==t.source||"price_index"!==t.seriesKind||"sale"!==t.listingType||!d.has(t.country)||"apartment"!==t.propertyType&&"house"!==t.propertyType&&"all"!==t.propertyType||!p.has(String(t.geographyLevel??""))||!m.has(String(t.propertyScope??"")))return null;for(let e of["versionId","commune","communeSlug","geographyLabel","sourceLabel","sourceLicence","sourceAttribution","basePeriodLabel"])if(!b(t[e]))return null;if(!v(t.sourceUrl)||!v(t.sourceResourceUrl)||void 0!==t.sourceMethodologyUrl&&!v(t.sourceMethodologyUrl)||!f(t.uploadedAt)||void 0!==t.sourceUpdatedAt&&!f(t.sourceUpdatedAt))return null;let r=g(t.quarters);if(!r)return null;let n=Object.entries(r);if(0===n.length||n.some(([e,t])=>!h.test(e)||"number"!=typeof t||!Number.isFinite(t)||t<=0))return null;let a=t.windowStart,o=t.windowEnd;return(void 0!==a||void 0!==o)&&(!f(a)||!f(o)||Date.parse(a)>Date.parse(o))?null:void 0!==t.provisionalQuarters&&(!Array.isArray(t.provisionalQuarters)||t.provisionalQuarters.some(e=>"string"!=typeof e||!Object.prototype.hasOwnProperty.call(r,e)))?null:t}let x=e=>{let t=e.match(/^(\d{4})-Q([1-4])$/);return t?4*Number(t[1])+(Number(t[2])-1):null},S=e=>{let t=e.match(/^(\d{4})-Q[1-4]$/);return t?t[1]:null};var w=r(80647),k=r(85458),C=r(54097),A=r(2622),L=r(94633),z=r(83829),P=r(95364),j=r(34952),R=r(64318);let B=function(e){let t=e.trim().toLowerCase();return t?t.includes("apartment")||t.includes("studio")||t.includes("flat")||t.includes("maisonette")?"apartment":t.includes("house")||t.includes("maison")||t.includes("detached")||t.includes("terraced")||t.includes("bungalow")?"house":null:null},E={en:{scope:"{geography} \xb7 official existing-home index",nationwide:"whole country",infoBody:"Illustrative path: today's asking price is rebased with the named official source's transaction-price index for existing homes. It is not this property's price history or a valuation.",latestMarker:"Latest data",source:"Source",sourceDetails:"Source and method",provisional:"Latest point provisional",observationWindow:"Observation period",sourceUpdated:"Source updated"},fr:{scope:"{geography} \xb7 indice officiel des logements existants",nationwide:"pays entier",infoBody:"Trajectoire indicative : le prix demand\xe9 aujourd'hui est recal\xe9 avec l'indice des prix de transaction des logements existants publi\xe9 par la source officielle indiqu\xe9e. Il ne s'agit ni de l'historique du bien ni d'une estimation.",latestMarker:"Derni\xe8re donn\xe9e",source:"Source",sourceDetails:"Source et m\xe9thode",provisional:"Dernier point provisoire",observationWindow:"P\xe9riode observ\xe9e",sourceUpdated:"Source mise \xe0 jour"},de:{scope:"{geography} \xb7 amtlicher Bestandsimmobilienindex",nationwide:"landesweit",infoBody:"Illustrativer Verlauf: Der heutige Angebotspreis wird mit dem Transaktionspreisindex f\xfcr bestehende Wohnimmobilien der genannten amtlichen Quelle zur\xfcckgerechnet. Dies ist weder die Preishistorie dieser Immobilie noch eine Bewertung.",latestMarker:"Neuester Stand",source:"Quelle",sourceDetails:"Quelle und Methode",provisional:"Letzter Wert vorl\xe4ufig",observationWindow:"Beobachtungszeitraum",sourceUpdated:"Quelle aktualisiert"},lu:{scope:"{geography} \xb7 offiziellen Index fir bestoend Wunnengen",nationwide:"ganzt Land",infoBody:"Illustrative Verlaf: Den aktuelle Ufropr\xe4is g\xebtt mam Transaktiounspr\xe4isindex fir bestoend Wunnenge vun der genannter offizieller Quell zer\xe9ckgerechent. Dat ass weder d'Pr\xe4isgeschicht vun d\xebser Immobilie nach eng Bew\xe4ertung.",latestMarker:"Neiste Stand",source:"Quell",sourceDetails:"Quell a Method",provisional:"Lesc
1hte W\xe4ert provisoresch",observationWindow:"Observatiounsz\xe4itraum",sourceUpdated:"Quell aktualis\xe9iert"},pt:{scope:"{geography} \xb7 \xedndice oficial de habita\xe7\xe3o existente",nationwide:"todo o pa\xeds",infoBody:"Trajet\xf3ria ilustrativa: o pre\xe7o pedido hoje \xe9 recalculado com o \xedndice de pre\xe7os de transa\xe7\xe3o de habita\xe7\xe3o existente publicado pela fonte oficial indicada. N\xe3o \xe9 o hist\xf3rico de pre\xe7os deste im\xf3vel nem uma avalia\xe7\xe3o.",latestMarker:"Dados mais recentes",source:"Fonte",sourceDetails:"Fonte e m\xe9todo",provisional:"\xdaltimo ponto provis\xf3rio",observationWindow:"Per\xedodo observado",sourceUpdated:"Fonte atualizada"}},N={en:{FR:"France",DE:"Germany",BE:"Belgium",LU:"Luxembourg"},fr:{FR:"France",DE:"Allemagne",BE:"Belgique",LU:"Luxembourg"},de:{FR:"Frankreich",DE:"Deutschland",BE:"Belgien",LU:"Luxemburg"},lu:{FR:"Frankr\xe4ich",DE:"D\xe4itschland",BE:"Belsch",LU:"L\xebtzebuerg"},pt:{FR:"Fran\xe7a",DE:"Alemanha",BE:"B\xe9lgica",LU:"Luxemburgo"}};function T({price:e,commune:t,propertyType:r,listingType:d,copy:p,locale:m,country:h,presentation:g="default",frame:b,renderUnavailable:v}){let f=B(r),T=y((0,c.FV)(f?(0,u.ST)(t,f,h):"")),[D,F]=(0,a.useState)(T),[M,U]=(0,a.useState)(!1),[q,Q]=(0,a.useState)(!1),[I,W]=(0,a.useState)(!1),G=(0,a.useRef)(null),[H,$]=(0,a.useState)(0),O=(0,a.useRef)(null),_=(0,a.useCallback)(e=>{if(O.current?.disconnect(),O.current=null,!e||($(e.clientWidth),"undefined"==typeof ResizeObserver))return;let t=new ResizeObserver(e=>{let t=e[0]?.contentRect.width;"number"==typeof t&&t>0&&$(t)});t.observe(e),O.current=t},[]);(0,a.useEffect)(()=>{if(!I)return;let e=e=>{G.current&&!G.current.contains(e.target)&&W(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[I]);let K=e=>(0,l.vv)(e,{currency:"EUR",locale:m||void 0}),V=(0,a.useMemo)(()=>B(r),[r]),Z="buy"===d&&Number.isFinite(e)&&e>0&&t.trim().length>0;(0,a.useEffect)(()=>{if(!Z||!V||T)return;let e=!1;return(async()=>{U(!0),Q(!1);try{let r=await (0,s.ZS)(`/api/price-evolution/commune-data?commune=${encodeURIComponent(t)}&propertyType=${encodeURIComponent(V)}&country=${encodeURIComponent(h??"UNKNOWN")}`),n=await r.json().catch(()=>null);if(e)return;if(!r.ok){F(null),404!==r.status&&Q(!0);return}F(y(n))}catch{if(e)return;F(null),Q(!0)}finally{e||U(!1)}})(),()=>{e=!0}},[t,h,V,Z,T]);let Y=(0,a.useMemo)(()=>D?function(e,t){if("official_public_data"!==e.source||"price_index"!==e.seriesKind||!Number.isFinite(t)||t<=0)return null;let r=[];for(let[t,n]of Object.entries(e.quarters)){let e=x(t);if(null===e||!Number.isFinite(n)||n<=0)return null;r.push({quarter:t,index:e,value:n})}r.sort((e,t)=>e.index-t.index);let n=r.at(-1)?.value;return n?r.map((e,a)=>{let o=r[a-1]?.value;return{quarter:e.quarter,price:t*(e.value/n),changePct:o&&o>0?(e.value/o-1)*100:0}}):null}(D,e):null,[D,e]),J=(0,a.useMemo)(()=>Y?.length?Y.at(-1)?.quarter??null:null,[Y]),X=(0,a.useMemo)(()=>{let e;if(D?.seriesKind!=="price_index"||!D.country)return null;let{language:t,copy:r}={language:e=m.toLowerCase().split(/[-_]/)[0],copy:E[e]??E.en},n="national"===D.geographyLevel||"country"===D.geographyLevel?`${N[t]?.[D.country]??D.geographyLabel??D.country} (${r.nationwide})`:D.geographyLabel??N[t]?.[D.country]??D.country;return{labels:r,scope:r.scope.replace("{geography}",n),latestIsProvisional:D.provisionalQuarters?.includes(Y?.at(-1)?.quarter??"")??!1,sourceUrl:D.sourceUrl??null,sourceLabel:D.sourceLabel??D.country,observationWindow:D.windowStart&&D.windowEnd?`${D.windowStart} – ${D.windowEnd}`:`${Y?.at(0)?.quarter??""} – ${Y?.at(-1)?.quarter??""}`}},[Y,D,m]),ee="mobile"===g?66:90,et="mobile"===g?{top:10,right:8,left:0,bottom:8}:{top:10,right:24,left:8,bottom:12},er=(H>0?H:"mobile"===g?360:800)-ee-et.left-et.right,en=(0,a.useMemo)(()=>(function(e,t){let r=[],n=new Set;for(let t of e){let e=S(t);!e||n.has(e)||(n.add(e),r.push(t))}if(0===r.length)return[];let a=Math.max(1,Math.floor((Number.isFinite(t)?Math.max(0,t):0)/46)),o=Math.max(1,Math.ceil(r.length/a)),i=[];for(let e=r.length-1;e>=0;e-=o)i.push(r[e]);return i.reverse()})(Y?.map(e=>e.quarter)??[],er),[Y,er]);if(!Z)return null;let ea=e=>b?b(e):e,eo=e=>v?v(e):(0,n.jsx)("div",{className:"rounded-2xl border border-border/60 bg-card/70 p-4 text-sm text-muted-foreground",children:e});return V?M?b?(0,n.jsx)("div",{className:"h-14 animate-pulse rounded-2xl bg-muted/70","aria-label":p.loading}):(0,n.jsxs)("div",{className:"space-y-3 rounded-2xl border border-border/60 bg-card/70 p-4","aria-label":p.loading,children:[(0,n.jsx)("div",{className:"h-4 w-32 animate-pulse rounded bg-muted"}),(0,n.jsx)("div",{className:"h-[260px] animate-pulse rounded-xl bg-muted/70"})]}):q?ea((0,n.jsx)("div",{className:"rounded-2xl border border-border/60 bg-card/70 p-4 text-sm text-muted-foreground",children:p.genericError})):Y?.length&&X?ea((0,n.jsxs)("div",{className:"rounded-2xl border border-border/60 bg-card/70 p-4",children:[(0,n.jsx)("div",{className:"flex justify-end",children:(0,n.jsxs)("div",{ref:G,className:"relative inline-flex group",children:[(0,n.jsx)("button",{type:"button",onClick:e=>{e.preventDefault(),e.stopPropagation(),W(e=>!e)},className:"flex h-11 w-11 items-center justify-center rounded-full text-muted-foreground
1/70 transition-colors hover:bg-muted/60 hover:text-foreground cursor-pointer","aria-label":p.infoTitle,"aria-expanded":I,children:(0,n.jsx)(o.A,{className:"h-3.5 w-3.5"})}),(0,n.jsxs)("div",{className:`
2              absolute top-full right-0 mt-2 z-50
3              w-64 rounded-xl border border-border/60 bg-card/95 backdrop-blur-md
4              p-3 shadow-lg text-left
5              transition-all duration-150
6              ${I?"opacity-100 scale-100 pointer-events-auto":"opacity-0 scale-95 pointer-events-none"}
7              group-hover:opacity-100 group-hover:scale-100 group-hover:pointer-events-auto
8            `,role:"tooltip",children:[(0,n.jsx)("p",{className:"text-xs font-semibold text-foreground mb-1.5",children:p.infoTitle}),(0,n.jsx)("p",{className:"text-[11px] leading-relaxed text-muted-foreground",children:X.labels.infoBody}),X&&D?.caveat&&(0,n.jsx)("p",{className:"mt-2 text-[10px] leading-relaxed text-muted-foreground/80",children:D.caveat})]})]})}),(0,n.jsx)("div",{ref:_,className:(0,R.cn)("w-full","mobile"===g?"h-[260px] sm:h-[320px]":"h-[320px]"),children:(0,n.jsx)(w.u,{width:"100%",height:"100%",children:(0,n.jsxs)(k.Q,{data:Y,margin:et,children:[(0,n.jsx)("defs",{children:(0,n.jsxs)("linearGradient",{id:"historyFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,n.jsx)("stop",{offset:"0%",stopColor:"#3B82F6",stopOpacity:.35}),(0,n.jsx)("stop",{offset:"95%",stopColor:"#3B82F6",stopOpacity:.05})]})}),(0,n.jsx)(C.d,{strokeDasharray:"3 3",strokeOpacity:.25}),(0,n.jsx)(A.W,{dataKey:"quarter",ticks:en,interval:0,tickFormatter:e=>"string"==typeof e?e.slice(0,4):"",tickMargin:6,height:"mobile"===g?24:28,tick:{fontSize:"mobile"===g?10:11,fill:"var(--color-muted-foreground, #545454)"},tickLine:{stroke:"#94a3b8",strokeOpacity:.4},axisLine:{stroke:"#94a3b8",strokeOpacity:.3}}),(0,n.jsx)(L.h,{tickFormatter:e=>{let t;return t=Number(e),"mobile"===g?new Intl.NumberFormat(m||void 0,{style:"currency",currency:"EUR",notation:"compact",maximumFractionDigits:1}).format(t):K(t)},width:ee,tick:{fontSize:11,fill:"var(--color-muted-foreground, #545454)"},tickLine:{stroke:"#94a3b8",strokeOpacity:.4},axisLine:{stroke:"#94a3b8",strokeOpacity:.3}}),(0,n.jsx)(z.m,{content:({active:e,payload:t,label:r})=>{if(!e||!t?.length)return null;let a=t[0]?.payload;return a?(0,n.jsxs)("div",{className:"rounded-xl border border-border/60 bg-popover/95 px-3 py-2 text-xs text-popover-foreground shadow-md backdrop-blur-sm",children:[(0,n.jsx)("div",{className:"font-semibold",children:r}),(0,n.jsx)("div",{className:"mt-1",children:K(a.price)}),(0,n.jsxs)("div",{className:"text-muted-foreground",children:[p.tooltipChangeLabel,":"," ",a.changePct>=0?"+":"",a.changePct.toFixed(2),"%"]}),(0,n.jsx)("div",{className:"text-muted-foreground",children:p.tooltipHistoricalLabel})]}):null}}),J&&(0,n.jsx)(P.e,{x:J,stroke:"#64748B",strokeDasharray:"4 4",label:{value:X?.labels.latestMarker??p.markerNow,position:"insideTopRight",fill:"#64748B",fontSize:12}}),(0,n.jsx)(j.G,{type:"monotone",dataKey:"price",stroke:"#2563EB",fill:"url(#historyFill)",strokeWidth:2,connectNulls:!0,isAnimationActive:!1})]})})}),X&&(0,n.jsxs)("details",{className:"group mt-2 border-t border-border/50 text-[11px] text-muted-foreground",children:[(0,n.jsxs)("summary",{className:"flex min-h-11 cursor-pointer list-none items-center justify-between gap-3 font-medium transition-colors hover:text-foreground",children:[(0,n.jsx)("span",{children:X.labels.sourceDetails}),(0,n.jsx)(i.A,{className:"h-4 w-4 shrink-0 transition-transform group-open:rotate-180"})]}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 pb-2",children:[(0,n.jsx)("span",{children:X.scope}),(0,n.jsxs)("span",{children:[X.labels.observationWindow,":"," ",X.observationWindow]}),D?.sourceUpdatedAt&&(0,n.jsxs)("span",{children:[X.labels.sourceUpdated,":"," ",D.sourceUpdatedAt]}),D?.basePeriodLabel&&(0,n.jsx)("span",{children:D.basePeriodLabel}),X.latestIsProvisional&&(0,n.jsx)("span",{children:X.labels.provisional}),X.sourceUrl&&(0,n.jsxs)("a",{href:X.sourceUrl,target:"_blank",rel:"noreferrer",className:"inline-flex min-h-11 items-center font-medium text-foreground underline-offset-4 transition-colors hover:underline",children:[X.labels.source,":"," ",X.sourceLabel]}),D?.sourceLicence&&(0,n.jsxs)("span",{children:[D.sourceAttribution?`${D.sourceAttribution} \xb7 `:"",D.sourceLicence]})]})]})]})):eo(p.unavailableData):eo(p.unavailableType)}},31072:(e,t,r)=>{r.d(t,{ae:()=>m,hz:()=>i,iy:()=>l,rT:()=>s,ws:()=>p});var n=r(30828);let a=e=>e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),o=e=>"luxembourg"===e.slug?"Luxembourg":e.name.en,i=n.ALL_COMMUNES.map(o).sort((e,t)=>
8e.localeCompare(t,"en")),s=["Kirchberg","Bonnevoie","Belair","Limpertsberg","Merl","Hollerich","Gasperich","Cloche d'Or","Beggen","Cents"],l=[...i,...s],c=new Set(i),u=new Map;for(let e of n.ALL_COMMUNES){let t=o(e);for(let r of(u.set(a(e.slug),t),u.set(a(t),t),Object.values(e.name)))u.set(a(r),t)}let d=new Map;for(let e of s){let t=a(e);d.set(t,e),d.set(`luxembourg-${t}`,e)}function p(e){let t=e.trim();if(!t)return"";let r=d.get(a(t));if(r)return r;let o=(0,n.resolveLuxCityQuarterToParent)(t);return u.get(a(o))??o}function m(e){if("string"!=typeof e||!e.trim())return null;let t=p(e),r=(0,n.resolveLuxCityQuarterToParent)(t),o=u.get(a(r))??r;return c.has(o)?o:null}},62964:(e,t,r)=>{r.d(t,{PJ:()=>l,Y0:()=>c,Yj:()=>o,jx:()=>u,uV:()=>s,xi:()=>d});var n=r(54443);let a=e=>/^https?:\/\//i.test(e)?e:new URL(e,window.location.origin).toString(),o=async e=>{let t=a(e.url);if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(t);else{let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select();let r=document.execCommand("copy");if(e.remove(),!r)throw Error("clipboard_unavailable")}(0,n.s)(e.eventType,{...e.eventPayload,channel:"copy_link"})},i=async e=>{if(!e.imageUrl||"function"!=typeof navigator.canShare)return null;try{let t=await fetch(e.imageUrl);if(!t.ok)return null;let r=new File([await t.blob()],e.fileName??"chathome.png",{type:"image/png"});return navigator.canShare({files:[r]})?r:null}catch{return null}},s=async e=>{let t=a(e.url),r=await i(e);await navigator.share({title:e.title,text:e.text,url:t,...r?{files:[r]}:{}}),(0,n.s)(e.eventType,{...e.eventPayload,channel:r?"native_image":"native_link"})},l=async e=>"function"==typeof navigator.share?(await s(e),"native"):(await o(e),"copy_link"),c=e=>{let t=`${e.text}
9${a(e.url)}`;return`https://wa.me/?text=${encodeURIComponent(t)}`},u=e=>{(0,n.s)(e.eventType,{...e.eventPayload,channel:"whatsapp"}),window.open(c(e),"_blank","noopener,noreferrer")},d=e=>{let t=`${e.text}
10
11${a(e.url)}`;(0,n.s)(e.eventType,{...e.eventPayload,channel:"email"}),window.location.href=`mailto:?subject=${encodeURIComponent(e.title)}&body=${encodeURIComponent(t)}`}},70314:(e,t,r)=>{r.d(t,{B1:()=>a,MX:()=>i,fs:()=>o});let n={en:{save:"Save search",saved:"Search saved on this device",savedAccount:"Search saved to your account",removeSave:"Remove saved search",share:"Share search",copied:"Link copied",shareFailed:"Could not share this search",saveFailed:"Could not save this search",quotaReached:"You can save up to 20 searches. Remove one to add another.",sync:"Sync device saves to your account",syncDone:"Saved searches synced",marketPulse:"Market pulse",apartmentSale:"Apartment asking price",houseSale:"House asking price",apartmentRent:"Apartment asking rent",houseRent:"House asking rent",activeListings:"active listings",updated:"Updated",noPaidPlacement:"No paid placement",trustLead:"Ranked for fit, never payment.",whyResults:"Why these results?",trustBody:"Agencies cannot buy a higher position. Results reflect your criteria, listing quality and relevance.",rankingSignals:"See ranking signals",dataSources:"Data sources",mcpEyebrow:"A quieter way to search",mcpTitle:"Search Luxembourg homes from ChatGPT or Claude",mcpBody:"Bring live listings, market data and source context into the assistant you already use.",mcpCta:"See how it works",mcpAvailability:"Add the ChatHome connector from your assistant's integrations. Availability and menu names vary by client and plan.",mcpChatgptSetup:"Custom MCP apps require developer mode; availability depends on your ChatGPT plan and workspace permissions.",mcpClaudeSetup:"Add the remote connector under Customize → Connectors; organization owners may need to add it first.",mcpFooter:"Use in ChatGPT or Claude",close:"Dismiss",estimateBelow:"{percent}% below ChatHome estimate",estimateAbove:"{percent}% above ChatHome estimate",benchmarkBelow:"{percent}% below local benchmark",benchmarkAbove:"{percent}% above local benchmark",perSqmMonth:"/m\xb2/month",partnerEyebrow:"For two",partnerTitle:"Searching together?",partnerBody:"Send these homes to your partner — they open the exact same results on their phone.",partnerButton:"Send to my darling",partnerGreeting:"Darling \uD83D\uDC95 — I found this for us:",partnerCount:"{count} homes",partnerEdit:"Edit message",partnerSend:"Send",partnerCancel:"Cancel",partnerLinkNote:"The link to these homes is added automatically.",partnerQrTitle:"Send to my darling",partnerQrBody:"Scan the QR code with your phone — WhatsApp opens with your message ready to send."},fr:{save:"Enregistrer la recherche",saved:"Recherche enregistr\xe9e sur cet appareil",savedAccount:"Recherche enregistr\xe9e dans votre compte",removeSave:"Supprimer la recherche",share:"Partager la recherche",copied:"Lien copi\xe9",shareFailed:"Impossible de partager cette recherche",saveFailed:"Impossible d’enregistrer cette recherche",quotaReached:"Vous pouvez enregistrer jusqu’\xe0 20 recherches. Supprimez-en une pour en ajouter une autre.",sync:"Synchroniser avec votre compte",syncDone:"Recherches synchronis\xe9es",marketPulse:"Pouls du march\xe9",apartmentSale:"Prix demand\xe9 des appartements",houseSale:"Prix demand\xe9 des maisons",apartmentRent:"Loyer demand\xe9 des appartements",houseRent:"Loyer demand\xe9 des maisons",activeListings:"annonces actives",updated:"Mis \xe0 jour",noPaidPlacement:"Aucun placement payant",trustLead:"Class\xe9 par pertinence, jamais par paiement.",whyResults:"Pourquoi ces r\xe9sultats ?",trustBody:"Une agence ne peut pas acheter une meilleure position. Le classement refl\xe8te vos crit\xe8res, la qualit\xe9 et la pertinence.",rankingSignals:"Voir les crit\xe8res de classement",dataSources:"Sources des donn\xe9es",mcpEyebrow:"Une fa\xe7on plus simple de chercher",mcpTitle:"Cherchez des logements au Luxembourg depuis ChatGPT ou Claude",mcpBody:"Retrouvez les annonces, donn\xe9es de march\xe9 et sources dans l’assistant que vous utilisez d\xe9j\xe0.",mcpCta:"Voir comment",mcpAvailability:"Ajoutez le connecteur ChatHome depuis les int\xe9grations de votre assistant. La disponibilit\xe9 et les menus varient selon le client et l’offre.",mcpChatgptSetup:"Les apps MCP personnalis\xe9es exigent le mode d\xe9veloppeur ; leur disponibilit\xe9 d\xe9pend de l’offre ChatGPT et des droits de l’espace de travail.",mcpClaudeSetup:"Ajoutez le connecteur distant dans Personnaliser → Connecteurs ; le propri\xe9taire de l’organisation devra parfois l’ajouter d’abord.",mcpFooter:"Utiliser dans ChatGPT ou Claude",close:"Fermer",estimateBelow:"{percent} % sous l’estimation ChatHome",estimateAbove:"{percent} % au-dessus de l’estimation ChatHome",benchmarkBelow:"{percent} % sous la r\xe9f\xe9rence locale",benchmarkAbove:"{percent} % au-dessus de la r\xe9f\xe9rence locale",perSqmMonth:"/m\xb2/mois",partnerEyebrow:"\xc0 deux",partnerTitle:"Vous cherchez \xe0 deux ?",partnerBody:"Envoyez ces logements \xe0 votre partenaire — il ou elle retrouve exactement les m\xeames r\xe9sultats sur son t\xe9l\xe9phone.",partnerButton:"Envoyer \xe0 mon cœur",partnerGreeting:"Mon cœur \uD83D\uDC95 — j'ai trouv\xe9 \xe7a pour nous :",partnerCount:"{count} logements",partnerEdit:"Modifier le message",partnerSend:"Envoyer",partnerCancel:"Annuler",partnerLinkNote:"Le lien vers ces biens est ajout\xe9 automatiquement.",partnerQrTitle:"Envoyer \xe0 mon cœur",partnerQrBody:"Scannez le code QR avec votre t\xe9l\xe9phone — WhatsApp s’ouvre avec votre message pr\xeat \xe0 envoyer."}
11,de:{save:"Suche speichern",saved:"Suche auf diesem Ger\xe4t gespeichert",savedAccount:"Suche in Ihrem Konto gespeichert",removeSave:"Gespeicherte Suche entfernen",share:"Suche teilen",copied:"Link kopiert",shareFailed:"Diese Suche konnte nicht geteilt werden",saveFailed:"Diese Suche konnte nicht gespeichert werden",quotaReached:"Sie k\xf6nnen bis zu 20 Suchen speichern. Entfernen Sie eine, um eine weitere hinzuzuf\xfcgen.",sync:"Ger\xe4tesuchen mit dem Konto synchronisieren",syncDone:"Suchen synchronisiert",marketPulse:"Marktimpuls",apartmentSale:"Angebotspreis f\xfcr Wohnungen",houseSale:"Angebotspreis f\xfcr H\xe4user",apartmentRent:"Angebotsmiete f\xfcr Wohnungen",houseRent:"Angebotsmiete f\xfcr H\xe4user",activeListings:"aktive Anzeigen",updated:"Aktualisiert",noPaidPlacement:"Keine bezahlte Platzierung",trustLead:"Nach Passung sortiert, nie nach Zahlung.",whyResults:"Warum diese Ergebnisse?",trustBody:"Agenturen k\xf6nnen keine h\xf6here Position kaufen. Das Ranking folgt Ihren Kriterien, Qualit\xe4t und Relevanz.",rankingSignals:"Ranking-Signale ansehen",dataSources:"Datenquellen",mcpEyebrow:"Eine ruhigere Art zu suchen",mcpTitle:"Luxemburger Immobilien in ChatGPT oder Claude suchen",mcpBody:"Nutzen Sie Live-Angebote, Marktdaten und Quellen in Ihrem gewohnten Assistenten.",mcpCta:"So funktioniert es",mcpAvailability:"F\xfcgen Sie den ChatHome-Connector in den Integrationen Ihres Assistenten hinzu. Verf\xfcgbarkeit und Men\xfcnamen h\xe4ngen von Client und Tarif ab.",mcpChatgptSetup:"Benutzerdefinierte MCP-Apps ben\xf6tigen den Entwicklermodus; die Verf\xfcgbarkeit h\xe4ngt vom ChatGPT-Tarif und den Workspace-Rechten ab.",mcpClaudeSetup:"F\xfcgen Sie den Remote-Connector unter Anpassen → Connectors hinzu; Organisationsinhaber m\xfcssen ihn eventuell zuerst freigeben.",mcpFooter:"In ChatGPT oder Claude verwenden",close:"Schlie\xdfen",estimateBelow:"{percent} % unter ChatHome-Sch\xe4tzung",estimateAbove:"{percent} % \xfcber ChatHome-Sch\xe4tzung",benchmarkBelow:"{percent} % unter lokalem Vergleichswert",benchmarkAbove:"{percent} % \xfcber lokalem Vergleichswert",perSqmMonth:"/m\xb2/Monat",partnerEyebrow:"Zu zweit",partnerTitle:"Sucht ihr zusammen?",partnerBody:"Schick diese Immobilien an deinen Partner — er oder sie sieht genau dieselben Ergebnisse auf dem Handy.",partnerButton:"An meinen Schatz senden",partnerGreeting:"Schatz \uD83D\uDC95 — ich habe das f\xfcr uns gefunden:",partnerCount:"{count} Immobilien",partnerEdit:"Nachricht bearbeiten",partnerSend:"Senden",partnerCancel:"Abbrechen",partnerLinkNote:"Der Link zu diesen Immobilien wird automatisch hinzugef\xfcgt.",partnerQrTitle:"An meinen Schatz senden",partnerQrBody:"Scanne den QR-Code mit deinem Handy — WhatsApp \xf6ffnet sich mit deiner fertigen Nachricht."},lu:{save:"Sich sp\xe4icheren",saved:"Sich op d\xebsem Apparat gesp\xe4ichert",savedAccount:"Sich an \xc4rem Kont gesp\xe4ichert",removeSave:"Gesp\xe4ichert Sich l\xe4schen",share:"Sich deelen",copied:"Link kop\xe9iert",shareFailed:"D\xebs Sich konnt net gedeelt ginn",saveFailed:"D\xebs Sich konnt net gesp\xe4ichert ginn",quotaReached:"Dir k\xebnnt bis zu 20 Siche sp\xe4icheren. L\xe4scht eng, fir eng nei dob\xe4izesetzen.",sync:"Siche mam Kont synchronis\xe9ieren",syncDone:"Siche synchronis\xe9iert",marketPulse:"Maartimpuls",apartmentSale:"Ugebuedene Pr\xe4is fir Appartementer",houseSale:"Ugebuedene Pr\xe4is fir Haiser",apartmentRent:"Ugebuedene Loyer fir Appartementer",houseRent:"Ugebuedene Loyer fir Haiser",activeListings:"aktiv Annoncen",updated:"Aktualis\xe9iert",noPaidPlacement:"Keng bezuelte Platz\xe9ierung",trustLead:"No Passung klass\xe9iert, ni no Bezuelung.",whyResults:"Firwat d\xebs Resultater?",trustBody:"Agenc\xeb k\xebnne keng m\xe9i h\xe9ich Positioun kafen. D'Reiefolleg follegt \xc4re Krit\xe4ren, Qualit\xe9it a Relevanz.",rankingSignals:"Ranking-Signaler kucken",dataSources:"Donn\xe9e\xebquellen",mcpEyebrow:"Eng m\xe9i roueg Aart ze sichen",mcpTitle:"Sicht Wunnengen zu L\xebtzebuerg aus ChatGPT oder Claude",mcpBody:"Br\xe9ngt aktuell Annoncen, Maartdaten a Quellen an den Assistent, deen Dir scho benotzt.",mcpCta:"Kucke w\xe9i",mcpAvailability:"Setzt de ChatHome-Connector an den Integratioune vun \xc4rem Assistent dob\xe4i. Disponibilit\xe9it a Menue vari\xe9iere jee no Client an Abonnement.",mcpChatgptSetup:"Benotzerdefin\xe9iert MCP-Apps brauchen den Developermodus; d'Disponibilit\xe9it h\xe4nkt vum ChatGPT-Abonnement a Workspace-Rechter of.",mcpClaudeSetup:"Setzt de Remote-Connector \xebnner Customize → Connectors dob\xe4i; Organisatiounsbes\xebtzer mussen en eventuell fir d'\xe9ischt b\xe4isetzen.",mcpFooter:"A ChatGPT oder Claude benotzen",close:"Zoumaachen",estimateBelow:"{percent} % \xebnner der ChatHome-Sch\xe4tzung",estimateAbove:"{percent} % iwwer der ChatHome-Sch\xe4tzung",benchmarkBelow:"{percent} % \xebnner dem lokale Vergl\xe4ichsw\xe4ert",benchmarkAbove:"{percent} % iwwer dem lokale Vergl\xe4ichsw\xe4ert",perSqmMonth:"/m\xb2/Mount",partnerEyebrow:"Zu zwee",partnerTitle:"Sicht Dir zesummen?",partnerBody:"Sch\xe9ck d\xebs Wunnengen un \xc4re Partner — hien oder hatt ges\xe4it exakt d\xe9iselwecht Resultater um Handy.",partnerButton:"U m\xe4i Schatz sch\xe9cken",partnerGreeting:"M\xe4i Schatz \uD83D\uDC95 — ech hu
11nn dat fir eis fonnt:",partnerCount:"{count} Wunnengen",partnerEdit:"Message \xe4nneren",partnerSend:"Sch\xe9cken",partnerCancel:"Ofbriechen",partnerLinkNote:"De Link zu d\xebse Wunnengen g\xebtt automatesch dob\xe4igesat.",partnerQrTitle:"U m\xe4i Schatz sch\xe9cken",partnerQrBody:"Scann de QR-Code mat \xc4rem Handy — WhatsApp m\xe9cht sech mat \xc4rer f\xe4erdeger Message op."},pt:{save:"Guardar pesquisa",saved:"Pesquisa guardada neste dispositivo",savedAccount:"Pesquisa guardada na sua conta",removeSave:"Remover pesquisa guardada",share:"Partilhar pesquisa",copied:"Liga\xe7\xe3o copiada",shareFailed:"N\xe3o foi poss\xedvel partilhar esta pesquisa",saveFailed:"N\xe3o foi poss\xedvel guardar esta pesquisa",quotaReached:"Pode guardar at\xe9 20 pesquisas. Remova uma para adicionar outra.",sync:"Sincronizar pesquisas com a conta",syncDone:"Pesquisas sincronizadas",marketPulse:"Pulso do mercado",apartmentSale:"Pre\xe7o pedido por apartamentos",houseSale:"Pre\xe7o pedido por casas",apartmentRent:"Renda pedida por apartamentos",houseRent:"Renda pedida por casas",activeListings:"an\xfancios ativos",updated:"Atualizado",noPaidPlacement:"Sem posicionamento pago",trustLead:"Ordenado por relev\xe2ncia, nunca por pagamento.",whyResults:"Porqu\xea estes resultados?",trustBody:"As ag\xeancias n\xe3o podem comprar uma posi\xe7\xe3o superior. A ordem reflete os seus crit\xe9rios, qualidade e relev\xe2ncia.",rankingSignals:"Ver sinais de classifica\xe7\xe3o",dataSources:"Fontes de dados",mcpEyebrow:"Uma forma mais tranquila de pesquisar",mcpTitle:"Pesquise casas no Luxemburgo a partir do ChatGPT ou Claude",mcpBody:"Leve an\xfancios atuais, dados de mercado e fontes para o assistente que j\xe1 utiliza.",mcpCta:"Ver como funciona",mcpAvailability:"Adicione o conector ChatHome nas integra\xe7\xf5es do seu assistente. A disponibilidade e os nomes dos menus variam conforme o cliente e o plano.",mcpChatgptSetup:"As apps MCP personalizadas exigem o modo de programador; a disponibilidade depende do plano ChatGPT e das permiss\xf5es do espa\xe7o de trabalho.",mcpClaudeSetup:"Adicione o conector remoto em Personalizar → Conectores; os propriet\xe1rios da organiza\xe7\xe3o podem ter de o adicionar primeiro.",mcpFooter:"Usar no ChatGPT ou Claude",close:"Fechar",estimateBelow:"{percent}% abaixo da estimativa ChatHome",estimateAbove:"{percent}% acima da estimativa ChatHome",benchmarkBelow:"{percent}% abaixo da refer\xeancia local",benchmarkAbove:"{percent}% acima da refer\xeancia local",perSqmMonth:"/m\xb2/m\xeas",partnerEyebrow:"A dois",partnerTitle:"A procurar a dois?",partnerBody:"Envie estes im\xf3veis ao seu parceiro — ele ou ela abre exatamente os mesmos resultados no telem\xf3vel.",partnerButton:"Enviar ao meu amor",partnerGreeting:"Amor \uD83D\uDC95 — encontrei isto para n\xf3s:",partnerCount:"{count} im\xf3veis",partnerEdit:"Editar mensagem",partnerSend:"Enviar",partnerCancel:"Cancelar",partnerLinkNote:"A liga\xe7\xe3o para estes im\xf3veis \xe9 adicionada automaticamente.",partnerQrTitle:"Enviar ao meu amor",partnerQrBody:"Digitalize o c\xf3digo QR com o seu telem\xf3vel — o WhatsApp abre com a sua mensagem pronta a enviar."}},a=e=>n[e in n?e:"en"],o=(e,t,r)=>{let n=a(r),o=n.partnerCount.replace("{count}",String(t));return`${n.partnerGreeting} ${e} \xb7 ${o} \xb7 ${n.noPaidPlacement}`},i=(e,t)=>{let r=a(t);return("estimate"===e.basis?"below"===e.direction?r.estimateBelow:r.estimateAbove:"below"===e.direction?r.benchmarkBelow:r.benchmarkAbove).replace("{percent}",String(e.percent))}}}]);

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.