import{B as e,Ct as t,D as n,G as r,H as i,J as a,P as o,T as s,V as c,Y as l,_ as u,b as d,d as f,lt as p,v as m,vt as h,wt as g,x as _,xt as v,y}from"./CaGtQlYh.js";import{At as b,E as x,G as S,I as C,Ot as ee,S as w,T as te,U as ne,W as T,Wt as E,Z as re,g as ie,k as ae,o as D,ot as oe,rt as se,st as ce,w as le,z as ue}from"#entry";import"./CIa-1CJu.js";import{t as de}from"./CJgAejf_.js";import{t as fe}from"./Ce_uH7zp.js";import{b as pe}from"./DohEsvF1.js";import{f as me,u as O,x as k}from"./CsU6pgHx.js";import{t as he}from"./DhTvfVif.js";import{t as ge}from"./CxiWMChH.js";import{t as _e}from"./Hw_CdiGx.js";var A={class:`relative h-full w-full`},ve={key:0,class:`absolute inset-0 flex items-center justify-center`},j=Object.assign(n({__name:`RealtimeLineChart`,props:{title:{},seriesConfig:{},isLoading:{type:Boolean,default:!1},initialData:{default:()=>[]},valueMode:{default:`bytes`}},emits:[`chartReady`],setup(t,{expose:n,emit:r}){let a=t,o=r,s=(e,t=!1)=>a.valueMode===`number`?String(e):t?`${k(e).toString()}/s`:k(e).toString(),u=p(),f,h,g,y=de();function b(){let e=O();return{chart:{type:`areaspline`,animation:{duration:800,easing:`linear`},backgroundColor:e.backgroundColor},credits:{enabled:!1},accessibility:{enabled:!1},title:{text:a.title,style:{color:e.textColor}},legend:{enabled:!0,itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},xAxis:{type:`datetime`,tickPixelInterval:100,labels:{style:{color:e.textColor},formatter(){let e=new Date(this.value);return`${e.getMinutes().toString().padStart(2,`0`)}:${e.getSeconds().toString().padStart(2,`0`)}`}},lineColor:e.lineColor,tickColor:e.tickColor},yAxis:{title:{text:void 0},labels:{style:{color:e.textColor},formatter(){return s(this.value)}},gridLineColor:e.gridLineColor,min:0},tooltip:{shared:!0,formatter(){let e=new Date(this.x),t=`${`${e.getMinutes().toString().padStart(2,`0`)}:${e.getSeconds().toString().padStart(2,`0`)}`}
`;return this.points?.forEach(e=>{t+=`\u25CF ${e.series.name}: ${s(e.y,!0)}
`}),t}},plotOptions:{areaspline:{fillOpacity:.3,marker:{enabled:!1},lineWidth:2,states:{hover:{lineWidth:3}},threshold:null}},series:a.seriesConfig.map((t,n)=>({type:`areaspline`,name:t.name,color:t.color||e.seriesColors[n]||h?.getOptions().colors?.[n]||`hsl(${n*120}, 70%, 50%)`,data:a.initialData?.[n]||[]}))}}let x={addPoint:(e,t,n)=>{if(f?.series[e]){let r=f.series[e].data.length>=30;f.series[e].addPoint([t,n],!0,r,{duration:800,easing:`linear`})}},addPoints:e=>{if(!f)return;let t=new Map;e.forEach(e=>{t.has(e.seriesIndex)||t.set(e.seriesIndex,[]),t.get(e.seriesIndex).push({time:e.time,value:e.value})}),t.forEach((e,t)=>{let n=f?.series[t];n&&e.forEach(e=>{let t=n.data.length>=30;n.addPoint([e.time,e.value],!1,t)})}),f.redraw({duration:800,easing:`linear`})},setSeriesData:(e,t)=>{f?.series[e]&&f.series[e].setData(t,!0,!1,!1)}};return n({chartRef:x}),e(async()=>{u.value&&(h=await ge(),u.value&&(f=h.chart(u.value,b()),o(`chartReady`,x),g=new ResizeObserver(()=>{f&&u.value&&f.setSize(u.value.clientWidth,u.value.clientHeight,!0)}),g.observe(u.value)))}),c(()=>{g?.disconnect(),f?.destroy(),f=void 0}),l(()=>a.title,e=>{f&&f.setTitle({text:e})}),l(()=>a.seriesConfig,e=>{f&&(e.forEach((e,t)=>{f.series[t]&&f.series[t].update({type:`areaspline`,name:e.name,color:e.color},!1)}),f.redraw())},{deep:!0}),l(()=>y.curTheme,()=>{requestAnimationFrame(()=>{if(f){let e=O();f.update({chart:{backgroundColor:e.backgroundColor},title:{style:{color:e.textColor}},legend:{itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},xAxis:{labels:{style:{color:e.textColor}},lineColor:e.lineColor,tickColor:e.tickColor},yAxis:{labels:{style:{color:e.textColor}},gridLineColor:e.gridLineColor}},!0,!1,!1)}})}),(e,n)=>(i(),_(`div`,A,[t.isLoading?(i(),_(`div`,ve,[...n[0]||=[m(`span`,{class:`inline-block h-10 w-10 bg-base-content [mask-size:contain] [mask-position:center] [mask-repeat:no-repeat]`,style:{maskImage:`url('data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%274%27 cy=%2712%27 r=%272%27 fill=%27currentColor%27%3E%3Canimate attributeName=%27opacity%27 dur=%270.75s%27 values=%271;0.5;1%27 repeatCount=%27indefinite%27 begin=%270%27/%3E%3C/circle%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%272%27 fill=%27currentColor%27%3E%3Canimate attributeName=%27opacity%27 dur=%270.75s%27 values=%271;0.5;1%27 repeatCount=%27indefinite%27 begin=%270.15s%27/%3E%3C/circle%3E%3Ccircle cx=%2720%27 cy=%2712%27 r=%272%27 fill=%27currentColor%27%3E%3Canimate attributeName=%27opacity%27 dur=%270.75s%27 values=%271;0.5;1%27 repeatCount=%27indefinite%27 begin=%270.3s%27/%3E%3C/circle%3E%3C/svg%3E')`,WebkitMaskImage:`url('data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27%3E%3Ccircle cx=%274%27 cy=%2712%27 r=%272%27 fill=%27currentColor%27%3E%3Canimate attributeName=%27opacity%27 dur=%270.75s%27 values=%271;0.5;1%27 repeatCount=%27indefinite%27 begin=%270%27/%3E%3C/circle%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%272%27 fill=%27currentColor%27%3E%3Canimate attributeName=%27opacity%27 dur=%270.75s%27 values=%271;0.5;1%27 repeatCount=%27indefinite%27 begin=%270.15s%27/%3E%3C/circle%3E%3Ccircle cx=%2720%27 cy=%2712%27 r=%272%27 fill=%27currentColor%27%3E%3Canimate attributeName=%27opacity%27 dur=%270.75s%27 values=%271;0.5;1%27 repeatCount=%27indefinite%27 begin=%270.3s%27/%3E%3C/circle%3E%3C/svg%3E')`}},null,-1)]])):d(``,!0),m(`div`,{ref_key:`containerRef`,ref:u,class:v([`h-full w-full transition-opacity duration-200 ease-in-out`,{"opacity-0":t.isLoading}])},null,2)]))}}),{__name:`RealtimeLineChart`}),ye={class:`relative h-full w-full`},be={key:0,class:`absolute inset-0 flex items-center justify-center`},xe=Object.assign(n({__name:`HighchartsAutoSize`,props:{options:{},isLoading:{type:Boolean,default:!1}},setup(t){let n=t,r=p(),a,o,s,u=de();function f(){let e=O();return{chart:{animation:{duration:300},backgroundColor:e.backgroundColor},credits:{enabled:!1},accessibility:{enabled:!1},legend:{itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},title:{style:{color:e.textColor}}}}return e(async()=>{if(!r.value||(o=await ge(),!r.value))return;let e=f(),t={...e,...n.options,chart:{...e.chart,...n.options.chart}};a=o.chart(r.value,t);let i=r.value.clientWidth,c=r.value.clientHeight;s=new ResizeObserver(()=>{if(a&&r.value){let e=r.value.clientWidth,t=r.value.clientHeight;(e!==i||t!==c)&&(i=e,c=t,a.setSize(e,t,!1))}}),s.observe(r.value)}),c(()=>{s?.disconnect(),a?.destroy(),a=void 0}),l(()=>n.options,e=>{a&&a.update(e,!0,!1,!1)},{deep:!0}),l(()=>u.curTheme,()=>{requestAnimationFrame(()=>{if(a){let e=O();a.update({chart:{backgroundColor:e.backgroundColor},title:{style:{color:e.textColor}},legend:{itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},xAxis:{labels:{style:{color:e.textColor}},lineColor:e.lineColor,tickColor:e.tickColor},yAxis:{labels:{style:{color:e.textColor}},gridLineColor:e.gridLineColor}},!0,!1,!1)}})}),(e,n)=>(i(),_(`div`,ye,[t.isLoading?(i(),_(`div`,be,[...n[0]||=[m(`span`,{class:`inline-block size-10 bg-base-content [mask-image:url("data:image/svg+xml,%3Csvg_xmlns='http://www.w3.org/2000/svg'_viewBox='0_0_24_24'%3E%3Ccircle_cx='4'_cy='12'_r='2'_fill='currentColor'%3E%3Canimate_attributeName='opacity'_dur='0.75s'_values='1;0.5;1'_repeatCount='indefinite'_begin='0'/%3E%3C/circle%3E%3Ccircle_cx='12'_cy='12'_r='2'_fill='currentColor'%3E%3Canimate_attributeName='opacity'_dur='0.75s'_values='1;0.5;1'_repeatCount='indefinite'_begin='0.15s'/%3E%3C/circle%3E%3Ccircle_cx='20'_cy='12'_r='2'_fill='currentColor'%3E%3Canimate_attributeName='opacity'_dur='0.75s'_values='1;0.5;1'_repeatCount='indefinite'_begin='0.3s'/%3E%3C/circle%3E%3C/svg%3E")] [mask-size:contain] [mask-position:center] [mask-repeat:no-repeat]`},null,-1)]])):d(``,!0),m(`div`,{ref_key:`containerRef`,ref:r,class:v([`h-full w-full transition-opacity duration-200 ease-in-out`,{"opacity-0":t.isLoading}])},null,2)]))}}),{__name:`HighchartsAutoSize`}),Se={"ip.sb":`https://api.ip.sb/geoip`,"ipwho.is":`https://ipwho.is/`,"ipapi.is":`https://api.ipapi.is/`};function Ce(e){return{ip:e.ip,country:e.country,city:e.city,asn:e.asn,org:e.asn_organization}}function we(e){return{ip:e.ip,country:e.country,countryCode:e.country_code,city:e.city,region:e.region,asn:e.connection?.asn,org:e.connection?.org,isp:e.connection?.isp,latitude:e.latitude,longitude:e.longitude,timezone:e.timezone?.id}}function Te(e){return{ip:e.ip,country:e.location?.country,countryCode:e.location?.country_code,city:e.location?.city,region:e.location?.state,asn:e.asn?.asn,org:e.asn?.org,isProxy:e.is_proxy,isVPN:e.is_vpn,latitude:e.location?.latitude,longitude:e.location?.longitude,timezone:e.location?.timezone}}async function Ee(e){let t=Se[e],n=await pe.get(t,{timeout:1e4}).json();switch(e){case`ip.sb`:return Ce(n);case`ipwho.is`:return we(n);case`ipapi.is`:return Te(n);default:throw Error(`Unknown IP provider: ${e}`)}}function De(){let e=p(`ip.sb`),t=p(null),n=p(!1),r=p(null);async function i(i){let a=i??e.value;n.value=!0,r.value=null;try{t.value=await Ee(a),e.value=a}catch(e){r.value=e instanceof Error?e.message:`Failed to fetch IP info`,t.value=null}finally{n.value=!1}}return{currentProvider:e,ipInfo:t,isLoading:n,error:r,fetchIP:i}}var Oe={class:`rounded-xl border p-4 shadow-sm`,style:{background:`color-mix(in oklch, var(--color-base-200) 60%, transparent)`,"border-color":`color-mix( in oklch, var(--color-base-content) 10%, transparent )`,"box-shadow":`0 2px 8px color-mix(in oklch, var(--color-base-content) 5%, transparent)`}},ke={class:`mb-3.5 flex items-center justify-between gap-3`},Ae={class:`flex items-center gap-2`},je={class:`flex h-8 w-8 items-center justify-center rounded-lg text-primary`,style:{background:`color-mix( in oklch, var(--color-primary) 15%, transparent )`}},Me={class:`m-0 text-[0.9375rem] font-semibold text-base-content`},Ne={class:`flex items-center gap-1.5`},Pe=[`value`],Fe=[`value`],Ie=[`disabled`],Le={key:0,class:`flex justify-center py-6`},Re={key:1,class:`rounded-lg p-3 text-[0.8125rem] text-error`,style:{background:`color-mix(in oklch, var(--color-error) 10%, transparent)`,border:`1px solid color-mix(in oklch, var(--color-error) 20%, transparent)`}},ze={key:2,class:`flex flex-col gap-2.5`},Be={class:`-mx-1 -mt-1 mb-1 flex items-center justify-between gap-3 rounded-lg px-2.5 py-2`,style:{background:`color-mix(in oklch, var(--color-primary) 8%, transparent)`,border:`1px solid color-mix(in oklch, var(--color-primary) 15%, transparent)`}},Ve={class:`shrink-0 text-[0.8125rem] text-base-content/60`},He=[`title`],Ue={key:0,class:`flex items-center justify-between gap-3`},We={class:`shrink-0 text-[0.8125rem] text-base-content/60`},Ge={class:`overflow-hidden text-right text-[0.8125rem] font-medium text-ellipsis whitespace-nowrap text-base-content`},Ke={key:1,class:`flex items-center justify-between gap-3`},qe={class:`shrink-0 text-[0.8125rem] text-base-content/60`},Je={class:`overflow-hidden text-right text-[0.8125rem] font-medium text-ellipsis whitespace-nowrap text-base-content`},Ye={key:2,class:`flex items-center justify-between gap-3`},Xe={class:`shrink-0 text-[0.8125rem] text-base-content/60`},Ze=[`title`],Qe={key:3,class:`flex items-center justify-between gap-3`},$e={class:`overflow-hidden text-right font-mono text-[0.8125rem] font-semibold text-ellipsis whitespace-nowrap text-base-content`},et={key:4,class:`flex items-center justify-between gap-3`},tt=[`title`],nt={key:5,class:`flex items-center justify-between gap-3`},rt={class:`shrink-0 text-[0.8125rem] text-base-content/60`},it={class:`flex gap-1`},at={key:0,class:`inline-flex items-center rounded-full px-2 py-0.5 text-[0.6875rem] font-semibold tracking-wide text-warning uppercase`,style:{background:`color-mix( in oklch, var(--color-warning) 15%, transparent )`}},ot={key:1,class:`inline-flex items-center rounded-full px-2 py-0.5 text-[0.6875rem] font-semibold tracking-wide text-warning uppercase`,style:{background:`color-mix( in oklch, var(--color-warning) 15%, transparent )`}},st={key:2,class:`inline-flex items-center rounded-full px-2 py-0.5 text-[0.6875rem] font-semibold tracking-wide text-success uppercase`,style:{background:`color-mix( in oklch, var(--color-success) 15%, transparent )`}},ct={key:3,class:`py-6 text-center text-sm text-base-content/50`},lt=Object.assign(n({__name:`IPInfoCard`,setup(t){let{t:n}=ee(),{currentProvider:a,ipInfo:o,isLoading:c,error:l,fetchIP:u}=De(),p=[{value:`ip.sb`,label:`IP.SB`},{value:`ipwho.is`,label:`ipwho.is`},{value:`ipapi.is`,label:`ipapi.is`}];e(()=>{u()});function y(e){let t=e.target;u(t.value)}return(e,t)=>(i(),_(`div`,Oe,[m(`div`,ke,[m(`div`,Ae,[m(`div`,je,[s(h(D),{size:18})]),m(`h3`,Me,g(h(n)(`currentIP`)),1)]),m(`div`,Ne,[m(`select`,{value:h(a),class:`cursor-pointer appearance-none rounded-md bg-base-100 py-1.5 pr-6 pl-2.5 text-xs text-base-content transition-all duration-200 focus:border-primary focus:outline-none`,style:{border:`1px solid color-mix(in oklch, var(--color-base-content) 10%, transparent)`,"background-image":`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")`,"background-repeat":`no-repeat`,"background-position":`right 0.375rem center`},onChange:y},[(i(),_(f,null,r(p,e=>m(`option`,{key:e.value,value:e.value},g(e.label),9,Fe)),64))],40,Pe),m(`button`,{class:v([`flex h-7 w-7 cursor-pointer items-center justify-center rounded-md border border-base-content/10 bg-transparent text-base-content/60 transition-all duration-200 hover:bg-base-300 hover:text-base-content disabled:cursor-not-allowed disabled:opacity-50`,{"animate-spin":h(c)}]),disabled:h(c),onClick:t[0]||=e=>h(u)()},[s(h(w),{size:16})],10,Ie)])]),h(c)?(i(),_(`div`,Le,[...t[1]||=[m(`span`,{class:`h-6 w-6 animate-spin rounded-full border-2 border-base-content/10 border-t-primary`},null,-1)]])):h(l)?(i(),_(`div`,Re,[m(`span`,null,g(h(l)),1)])):h(o)?(i(),_(`div`,ze,[m(`div`,Be,[m(`span`,Ve,g(h(n)(`ipAddress`)),1),m(`span`,{class:`overflow-hidden text-right font-mono text-[0.8125rem] font-semibold text-ellipsis whitespace-nowrap text-primary`,title:h(o).ip},g(h(o).ip),9,He)]),h(o).country?(i(),_(`div`,Ue,[m(`span`,We,g(h(n)(`country`)),1),m(`span`,Ge,g(h(o).country),1)])):d(``,!0),h(o).city?(i(),_(`div`,Ke,[m(`span`,qe,g(h(n)(`city`)),1),m(`span`,Je,g(h(o).city),1)])):d(``,!0),h(o).org?(i(),_(`div`,Ye,[m(`span`,Xe,g(h(n)(`organization`)),1),m(`span`,{class:`overflow-hidden text-right text-[0.8125rem] font-medium text-ellipsis whitespace-nowrap text-base-content`,title:h(o).org},g(h(o).org),9,Ze)])):d(``,!0),h(o).asn?(i(),_(`div`,Qe,[t[2]||=m(`span`,{class:`shrink-0 text-[0.8125rem] text-base-content/60`},` ASN `,-1),m(`span`,$e,` AS`+g(h(o).asn),1)])):d(``,!0),h(o).isp?(i(),_(`div`,et,[t[3]||=m(`span`,{class:`shrink-0 text-[0.8125rem] text-base-content/60`},` ISP `,-1),m(`span`,{class:`overflow-hidden text-right text-[0.8125rem] font-medium text-ellipsis whitespace-nowrap text-base-content`,title:h(o).isp},g(h(o).isp),9,tt)])):d(``,!0),h(o).isProxy!==void 0||h(o).isVPN!==void 0?(i(),_(`div`,nt,[m(`span`,rt,g(h(n)(`proxyDetection`)),1),m(`div`,it,[h(o).isProxy?(i(),_(`span`,at,` Proxy `)):d(``,!0),h(o).isVPN?(i(),_(`span`,ot,` VPN `)):d(``,!0),!h(o).isProxy&&!h(o).isVPN?(i(),_(`span`,st,g(h(n)(`clean`)),1)):d(``,!0)])])):d(``,!0)])):(i(),_(`div`,ct,g(h(n)(`noData`)),1))]))}}),{__name:`IPInfoCard`}),ut=5e3,dt=[{name:`Google`,url:`https://www.google.com/generate_204`},{name:`Cloudflare`,url:`https://cp.cloudflare.com/generate_204`},{name:`GitHub`,url:`https://github.com`}];async function ft(e){let t=new AbortController,n=setTimeout(()=>t.abort(),ut);try{let n=performance.now();await fetch(e,{method:`HEAD`,mode:`no-cors`,cache:`no-store`,signal:t.signal});let r=performance.now();return Math.round(r-n)}catch{return null}finally{clearTimeout(n)}}function pt(){let e=p(new Map),t=p(!1),n=p(dt);async function r(t,n){e.value.set(n,{url:n,latency:null,status:`pending`,timestamp:Date.now()});let r=await ft(n);return e.value.set(n,{url:n,latency:r,status:r===null?`error`:`success`,timestamp:Date.now()}),r}async function i(){t.value=!0;let e=n.value.map(e=>r(e.name,e.url));await Promise.all(e),t.value=!1}function a(t){return e.value.get(t)}return{results:e,isTestingAll:t,targets:n,testLatency:r,testAllLatencies:i,getResult:a,allResults:u(()=>n.value.map(t=>({name:t.name,url:t.url,result:e.value.get(t.url)}))),averageLatency:u(()=>{let t=Array.from(e.value.values()).filter(e=>e.status===`success`&&e.latency!==null);if(t.length===0)return null;let n=t.reduce((e,t)=>e+(t.latency??0),0);return Math.round(n/t.length)})}}var mt={class:`rounded-xl border border-base-content/10 p-4`,style:{background:`color-mix(in oklch, var(--color-base-200) 60%, transparent)`}},ht={class:`mb-3 flex items-center justify-between gap-2`},gt={class:`flex items-center gap-2`},_t={class:`m-0 text-base font-semibold text-base-content`},vt={class:`flex items-center gap-2`},yt=[`disabled`],bt={class:`flex flex-col gap-3`},xt={class:`w-20 shrink-0 overflow-hidden text-sm text-ellipsis whitespace-nowrap text-base-content`},St={class:`h-2 flex-1 overflow-hidden rounded-full bg-base-content/10`},Ct={class:`w-16 shrink-0 text-right font-mono text-sm text-base-content`},wt={key:0,class:`inline-block h-3 w-3 animate-spin rounded-full border-2 border-base-content/20 border-t-primary`},Tt={key:1},Et={key:2,class:`text-error`},Dt={key:3,class:`text-base-content/40`},Ot=Object.assign(n({__name:`LatencyCard`,setup(n){let{t:a}=ee(),{allResults:o,isTestingAll:c,testAllLatencies:l,averageLatency:u}=pt();e(()=>{l()});function p(e){return e==null?`bg-base-content/10 text-base-content/50`:e<100?`bg-success/15 text-success`:e<300?`bg-warning/15 text-warning`:`bg-error/15 text-error`}function y(e){return e==null?`0%`:`${Math.min(e/500*100,100)}%`}function b(e){return e==null?`bg-base-content/20`:e<100?`bg-success`:e<300?`bg-warning`:`bg-error`}return(e,n)=>(i(),_(`div`,mt,[m(`div`,ht,[m(`div`,gt,[s(h(ce),{class:`h-5 w-5 text-primary`}),m(`h3`,_t,g(h(a)(`networkLatency`)),1)]),m(`div`,vt,[h(u)===null?d(``,!0):(i(),_(`span`,{key:0,class:v([`rounded-md px-2 py-1 text-xs font-semibold`,p(h(u))])},g(h(a)(`average`))+`: `+g(h(u))+`ms `,3)),m(`button`,{class:v([`flex h-7 w-7 cursor-pointer items-center justify-center rounded-full border-none bg-transparent text-base-content/60 transition-all duration-200 hover:bg-base-content/10 hover:text-base-content disabled:cursor-not-allowed disabled:opacity-50`,{"animate-spin":h(c)}]),disabled:h(c),onClick:n[0]||=(...e)=>h(l)&&h(l)(...e)},[s(h(w),{class:`h-4 w-4`})],10,yt)])]),m(`div`,bt,[(i(!0),_(f,null,r(h(o),e=>(i(),_(`div`,{key:e.url,class:`flex items-center gap-3`},[m(`span`,xt,g(e.name),1),m(`div`,St,[m(`div`,{class:v([`h-full rounded-full transition-[width] duration-500 ease-out`,b(e.result?.latency)]),style:t({width:y(e.result?.latency)})},null,6)]),m(`span`,Ct,[e.result?.status===`pending`?(i(),_(`span`,wt)):e.result?.status===`success`?(i(),_(`span`,Tt,g(e.result.latency)+`ms `,1)):e.result?.status===`error`?(i(),_(`span`,Et,g(h(a)(`timeout`)),1)):(i(),_(`span`,Dt,`-`))])]))),128))])]))}}),{__name:`LatencyCard`}),kt={value:()=>{}};function At(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}jt.prototype=At.prototype={constructor:jt,on:function(e,t){var n=this._,r=Mt(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Ft.hasOwnProperty(t)?{space:Ft[t],local:e}:e}function Lt(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function Rt(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function zt(e){var t=It(e);return(t.local?Rt:Lt)(t)}function Bt(){}function Vt(e){return e==null?Bt:function(){return this.querySelector(e)}}function Ht(e){typeof e!=`function`&&(e=Vt(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function yn(e){e||=bn;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function xn(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Sn(){return Array.from(this)}function Cn(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Fn:typeof t==`function`?Ln:In)(e,t,n??``)):M(this.node(),e)}function M(e,t){return e.style.getPropertyValue(t)||Pn(e).getComputedStyle(e,null).getPropertyValue(t)}function zn(e){return function(){delete this[e]}}function Bn(e,t){return function(){this[e]=t}}function Vn(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Hn(e,t){return arguments.length>1?this.each((t==null?zn:typeof t==`function`?Vn:Bn)(e,t)):this.node()[e]}function Un(e){return e.trim().split(/^|\s+/)}function Wn(e){return e.classList||new Gn(e)}function Gn(e){this._node=e,this._names=Un(e.getAttribute(`class`)||``)}Gn.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function Kn(e,t){for(var n=Wn(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function xr(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Yr(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Yr(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Lr.exec(e))?new B(t[1],t[2],t[3],1):(t=Rr.exec(e))?new B(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=zr.exec(e))?Yr(t[1],t[2],t[3],t[4]):(t=Br.exec(e))?Yr(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Vr.exec(e))?ni(t[1],t[2]/100,t[3]/100,1):(t=Hr.exec(e))?ni(t[1],t[2]/100,t[3]/100,t[4]):Ur.hasOwnProperty(e)?Jr(Ur[e]):e===`transparent`?new B(NaN,NaN,NaN,0):null}function Jr(e){return new B(e>>16&255,e>>8&255,e&255,1)}function Yr(e,t,n,r){return r<=0&&(e=t=n=NaN),new B(e,t,n,r)}function Xr(e){return e instanceof Pr||(e=z(e)),e?(e=e.rgb(),new B(e.r,e.g,e.b,e.opacity)):new B}function Zr(e,t,n,r){return arguments.length===1?Xr(e):new B(e,t,n,r??1)}function B(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Mr(B,Zr,Nr(Pr,{brighter(e){return e=e==null?Fr:Fr**+e,new B(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?F:F**+e,new B(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new B(V(this.r),V(this.g),V(this.b),ti(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Qr,formatHex:Qr,formatHex8:$r,formatRgb:ei,toString:ei}));function Qr(){return`#${H(this.r)}${H(this.g)}${H(this.b)}`}function $r(){return`#${H(this.r)}${H(this.g)}${H(this.b)}${H((isNaN(this.opacity)?1:this.opacity)*255)}`}function ei(){let e=ti(this.opacity);return`${e===1?`rgb(`:`rgba(`}${V(this.r)}, ${V(this.g)}, ${V(this.b)}${e===1?`)`:`, ${e})`}`}function ti(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function V(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function H(e){return e=V(e),(e<16?`0`:``)+e.toString(16)}function ni(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new U(e,t,n,r)}function ri(e){if(e instanceof U)return new U(e.h,e.s,e.l,e.opacity);if(e instanceof Pr||(e=z(e)),!e)return new U;if(e instanceof U)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new U(o,s,c,e.opacity)}function ii(e,t,n,r){return arguments.length===1?ri(e):new U(e,t,n,r??1)}function U(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Mr(U,ii,Nr(Pr,{brighter(e){return e=e==null?Fr:Fr**+e,new U(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?F:F**+e,new U(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new B(si(e>=240?e-240:e+120,i,r),si(e,i,r),si(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new U(ai(this.h),oi(this.s),oi(this.l),ti(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=ti(this.opacity);return`${e===1?`hsl(`:`hsla(`}${ai(this.h)}, ${oi(this.s)*100}%, ${oi(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function ai(e){return e=(e||0)%360,e<0?e+360:e}function oi(e){return Math.max(0,Math.min(1,e||0))}function si(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var ci=e=>()=>e;function li(e,t){return function(n){return e+n*t}}function ui(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function di(e){return(e=+e)==1?fi:function(t,n){return n-t?ui(t,n,e):ci(isNaN(t)?n:t)}}function fi(e,t){var n=t-e;return n?li(e,n):ci(isNaN(e)?t:e)}var pi=(function e(t){var n=di(t);function r(e,t){var r=n((e=Zr(e)).r,(t=Zr(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=fi(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function W(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var mi=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hi=new RegExp(mi.source,`g`);function gi(e){return function(){return e}}function _i(e){return function(t){return e(t)+``}}function vi(e,t){var n=mi.lastIndex=hi.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=mi.exec(e))&&(i=hi.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:W(r,i)})),n=hi.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:W(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:W(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:W(e,n)},{i:s-2,x:W(t,r)})}else (n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t=0&&e._call.call(void 0,t),e=e._next;--G}function Bi(){q=(Mi=J.now())+Ni,G=Oi=0;try{zi()}finally{G=0,Hi(),q=0}}function Vi(){var e=J.now(),t=e-Mi;t>Ai&&(Ni-=t,Mi=e)}function Hi(){for(var e,t=ji,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:ji=n);K=e,Ui(r)}function Ui(e){G||(Oi&&=clearTimeout(Oi),e-q>24?(e<1/0&&(Oi=setTimeout(Bi,e-J.now()-Ni)),ki&&=clearInterval(ki)):(ki||=(Mi=J.now(),setInterval(Vi,Ai)),G=1,Pi(Bi)))}function Wi(e,t,n){var r=new Li;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Gi=At(`start`,`end`,`cancel`,`interrupt`),Ki=[];function qi(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Yi(e,n,{name:t,index:r,group:i,on:Gi,tween:Ki,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Ji(e,t){var n=X(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function Y(e,t){var n=X(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function X(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Yi(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Ri(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Wi(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Zi(e){return this.each(function(){Xi(this,e)})}function Qi(e,t){var n,r;return function(){var i=Y(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function Oa(e,t,n){var r,i,a=Da(t)?Ji:Y;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function ka(e,t){var n=this._id;return arguments.length<2?X(this.node(),n).on.on(e):this.each(Oa(n,e,t))}function Aa(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function ja(){return this.on(`end.remove`,Aa(this._id))}function Ma(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Vt(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o=0;)t+=n[r].value;e.value=t}function fo(){return this.eachAfter(uo)}function po(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function mo(e,t){for(var n=this,r=[n],i,a,o=-1;n=r.pop();)if(e.call(t,n,++o,this),i=n.children)for(a=i.length-1;a>=0;--a)r.push(i[a]);return this}function ho(e,t){for(var n=this,r=[n],i=[],a,o,s,c=-1;n=r.pop();)if(i.push(n),a=n.children)for(o=0,s=a.length;o=0;)n+=r[i].value;t.value=n})}function vo(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function yo(e){for(var t=this,n=bo(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function bo(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function xo(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function So(){return Array.from(this)}function Co(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function wo(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*To(){var e=this,t,n=[e],r,i,a;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,a=r.length;i=0;--s)i.push(a=o[s]=new Mo(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(jo)}function Do(){return Eo(this).eachBefore(Ao)}function Oo(e){return e.children}function ko(e){return Array.isArray(e)?e[1]:null}function Ao(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function jo(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function Mo(e){this.data=e,this.depth=this.height=0,this.parent=null}Mo.prototype=Eo.prototype={constructor:Mo,count:fo,each:po,eachAfter:ho,eachBefore:mo,find:go,sum:_o,sort:vo,path:yo,ancestors:xo,descendants:So,leaves:Co,links:wo,copy:Do,[Symbol.iterator]:To};function No(e,t){return e.parent===t.parent?1:2}function Po(e){var t=e.children;return t?t[0]:e.t}function Fo(e){var t=e.children;return t?t[t.length-1]:e.t}function Io(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function Lo(e){for(var t=0,n=0,r=e.children,i=r.length,a;--i>=0;)a=r[i],a.z+=t,a.m+=t,t+=a.s+(n+=a.c)}function Ro(e,t,n){return e.a.parent===t.parent?e.a:n}function zo(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}zo.prototype=Object.create(Mo.prototype);function Bo(e){for(var t=new zo(e,0),n,r=[t],i,a,o,s;n=r.pop();)if(a=n._.children)for(n.children=Array(s=a.length),o=s-1;o>=0;--o)r.push(i=n.children[o]=new zo(a[o],o)),i.parent=n;return(t.parent=new zo(null,0)).children=[t],t}function Vo(){var e=No,t=1,n=1,r=null;function i(i){var s=Bo(i);if(s.eachAfter(a),s.parent.m=-s.z,s.eachBefore(o),r)i.eachBefore(c);else{var l=i,u=i,d=i;i.eachBefore(function(e){e.xu.x&&(u=e),e.depth>d.depth&&(d=e)});var f=l===u?1:e(l,u)/2,p=f-l.x,m=t/(u.x+f+p),h=n/(d.depth||1);i.eachBefore(function(e){e.x=(e.x+p)*m,e.y=e.depth*h})}return i}function a(t){var n=t.children,r=t.parent.children,i=t.i?r[t.i-1]:null;if(n){Lo(t);var a=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+e(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+e(t._,i._));t.parent.A=s(t,i,t.parent.A||r[0])}function o(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(t,n,r){if(n){for(var i=t,a=t,o=n,s=i.parent.children[0],c=i.m,l=a.m,u=o.m,d=s.m,f;o=Fo(o),i=Po(i),o&&i;)s=Po(s),a=Fo(a),a.a=t,f=o.z+u-i.z-c+e(o._,i._),f>0&&(Io(Ro(o,t,r),t,f),c+=f,l+=f),u+=o.m,c+=i.m,d+=s.m,l+=a.m;o&&!Fo(a)&&(a.t=o,a.m+=u-l),i&&!Po(s)&&(s.t=i,s.m+=c-d,r=t)}return r}function c(e){e.x*=t,e.y=e.depth*n}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],i):r?null:[t,n]},i.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],i):r?[t,n]:null},i}function $(e,t,n){this.k=e,this.x=t,this.y=n}$.prototype={constructor:$,scale:function(e){return e===1?this:new $(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new $(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var Ho=new $(1,0,0);Uo.prototype=$.prototype;function Uo(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Ho;return e.__zoom}var Wo={class:`mb-4 flex items-center justify-between`},Go={class:`flex items-center gap-2`},Ko=[`title`],qo={class:`flex flex-wrap gap-2 text-sm text-base-content/60`},Jo={class:`mb-4 flex flex-wrap gap-4 text-xs`},Yo={class:`flex items-center gap-1`},Xo={class:`flex items-center gap-1`},Zo={class:`flex items-center gap-1`},Qo={class:`flex items-center gap-1`},$o={class:`flex items-center gap-1`},es={key:0,class:`flex flex-col items-center justify-center py-8 text-base-content/60`},ts=Object.assign(n({__name:`NetworkTopology`,setup(t){let{t:n}=ee(),r=he(),d=de(),f=p(null),b=p(null),S=p(new Set),T=p(!1),E=p(null),re=u(()=>T.value&&E.value?E.value:r.activeConnections),D=null,oe=null,se=null;function ce(e,t=`600 11px sans-serif`){se||=document.createElement(`canvas`);let n=se.getContext(`2d`);return n?(n.font=t,n.measureText(e).width):e.length*7}let le=!1;function fe(){le||(le=!0,requestAnimationFrame(()=>{le=!1,be()}))}let pe=u(()=>{let e=re.value,t=new Map;e.forEach(e=>{let n=e.metadata.sourceIP||`Unknown`,r=String(e.metadata.sourcePort||`Unknown`),i=e.rule||`Direct`,a=e.rulePayload,o=a?`${i}: ${a}`:i,s=e.chains||[],c=s[0]??`Direct`,l=s.length>1?s[1]??`Direct`:s[0]??`Direct`,u=e.download+e.upload;t.has(l)||t.set(l,{data:{id:`group-${l}`,name:l,type:`group`,connections:0,traffic:0},proxies:new Map});let d=t.get(l);d.data.connections++,d.data.traffic+=u,d.proxies.has(c)||d.proxies.set(c,{data:{id:`proxy-${l}-${c}`,name:c,type:`proxy`,connections:0,traffic:0},rules:new Map});let f=d.proxies.get(c);f.data.connections++,f.data.traffic+=u,f.rules.has(o)||f.rules.set(o,{data:{id:`rule-${l}-${c}-${o}`,name:o,type:`rule`,connections:0,traffic:0},clients:new Map});let p=f.rules.get(o);p.data.connections++,p.data.traffic+=u,p.clients.has(n)||p.clients.set(n,{data:{id:`client-${l}-${c}-${o}-${n}`,name:n,type:`client`,connections:0,traffic:0},ports:new Map});let m=p.clients.get(n);m.data.connections++,m.data.traffic+=u,m.ports.has(r)||m.ports.set(r,{id:`port-${l}-${c}-${o}-${n}-${r}`,name:r,type:`port`,connections:0,traffic:0});let h=m.ports.get(r);h.connections++,h.traffic+=u});let n=[];function r(e,t=!1){return(S.value.has(e.id)||t)&&e.children&&e.children.length>0?{...e,_children:e.children,children:void 0,collapsed:!0}:{...e,collapsed:!1}}return t.forEach(e=>{let t={...e.data,children:[]};e.proxies.forEach(e=>{let n={...e.data,children:[]};e.rules.forEach(e=>{let t={...e.data,children:[]};e.clients.forEach(e=>{let n=Array.from(e.ports.values()),r=S.value.has(`expanded-${e.data.id}`)?{...e.data,children:n,collapsed:!1}:{...e.data,_children:n,children:void 0,collapsed:!0};t.children.push(r)}),!S.value.has(`expanded-${e.data.id}`)&&t.children.length>0?(t._children=t.children,t.children=void 0,t.collapsed=!0):t.collapsed=!1,n.children.push(t)});let i=r(n);t.children.push(i)});let i=r(t);n.push(i)}),{id:`root`,name:`Connections`,type:`root`,connections:e.length,traffic:e.reduce((e,t)=>e+t.download+t.upload,0),children:n}}),O=u(()=>{let e=re.value,t=new Set,n=new Set,r=new Set,i=new Set;return e.forEach(e=>{t.add(e.metadata.sourceIP||`Unknown`),n.add(e.rule||`Direct`);let a=e.chains||[];i.add(a[0]??`Direct`),r.add(a.length>1?a[1]??`Direct`:a[0]??`Direct`)}),{clientCount:t.size,ruleCount:n.size,groupCount:r.size,proxyCount:i.size,totalTraffic:e.reduce((e,t)=>e+t.download+t.upload,0)}});function ge(){let e=me();return{root:{fill:e.neutral,bg:`color-mix(in oklch, ${e.neutral} 15%, transparent)`},client:{fill:e.primary,bg:`color-mix(in oklch, ${e.primary} 15%, transparent)`},port:{fill:e.warning,bg:`color-mix(in oklch, ${e.warning} 15%, transparent)`},rule:{fill:e.secondary,bg:`color-mix(in oklch, ${e.secondary} 15%, transparent)`},group:{fill:e.accent,bg:`color-mix(in oklch, ${e.accent} 15%, transparent)`},proxy:{fill:e.info,bg:`color-mix(in oklch, ${e.info} 15%, transparent)`},baseContent:e.baseContent}}function _e(){let e=d.curTheme;return D&&oe===e?D:(D=ge(),oe=e,D)}function A(e){return _e()[e].fill}function ve(e){return _e()[e].bg}function j(e){switch(e){case`client`:return ne;case`port`:return C;case`rule`:return ue;case`group`:return ae;case`proxy`:return ie;default:return ae}}function ye(e,t){let n=`expanded-${e}`;t?e.startsWith(`rule-`)||e.startsWith(`client-`)?S.value.add(n):S.value.delete(e):e.startsWith(`rule-`)||e.startsWith(`client-`)?S.value.delete(n):S.value.add(e)}function be(){if(!f.value||!b.value)return;let e=pe.value;if(!e.children||e.children.length===0)return;jr(f.value).selectAll(`*`).remove();let t=Eo(e),n=b.value.clientWidth;Vo().nodeSize([50,100]).separation((e,t)=>e.parent===t.parent?1:1.5)(t);let r=new Map,i=t.descendants();for(let e of i)if(e.data.type!==`root`){let t=ce(e.data.name),n=e.data.children&&e.data.children.length>0||e.data._children&&e.data._children.length>0?20:0;r.set(e.data.id,t+32+n)}function a(e){return r.get(e.data.id)??80}let o=new Map;t.descendants().forEach(e=>{if(e.data.type!==`root`){let t=a(e),n=o.get(e.depth)??0;o.set(e.depth,Math.max(n,t))}});let s=new Map,c=0;for(let e=1;e<=o.size;e++){let t=o.get(e)??100;if(e===1)c=t/2;else{let n=o.get(e-1)??100;c+=n/2+40+t/2}s.set(e,c)}t.descendants().forEach(e=>{e.data.type!==`root`&&e.depth>0&&(e.y=s.get(e.depth)??e.y)});let l=1/0,u=-1/0;t.each(e=>{let t=e.x??0;tu&&(u=t)});let d=u-l+50,p=Math.max(400,d+25+40),m=0;t.each(e=>{if(e.data.type!==`root`){let t=r.get(e.data.id)??80,n=(e.y??0)+t/2;n>m&&(m=n)}});let h=Math.max(n,m+60+40),g=jr(f.value).attr(`width`,h).attr(`height`,p).append(`g`).attr(`transform`,`translate(60, ${-l+50/2+25})`),_=_e(),v=t.links().filter(e=>e.source.data.type!==`root`);g.selectAll(`.link`).data(v).join(`path`).attr(`class`,`link`).attr(`d`,e=>{let t=e.source,n=e.target,r=a(t),i=a(n),o=t.y-0+r/2,s=t.x,c=n.y-0-i/2,l=n.x,u=(o+c)/2;return`M${o},${s} C${u},${s} ${u},${l} ${c},${l}`}).attr(`fill`,`none`).attr(`stroke`,_.baseContent).attr(`stroke-opacity`,.3).attr(`stroke-width`,e=>Math.max(1,Math.min(4,e.target.data.connections/5)));let y=g.selectAll(`.node`).data(t.descendants().filter(e=>e.data.type!==`root`)).join(`g`).attr(`class`,`node`).attr(`transform`,e=>`translate(${(e.y??0)-0},${e.x})`).style(`cursor`,e=>e.data.children&&e.data.children.length>0||e.data._children&&e.data._children.length>0?`pointer`:`default`).on(`click`,(e,t)=>{(t.data.children&&t.data.children.length>0||t.data._children&&t.data._children.length>0)&&ye(t.data.id,t.data.collapsed??!1)});y.append(`text`).attr(`dy`,-30/2-4).attr(`text-anchor`,`middle`).attr(`fill`,e=>A(e.data.type)).attr(`font-size`,`10px`).attr(`font-weight`,`500`).text(e=>`${e.data.connections}`),y.append(`rect`).attr(`x`,e=>-a(e)/2).attr(`y`,-30/2).attr(`width`,e=>a(e)).attr(`height`,30).attr(`rx`,6).attr(`fill`,e=>ve(e.data.type)).attr(`stroke`,e=>A(e.data.type)).attr(`stroke-width`,2),y.filter(e=>!!(e.data.children&&e.data.children.length>0||e.data._children&&e.data._children.length>0)).append(`text`).attr(`x`,e=>a(e)/2-12).attr(`dy`,`0.35em`).attr(`text-anchor`,`middle`).attr(`fill`,e=>A(e.data.type)).attr(`font-size`,`14px`).attr(`font-weight`,`700`).text(e=>e.data.collapsed?`+`:`−`),y.append(`text`).attr(`dy`,`0.31em`).attr(`text-anchor`,`middle`).attr(`fill`,e=>A(e.data.type)).attr(`font-size`,`11px`).attr(`font-weight`,`600`).text(e=>e.data.name),y.append(`title`).text(e=>`${e.data.name}\n${e.data.connections} connections\n${k(e.data.traffic).toString()}`)}function xe(){T.value?E.value=null:E.value=[...r.activeConnections],T.value=!T.value}return l([()=>pe.value,()=>d.curTheme],()=>{o(fe)},{deep:!0}),e(()=>{o(fe);let e=new ResizeObserver(()=>fe());b.value&&e.observe(b.value),c(()=>{e.disconnect(),se=null,D=null})}),(e,t)=>(i(),_(`div`,null,[m(`div`,Wo,[m(`div`,Go,[m(`button`,{class:v([`flex h-6 w-6 cursor-pointer items-center justify-center rounded-full border-none bg-transparent text-base-content transition-all duration-200 ease-in-out hover:bg-base-content/10`,{"text-warning":h(T)}]),title:h(T)?h(n)(`resume`):h(n)(`pause`),onClick:xe},[h(T)?(i(),y(h(te),{key:0,class:`h-4 w-4`})):(i(),y(h(x),{key:1,class:`h-4 w-4`}))],10,Ko)]),m(`div`,qo,[m(`span`,null,g(h(O).clientCount)+` `+g(h(n)(`clients`)),1),t[0]||=m(`span`,null,`·`,-1),m(`span`,null,g(h(O).ruleCount)+` `+g(h(n)(`rules`)),1),t[1]||=m(`span`,null,`·`,-1),m(`span`,null,g(h(O).groupCount)+` `+g(h(n)(`groups`)),1),t[2]||=m(`span`,null,`·`,-1),m(`span`,null,g(h(O).proxyCount)+` `+g(h(n)(`nodes`)),1),t[3]||=m(`span`,null,`·`,-1),m(`span`,null,g(h(k)(h(O).totalTraffic).toString()),1)])]),m(`div`,Jo,[m(`div`,Yo,[(i(),y(a(j(`group`)),{class:`h-4 w-4 text-accent`})),m(`span`,null,g(h(n)(`proxyGroups`)),1)]),m(`div`,Xo,[(i(),y(a(j(`proxy`)),{class:`h-4 w-4 text-info`})),m(`span`,null,g(h(n)(`proxyNodes`)),1)]),m(`div`,Zo,[(i(),y(a(j(`rule`)),{class:`h-4 w-4 text-secondary`})),m(`span`,null,g(h(n)(`rules`)),1)]),m(`div`,Qo,[(i(),y(a(j(`client`)),{class:`h-4 w-4 text-primary`})),m(`span`,null,g(h(n)(`sourceIP`)),1)]),m(`div`,$o,[(i(),y(a(j(`port`)),{class:`h-4 w-4 text-warning`})),m(`span`,null,g(h(n)(`sourcePort`)),1)])]),h(re).length===0?(i(),_(`div`,es,[s(h(w),{class:`mb-2 h-8 w-8 animate-pulse`}),m(`span`,null,g(h(n)(`waitingForConnections`)),1)])):(i(),_(`div`,{key:1,ref_key:`containerRef`,ref:b,class:`touch-pan-x touch-pan-y overflow-x-auto`},[(i(),_(`svg`,{ref_key:`svgRef`,ref:f,class:`min-h-[25rem]`},null,512))],512))]))}}),{__name:`NetworkTopology`}),ns={class:`flex h-full flex-col gap-4 overflow-x-hidden overflow-y-auto p-2`},rs={class:`grid min-w-0 grid-cols-2 gap-3 sm:grid-cols-3 xl:grid-cols-6`},is={class:`overview-stat-card animate-fade-slide-in flex min-w-0 items-center gap-3 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-4 transition-all duration-200 [animation-delay:0ms] hover:z-10 hover:-translate-y-0.5 hover:border-base-content/20`},as={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-[0.625rem] bg-success/15 text-success`},os={class:`flex w-full min-w-0 flex-col gap-0.5 overflow-hidden`},ss={class:`text-xs leading-tight break-words text-base-content/60`},cs={class:`text-base font-semibold whitespace-nowrap text-base-content tabular-nums`},ls={class:`overview-stat-card animate-fade-slide-in flex min-w-0 items-center gap-3 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-4 transition-all duration-200 [animation-delay:50ms] hover:z-10 hover:-translate-y-0.5 hover:border-base-content/20`},us={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-[0.625rem] bg-info/15 text-info`},ds={class:`flex w-full min-w-0 flex-col gap-0.5 overflow-hidden`},fs={class:`text-xs leading-tight break-words text-base-content/60`},ps={class:`text-base font-semibold whitespace-nowrap text-base-content tabular-nums`},ms={class:`overview-stat-card animate-fade-slide-in flex min-w-0 items-center gap-3 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-4 transition-all duration-200 [animation-delay:100ms] hover:z-10 hover:-translate-y-0.5 hover:border-base-content/20`},hs={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-[0.625rem] bg-secondary/15 text-secondary`},gs={class:`flex w-full min-w-0 flex-col gap-0.5 overflow-hidden`},_s={class:`text-xs leading-tight break-words text-base-content/60`},vs={class:`text-base font-semibold whitespace-nowrap text-base-content tabular-nums`},ys={class:`overview-stat-card animate-fade-slide-in flex min-w-0 items-center gap-3 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-4 transition-all duration-200 [animation-delay:150ms] hover:z-10 hover:-translate-y-0.5 hover:border-base-content/20`},bs={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-[0.625rem] bg-secondary/15 text-secondary`},xs={class:`flex w-full min-w-0 flex-col gap-0.5 overflow-hidden`},Ss={class:`text-xs leading-tight break-words text-base-content/60`},Cs={class:`text-base font-semibold whitespace-nowrap text-base-content tabular-nums`},ws={class:`overview-stat-card animate-fade-slide-in flex min-w-0 items-center gap-3 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-4 transition-all duration-200 [animation-delay:200ms] hover:z-10 hover:-translate-y-0.5 hover:border-base-content/20`},Ts={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-[0.625rem] bg-warning/15 text-warning`},Es={class:`flex w-full min-w-0 flex-col gap-0.5 overflow-hidden`},Ds={class:`text-xs leading-tight break-words text-base-content/60`},Os={class:`text-base font-semibold whitespace-nowrap text-base-content tabular-nums`},ks={class:`overview-stat-card animate-fade-slide-in flex min-w-0 items-center gap-3 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-4 transition-all duration-200 [animation-delay:250ms] hover:z-10 hover:-translate-y-0.5 hover:border-base-content/20`},As={class:`flex h-10 w-10 shrink-0 items-center justify-center rounded-[0.625rem] bg-error/15 text-error`},js={class:`flex w-full min-w-0 flex-col gap-0.5 overflow-hidden`},Ms={class:`text-xs leading-tight break-words text-base-content/60`},Ns={class:`text-base font-semibold whitespace-nowrap text-base-content tabular-nums`},Ps={key:0,class:`animate-fade-slide-in flex items-center justify-center gap-2 rounded-lg border border-primary/15 bg-primary/8 px-4 py-3 [animation-delay:300ms]`},Fs={class:`text-sm text-base-content/60`},Is={class:`font-mono text-sm font-medium text-base-content`},Ls={class:`grid min-w-0 grid-cols-1 gap-4 lg:grid-cols-2 xl:grid-cols-3`},Rs={class:`animate-fade-slide-in h-72 min-w-0 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-2 [animation-delay:350ms] lg:h-80`},zs={class:`animate-fade-slide-in h-72 min-w-0 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-2 [animation-delay:400ms] lg:h-80`},Bs={class:`animate-fade-slide-in h-72 min-w-0 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-2 [animation-delay:450ms] lg:h-80`},Vs={class:`animate-fade-slide-in h-72 min-w-0 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-2 [animation-delay:500ms] lg:h-80`},Hs={class:`animate-fade-slide-in h-72 min-w-0 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-2 [animation-delay:550ms] lg:h-80`},Us={class:`animate-fade-slide-in h-72 min-w-0 overflow-hidden rounded-xl border border-base-content/10 bg-base-200 p-2 [animation-delay:600ms] lg:h-80`},Ws={class:`grid grid-cols-1 gap-4 md:grid-cols-2`},Gs={class:`rounded-xl border border-base-content/10 bg-base-200 p-4`},Ks={class:`flex items-center gap-2 font-semibold text-base-content`},qs={class:`flex h-6 w-6 cursor-pointer items-center justify-center rounded-full border-none bg-transparent text-base-content transition-colors duration-200 hover:bg-base-content/10`},Js=n({__name:`overview`,setup(t){let{t:n}=ee();E({title:u(()=>n(`overview`))});let r=fe(),a=he(),o=b(),c=de(),f=_e(),x=e=>k(e).toString();e(()=>{f.proxies.length===0&&f.fetchProxies()});let C=u(()=>(c.curTheme,O())),w=p(),te=p(),ne=p(),D=u(()=>[{name:n(`down`),color:C.value.seriesColors[0]},{name:n(`up`),color:C.value.seriesColors[1]}]),ce=u(()=>[[...r.trafficChartHistory.download],[...r.trafficChartHistory.upload]]),ue=u(()=>[{name:n(`memory`),color:C.value.seriesColors[2]}]),pe=u(()=>[[...r.memoryChartHistory]]),me=u(()=>[{name:n(`activeConnections`),color:C.value.seriesColors[3]}]),ge=u(()=>[[...r.connectionCountHistory]]),A=u(()=>({chart:{type:`pie`,backgroundColor:C.value.backgroundColor,animation:!1},credits:{enabled:!1},accessibility:{enabled:!1},title:{text:n(`flow`),style:{color:C.value.textColor}},tooltip:{pointFormatter(){let e=this.y||0,t=this.percentage||0;return`${this.name}
${k(e).toString()} (${t.toFixed(1)}%)`}},plotOptions:{pie:{allowPointSelect:!0,cursor:`pointer`,dataLabels:{enabled:!1},showInLegend:!0,animation:!1}},legend:{itemStyle:{color:C.value.textColor},itemHoverStyle:{color:C.value.textColorHover}},series:[{type:`pie`,name:n(`flow`),data:[{name:n(`downloadTotal`),y:a.latestConnectionMsg?.downloadTotal||0,color:C.value.seriesColors[0]},{name:n(`uploadTotal`),y:a.latestConnectionMsg?.uploadTotal||0,color:C.value.seriesColors[1]}]}]})),ve=u(()=>{let e=a.activeConnections,t=0,r=0,i=0;return e.forEach(e=>{let n=e.metadata.network?.toLowerCase()||``;n===`tcp`?t++:n===`udp`?r++:i++}),{chart:{type:`pie`,backgroundColor:C.value.backgroundColor,animation:!1},credits:{enabled:!1},accessibility:{enabled:!1},title:{text:n(`networkTypes`),style:{color:C.value.textColor}},tooltip:{pointFormatter(){let e=this.y||0,t=this.percentage||0;return`${this.name}: ${e} (${t.toFixed(1)}%)`}},plotOptions:{pie:{allowPointSelect:!0,cursor:`pointer`,dataLabels:{enabled:!1},showInLegend:!0,animation:!1}},legend:{itemStyle:{color:C.value.textColor},itemHoverStyle:{color:C.value.textColorHover}},series:[{type:`pie`,name:n(`networkTypes`),data:[{name:n(`tcp`),y:t,color:C.value.seriesColors[0]},{name:n(`udp`),y:r,color:C.value.seriesColors[1]},...i>0?[{name:n(`other`),y:i,color:C.value.seriesColors[2]}]:[]]}]}}),ye=u(()=>{let e=a.speedGroupByName,t=Object.entries(e).filter(([e])=>!f.isProxyGroup(e)).sort(([,e],[,t])=>t-e).slice(0,5),r=t.map(([e])=>e),i=t.map(([,e])=>e);return{chart:{type:`bar`,backgroundColor:C.value.backgroundColor,animation:!1},credits:{enabled:!1},accessibility:{enabled:!1},title:{text:n(`topProxies`),style:{color:C.value.textColor}},xAxis:{categories:r,labels:{style:{color:C.value.textColor}},lineColor:C.value.lineColor},yAxis:{title:{text:void 0},labels:{style:{color:C.value.textColor},formatter(){return`${k(this.value).toString()}/s`}},gridLineColor:C.value.gridLineColor,min:0},tooltip:{formatter(){return`${r[this.x]||this.x}
${k(this.y).toString()}/s`}},legend:{enabled:!1},plotOptions:{bar:{dataLabels:{enabled:!1},animation:!1}},series:[{type:`bar`,name:n(`traffic`),data:i,color:C.value.seriesColors[0]}]}}),be=r.trafficChartHistory.download.at(-1)?.[0]??0,Se=r.memoryChartHistory.at(-1)?.[0]??0,Ce=r.connectionCountHistory.at(-1)?.[0]??0;return l(()=>r.latestTraffic,e=>{if(e&&w.value?.chartRef){let t=Date.now();t>be&&(w.value.chartRef.addPoints([{seriesIndex:0,time:t,value:e.down},{seriesIndex:1,time:t,value:e.up}]),be=t)}}),l(()=>r.latestMemory?.inuse,e=>{if(e&&te.value?.chartRef){let t=Date.now();t>Se&&(te.value.chartRef.addPoint(0,t,e),Se=t)}}),l(()=>a.latestConnectionMsg?.connections?.length,e=>{if(e!==void 0&&ne.value?.chartRef){let t=Date.now();t>Ce&&(ne.value.chartRef.addPoint(0,t,e),Ce=t)}}),(e,t)=>{let l=j,u=xe,f=lt,p=Ot,b=ts;return i(),_(`div`,ns,[m(`div`,rs,[m(`div`,is,[m(`div`,as,[s(h(se),{size:20})]),m(`div`,os,[m(`span`,ss,g(h(n)(`upload`)),1),m(`span`,cs,g(x(h(r).latestTraffic?.up||0))+`/s `,1)])]),m(`div`,ls,[m(`div`,us,[s(h(oe),{size:20})]),m(`div`,ds,[m(`span`,fs,g(h(n)(`download`)),1),m(`span`,ps,g(x(h(r).latestTraffic?.down||0))+`/s `,1)])]),m(`div`,ms,[m(`div`,hs,[s(h(S),{size:20})]),m(`div`,gs,[m(`span`,_s,g(h(n)(`uploadTotal`)),1),m(`span`,vs,g(x(h(a).latestConnectionMsg?.uploadTotal||0)),1)])]),m(`div`,ys,[m(`div`,bs,[s(h(S),{size:20})]),m(`div`,xs,[m(`span`,Ss,g(h(n)(`downloadTotal`)),1),m(`span`,Cs,g(x(h(a).latestConnectionMsg?.downloadTotal||0)),1)])]),m(`div`,ws,[m(`div`,Ts,[s(h(le),{size:20})]),m(`div`,Es,[m(`span`,Ds,g(h(n)(`activeConnections`)),1),m(`span`,Os,g(h(a).latestConnectionMsg?.connections?.length||0),1)])]),m(`div`,ks,[m(`div`,As,[s(h(T),{size:20})]),m(`div`,js,[m(`span`,Ms,g(h(n)(`memoryUsage`)),1),m(`span`,Ns,g(x(h(r).latestMemory?.inuse||0)),1)])])]),h(o).currentEndpoint?.url?(i(),_(`div`,Ps,[s(h(ie),{size:18,class:`text-primary`}),m(`span`,Fs,g(h(n)(`connectedTo`))+`:`,1),m(`span`,Is,g(h(o).currentEndpoint?.url),1)])):d(``,!0),m(`div`,Ls,[m(`div`,Rs,[s(l,{ref_key:`trafficChartRef`,ref:w,title:h(n)(`traffic`),"series-config":h(D),"initial-data":h(ce),"is-loading":!h(r).latestTraffic},null,8,[`title`,`series-config`,`initial-data`,`is-loading`])]),m(`div`,zs,[s(u,{options:h(A),"is-loading":!h(a).latestConnectionMsg},null,8,[`options`,`is-loading`])]),m(`div`,Bs,[s(l,{ref_key:`memoryChartRef`,ref:te,title:h(n)(`memory`),"series-config":h(ue),"initial-data":h(pe),"is-loading":!h(r).latestMemory},null,8,[`title`,`series-config`,`initial-data`,`is-loading`])]),m(`div`,Vs,[s(l,{ref_key:`connectionsChartRef`,ref:ne,title:h(n)(`connectionsChart`),"series-config":h(me),"initial-data":h(ge),"is-loading":!h(a).latestConnectionMsg,"value-mode":`number`},null,8,[`title`,`series-config`,`initial-data`,`is-loading`])]),m(`div`,Hs,[s(u,{options:h(ve),"is-loading":!h(a).latestConnectionMsg},null,8,[`options`,`is-loading`])]),m(`div`,Us,[s(u,{options:h(ye),"is-loading":!h(a).latestConnectionMsg},null,8,[`options`,`is-loading`])])]),m(`div`,Ws,[s(f),s(p)]),m(`div`,Gs,[m(`div`,{class:`flex cursor-pointer items-center justify-between`,onClick:t[0]||=e=>h(c).showNetworkTopology=!h(c).showNetworkTopology},[m(`div`,Ks,[s(h(ae),{size:20}),m(`h3`,null,g(h(n)(`networkTopology`)),1)]),m(`button`,qs,[s(h(re),{size:20,class:v([`transition-transform duration-300`,{"rotate-180":h(c).showNetworkTopology}])},null,8,[`class`])])]),h(c).showNetworkTopology?(i(),y(b,{key:0,class:`mt-4`})):d(``,!0)])])}}});export{Js as default};