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