Files
pyMC_Repeater/repeater/web/html/assets/SystemStats-Blc9w234.js
T
2026-06-09 22:26:36 +01:00

2 lines
16 KiB
JavaScript

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/plotly.min-BmxIBpZZ.js","assets/chunk-DECur_0Z.js"])))=>i.map(i=>d[i]);
import{r as e}from"./chunk-DECur_0Z.js";import{C as t,D as n,K as r,N as i,T as a,U as o,X as s,_t as c,h as ee,ht as l,j as te,l as u,m as d,o as f,r as p,s as m,u as h,x as ne,y as g,z as _}from"./runtime-core.esm-bundler-CINEgm0a.js";import{o as v}from"./api-C4t_bxtk.js";import{t as re}from"./useTheme-vbCn9P26.js";import{f as y,t as ie}from"./index-KkHsVs4Y.js";import{t as b}from"./formatters-CHyWlnnq.js";import{_ as ae,a as oe,c as se,d as ce,f as le,g as ue,i as de,l as fe,m as pe,n as x,o as me,r as he,s as S,t as C,u as ge,v as _e,y as ve}from"./ChartCard-_A6zLVMr.js";import{t as w}from"./chartjs-adapter-date-fns.esm-C1TwaxS1.js";var ye={class:`p-6 space-y-6`},be={class:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4`},xe={class:`grid grid-cols-1 lg:grid-cols-2 gap-6`},Se={class:`glass-card rounded-[15px] p-6`},Ce={key:0,class:`grid grid-cols-2 gap-4 text-sm`},we={class:`text-content-primary dark:text-content-primary font-semibold`},Te={class:`text-content-primary dark:text-content-primary font-semibold`},T={class:`text-content-primary dark:text-content-primary font-semibold`},E={class:`text-content-primary dark:text-content-primary font-semibold`},D={class:`glass-card rounded-[15px] p-6`},O={key:0,class:`grid grid-cols-2 gap-4 text-sm`},Ee={class:`text-content-primary dark:text-content-primary font-semibold`},De={class:`text-content-primary dark:text-content-primary font-semibold`},Oe={class:`text-content-primary dark:text-content-primary font-semibold`},ke={class:`text-content-primary dark:text-content-primary font-semibold`},Ae={class:`grid grid-cols-1 lg:grid-cols-2 gap-6`},je={class:`glass-card rounded-[15px] p-6`},Me={class:`relative h-48`},Ne={key:0,class:`grid grid-cols-3 gap-4 text-sm mt-4`},Pe={class:`text-center`},Fe={class:`text-content-primary dark:text-content-primary font-semibold`},Ie={class:`text-center`},Le={class:`font-semibold text-accent-red`},Re={class:`text-center`},ze={class:`font-semibold text-accent-green`},Be={class:`glass-card rounded-[15px] p-6`},Ve={key:0,class:`space-y-4`},He={class:`grid grid-cols-2 gap-4 text-sm`},Ue={class:`text-content-primary dark:text-content-primary font-semibold`},We={class:`text-content-primary dark:text-content-primary font-semibold`},Ge={class:`text-content-primary dark:text-content-primary font-semibold`},Ke={class:`text-content-primary dark:text-content-primary font-semibold`},k={key:0,class:`pt-4 border-t border-stroke-subtle dark:border-stroke/10`},qe={class:`grid grid-cols-2 gap-2 text-sm`},Je={class:`text-content-secondary dark:text-content-muted`},Ye={class:`text-content-primary dark:text-content-primary font-semibold ml-1`},Xe={class:`glass-card rounded-[15px] p-6`},Ze={key:0,class:`overflow-x-auto`},Qe={class:`w-full text-sm`},$e={class:`text-content-secondary dark:text-content-primary/80 py-2 transition-all duration-300`},et={class:`text-content-primary dark:text-content-primary font-semibold py-2 transition-all duration-300`},tt={class:`text-center text-secondary py-2 transition-all duration-300`},nt={class:`text-center text-accent-green py-2 transition-all duration-300`},rt={class:`text-right text-content-secondary dark:text-content-primary/80 py-2 transition-all duration-300`},it={key:0,class:`mt-4 text-center text-content-secondary dark:text-content-muted text-sm transition-all duration-300`},at={key:1,class:`text-center text-content-secondary dark:text-content-muted py-8`},A=y(ee({name:`SystemStatsView`,__name:`SystemStats`,setup(ee){S.register(me,ce,le,ge,fe,de,se,_e,ve,ae,he,oe,ue,pe);let{theme:y}=re(),A=()=>{let e=document.documentElement.classList.contains(`dark`);return{labelColor:e?`rgba(255, 255, 255, 0.5)`:`rgba(0, 0, 0, 0.5)`,textColor:e?`rgba(255, 255, 255, 0.8)`:`rgba(0, 0, 0, 0.8)`}},j={cpu:`#FFC246`,memory:`#A5E5B6`,disk:`#FB787B`,free:`#A5E5B6`,uptime:`#EBA0FC`},M=o(null),N=o(null),P=o([]),F=o(null),I=o({cpuChart:!0,memoryChart:!0,diskChart:!1,processChart:!0}),L=o(null),R=o(null),z=o(`Connecting...`),B=o(`Connecting...`),V=o(null),H=o(null),U=o(null),W=o(null),G=o(null),K=f(()=>M.value?{cpuUsage:M.value.cpu.usage_percent,memoryUsage:M.value.memory.usage_percent,diskUsage:M.value.disk.usage_percent,uptime:M.value.system.uptime}:{cpuUsage:0,memoryUsage:0,diskUsage:0,uptime:0}),q=f(()=>P.value.length===0?{cpu:[],memory:[],disk:[],network:[]}:{cpu:P.value.map(e=>e.cpu.usage_percent),memory:P.value.map(e=>e.memory.usage_percent),disk:P.value.map(e=>e.disk.usage_percent),network:P.value.map(e=>e.network.bytes_recv/1024/1024)}),J=f(()=>{let e=P.value.length;if(e<2)return``;let t=e*5;return t<120?`last ${t}s`:`last ${Math.round(t/60)}m`}),ot=e=>{let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t}d ${n}h ${r}m`:n>0?`${n}h ${r}m`:`${r}m`},Y=async()=>{z.value=`Connecting...`,B.value=`Connecting...`;try{let e=await x(`/hardware_stats`,void 0,{onPhaseChange:e=>{let t=e===`receiving`?`Receiving data...`:`Connecting...`;z.value=t,B.value=t}});if(e?.success&&e.data){let t=e.data;M.value=t,P.value.push(t),P.value.length>20&&P.value.shift(),L.value=null,R.value=null,await g(),Z()}else L.value=`No data in server response`,R.value=`No data in server response`}catch(e){let t=e instanceof Error?e.message:`Failed to load data`;L.value=t,R.value=t}finally{I.value.cpuChart=!1,I.value.memoryChart=!1}},st=async()=>{try{let e=await x(`/hardware_processes`);e?.success&&e.data&&(F.value=N.value,N.value=e.data)}catch(e){console.error(`Failed to fetch process stats:`,e)}finally{I.value.processChart=!1}},X=(e,t)=>{if(!F.value)return!1;let n=F.value.processes.find(t=>t.pid===e.pid);return n?n[t]!==e[t]:!0},ct=()=>{Y(),st()},Z=()=>{M.value&&(lt(),ut(),dt())},lt=()=>{if(!U.value||!M.value){I.value.cpuChart=!1;return}let e=U.value.getContext(`2d`);if(!e){I.value.cpuChart=!1;return}let t=M.value.cpu.usage_percent,n=100-t;if(V.value)try{V.value.data.datasets[0].data=[t,n],V.value.update(`none`);return}catch(e){console.warn(`Failed to update CPU chart, recreating...`,e),V.value.destroy(),V.value=null}let r=j.cpu,i=A(),a=document.documentElement.classList.contains(`dark`),o=a?`rgba(255, 255, 255, 0.1)`:`rgba(0, 0, 0, 0.1)`,s=a?`rgba(255, 255, 255, 0.2)`:`rgba(0, 0, 0, 0.2)`;try{V.value=_(new S(e,{type:`doughnut`,data:{labels:[`Used`,`Available`],datasets:[{data:[t,n],backgroundColor:[r,o],borderColor:[r,s],borderWidth:2}]},options:{responsive:!0,maintainAspectRatio:!1,cutout:`70%`,animation:{animateRotate:!1,animateScale:!1,duration:0},plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(e){return`${e.label}: ${e.parsed.toFixed(1)}%`}}}}},plugins:[{id:`centerText`,beforeDraw:function(e){let t=e.ctx;t.save();let n=e.data.datasets[0].data[0],a=(e.chartArea.left+e.chartArea.right)/2,o=(e.chartArea.top+e.chartArea.bottom)/2;t.textAlign=`center`,t.textBaseline=`middle`,t.fillStyle=r,t.font=`bold 18px sans-serif`,t.fillText(`${n.toFixed(1)}%`,a,o-5),t.fillStyle=i.labelColor,t.font=`10px sans-serif`,t.fillText(`CPU`,a,o+12),t.restore()}}]})),L.value=null,I.value.cpuChart=!1}catch(e){console.error(`Error creating CPU chart:`,e),L.value=`Failed to create CPU chart`,I.value.cpuChart=!1}},ut=()=>{if(!W.value||!M.value){I.value.memoryChart=!1;return}let e=W.value.getContext(`2d`);if(!e){I.value.memoryChart=!1;return}let t=M.value.memory.usage_percent,n=100-t;if(H.value)try{H.value.data.datasets[0].data=[t,n],H.value.update(`none`);return}catch(e){console.warn(`Failed to update Memory chart, recreating...`,e),H.value.destroy(),H.value=null}let r=j.memory,i=A(),a=document.documentElement.classList.contains(`dark`),o=a?`rgba(255, 255, 255, 0.1)`:`rgba(0, 0, 0, 0.1)`,s=a?`rgba(255, 255, 255, 0.2)`:`rgba(0, 0, 0, 0.2)`;try{H.value=_(new S(e,{type:`doughnut`,data:{labels:[`Used`,`Available`],datasets:[{data:[t,n],backgroundColor:[r,o],borderColor:[r,s],borderWidth:2}]},options:{responsive:!0,maintainAspectRatio:!1,cutout:`70%`,animation:{animateRotate:!1,animateScale:!1,duration:0},plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(e){return`${e.label}: ${e.parsed.toFixed(1)}%`}}}}},plugins:[{id:`centerText`,beforeDraw:function(e){let t=e.ctx;t.save();let n=e.data.datasets[0].data[0],a=(e.chartArea.left+e.chartArea.right)/2,o=(e.chartArea.top+e.chartArea.bottom)/2;t.textAlign=`center`,t.textBaseline=`middle`,t.fillStyle=r,t.font=`bold 18px sans-serif`,t.fillText(`${n.toFixed(1)}%`,a,o-5),t.fillStyle=i.labelColor,t.font=`10px sans-serif`,t.fillText(`Memory`,a,o+12),t.restore()}}]})),R.value=null,I.value.memoryChart=!1}catch(e){console.error(`Error creating Memory chart:`,e),R.value=`Failed to create Memory chart`,I.value.memoryChart=!1}},dt=()=>{if(!G.value||!M.value)return;let t=A().textColor;try{v(()=>import(`./plotly.min-BmxIBpZZ.js`).then(t=>e(t.t(),1)).then(e=>{let n=e.default||e,r=M.value.disk,i=[{type:`pie`,labels:[`Used`,`Free`],values:[r.used,r.free],marker:{colors:[j.disk,j.free]},hovertemplate:`<b>%{label}</b><br>Size: %{value}<br>Percentage: %{percent}<extra></extra>`,textinfo:`label+percent`,textposition:`auto`,hole:.4}],a={title:{text:``,font:{color:t}},paper_bgcolor:`rgba(0,0,0,0)`,plot_bgcolor:`rgba(0,0,0,0)`,font:{color:t,size:11},margin:{t:20,b:20,l:20,r:20},showlegend:!0,legend:{orientation:`h`,x:0,y:-.2,font:{color:t,size:10}}};n.newPlot(G.value,i,a,{responsive:!0,displayModeBar:!1,staticPlot:!1})}),__vite__mapDeps([0,1]))}catch(e){console.error(`Error creating disk chart:`,e)}},Q=()=>{try{if(V.value&&=(V.value.destroy(),null),H.value&&=(H.value.destroy(),null),G.value)try{v(()=>import(`./plotly.min-BmxIBpZZ.js`).then(t=>e(t.t(),1)).then(e=>{let t=e?.default||e;t?.purge&&t.purge(G.value)}),__vite__mapDeps([0,1])).catch(()=>{})}catch{}}catch(e){console.error(`Error destroying charts:`,e)}};te(y,()=>{Q(),g(()=>Z())});let $=()=>{setTimeout(()=>{r(V.value)?.resize(),r(H.value)?.resize();try{v(()=>import(`./plotly.min-BmxIBpZZ.js`).then(t=>e(t.t(),1)).then(e=>{let t=e?.default||e;t?.Plots&&t.Plots.resize(G.value)}),__vite__mapDeps([0,1])).catch(()=>{})}catch{}},100)};return ie(ct,{intervalMs:5e3,immediate:!0}),t(async()=>{await g(),window.addEventListener(`resize`,$)}),ne(()=>{window.removeEventListener(`resize`,$),Q()}),(e,t)=>(a(),h(`div`,ye,[t[22]||=m(`div`,{class:`flex justify-between items-center`},[m(`h2`,{class:`text-2xl font-bold text-content-primary dark:text-content-primary`},` System Statistics `),m(`div`,{class:`text-content-secondary dark:text-content-muted text-sm`},` Updates every 5 seconds `)],-1),m(`div`,be,[d(w,{title:`CPU Usage`,value:`${K.value.cpuUsage.toFixed(1)}%`,color:j.cpu,data:q.value.cpu,"min-y":0,"max-y":100,subtitle:J.value},null,8,[`value`,`color`,`data`,`subtitle`]),d(w,{title:`Memory Usage`,value:`${K.value.memoryUsage.toFixed(1)}%`,color:j.memory,data:q.value.memory,"min-y":0,"max-y":100,subtitle:J.value},null,8,[`value`,`color`,`data`,`subtitle`]),d(w,{title:`Disk Usage`,value:`${K.value.diskUsage.toFixed(1)}%`,color:j.disk,data:q.value.disk,"min-y":0,"max-y":100,subtitle:J.value},null,8,[`value`,`color`,`data`,`subtitle`]),d(w,{title:`Uptime`,value:ot(K.value.uptime),color:j.uptime,data:[],"show-chart":!1},null,8,[`value`,`color`])]),m(`div`,xe,[m(`div`,Se,[t[4]||=m(`h3`,{class:`text-content-primary dark:text-content-primary text-xl font-semibold mb-4`},` CPU Performance `,-1),d(C,{class:`h-32 mb-4`,"is-loading":I.value.cpuChart,error:L.value,status:z.value,onRetry:Y},{default:i(()=>[m(`canvas`,{ref_key:`cpuCanvasRef`,ref:U,class:`w-full h-full`},null,512)]),_:1},8,[`is-loading`,`error`,`status`]),M.value?(a(),h(`div`,Ce,[m(`div`,null,[t[0]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`CPU Count`,-1),m(`div`,we,c(M.value.cpu.count)+` cores `,1)]),m(`div`,null,[t[1]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Frequency`,-1),m(`div`,Te,c(M.value.cpu.frequency.toFixed(0))+` MHz `,1)]),m(`div`,null,[t[2]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Load (1m)`,-1),m(`div`,T,c(M.value.cpu.load_avg[`1min`].toFixed(2)),1)]),m(`div`,null,[t[3]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Load (5m)`,-1),m(`div`,E,c(M.value.cpu.load_avg[`5min`].toFixed(2)),1)])])):u(``,!0)]),m(`div`,D,[t[9]||=m(`h3`,{class:`text-content-primary dark:text-content-primary text-xl font-semibold mb-4`},` Memory Usage `,-1),d(C,{class:`h-32 mb-4`,"is-loading":I.value.memoryChart,error:R.value,status:B.value,onRetry:Y},{default:i(()=>[m(`canvas`,{ref_key:`memoryCanvasRef`,ref:W,class:`w-full h-full`},null,512)]),_:1},8,[`is-loading`,`error`,`status`]),M.value?(a(),h(`div`,O,[m(`div`,null,[t[5]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Total`,-1),m(`div`,Ee,c(s(b)(M.value.memory.total)),1)]),m(`div`,null,[t[6]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Used`,-1),m(`div`,De,c(s(b)(M.value.memory.used)),1)]),m(`div`,null,[t[7]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Available`,-1),m(`div`,Oe,c(s(b)(M.value.memory.available)),1)]),m(`div`,null,[t[8]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Usage`,-1),m(`div`,ke,c(M.value.memory.usage_percent.toFixed(1))+`% `,1)])])):u(``,!0)])]),m(`div`,Ae,[m(`div`,je,[t[13]||=m(`h3`,{class:`text-content-primary dark:text-content-primary text-xl font-semibold mb-4`},` Storage Usage `,-1),m(`div`,Me,[m(`div`,{ref_key:`diskCanvasRef`,ref:G,class:`w-full h-full`},null,512)]),M.value?(a(),h(`div`,Ne,[m(`div`,Pe,[t[10]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Total`,-1),m(`div`,Fe,c(s(b)(M.value.disk.total)),1)]),m(`div`,Ie,[t[11]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Used`,-1),m(`div`,Le,c(s(b)(M.value.disk.used)),1)]),m(`div`,Re,[t[12]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Free`,-1),m(`div`,ze,c(s(b)(M.value.disk.free)),1)])])):u(``,!0)]),m(`div`,Be,[t[19]||=m(`h3`,{class:`text-content-primary dark:text-content-primary text-xl font-semibold mb-4`},` Network Statistics `,-1),M.value?(a(),h(`div`,Ve,[m(`div`,He,[m(`div`,null,[t[14]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Bytes Sent`,-1),m(`div`,Ue,c(s(b)(M.value.network.bytes_sent)),1)]),m(`div`,null,[t[15]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Bytes Received`,-1),m(`div`,We,c(s(b)(M.value.network.bytes_recv)),1)]),m(`div`,null,[t[16]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Packets Sent`,-1),m(`div`,Ge,c(M.value.network.packets_sent.toLocaleString()),1)]),m(`div`,null,[t[17]||=m(`div`,{class:`text-content-secondary dark:text-content-muted`},`Packets Received`,-1),m(`div`,Ke,c(M.value.network.packets_recv.toLocaleString()),1)])]),M.value.temperatures&&Object.keys(M.value.temperatures).length>0?(a(),h(`div`,k,[t[18]||=m(`div`,{class:`text-content-secondary dark:text-content-muted mb-2`},` System Temperatures `,-1),m(`div`,qe,[(a(!0),h(p,null,n(M.value.temperatures,(e,t)=>(a(),h(`div`,{key:t},[m(`span`,Je,c(t)+`:`,1),m(`span`,Ye,c(e.toFixed(1))+`°C`,1)]))),128))])])):u(``,!0)])):u(``,!0)])]),m(`div`,Xe,[t[21]||=m(`h3`,{class:`text-content-primary dark:text-content-primary text-xl font-semibold mb-4`},` Top Processes `,-1),N.value?.processes&&N.value.processes.length>0?(a(),h(`div`,Ze,[m(`table`,Qe,[t[20]||=m(`thead`,null,[m(`tr`,{class:`border-b border-stroke-subtle dark:border-stroke/10`},[m(`th`,{class:`text-left text-content-secondary dark:text-content-muted py-2`},`PID`),m(`th`,{class:`text-left text-content-secondary dark:text-content-muted py-2`},`Name`),m(`th`,{class:`text-center text-content-secondary dark:text-content-muted py-2`},`CPU %`),m(`th`,{class:`text-center text-content-secondary dark:text-content-muted py-2`},` Memory % `),m(`th`,{class:`text-right text-content-secondary dark:text-content-muted py-2`},`Memory`)])],-1),m(`tbody`,null,[(a(!0),h(p,null,n(N.value.processes.slice(0,10),e=>(a(),h(`tr`,{key:e.pid,class:`border-b border-stroke-subtle dark:border-white/5 process-row`},[m(`td`,$e,c(e.pid),1),m(`td`,et,c(e.name),1),m(`td`,tt,[m(`span`,{class:l([`cpu-value`,{"value-updated":X(e,`cpu_percent`)}])},c(e.cpu_percent.toFixed(1))+`% `,3)]),m(`td`,nt,[m(`span`,{class:l([`memory-value`,{"value-updated":X(e,`memory_percent`)}])},c(e.memory_percent.toFixed(1))+`% `,3)]),m(`td`,rt,[m(`span`,{class:l({"value-updated":X(e,`memory_mb`)})},c(e.memory_mb.toFixed(1))+` MB `,3)])]))),128))])]),N.value.total_processes?(a(),h(`div`,it,` Showing top 10 of `+c(N.value.total_processes)+` total processes `,1)):u(``,!0)])):I.value.processChart?u(``,!0):(a(),h(`div`,at,` No process data available `))])]))}}),[[`__scopeId`,`data-v-d0fbc86b`]]);export{A as default};