import{d as ne,o as u,c as $,a as s,s as $e,n as re,F as R,f as F,r as A,h as b,y as Ae,z as H,A as Ue,q as we,e as S,u as e,g as T,l as O,m as V,x as Be,B as Ve,t as x,b as z,p as Te,j as Ge,C as He,D as Me,E as Je,i as Qe,G as Ze}from"./index-D6fBX2R3.js";import{I as Ye}from"./PhMagnifyingGlass.vue-CrdUEWRb.js";import{I as Xe,G as We,a as et,F as tt,b as lt,c as ot,f as _e,D as Z,r as be,u as De,_ as qe,e as ve,H as nt,g as Le,h as at,j as ue,k as ee,i as it,l as W,m as st,n as Q,o as le,S as me,R as fe,C as rt,p as Ne,q as ut,t as ct,v as dt,w as pt,x as vt,y as Se,z as je,A as mt,B as ft}from"./useMapSearch-FNdimiEi.js";import{_ as ze}from"./PropertyCard.vue_vue_type_script_setup_true_lang-DFlK5b0s.js";import{S as Ce}from"./Spinner-CeWFdoCr.js";import{G as gt}from"./PhBuildings.vue-C5vZfTdO.js";import{_ as se}from"./ChoiceChip.vue_vue_type_script_setup_true_lang-DSvE3COB.js";import{_ as yt}from"./SegmentToggle.vue_vue_type_script_setup_true_lang-CW3TswMm.js";import{c as ge,d as xe,O as ce,C as de,b as Re,D as Ie,u as Ke,s as bt}from"./cards-CBzAMejU.js";import{f as B,a as te}from"./format-C4dVnwMh.js";import{g as xt}from"./api-BfKPjPYM.js";import{a as kt,b as ht,f as $t}from"./seo-BuHrFLDl.js";import"./PhMapPin.vue-CB7Gf0NF.js";import"./maplibre-gl-worker-BOdO3xHw.js";import"./PhClock.vue-COxf8wPs.js";const wt=["aria-label","aria-valuemin","aria-valuemax","aria-valuenow","onKeydown"],Ee=ne({__name:"DualRangeSlider",props:{min:{},max:{},step:{default:1},low:{},high:{},tone:{default:"primary"},labelLow:{default:"Od"},labelHigh:{default:"Do"}},emits:["update:low","update:high"],setup(v,{emit:f}){const a=v,n=f,C=A(null),w=A(null),y=m=>(m-a.min)/(a.max-a.min)*100,g=b(()=>y(a.low)),k=b(()=>y(a.high));function _(m){const t=C.value.getBoundingClientRect(),l=Math.min(1,Math.max(0,(m-t.left)/t.width)),j=a.min+l*(a.max-a.min);return Math.round(j/a.step)*a.step}function M(m,t){m==="low"?n("update:low",Math.min(Math.max(t,a.min),a.high)):n("update:high",Math.max(Math.min(t,a.max),a.low))}function D(m){const t=_(m.clientX);w.value=Math.abs(t-a.low)<=Math.abs(t-a.high)&&!(t>a.high)?"low":"high",a.low===a.high&&(w.value=t<a.low?"low":"high"),M(w.value,t),m.currentTarget.setPointerCapture(m.pointerId)}function q(m){w.value&&M(w.value,_(m.clientX))}function I(m,t){const l=m==="low"?a.low:a.high,j=a.step*4,i={ArrowLeft:-a.step,ArrowDown:-a.step,ArrowRight:a.step,ArrowUp:a.step,PageDown:-j,PageUp:j};if(t.key in i)M(m,l+i[t.key]);else if(t.key==="Home")M(m,a.min);else if(t.key==="End")M(m,a.max);else return;t.preventDefault()}return(m,t)=>(u(),$("div",{ref_key:"track",ref:C,class:"relative flex h-10 touch-none select-none items-center px-2.5",onPointerdown:D,onPointermove:q,onPointerup:t[0]||(t[0]=l=>w.value=null),onPointercancel:t[1]||(t[1]=l=>w.value=null)},[t[2]||(t[2]=s("div",{class:"absolute inset-x-2.5 h-1.5 rounded-[3px] bg-surface-3"},null,-1)),s("div",{class:re(["absolute h-1.5 rounded-[3px]",v.tone==="amber"?"bg-amber":"bg-primary"]),style:$e({left:`calc(10px + (100% - 20px) * ${g.value/100})`,right:`calc(10px + (100% - 20px) * ${1-k.value/100})`})},null,6),(u(),$(R,null,F(["low","high"],l=>s("span",{key:l,role:"slider",tabindex:"0","aria-label":l==="low"?v.labelLow:v.labelHigh,"aria-valuemin":v.min,"aria-valuemax":v.max,"aria-valuenow":l==="low"?v.low:v.high,class:re(["absolute h-6 w-6 -translate-x-1/2 rounded-full border-2 bg-white shadow-map-control",v.tone==="amber"?"border-amber":"border-primary"]),style:$e({left:`calc(10px + (100% - 20px) * ${(l==="low"?g.value:k.value)/100})`}),onKeydown:j=>I(l,j)},null,46,wt)),64))],544))}}),ye=()=>({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:""}),Mt=["nove","cena","cena_desc","cena_m2","plocha","sleva"],ae=Ae("saleFilters",()=>{const v=Ue(ye()),f=A("nove"),a=A(1),n=A(""),C=b(()=>{const t=v;let l=0;return t.region&&l++,t.district&&l++,t.city&&l++,t.category&&l++,t.dispositions.length&&l++,t.ownership&&l++,t.condition&&l++,t.buildingType&&l++,t.sources.length&&l++,(t.priceMin!=null||t.priceMax!=null)&&l++,(t.priceM2Min!=null||t.priceM2Max!=null)&&l++,(t.areaMin!=null||t.areaMax!=null)&&l++,t.onlyPrivate&&l++,t.onlyDiscounted&&l++,t.q.trim()&&l++,l});function w(){Object.assign(v,ye()),f.value="nove",a.value=1,n.value=""}function y(t){const l={};return t.region&&(l.kraj=t.region),t.district&&(l.okres=t.district),t.city&&(l.obec=t.city),t.category&&(l.kategorie=t.category),t.dispositions.length&&(l.dispozice=t.dispositions.join(",")),t.ownership&&(l.vlastnictvi=t.ownership),t.condition&&(l.stav=t.condition),t.buildingType&&(l.konstrukce=t.buildingType),t.sources.length&&(l.zdroj=t.sources.join(",")),t.priceMin!=null&&(l.cena_od=String(t.priceMin)),t.priceMax!=null&&(l.cena_do=String(t.priceMax)),t.priceM2Min!=null&&(l.cena_m2_od=String(t.priceM2Min)),t.priceM2Max!=null&&(l.cena_m2_do=String(t.priceM2Max)),t.areaMin!=null&&(l.plocha_od=String(t.areaMin)),t.areaMax!=null&&(l.plocha_do=String(t.areaMax)),t.onlyPrivate&&(l.soukromi="1"),t.onlyDiscounted&&(l.zlevnene="1"),t.q.trim()&&(l.q=t.q.trim()),n.value&&(l.bbox=n.value),f.value!=="nove"&&(l.razeni=f.value),l}const g=()=>y(v);function k(){const t=g();return delete t.bbox,a.value>1&&(t.strana=String(a.value)),t}function _(t){const l=P=>typeof t[P]=="string"?t[P]:"",j=P=>{const r=Number.parseInt(l(P),10);return Number.isFinite(r)?r:null},i=P=>l(P).split(",").map(r=>r.trim()).filter(Boolean);v.region=l("kraj"),v.district=l("okres"),v.city=l("obec"),v.category=l("kategorie"),v.dispositions=i("dispozice"),v.ownership=l("vlastnictvi"),v.condition=l("stav"),v.buildingType=l("konstrukce"),v.sources=i("zdroj"),v.priceMin=j("cena_od"),v.priceMax=j("cena_do"),v.priceM2Min=j("cena_m2_od"),v.priceM2Max=j("cena_m2_do"),v.areaMin=j("plocha_od"),v.areaMax=j("plocha_do"),v.onlyPrivate=l("soukromi")==="1",v.onlyDiscounted=l("zlevnene")==="1",v.q=l("q");const K=l("razeni");Mt.includes(K)&&(f.value=K),a.value=j("strana")??1}const M=b(()=>{const t=v,l=[];return t.category&&l.push(ge(t.category)),t.dispositions.length&&l.push(t.dispositions.map(xe).join("/")),t.city?l.push(t.city):t.district?l.push(t.district):t.region&&l.push(t.region),t.priceMax!=null&&l.push(`do ${t.priceMax.toLocaleString("cs-CZ")} Kč`),t.q.trim()&&l.push(`„${t.q.trim()}"`),l}),D=A("");let q;H(()=>JSON.stringify([v,f.value,n.value]),t=>{clearTimeout(q),q=setTimeout(()=>{D.value!==t&&(a.value=1),D.value=t},250)},{immediate:!0});function I(t){const l=v.dispositions.indexOf(t);l>=0?v.dispositions.splice(l,1):v.dispositions.push(t)}function m(t){const l=v.sources.indexOf(t);l>=0?v.sources.splice(l,1):v.sources.push(t)}return{filters:v,sort:f,page:a,bbox:n,paramsFor:y,activeCount:C,summary:M,reset:w,toParams:g,toQuery:k,applyFromQuery:_,debouncedKey:D,toggleDisposition:I,toggleSource:m}}),oe=[{value:"byt",label:"Byty",icon:Xe,plural:"Byty"},{value:"rodinny-dum",label:"Domy",icon:We,plural:"Rodinné domy"},{value:"pozemek",label:"Pozemky",icon:et,plural:"Pozemky"},{value:"garaz",label:"Garáže",icon:tt,plural:"Garáže"},{value:"komercni",label:"Komerční",icon:lt,plural:"Komerční nemovitosti"},{value:"rekreacni",label:"Chaty",icon:ot,plural:"Chaty a chalupy"}],Pe=[{value:"nove",label:"Nejnovější"},{value:"cena",label:"Cena vzestupně"},{value:"cena_desc",label:"Cena sestupně"},{value:"cena_m2",label:"Cena za m²"},{value:"sleva",label:"Největší sleva"}],_t=["byt","rodinny-dum","rekreacni"],Y=20,St=[["do 3 mil.",0,3],["3 – 5 mil.",3,5],["5 – 8 mil.",5,8],["8 – 12 mil.",8,12],["12 mil.+",12,Y]];function pe(v,f){const a=ae(),n=f??a.filters,C=(p,L)=>{const G=p.indexOf(L);G>=0?p.splice(G,1):p.push(L)},w=p=>C(n.dispositions,p),y=p=>C(n.sources,p),g=b({get:()=>(n.priceMin??0)/1e6,set:p=>n.priceMin=p>0?Math.round(p*1e6):null}),k=b({get:()=>n.priceMax==null?Y:Math.min(Y,n.priceMax/1e6),set:p=>n.priceMax=p>=Y?null:Math.round(p*1e6)}),_=b(()=>n.priceMin!=null||n.priceMax!=null),M=b(()=>`${n.priceMin!=null?_e(n.priceMin):"0 Kč"} – ${n.priceMax!=null?_e(n.priceMax):`${Y} mil.+`}`),D=b(()=>!n.category||_t.includes(n.category)),q=b(()=>{const p=[];return n.region&&p.push({key:"r",label:n.region,clear:()=>(n.region="",n.district="",n.city="")}),n.district&&p.push({key:"d",label:n.district,clear:()=>(n.district="",n.city="")}),n.city&&p.push({key:"c",label:n.city,clear:()=>n.city=""}),n.q.trim()&&p.push({key:"q",label:`„${n.q.trim()}"`,clear:()=>n.q=""}),p}),I=b(()=>{var L,G;const p=[];for(const N of Object.values(Z))N.name!==n.city&&p.push({kind:"MĚSTO",label:N.name,sub:`${N.region==="Hlavní město Praha"?"Praha":N.region+" kraj"}`,apply:()=>(n.region="",n.district="",n.city=N.name)});for(const N of((L=v.value)==null?void 0:L.district)??[])N.value!==n.district&&p.push({kind:"OKRES",label:N.label||N.value,sub:"okres",count:N.count,apply:()=>(n.district=N.value,n.city="")});for(const N of((G=v.value)==null?void 0:G.region)??[])N.value!==n.region&&p.push({kind:"KRAJ",label:N.label||N.value,sub:"kraj",count:N.count,apply:()=>(n.region=N.value,n.district="",n.city="")});return p}),m=p=>n.q=p,t=p=>({kind:"OBEC",label:p.name,sub:p.district?`okres ${p.district}`:"obec",apply:()=>(n.region="",n.district=p.ambiguous?p.district:"",n.city=p.name)}),l=b(()=>oe.map(p=>{var L,G;return{...p,count:(G=(L=v.value)==null?void 0:L.category.find(N=>N.value===p.value))==null?void 0:G.count}})),j=b(()=>{var p;return n.category?((p=oe.find(L=>L.value===n.category))==null?void 0:p.label)??ge(n.category):"Typ"}),i=p=>{n.category=n.category===p?"":p,D.value||n.dispositions.splice(0)},K=b(()=>{let p=0;return n.dispositions.length&&p++,(n.areaMin!=null||n.areaMax!=null)&&p++,n.ownership&&p++,n.condition&&p++,n.sources.length&&p++,n.onlyPrivate&&p++,p}),P=b(()=>{var p;return n.city?((p=Z[Object.keys(Z).find(L=>Z[L].name===n.city)??""])==null?void 0:p.locative)??`– ${n.city}`:n.district?`v okrese ${n.district}`:n.region?be[n.region]??`– ${n.region}`:""}),r=b(()=>{const p=oe.find(L=>L.value===n.category);return[p?`${p.plural} na prodej`:n.category?`${ge(n.category)} na prodej`:"Nemovitosti na prodej",P.value].filter(Boolean).join(" ")}),d=b(()=>{var G;const p=n.city||n.district||n.region||n.q.trim(),L=(G=oe.find(N=>N.value===n.category))==null?void 0:G.label.toLowerCase();return{place:p||"Celá ČR",rest:L??""}});return{fs:a,f:n,toggleDisposition:w,toggleSource:y,priceLo:g,priceHi:k,priceActive:_,priceText:M,hasDispositions:D,locChips:q,locOptions:I,wordSearch:m,placeOption:t,typeOptions:l,typeLabel:j,toggleType:i,moreCount:K,heading:r,searchSummary:d}}const jt={class:"flex flex-wrap items-center gap-2 px-4 pt-3"},zt={key:0,class:"flex flex-col gap-3.5"},Ct={class:"flex items-baseline justify-between"},Pt={class:"tnum text-[20px] font-extrabold tracking-[-.01em]"},Ot={key:0,class:"tnum text-[12.5px] text-fg-muted"},Vt={class:"grid grid-cols-2 gap-2"},Tt={class:"flex flex-wrap gap-1.5"},Dt={key:2,class:"grid grid-cols-2 gap-x-8 gap-y-[22px]"},qt={key:0,class:"flex flex-col gap-2.5"},Lt={class:"flex flex-wrap gap-1.5"},Nt={class:"flex flex-col gap-2.5"},Rt={class:"grid grid-cols-2 gap-2"},It=["value"],Kt=["value"],Et={key:1,class:"flex flex-col gap-2.5"},Ft={class:"flex flex-wrap gap-1.5"},At={key:2,class:"flex flex-col gap-2.5"},Ut={class:"flex flex-wrap gap-1.5"},Bt={key:3,class:"flex flex-col gap-2.5"},Gt={class:"flex flex-col gap-2.5"},Ht=ne({__name:"SaleFilterBar",props:Be({facets:{},total:{}},{panel:{required:!0},panelModifiers:{},view:{required:!0},viewModifiers:{}}),emits:["update:panel","update:view"],setup(v){const f=v,a=we(v,"panel"),n=we(v,"view"),C=ae(),w=Ve(f,"facets"),y=pe(w),g=De("sales",C.filters,C.paramsFor,()=>f.total),k=pe(w,g.draft),_=k.f,M=A(null);H(a,(P,r)=>{r&&g.commit(),P&&g.begin()});function D(P,r){M.value=r,a.value=a.value===P?null:P}function q(){g.revert(),a.value=null}const I=b(()=>y.priceActive.value?y.priceText.value:"Cena"),m=b(()=>{var r;const P=new Map((((r=f.facets)==null?void 0:r.disposition)??[]).map(d=>[d.value,d.count]));return Ie.filter(d=>P.has(d)||_.dispositions.includes(d)).slice(0,12)}),t=b(()=>{var P;return(((P=f.facets)==null?void 0:P.ownership)??[]).filter(r=>ce[r.value])}),l=b(()=>{var P;return(((P=f.facets)==null?void 0:P.condition)??[]).filter(r=>de[r.value]).slice(0,8)}),j=b(()=>{var P;return((P=f.facets)==null?void 0:P.source)??[]});function i(P){const r=Number.parseInt(P.replace(/\s/g,""),10);return Number.isFinite(r)&&r>0?r:null}const K=[{value:"split",label:"Seznam + mapa"},{value:"grid",label:"Jen seznam"}];return(P,r)=>(u(),$(R,null,[s("div",jt,[S(qe,{chips:e(y).locChips.value,options:e(y).locOptions.value,"word-search":e(y).wordSearch,"place-option":e(y).placeOption,placeholder:"Obec, okres, kraj nebo slovo…"},null,8,["chips","options","word-search","place-option"]),S(ve,{label:I.value,icon:e(nt),open:a.value==="cena",count:e(y).priceActive.value?1:0,onToggle:r[0]||(r[0]=d=>D("cena",d))},null,8,["label","icon","open","count"]),S(ve,{label:e(y).typeLabel.value,icon:e(gt),open:a.value==="typ",count:e(C).filters.category?1:0,onToggle:r[1]||(r[1]=d=>D("typ",d))},null,8,["label","icon","open","count"]),S(ve,{label:"Více",icon:e(Le),open:a.value==="vice",count:e(y).moreCount.value,onToggle:r[2]||(r[2]=d=>D("vice",d))},null,8,["icon","open","count"]),e(C).activeCount?(u(),$("button",{key:0,type:"button",class:"h-[42px] px-2 text-[13px] font-bold text-fg-muted hover:text-fg",onClick:r[3]||(r[3]=d=>e(C).reset())},"Zrušit filtry")):T("",!0),S(yt,{modelValue:n.value,"onUpdate:modelValue":r[4]||(r[4]=d=>n.value=d),class:"ml-auto",options:K},null,8,["modelValue"])]),a.value?(u(),O(at,{key:0,title:a.value==="cena"?"Cena":a.value==="typ"?"Typ nemovitosti":"Další filtry",anchor:M.value,width:a.value==="vice"?680:a.value==="typ"?360:380,total:e(g).count.value,onClose:r[18]||(r[18]=d=>a.value=null),onReset:q},{default:V(()=>[a.value==="cena"?(u(),$("div",zt,[s("div",Ct,[s("span",Pt,x(e(k).priceText.value),1),e(g).count.value!=null?(u(),$("span",Ot,x(e(B)(e(g).count.value))+" nabídek",1)):T("",!0)]),s("div",{onPointerdownCapture:r[7]||(r[7]=d=>e(g).hold()),onPointerup:r[8]||(r[8]=d=>e(g).release()),onPointercancel:r[9]||(r[9]=d=>e(g).release()),onKeydown:r[10]||(r[10]=d=>e(g).hold()),onKeyup:r[11]||(r[11]=d=>e(g).release())},[S(Ee,{low:e(k).priceLo.value,"onUpdate:low":r[5]||(r[5]=d=>e(k).priceLo.value=d),high:e(k).priceHi.value,"onUpdate:high":r[6]||(r[6]=d=>e(k).priceHi.value=d),min:0,max:e(Y),step:.5,"label-low":"Cena od","label-high":"Cena do"},null,8,["low","high","max"])],32),r[19]||(r[19]=s("div",{class:"flex justify-between text-[12px] text-fg-subtle"},[s("span",null,"0 Kč"),s("span",null,"5 mil."),s("span",null,"10 mil."),s("span",null,"15 mil."),s("span",null,"20 mil.+")],-1)),s("div",Vt,[S(ue,{modelValue:e(_).priceMin,"onUpdate:modelValue":r[12]||(r[12]=d=>e(_).priceMin=d),placeholder:"Od",label:"Cena od v Kč"},null,8,["modelValue"]),S(ue,{modelValue:e(_).priceMax,"onUpdate:modelValue":r[13]||(r[13]=d=>e(_).priceMax=d),placeholder:"Do",label:"Cena do v Kč"},null,8,["modelValue"])]),s("div",Tt,[(u(!0),$(R,null,F(e(St),([d,p,L])=>(u(),O(se,{key:d,size:"sm",active:e(k).priceLo.value===p&&e(k).priceHi.value===L,onClick:G=>(e(k).priceLo.value=p,e(k).priceHi.value=L)},{default:V(()=>[z(x(d),1)]),_:2},1032,["active","onClick"]))),128))]),S(ee,{modelValue:e(_).onlyDiscounted,"onUpdate:modelValue":r[14]||(r[14]=d=>e(_).onlyDiscounted=d),label:"Jen zlevněné"},null,8,["modelValue"])])):a.value==="typ"?(u(),O(it,{key:1,options:e(k).typeOptions.value,active:e(_).category?[e(_).category]:[],onToggle:e(k).toggleType},null,8,["options","active","onToggle"])):(u(),$("div",Dt,[e(k).hasDispositions.value?(u(),$("div",qt,[S(W,null,{default:V(()=>[...r[20]||(r[20]=[z("Dispozice",-1)])]),_:1}),s("div",Lt,[(u(!0),$(R,null,F(m.value,d=>(u(),O(se,{key:d,active:e(_).dispositions.includes(d),onClick:p=>e(k).toggleDisposition(d)},{default:V(()=>[z(x(e(xe)(d)),1)]),_:2},1032,["active","onClick"]))),128))])])):T("",!0),s("div",Nt,[S(W,null,{default:V(()=>[...r[21]||(r[21]=[z("Plocha",-1)])]),_:1}),s("div",Rt,[s("input",{value:e(_).areaMin??"",inputmode:"numeric",placeholder:"Od m²","aria-label":"Plocha od",class:"h-[42px] min-w-0 rounded-full border border-border px-4 text-[14px] outline-none focus:border-primary",onChange:r[15]||(r[15]=d=>e(_).areaMin=i(d.target.value))},null,40,It),s("input",{value:e(_).areaMax??"",inputmode:"numeric",placeholder:"Do m²","aria-label":"Plocha do",class:"h-[42px] min-w-0 rounded-full border border-border px-4 text-[14px] outline-none focus:border-primary",onChange:r[16]||(r[16]=d=>e(_).areaMax=i(d.target.value))},null,40,Kt)])]),t.value.length?(u(),$("div",Et,[S(W,null,{default:V(()=>[...r[22]||(r[22]=[z("Vlastnictví",-1)])]),_:1}),s("div",Ft,[(u(!0),$(R,null,F(t.value,d=>(u(),O(se,{key:d.value,active:e(_).ownership===d.value,onClick:p=>e(_).ownership=e(_).ownership===d.value?"":d.value},{default:V(()=>[z(x(e(ce)[d.value]),1)]),_:2},1032,["active","onClick"]))),128))])])):T("",!0),l.value.length?(u(),$("div",At,[S(W,null,{default:V(()=>[...r[23]||(r[23]=[z("Stav",-1)])]),_:1}),s("div",Ut,[(u(!0),$(R,null,F(l.value,d=>(u(),O(se,{key:d.value,active:e(_).condition===d.value,onClick:p=>e(_).condition=e(_).condition===d.value?"":d.value},{default:V(()=>[z(x(e(de)[d.value]),1)]),_:2},1032,["active","onClick"]))),128))])])):T("",!0),j.value.length?(u(),$("div",Bt,[S(W,null,{default:V(()=>[...r[24]||(r[24]=[z("Zdroj",-1)])]),_:1}),(u(!0),$(R,null,F(j.value,d=>(u(),O(ee,{key:d.value,"model-value":e(_).sources.includes(d.value),label:e(Re)(d.value),count:e(B)(d.count),"onUpdate:modelValue":p=>e(k).toggleSource(d.value)},null,8,["model-value","label","count","onUpdate:modelValue"]))),128))])):T("",!0),s("div",Gt,[S(W,null,{default:V(()=>[...r[25]||(r[25]=[z("Prodejce",-1)])]),_:1}),S(ee,{modelValue:e(_).onlyPrivate,"onUpdate:modelValue":r[17]||(r[17]=d=>e(_).onlyPrivate=d),label:"Jen soukromí prodejci",hint:"Bez realitních kanceláří a developerů"},null,8,["modelValue"])])]))]),_:1},8,["title","anchor","width","total"])):T("",!0)],64))}}),Jt={class:"flex flex-wrap gap-1.5"},Qt={class:"grid grid-cols-2 gap-2"},Zt={class:"flex flex-wrap gap-1.5"},Yt={class:"grid grid-cols-2 gap-2"},Xt=["value"],Wt=["value"],el={class:"flex flex-wrap gap-1.5"},tl={class:"flex flex-wrap gap-1.5"},ll=ne({__name:"SaleMobileFilters",props:{facets:{},total:{}},emits:["close"],setup(v,{emit:f}){const a=v,n=f,C=ae(),w=De("sales",C.filters,C.paramsFor,()=>a.total);Te(w.begin);const y=pe(Ve(a,"facets"),w.draft),g=y.f;function k(){w.commit(),n("close")}const _=()=>Object.assign(w.draft,ye()),M=b(()=>y.priceActive.value?y.priceText.value:"Libovolná"),D=b(()=>{var m;const I=new Set((((m=a.facets)==null?void 0:m.disposition)??[]).map(t=>t.value));return Ie.filter(t=>I.has(t)||g.dispositions.includes(t)).slice(0,10)});function q(I){const m=Number.parseInt(I.replace(/\s/g,""),10);return Number.isFinite(m)&&m>0?m:null}return(I,m)=>(u(),O(st,{total:e(w).count.value,onClose:k,onReset:_},{default:V(()=>{var t,l,j;return[S(Q,{title:"Lokace"},{default:V(()=>[S(qe,{chips:e(y).locChips.value,options:e(y).locOptions.value,"word-search":e(y).wordSearch,"place-option":e(y).placeOption,placeholder:"+ Přidat obec, okres, kraj",class:"!min-w-0"},null,8,["chips","options","word-search","place-option"])]),_:1}),S(Q,{title:"Typ nemovitosti"},{default:V(()=>[s("div",Jt,[(u(!0),$(R,null,F(e(y).typeOptions.value,i=>(u(),O(le,{key:i.value,active:e(g).category===i.value,onClick:K=>e(y).toggleType(i.value)},{default:V(()=>[z(x(i.label),1)]),_:2},1032,["active","onClick"]))),128))])]),_:1}),S(Q,{title:"Cena",value:M.value},{default:V(()=>[s("div",{onPointerdownCapture:m[2]||(m[2]=i=>e(w).hold()),onPointerup:m[3]||(m[3]=i=>e(w).release()),onPointercancel:m[4]||(m[4]=i=>e(w).release()),onKeydown:m[5]||(m[5]=i=>e(w).hold()),onKeyup:m[6]||(m[6]=i=>e(w).release())},[S(Ee,{low:e(y).priceLo.value,"onUpdate:low":m[0]||(m[0]=i=>e(y).priceLo.value=i),high:e(y).priceHi.value,"onUpdate:high":m[1]||(m[1]=i=>e(y).priceHi.value=i),min:0,max:e(Y),step:.5,"label-low":"Cena od","label-high":"Cena do"},null,8,["low","high","max"])],32),s("div",Qt,[S(ue,{modelValue:e(g).priceMin,"onUpdate:modelValue":m[7]||(m[7]=i=>e(g).priceMin=i),size:"lg",placeholder:"Od",label:"Cena od v Kč"},null,8,["modelValue"]),S(ue,{modelValue:e(g).priceMax,"onUpdate:modelValue":m[8]||(m[8]=i=>e(g).priceMax=i),size:"lg",placeholder:"Do",label:"Cena do v Kč"},null,8,["modelValue"])]),S(ee,{modelValue:e(g).onlyDiscounted,"onUpdate:modelValue":m[9]||(m[9]=i=>e(g).onlyDiscounted=i),label:"Jen zlevněné"},null,8,["modelValue"])]),_:1},8,["value"]),e(y).hasDispositions.value?(u(),O(Q,{key:0,title:"Dispozice"},{default:V(()=>[s("div",Zt,[(u(!0),$(R,null,F(D.value,i=>(u(),O(le,{key:i,active:e(g).dispositions.includes(i),onClick:K=>e(y).toggleDisposition(i)},{default:V(()=>[z(x(e(xe)(i)),1)]),_:2},1032,["active","onClick"]))),128))])]),_:1})):T("",!0),S(Q,{title:"Plocha"},{default:V(()=>[s("div",Yt,[s("input",{value:e(g).areaMin??"",inputmode:"numeric",placeholder:"Od m²","aria-label":"Plocha od",class:"h-11 min-w-0 rounded-full border border-border px-4 outline-none focus:border-primary",onChange:m[10]||(m[10]=i=>e(g).areaMin=q(i.target.value))},null,40,Xt),s("input",{value:e(g).areaMax??"",inputmode:"numeric",placeholder:"Do m²","aria-label":"Plocha do",class:"h-11 min-w-0 rounded-full border border-border px-4 outline-none focus:border-primary",onChange:m[11]||(m[11]=i=>e(g).areaMax=q(i.target.value))},null,40,Wt)])]),_:1}),(t=v.facets)!=null&&t.ownership.length?(u(),O(Q,{key:1,title:"Vlastnictví"},{default:V(()=>[s("div",el,[(u(!0),$(R,null,F(v.facets.ownership,i=>(u(),$(R,{key:i.value},[e(ce)[i.value]?(u(),O(le,{key:0,active:e(g).ownership===i.value,onClick:K=>e(g).ownership=e(g).ownership===i.value?"":i.value},{default:V(()=>[z(x(e(ce)[i.value]),1)]),_:2},1032,["active","onClick"])):T("",!0)],64))),128))])]),_:1})):T("",!0),(l=v.facets)!=null&&l.condition.length?(u(),O(Q,{key:2,title:"Stav"},{default:V(()=>[s("div",tl,[(u(!0),$(R,null,F(v.facets.condition.slice(0,8),i=>(u(),$(R,{key:i.value},[e(de)[i.value]?(u(),O(le,{key:0,active:e(g).condition===i.value,onClick:K=>e(g).condition=e(g).condition===i.value?"":i.value},{default:V(()=>[z(x(e(de)[i.value]),1)]),_:2},1032,["active","onClick"])):T("",!0)],64))),128))])]),_:1})):T("",!0),(j=v.facets)!=null&&j.source.length?(u(),O(Q,{key:3,title:"Zdroj"},{default:V(()=>[(u(!0),$(R,null,F(v.facets.source,i=>(u(),O(ee,{key:i.value,"model-value":e(g).sources.includes(i.value),label:e(Re)(i.value),count:e(B)(i.count),"onUpdate:modelValue":K=>e(y).toggleSource(i.value)},null,8,["model-value","label","count","onUpdate:modelValue"]))),128))]),_:1})):T("",!0),S(Q,{title:"Prodejce"},{default:V(()=>[S(ee,{modelValue:e(g).onlyPrivate,"onUpdate:modelValue":m[12]||(m[12]=i=>e(g).onlyPrivate=i),label:"Jen soukromí prodejci",hint:"Bez realitních kanceláří a developerů"},null,8,["modelValue"])]),_:1})]}),_:1},8,["total"]))}}),ol={key:0,class:"mt-10 space-y-8 border-t border-border pt-8"},nl={class:"grid gap-6 lg:grid-cols-[1.2fr_1fr]"},al={class:"space-y-3 text-[15px] leading-relaxed text-fg"},il={class:"text-[20px] font-semibold tracking-[-0.01em] text-fg"},sl={key:0},rl={key:1},ul={class:"grid grid-cols-2 gap-px overflow-hidden rounded-xl border border-border bg-border self-start"},cl={class:"bg-surface px-4 py-3.5"},dl={class:"num text-[22px] font-semibold text-fg"},pl={class:"bg-surface px-4 py-3.5"},vl={class:"num text-[22px] font-semibold text-fg"},ml={class:"bg-surface px-4 py-3.5"},fl={class:"num text-[22px] font-semibold text-fg"},gl={class:"bg-surface px-4 py-3.5"},yl={class:"num text-[15px] font-semibold text-fg"},bl={class:"mt-3 grid gap-3 md:grid-cols-2"},xl={class:"text-[14px] font-semibold text-fg"},kl={class:"mt-1.5 text-[13px] leading-relaxed text-fg-muted"},hl={class:"grid gap-6 md:grid-cols-3"},$l={class:"label-mono mb-2.5"},wl={class:"flex flex-wrap gap-1.5"},Ml={class:"label-mono mb-2.5"},_l={class:"flex flex-wrap gap-1.5"},Sl={key:0},jl={class:"label-mono mb-2.5"},zl={class:"flex flex-wrap gap-1.5"},Oe=ne({__name:"SaleSegmentIntro",props:{categorySlug:{},regionSlug:{},citySlug:{},total:{}},setup(v,{expose:f}){const a=v,n=b(()=>me[a.categorySlug]),C=b(()=>{var t;return a.regionSlug?fe[a.regionSlug]:a.citySlug?(t=Z[a.citySlug])==null?void 0:t.region:""}),w=b(()=>a.citySlug?Z[a.citySlug]:void 0),y=b(()=>w.value?w.value.locative:C.value?be[C.value]??C.value:"v celé České republice"),g=b(()=>{var l;const t={kategorie:((l=n.value)==null?void 0:l.filter)??""};return C.value&&(t.kraj=C.value),t}),{data:k}=Ke({queryKey:["segmentStats",g],queryFn:()=>xt(g.value),staleTime:10*6e4,enabled:b(()=>!!n.value)}),_=b(()=>{var t,l;return((t=n.value)==null?void 0:t.filter)==="pozemek"||((l=n.value)==null?void 0:l.filter)==="stavebni-pozemek"?"za m² pozemku":"za m² užitné plochy"}),M=b(()=>{var i;const t=((i=n.value)==null?void 0:i.genitiv)??"nemovitostí",l=k.value;return[{q:`Kolik stojí ${t==="bytů"?"byt":t==="rodinných domů"?"rodinný dům":t} ${y.value}?`,a:l&&l.count>=8?`Medián nabídkové ceny ${t} ${y.value} je ${te(l.medianPrice)}, medián ceny ${_.value} ${te(l.medianM2)}. Polovina nabídek leží mezi ${B(l.p25M2)} a ${B(l.p75M2)} Kč/m². Počítáme z ${B(l.count)} aktuálních nabídek, čísla se mění každý den.`:`Aktuální nabídky ${t} ${y.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ů (sreality.cz, bezrealitky.cz, reality.idnes.cz, realitymix.cz, ceskereality.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 ${y.value} také ${t}?`,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.'}]});f({faq:M});const D=b(()=>Object.entries(fe).filter(([t])=>t!==a.regionSlug).map(([t,l])=>({to:`/prodej/${a.categorySlug}/${t}`,label:l}))),q=b(()=>Object.entries(me).filter(([t])=>t!==a.categorySlug).map(([t,l])=>({to:a.citySlug?`/prodej/${t}/mesto/${a.citySlug}`:a.regionSlug?`/prodej/${t}/${a.regionSlug}`:`/prodej/${t}`,label:l.name}))),I=b(()=>Object.entries(Z).filter(([t,l])=>t!==a.citySlug&&(!C.value||l.region===C.value)).slice(0,12).map(([t,l])=>({to:`/prodej/${a.categorySlug}/mesto/${t}`,label:l.name}))),m=b(()=>{var l;const t=(l=Object.entries(rt).find(([,j])=>{var i;return j.filter===((i=n.value)==null?void 0:i.filter)}))==null?void 0:l[0];return t?a.regionSlug?`/drazby/${t}/${a.regionSlug}`:`/drazby/${t}`:"/drazby"});return(t,l)=>{const j=Ge("RouterLink");return n.value?(u(),$("section",ol,[s("div",nl,[s("div",al,[s("h2",il,x(n.value.name)+" "+x(y.value)+": co říkají čísla",1),e(k)&&e(k).count>=8?(u(),$("p",sl,[l[0]||(l[0]=z(" V nabídce je právě ",-1)),s("b",null,x(e(B)(v.total)),1),z(" "+x(n.value.genitiv)+" "+x(y.value)+". Medián nabídkové ceny je ",1),s("b",null,x(e(te)(e(k).medianPrice)),1),z(", medián ceny "+x(_.value)+" ",1),s("b",null,x(e(te)(e(k).medianM2)),1),z(". Levnější čtvrtina nabídek začíná pod "+x(e(B)(e(k).p25M2))+" Kč/m², dražší čtvrtina nad "+x(e(B)(e(k).p75M2))+" Kč/m². Čísla počítáme z aktuálních inzerátů a aktualizujeme několikrát denně. ",1)])):(u(),$("p",rl,[l[1]||(l[1]=z(" V nabídce je právě ",-1)),s("b",null,x(e(B)(v.total)),1),z(" "+x(n.value.genitiv)+" "+x(y.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)])),s("p",null,[l[2]||(l[2]=z(" 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)),S(j,{to:m.value,class:"font-medium text-primary hover:underline"},{default:V(()=>[z("dražby "+x(n.value.genitiv)+" "+x(y.value),1)]),_:1},8,["to"]),l[3]||(l[3]=z(", kde je dosažená cena veřejná. ",-1))])]),s("div",ul,[s("div",cl,[l[4]||(l[4]=s("div",{class:"label-mono mb-1.5"},"Nabídek",-1)),s("div",dl,x(e(B)(v.total)),1)]),s("div",pl,[l[5]||(l[5]=s("div",{class:"label-mono mb-1.5"},"Medián ceny",-1)),s("div",vl,x(e(k)&&e(k).count>=8?e(te)(e(k).medianPrice):"-"),1)]),s("div",ml,[l[6]||(l[6]=s("div",{class:"label-mono mb-1.5"},"Medián Kč/m²",-1)),s("div",fl,x(e(k)&&e(k).count>=8?e(B)(e(k).medianM2):"-"),1)]),s("div",gl,[l[7]||(l[7]=s("div",{class:"label-mono mb-1.5"},"P25 až P75 Kč/m²",-1)),s("div",yl,x(e(k)&&e(k).count>=8?`${e(B)(e(k).p25M2)} až ${e(B)(e(k).p75M2)}`:"-"),1)])])]),s("div",null,[l[8]||(l[8]=s("h2",{class:"text-[18px] font-semibold text-fg"},"Časté otázky",-1)),s("div",bl,[(u(!0),$(R,null,F(M.value,i=>(u(),$("div",{key:i.q,class:"panel p-4"},[s("h3",xl,x(i.q),1),s("p",kl,x(i.a),1)]))),128))])]),s("div",hl,[s("div",null,[s("div",$l,"Další typy "+x(y.value),1),s("div",wl,[(u(!0),$(R,null,F(q.value,i=>(u(),O(j,{key:i.to,to:i.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:V(()=>[z(x(i.label),1)]),_:2},1032,["to"]))),128))])]),s("div",null,[s("div",Ml,x(n.value.name)+" podle kraje",1),s("div",_l,[(u(!0),$(R,null,F(D.value,i=>(u(),O(j,{key:i.to,to:i.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:V(()=>[z(x(i.label),1)]),_:2},1032,["to"]))),128))])]),I.value.length?(u(),$("div",Sl,[s("div",jl,x(n.value.name)+" podle města",1),s("div",zl,[(u(!0),$(R,null,F(I.value,i=>(u(),O(j,{key:i.to,to:i.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:V(()=>[z(x(i.label),1)]),_:2},1032,["to"]))),128))])])):T("",!0)])])):T("",!0)}}});function Cl(){const v=ae(),f=b(()=>(v.debouncedKey,v.toParams()));return Ke({queryKey:["saleFacets",f],queryFn:({signal:a})=>Ne("/sales/facets",f.value,a),placeholderData:He,staleTime:6e4})}const Pl={key:0,class:"flex h-[calc(100vh-76px)] flex-col overflow-hidden"},Ol={class:"flex flex-none items-center justify-between gap-3 px-1 pt-1"},Vl={class:"m-0 text-[17px] font-extrabold tracking-[-.005em]"},Tl={key:0,class:"tnum font-semibold text-fg-muted"},Dl={key:0,class:"grid place-items-center py-20"},ql={key:1,class:"min-h-screen bg-bg pb-[100px]"},Ll={class:"flex flex-col gap-2.5 border-b border-border bg-surface px-4 pb-2.5 pt-[max(16px,env(safe-area-inset-top))]"},Nl={class:"truncate text-[15px] font-medium"},Rl={key:0,class:"font-normal text-fg-muted"},Il={class:"no-scrollbar -mx-4 flex gap-1.5 overflow-auto px-4"},Kl={class:"flex flex-col gap-3.5 px-4 pt-3.5"},El={class:"flex items-center justify-between gap-2"},Fl={class:"text-[14px] text-fg-muted"},Al={class:"tnum font-semibold text-fg"},Ul={class:"flex gap-1.5"},Bl={class:"sr-only"},Gl={key:1,class:"grid place-items-center py-16"},ro=ne({__name:"SalesSearchScreen",setup(v){const f=ae(),a=Je(),n=Qe(),C=ut(),w=b(()=>{const o=a.params.kategorie,c=a.params.kraj,E=a.params.mesto,U=o?me[o]:void 0,h=c?fe[c]:void 0,J=E?Z[E]:void 0;return o&&!U||c&&!h||E&&!J?null:{cat:o,kraj:c,mesto:E,c:U,r:h,city:J}}),y=b(()=>{const o=w.value,c={};return o!=null&&o.c&&(c.kategorie=o.c.filter),o!=null&&o.r&&(c.kraj=o.r),o!=null&&o.city&&(c.obec=o.city.name),c});function g(o){const c={...o};for(const[E,U]of Object.entries(y.value))c[E]===U&&delete c[E];return c}const k=b(()=>{const o=w.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"});Te(()=>{const o=w.value;f.reset(),o!=null&&o.c&&(f.filters.category=o.c.filter),o!=null&&o.r&&(f.filters.region=o.r),o!=null&&o.city&&(f.filters.city=o.city.name);const c={...y.value,...a.query};delete c.view,Object.keys(c).length&&f.applyFromQuery(c)}),H(()=>f.debouncedKey,()=>{const o=g(f.toParams());delete o.bbox,a.query.view==="map"&&(o.view="map");const c={};for(const[U,h]of Object.entries(a.query))typeof h=="string"&&U!=="strana"&&(c[U]=h);Object.keys(o).length===Object.keys(c).length&&Object.keys(o).every(U=>o[U]===c[U])||n.replace({query:o})});const _=A({});H(()=>f.debouncedKey,()=>_.value=f.toParams(),{immediate:!0});const M=ct(_,(o,c)=>Ne("/sales",o,c),24),D=b(()=>M.items.value.map(bt)),q=b(()=>M.total.value),{data:I}=Cl(),m=pe(I),t=A((()=>{try{return localStorage.getItem("nemovitost:sale-view")==="grid"?"grid":"split"}catch{return"split"}})());H(t,o=>{try{localStorage.setItem("nemovitost:sale-view",o)}catch{}});const l=b(()=>C.value&&t.value==="split"),j=A(null);H(C,o=>!o&&(f.bbox=""),{immediate:!0});const i=A(null),K=dt("sales",f,()=>JSON.stringify([f.filters.region,f.filters.district,f.filters.city,f.filters.q]),l,i),P=A(null),r=A(!1);H(P,o=>o&&(r.value=!1)),H(r,o=>o&&(P.value=null));const d=A(!1),p=A(null),L=A(null),G=b(()=>C.value?p.value:null),N=pt(L,G,()=>M.loadMore());H(()=>M.loading.value,o=>!o&&Ze(N.refresh)),H(_,()=>{var o;return(o=p.value)==null?void 0:o.scrollTo({top:0})});const X=b(()=>{const o=w.value;return o!=null&&o.c?o.city?`${o.c.name} ${o.city.locative}`:o.r?`${o.c.name} ${be[o.r]??o.r}`:o.c.name:m.heading.value}),Fe=b(()=>{const o=q.value,E={byt:["byt","byty","bytů"],"rodinny-dum":["dům","domy","domů"],pozemek:["pozemek","pozemky","pozemků"],garaz:["garáž","garáže","garáží"],rekreacni:["chata","chaty","chat"]}[f.filters.category]??["nabídka","nabídky","nabídek"];return o===1?E[0]:o>=2&&o<=4?E[1]:E[2]}),ke=b(()=>{const o=f.filters,c=[];return(o.city||o.district)&&c.push({label:o.region?`Celý kraj ${o.region}`:"Celá ČR",apply:()=>(o.city="",o.district="")}),o.priceMax!=null&&c.push({label:"Bez horní hranice ceny",apply:()=>o.priceMax=null}),o.dispositions.length&&c.push({label:"Zrušit dispozici",apply:()=>o.dispositions=[]}),o.category&&c.push({label:"Všechny typy",apply:()=>o.category=""}),o.onlyPrivate&&c.push({label:"I realitní kanceláře",apply:()=>o.onlyPrivate=!1}),o.sources.length&&c.push({label:"Všechny zdroje",apply:()=>o.sources=[]}),c.slice(0,3)}),ie=A(null);return H([X,q,()=>a.fullPath,()=>{var o;return(o=ie.value)==null?void 0:o.faq}],()=>{var c,E,U,h;const o={};for(const[J,he]of Object.entries(a.query))typeof he=="string"&&J!=="view"&&(o[J]=he);kt({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:k.value,noindex:Object.keys(g(o)).length>0,jsonLd:[ht([{name:"Na prodej",path:"/prodej"},...(c=w.value)!=null&&c.c?[{name:X.value,path:k.value}]:[]]),...(E=w.value)!=null&&E.c&&((h=(U=ie.value)==null?void 0:U.faq)!=null&&h.length)?[$t(ie.value.faq)]:[]]})},{immediate:!0}),(o,c)=>{var E,U;return u(),$(R,null,[e(C)?(u(),$("div",Pl,[S(Ht,{panel:P.value,"onUpdate:panel":c[0]||(c[0]=h=>P.value=h),view:t.value,"onUpdate:view":c[1]||(c[1]=h=>t.value=h),facets:e(I),total:q.value},null,8,["panel","view","facets","total"]),s("div",{class:re(["grid min-h-0 flex-1 gap-4 px-4 pb-4 pt-3.5",t.value==="split"?"grid-cols-[minmax(0,2fr)_minmax(360px,3fr)]":"grid-cols-1"])},[s("section",{ref_key:"scroller",ref:p,"aria-label":"Výsledky",class:"no-scrollbar flex min-w-0 flex-col gap-3.5 overflow-auto pr-0.5"},[s("div",Ol,[s("h1",Vl,[z(x(X.value)+" ",1),e(M).loaded.value?(u(),$("span",Tl,"("+x(e(B)(q.value))+")",1)):T("",!0)]),e(C)&&e(f).bbox&&!l.value?(u(),$("button",{key:0,type:"button",class:"inline-flex h-[30px] flex-none items-center gap-1.5 rounded-full bg-primary-soft pl-3 pr-2 text-[12.5px] font-bold text-primary",onClick:c[2]||(c[2]=h=>e(K).clearBbox())},[c[17]||(c[17]=z("Jen výřez mapy ",-1)),S(e(Me),{size:12,weight:"bold"})])):T("",!0),S(vt,{modelValue:e(f).sort,"onUpdate:modelValue":c[3]||(c[3]=h=>e(f).sort=h),open:r.value,"onUpdate:open":c[4]||(c[4]=h=>r.value=h),options:e(Pe)},null,8,["modelValue","open","options"])]),!e(M).loaded.value&&e(M).loading.value?(u(),$("div",Dl,[S(Ce)])):e(M).loaded.value&&!D.value.length?(u(),O(Se,{key:1,suggestions:ke.value,onReset:c[5]||(c[5]=h=>e(f).reset())},null,8,["suggestions"])):(u(),$("div",{key:2,class:re(["grid gap-3.5",t.value==="split"?"grid-cols-2":"grid-cols-[repeat(auto-fill,minmax(300px,1fr))]"])},[(u(!0),$(R,null,F(D.value,h=>(u(),O(ze,{key:h.id,item:h,compact:t.value==="split",selected:h.id===j.value,onHover:c[6]||(c[6]=J=>J!=null&&(j.value=J))},null,8,["item","compact","selected"]))),128))],2)),s("div",{ref_key:"sentinel",ref:L,class:"h-px flex-none"},null,512),D.value.length||e(M).error.value?(u(),O(je,{key:3,loading:e(M).loading.value&&e(M).items.value.length>0,done:e(M).done.value,error:e(M).error.value,shown:D.value.length,total:q.value,noun:"nabídek","loading-text":"Načítám další nabídky…",onRetry:c[7]||(c[7]=h=>e(M).loadMore())},null,8,["loading","done","error","shown","total"])):T("",!0),(E=w.value)!=null&&E.cat&&e(M).done.value?(u(),O(Oe,{key:4,ref_key:"intro",ref:ie,"category-slug":w.value.cat,"region-slug":w.value.kraj,"city-slug":w.value.mesto,total:q.value},null,8,["category-slug","region-slug","city-slug","total"])):T("",!0)],512),t.value==="split"?(u(),O(mt,{key:0,ref_key:"mapRef",ref:i,"search-on-move":e(K).searchOnMove.value,"onUpdate:searchOnMove":c[8]||(c[8]=h=>e(K).searchOnMove.value=h),kind:"sales",noun:"nabídek",geo:e(K).geo.data.value,loading:e(K).geo.isFetching.value,"highlight-id":j.value,onView:e(K).onView,onOpen:c[9]||(c[9]=h=>j.value=(h==null?void 0:h.id)??null)},null,8,["search-on-move","geo","loading","highlight-id","onView"])):T("",!0)],2)])):(u(),$("div",ql,[s("div",Ll,[s("button",{type:"button",class:"flex h-[46px] items-center gap-2.5 rounded-xl bg-surface-2 px-3.5 text-left",onClick:c[10]||(c[10]=h=>d.value=!0)},[S(e(Ye),{size:18,class:"flex-none text-fg-muted"}),s("span",Nl,[z(x(e(m).searchSummary.value.place),1),e(m).searchSummary.value.rest?(u(),$("span",Rl," · "+x(e(m).searchSummary.value.rest),1)):T("",!0)])]),s("div",Il,[(u(!0),$(R,null,F(e(oe),h=>(u(),O(le,{key:h.value,active:e(f).filters.category===h.value,onClick:J=>e(m).toggleType(h.value)},{default:V(()=>[z(x(h.label),1)]),_:2},1032,["active","onClick"]))),128))])]),s("div",Kl,[s("div",El,[s("span",Fl,[s("strong",Al,x(e(B)(q.value)),1),z(" "+x(Fe.value),1)]),s("div",Ul,[S(ft,{modelValue:e(f).sort,"onUpdate:modelValue":c[11]||(c[11]=h=>e(f).sort=h),options:e(Pe)},null,8,["modelValue","options"]),s("button",{type:"button",class:"inline-flex h-[38px] items-center gap-1.5 rounded-full bg-fg px-3 text-[13px] font-semibold text-white",onClick:c[12]||(c[12]=h=>d.value=!0)},[S(e(Le),{size:15}),z("Filtry"+x(e(f).activeCount?` · ${e(f).activeCount}`:""),1)])])]),s("h1",Bl,x(X.value),1),e(C)&&e(f).bbox&&!l.value?(u(),$("button",{key:0,type:"button",class:"inline-flex h-[30px] self-start items-center gap-1.5 rounded-full bg-primary-soft pl-3 pr-2 text-[12.5px] font-bold text-primary",onClick:c[13]||(c[13]=h=>e(K).clearBbox())},[c[18]||(c[18]=z("Jen výřez mapy ",-1)),S(e(Me),{size:12,weight:"bold"})])):T("",!0),!e(M).loaded.value&&e(M).loading.value?(u(),$("div",Gl,[S(Ce)])):e(M).loaded.value&&!D.value.length?(u(),O(Se,{key:2,suggestions:ke.value,onReset:c[14]||(c[14]=h=>e(f).reset())},null,8,["suggestions"])):T("",!0),(u(!0),$(R,null,F(D.value,h=>(u(),O(ze,{key:h.id,item:h,compact:""},null,8,["item"]))),128)),s("div",{ref_key:"sentinel",ref:L,class:"h-px flex-none"},null,512),D.value.length||e(M).error.value?(u(),O(je,{key:3,loading:e(M).loading.value&&e(M).items.value.length>0,done:e(M).done.value,error:e(M).error.value,shown:D.value.length,total:q.value,noun:"nabídek","loading-text":"Načítám další nabídky…",onRetry:c[15]||(c[15]=h=>e(M).loadMore())},null,8,["loading","done","error","shown","total"])):T("",!0),(U=w.value)!=null&&U.cat&&e(M).done.value?(u(),O(Oe,{key:4,"category-slug":w.value.cat,"region-slug":w.value.kraj,"city-slug":w.value.mesto,total:q.value},null,8,["category-slug","region-slug","city-slug","total"])):T("",!0)])])),d.value&&!e(C)?(u(),O(ll,{key:2,facets:e(I),total:q.value,onClose:c[16]||(c[16]=h=>d.value=!1)},null,8,["facets","total"])):T("",!0)],64)}}});export{ro as default};