Files
op-packages/luci-app-honk/root/etc/honk/dashboard/assets/SearchDialog-h0qVIWxg.js
T

2 lines
5.2 KiB
JavaScript

import{r as h,j as i}from"./vendor-react-Bf71BWbF.js";import{W as L,X as v,Y as H,Z as S,$ as A,a0 as I,a1 as O,a2 as R,a3 as _,a4 as P,u as E,a as Q,a5 as V,a6 as B,a7 as y,a8 as D,a9 as F,aa as z,ab as G,ac as W,ad as X,T as Y,B as w,ae as Z,E as J,j as U,af as ee,ag as se,ah as ae,ai as te,aj as ne}from"./index-CXHBmSa5.js";import{u as re}from"./flows-C0byZ3sY.js";import{d as oe}from"./nav-C2A1sZKm.js";import{r as ie}from"./nav-D1cfWFA0.js";import{s as de}from"./nav-BIpfWn6-.js";import{c as ce,s as ue,a as le}from"./nav-BeFLfZq8.js";const x=(a,t,e,d,r,o="")=>({hit:{id:t,label:e,description:d,route:r,query:o},keys:a.flatMap(n=>n==null?[]:[n.toLowerCase()])});function pe(a,t,e){const d=s=>_(s,a),r=a?.resources,o=t?.sources.find(s=>s.kind==="main"),n=[...ie(r).map(s=>({path:"rules",params:{tab:s.id},titleKey:s.titleKey})),...oe(r).map(s=>({path:"dns",params:{tab:s.id},titleKey:s.titleKey})),...ce(ue(r,o)).map(s=>({path:"config",params:{tab:s.id},titleKey:s.titleKey})),...de(r).map(s=>({path:"settings",params:{card:s.id},titleKey:s.titleKey}))];return[...L.filter(s=>s.nav&&d(s.path)).map(s=>({route:s.path,query:"",title:e(s.nav.titleKey),parent:""})),...n.filter(s=>d(s.path)).map(s=>({route:s.path,query:v("",s.params),title:e(s.titleKey),parent:e(L.find(u=>u.path===s.path).nav.titleKey)}))].map(s=>x([s.title,s.parent&&s.parent+" "+s.title],`page:${s.route}?${s.query}`,s.title,s.parent||void 0,s.route,s.query))}function me(a,t){return H(a).map(e=>x([e.domain,e.dst,e.src],`connection:${e.id}`,e.domain||e.dst||e.src||e.id,S(e,t),"connections",v("",{id:e.id})))}function he(a,t,e){const d=t?.providers??[],r=o=>v("",{provider:P(o,d),q:o.name});return(a??[]).map(o=>x([o.name],`node:${o.id}`,o.name,A(e,o.group_ids)||void 0,"nodes",r(o)))}function fe(a){return(a??[]).map(t=>x([t.name],`group:${t.id}`,t.name,t.policy.native,"policies",v("",{group:t.id})))}function ge(a,t){return(a?.providers??[]).map(e=>x([e.name],`provider:${e.id}`,e.name,t("search.nodeCount",{n:e.node_count}),"nodes",v("",{provider:e.id})))}function be(a,t){return(a?.sources??[]).map(e=>x([e.path],`source:${e.id}`,e.path,I(le,e.kind,t),"config",v("",{tab:"source",source:e.id})))}function ve(a,t){return(a?.rules??[]).filter(e=>e.kind==="rule").map(e=>x([e.expression,e.outbound],`rule:${e.rule_id}`,e.expression,`#${O(e.index+1,R[t])} → ${e.outbound}`,"rules",v("",{tab:"list",rule:e.rule_id})))}function xe(a,t,e){return{sections:[{id:"pages",title:e("search.pages"),entries:a.pages},{id:"conns",title:e("nav.connections"),entries:a.conns},{id:"nodes",title:e("search.nodes"),entries:a.nodes},{id:"groups",title:e("search.groups"),entries:a.groups},{id:"providers",title:e("search.providers"),entries:a.providers},{id:"sources",title:e("search.sources"),entries:a.sources},{id:"rules",title:e("nav.rules"),entries:a.rules}],partial:t?.truncated?e("conn.truncated"):null}}function ye(a,t){const e=a.trim().toLowerCase(),d=e?8:5,r=new Map;return{sections:t.sections.map(n=>{const c=[];for(const{hit:s,keys:u}of n.entries){if(c.length===d)break;u.some(f=>f.includes(e))&&(c.push(s),r.set(s.id,s))}return{id:n.id,title:n.title,items:c}}).filter(n=>n.items.length>0),byId:r,partial:t.partial}}function $e(a,t){const e=E(),d=Q(),[r,o]=h.useState(""),n=V(),c=n.data?.resources,s=B(void 0,y(c,"connections",{whileLoading:!1})),u=D(y(c,"nodes",{whileLoading:!1})),f=F(y(c,"groups",{whileLoading:!1})),g=z(y(c,"providers",{whileLoading:!1})),b=G(y(c,"config",{whileLoading:!1})),l=re(y(c,"rules",{whileLoading:!1})),p=[n,s,u,f,g,b,l],K=h.useMemo(()=>pe(n.data,b.data,e),[n.data,b.data,e]),C=h.useMemo(()=>me(s.data,e),[s.data,e]),M=h.useMemo(()=>he(u.data,g.data,d),[u.data,g.data,d]),q=h.useMemo(()=>fe(f.data),[f.data]),N=h.useMemo(()=>ge(g.data,e),[g.data,e]),T=h.useMemo(()=>be(b.data,e),[b.data,e]),k=h.useMemo(()=>ve(l.data,d),[l.data,d]),$=ye(r,xe({pages:K,conns:C,nodes:M,groups:q,providers:N,sources:T,rules:k},s.data,e));return{q:r,setQ:o,sections:$.sections,partial:$.partial,openConnections:()=>{a("connections"),t()},empty:$.byId.size===0,error:p.find(m=>m.error)?.error,retry:()=>p.forEach(m=>m.error&&m.refetch()),loading:p.some(m=>m.loading&&!m.data),select:m=>{const j=$.byId.get(String(m));j&&(a(j.route,j.query),t())}}}function qe({onClose:a,go:t}){const e=E(),{q:d,setQ:r,sections:o,partial:n,openConnections:c,empty:s,error:u,retry:f,loading:g,select:b}=$e(t,a);return i.jsx(W,{title:e("search"),hideTitle:!0,isOpen:!0,onOpenChange:l=>{l||a()},children:i.jsxs(X,{inputValue:d,onInputChange:r,children:[i.jsxs("div",{className:"rp-toolbar",children:[i.jsx(Y,{search:!0,large:!0,label:e("search"),value:d,onChange:r,autoFocus:!0,className:"rp-grow"}),i.jsx(w,{quiet:!0,icon:!0,onPress:a,label:e("close"),children:i.jsx(Z,{})})]}),u&&i.jsx(J,{error:u,onRetry:f}),n&&i.jsxs("div",{className:"rp-note",role:"status",children:[n,i.jsx(w,{small:!0,quiet:!0,onPress:c,children:e("nav.connections")})]}),s&&(g?i.jsx(U,{}):i.jsx(ee,{children:e("search.none")})),i.jsx(se,{"aria-label":e("search"),className:"rp-results",onAction:b,children:o.map(l=>i.jsxs(ae,{id:l.id,children:[i.jsx(te,{className:"rp-sec-h",children:l.title}),l.items.map(p=>i.jsxs(ne,{id:p.id,className:"rp-item plain",textValue:p.label,children:[i.jsx("span",{children:p.label}),p.description&&i.jsx("span",{className:"desc",children:p.description})]},p.id))]},l.id))})]})})}export{qe as SearchDialog};