internal/dashboard/frontend/dist/assets/useChartStats-Y1UF0N8D.js

import{D as e,E as t,S as n,T as r}from"./chart-DXupaYdX.js";import{Bt as i,Dt as a,En as o,Et as s,G as c,Gt as l,It as u,On as d,Pt as f,Rt as p,St as m,Vt as h,Wt as g,bt as _,cn as v,f as y,ht as b,st as x,t as S,tn as C,vt as w,yt as T,zt as E}from"./_plugin-vue_export-helper-Df8BHgqR.js";import{L as D,P as O,j as k,u as A,w as j,x as M}from"./index-BanWZHpm.js";var N={},P={class:`flex max-h-[50vh] w-full shrink-0 flex-col overflow-hidden rounded-lg border border-stone-800 bg-stone-900 md:h-full md:max-h-none md:w-64`};function F(e,t){return u(),m(`aside`,P,[E(e.$slots,`default`)])}var I=S(N,[[`render`,F]]),L={class:`px-1.5 py-1 text-right text-stone-500`},R={key:0},z={key:1},B={class:`flex items-center justify-end gap-0.5`},V=S(a({__name:`SidebarListItem`,props:{value:{},label:{},count:{},isSelected:{type:Boolean},type:{}},emits:[`click`,`exclude`],setup(e,{emit:t}){return(t,n)=>{let r=i(`router-link`);return u(),m(`div`,{class:o([`group ip-list-item`,{selected:e.isSelected}])},[T(`div`,{onClick:n[0]||=e=>t.$emit(`click`),class:`label cursor-pointer truncate px-1.5 py-1`},d(e.label??e.value),1),T(`div`,L,[e.count===void 0?(u(),m(`span`,z,``)):(u(),m(`span`,R,` (`+d(e.count)+`) `,1))]),T(`div`,{class:o([`px-1.5 py-1 group-hover:opacity-100`,{"opacity-20":!e.isSelected}])},[T(`div`,B,[s(r,{to:`/${e.type}/${e.value}`,class:`ip-list-btn`,title:`View IP Details`},{default:l(()=>[(u(),_(h(v(k).externalLink),{size:`14`}))]),_:1},8,[`to`]),T(`button`,{onClick:n[1]||=D(e=>t.$emit(`exclude`),[`stop`]),class:`ip-list-btn`,title:`Filter out IP`},[s(v(y),{size:`14`})])])],2)],2)}}}),[[`__scopeId`,`data-v-91a46db0`]]),H={class:`sticky top-0 z-10 flex shrink-0 cursor-pointer items-center justify-between bg-stone-900 p-2 text-xs font-bold`},U={class:`flex items-center gap-1`},W={class:`sidebar-list-content flex flex-col gap-0.5 px-1.5 py-1`},G=S(a({__name:`SidebarList`,props:{title:{},items:{},type:{},selectedItem:{},open:{type:Boolean}},emits:[`click`,`exclude`],setup(e){let t=e,n=C(null);return f(()=>{t.open&&n.value&&(n.value.open=!0)}),(t,r)=>(u(),m(`details`,{ref_key:`detailsRef`,ref:n,class:`sidebar-list`,name:`sidebar-accordion`},[T(`summary`,H,[T(`div`,U,[s(v(c),{class:`icon transition-transform`,size:`14`}),T(`span`,null,d(e.title)+` (`+d(e.items.length)+`)`,1)]),E(t.$slots,`header-actions`,{},void 0,!0)]),T(`div`,W,[(u(!0),m(b,null,p(e.items,n=>(u(),_(V,{key:n.value,type:e.type,value:n.value,label:n.label,count:n.count,"is-selected":e.selectedItem===n.value,onClick:e=>t.$emit(`click`,n.value),onExclude:e=>t.$emit(`exclude`,n.value)},null,8,[`type`,`value`,`label`,`count`,`is-selected`,`onClick`,`onExclude`]))),128))])],512))}}),[[`__scopeId`,`data-v-acc42565`]]),K=e(t(),1);function q(e,t,i,a,o,s,c){let l=M().state,u=j(),{selectedIP:d,selectedPort:f,selectedCountry:p,selectedCount:m,selectedIPCount:h}=O(u);function _(){if(!(!e.value||!e.value.data?.length)){if(!d.value&&!f.value&&!p.value){v();return}d.value?w(d.value):f.value?E(f.value):p.value&&k(p.value)}}function v(){if(!e.value||!e.value.data?.length)return;let n={"marker.color":[t.value.slice()],"marker.opacity":[1]};o?.value?n[`marker.size`]=[o.value.slice()]:n[`marker.size`]=[6],K.default.restyle(e.value,n),m.value=0,h.value=0}function y(){u.resetSelection(),v()}function b(e){l.remote_addr.includes(`!`+e)?l.remote_addr=l.remote_addr.filter(t=>t!==`!`+e):l.remote_addr=[...l.remote_addr,`!`+e]}function S(){d.value&&(b(d.value),y())}function C(e){if(d.value===e){y();return}d.value=e,f.value=void 0,p.value=void 0,w(e)}function w(a){if(!e.value||!e.value.data?.length)return;let c=e=>Array.isArray(e)?e.includes(a):e===a,l=new Set,u=i.value.reduce((e,t,n)=>c(t)?(Array.isArray(t)?t.forEach(e=>l.add(e)):l.add(t),e+(s?.value?.[n]||1)):e,0),d=t.value.map((e,t)=>c(i.value[t])?n:e),f=i.value.map(e=>c(e)?1:r),p={"marker.color":[d],"marker.opacity":[f],"marker.line.width":[0]};o?.value?p[`marker.size`]=[o.value]:p[`marker.size`]=[i.value.map(e=>c(e)?7:4)],K.default.restyle(e.value,p),m.value=u,h.value=l.size}function T(e){let t=Number(e);if(f.value===t){y();return}f.value=t,d.value=void 0,p.value=void 0,E(t)}function E(c){if(!e.value||!e.value.data?.length||!a?.value)return;let l=new Set,u=a.value.reduce((e,t,n)=>{if(t===c){let t=i.value[n];return Array.isArray(t)?t.forEach(e=>l.add(e)):l.add(t),e+(s?.value?.[n]||1)}return e},0),d=t.value.map((e,t)=>a.value[t]===c?n:e),f=a.value.map(e=>e===c?1:r),p={"marker.color":[d],"marker.opacity":[f],"marker.line.width":[0]};o?.value?p[`marker.size`]=[o.value]:p[`marker.size`]=[a.value.map(e=>e===c?7:4)],K.default.restyle(e.value,p),m.value=u,h.value=l.size}function D(e){if(p.value===e){y();return}p.value=e,d.value=void 0,f.value=void 0,k(e)}function k(a){if(!e.value||!e.value.data?.length||!c?.value)return;let l=new Set,u=c.value.reduce((e,t,n)=>{if(t===a){let t=i.value[n];return Array.isArray(t)?t.forEach(e=>l.add(e)):l.add(t),e+(s?.value?.[n]||1)}return e},0),d=t.value.map((e,t)=>c.value[t]===a?n:e),f=c.value.map(e=>e===a?1:r),p={"marker.color":[d],"marker.opacity":[f],"marker.line.width":[0]};o?.value?p[`marker.size`]=[o.value]:p[`marker.size`]=[c.value.map(e=>e===a?7:4)],K.default.restyle(e.value,p),m.value=u,h.value=l.size}function A(e){let t=document.activeElement;t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable)||(e.key===`Escape`||e.key===`Esc`?y():(e.key===`Delete`||e.key===`Del`)&&S())}return x(document,`keydown`,A),g([e,t,i,a,o,s,c].filter(e=>e!==void 0),()=>{_()},{flush:`post`}),{selectedIP:d,selectedPort:f,selectedCountry:p,selectedCount:m,selectedIPCount:h,selectedColor:n,highlightIP:C,highlightPort:T,highlightCountry:D,resetSelection:y,deleteSelectedIP:S,toggleIPExclusion:b}}function J(e,t,n,r,i){let a=w(()=>{let a=e.value;if(t.value&&t.value.length===2){let e=new Date(t.value[0]).getTime(),n=new Date(t.value[1]).getTime();a=a.filter(t=>{let r=t.time.getTime();return r>=e&&r<=n})}if(n.value&&n.value.length===2){let e=parseFloat(n.value[0]),t=parseFloat(n.value[1]);a=a.filter(n=>n.dst_port>=e&&n.dst_port<=t)}if(r?.value&&r.value.length===2){let e=Math.min(parseFloat(r.value[0]),parseFloat(r.value[1])),t=Math.max(parseFloat(r.value[0]),parseFloat(r.value[1]));a=a.filter(n=>n.latitude===void 0?!1:n.latitude>=e&&n.latitude<=t)}if(i?.value&&i.value.length===2){let e=Math.min(parseFloat(i.value[0]),parseFloat(i.value[1])),t=Math.max(parseFloat(i.value[0]),parseFloat(i.value[1]));a=a.filter(n=>n.longitude===void 0?!1:n.longitude>=e&&n.longitude<=t)}return a});return{ipCounts:w(()=>{let e={};return a.value.forEach(t=>{e[t.remote_addr]=(e[t.remote_addr]||0)+1}),Object.entries(e).map(([e,t])=>({value:e,count:t})).sort((e,t)=>t.count-e.count).slice(0,50)}),portCounts:w(()=>{let e={};return a.value.forEach(t=>{e[t.dst_port]=(e[t.dst_port]||0)+1}),delete e[-1],Object.entries(e).map(([e,t])=>({value:Number(e),count:t})).sort((e,t)=>t.count-e.count).slice(0,50)}),countryCounts:w(()=>{let e={};return a.value.forEach(t=>{let n=t.country||`Unknown`;e[n]=(e[n]||0)+1}),Object.entries(e).map(([e,t])=>{let n=A(e);return{value:e,count:t,label:`${n.flag} ${n.name}`}}).sort((e,t)=>t.count-e.count).slice(0,50)})}}export{I as i,q as n,G as r,J as t};