IT4C.dev/assets/SearchResult-CEjH_gxA.js
2025-07-12 12:14:11 +00:00

2 lines
5.5 KiB
JavaScript

import{g as N,u as X,h as z,i as Z,y as ee,t as se,j as le,k as D,l as x,m as l,n as te,p as ae,s as ie,R as $,q as re,v as ue,x as ne,z as oe,A as ce,B as F,C as T,P as me,D as ve,E as he,F as de,G as ye,H as pe,I as ge,J as fe,K as P,L as ke,M as w}from"./app-DFzJ4zlk.js";const He=["/historie.html","/impressum.html","/","/it4c.html","/kontakt.html","/projekte/democracy.app.html","/projekte/gradido.html","/projekte/ocelot.social.html","/projekte/utopia.map.html","/team/alexander-friedland.html","/team/hannes-heine.html","/team/mathias-lenz.html","/team/maximilian-harz.html","/team/moriz-wahl.html","/team/sebastian-stein.html","/team/ulf-gebhardt.html","/team/wolfgang-huss.html","/404.html","/projekte/","/team/"],Re="SLIMSEARCH_QUERY_HISTORY",p=P(Re,[]),xe=()=>{const{queryHistoryCount:a}=w;return{enabled:a>0,queryHistories:p,addQueryHistory:u=>{p.value=Array.from(new Set([u,...p.value.slice(0,a-1)]))},removeQueryHistory:u=>{p.value=[...p.value.slice(0,u),...p.value.slice(u+1)]}}},I=a=>He[a.id]+("anchor"in a?`#${a.anchor}`:""),we="SLIMSEARCH_RESULT_HISTORY",{resultHistoryCount:M}=w,g=P(we,[]),qe=()=>({enabled:M>0,resultHistories:g,addResultHistory:r=>{{const u={link:I(r),display:r.display};"header"in r&&(u.header=r.header),g.value=[u,...g.value.slice(0,M-1)]}},removeResultHistory:r=>{g.value=[...g.value.slice(0,r),...g.value.slice(r+1)]}}),Qe=a=>{const r=me(),u=z(),q=ve(),n=D(0),f=x(()=>n.value>0),m=he([]);return de(()=>{const{search:Q,terminate:h}=ye(),k=ge(d=>{const{resultsFilter:S=t=>t,querySplitter:y,suggestionsFilter:b,...i}=r.value;d?(n.value+=1,Q(d,u.value,i).then(t=>S(t,d,u.value,q.value)).then(t=>{n.value-=1,m.value=t}).catch(t=>{console.warn(t),n.value-=1,n.value||(m.value=[])})):m.value=[]},w.searchDelay-w.suggestDelay,{maxWait:5e3});pe([a,u],([d])=>k(d.join(" "))),fe(()=>{h()})}),{isSearching:f,results:m}};var Ce=N({name:"SearchResult",props:{queries:{type:Array,required:!0},isFocusing:Boolean},emits:["close","updateQuery"],setup(a,{emit:r}){const u=X(),q=z(),n=Z(ee),{addQueryHistory:f,queryHistories:m,removeQueryHistory:Q}=xe(),{resultHistories:h,addResultHistory:k,removeResultHistory:d}=qe(),S=se(a,"queries"),{results:y,isSearching:b}=Qe(S),i=le({isQuery:!0,index:0}),t=D(0),v=D(0),A=x(()=>m.value.length>0||h.value.length>0),C=x(()=>y.value.length>0),L=x(()=>y.value[t.value]||null),U=()=>{const{isQuery:e,index:s}=i;s===0?(i.isQuery=!e,i.index=e?h.value.length-1:m.value.length-1):i.index=s-1},_=()=>{const{isQuery:e,index:s}=i;s===(e?m.value.length-1:h.value.length-1)?(i.isQuery=!e,i.index=0):i.index=s+1},O=()=>{t.value=t.value>0?t.value-1:y.value.length-1,v.value=L.value.contents.length-1},Y=()=>{t.value=t.value<y.value.length-1?t.value+1:0,v.value=0},B=()=>{v.value<L.value.contents.length-1?v.value+=1:Y()},G=()=>{v.value>0?v.value-=1:O()},j=e=>e.map(s=>ke(s)?s:l(s[0],s[1])),J=e=>{if(e.type==="customField"){const s=oe[e.index]||"$content",[o,R=""]=ce(s)?s[q.value].split("$content"):s.split("$content");return e.display.map(c=>l("div",j([o,...c,R])))}return e.display.map(s=>l("div",j(s)))},H=()=>{t.value=0,v.value=0,r("updateQuery",""),r("close")},K=()=>l("ul",{class:"slimsearch-result-list"},l("li",{class:"slimsearch-result-list-item"},[l("div",{class:"slimsearch-result-title"},n.value.queryHistory),m.value.map((e,s)=>l("div",{class:["slimsearch-result-item",{active:i.isQuery&&i.index===s}],onClick:()=>{r("updateQuery",e)}},[l(F,{class:"slimsearch-result-type"}),l("div",{class:"slimsearch-result-content"},e),l("button",{class:"slimsearch-remove-icon",innerHTML:T,onClick:o=>{o.preventDefault(),o.stopPropagation(),Q(s)}})]))])),V=()=>l("ul",{class:"slimsearch-result-list"},l("li",{class:"slimsearch-result-list-item"},[l("div",{class:"slimsearch-result-title"},n.value.resultHistory),h.value.map((e,s)=>l($,{to:e.link,class:["slimsearch-result-item",{active:!i.isQuery&&i.index===s}],onClick:()=>{H()}},()=>[l(F,{class:"slimsearch-result-type"}),l("div",{class:"slimsearch-result-content"},[e.header?l("div",{class:"content-header"},e.header):null,l("div",e.display.map(o=>j(o)).flat())]),l("button",{class:"slimsearch-remove-icon",innerHTML:T,onClick:o=>{o.preventDefault(),o.stopPropagation(),d(s)}})]))]));return te("keydown",e=>{if(a.isFocusing){if(C.value){if(e.key==="ArrowUp")G();else if(e.key==="ArrowDown")B();else if(e.key==="Enter"){const s=L.value.contents[v.value];f(a.queries.join(" ")),k(s),u.push(I(s)),H()}}else if(e.key==="ArrowUp")U();else if(e.key==="ArrowDown")_();else if(e.key==="Enter"){const{index:s}=i;i.isQuery?(r("updateQuery",m.value[s]),e.preventDefault()):(u.push(h.value[s].link),H())}}}),ae([t,v],()=>{var e;(e=document.querySelector(".slimsearch-result-list-item.active .slimsearch-result-item.active"))==null||e.scrollIntoView(!1)},{flush:"post"}),()=>l("div",{class:["slimsearch-result-wrapper",{empty:a.queries.length?!C.value:!A.value}],id:"slimsearch-results"},a.queries.length?b.value?l(ie,{hint:n.value.searching}):C.value?l("ul",{class:"slimsearch-result-list"},y.value.map(({title:e,contents:s},o)=>{const R=t.value===o;return l("li",{class:["slimsearch-result-list-item",{active:R}]},[l("div",{class:"slimsearch-result-title"},e||n.value.defaultTitle),s.map((c,W)=>{const E=R&&v.value===W;return l($,{to:I(c),class:["slimsearch-result-item",{active:E,"aria-selected":E}],onClick:()=>{f(a.queries.join(" ")),k(c),H()}},()=>[c.type==="text"?null:l(c.type==="title"?re:c.type==="heading"?ue:ne,{class:"slimsearch-result-type"}),l("div",{class:"slimsearch-result-content"},[c.type==="text"&&c.header?l("div",{class:"content-header"},c.header):null,l("div",J(c))])])})])})):n.value.emptyResult:A.value?[K(),V()]:n.value.emptyHistory)}});export{Ce as default};