import{a2 as we,J as le,a3 as Ce,k as H,j as y,x as ye,d as J,p as u,c as f,a as n,u as t,t as d,i as M,F as w,r as O,g as $,n as T,b as j,e as xe,v as he,q as N,h as K,l as Pe,o as qe,a0 as ve,a1 as Oe,m as Te}from"./index-5N4i3DXm.js";import{u as ee}from"./useQuery-BGRzRMUd.js";import{u as ke}from"./ui-BK2ebVOe.js";import{n as $e,q as te,r as Ne,t as De,h as _e,O as Ve,u as Le,B as Ee,v as ue,D as Fe,f as z,w as Ke,j as F,x as Re,c as Ue,y as Be,z as Ae,A as Ie}from"./navigation-FgudCDOx.js";import{_ as A,N as se,L as Me,p as Ze,y as ae,x as je,v as ie,z as X,w as Ge,R as Qe,S as Je,q as Ye,s as He}from"./segments-BGrK94LB.js";import{_ as be}from"./FilterCheckbox.vue_vue_type_script_setup_true_lang-BDgap-1D.js";import{_ as Q}from"./Skeleton.vue_vue_type_script_setup_true_lang-D40n98Bo.js";import{X as W}from"./x-D-bWZBlt.js";import{_ as Xe}from"./SaleCard.vue_vue_type_script_setup_true_lang-DBWyDmNn.js";import{a as We,b as et,f as tt}from"./seo-BuHrFLDl.js";import"./utils-DclmTqRz.js";const ge=()=>({region:"",district:"",city:"",category:"",dispositions:[],ownership:"",condition:"",buildingType:"",sources:[],priceMin:null,priceMax:null,priceM2Min:null,priceM2Max:null,areaMin:null,areaMax:null,onlyPrivate:!1,onlyDiscounted:!1,q:""}),re=24,ot=["nove","cena","cena_desc","cena_m2","plocha","sleva"],Y=we("saleFilters",()=>{const c=Ce(ge()),h=H("nove"),a=H(1),l=y(()=>{const e=c;let s=0;return e.region&&s++,e.district&&s++,e.city&&s++,e.category&&s++,e.dispositions.length&&s++,e.ownership&&s++,e.condition&&s++,e.buildingType&&s++,e.sources.length&&s++,(e.priceMin!=null||e.priceMax!=null)&&s++,(e.priceM2Min!=null||e.priceM2Max!=null)&&s++,(e.areaMin!=null||e.areaMax!=null)&&s++,e.onlyPrivate&&s++,e.onlyDiscounted&&s++,e.q.trim()&&s++,s});function k(){Object.assign(c,ge()),h.value="nove",a.value=1}function C(){const e=c,s={};return e.region&&(s.kraj=e.region),e.district&&(s.okres=e.district),e.city&&(s.obec=e.city),e.category&&(s.kategorie=e.category),e.dispositions.length&&(s.dispozice=e.dispositions.join(",")),e.ownership&&(s.vlastnictvi=e.ownership),e.condition&&(s.stav=e.condition),e.buildingType&&(s.konstrukce=e.buildingType),e.sources.length&&(s.zdroj=e.sources.join(",")),e.priceMin!=null&&(s.cena_od=String(e.priceMin)),e.priceMax!=null&&(s.cena_do=String(e.priceMax)),e.priceM2Min!=null&&(s.cena_m2_od=String(e.priceM2Min)),e.priceM2Max!=null&&(s.cena_m2_do=String(e.priceM2Max)),e.areaMin!=null&&(s.plocha_od=String(e.areaMin)),e.areaMax!=null&&(s.plocha_do=String(e.areaMax)),e.onlyPrivate&&(s.soukromi="1"),e.onlyDiscounted&&(s.zlevnene="1"),e.q.trim()&&(s.q=e.q.trim()),h.value!=="nove"&&(s.razeni=h.value),s}function _(){const e=C();return a.value>1&&(e.strana=String(a.value)),e}function x(e){const s=b=>typeof e[b]=="string"?e[b]:"",m=b=>{const L=Number.parseInt(s(b),10);return Number.isFinite(L)?L:null},p=b=>s(b).split(",").map(L=>L.trim()).filter(Boolean);c.region=s("kraj"),c.district=s("okres"),c.city=s("obec"),c.category=s("kategorie"),c.dispositions=p("dispozice"),c.ownership=s("vlastnictvi"),c.condition=s("stav"),c.buildingType=s("konstrukce"),c.sources=p("zdroj"),c.priceMin=m("cena_od"),c.priceMax=m("cena_do"),c.priceM2Min=m("cena_m2_od"),c.priceM2Max=m("cena_m2_do"),c.areaMin=m("plocha_od"),c.areaMax=m("plocha_do"),c.onlyPrivate=s("soukromi")==="1",c.onlyDiscounted=s("zlevnene")==="1",c.q=s("q");const i=s("razeni");ot.includes(i)&&(h.value=i),a.value=m("strana")??1}const v=y(()=>{const e=c,s=[];return e.category&&s.push($e(e.category)),e.dispositions.length&&s.push(e.dispositions.map(te).join("/")),e.city?s.push(e.city):e.district?s.push(e.district):e.region&&s.push(e.region),e.priceMax!=null&&s.push(`do ${e.priceMax.toLocaleString("cs-CZ")} Kč`),e.q.trim()&&s.push(`„${e.q.trim()}"`),s}),P=H("");let D;le(()=>JSON.stringify([c,h.value]),e=>{clearTimeout(D),D=setTimeout(()=>{P.value!==e&&(a.value=1),P.value=e},250)},{immediate:!0});function V(e){const s=c.dispositions.indexOf(e);s>=0?c.dispositions.splice(s,1):c.dispositions.push(e)}function S(e){const s=c.sources.indexOf(e);s>=0?c.sources.splice(s,1):c.sources.push(e)}return{filters:c,sort:h,page:a,activeCount:l,summary:v,reset:k,toParams:C,toQuery:_,applyFromQuery:x,debouncedKey:P,toggleDisposition:V,toggleSource:S}});function nt(){const c=Y(),h=y(()=>({...c.toParams(),limit:String(re),offset:String((c.page-1)*re)}));return ee({queryKey:["sales",h],queryFn:()=>Ne(h.value),placeholderData:ye,staleTime:6e4})}function st(){const c=Y(),h=y(()=>c.toParams());return ee({queryKey:["saleFacets",h],queryFn:()=>De(h.value),placeholderData:ye,staleTime:6e4})}const lt={class:"w-[288px] shrink-0 space-y-5 rounded-2xl border border-border bg-surface-2/60 p-5"},at={class:"flex items-center justify-between"},it={key:0,class:"space-y-2.5"},rt={class:"space-y-2.5"},ut={key:0,class:"flex flex-wrap gap-1.5"},dt={class:"space-y-2.5 border-t border-border pt-5"},ct={class:"grid grid-cols-2 gap-1.5"},pt=["onClick"],mt={key:0,class:"space-y-2.5 border-t border-border pt-5"},ft={class:"flex flex-wrap gap-1.5"},vt=["onClick"],bt={class:"space-y-2.5 border-t border-border pt-5"},gt={class:"space-y-2.5 border-t border-border pt-5"},yt={class:"space-y-2.5 border-t border-border pt-5"},xt={class:"space-y-2.5 border-t border-border pt-5"},ht={class:"space-y-3 border-t border-border pt-5"},kt={class:"flex flex-wrap gap-1.5"},$t=["onClick"],Se=J({__name:"SaleFilterSidebar",props:{facets:{},loading:{type:Boolean},refreshing:{type:Boolean}},setup(c){const h=c,a=Y(),l=a.filters,k=[1e6,2e6,3e6,4e6,5e6,7e6,1e7,15e6],C=[3e4,5e4,75e3,1e5,125e3,15e4,2e5],_=[30,50,70,90,120,150,200,500,1e3],x=y(()=>{var m;const S=((m=h.facets)==null?void 0:m.category)??[],e=new Set(S.map(p=>p.value)),s=l.category&&!e.has(l.category)?[{value:l.category,count:0}]:[];return[...S,...s]}),v=y(()=>{var S;return(((S=h.facets)==null?void 0:S.district)??[]).slice(0,60)}),P=y(()=>{var e;const S=new Map((((e=h.facets)==null?void 0:e.disposition)??[]).map(s=>[s.value,s.count]));return Fe.filter(s=>S.has(s)||l.dispositions.includes(s)).map(s=>({value:s,count:S.get(s)??0}))}),D=y(()=>{var S;return((S=h.facets)==null?void 0:S.source)??[]}),V=(S,e)=>(S??[]).map(s=>({...s,label:e[s.value]??s.value}));return(S,e)=>{var s,m,p;return u(),f("aside",lt,[n("div",at,[e[18]||(e[18]=n("h2",{class:"text-[15px] font-semibold text-fg"},"Filtry",-1)),t(a).activeCount?(u(),f("button",{key:0,class:"text-[12px] font-medium text-primary hover:underline",onClick:e[0]||(e[0]=i=>t(a).reset())},"Zrušit ("+d(t(a).activeCount)+")",1)):M("",!0)]),c.loading?(u(),f("div",it,[(u(),f(w,null,O(8,i=>$(Q,{key:i,class:"h-10 rounded-lg"})),64))])):(u(),f("div",{key:1,class:T(["space-y-5 transition-opacity duration-200",c.refreshing?"opacity-60":"opacity-100"])},[n("section",rt,[e[19]||(e[19]=n("div",{class:"label-mono"},"Lokalita",-1)),t(l).region||t(l).district||t(l).city?(u(),f("div",ut,[t(l).region?(u(),f("button",{key:0,class:"inline-flex items-center gap-1 rounded-full bg-fg px-2.5 py-1.5 text-[12px] font-medium text-bg",onClick:e[1]||(e[1]=i=>t(l).region="")},[j(d(t(l).region)+" ",1),$(t(W),{class:"h-3 w-3"})])):M("",!0),t(l).district?(u(),f("button",{key:1,class:"inline-flex items-center gap-1 rounded-full bg-fg px-2.5 py-1.5 text-[12px] font-medium text-bg",onClick:e[2]||(e[2]=i=>t(l).district="")},[j(d(t(l).district)+" ",1),$(t(W),{class:"h-3 w-3"})])):M("",!0),t(l).city?(u(),f("button",{key:2,class:"inline-flex items-center gap-1 rounded-full bg-fg px-2.5 py-1.5 text-[12px] font-medium text-bg",onClick:e[3]||(e[3]=i=>t(l).city="")},[j(d(t(l).city)+" ",1),$(t(W),{class:"h-3 w-3"})])):M("",!0)])):M("",!0),$(A,{modelValue:t(l).region,"onUpdate:modelValue":e[4]||(e[4]=i=>t(l).region=i),options:((s=h.facets)==null?void 0:s.region)??[],placeholder:"+ Kraj"},null,8,["modelValue","options"]),$(A,{modelValue:t(l).district,"onUpdate:modelValue":e[5]||(e[5]=i=>t(l).district=i),options:v.value,placeholder:"+ Okres"},null,8,["modelValue","options"]),xe(n("input",{"onUpdate:modelValue":e[6]||(e[6]=i=>t(l).q=i),type:"search",placeholder:"Obec, ulice, text…",class:"h-10 w-full rounded-lg border border-border bg-surface px-3 text-[13px] text-fg outline-none transition-colors placeholder:text-fg-subtle hover:border-border-strong focus:border-primary"},null,512),[[he,t(l).q]])]),n("section",dt,[e[20]||(e[20]=n("div",{class:"label-mono"},"Typ nemovitosti",-1)),n("div",ct,[(u(!0),f(w,null,O(x.value,i=>(u(),f("button",{key:i.value,type:"button",class:T(["rounded-[7px] px-2.5 py-2.5 text-center text-[12px] transition-colors max-md:min-h-11",t(l).category===i.value?"bg-fg font-semibold text-bg":"border border-border bg-surface font-medium text-fg-muted hover:border-border-strong hover:text-fg"]),onClick:b=>t(l).category=t(l).category===i.value?"":i.value},d(t(_e)(i.value)),11,pt))),128))])]),P.value.length?(u(),f("section",mt,[e[21]||(e[21]=n("div",{class:"label-mono"},"Dispozice",-1)),n("div",ft,[(u(!0),f(w,null,O(P.value,i=>(u(),f("button",{key:i.value,type:"button",class:T(["rounded-full px-2.5 py-2 text-[12px] font-medium transition-colors max-md:min-h-11",t(l).dispositions.includes(i.value)?"bg-fg text-bg":"border border-border bg-surface-3 text-fg hover:border-border-strong"]),onClick:b=>t(a).toggleDisposition(i.value)},d(t(te)(i.value)),11,vt))),128))])])):M("",!0),n("section",bt,[e[22]||(e[22]=n("div",{class:"label-mono"},"Cena",-1)),$(se,{min:t(l).priceMin,"onUpdate:min":e[7]||(e[7]=i=>t(l).priceMin=i),max:t(l).priceMax,"onUpdate:max":e[8]||(e[8]=i=>t(l).priceMax=i),presets:k,slider:!1,unit:"Kč","placeholder-min":"Od (Kč)","placeholder-max":"Do (Kč)"},null,8,["min","max"]),$(be,{modelValue:t(l).onlyDiscounted,"onUpdate:modelValue":e[9]||(e[9]=i=>t(l).onlyDiscounted=i),label:"Jen zlevněné",hint:"Cena klesla od zveřejnění"},null,8,["modelValue"])]),n("section",gt,[e[23]||(e[23]=n("div",{class:"label-mono"},"Cena za m²",-1)),$(se,{min:t(l).priceM2Min,"onUpdate:min":e[10]||(e[10]=i=>t(l).priceM2Min=i),max:t(l).priceM2Max,"onUpdate:max":e[11]||(e[11]=i=>t(l).priceM2Max=i),presets:C,slider:!1,unit:"Kč/m²","placeholder-min":"Od","placeholder-max":"Do"},null,8,["min","max"])]),n("section",yt,[e[24]||(e[24]=n("div",{class:"label-mono"},"Plocha",-1)),$(se,{min:t(l).areaMin,"onUpdate:min":e[12]||(e[12]=i=>t(l).areaMin=i),max:t(l).areaMax,"onUpdate:max":e[13]||(e[13]=i=>t(l).areaMax=i),presets:_,slider:!1,unit:"m²","placeholder-min":"Od (m²)","placeholder-max":"Do (m²)"},null,8,["min","max"])]),n("section",xt,[e[25]||(e[25]=n("div",{class:"label-mono"},"Vlastnictví a stav",-1)),$(A,{modelValue:t(l).ownership,"onUpdate:modelValue":e[14]||(e[14]=i=>t(l).ownership=i),options:V((m=h.facets)==null?void 0:m.ownership,t(Ve)),placeholder:"Vlastnictví"},null,8,["modelValue","options"]),$(A,{modelValue:t(l).condition,"onUpdate:modelValue":e[15]||(e[15]=i=>t(l).condition=i),options:V((p=h.facets)==null?void 0:p.condition,t(Le)),placeholder:"Stav"},null,8,["modelValue","options"]),$(A,{modelValue:t(l).buildingType,"onUpdate:modelValue":e[16]||(e[16]=i=>t(l).buildingType=i),options:Object.entries(t(Ee)).map(([i,b])=>({value:i,label:b,count:0})),"show-count":!1,placeholder:"Konstrukce"},null,8,["modelValue","options"])]),n("section",ht,[e[26]||(e[26]=n("div",{class:"label-mono"},"Zdroj a prodejce",-1)),n("div",kt,[(u(!0),f(w,null,O(D.value,i=>(u(),f("button",{key:i.value,type:"button",class:T(["rounded-full px-2.5 py-2 text-[12px] font-medium transition-colors max-md:min-h-11",t(l).sources.includes(i.value)?"bg-fg text-bg":"border border-border bg-surface-3 text-fg hover:border-border-strong"]),onClick:b=>t(a).toggleSource(i.value)},d(t(ue)(i.value)),11,$t))),128))]),$(be,{modelValue:t(l).onlyPrivate,"onUpdate:modelValue":e[17]||(e[17]=i=>t(l).onlyPrivate=i),label:"Jen soukromí prodejci",hint:"Bez realitních kanceláří a developerů"},null,8,["modelValue"])])],2))])}}}),_t={class:"hide-scrollbar -mx-4 flex gap-2 overflow-x-auto px-4 pb-1"},Mt={key:0},jt={class:"mt-2.5 flex items-center justify-between"},St={class:"flex items-center gap-1.5 text-[12px] text-fg-muted"},zt={class:"num font-semibold text-fg"},wt=["value"],Ct=["value"],Pt={class:"px-1 pb-2"},I="shrink-0 whitespace-nowrap rounded-full px-3 py-2 text-[12px] font-medium transition-colors min-h-[36px]",Z="bg-fg text-bg font-semibold",G="border border-border bg-surface-3 text-fg",qt=J({__name:"SaleMobileFilterPanel",props:{facets:{},loading:{type:Boolean},refreshing:{type:Boolean},total:{},sorts:{}},setup(c){const h=c,a=ke(),l=Y(),k=l.filters,C=y(()=>h.total===1?"nabídka":h.total<5?"nabídky":"nabídek");return(_,x)=>(u(),f("div",null,[xe(n("input",{"onUpdate:modelValue":x[0]||(x[0]=v=>t(k).q=v),type:"search",placeholder:"Obec, ulice, text…",class:"mb-2.5 h-11 w-full rounded-[10px] border border-border-strong bg-surface-2 px-3 text-[14px] text-fg outline-none placeholder:text-fg-subtle focus:border-primary"},null,512),[[he,t(k).q]]),n("div",_t,[n("button",{type:"button",class:T([I,t(l).activeCount?Z:G]),onClick:x[1]||(x[1]=v=>t(a).mobileFiltersOpen=!0)},[x[9]||(x[9]=j("Filtry",-1)),t(l).activeCount?(u(),f("span",Mt,d(t(l).activeCount),1)):M("",!0)],2),n("button",{type:"button",class:T([I,t(k).category==="byt"?Z:G]),onClick:x[2]||(x[2]=v=>t(k).category=t(k).category==="byt"?"":"byt")},"Byty",2),n("button",{type:"button",class:T([I,t(k).category==="rodinny-dum"?Z:G]),onClick:x[3]||(x[3]=v=>t(k).category=t(k).category==="rodinny-dum"?"":"rodinny-dum")},"Domy",2),n("button",{type:"button",class:T([I,t(k).onlyDiscounted?Z:G]),onClick:x[4]||(x[4]=v=>t(k).onlyDiscounted=!t(k).onlyDiscounted)},"Zlevněné",2),n("button",{type:"button",class:T([I,t(k).onlyPrivate?Z:G]),onClick:x[5]||(x[5]=v=>t(k).onlyPrivate=!t(k).onlyPrivate)},"Soukromí",2)]),n("div",jt,[n("p",St,[c.refreshing?(u(),N(t(Me),{key:0,class:"h-3.5 w-3.5 animate-spin text-fg-subtle"})):M("",!0),n("span",null,[n("b",zt,d(t(z)(c.total)),1),j(" "+d(C.value),1)])]),n("select",{value:t(l).sort,class:"h-9 rounded-lg border-0 bg-transparent pr-6 text-right text-[12px] font-semibold text-primary outline-none",onChange:x[6]||(x[6]=v=>t(l).sort=v.target.value)},[(u(!0),f(w,null,O(c.sorts,v=>(u(),f("option",{key:v.value,value:v.value},d(v.label),9,Ct))),128))],40,wt)]),$(Ze,{open:t(a).mobileFiltersOpen,side:"bottom",title:"Filtry","onUpdate:open":x[8]||(x[8]=v=>t(a).mobileFiltersOpen=v)},{footer:K(()=>[n("button",{type:"button",class:"w-full rounded-[11px] bg-primary py-3.5 text-[15px] font-semibold text-primary-fg",onClick:x[7]||(x[7]=v=>t(a).mobileFiltersOpen=!1)}," Zobrazit "+d(t(z)(c.total))+" "+d(C.value),1)]),default:K(()=>[n("div",Pt,[$(Se,{facets:h.facets,loading:c.loading,class:"!w-full !border-0 !bg-transparent !p-4"},null,8,["facets","loading"])])]),_:1},8,["open"])]))}}),Ot=["href"],Tt={class:"relative h-[92px] w-[124px] shrink-0 overflow-hidden rounded-lg bg-surface-2"},Nt=["src","alt"],Dt={class:"absolute left-1.5 top-1.5 rounded-[4px] bg-fg/85 px-1.5 py-1 font-mono text-[9px] font-medium uppercase tracking-[0.08em] text-bg"},Vt={key:1,class:"absolute bottom-1.5 left-1.5 rounded-[4px] bg-success px-1.5 py-0.5 font-mono text-[9px] font-semibold text-white"},Lt={class:"flex min-w-0 flex-1 flex-col"},Et={class:"line-clamp-2 text-[14px] font-semibold leading-[1.3] text-fg"},Ft={class:"mt-0.5 truncate text-[12px] text-fg-muted"},Kt={class:"mt-auto flex items-end justify-between gap-2 pt-1"},Rt={class:"num text-[16px] font-semibold leading-none text-fg"},Ut={class:"mt-1 text-[11px] text-fg-subtle"},Bt={key:0},At={key:1},It={key:2,class:"num"},Zt={class:"font-mono text-[10px] text-fg-subtle"},Gt=J({__name:"SaleRowCard",props:{sale:{}},setup(c){const h=c,a=y(()=>h.sale),l=y(()=>[a.value.cityPart&&a.value.cityPart!==a.value.city?a.value.cityPart:"",a.value.city].filter(Boolean).join(", ")),k=y(()=>a.value.floorAreaM2??a.value.landAreaM2);return(C,_)=>(u(),f("a",{href:t(Ke)(a.value),class:"flex gap-3 overflow-hidden rounded-xl border border-border bg-surface p-2.5 text-inherit no-underline"},[n("div",Tt,[a.value.image?(u(),f("img",{key:0,src:a.value.image,alt:a.value.title,loading:"lazy",class:"h-full w-full object-cover"},null,8,Nt)):M("",!0),n("span",Dt,d(t(_e)(a.value.category)),1),a.value.discount&&a.value.discount>0?(u(),f("span",Vt,"−"+d(Math.round(a.value.discount*100))+" %",1)):M("",!0)]),n("div",Lt,[n("h3",Et,d(a.value.title||"Bez názvu"),1),n("p",Ft,d(l.value||"lokalita neurčena"),1),n("div",Kt,[n("div",null,[n("div",Rt,d(a.value.price!=null?t(F)(a.value.price):a.value.priceNote||"cena v RK"),1),n("div",Ut,[a.value.disposition?(u(),f("span",Bt,d(t(te)(a.value.disposition))+" · ",1)):M("",!0),k.value?(u(),f("span",At,d(Math.round(k.value))+" m² · ",1)):M("",!0),a.value.pricePerM2?(u(),f("span",It,d(t(F)(a.value.pricePerM2))+"/m²",1)):M("",!0)])]),n("span",Zt,d(t(ue)(a.value.source)),1)])])],8,Ot))}}),Qt={key:0,class:"mt-10 space-y-8 border-t border-border pt-8"},Jt={class:"grid gap-6 lg:grid-cols-[1.2fr_1fr]"},Yt={class:"space-y-3 text-[15px] leading-relaxed text-fg"},Ht={class:"text-[20px] font-semibold tracking-[-0.01em] text-fg"},Xt={key:0},Wt={key:1},eo={class:"grid grid-cols-2 gap-px overflow-hidden rounded-xl border border-border bg-border self-start"},to={class:"bg-surface px-4 py-3.5"},oo={class:"num text-[22px] font-semibold text-fg"},no={class:"bg-surface px-4 py-3.5"},so={class:"num text-[22px] font-semibold text-fg"},lo={class:"bg-surface px-4 py-3.5"},ao={class:"num text-[22px] font-semibold text-fg"},io={class:"bg-surface px-4 py-3.5"},ro={class:"num text-[15px] font-semibold text-fg"},uo={class:"mt-3 grid gap-3 md:grid-cols-2"},co={class:"text-[14px] font-semibold text-fg"},po={class:"mt-1.5 text-[13px] leading-relaxed text-fg-muted"},mo={class:"grid gap-6 md:grid-cols-3"},fo={class:"label-mono mb-2.5"},vo={class:"flex flex-wrap gap-1.5"},bo={class:"label-mono mb-2.5"},go={class:"flex flex-wrap gap-1.5"},yo={key:0},xo={class:"label-mono mb-2.5"},ho={class:"flex flex-wrap gap-1.5"},ko=J({__name:"SaleSegmentIntro",props:{categorySlug:{},regionSlug:{},citySlug:{},total:{}},setup(c,{expose:h}){const a=c,l=y(()=>ae[a.categorySlug]),k=y(()=>{var m;return a.regionSlug?ie[a.regionSlug]:a.citySlug?(m=X[a.citySlug])==null?void 0:m.region:""}),C=y(()=>a.citySlug?X[a.citySlug]:void 0),_=y(()=>C.value?C.value.locative:k.value?je[k.value]??k.value:"v celé České republice"),x=y(()=>{var p;const m={kategorie:((p=l.value)==null?void 0:p.filter)??""};return k.value&&(m.kraj=k.value),m}),{data:v}=ee({queryKey:["segmentStats",x],queryFn:()=>Re(x.value),staleTime:10*6e4,enabled:y(()=>!!l.value)}),P=y(()=>{var m,p;return((m=l.value)==null?void 0:m.filter)==="pozemek"||((p=l.value)==null?void 0:p.filter)==="stavebni-pozemek"?"za m² pozemku":"za m² užitné plochy"}),D=y(()=>{var b;const m=((b=l.value)==null?void 0:b.genitiv)??"nemovitostí",p=v.value;return[{q:`Kolik stojí ${m==="bytů"?"byt":m==="rodinných domů"?"rodinný dům":m} ${_.value}?`,a:p&&p.count>=8?`Medián nabídkové ceny ${m} ${_.value} je ${F(p.medianPrice)}, medián ceny ${P.value} ${F(p.medianM2)}. Polovina nabídek leží mezi ${z(p.p25M2)} a ${z(p.p75M2)} Kč/m². Počítáme z ${z(p.count)} aktuálních nabídek, čísla se mění každý den.`:`Aktuální nabídky ${m} ${_.value} s cenou za m² najdete v katalogu výše. Medián ukazujeme, jakmile je v lokalitě aspoň osm srovnatelných nabídek.`},{q:"Odkud nabídky pocházejí?",a:"Sbíráme inzeráty z více realitních portálů (bezrealitky.cz, reality.idnes.cz, bazos.cz) a stejnou nemovitost nabízenou na více místech ukazujeme jednou. Kontakt na prodejce a prohlídku řešíte na původním portálu, na který z detailu odkazujeme."},{q:'Co znamená „pod mediánem" u nabídky?',a:"Cenu za m² každé nabídky srovnáváme s prostřední hodnotou stejného typu nemovitosti ve stejném okrese (při málo datech v kraji). Nabídka výrazně pod mediánem může být příležitost nebo mít skrytý důvod (družstevní podíl, přízemí, břemeno). Nabídka výrazně nad mediánem má prostor k jednání."},{q:`Draží se ${_.value} také ${m}?`,a:'Ano, vedle inzerátů sledujeme i exekuční a dobrovolné dražby. Na detailu každé nabídky je sekce „Dražby v okolí" a samostatný katalog dražeb s rozborem dražební vyhlášky a upozorněním na rizika.'}]});h({faq:D});const V=y(()=>Object.entries(ie).filter(([m])=>m!==a.regionSlug).map(([m,p])=>({to:`/prodej/${a.categorySlug}/${m}`,label:p}))),S=y(()=>Object.entries(ae).filter(([m])=>m!==a.categorySlug).map(([m,p])=>({to:a.citySlug?`/prodej/${m}/mesto/${a.citySlug}`:a.regionSlug?`/prodej/${m}/${a.regionSlug}`:`/prodej/${m}`,label:p.name}))),e=y(()=>Object.entries(X).filter(([m,p])=>m!==a.citySlug&&(!k.value||p.region===k.value)).slice(0,12).map(([m,p])=>({to:`/prodej/${a.categorySlug}/mesto/${m}`,label:p.name}))),s=y(()=>{var p;const m=(p=Object.entries(Ge).find(([,i])=>{var b;return i.filter===((b=l.value)==null?void 0:b.filter)}))==null?void 0:p[0];return m?a.regionSlug?`/drazby/${m}/${a.regionSlug}`:`/drazby/${m}`:"/drazby"});return(m,p)=>{const i=Pe("RouterLink");return l.value?(u(),f("section",Qt,[n("div",Jt,[n("div",Yt,[n("h2",Ht,d(l.value.name)+" "+d(_.value)+": co říkají čísla",1),t(v)&&t(v).count>=8?(u(),f("p",Xt,[p[0]||(p[0]=j(" V nabídce je právě ",-1)),n("b",null,d(t(z)(c.total)),1),j(" "+d(l.value.genitiv)+" "+d(_.value)+". Medián nabídkové ceny je ",1),n("b",null,d(t(F)(t(v).medianPrice)),1),j(", medián ceny "+d(P.value)+" ",1),n("b",null,d(t(F)(t(v).medianM2)),1),j(". Levnější čtvrtina nabídek začíná pod "+d(t(z)(t(v).p25M2))+" Kč/m², dražší čtvrtina nad "+d(t(z)(t(v).p75M2))+" Kč/m². Čísla počítáme z aktuálních inzerátů a aktualizujeme několikrát denně. ",1)])):(u(),f("p",Wt,[p[1]||(p[1]=j(" V nabídce je právě ",-1)),n("b",null,d(t(z)(c.total)),1),j(" "+d(l.value.genitiv)+" "+d(_.value)+". Medián ceny za m² ukážeme, jakmile bude v lokalitě aspoň osm srovnatelných nabídek; u každé nabídky ale cenu za m² vidíte už teď. ",1)])),n("p",null,[p[2]||(p[2]=j(" Nabídkové ceny nejsou prodejní ceny. Skutečně zaplacené částky bývají o 3 až 8 % nižší a u dlouho visících inzerátů i více. Proto u každé nabídky sledujeme historii ceny a vedle inzerátů zobrazujeme i ",-1)),$(i,{to:s.value,class:"font-medium text-primary hover:underline"},{default:K(()=>[j("dražby "+d(l.value.genitiv)+" "+d(_.value),1)]),_:1},8,["to"]),p[3]||(p[3]=j(", kde je dosažená cena veřejná. ",-1))])]),n("div",eo,[n("div",to,[p[4]||(p[4]=n("div",{class:"label-mono mb-1.5"},"Nabídek",-1)),n("div",oo,d(t(z)(c.total)),1)]),n("div",no,[p[5]||(p[5]=n("div",{class:"label-mono mb-1.5"},"Medián ceny",-1)),n("div",so,d(t(v)&&t(v).count>=8?t(F)(t(v).medianPrice):"-"),1)]),n("div",lo,[p[6]||(p[6]=n("div",{class:"label-mono mb-1.5"},"Medián Kč/m²",-1)),n("div",ao,d(t(v)&&t(v).count>=8?t(z)(t(v).medianM2):"-"),1)]),n("div",io,[p[7]||(p[7]=n("div",{class:"label-mono mb-1.5"},"P25 až P75 Kč/m²",-1)),n("div",ro,d(t(v)&&t(v).count>=8?`${t(z)(t(v).p25M2)} až ${t(z)(t(v).p75M2)}`:"-"),1)])])]),n("div",null,[p[8]||(p[8]=n("h2",{class:"text-[18px] font-semibold text-fg"},"Časté otázky",-1)),n("div",uo,[(u(!0),f(w,null,O(D.value,b=>(u(),f("div",{key:b.q,class:"panel p-4"},[n("h3",co,d(b.q),1),n("p",po,d(b.a),1)]))),128))])]),n("div",mo,[n("div",null,[n("div",fo,"Další typy "+d(_.value),1),n("div",vo,[(u(!0),f(w,null,O(S.value,b=>(u(),N(i,{key:b.to,to:b.to,class:"rounded-full border border-border bg-surface px-3 py-1.5 text-[12px] font-medium text-fg-muted transition-colors hover:border-fg hover:text-fg"},{default:K(()=>[j(d(b.label),1)]),_:2},1032,["to"]))),128))])]),n("div",null,[n("div",bo,d(l.value.name)+" podle kraje",1),n("div",go,[(u(!0),f(w,null,O(V.value,b=>(u(),N(i,{key:b.to,to:b.to,class:"rounded-full border border-border bg-surface px-3 py-1.5 text-[12px] font-medium text-fg-muted transition-colors hover:border-fg hover:text-fg"},{default:K(()=>[j(d(b.label),1)]),_:2},1032,["to"]))),128))])]),e.value.length?(u(),f("div",yo,[n("div",xo,d(l.value.name)+" podle města",1),n("div",ho,[(u(!0),f(w,null,O(e.value,b=>(u(),N(i,{key:b.to,to:b.to,class:"rounded-full border border-border bg-surface px-3 py-1.5 text-[12px] font-medium text-fg-muted transition-colors hover:border-fg hover:text-fg"},{default:K(()=>[j(d(b.label),1)]),_:2},1032,["to"]))),128))])])):M("",!0)])])):M("",!0)}}}),$o={class:"mx-auto max-w-[1440px] px-4 pb-10 pt-4 sm:px-6 lg:px-8"},_o={class:"flex items-start gap-8"},Mo={class:"min-w-0 flex-1"},jo={class:"mb-4 flex flex-wrap items-end justify-between gap-3"},So={class:"text-[22px] font-semibold leading-tight tracking-[-0.015em] text-fg sm:text-[24px]"},zo={class:"mt-1 hidden text-[13px] text-fg-muted xl:block"},wo={class:"num font-semibold text-fg"},Co={key:1},Po={key:2},qo={class:"hidden items-center gap-2 rounded-lg border border-border px-3 py-2 text-[12px] text-fg-subtle xl:flex"},Oo=["value"],To=["value"],No={key:0,class:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3"},Do={class:"space-y-2 p-3.5"},Vo={key:1,class:"grid place-items-center rounded-xl border border-border bg-surface py-16 text-center"},Lo={key:2,class:"rounded-xl border border-border bg-surface px-6 py-14 text-center"},Eo={key:0,class:"mt-4 flex flex-wrap justify-center gap-1.5"},Fo=["onClick"],Ho=J({__name:"SalesSearchScreen",setup(c){const h=ke(),a=Y(),l=Oe(),k=Te(),C=[{value:"nove",label:"Nejnovější"},{value:"cena",label:"Nejlevnější"},{value:"cena_desc",label:"Nejdražší"},{value:"cena_m2",label:"Nejnižší cena za m²"},{value:"plocha",label:"Největší plocha"},{value:"sleva",label:"Největší sleva"}],_=y(()=>{const o=l.params.kategorie,r=l.params.kraj,q=l.params.mesto,g=o?ae[o]:void 0,E=r?ie[r]:void 0,B=q?X[q]:void 0;return o&&!g||r&&!E||q&&!B?null:{cat:o,kraj:r,mesto:q,c:g,r:E,city:B}}),x=y(()=>{const o=_.value;return o!=null&&o.c?o.city?`${o.c.name} ${o.city.locative}`:o.r?`${o.c.name} ${je[o.r]??o.r}`:o.c.name:a.summary.length?a.summary.join(" · "):"Nemovitosti na prodej"});qe(()=>{const o=_.value;a.reset(),o!=null&&o.c&&(a.filters.category=o.c.filter),o!=null&&o.r&&(a.filters.region=o.r),o!=null&&o.city&&(a.filters.city=o.city.name),Object.keys(l.query).length&&a.applyFromQuery(l.query)});const v=y(()=>{const o=_.value;return o!=null&&o.cat&&(o!=null&&o.mesto)?`/prodej/${o.cat}/mesto/${o.mesto}`:o!=null&&o.cat&&(o!=null&&o.kraj)?`/prodej/${o.cat}/${o.kraj}`:o!=null&&o.cat?`/prodej/${o.cat}`:"/prodej"}),P=H(null),D=y(()=>{const o=_.value,r={};return o!=null&&o.c&&(r.kategorie=o.c.filter),o!=null&&o.r&&(r.kraj=o.r),o!=null&&o.city&&(r.obec=o.city.name),r});function V(o){const r={...o};for(const[q,g]of Object.entries(D.value))r[q]===g&&delete r[q];return r}le([()=>a.debouncedKey,()=>a.page],()=>{const o=V(a.toQuery()),r={};for(const[g,E]of Object.entries(l.query))typeof E=="string"&&(r[g]=E);Object.keys(o).length===Object.keys(r).length&&Object.keys(o).every(g=>o[g]===r[g])||k.replace({query:o})});const{data:S,isPending:e,isError:s,isFetching:m,isPlaceholderData:p,refetch:i}=nt(),{data:b,isPending:L,isFetching:de}=st(),{data:R}=ee({queryKey:["salesOverview"],queryFn:Ue,staleTime:5*6e4}),oe=y(()=>{var o;return((o=S.value)==null?void 0:o.items)??[]}),U=y(()=>{var o;return((o=S.value)==null?void 0:o.total)??0}),ne=y(()=>p.value&&m.value),ce=y(()=>Math.max(1,Math.ceil(U.value/re))),pe=y(()=>R.value?new Date(R.value.updatedAt).toLocaleTimeString("cs-CZ",{hour:"numeric",minute:"2-digit"}):""),me=y(()=>{const o=a.filters,r=[];return o.region&&r.push({label:o.region,clear:()=>o.region=""}),o.district&&r.push({label:o.district,clear:()=>o.district=""}),o.city&&r.push({label:o.city,clear:()=>o.city=""}),o.category&&r.push({label:$e(o.category),clear:()=>o.category=""}),o.dispositions.length&&r.push({label:o.dispositions.map(te).join(", "),clear:()=>o.dispositions=[]}),o.ownership&&r.push({label:Be(o.ownership),clear:()=>o.ownership=""}),o.condition&&r.push({label:Ae(o.condition),clear:()=>o.condition=""}),o.buildingType&&r.push({label:Ie(o.buildingType),clear:()=>o.buildingType=""}),o.sources.length&&r.push({label:o.sources.map(ue).join(", "),clear:()=>o.sources=[]}),(o.priceMin!=null||o.priceMax!=null)&&r.push({label:`${o.priceMin!=null?`od ${F(o.priceMin)}`:""} ${o.priceMax!=null?`do ${F(o.priceMax)}`:""}`.trim(),clear:()=>(o.priceMin=null,o.priceMax=null)}),(o.priceM2Min!=null||o.priceM2Max!=null)&&r.push({label:`${o.priceM2Min!=null?`od ${z(o.priceM2Min)}`:""} ${o.priceM2Max!=null?`do ${z(o.priceM2Max)}`:""} Kč/m²`.trim(),clear:()=>(o.priceM2Min=null,o.priceM2Max=null)}),(o.areaMin!=null||o.areaMax!=null)&&r.push({label:`${o.areaMin!=null?`od ${o.areaMin}`:""} ${o.areaMax!=null?`do ${o.areaMax}`:""} m²`.trim(),clear:()=>(o.areaMin=null,o.areaMax=null)}),o.onlyPrivate&&r.push({label:"jen soukromí",clear:()=>o.onlyPrivate=!1}),o.onlyDiscounted&&r.push({label:"jen zlevněné",clear:()=>o.onlyDiscounted=!1}),o.q.trim()&&r.push({label:`„${o.q.trim()}"`,clear:()=>o.q=""}),r});return le([x,U,()=>l.fullPath,()=>{var o;return(o=P.value)==null?void 0:o.faq}],()=>{var q,g,E,B;const o={};for(const[ze,fe]of Object.entries(l.query))typeof fe=="string"&&(o[ze]=fe);const r=Object.keys(V(o)).length>0;We({title:`${x.value} - nemovitost.eu`,description:`${x.value}: inzeráty z více realitních portálů na jednom místě, cena za m² proti mediánu v okrese, historie ceny a dražby v okolí. Denně aktualizováno.`,canonicalPath:v.value,noindex:r,jsonLd:[et([{name:"Na prodej",path:"/prodej"},...(q=_.value)!=null&&q.c?[{name:x.value,path:v.value}]:[]]),...(g=_.value)!=null&&g.c&&((B=(E=P.value)==null?void 0:E.faq)!=null&&B.length)?[tt(P.value.faq)]:[]]})},{immediate:!0}),(o,r)=>{var q;return u(),f("div",$o,[$(qt,{facets:t(b),loading:t(L),refreshing:t(de)&&!t(L),total:U.value,sorts:C,class:"mb-4 xl:hidden"},null,8,["facets","loading","refreshing","total"]),n("div",_o,[$(ve,{name:"sidebar"},{default:K(()=>[t(h).sidebarVisible?(u(),N(Se,{key:0,facets:t(b),loading:t(L),refreshing:t(de)&&!t(L),class:"sticky top-[76px] hidden max-h-[calc(100vh-92px)] overflow-y-auto xl:block"},null,8,["facets","loading","refreshing"])):M("",!0)]),_:1}),n("section",Mo,[n("div",jo,[n("div",null,[n("h1",So,d(x.value),1),n("p",zo,[ne.value?(u(),N(t(Me),{key:0,class:"mr-1 inline h-3.5 w-3.5 animate-spin text-fg-subtle"})):M("",!0),n("b",wo,d(t(z)(U.value)),1),r[5]||(r[5]=j(" nabídek",-1)),t(R)?(u(),f("span",Co," · "+d(t(R).newToday)+" nových dnes · "+d(t(R).sources)+" zdroje",1)):M("",!0),pe.value?(u(),f("span",Po," · aktualizováno "+d(pe.value),1)):M("",!0)])]),n("label",qo,[r[6]||(r[6]=j(" Řadit: ",-1)),n("select",{value:t(a).sort,class:"bg-transparent text-[12px] font-semibold text-fg outline-none",onChange:r[0]||(r[0]=g=>t(a).sort=g.target.value)},[(u(),f(w,null,O(C,g=>n("option",{key:g.value,value:g.value},d(g.label),9,To)),64))],40,Oo)])]),t(e)?(u(),f("div",No,[(u(),f(w,null,O(6,g=>n("div",{key:g,class:"overflow-hidden rounded-xl border border-border bg-surface"},[$(Q,{class:"aspect-[16/10] w-full rounded-none"}),n("div",Do,[$(Q,{class:"h-4 w-4/5"}),$(Q,{class:"h-3 w-2/5"}),$(Q,{class:"h-5 w-1/3"})])])),64))])):t(s)?(u(),f("div",Vo,[r[8]||(r[8]=n("p",{class:"text-[14px] text-fg-muted"},"Načtení se nepovedlo.",-1)),n("button",{class:"mt-3 inline-flex items-center gap-2 rounded-lg border border-border px-4 py-2 text-[13px] font-medium hover:border-border-strong",onClick:r[1]||(r[1]=g=>t(i)())},[$(t(Qe),{class:"h-4 w-4"}),r[7]||(r[7]=j(" Zkusit znovu",-1))])])):oe.value.length?(u(),f(w,{key:3},[n("div",{class:T(["flex flex-col gap-3 transition-opacity duration-200 md:hidden",ne.value?"opacity-60":""])},[(u(!0),f(w,null,O(oe.value,g=>(u(),N(Gt,{key:g.id,sale:g},null,8,["sale"]))),128))],2),n("div",{class:T(["hidden grid-cols-2 gap-4 transition-opacity duration-200 md:grid xl:grid-cols-3",ne.value?"opacity-60":""])},[(u(!0),f(w,null,O(oe.value,g=>(u(),N(Xe,{key:g.id,sale:g},null,8,["sale"]))),128))],2),ce.value>1?(u(),N(Ye,{key:0,class:"mt-4",page:t(a).page,"page-count":ce.value,"onUpdate:page":r[3]||(r[3]=g=>t(a).page=g)},null,8,["page","page-count"])):M("",!0)],64)):(u(),f("div",Lo,[$(t(Je),{class:"mx-auto h-8 w-8 text-fg-subtle"}),r[9]||(r[9]=n("p",{class:"mt-2 text-[15px] font-semibold text-fg"},"Filtry nic nenašly",-1)),r[10]||(r[10]=n("p",{class:"mt-1 text-[13px] text-fg-muted"},"Uvolněte některý z filtrů - klik na chip ho zruší.",-1)),me.value.length?(u(),f("div",Eo,[(u(!0),f(w,null,O(me.value,g=>(u(),f("button",{key:g.label,class:"inline-flex items-center gap-1 rounded-full bg-fg px-3 py-1.5 text-[12px] font-medium text-bg",onClick:E=>g.clear()},[j(d(g.label)+" ",1),$(t(W),{class:"h-3 w-3"})],8,Fo))),128))])):M("",!0),n("button",{class:"mt-5 rounded-lg border border-border px-4 py-2 text-[13px] font-semibold text-fg hover:border-border-strong",onClick:r[2]||(r[2]=g=>t(a).reset())},"Zrušit vše")])),(q=_.value)!=null&&q.cat?(u(),N(ko,{key:4,ref_key:"intro",ref:P,"category-slug":_.value.cat,"region-slug":_.value.kraj,"city-slug":_.value.mesto,total:U.value},null,8,["category-slug","region-slug","city-slug","total"])):M("",!0)])]),$(ve,{name:"fade"},{default:K(()=>[t(h).sidebarVisible?M("",!0):(u(),f("button",{key:0,class:"fixed bottom-6 left-6 z-30 hidden items-center gap-2 rounded-full border border-border bg-surface px-4 py-2.5 text-[13px] font-medium text-fg shadow-pop xl:flex",onClick:r[4]||(r[4]=g=>t(h).toggleSidebar())},[$(t(He),{class:"h-4 w-4"}),r[11]||(r[11]=j(" Zobrazit filtry ",-1))]))]),_:1})])}}});export{Ho as default};