Ocelot-Social/assets/SearchResult-RJXNiJ-r.js
2026-04-05 05:37:33 +00:00

2 lines
10 KiB
JavaScript

import{u as B,g as se,h as te,i as M,j as le,P as ae,t as oe,k as ne,l as A,m as T,n as ue,w as _,p as t,q as ie,R as N,v as re,x as ce,y as ye,C as me,z as pe,A as de,B as ge,D as he,E as ve,F as ke,G as be,H as G,I as U,J as we,K as f,L as Ce}from"./app-h9l50wZ_.js";const He=["/CHANGELOG.html","/CODE_OF_CONDUCT.html","/CONTRIBUTING.html","/LICENSE.html","/","/SUMMARY.html","/documentation.html","/testing.html","/backend/","/backend/graphql.html","/backend/neo4j-graphql-js.html","/backend/testing.html","/cypress/","/cypress/features.html","/deployment/TODO-next-update.html","/deployment/deployment-values.html","/maintenance/","/neo4j/","/styleguide/","/webapp/","/webapp/components.html","/webapp/html.html","/webapp/scss.html","/webapp/testing.html","/webapp/vue.html","/deployment/styleguide/","/packages/ui/CONTRIBUTING.html","/packages/ui/KATALOG.html","/packages/ui/PROJEKT.html","/packages/ui/","/backend/src/graphql/GraphQL-Playground.html","/webapp/components/Category/","/webapp/components/DateTime/","/webapp/components/Logo/demo.html","/styleguide/src/styleguide/docs/DataDisplay.html","/styleguide/src/styleguide/docs/DesignTokens.html","/styleguide/src/styleguide/docs/Introduction.html","/styleguide/src/styleguide/docs/Layout.html","/styleguide/src/styleguide/docs/Navigation.html","/styleguide/src/styleguide/docs/Typography.html","/packages/ui/src/components/OsButton/STATUS.html","/webapp/static/img/mapbox/marker-icons/","/styleguide/src/system/components/data-display/Avatar/demo.html","/styleguide/src/system/components/data-display/CopyField/demo.html","/styleguide/src/system/components/data-display/List/demo.html","/styleguide/src/system/components/data-display/Number/demo.html","/styleguide/src/system/components/data-display/Table/demo.html","/styleguide/src/system/components/data-input/Form/demo.html","/styleguide/src/system/components/data-input/Input/demo.html","/styleguide/src/system/components/data-input/Radio/demo.html","/styleguide/src/system/components/data-input/Select/demo.html","/styleguide/src/system/components/layout/Card/demo.html","/styleguide/src/system/components/layout/Container/demo.html","/styleguide/src/system/components/layout/Flex/demo.html","/styleguide/src/system/components/layout/Grid/demo.html","/styleguide/src/system/components/layout/Modal/demo.html","/styleguide/src/system/components/layout/Page/demo.html","/styleguide/src/system/components/layout/PageTitle/demo.html","/styleguide/src/system/components/layout/Placeholder/demo.html","/styleguide/src/system/components/layout/Section/demo.html","/styleguide/src/system/components/layout/Space/demo.html","/styleguide/src/system/components/layout/Spinner/demo.html","/styleguide/src/system/components/navigation/Button/demo.html","/styleguide/src/system/components/navigation/Menu/demo.html","/styleguide/src/system/components/typography/Chip/demo.html","/styleguide/src/system/components/typography/Code/demo.html","/styleguide/src/system/components/typography/Heading/demo.html","/styleguide/src/system/components/typography/Icon/demo.html","/styleguide/src/system/components/typography/Logo/demo.html","/styleguide/src/system/components/typography/Tag/demo.html","/styleguide/src/system/components/typography/Text/demo.html","/404.html","/deployment/","/packages/","/backend/src/graphql/","/backend/src/","/webapp/components/","/webapp/components/Logo/","/styleguide/src/styleguide/docs/","/styleguide/src/styleguide/","/styleguide/src/","/packages/ui/src/components/OsButton/","/packages/ui/src/components/","/packages/ui/src/","/webapp/static/img/mapbox/","/webapp/static/img/","/webapp/static/","/styleguide/src/system/components/data-display/Avatar/","/styleguide/src/system/components/data-display/","/styleguide/src/system/components/","/styleguide/src/system/","/styleguide/src/system/components/data-display/CopyField/","/styleguide/src/system/components/data-display/List/","/styleguide/src/system/components/data-display/Number/","/styleguide/src/system/components/data-display/Table/","/styleguide/src/system/components/data-input/Form/","/styleguide/src/system/components/data-input/","/styleguide/src/system/components/data-input/Input/","/styleguide/src/system/components/data-input/Radio/","/styleguide/src/system/components/data-input/Select/","/styleguide/src/system/components/layout/Card/","/styleguide/src/system/components/layout/","/styleguide/src/system/components/layout/Container/","/styleguide/src/system/components/layout/Flex/","/styleguide/src/system/components/layout/Grid/","/styleguide/src/system/components/layout/Modal/","/styleguide/src/system/components/layout/Page/","/styleguide/src/system/components/layout/PageTitle/","/styleguide/src/system/components/layout/Placeholder/","/styleguide/src/system/components/layout/Section/","/styleguide/src/system/components/layout/Space/","/styleguide/src/system/components/layout/Spinner/","/styleguide/src/system/components/navigation/Button/","/styleguide/src/system/components/navigation/","/styleguide/src/system/components/navigation/Menu/","/styleguide/src/system/components/typography/Chip/","/styleguide/src/system/components/typography/","/styleguide/src/system/components/typography/Code/","/styleguide/src/system/components/typography/Heading/","/styleguide/src/system/components/typography/Icon/","/styleguide/src/system/components/typography/Logo/","/styleguide/src/system/components/typography/Tag/","/styleguide/src/system/components/typography/Text/"],Re="SEARCH_PRO_QUERY_HISTORY",v=B(Re,[]),Te=()=>{const{queryHistoryCount:l}=f,a=l>0;return{enabled:a,queryHistory:v,addQueryHistory:o=>{a&&(v.value=Array.from(new Set([o,...v.value.slice(0,l-1)])))},removeQueryHistory:o=>{v.value=[...v.value.slice(0,o),...v.value.slice(o+1)]}}},I=l=>He[l.id]+("anchor"in l?`#${l.anchor}`:""),fe="SEARCH_PRO_RESULT_HISTORY",{resultHistoryCount:j}=f,k=B(fe,[]),Se=()=>{const l=j>0;return{enabled:l,resultHistory:k,addResultHistory:a=>{if(l){const o={link:I(a),display:a.display};"header"in a&&(o.header=a.header),k.value=[o,...k.value.slice(0,j-1)]}},removeResultHistory:a=>{k.value=[...k.value.slice(0,a),...k.value.slice(a+1)]}}},xe=l=>{const a=me(),o=M(),S=pe(),u=A(0),C=T(()=>u.value>0),d=de([]);return ge(()=>{const{search:g,terminate:x}=he(),b=we(c=>{const w=c.join(" "),{searchFilter:L=p=>p,splitWord:q,suggestionsFilter:P,...h}=a.value;w?(u.value+=1,g(c.join(" "),o.value,h).then(p=>L(p,w,o.value,S.value)).then(p=>{u.value-=1,d.value=p}).catch(p=>{console.warn(p),u.value-=1,u.value||(d.value=[])})):d.value=[]},f.searchDelay-f.suggestDelay);_([l,o],([c])=>b(c),{immediate:!0}),ve(()=>{x()})}),{isSearching:C,results:d}};var qe=se({name:"SearchResult",props:{queries:{type:Array,required:!0},isFocusing:Boolean},emits:["close","updateQuery"],setup(l,{emit:a}){const o=te(),S=M(),u=le(ae),{enabled:C,addQueryHistory:d,queryHistory:g,removeQueryHistory:x}=Te(),{enabled:b,resultHistory:c,addResultHistory:w,removeResultHistory:L}=Se(),q=C||b,P=oe(l,"queries"),{results:h,isSearching:p}=xe(P),n=ne({isQuery:!0,index:0}),y=A(0),m=A(0),F=T(()=>q&&(g.value.length>0||c.value.length>0)),O=T(()=>h.value.length>0),Q=T(()=>h.value[y.value]||null),$=()=>{const{isQuery:e,index:s}=n;s===0?(n.isQuery=!e,n.index=e?c.value.length-1:g.value.length-1):n.index=s-1},Y=()=>{const{isQuery:e,index:s}=n;s===(e?g.value.length-1:c.value.length-1)?(n.isQuery=!e,n.index=0):n.index=s+1},K=()=>{y.value=y.value>0?y.value-1:h.value.length-1,m.value=Q.value.contents.length-1},J=()=>{y.value=y.value<h.value.length-1?y.value+1:0,m.value=0},z=()=>{m.value<Q.value.contents.length-1?m.value+=1:J()},V=()=>{m.value>0?m.value-=1:K()},D=e=>e.map(s=>Ce(s)?s:t(s[0],s[1])),W=e=>{if(e.type==="customField"){const s=ke[e.index]||"$content",[i,R=""]=be(s)?s[S.value].split("$content"):s.split("$content");return e.display.map(r=>t("div",D([i,...r,R])))}return e.display.map(s=>t("div",D(s)))},H=()=>{y.value=0,m.value=0,a("updateQuery",""),a("close")},X=()=>C?t("ul",{class:"search-pro-result-list"},t("li",{class:"search-pro-result-list-item"},[t("div",{class:"search-pro-result-title"},u.value.queryHistory),g.value.map((e,s)=>t("div",{class:["search-pro-result-item",{active:n.isQuery&&n.index===s}],onClick:()=>{a("updateQuery",e)}},[t(G,{class:"search-pro-result-type"}),t("div",{class:"search-pro-result-content"},e),t("button",{class:"search-pro-remove-icon",innerHTML:U,onClick:i=>{i.preventDefault(),i.stopPropagation(),x(s)}})]))])):null,Z=()=>b?t("ul",{class:"search-pro-result-list"},t("li",{class:"search-pro-result-list-item"},[t("div",{class:"search-pro-result-title"},u.value.resultHistory),c.value.map((e,s)=>t(N,{to:e.link,class:["search-pro-result-item",{active:!n.isQuery&&n.index===s}],onClick:()=>{H()}},()=>[t(G,{class:"search-pro-result-type"}),t("div",{class:"search-pro-result-content"},[e.header?t("div",{class:"content-header"},e.header):null,t("div",e.display.map(i=>D(i)).flat())]),t("button",{class:"search-pro-remove-icon",innerHTML:U,onClick:i=>{i.preventDefault(),i.stopPropagation(),L(s)}})]))])):null;return ue("keydown",e=>{if(l.isFocusing){if(O.value){if(e.key==="ArrowUp")V();else if(e.key==="ArrowDown")z();else if(e.key==="Enter"){const s=Q.value.contents[m.value];d(l.queries.join(" ")),w(s),o.push(I(s)),H()}}else if(b){if(e.key==="ArrowUp")$();else if(e.key==="ArrowDown")Y();else if(e.key==="Enter"){const{index:s}=n;n.isQuery?(a("updateQuery",g.value[s]),e.preventDefault()):(o.push(c.value[s].link),H())}}}}),_([y,m],()=>{var e;(e=document.querySelector(".search-pro-result-list-item.active .search-pro-result-item.active"))==null||e.scrollIntoView(!1)},{flush:"post"}),()=>t("div",{class:["search-pro-result-wrapper",{empty:l.queries.length?!O.value:!F.value}],id:"search-pro-results"},l.queries.length?p.value?t(ie,{hint:u.value.searching}):O.value?t("ul",{class:"search-pro-result-list"},h.value.map(({title:e,contents:s},i)=>{const R=y.value===i;return t("li",{class:["search-pro-result-list-item",{active:R}]},[t("div",{class:"search-pro-result-title"},e||u.value.defaultTitle),s.map((r,ee)=>{const E=R&&m.value===ee;return t(N,{to:I(r),class:["search-pro-result-item",{active:E,"aria-selected":E}],onClick:()=>{d(l.queries.join(" ")),w(r),H()}},()=>[r.type==="text"?null:t(r.type==="title"?re:r.type==="heading"?ce:ye,{class:"search-pro-result-type"}),t("div",{class:"search-pro-result-content"},[r.type==="text"&&r.header?t("div",{class:"content-header"},r.header):null,t("div",W(r))])])})])})):u.value.emptyResult:q?F.value?[X(),Z()]:u.value.emptyHistory:u.value.emptyResult)}});export{qe as default};