PageSourceSearch

https://sanamekan.com/build/assets/search-suggestions-dropdown-BcCZmvch.js

js sanamekan.com collected 2026-10-08 07:15:03 UTC 9,871 bytes, 1 lines download raw bytes

1import{c as e,n as t,r as n,t as r}from"./jsx-runtime-B99rEt_x.js";import{t as i}from"./check-Pkto-_OM.js";import{t as a}from"./chevron-down-ke3LHVSl.js";import{t as o}from"./search-uiwnyO6h.js";import{o as s}from"./dist-Byldmmd9.js";import{a as c,c as l,i as u,l as d,n as f,o as p,s as m}from"./navbar-link-BMAXgBFE.js";var h=t(),g=e(n(),1),_=r();function v(e,t,n){let r=t.get(n.value)||n.label;return e.labelFor?e.labelFor(n.value,r):r}var y=new Intl.Collator(`tr`,{sensitivity:`base`});function b(e){let t=new Map(e.filterMeta.map(e=>[String(e.id),e.name]));return[...e.items].sort((n,r)=>y.compare(v(e,t,n),v(e,t,r)))}function x(e){let t=(0,h.c)(30),{group:n}=e,[r,c]=(0,g.useState)(!1),[l,u]=(0,g.useState)(``),d=(0,g.useRef)(null),f=(0,g.useRef)(null),p=`filter-panel-${n.key}`,m;t[0]===n.items?m=t[1]:(m=n.items.filter(C),t[0]=n.items,t[1]=m);let y=m.length,b=new Map(n.filterMeta.map(S)),x,w;t[2]===r?(x=t[3],w=t[4]):(x=()=>{let e=function(e){d.current&&!d.current.contains(e.target)&&c(!1)},t=function(e){e.key===`Escape`&&(c(!1),f.current?.focus())};return r&&(document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t)),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},w=[r],t[2]=r,t[3]=x,t[4]=w),(0,g.useEffect)(x,w);let T=l?n.items.filter(e=>v(n,b,e).toLocaleLowerCase(`tr`).includes(l.toLocaleLowerCase(`tr`))):n.items,E;t[5]===r?E=t[6]:(E=()=>c(!r),t[5]=r,t[6]=E);let D=r?p:void 0,O=y>0?`${n.label} filtresi, ${y} seçili`:`${n.label} filtresi`,k=r&&`border-primary/30 bg-muted/50`,A=y>0&&`border-primary/30 bg-primary/[0.05] text-primary hover:bg-primary/[0.08]`,j;t[7]!==k||t[8]!==A?(j=s(`inline-flex h-10 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium whitespace-nowrap`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary`,`border-border/60 bg-transparent text-foreground/70`,`transition-all duration-150`,`hover:border-border hover:bg-muted/40 hover:text-foreground`,k,A),t[7]=k,t[8]=A,t[9]=j):j=t[9];let M;t[10]===n.label?M=t[11]:(M=(0,_.jsx)(`span`,{className:`truncate`,children:n.label}),t[10]=n.label,t[11]=M);let N;t[12]===y?N=t[13]:(N=y>0&&(0,_.jsx)(`span`,{className:`flex h-4 min-w-[1rem] items-center justify-center rounded-full bg-primary/15 px-1 text-[10px] font-semibold text-primary tabular-nums`,children:y}),t[12]=y,t[13]=N);let P=r&&`rotate-180`,F;t[14]===P?F=t[15]:(F=s(`h-3 w-3 shrink-0 opacity-50 transition-transform duration-200`,P),t[14]=P,t[15]=F);let I;t[16]===F?I=t[17]:(I=(0,_.jsx)(a,{className:F}
1),t[16]=F,t[17]=I);let L;t[18]!==r||t[19]!==j||t[20]!==M||t[21]!==N||t[22]!==I||t[23]!==E||t[24]!==D||t[25]!==O?(L=(0,_.jsxs)(`button`,{ref:f,type:`button`,onClick:E,"aria-expanded":r,"aria-haspopup":`listbox`,"aria-controls":D,"aria-label":O,className:j,children:[M,N,I]}),t[18]=r,t[19]=j,t[20]=M,t[21]=N,t[22]=I,t[23]=E,t[24]=D,t[25]=O,t[26]=L):L=t[26];let R=r&&(0,_.jsxs)(`div`,{id:p,className:`absolute top-full left-0 z-50 mt-2 w-[260px] max-w-[calc(100vw-2rem)] rounded-lg border border-border bg-white shadow-lg`,children:[(0,_.jsxs)(`div`,{className:`flex items-center border-b px-3`,children:[(0,_.jsx)(o,{className:`mr-2 h-3.5 w-3.5 shrink-0 text-muted-foreground/50`}),(0,_.jsx)(`input`,{value:l,onChange:e=>u(e.target.value),placeholder:`${n.label} ara...`,"aria-label":`${n.label} seçenekleri içinde ara`,className:`h-9 w-full bg-transparent text-sm placeholder:text-muted-foreground/40 focus:outline-none`,autoFocus:!0})]}),(0,_.jsx)(`div`,{className:`max-h-[260px] overflow-y-auto`,children:(0,_.jsxs)(`div`,{className:`p-1`,role:`listbox`,"aria-multiselectable":!0,children:[T.length===0&&(0,_.jsx)(`p`,{className:`px-3 py-4 text-center text-sm text-muted-foreground`,children:l?`Sonuç bulunamadı.`:n.emptyHint??`Sonuç bulunamadı.`}),T.map(e=>(0,_.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":e.isRefined,onClick:()=>n.refine(e.value),className:s(`flex min-h-9 w-full items-center gap-2 rounded-md px-2.5 py-1.5 text-sm`,`transition-colors hover:bg-muted/60`,`focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-primary`,e.isRefined&&`bg-primary/[0.04]`),children:[(0,_.jsx)(`span`,{"aria-hidden":!0,className:s(`flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border`,e.isRefined?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground/25`),children:e.isRefined&&(0,_.jsx)(i,{className:`h-3 w-3`})}),(0,_.jsx)(`span`,{className:`flex-1 truncate text-left`,children:v(n,b,e)}),e.count!=null&&(0,_.jsx)(`span`,{className:`text-xs text-muted-foreground/50`,children:e.count})]},e.value))]})})]}),z;return t[27]!==L||t[28]!==R?(z=(0,_.jsxs)(`div`,{ref:d,className:`relative`,children:[L,R]}),t[27]=L,t[28]=R,t[29]=z):z=t[29],z}function S(e){return[String(e.id),e.name]}function C(e){return e.isRefined}var w=5,T=[{key:`categories_id`,metaKey:`categories`,label:`Etkinlik Türü`,param:`etkinlik`,useSlug:!1},{key:`type_id`,metaKey:`types`,label:`Mekan Tipi`,param:`tip`,useSlug:!1},{key:`features_id`,metaKey:`features`,label:`Mekan Özelliği`,param:`ozellik`,useSlug:!1},{key:`style_id`,metaKey:`styles`,label:`Mekan Stili`,param:`stil`,useSlug:!1},{key:`city_id`,metaKey:`cities`,label:`Şehir`,param:`sehir`,useSlug:!0},{key:`district_id`,metaKey:`districts`,label:`İlçe`,param:`ilce`,useSlug:!0},{key:`sub_district_id`,metaKey:`subDistricts`,label:`Mahalle`,param:`mahalle`,useSlug:!0}],E=new Map(T.map(e=>[e.key,e])),D=e=>e.toLocaleLowerCase(`tr`),O=(e,t)=>t?`${e} · ${t}`:e;function k(e,t){let n=D(t);return T.map(t=>{let r=e.find(e=>e.key===t.key);if(!r)return null;let i=new Map(r.filterMeta.map(e=>[String(e.id),e.name])),a=r.items.filter(e=>D(v(r,i,e)).includes(n)).filter(e=>(e.count??0)>0).slice(0,w).map(e=>({id:e.value,name:v(r,i,e),count:e.count??null,filterAttribute:r.key}));return a.length>0?{key:t.key,label:t.label,items:a}:null}).filter(e=>e!==null)}function A(e,t){if(!e)return[];let n=D(t),r=new Map(e.cities?.map(e=>[e.id,e])??[]),i=new Map(e.districts?.map(e=>[e.id,e])??[]),a=(e,t)=>{if(e.key===`district_id`){let e=r.get(Number(t.cityId));return{name:O(t.name,e?.name),city:e}}if(e.key===`sub_district_id`){let e=i.get(Number(t.districtId)),n=r.get(Number(e?.cityId));return{name:O(t.name,e?.name),city:n,district:e}}return{name:t.name}};return T.map(t=>{let r=(e[t.metaKey]??[]).map(e=>{let{name:n,city:r,district:i}=a(t,e);return{id:String(e.id),name:n,count:e.count??null,filterAttribute:t.key,slug:e.slug??null,citySlug:r?.slug??null,districtSlug:i?.slug??null}}).filter(e=>D(e.name).includes(n)).filter(e=>e.count===null||e.count>0).sort((e,t)=>(t.count??0)-(e.count??0)).slice(0,w);return r.length>0?{key:t.key,label:t.label,items:r}:null}).filter(e=>e!==null)}function j(e){let t=E.get(e.filterAttribute);if(!t)return`/mekanlar/arama/sonuclar`;let n=new URLSearchParams;return e.citySlug&&n.set(`sehir`,e.citySlug),e.districtSlug&&n.set(`ilce`,e.districtSlug),n.set(t.param,t.useSlug?e.slug??e.id:e.id),`/mekanlar/arama/sonuclar?${n.toString()}`}var M={categories_id:(0,_.jsx)(u,{size:11}),type_id:(0,_.jsx)(f,{size:11}),features_id:(0,_.jsx)(d,{size:11}),style_id:(0,_.jsx)(m,{size:11}),city_id:(0,_.jsx)(p,{size:11}),district_id:(0,_.jsx)(c,{size:11}),sub_district_id:(0,_.jsx)(c,{size:11})};function N(e){let t=(0,h.c)(7),{groups:n,onSelect:r}=e,i;if(t[0]!==n||t[1]!==r){let e;t[3]===r?e=t[4]:(e=e=>(0,_.jsxs)(`div`,{children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-1.5 px-3 pt-2.5 pb-1 text-muted-foreground
1/50`,children:[M[e.key],(0,_.jsx)(`span`,{className:`text-[11px] font-medium text-muted-foreground/60`,children:e.label})]}),e.items.map(t=>(0,_.jsxs)(`button`,{type:`button`,onClick:()=>r(t),className:`flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50`,children:[(0,_.jsx)(`span`,{className:`flex-1 truncate text-left text-foreground`,children:t.name}),t.count!==null&&(0,_.jsx)(`span`,{className:`text-[11px] text-muted-foreground/40`,children:t.count})]},`${e.key}-${t.id}`))]},e.key),t[3]=r,t[4]=e),i=n.map(e),t[0]=n,t[1]=r,t[2]=i}else i=t[2];let a;return t[5]===i?a=t[6]:(a=(0,_.jsx)(_.Fragment,{children:i}),t[5]=i,t[6]=a),a}function P(e){let t=(0,h.c)(22),{query:n,groups:r,onSelectFilter:i,onKeywordSearch:a}=e,o;t[0]!==r||t[1]!==n?(o=k(r,n),t[0]=r,t[1]=n,t[2]=o):o=t[2];let s=o,c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,_.jsx)(l,{size:13,className:`shrink-0 text-primary`}),t[3]=c):c=t[3];let u;t[4]===n?u=t[5]:(u=(0,_.jsxs)(`span`,{className:`font-medium text-primary`,children:[`“`,n,`”`]}),t[4]=n,t[5]=u);let d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,_.jsx)(`span`,{className:`text-muted-foreground`,children:`ara`}),t[6]=d):d=t[6];let f;t[7]===u?f=t[8]:(f=(0,_.jsxs)(`span`,{children:[u,` `,d]}),t[7]=u,t[8]=f);let p;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,_.jsx)(`span`,{className:`ml-auto hidden text-[10px] text-muted-foreground/50 md:block`,children:`Enter ↵`}),t[9]=p):p=t[9];let m;t[10]!==a||t[11]!==f?(m=(0,_.jsxs)(`button`,{type:`button`,onClick:a,className:`flex w-full items-center gap-2.5 border-b border-border/50 px-3 py-2.5 text-sm hover:bg-muted/50`,children:[c,f,p]}),t[10]=a,t[11]=f,t[12]=m):m=t[12];let g;t[13]!==i||t[14]!==s?(g=(0,_.jsx)(N,{groups:s,onSelect:i}),t[13]=i,t[14]=s,t[15]=g):g=t[15];let v;t[16]===s.length?v=t[17]:(v=s.length===0&&(0,_.jsx)(`div`,{className:`px-3 py-3 text-center text-xs text-muted-foreground/50`,children:`Filtre önerisi bulunamadı`}),t[16]=s.length,t[17]=v);let y;return t[18]!==m||t[19]!==g||t[20]!==v?(y=(0,_.jsx)(`div`,{className:`absolute top-full left-0 z-50 mt-1.5 w-full rounded-xl border border-border bg-white shadow-lg`,children:(0,_.jsxs)(`div`,{className:`max-h-[400px] overflow-y-auto`,children:[m,g,v]})}),t[18]=m,t[19]=g,t[20]=v,t[21]=y):y=t[21],y}export{x as a,j as i,N as n,v as o,A as r,b as s,P as t};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.