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

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