- kern/schwaerzen.py + dieselben Regeln im Ausführer (Test vergleicht beide): private Schlüssel, Werte hinter password/secret/token/key…, Passwort-Hashes, htpasswd, Zugangsdaten in Adressen, Authorization-Kopfzeilen, Token-Formate, lange Hex-Ketten - Ausführer: sammelt Proxmox (Gäste, Speicher, Aufträge, Netz), AdGuard, NPMplus (ohne tls/), schwärzt auf dem Host, sendet alle 6 h und auf Abruf (Aktion konfig_senden) an POST /api/homelab/ausfuehrer/konfig - Homelab-Teil: GET /api/homelab/konfig (frisch=1), dazu Compose und .env der Arcane-Projekte, geschwärzt - KI-Box: services/konfig_sicherung.py legt das Repo beim ersten Lauf privat an, Arbeitskopie je Lauf auf Gitea-Stand, Commit nur bei Änderungen; Timer täglich 02:30, Knopf „Jetzt sichern“ unter Einstellungen → Homelab - Totmannschalter und Wächter kennen den Timer; Doku Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 line
22 KiB
JavaScript
1 line
22 KiB
JavaScript
import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{A as a,C as o,K as s,Ot as c,d as l,u}from"./abfragen-CLTLeU-R.js";import{t as d}from"./useRouterState-DJr4hrdj.js";import{C as f,F as p,I as m,L as h,M as g,N as _,P as v,R as y,S as b,U as x,V as S,m as C,x as w}from"./index-hnnYWPzT.js";import{t as T}from"./breite-k-QN6GPl.js";var E=t(e(),1),D=r(),O=n(),k={ruhig:{wert:`text-foreground`,marke:null},gelb:{wert:`text-bernstein`,marke:`hoch`},rot:{wert:`text-rot-text`,marke:`kritisch`}};function A(e){let t=(0,D.c)(29),{label:n,wert:r,einheit:a,punkte:o,max:s,zustand:c,farbe:l,zeitraumText:u}=e,d=k[c===void 0?`ruhig`:c],f;t[0]===n?f=t[1]:(f=(0,O.jsx)(`span`,{className:`etikett text-[11px] text-text-3`,children:n}),t[0]=n,t[1]=f);let m;t[2]===d.wert?m=t[3]:(m=i(`font-anzeige text-[28px] leading-none font-semibold tabular-nums`,d.wert),t[2]=d.wert,t[3]=m);let h;t[4]!==a||t[5]!==r?(h=p(r,a),t[4]=a,t[5]=r,t[6]=h):h=t[6];let g;t[7]!==m||t[8]!==h?(g=(0,O.jsx)(`span`,{className:m,children:h}),t[7]=m,t[8]=h,t[9]=g):g=t[9];let _;t[10]!==d.marke||t[11]!==d.wert?(_=d.marke&&(0,O.jsx)(`span`,{className:i(`etikett text-[10.5px]`,d.wert),children:d.marke}),t[10]=d.marke,t[11]=d.wert,t[12]=_):_=t[12];let v;t[13]!==g||t[14]!==_?(v=(0,O.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[g,_]}),t[13]=g,t[14]=_,t[15]=v):v=t[15];let y;t[16]!==l||t[17]!==n||t[18]!==s||t[19]!==o||t[20]!==u?(y=o&&o.length>1&&(0,O.jsx)(w,{punkte:o,max:s,farbe:l,beschriftung:`${n}, ${u}`}),t[16]=l,t[17]=n,t[18]=s,t[19]=o,t[20]=u,t[21]=y):y=t[21];let b;t[22]===o?b=t[23]:(b=o&&o.length<=1&&(0,O.jsx)(`span`,{className:`h-9`,"aria-hidden":!0}),t[22]=o,t[23]=b);let x;return t[24]!==f||t[25]!==v||t[26]!==y||t[27]!==b?(x=(0,O.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 flex-col gap-1.5 rounded-xl px-3.5 pt-3 pb-2`,children:[f,v,y,b]}),t[24]=f,t[25]=v,t[26]=y,t[27]=b,t[28]=x):x=t[28],x}var j={rechts:12,oben:10,unten:24};function M(e){let t=(0,D.c)(72),{reihen:n,einheit:r,langerZeitraum:i,hoehe:a,titel:o}=e,s=a===void 0?180:a,[c,l]=T(),[u,d]=(0,E.useState)(null),h,g,_,y,x,S,C,w;if(t[0]!==l||t[1]!==r||t[2]!==s||t[3]!==u||t[4]!==i||t[5]!==c||t[6]!==n||t[7]!==o){let e=n[0]?.punkte??[],a=e.length,T=v(n.map(re),r),E=r===`prozent`?[0,25,50,75,100]:[0,T/2,T],D=Math.max(40,Math.max(...E.map(e=>p(e,r).length))*7+12),k;t[16]===D?k=t[17]:(k={...j,links:D},t[16]=D,t[17]=k);let A=k,M=l-A.links-j.rechts,N=s-j.oben-j.unten,P=e[0]?.[0]??0,ie=e[a-1]?.[0]??1,F=e=>A.links+(ie>P?(e-P)/(ie-P)*M:0),I;t[18]!==N||t[19]!==T?(I=e=>j.oben+N-Math.min(e,T)/(T||1)*N,t[18]=N,t[19]=T,t[20]=I):I=t[20];let L=I,R=j.oben+N,z=a>1?[0,.25,.5,.75,1].map(t=>e[Math.round(t*(a-1))][0]):[],B;t[21]===n?B=t[22]:(B=n.some(ne),t[21]=n,t[22]=B);let V=B,H;t[23]===a?H=t[24]:(H=function(e){if(a===0)return;let t=e.currentTarget.getBoundingClientRect(),n=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width));d(Math.round(n*(a-1)))},t[23]=a,t[24]=H);let U=H,W;t[25]===a?W=t[26]:(W=function(e){if(a!==0){if(e.key===`ArrowLeft`)d(e=>Math.max(0,(e??a-1)-1));else if(e.key===`ArrowRight`)d(e=>Math.min(a-1,(e??a-1)+1));else return;e.preventDefault()}},t[25]=a,t[26]=W);let G=W,K=u!==null&&e[u]?e[u][0]:null,q=K===null?0:F(K),ae=e.slice(-12);S=`flex flex-col gap-2`,t[27]===n?C=t[28]:(C=n.length>1&&(0,O.jsx)(`ul`,{className:`m-0 flex list-none flex-wrap gap-x-4 gap-y-1 p-0 text-sm text-text-2`,"aria-label":`Legende`,children:n.map(te)}),t[27]=n,t[28]=C);let J;t[29]===a?J=t[30]:(J=()=>d(e=>e??(a?a-1:null)),t[29]=a,t[30]=J);let oe;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(oe=()=>d(null),t[31]=oe):oe=t[31];let Y;t[32]!==A.links||t[33]!==R||t[34]!==V||t[35]!==M||t[36]!==N||t[37]!==n||t[38]!==F||t[39]!==L?(Y=V?n.map(e=>(0,O.jsxs)(`g`,{children:[n.length===1&&(0,O.jsx)(`path`,{d:b(e.punkte,F,L,R),fill:e.farbe,opacity:.1}),(0,O.jsx)(`path`,{d:f(e.punkte,F,L),fill:`none`,stroke:e.farbe,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})]},e.name)):(0,O.jsx)(`text`,{x:A.links+M/2,y:j.oben+N/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Noch keine Messwerte in diesem Zeitraum`}),t[32]=A.links,t[33]=R,t[34]=V,t[35]=M,t[36]=N,t[37]=n,t[38]=F,t[39]=L,t[40]=Y):Y=t[40];let X;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(X=()=>d(null),t[41]=X):X=t[41];let Z;t[42]!==A.links||t[43]!==M||t[44]!==N||t[45]!==U?(Z=(0,O.jsx)(`rect`,{x:A.links,y:j.oben,width:M,height:N,fill:`transparent`,onPointerMove:U,onPointerLeave:X}),t[42]=A.links,t[43]=M,t[44]=N,t[45]=U,t[46]=Z):Z=t[46];let se=(0,O.jsxs)(`svg`,{width:l,height:s,role:`img`,"aria-label":o,tabIndex:0,onKeyDown:G,onFocus:J,onBlur:oe,className:`block max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[E.map(e=>(0,O.jsxs)(`g`,{children:[(0,O.jsx)(`line`,{x1:A.links,x2:l-j.rechts,y1:L(e),y2:L(e),stroke:`var(--linie)`,strokeWidth:1}),(0,O.jsx)(`text`,{x:A.links-8,y:L(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:p(e,r)})]},e)),z.map((e,t)=>(0,O.jsx)(`text`,{x:F(e),y:s-6,className:`fill-text-3 font-mono text-[11px]`,textAnchor:t===0?`start`:t===z.length-1?`end`:`middle`,children:m(e,i)},e)),Y,K!==null&&(0,O.jsxs)(`g`,{"aria-hidden":!0,children:[(0,O.jsx)(`line`,{x1:F(K),x2:F(K),y1:j.oben,y2:R,stroke:`var(--text-3)`,strokeWidth:1}),n.map(e=>{let t=e.punkte[u]?.[1];return t==null?null:(0,O.jsx)(`circle`,{cx:F(K),cy:L(t),r:4,fill:e.farbe,stroke:`var(--panel)`,strokeWidth:2},e.name)})]}),Z]}),Q=K!==null&&(0,O.jsxs)(`div`,{role:`status`,className:`pointer-events-none absolute top-1 z-10 flex min-w-36 flex-col gap-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 py-2 shadow-lg`,style:q>l/2?{right:l-q+10}:{left:q+10},children:[(0,O.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:m(K,!0)}),n.map(e=>(0,O.jsxs)(`span`,{className:`flex items-center gap-2 text-sm`,children:[(0,O.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 rounded-full`,style:{background:e.farbe}}),(0,O.jsx)(`span`,{className:`font-semibold text-foreground`,children:p(e.punkte[u]?.[1],r)}),n.length>1&&(0,O.jsx)(`span`,{className:`text-text-3`,children:e.name})]},e.name))]});t[47]!==c||t[48]!==se||t[49]!==Q?(w=(0,O.jsxs)(`div`,{ref:c,className:`relative w-full`,children:[se,Q]}),t[47]=c,t[48]=se,t[49]=Q,t[50]=w):w=t[50],y=`group text-sm`,t[51]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,O.jsx)(`summary`,{className:`inline-flex cursor-pointer items-center text-text-3 hover:text-text-2`,children:`Werte als Tabelle`}),t[51]=x):x=t[51],g=`ziffern mt-2 w-full max-w-md border-collapse text-xs`;let ce;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,O.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:`Zeit`}),t[52]=ce):ce=t[52];let $;t[53]===n?$=t[54]:($=n.map(ee),t[53]=n,t[54]=$),t[55]===$?_=t[56]:(_=(0,O.jsx)(`thead`,{children:(0,O.jsxs)(`tr`,{className:`text-left text-text-3`,children:[ce,$]})}),t[55]=$,t[56]=_),h=ae.map((e,t)=>{let[o]=e;return(0,O.jsxs)(`tr`,{className:`border-t border-white/[0.06]`,children:[(0,O.jsx)(`td`,{className:`py-1 pr-4 text-text-3`,children:m(o,i)}),n.map(e=>(0,O.jsx)(`td`,{className:`py-1 pr-4 text-text-2`,children:p(e.punkte[a-ae.length+t]?.[1],r)},e.name))]},o)}),t[0]=l,t[1]=r,t[2]=s,t[3]=u,t[4]=i,t[5]=c,t[6]=n,t[7]=o,t[8]=h,t[9]=g,t[10]=_,t[11]=y,t[12]=x,t[13]=S,t[14]=C,t[15]=w}else h=t[8],g=t[9],_=t[10],y=t[11],x=t[12],S=t[13],C=t[14],w=t[15];let k;t[57]===h?k=t[58]:(k=(0,O.jsx)(`tbody`,{children:h}),t[57]=h,t[58]=k);let A;t[59]!==k||t[60]!==g||t[61]!==_?(A=(0,O.jsxs)(`table`,{className:g,children:[_,k]}),t[59]=k,t[60]=g,t[61]=_,t[62]=A):A=t[62];let M;t[63]!==A||t[64]!==y||t[65]!==x?(M=(0,O.jsxs)(`details`,{className:y,children:[x,A]}),t[63]=A,t[64]=y,t[65]=x,t[66]=M):M=t[66];let N;return t[67]!==M||t[68]!==S||t[69]!==C||t[70]!==w?(N=(0,O.jsxs)(`div`,{className:S,children:[C,w,M]}),t[67]=M,t[68]=S,t[69]=C,t[70]=w,t[71]=N):N=t[71],N}function ee(e){return(0,O.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:e.name},e.name)}function te(e){return(0,O.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-4 rounded-full`,style:{background:e.farbe}}),e.name]},e.name)}function ne(e){return e.punkte.some(N)}function N(e){let[,t]=e;return t!==null}function re(e){return e.punkte}var P=[{id:`1h`,name:`1 Stunde`,text:`letzte Stunde`},{id:`24h`,name:`24 Stunden`,text:`letzte 24 Stunden`},{id:`7d`,name:`7 Tage`,text:`letzte 7 Tage`}];function ie(e){let t=(0,D.c)(6),{wert:n,onWahl:r,farbe:a}=e,o=a===`box`?`border-box-rand bg-box-grund text-box-text`:`border-lab-rand bg-lab-grund text-lab-text`,s;t[0]!==o||t[1]!==r||t[2]!==n?(s=P.map(e=>(0,O.jsx)(`button`,{type:`button`,onClick:()=>r(e.id),"aria-pressed":n===e.id,className:i(`h-9 rounded-full border px-4 text-sm`,n===e.id?o:`border-white/10 text-text-2 hover:border-white/20 hover:text-foreground`),children:e.name},e.id)),t[0]=o,t[1]=r,t[2]=n,t[3]=s):s=t[3];let c;return t[4]===s?c=t[5]:(c=(0,O.jsx)(`div`,{role:`group`,"aria-label":`Zeitraum`,className:`flex flex-wrap gap-2`,children:s}),t[4]=s,t[5]=c),c}function F(e){let t=(0,D.c)(9),{titel:n,rechts:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,O.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]!==r||t[3]!==a?(o=(0,O.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[a,r]}),t[2]=r,t[3]=a,t[4]=o):o=t[4];let s;return t[5]!==i||t[6]!==o||t[7]!==n?(s=(0,O.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[o,i]}),t[5]=i,t[6]=o,t[7]=n,t[8]=s):s=t[8],s}var I=e=>P.find(t=>t.id===e)?.text??``;function L(e){let t=(0,D.c)(10),{bereich:n,aktiv:r}=e,a=u(n,r===void 0||r).data;if(!a||a.reihen===0)return null;let o;t[0]!==a.auffaellig||t[1]!==a.lernt||t[2]!==a.min_wochen||t[3]!==a.wochen?(o=a.lernt?`Ungewöhnliches meldet der Orchestrator, sobald er je Wochenstunde ${a.min_wochen} Wochen Erfahrung hat — er lernt gerade (Woche ${a.wochen} von ${a.min_wochen}).`:a.auffaellig.length?`Gerade ungewöhnlich: ${a.auffaellig.map(R).join(`; `)}.`:`Nichts Ungewöhnliches — verglichen mit den üblichen Werten dieser Wochenstunde.`,t[0]=a.auffaellig,t[1]=a.lernt,t[2]=a.min_wochen,t[3]=a.wochen,t[4]=o):o=t[4];let s=o,c=!a.lernt&&a.auffaellig.length?`text-bernstein`:`text-text-3`,l;t[5]===c?l=t[6]:(l=i(`m-0 text-sm`,c),t[5]=c,t[6]=l);let d;return t[7]!==l||t[8]!==s?(d=(0,O.jsx)(`p`,{className:l,children:s}),t[7]=l,t[8]=s,t[9]=d):d=t[9],d}function R(e){return e.titel}function z(){let e=(0,D.c)(98),[t,n]=(0,E.useState)(`1h`),r=l(t),a=c(),o;e[0]===r.data?.reihen?o=e[1]:(o=r.data?.reihen??{},e[0]=r.data?.reihen,e[1]=o);let s=o,u;e[2]===r.data?.aktuell?u=e[3]:(u=r.data?.aktuell??{},e[2]=r.data?.aktuell,e[3]=u);let d=u,f=t===`7d`,p;e[4]!==d||e[5]!==s?(p=(e,t)=>e??d[t]??_(s[t]),e[4]=d,e[5]=s,e[6]=p):p=e[6];let m=p,g;e[7]===t?g=e[8]:(g=(0,O.jsx)(ie,{wert:t,onWahl:n,farbe:`box`}),e[7]=t,e[8]=g);let v;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,O.jsx)(`span`,{className:`text-sm text-text-3`,children:`Zahlen live, Verläufe im Minutentakt`}),e[9]=v):v=e[9];let y;e[10]===g?y=e[11]:(y=(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[g,v]}),e[10]=g,e[11]=y);let b;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,O.jsx)(L,{bereich:`box`}),e[12]=b):b=e[12];let S=a?.cpu,C;e[13]!==S||e[14]!==m?(C=m(S,`cpu`),e[13]=S,e[14]=m,e[15]=C):C=e[15];let w=a?.cpu,T;e[16]!==w||e[17]!==m?(T=h(m(w,`cpu`),85,95),e[16]=w,e[17]=m,e[18]=T):T=e[18];let k;e[19]===t?k=e[20]:(k=I(t),e[19]=t,e[20]=k);let j;e[21]!==T||e[22]!==k||e[23]!==C?(j=(0,O.jsx)(A,{label:`CPU`,wert:C,einheit:`prozent`,max:100,zustand:T,zeitraumText:k}),e[21]=T,e[22]=k,e[23]=C,e[24]=j):j=e[24];let ee=a?.ram,te;e[25]!==ee||e[26]!==m?(te=m(ee,`ram`),e[25]=ee,e[26]=m,e[27]=te):te=e[27];let ne=a?.ram,N;e[28]!==ne||e[29]!==m?(N=h(m(ne,`ram`),85,95),e[28]=ne,e[29]=m,e[30]=N):N=e[30];let re;e[31]===t?re=e[32]:(re=I(t),e[31]=t,e[32]=re);let P;e[33]!==te||e[34]!==N||e[35]!==re?(P=(0,O.jsx)(A,{label:`Speicher`,wert:te,einheit:`prozent`,max:100,zustand:N,zeitraumText:re}),e[33]=te,e[34]=N,e[35]=re,e[36]=P):P=e[36];let R=a?.gpu,z;e[37]!==R||e[38]!==m?(z=m(R,`gpu`),e[37]=R,e[38]=m,e[39]=z):z=e[39];let B;e[40]===t?B=e[41]:(B=I(t),e[40]=t,e[41]=B);let V;e[42]!==z||e[43]!==B?(V=(0,O.jsx)(A,{label:`GPU`,wert:z,einheit:`prozent`,max:100,zeitraumText:B}),e[42]=z,e[43]=B,e[44]=V):V=e[44];let H=a?.temp_cpu,U;e[45]!==H||e[46]!==m?(U=m(H,`temp_cpu`),e[45]=H,e[46]=m,e[47]=U):U=e[47];let W=a?.temp_cpu,G;e[48]!==W||e[49]!==m?(G=h(m(W,`temp_cpu`),80,90),e[48]=W,e[49]=m,e[50]=G):G=e[50];let K;e[51]===t?K=e[52]:(K=I(t),e[51]=t,e[52]=K);let q;e[53]!==U||e[54]!==G||e[55]!==K?(q=(0,O.jsx)(A,{label:`CPU-Temp.`,wert:U,einheit:`grad`,max:100,zustand:G,zeitraumText:K}),e[53]=U,e[54]=G,e[55]=K,e[56]=q):q=e[56];let ae=a?.temp_gpu,J;e[57]!==ae||e[58]!==m?(J=m(ae,`temp_gpu`),e[57]=ae,e[58]=m,e[59]=J):J=e[59];let oe=a?.temp_gpu,Y;e[60]!==oe||e[61]!==m?(Y=h(m(oe,`temp_gpu`),80,90),e[60]=oe,e[61]=m,e[62]=Y):Y=e[62];let X;e[63]===t?X=e[64]:(X=I(t),e[63]=t,e[64]=X);let Z;e[65]!==J||e[66]!==Y||e[67]!==X?(Z=(0,O.jsx)(A,{label:`GPU-Temp.`,wert:J,einheit:`grad`,max:100,zustand:Y,zeitraumText:X}),e[65]=J,e[66]=Y,e[67]=X,e[68]=Z):Z=e[68];let se=a?.disk,Q;e[69]!==se||e[70]!==m?(Q=m(se,`platte`),e[69]=se,e[70]=m,e[71]=Q):Q=e[71];let ce=a?.disk,$;e[72]!==ce||e[73]!==m?($=h(m(ce,`platte`),80,90),e[72]=ce,e[73]=m,e[74]=$):$=e[74];let le;e[75]===t?le=e[76]:(le=I(t),e[75]=t,e[76]=le);let ue;e[77]!==Q||e[78]!==$||e[79]!==le?(ue=(0,O.jsx)(A,{label:`Platte`,wert:Q,einheit:`prozent`,max:100,zustand:$,zeitraumText:le}),e[77]=Q,e[78]=$,e[79]=le,e[80]=ue):ue=e[80];let de;e[81]!==j||e[82]!==P||e[83]!==V||e[84]!==q||e[85]!==Z||e[86]!==ue?(de=(0,O.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-3 xl:grid-cols-6`,children:[j,P,V,q,Z,ue]}),e[81]=j,e[82]=P,e[83]=V,e[84]=q,e[85]=Z,e[86]=ue,e[87]=de):de=e[87];let fe;e[88]!==f||e[89]!==r.data||e[90]!==r.isError||e[91]!==r.isPlaceholderData||e[92]!==s?(fe=r.isError&&!r.data?(0,O.jsx)(x,{text:`Der Verlauf ist noch nicht da: Die KI-Box sammelt Messwerte, sobald der neue Stand läuft. Die Zahlen oben sind live.`}):(0,O.jsxs)(`div`,{className:i(`grid gap-5 md:gap-6 xl:grid-cols-2`,r.isPlaceholderData&&`opacity-70`),children:[(0,O.jsx)(F,{titel:`CPU`,children:(0,O.jsx)(M,{titel:`CPU-Auslastung in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`CPU`,punkte:s.cpu??[],farbe:`var(--reihe-1)`}]})}),(0,O.jsx)(F,{titel:`Speicher`,children:(0,O.jsx)(M,{titel:`Belegter Speicher in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`Speicher`,punkte:s.ram??[],farbe:`var(--reihe-1)`}]})}),(0,O.jsx)(F,{titel:`GPU`,children:(0,O.jsx)(M,{titel:`GPU-Last in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`GPU`,punkte:s.gpu??[],farbe:`var(--reihe-1)`}]})}),(0,O.jsx)(F,{titel:`Temperatur`,children:(0,O.jsx)(M,{titel:`Temperatur von CPU und GPU in Grad`,einheit:`grad`,langerZeitraum:f,reihen:[{name:`CPU`,punkte:s.temp_cpu??[],farbe:`var(--reihe-1)`},{name:`GPU`,punkte:s.temp_gpu??[],farbe:`var(--reihe-2)`}]})}),(0,O.jsx)(F,{titel:`Netz`,children:(0,O.jsx)(M,{titel:`Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:f,reihen:[{name:`empfangen`,punkte:s.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:s.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(0,O.jsx)(F,{titel:`Tokens pro Minute`,children:(0,O.jsx)(M,{titel:`Erzeugte und gelesene Tokens pro Minute`,einheit:`anzahl`,langerZeitraum:f,reihen:[{name:`Tokens`,punkte:s.tokens??[],farbe:`var(--reihe-1)`}]})})]}),e[88]=f,e[89]=r.data,e[90]=r.isError,e[91]=r.isPlaceholderData,e[92]=s,e[93]=fe):fe=e[93];let pe;return e[94]!==de||e[95]!==fe||e[96]!==y?(pe=(0,O.jsxs)(O.Fragment,{children:[y,b,de,fe]}),e[94]=de,e[95]=fe,e[96]=y,e[97]=pe):pe=e[97],pe}function B(e){let t=(0,D.c)(43),{g:n,zeitraum:r}=e,i=n.aktuell,a=n.id,o=n.name,s;t[0]!==n.art||t[1]!==n.name?(s=S({art:n.art,name:n.name}),t[0]=n.art,t[1]=n.name,t[2]=s):s=t[2];let c;t[3]===s?c=t[4]:(c=(0,O.jsx)(y,{bild:s,groesse:`sm`}),t[3]=s,t[4]=c);let l;t[5]===n.name?l=t[6]:(l=(0,O.jsx)(`h3`,{className:`text-[15px] font-semibold`,children:n.name}),t[5]=n.name,t[6]=l);let u;t[7]!==c||t[8]!==l?(u=(0,O.jsxs)(`span`,{className:`flex min-w-0 items-center gap-3`,children:[c,l]}),t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===i.cpu?d=t[11]:(d=i.cpu==null?`–`:`${Math.round(i.cpu)} %`,t[10]=i.cpu,t[11]=d);let f;t[12]===i.ram?f=t[13]:(f=i.ram==null?`–`:`${Math.round(i.ram)} %`,t[12]=i.ram,t[13]=f);let p;t[14]===i.uptime_s?p=t[15]:(p=g(i.uptime_s),t[14]=i.uptime_s,t[15]=p);let m;t[16]!==d||t[17]!==f||t[18]!==p?(m=(0,O.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`CPU `,d,` · RAM `,f,` · läuft `,p]}),t[16]=d,t[17]=f,t[18]=p,t[19]=m):m=t[19];let h;t[20]!==m||t[21]!==u?(h=(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[u,m]}),t[20]=m,t[21]=u,t[22]=h):h=t[22];let _=`${n.name}: CPU und Speicher in Prozent`,v=r===`7d`,b;t[23]===n.reihen.cpu?b=t[24]:(b=n.reihen.cpu??[],t[23]=n.reihen.cpu,t[24]=b);let x;t[25]===b?x=t[26]:(x={name:`CPU`,punkte:b,farbe:`var(--reihe-1)`},t[25]=b,t[26]=x);let C;t[27]===n.reihen.ram?C=t[28]:(C=n.reihen.ram??[],t[27]=n.reihen.ram,t[28]=C);let w;t[29]===C?w=t[30]:(w={name:`Speicher`,punkte:C,farbe:`var(--reihe-2)`},t[29]=C,t[30]=w);let T;t[31]!==x||t[32]!==w?(T=[x,w],t[31]=x,t[32]=w,t[33]=T):T=t[33];let E;t[34]!==_||t[35]!==v||t[36]!==T?(E=(0,O.jsx)(M,{titel:_,einheit:`prozent`,langerZeitraum:v,hoehe:140,reihen:T}),t[34]=_,t[35]=v,t[36]=T,t[37]=E):E=t[37];let k;return t[38]!==n.id||t[39]!==n.name||t[40]!==h||t[41]!==E?(k=(0,O.jsxs)(`section`,{id:a,"aria-label":o,className:`flex min-w-0 scroll-mt-6 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[h,E]}),t[38]=n.id,t[39]=n.name,t[40]=h,t[41]=E,t[42]=k):k=t[42],k}function V(){let e=(0,D.c)(36),[t,n]=(0,E.useState)(`1h`),r=a(),c=s(),l=r.data?.rolle===`homelab`||!!(c.data?.eingerichtet&&c.data.erreichbar),u=o(t,l),f;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(f={select:G},e[0]=f):f=e[0];let p=d(f),m,_;if(e[1]!==p||e[2]!==u.data?(m=()=>{p&&u.data&&document.getElementById(p)?.scrollIntoView({block:`start`})},_=[p,u.data],e[1]=p,e[2]=u.data,e[3]=m,e[4]=_):(m=e[3],_=e[4]),(0,E.useEffect)(m,_),!l){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(x,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[5]=t):t=e[5],t}if(u.isPending){let t;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(x,{text:`Die Messwerte kommen gleich …`}),e[6]=t):t=e[6],t}if(!u.data){let t;return e[7]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(x,{text:`Noch keine Messwerte: Der Ausführer schickt sie jede Minute, sobald sein neuer Stand eingespielt ist.`}),e[7]=t):t=e[7],t}let v,y,b,S,w;if(e[8]!==l||e[9]!==u.data.geraete||e[10]!==u.isPlaceholderData||e[11]!==t){let r=u.data.geraete.find(W),a=u.data.geraete.filter(U),o=t===`7d`,s=r?.aktuell??{},c;e[17]===t?c=e[18]:(c=(0,O.jsx)(ie,{wert:t,onWahl:n,farbe:`homelab`}),e[17]=t,e[18]=c);let d;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,O.jsx)(`span`,{className:`text-sm text-text-3`,children:`Werte im Minutentakt vom Proxmox-Host`}),e[19]=d):d=e[19],e[20]===c?b=e[21]:(b=(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[c,d]}),e[20]=c,e[21]=b),e[22]===l?S=e[23]:(S=(0,O.jsx)(L,{bereich:`homelab`,aktiv:l}),e[22]=l,e[23]=S),w=r&&(0,O.jsxs)(C,{titel:`Proxmox-Host`,rechts:(0,O.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`läuft `,g(s.uptime_s),s.load1==null?``:` · Last ${s.load1.toFixed(2).replace(`.`,`,`)}`]}),children:[(0,O.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,O.jsx)(A,{label:`CPU`,wert:s.cpu,einheit:`prozent`,max:100,punkte:r.reihen.cpu,zustand:h(s.cpu??null,85,95),zeitraumText:I(t)}),(0,O.jsx)(A,{label:`Speicher`,wert:s.ram,einheit:`prozent`,max:100,punkte:r.reihen.ram,zustand:h(s.ram??null,90,95),zeitraumText:I(t)}),(0,O.jsx)(A,{label:`Temperatur`,wert:s.temp_cpu,einheit:`grad`,max:100,punkte:r.reihen.temp_cpu,zustand:h(s.temp_cpu??null,80,90),zeitraumText:I(t)}),(0,O.jsx)(A,{label:`Systemplatte`,wert:s.platte,einheit:`prozent`,max:100,punkte:r.reihen.platte,zustand:h(s.platte??null,80,90),zeitraumText:I(t)})]}),(0,O.jsxs)(`div`,{className:i(`grid gap-5 xl:grid-cols-2`,u.isPlaceholderData&&`opacity-70`),children:[(0,O.jsx)(F,{titel:`CPU und Speicher`,children:(0,O.jsx)(M,{titel:`Proxmox-Host: CPU und Speicher in Prozent`,einheit:`prozent`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.cpu??[],farbe:`var(--reihe-1)`},{name:`Speicher`,punkte:r.reihen.ram??[],farbe:`var(--reihe-2)`}]})}),(0,O.jsx)(F,{titel:`Netz`,children:(0,O.jsx)(M,{titel:`Proxmox-Host: Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:o,reihen:[{name:`empfangen`,punkte:r.reihen.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:r.reihen.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(r.reihen.temp_cpu?.some(H)??!1)&&(0,O.jsx)(F,{titel:`Temperatur`,children:(0,O.jsx)(M,{titel:`Proxmox-Host: CPU-Temperatur in Grad`,einheit:`grad`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.temp_cpu??[],farbe:`var(--reihe-1)`}]})})]})]});let f=u.isPlaceholderData&&`opacity-70`;e[24]===f?v=e[25]:(v=i(`grid gap-5 md:gap-6 xl:grid-cols-2`,f),e[24]=f,e[25]=v);let p;e[26]===t?p=e[27]:(p=e=>(0,O.jsx)(B,{g:e,zeitraum:t},e.id),e[26]=t,e[27]=p),y=a.map(p),e[8]=l,e[9]=u.data.geraete,e[10]=u.isPlaceholderData,e[11]=t,e[12]=v,e[13]=y,e[14]=b,e[15]=S,e[16]=w}else v=e[12],y=e[13],b=e[14],S=e[15],w=e[16];let T;e[28]!==v||e[29]!==y?(T=(0,O.jsx)(`div`,{className:v,children:y}),e[28]=v,e[29]=y,e[30]=T):T=e[30];let k;return e[31]!==b||e[32]!==S||e[33]!==w||e[34]!==T?(k=(0,O.jsxs)(O.Fragment,{children:[b,S,w,T]}),e[31]=b,e[32]=S,e[33]=w,e[34]=T,e[35]=k):k=e[35],k}function H(e){let[,t]=e;return t!==null}function U(e){return e.art!==`proxmox-host`}function W(e){return e.art===`proxmox-host`}function G(e){return e.location.hash}export{L as AusreisserZeile,z as BoxMonitoringSeite,V as HomelabMonitoringSeite}; |