internal/dashboard/frontend/dist/assets/usePlotlyChart-EBpzvtkr.js

import{D as e,E as t,a as n,b as r,d as i,i as a,r as o,u as s,w as c,x as l,y as u}from"./chart-DXupaYdX.js";import{Nt as d,ct as f,mt as p,sn as m,tn as h}from"./_plugin-vue_export-helper-Df8BHgqR.js";var g=e(t(),1);function _(e,t,_){let v=h(!1),y=h([]),b=h([]),x=h([]),S=p(()=>C(),250);d(()=>{e.value&&g.default.purge(e.value)});function C(d=!1){if(!e.value)return;let f=m(t),p=[],h=[],S=[],C=[],w=[],T=[],E=_?.yField||`dst_port`;f.forEach(e=>{p.push(e.time),h.push(e[E]),S.push(e.remote_addr_int),w.push(e.remote_addr),T.push(e.dst_port),C.push([e.time_with_ms,e.remote_addr,e.dst_port,e.event??``])}),y.value=S.slice(),b.value=w.slice(),x.value=T.slice();let D=[{type:`scattergl`,mode:`markers`,x:p,y:h,marker:{size:6,color:S.slice(),showscale:!1,colorscale:a},hovertemplate:`Time: %{customdata[0]}<br>IP: %{customdata[1]}<br>Port: %{customdata[2]}<br>Event: %{customdata[3]}<br><extra></extra>`,customdata:C}],O={xaxis:{title:{text:`Time`,font:{color:c,size:12}},type:`date`,gridcolor:s,range:_?.xRange?.length===2?_.xRange:void 0,tickfont:{color:c,size:12}},yaxis:{title:{text:_?.yTitle||`Port`,font:{color:c,size:12}},gridcolor:s,range:_?.yRange?.length===2?_.yRange:void 0,tickfont:{color:c,size:12}},hovermode:`closest`,margin:_?.categoricalY?o:n,plot_bgcolor:`transparent`,paper_bgcolor:`transparent`,hoverlabel:i,modebar:u};if(O.yaxis||={},_?.categoricalY){O.yaxis.type=`category`;let e=[...new Set(h)].sort();O.yaxis.categoryorder=`array`,O.yaxis.categoryarray=e}else O.yaxis.tickformat=` `,O.yaxis.maxallowed=r,O.yaxis.minallowed=l;let k={responsive:!0,scrollZoom:!0,displaylogo:!1};if(v.value&&!d){let t=e.value,n=t.layout.xaxis.range,r=t.layout.yaxis.range,i={...t.layout};t.layout.xaxis.autorange===!1&&(i.xaxis={...t.layout.xaxis,range:n}),t.layout.yaxis.autorange===!1&&(i.yaxis={...t.layout.yaxis,range:r}),g.default.react(e.value,D,i,k)}else{v.value=!0;let t=e.value;g.default.newPlot(e.value,D,O,k),t.on(`plotly_click`,e=>{let t=e.points[0]?.pointIndex,n=t?b.value[t]:void 0;n&&_?.onIPClick?.(n,e)}),t.on(`plotly_relayout`,e=>{_?.onRelayout?.(e)}),t.on(`plotly_selected`,e=>{_?.onSelected?.(e)})}}return f(e,()=>{e.value&&v.value&&g.default.Plots.resize(e.value)}),{drawPlot:C,debouncedDrawPlot:S,allColors:y,allRemoteAddrs:b,allPorts:x}}function v(e,t){let n;if(e.yaxis?.range?n=e.yaxis.range:e[`yaxis.range[0]`]!==void 0&&e[`yaxis.range[1]`]!==void 0&&(n=[e[`yaxis.range[0]`],e[`yaxis.range[1]`]]),n?.[0]&&n?.[1]){let e=Math.max(Math.round(n[0]),0),r=Math.min(Math.round(n[1]),65535);t.setDstPort(`${e}-${r}`)}else (e[`yaxis.autorange`]||e.yaxis?.autorange)&&(t.state.dst_port=[]);let r;if(e.xaxis?.range?r=e.xaxis.range:e[`xaxis.range[0]`]!==void 0&&e[`xaxis.range[1]`]!==void 0&&(r=[e[`xaxis.range[0]`],e[`xaxis.range[1]`]]),r?.[0]&&r?.[1]){let e=new Date(r[0]),n=new Date(r[1]);e.setUTCMinutes(e.getUTCMinutes()-e.getTimezoneOffset()),n.setUTCMinutes(n.getUTCMinutes()-n.getTimezoneOffset()),e.setMilliseconds(0),n.setMilliseconds(0),n.setSeconds(n.getSeconds()+1),t.setTimeStart(e.toISOString().slice(0,19)),t.setTimeEnd(n.toISOString().slice(0,19))}}export{_ as n,v as t};