Files
mission-control-v2/frontend/dist/assets/Homelab-cserbiI9.js
T
HitonabiandClaude Opus 5.5 2784c0ea32 box-updates: was Ubuntu zurückhält, zählt nicht als Update
User 25.09.: 5 Pakete, die Ubuntu gestaffelt verteilt (phasing), standen als
Update da, obwohl apt-get upgrade sie gar nicht einspielt – das Betriebssystem
wurde nie grün. Gezählt wird jetzt, was die Simulation von apt-get upgrade
wirklich einspielen würde; Zurückgehaltenes steht nur noch als Hinweis da.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 12:57:56 +02:00

1 line
44 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{t as a}from"./chevron-right-DyTfplDq.js";import{t as o}from"./search-BqVshBMw.js";import{At as s,B as c,C as l,D as u,E as d,H as f,J as p,Jt as m,K as h,Kt as g,O as _,S as v,T as y,U as b,W as x,Xt as S,Zt as C,_ as w,b as T,ct as E,f as D,i as O,lt as k,nt as A,p as j,qt as ee,u as M,ut as te,v as N,w as ne,x as re,xt as P,y as ie,yt as ae}from"./index-DzdbFvQV.js";import{t as F}from"./button-D8rvET0Z.js";import{t as I}from"./Bestaetigen-ChcZKZ2C.js";import{t as oe}from"./Lampe-gSQfYg4e.js";var L={name:`circle-dashed`,size:24,node:[[`path`,{d:`M10.1 2.182a10 10 0 0 1 3.8 0`,key:`5ilxe3`}],[`path`,{d:`M13.9 21.818a10 10 0 0 1-3.8 0`,key:`11zvb9`}],[`path`,{d:`M17.609 3.721a10 10 0 0 1 2.69 2.7`,key:`1iw5b2`}],[`path`,{d:`M2.182 13.9a10 10 0 0 1 0-3.8`,key:`c0bmvh`}],[`path`,{d:`M20.279 17.609a10 10 0 0 1-2.7 2.69`,key:`1ruxm7`}],[`path`,{d:`M21.818 10.1a10 10 0 0 1 0 3.8`,key:`qkgqxc`}],[`path`,{d:`M3.721 6.391a10 10 0 0 1 2.7-2.69`,key:`1mcia2`}],[`path`,{d:`M6.391 20.279a10 10 0 0 1-2.69-2.7`,key:`1fvljs`}]]};L.node;var se=m(L),R={name:`circle-x`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]],aliases:[`x-circle`]};R.node;var ce=m(R),z={name:`loader-circle`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]],aliases:[`loader-2`]};z.node;var le=m(z),B={name:`skip-forward`,size:24,node:[[`path`,{d:`M21 4v16`,key:`7j8fe9`}],[`path`,{d:`M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z`,key:`zs4d6`}]]};B.node;var ue=m(B),V={name:`undo-2`,size:24,node:[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]};V.node;var de=m(V),H=t(),U=n(),W=`md:grid-cols-[minmax(0,1.3fr)_110px_minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,1fr)_90px]`,G=e=>(e/1e9).toFixed(1).replace(`.`,`,`);function K(e){let t=(0,H.c)(17),{wert:n,gelb:r,rot:a,zusatz:o}=e;if(n==null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,U.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e):e=t[0],e}let s=n>=a?`var(--rot)`:n>=r?`var(--bernstein)`:`var(--reihe-1)`,c=n>=a?`text-rot-text`:n>=r?`text-bernstein`:`text-text-2`,l;t[1]===c?l=t[2]:(l=i(`ziffern text-sm`,c),t[1]=c,t[2]=l);let u;t[3]===n?u=t[4]:(u=Math.round(n),t[3]=n,t[4]=u);let d;t[5]===o?d=t[6]:(d=o&&(0,U.jsxs)(`span`,{className:`font-sans text-xs text-text-3`,children:[` · `,o]}),t[5]=o,t[6]=d);let f;t[7]!==l||t[8]!==u||t[9]!==d?(f=(0,U.jsxs)(`span`,{className:l,children:[u,` %`,d]}),t[7]=l,t[8]=u,t[9]=d,t[10]=f):f=t[10];let p=`${Math.min(100,Math.max(2,n))}%`,m;t[11]!==s||t[12]!==p?(m=(0,U.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,U.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:p,background:s}})}),t[11]=s,t[12]=p,t[13]=m):m=t[13];let h;return t[14]!==f||t[15]!==m?(h=(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1`,children:[f,m]}),t[14]=f,t[15]=m,t[16]=h):h=t[16],h}function fe(e){if(e.erreichbar===!1)return 0;let t=l(e);return t!==null&&t>=.8?1:e.art===`proxmox-host`?2:3}function pe(e){let t=(0,H.c)(4),{ziele:n,messwerte:r}=e,a;if(t[0]!==r||t[1]!==n){let e=new Map((r??[]).map(he)),o=[...n].sort(me),s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,U.jsxs)(`div`,{role:`row`,className:i(`schild hidden gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,W),children:[(0,U.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,U.jsx)(`span`,{role:`columnheader`,children:`Netz`}),(0,U.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,U.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,U.jsx)(`span`,{role:`columnheader`,children:`Platte`}),(0,U.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`})]}),t[3]=s):s=t[3],a=(0,U.jsxs)(`div`,{role:`table`,"aria-label":`Zustand der Geräte`,className:`flex flex-col`,children:[s,o.map(t=>{let n=e.get(t.id),r=n?.platte??(l(t)===null?null:l(t)*100),a=n?.ram_used&&n.ram_total?`${G(n.ram_used)} / ${G(n.ram_total)} GB`:void 0;return(0,U.jsxs)(`div`,{role:`row`,className:i(`grid grid-cols-2 gap-x-4 gap-y-2 border-t border-linie py-3 md:items-center`,W),children:[(0,U.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 flex-col md:col-span-1`,children:[(0,U.jsx)(S,{to:`/homelab/monitoring`,hash:t.id,className:`text-[15px] font-semibold break-words hover:text-lab-text`,children:t.name}),N(t)!==t.name&&(0,U.jsx)(`span`,{className:`text-sm text-text-3`,children:N(t)})]}),(0,U.jsxs)(`span`,{role:`cell`,className:i(`schild flex items-center gap-1.5 text-xs`,t.erreichbar===!1?`text-rot-text`:`text-text-3`),children:[t.erreichbar!==null&&(0,U.jsx)(`span`,{"aria-hidden":!0,className:i(`size-2 rounded-full`,t.erreichbar?`bg-gruen`:`bg-rot`)}),t.erreichbar===null?`–`:t.erreichbar?`erreichbar`:`antwortet nicht`]}),(0,U.jsxs)(`span`,{role:`cell`,children:[(0,U.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`CPU `}),(0,U.jsx)(K,{wert:n?.cpu,gelb:85,rot:95})]}),(0,U.jsxs)(`span`,{role:`cell`,children:[(0,U.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Speicher `}),(0,U.jsx)(K,{wert:n?.ram,gelb:85,rot:95,zusatz:a})]}),(0,U.jsxs)(`span`,{role:`cell`,children:[(0,U.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Platte `}),(0,U.jsx)(K,{wert:r,gelb:80,rot:90})]}),(0,U.jsxs)(`span`,{role:`cell`,className:`ziffern text-sm text-text-2`,children:[(0,U.jsx)(`span`,{className:`font-sans text-xs text-text-3 md:hidden`,children:`Läuft seit `}),O(n?.uptime_s)]})]},t.id)})]}),t[0]=r,t[1]=n,t[2]=a}else a=t[2];return a}function me(e,t){return fe(e)-fe(t)}function he(e){return[e.id,e.aktuell]}function ge(e){let t=(0,H.c)(24),{lage:n,lampen:r,onAnsehen:a}=e,o=n.ziel!==null,c=!o,l=`${n.oben} ${n.mitte}`,u=s[n.art],d=o?`cursor-pointer`:`cursor-default`,f;t[0]!==u||t[1]!==d?(f=i(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,u,d),t[0]=u,t[1]=d,t[2]=f):f=t[2];let p;t[3]===n.oben?p=t[4]:(p=(0,U.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:n.oben}),t[3]=n.oben,t[4]=p);let m;t[5]===n.mitte?m=t[6]:(m=(0,U.jsx)(`span`,{className:`text-center text-[34px] leading-none font-bold tracking-[0.04em] sm:text-[38px]`,children:n.mitte}),t[5]=n.mitte,t[6]=m);let h;t[7]===n.unten?h=t[8]:(h=(0,U.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:n.unten}),t[7]=n.unten,t[8]=h);let g;t[9]!==a||t[10]!==c||t[11]!==l||t[12]!==f||t[13]!==p||t[14]!==m||t[15]!==h?(g=(0,U.jsxs)(`button`,{type:`button`,onClick:a,disabled:c,"aria-label":l,className:f,children:[p,m,h]}),t[9]=a,t[10]=c,t[11]=l,t[12]=f,t[13]=p,t[14]=m,t[15]=h,t[16]=g):g=t[16];let _;t[17]===r?_=t[18]:(_=r.map(_e),t[17]=r,t[18]=_);let v;t[19]===_?v=t[20]:(v=(0,U.jsx)(`ul`,{"aria-label":`Geräte`,className:`grid grid-cols-2 gap-2.5 rounded-2xl border border-linie bg-panel p-3 sm:grid-cols-4`,children:_}),t[19]=_,t[20]=v);let y;return t[21]!==v||t[22]!==g?(y=(0,U.jsxs)(`section`,{"aria-label":`Lage im Homelab`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[g,v]}),t[21]=v,t[22]=g,t[23]=y):y=t[23],y}function _e(e){return(0,U.jsx)(oe,{lampe:e},e.id)}var q=r(e(),1),ve=(e,t=1)=>e.toFixed(t).replace(`.`,`,`);function J(e){return e==null?`–`:e>=0xe8d4a51000?`${ve(e/0xe8d4a51000)} TB`:e>=1e10?`${Math.round(e/1e9)} GB`:`${ve(e/1e9)} GB`}function ye(e){return e?/^\s*\d{1,2}:\d{2}\s*$/.test(e)?`täglich ${e.trim()}`:`Zeitplan „${e}“`:`ohne Zeitplan`}function be(e){return e.jobs.length===0?`Kein Sicherungsauftrag in Proxmox`:e.jobs.map(e=>`${ye(e.zeitplan)} auf ${e.speicher??`?`}`).join(`, `)}var Y={ok:`in Ordnung`,gelb:`wird knapp`,rot:`fast voll`},X={ok:`gruen`,gelb:`bernstein`,rot:`rot`,keine:`grau`},xe={ok:`var(--reihe-1)`,gelb:`var(--bernstein)`,rot:`var(--rot)`},Se=e=>P(new Date(e*1e3).toISOString());function Z(e){let t=(0,H.c)(11),{anteil:n,stufe:r,name:i}=e,a;t[0]===n?a=t[1]:(a=Math.round(n*100),t[0]=n,t[1]=a);let o=a,s=`${i}: ${o} % belegt`,c=`${Math.min(100,Math.max(2,o))}%`,l=xe[r],u;t[2]!==c||t[3]!==l?(u=(0,U.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:c,background:l}}),t[2]=c,t[3]=l,t[4]=u):u=t[4];let d,f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,U.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-y-0 left-[80%] w-px bg-bernstein/70`}),f=(0,U.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-y-0 left-[90%] w-px bg-rot/80`}),t[5]=d,t[6]=f):(d=t[5],f=t[6]);let p;return t[7]!==o||t[8]!==s||t[9]!==u?(p=(0,U.jsxs)(`div`,{role:`meter`,"aria-label":s,"aria-valuenow":o,"aria-valuemin":0,"aria-valuemax":100,className:`relative h-2 w-full overflow-hidden rounded-full bg-erhaben`,children:[u,d,f]}),t[7]=o,t[8]=s,t[9]=u,t[10]=p):p=t[10],p}function Q(e){let t=(0,H.c)(16),{titel:n,unter:r,chip:i,chipText:a,children:o}=e,s;t[0]===n?s=t[1]:(s=(0,U.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n}),t[0]=n,t[1]=s);let c;t[2]===r?c=t[3]:(c=r&&(0,U.jsx)(`span`,{className:`text-sm break-words text-text-3`,children:r}),t[2]=r,t[3]=c);let l;t[4]!==s||t[5]!==c?(l=(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[s,c]}),t[4]=s,t[5]=c,t[6]=l):l=t[6];let u;t[7]!==i||t[8]!==a?(u=(0,U.jsx)(D,{art:i,children:a}),t[7]=i,t[8]=a,t[9]=u):u=t[9];let d;t[10]!==l||t[11]!==u?(d=(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12];let f;return t[13]!==o||t[14]!==d?(f=(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 rounded-xl border border-linie bg-erhaben/40 p-4`,children:[d,o]}),t[13]=o,t[14]=d,t[15]=f):f=t[15],f}function Ce(e){let t=(0,H.c)(31),{p:n}=e,r;t[0]===n.anteil?r=t[1]:(r=Math.round(n.anteil*100),t[0]=n.anteil,t[1]=r);let a=r,o=`Speicherpool ${n.speicher}`,s=X[n.stufe],c=Y[n.stufe],l=Math.max(n.anteil,n.meta_anteil??0),u=`Speicherpool ${n.speicher}`,d;t[2]!==n.stufe||t[3]!==l||t[4]!==u?(d=(0,U.jsx)(Z,{anteil:l,stufe:n.stufe,name:u}),t[2]=n.stufe,t[3]=l,t[4]=u,t[5]=d):d=t[5];let f;t[6]===n.belegt?f=t[7]:(f=J(n.belegt),t[6]=n.belegt,t[7]=f);let p;t[8]===n.gesamt?p=t[9]:(p=J(n.gesamt),t[8]=n.gesamt,t[9]=p);let m=n.stufe!==`ok`&&`text-foreground`,h;t[10]===m?h=t[11]:(h=i(m),t[10]=m,t[11]=h);let g;t[12]===n.frei?g=t[13]:(g=J(n.frei),t[12]=n.frei,t[13]=g);let _;t[14]!==h||t[15]!==g?(_=(0,U.jsxs)(`span`,{className:h,children:[g,` frei`]}),t[14]=h,t[15]=g,t[16]=_):_=t[16];let v;t[17]!==a||t[18]!==_||t[19]!==f||t[20]!==p?(v=(0,U.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[a,` % · `,f,` von `,p,` · `,_]}),t[17]=a,t[18]=_,t[19]=f,t[20]=p,t[21]=v):v=t[21];let y;t[22]===n.meta_anteil?y=t[23]:(y=n.meta_anteil!==null&&(0,U.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Metadaten `,Math.round(n.meta_anteil*100),` % belegt`]}),t[22]=n.meta_anteil,t[23]=y);let b;return t[24]!==v||t[25]!==y||t[26]!==o||t[27]!==s||t[28]!==c||t[29]!==d?(b=(0,U.jsxs)(Q,{titel:o,unter:`Platten der Container und VMs`,chip:s,chipText:c,children:[d,v,y]}),t[24]=v,t[25]=y,t[26]=o,t[27]=s,t[28]=c,t[29]=d,t[30]=b):b=t[30],b}function we(e){let t=(0,H.c)(21),{s:n}=e,r=X[n.stufe],i=Y[n.stufe],a;t[0]!==n.anteil||t[1]!==n.stufe?(a=(0,U.jsx)(Z,{anteil:n.anteil,stufe:n.stufe,name:`Systemplatte des Proxmox-Hosts`}),t[0]=n.anteil,t[1]=n.stufe,t[2]=a):a=t[2];let o;t[3]===n.anteil?o=t[4]:(o=Math.round(n.anteil*100),t[3]=n.anteil,t[4]=o);let s;t[5]===n.belegt?s=t[6]:(s=J(n.belegt),t[5]=n.belegt,t[6]=s);let c;t[7]===n.gesamt?c=t[8]:(c=J(n.gesamt),t[7]=n.gesamt,t[8]=c);let l;t[9]===n.frei?l=t[10]:(l=J(n.frei),t[9]=n.frei,t[10]=l);let u;t[11]!==o||t[12]!==s||t[13]!==c||t[14]!==l?(u=(0,U.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[o,` % · `,s,` von `,c,` · `,l,` frei`]}),t[11]=o,t[12]=s,t[13]=c,t[14]=l,t[15]=u):u=t[15];let d;return t[16]!==r||t[17]!==i||t[18]!==a||t[19]!==u?(d=(0,U.jsxs)(Q,{titel:`Systemplatte`,unter:`Proxmox-Host: Kernel, Sicherungen vor Updates`,chip:r,chipText:i,children:[a,u]}),t[16]=r,t[17]=i,t[18]=a,t[19]=u,t[20]=d):d=t[20],d}function Te(e){let t=(0,H.c)(21),{n}=e,r=n.problem?n.stufe===`rot`?`gestört`:`unklar`:Y[n.stufe],a=`NAS ${n.server??``}`,o;t[0]===a?o=t[1]:(o=a.trim(),t[0]=a,t[1]=o);let s;t[2]===n.art?s=t[3]:(s=n.art.toUpperCase(),t[2]=n.art,t[3]=s);let c=`${s} · ${n.quelle??`?`} → ${n.ziel}`,l=X[n.stufe],u;t[4]!==n.anteil||t[5]!==n.belegt||t[6]!==n.gesamt||t[7]!==n.problem||t[8]!==n.server||t[9]!==n.stufe?(u=n.problem?(0,U.jsx)(`p`,{className:i(`text-sm`,n.stufe===`rot`?`text-rot-text`:`text-bernstein`),children:n.problem}):n.anteil!==null&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Z,{anteil:n.anteil,stufe:n.stufe,name:`NAS ${n.server??``}`}),(0,U.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[Math.round(n.anteil*100),` % · `,J(n.belegt),` von `,J(n.gesamt),` · `,J((n.gesamt??0)-(n.belegt??0)),` frei`]})]}),t[4]=n.anteil,t[5]=n.belegt,t[6]=n.gesamt,t[7]=n.problem,t[8]=n.server,t[9]=n.stufe,t[10]=u):u=t[10];let d=n.erreichbar===!1?`antwortet nicht`:`antwortet`,f=n.eingebunden?`auf dem Proxmox-Host eingebunden`:`nicht eingebunden`,p;t[11]!==d||t[12]!==f?(p=(0,U.jsxs)(`p`,{className:`text-xs text-text-3`,children:[d,` · `,f]}),t[11]=d,t[12]=f,t[13]=p):p=t[13];let m;return t[14]!==r||t[15]!==o||t[16]!==c||t[17]!==l||t[18]!==u||t[19]!==p?(m=(0,U.jsxs)(Q,{titel:o,unter:c,chip:l,chipText:r,children:[u,p]}),t[14]=r,t[15]=o,t[16]=c,t[17]=l,t[18]=u,t[19]=p,t[20]=m):m=t[20],m}function Ee(e){let t=(0,H.c)(18),{s:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={ok:`aktuell`,gelb:`Lücke`,rot:`gestört`,keine:`kein Auftrag`},t[0]=r):r=t[0];let i=r[n.stufe],a;t[1]===n?a=t[2]:(a=be(n),t[1]=n,t[2]=a);let o=X[n.stufe],s;t[3]===n.probleme?s=t[4]:(s=n.probleme.map(Oe),t[3]=n.probleme,t[4]=s);let c;t[5]!==n.erfasst||t[6]!==n.stufe||t[7]!==n.zuletzt?(c=n.stufe===`ok`&&(0,U.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Alle `,n.erfasst,` Geräte gesichert`,n.zuletzt?(0,U.jsxs)(U.Fragment,{children:[`, zuletzt `,(0,U.jsx)(`span`,{className:`ziffern`,children:Se(n.zuletzt)})]}):null,`.`]}),t[5]=n.erfasst,t[6]=n.stufe,t[7]=n.zuletzt,t[8]=c):c=t[8];let l;t[9]===n.fehlend?l=t[10]:(l=n.fehlend.length>0&&(0,U.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm`,children:n.fehlend.map(De)}),t[9]=n.fehlend,t[10]=l);let u;return t[11]!==i||t[12]!==a||t[13]!==o||t[14]!==s||t[15]!==c||t[16]!==l?(u=(0,U.jsxs)(Q,{titel:`Sicherungen`,unter:a,chip:o,chipText:i,children:[s,c,l]}),t[11]=i,t[12]=a,t[13]=o,t[14]=s,t[15]=c,t[16]=l,t[17]=u):u=t[17],u}function De(e){return(0,U.jsxs)(`li`,{className:`text-bernstein`,children:[e.name,`: `,e.zuletzt?(0,U.jsxs)(U.Fragment,{children:[`zuletzt `,(0,U.jsx)(`span`,{className:`ziffern`,children:Se(e.zuletzt)})]}):`noch nie gesichert`]},e.ziel)}function Oe(e){return(0,U.jsx)(`p`,{className:`text-sm text-rot-text`,children:e},e)}function ke(e){let t=(0,H.c)(44),{daten:n,laeuft:r,gesperrt:i,onAktion:o}=e,s=r===void 0?null:r,c=i!==void 0&&i,[l,u]=(0,q.useState)(null),d;t[0]!==n.pools||t[1]!==n.systemplatte?.stufe?(d=n.pools.some(Ne)||(n.systemplatte?.stufe??`ok`)!==`ok`,t[0]=n.pools,t[1]=n.systemplatte?.stufe,t[2]=d):d=t[2];let f=d,p,m,h;if(t[3]!==n.empfehlungen||t[4]!==n.nas||t[5]!==n.pools||t[6]!==n.sicherungen||t[7]!==n.systemplatte||t[8]!==c||t[9]!==f||t[10]!==s||t[11]!==o){let e=n.empfehlungen.reduce(Me,0);p=`flex flex-col gap-4`;let r;t[15]===n.pools?r=t[16]:(r=n.pools.map(je),t[15]=n.pools,t[16]=r);let i;t[17]===n.systemplatte?i=t[18]:(i=n.systemplatte&&(0,U.jsx)(we,{s:n.systemplatte}),t[17]=n.systemplatte,t[18]=i);let l;t[19]===n.nas?l=t[20]:(l=n.nas.length>0?n.nas.map(Ae):(0,U.jsx)(Q,{titel:`NAS`,chip:`grau`,chipText:`keins`,children:(0,U.jsx)(`p`,{className:`text-sm text-text-3`,children:`Auf dem Proxmox-Host ist kein Netzlaufwerk eingebunden.`})}),t[19]=n.nas,t[20]=l);let d;t[21]===n.sicherungen?d=t[22]:(d=(0,U.jsx)(Ee,{s:n.sicherungen}),t[21]=n.sicherungen,t[22]=d),t[23]!==d||t[24]!==r||t[25]!==i||t[26]!==l?(m=(0,U.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2 2xl:grid-cols-4`,children:[r,i,l,d]}),t[23]=d,t[24]=r,t[25]=i,t[26]=l,t[27]=m):m=t[27],h=n.empfehlungen.length>0&&(0,U.jsxs)(`details`,{open:f,className:`group rounded-xl border border-linie bg-erhaben/40 px-4 open:pb-3`,children:[(0,U.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,U.jsx)(a,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Was Platz bringt`]}),(0,U.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[n.empfehlungen.length,` `,n.empfehlungen.length===1?`Vorschlag`:`Vorschläge`,e>0&&` · bis zu ${J(e)}`]})]}),(0,U.jsx)(`ol`,{className:`flex flex-col`,children:n.empfehlungen.map(e=>(0,U.jsx)(Ie,{e,laeuft:s,gesperrt:c||!o,onFrage:u},e.titel))})]}),t[3]=n.empfehlungen,t[4]=n.nas,t[5]=n.pools,t[6]=n.sicherungen,t[7]=n.systemplatte,t[8]=c,t[9]=f,t[10]=s,t[11]=o,t[12]=p,t[13]=m,t[14]=h}else p=t[12],m=t[13],h=t[14];let g=!!l,_=l?`Proxmox-Host: ${l.label}`:``,v=l?.frage??``,y=l?.label??``,b;t[28]!==l||t[29]!==o?(b=()=>{l&&o&&o(l),u(null)},t[28]=l,t[29]=o,t[30]=b):b=t[30];let x;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(x=()=>u(null),t[31]=x):x=t[31];let S;t[32]!==c||t[33]!==y||t[34]!==b||t[35]!==g||t[36]!==_||t[37]!==v?(S=(0,U.jsx)(I,{offen:g,titel:_,text:v,knopf:y,gesperrt:c,onJa:b,onNein:x}),t[32]=c,t[33]=y,t[34]=b,t[35]=g,t[36]=_,t[37]=v,t[38]=S):S=t[38];let C;return t[39]!==S||t[40]!==p||t[41]!==m||t[42]!==h?(C=(0,U.jsxs)(`div`,{className:p,children:[m,h,S]}),t[39]=S,t[40]=p,t[41]=m,t[42]=h,t[43]=C):C=t[43],C}function Ae(e){return(0,U.jsx)(Te,{n:e},e.ziel)}function je(e){return(0,U.jsx)(Ce,{p:e},e.speicher)}function Me(e,t){return e+(t.platz??0)}function Ne(e){return e.stufe!==`ok`}var Pe={pool:`Speicherpool`,systemplatte:`Systemplatte des Hosts`};function Fe({text:e}){return e.split(/`([^`]+)`/).map((e,t)=>t%2==1?(0,U.jsx)(`code`,{className:`rounded bg-erhaben px-1 font-mono text-[13px] text-foreground [font-variant-ligatures:none]`,children:e},t):e)}function Ie(e){let t=(0,H.c)(23),{e:n,laeuft:r,gesperrt:i,onFrage:a}=e,o;t[0]===n.titel?o=t[1]:(o=(0,U.jsx)(`span`,{className:`text-[15px] font-medium break-words`,children:n.titel}),t[0]=n.titel,t[1]=o);let s;t[2]===n.platz?s=t[3]:(s=n.platz?`≈ ${J(n.platz)}`:`Größe unbekannt`,t[2]=n.platz,t[3]=s);let c;t[4]===s?c=t[5]:(c=(0,U.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:s}),t[4]=s,t[5]=c);let l;t[6]!==o||t[7]!==c?(l=(0,U.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[o,c]}),t[6]=o,t[7]=c,t[8]=l):l=t[8];let u;t[9]===n.ort?u=t[10]:(u=n.ort&&(0,U.jsx)(`span`,{className:`schild text-xs text-text-3`,children:Pe[n.ort]??n.ort}),t[9]=n.ort,t[10]=u);let d;t[11]===n.text?d=t[12]:(d=(0,U.jsx)(`p`,{className:`text-sm break-words text-text-2`,children:(0,U.jsx)(Fe,{text:n.text})}),t[11]=n.text,t[12]=d);let f;t[13]!==n.aktion||t[14]!==i||t[15]!==r||t[16]!==a?(f=n.aktion&&(r?(0,U.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,r]}):(0,U.jsx)(F,{variant:`outline`,size:`sm`,className:`mt-1 self-start`,disabled:i,onClick:()=>a(n.aktion),children:n.aktion.label})),t[13]=n.aktion,t[14]=i,t[15]=r,t[16]=a,t[17]=f):f=t[17];let p;return t[18]!==l||t[19]!==u||t[20]!==d||t[21]!==f?(p=(0,U.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie py-3 first:border-t-0 first:pt-1`,children:[l,u,d,f]}),t[18]=l,t[19]=u,t[20]=d,t[21]=f,t[22]=p):p=t[22],p}var Le={snapshot:`Snapshot`,sicherung:`Sicherung`,keiner:`kein Rückweg`};function Re(e){let t=(0,H.c)(24),{anzahl:n,gesperrt:r}=e,[i,a]=(0,q.useState)(!1),o=E(i),s=_(),c;t[0]===o.data?.schritte?c=t[1]:(c=o.data?.schritte??[],t[0]=o.data?.schritte,t[1]=c);let l=c,u=r||n===0||s.isPending,d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>a(!0),t[2]=d):d=t[2];let f=n>0?` (${n})`:``,p;t[3]!==u||t[4]!==f?(p=(0,U.jsxs)(F,{disabled:u,onClick:d,children:[`Alle aktualisieren`,f]}),t[3]=u,t[4]=f,t[5]=p):p=t[5];let m=l.length?`${l.length} Updates starten`:`Starten`,h=s.isPending||o.isPending||l.length===0,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>a(!1),t[6]=g):g=t[6];let v;t[7]!==i||t[8]!==s?(v=()=>{i&&(s.mutate(void 0),a(!1))},t[7]=i,t[8]=s,t[9]=v):v=t[9];let y;t[10]!==o.data||t[11]!==o.error||t[12]!==o.isPending||t[13]!==l?(y=o.isPending?(0,U.jsx)(`p`,{className:`text-sm text-text-2`,children:`Die Reihenfolge wird gelesen …`}):o.error?(0,U.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Der Plan lässt sich nicht lesen: `,o.error.message]}):(0,U.jsxs)(`div`,{className:`flex flex-col gap-2 pb-1`,children:[(0,U.jsx)(`ol`,{className:`m-0 flex list-none flex-col gap-1 p-0`,children:l.map(ze)}),o.data?.hinweis&&(0,U.jsx)(`p`,{className:`text-xs text-bernstein`,children:o.data.hinweis})]}),t[10]=o.data,t[11]=o.error,t[12]=o.isPending,t[13]=l,t[14]=y):y=t[14];let b;t[15]!==i||t[16]!==y||t[17]!==m||t[18]!==h||t[19]!==v?(b=(0,U.jsx)(I,{offen:i,titel:`Alle Homelab-Updates einspielen?`,text:`Die Updates laufen nacheinander, jedes mit Rückweg und Prüfung. Ist eine Prüfung rot, geht dieser Schritt von selbst zurück und der Rest bleibt stehen. AdGuard und NPMplus kommen zuletzt, der Proxmox-Host ganz am Ende; neu gestartet wird er nicht.`,knopf:m,gesperrt:h,onNein:g,onJa:v,children:y}),t[15]=i,t[16]=y,t[17]=m,t[18]=h,t[19]=v,t[20]=b):b=t[20];let x;return t[21]!==b||t[22]!==p?(x=(0,U.jsxs)(U.Fragment,{children:[p,b]}),t[21]=b,t[22]=p,t[23]=x):x=t[23],x}function ze(e,t){return(0,U.jsxs)(`li`,{className:`grid grid-cols-[1.5rem_minmax(0,1fr)_auto] items-baseline gap-2 text-sm`,children:[(0,U.jsxs)(`span`,{className:`ziffern text-text-3`,children:[t+1,`.`]}),(0,U.jsxs)(`span`,{className:`min-w-0`,children:[(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:e.name}),` `,(0,U.jsxs)(`span`,{className:`text-text-2`,children:[`· `,e.was]})]}),(0,U.jsx)(`span`,{className:i(`text-xs`,e.rueckweg_art===`keiner`?`text-bernstein`:`text-text-3`),children:Le[e.rueckweg_art]})]},`${e.ziel}-${e.baustein}`)}var Be={wartet:{Symbol:se,farbe:`text-text-3`,text:`wartet`},laeuft:{Symbol:le,farbe:`text-cyan`,text:`läuft`},eingespielt:{Symbol:g,farbe:`text-gruen`,text:`eingespielt`},zurueckgerollt:{Symbol:de,farbe:`text-bernstein`,text:`zurückgerollt`},fehler:{Symbol:ce,farbe:`text-rot`,text:`Fehler`},uebersprungen:{Symbol:ue,farbe:`text-text-3`,text:`übersprungen`}},Ve={laeuft:{art:`cyan`,text:`läuft`},fertig:{art:`gruen`,text:`fertig`},abgebrochen:{art:`bernstein`,text:`abgebrochen`}};function He(e){let t=(0,H.c)(33),{lauf:n,onQuittieren:r}=e,i;t[0]===n.schritte?i=t[1]:(i=n.schritte.filter(We),t[0]=n.schritte,t[1]=i);let a=i.length,o=Ve[n.status],s;t[2]!==a||t[3]!==n.schritte.length?(s=(0,U.jsxs)(`span`,{className:`schild text-sm tracking-[0.18em] text-cyan`,children:[`Alle aktualisieren · `,a,` von `,n.schritte.length]}),t[2]=a,t[3]=n.schritte.length,t[4]=s):s=t[4];let c;t[5]===n.start?c=t[6]:(c=P(new Date(n.start*1e3).toISOString()),t[5]=n.start,t[6]=c);let l;t[7]===c?l=t[8]:(l=(0,U.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:c}),t[7]=c,t[8]=l);let u;t[9]!==o.art||t[10]!==o.text?(u=(0,U.jsx)(D,{art:o.art,children:o.text}),t[9]=o.art,t[10]=o.text,t[11]=u):u=t[11];let d;t[12]!==l||t[13]!==u?(d=(0,U.jsxs)(`span`,{className:`flex items-center gap-2`,children:[l,u]}),t[12]=l,t[13]=u,t[14]=d):d=t[14];let f;t[15]!==s||t[16]!==d?(f=(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[s,d]}),t[15]=s,t[16]=d,t[17]=f):f=t[17];let p=`${a/Math.max(1,n.schritte.length)*100}%`,m;t[18]===p?m=t[19]:(m=(0,U.jsx)(`div`,{className:`h-1.5 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,U.jsx)(`div`,{className:`h-full rounded-full bg-cyan transition-all`,style:{width:p}})}),t[18]=p,t[19]=m);let h;t[20]===n.schritte?h=t[21]:(h=n.schritte.map(Ue),t[20]=n.schritte,t[21]=h);let g;t[22]===h?g=t[23]:(g=(0,U.jsx)(`ol`,{className:`m-0 grid list-none gap-x-6 gap-y-1.5 p-0 sm:grid-cols-2`,children:h}),t[22]=h,t[23]=g);let _;t[24]!==n.status||t[25]!==n.text||t[26]!==r?(_=(n.text||n.status!==`laeuft`&&r)&&(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n.text&&(0,U.jsx)(`p`,{className:`text-sm text-text-2`,children:n.text}),n.status!==`laeuft`&&r&&(0,U.jsx)(F,{variant:`outline`,size:`sm`,className:`ml-auto`,onClick:r,children:`Ausblenden`})]}),t[24]=n.status,t[25]=n.text,t[26]=r,t[27]=_):_=t[27];let v;return t[28]!==g||t[29]!==_||t[30]!==f||t[31]!==m?(v=(0,U.jsxs)(`section`,{"aria-label":`Alle aktualisieren`,className:`flex flex-col gap-3 rounded-xl border border-cyan-rand/60 bg-cyan-grund/40 p-4`,children:[f,m,g,_]}),t[28]=g,t[29]=_,t[30]=f,t[31]=m,t[32]=v):v=t[32],v}function Ue(e){let t=Be[e.status];return(0,U.jsxs)(`li`,{className:`flex items-start gap-2 text-sm`,children:[(0,U.jsx)(t.Symbol,{className:i(`mt-0.5 size-4 shrink-0`,t.farbe,e.status===`laeuft`&&`motion-safe:animate-spin`),"aria-hidden":!0}),(0,U.jsxs)(`span`,{className:`min-w-0`,children:[(0,U.jsx)(`span`,{className:`text-foreground`,children:e.name}),` `,(0,U.jsxs)(`span`,{className:`text-text-3`,children:[`· `,e.was,` · `,t.text]}),e.text&&e.status!==`eingespielt`&&(0,U.jsx)(`span`,{className:`block text-xs text-text-3`,children:e.text})]})]},`${e.ziel}-${e.baustein}`)}function We(e){return![`wartet`,`laeuft`].includes(e.status)}var Ge=`md:grid-cols-[minmax(0,1.1fr)_minmax(0,1.3fr)_minmax(0,1fr)_minmax(0,0.9fr)_11.5rem]`;function Ke(e){let t=(0,H.c)(26),{ziel:n,b:r}=e;if(!r){let e=n.art===`proxmox-host`?y(n)?.installiert:null,r;return t[0]===e?r=t[1]:(r=e?(0,U.jsxs)(`span`,{className:`ziffern text-sm`,children:[`PVE `,e]}):(0,U.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e,t[1]=r),r}let i;t[2]===r.installiert?i=t[3]:(i=r.installiert?u(r.installiert):`–`,t[2]=r.installiert,t[3]=i);let a=i,o=r.zustand===`aktuell`?`text-foreground`:`text-text-2`,s;t[4]!==a||t[5]!==o?(s=(0,U.jsx)(`span`,{className:o,children:a}),t[4]=a,t[5]=o,t[6]=s):s=t[6];let c;t[7]!==r.verfuegbar||t[8]!==r.zustand?(c=r.zustand===`neu`&&r.verfuegbar&&(0,U.jsxs)(`span`,{className:`text-cyan`,children:[`→ `,r.verfuegbar]}),t[7]=r.verfuegbar,t[8]=r.zustand,t[9]=c):c=t[9];let l;t[10]===r.zustand?l=t[11]:(l=r.zustand===`aktuell`&&(0,U.jsx)(`span`,{className:`font-sans text-xs text-gruen-text`,children:`aktuell`}),t[10]=r.zustand,t[11]=l);let d;t[12]===r.zustand?d=t[13]:(d=r.zustand===`unbekannt`&&(0,U.jsx)(`span`,{className:`font-sans text-xs text-text-3`,children:`unklar`}),t[12]=r.zustand,t[13]=d);let f;t[14]!==s||t[15]!==c||t[16]!==l||t[17]!==d?(f=(0,U.jsxs)(`span`,{className:`ziffern flex flex-wrap items-baseline gap-x-2 text-sm`,children:[s,c,l,d]}),t[14]=s,t[15]=c,t[16]=l,t[17]=d,t[18]=f):f=t[18];let p;t[19]!==r.aktion||t[20]!==r.grund||t[21]!==r.zustand?(p=r.zustand===`neu`&&!r.aktion&&r.grund&&(0,U.jsx)(`span`,{className:`text-xs text-text-3`,children:r.grund}),t[19]=r.aktion,t[20]=r.grund,t[21]=r.zustand,t[22]=p):p=t[22];let m;return t[23]!==f||t[24]!==p?(m=(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[f,p]}),t[23]=f,t[24]=p,t[25]=m):m=t[25],m}function qe(e){let t=(0,H.c)(22),{b:n,onSuchen:r,gesperrt:i}=e;if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,U.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e):e=t[0],e}let a=n.id===`docker`,s;if(n.zustand===`neu`){let e=n.kurz||`Update bereit`,r;t[1]===e?r=t[2]:(r=(0,U.jsx)(`span`,{className:`text-cyan`,children:e}),t[1]=e,t[2]=r),s=r}else if(n.zustand===`aktuell`){let e=a?`Images aktuell`:`aktuell`,n;t[3]===e?n=t[4]:(n=(0,U.jsx)(`span`,{className:`text-gruen-text`,children:e}),t[3]=e,t[4]=n),s=n}else{let e;t[5]===n.grund?e=t[6]:(e=re(n.grund),t[5]=n.grund,t[6]=e);let r=e,i=n.grund??void 0,o=a?`Images unklar`:`unklar`,c;t[7]===r?c=t[8]:(c=r&&(0,U.jsxs)(`span`,{className:`text-text-3`,children:[` · Listen vom `,r]}),t[7]=r,t[8]=c);let l;t[9]!==i||t[10]!==o||t[11]!==c?(l=(0,U.jsxs)(`span`,{className:`text-text-2`,title:i,children:[o,c]}),t[9]=i,t[10]=o,t[11]=c,t[12]=l):l=t[12],s=l}let c=n.zustand===`unbekannt`?n.aktion:null,l;t[13]===s?l=t[14]:(l=(0,U.jsx)(`span`,{className:`min-w-0`,children:s}),t[13]=s,t[14]=l);let u;t[15]!==i||t[16]!==r||t[17]!==c?(u=c&&(0,U.jsx)(F,{variant:`ghost`,size:`icon-sm`,className:`-my-2 shrink-0`,"aria-label":c.label,title:c.label,disabled:i,onClick:()=>r(c),children:(0,U.jsx)(o,{})}),t[15]=i,t[16]=r,t[17]=c,t[18]=u):u=t[18];let d;return t[19]!==l||t[20]!==u?(d=(0,U.jsxs)(`span`,{className:`flex items-center gap-1 text-sm`,children:[l,u]}),t[19]=l,t[20]=u,t[21]=d):d=t[21],d}var Je={app:`App updaten`,os:`Pakete einspielen`,pakete:`Pakete einspielen`};function Ye(e){let t=(0,H.c)(54),{ziel:n,laeuft:r,gesperrt:a,onFrage:o}=e,s;t[0]===n?s=t[1]:(s=w(n),t[0]=n,t[1]=s);let c=s,l;t[2]===n?l=t[3]:(l=y(n),t[2]=n,t[3]=l);let u=l,f,p,m,h,g,_,v,b,x;if(t[4]!==c||t[5]!==a||t[6]!==r||t[7]!==o||t[8]!==u||t[9]!==n){let e=n.bausteine.filter(Xe),s=d(n)>=2;_=`row`;let l=s&&`opacity-75`;t[19]===l?v=t[20]:(v=i(`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-linie py-3.5 md:items-center`,Ge,l),t[19]=l,t[20]=v);let y;t[21]===n.name?y=t[22]:(y=(0,U.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[21]=n.name,t[22]=y);let S;t[23]===n?S=t[24]:(S=N(n)!==n.name&&(0,U.jsx)(`span`,{className:`text-sm text-text-3`,children:N(n)}),t[23]=n,t[24]=S),t[25]!==y||t[26]!==S?(b=(0,U.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[y,S]}),t[25]=y,t[26]=S,t[27]=b):b=t[27];let C;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,U.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`App `}),t[28]=C):C=t[28],t[29]!==c||t[30]!==n?(x=(0,U.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[C,(0,U.jsx)(Ke,{ziel:n,b:c})]}),t[29]=c,t[30]=n,t[31]=x):x=t[31];let w;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,U.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Pakete `}),t[32]=w):w=t[32];let T=a||!!r,E;t[33]!==o||t[34]!==n?(E=e=>o({ziel:n,aktion:e}),t[33]=o,t[34]=n,t[35]=E):E=t[35],t[36]!==u||t[37]!==T||t[38]!==E?(f=(0,U.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[w,(0,U.jsx)(qe,{b:u,gesperrt:T,onSuchen:E})]}),t[36]=u,t[37]=T,t[38]=E,t[39]=f):f=t[39];let D=e.length?ne(n):``;t[40]===D?p=t[41]:(p=(0,U.jsx)(`span`,{role:`cell`,className:`text-sm text-text-3`,children:D}),t[40]=D,t[41]=p),m=`cell`,h=`flex flex-wrap gap-2 md:flex-col md:items-stretch`,g=r?(0,U.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,r]}):e.map(e=>(0,U.jsx)(F,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>e.aktion&&o({ziel:n,aktion:e.aktion}),children:Je[e.id]??e.aktion?.label??`Updaten`},e.id)),t[4]=c,t[5]=a,t[6]=r,t[7]=o,t[8]=u,t[9]=n,t[10]=f,t[11]=p,t[12]=m,t[13]=h,t[14]=g,t[15]=_,t[16]=v,t[17]=b,t[18]=x}else f=t[10],p=t[11],m=t[12],h=t[13],g=t[14],_=t[15],v=t[16],b=t[17],x=t[18];let S;t[42]!==m||t[43]!==h||t[44]!==g?(S=(0,U.jsx)(`span`,{role:m,className:h,children:g}),t[42]=m,t[43]=h,t[44]=g,t[45]=S):S=t[45];let C;return t[46]!==f||t[47]!==p||t[48]!==S||t[49]!==_||t[50]!==v||t[51]!==b||t[52]!==x?(C=(0,U.jsxs)(`div`,{role:_,className:v,children:[b,x,f,p,S]}),t[46]=f,t[47]=p,t[48]=S,t[49]=_,t[50]=v,t[51]=b,t[52]=x,t[53]=C):C=t[53],C}function Xe(e){return e.zustand===`neu`&&e.aktion}function Ze(e){let t=(0,H.c)(42),{ziele:n,laufend:r,gesperrt:a,onAktion:o}=e,[s,c]=(0,q.useState)(null),l,u,d,f,p,m;if(t[0]!==a||t[1]!==r||t[2]!==n){let e=[...n].sort($e),o;t[9]===n?o=t[10]:(o=n.filter(Qe),t[9]=n,t[10]=o),l=o.length,u=`table`,d=`Updates je Gerät`,f=`flex flex-col`,t[11]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,U.jsxs)(`div`,{role:`row`,className:i(`schild hidden gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,Ge),children:[(0,U.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,U.jsx)(`span`,{role:`columnheader`,children:`App`}),(0,U.jsx)(`span`,{role:`columnheader`,children:`Pakete`}),(0,U.jsx)(`span`,{role:`columnheader`,children:`Rückweg`}),(0,U.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),t[11]=p):p=t[11];let s;t[12]!==a||t[13]!==r?(s=e=>(0,U.jsx)(Ye,{ziel:e,laeuft:r.get(e.id)??null,gesperrt:a||r.has(e.id),onFrage:c},e.id),t[12]=a,t[13]=r,t[14]=s):s=t[14],m=e.map(s),t[0]=a,t[1]=r,t[2]=n,t[3]=l,t[4]=u,t[5]=d,t[6]=f,t[7]=p,t[8]=m}else l=t[3],u=t[4],d=t[5],f=t[6],p=t[7],m=t[8];let h;t[15]!==u||t[16]!==d||t[17]!==f||t[18]!==p||t[19]!==m?(h=(0,U.jsxs)(`div`,{role:u,"aria-label":d,className:f,children:[p,m]}),t[15]=u,t[16]=d,t[17]=f,t[18]=p,t[19]=m,t[20]=h):h=t[20];let g;t[21]!==l||t[22]!==n.length?(g=l>0&&l===n.length&&(0,U.jsx)(D,{art:`gruen`,children:`Alles aktuell`}),t[21]=l,t[22]=n.length,t[23]=g):g=t[23];let _=!!s,v=s?`${s.ziel.name}: ${s.aktion.label}`:``,y=s?.aktion.frage??``,b=s?.aktion.label??``,x;t[24]===s?.aktion.pfad?x=t[25]:(x=s?.aktion.pfad.endsWith(`/neustart`),t[24]=s?.aktion.pfad,t[25]=x);let S=!!x,C;t[26]!==s||t[27]!==o?(C=()=>{s&&o(s.aktion),c(null)},t[26]=s,t[27]=o,t[28]=C):C=t[28];let w;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>c(null),t[29]=w):w=t[29];let T;t[30]!==a||t[31]!==y||t[32]!==b||t[33]!==S||t[34]!==C||t[35]!==_||t[36]!==v?(T=(0,U.jsx)(I,{offen:_,titel:v,text:y,knopf:b,gefahr:S,gesperrt:a,onJa:C,onNein:w}),t[30]=a,t[31]=y,t[32]=b,t[33]=S,t[34]=C,t[35]=_,t[36]=v,t[37]=T):T=t[37];let E;return t[38]!==T||t[39]!==h||t[40]!==g?(E=(0,U.jsxs)(U.Fragment,{children:[h,g,T]}),t[38]=T,t[39]=h,t[40]=g,t[41]=E):E=t[41],E}function Qe(e){return d(e)===3}function $e(e,t){return d(e)-d(t)}var et=[`Proxmox-Host`,`AdGuard`,`NPMplus`,`NetBird`,`PVE Scripts Local`,`Gitea`,`PBS`,`Arcane mit Docker`],tt={eingespielt:{art:`gruen`,text:`eingespielt`},zurueckgerollt:{art:`bernstein`,text:`zurückgerollt`},fehler:{art:`rot`,text:`Fehler`},neustart:{art:`cyan`,text:`Neustart`},aufgeraeumt:{art:`gruen`,text:`aufgeräumt`}},$=e=>P(new Date(e*1e3).toISOString());function nt(){let e=(0,H.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,U.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Homelab-Teil läuft als eigene Instanz in einem kleinen Container auf dem Proxmox-PC. Von dort prüft er auch die KI-Box von außen.`}),n=(0,U.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Steht er, erscheinen hier alle Geräte mit ihren offenen Updates. Ein Update startest du mit „Jetzt updaten“: Vorher wird gesichert, danach die Erreichbarkeit geprüft, und ist sie rot, geht es von selbst zurück.`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,U.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-3`,children:`Dazu kommen`}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,U.jsxs)(U.Fragment,{children:[t,n,(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[r,(0,U.jsx)(`ul`,{className:`flex flex-wrap gap-2`,children:et.map(rt)})]}),(0,U.jsx)(`p`,{className:`text-sm text-text-3`,children:`Der Container wird erst nach deiner Freigabe angelegt.`})]}),e[3]=i):i=e[3],i}function rt(e){return(0,U.jsx)(`li`,{children:(0,U.jsx)(D,{children:e})},e)}function it(e){let t=(0,H.c)(9),{partner:n}=e,r;t[0]===n.eingerichtet?r=t[1]:(r=n.eingerichtet?(0,U.jsx)(D,{art:`rot`,children:`Antwortet nicht`}):(0,U.jsx)(D,{children:`Noch nicht eingerichtet`}),t[0]=n.eingerichtet,t[1]=r);let i=r,a;t[2]!==n.eingerichtet||t[3]!==n.fehler||t[4]!==n.url?(a=n.eingerichtet?(0,U.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Der Homelab-Teil (`,n.url,`) ist `,n.fehler??`nicht erreichbar`,`. Hält das an, meldet der Wächter es nach fünf Minuten auf Telegram.`]}):(0,U.jsx)(nt,{}),t[2]=n.eingerichtet,t[3]=n.fehler,t[4]=n.url,t[5]=a):a=t[5];let o;return t[6]!==i||t[7]!==a?(o=(0,U.jsx)(M,{titel:`Homelab`,rechts:i,children:a}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function at(e){let t=(0,H.c)(10),{hinweise:n}=e,r=n.some(st)?`rot`:`bernstein`,i;t[0]!==n.length||t[1]!==r?(i=(0,U.jsxs)(D,{art:r,children:[n.length,` offen`]}),t[0]=n.length,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=n.map(ot),t[3]=n,t[4]=a);let o;t[5]===a?o=t[6]:(o=(0,U.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:a}),t[5]=a,t[6]=o);let s;return t[7]!==i||t[8]!==o?(s=(0,U.jsx)(M,{titel:`Hinweise`,id:`hinweise`,rechts:i,children:o}),t[7]=i,t[8]=o,t[9]=s):s=t[9],s}function ot(e){return(0,U.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,U.jsx)(`span`,{className:e.stufe===`rot`?`text-[15px] font-medium text-rot-text`:`text-[15px] font-medium text-bernstein`,children:e.titel}),(0,U.jsx)(`span`,{className:`text-sm text-text-2`,children:e.text})]},e.id)}function st(e){return e.stufe===`rot`}function ct(e){let t=(0,H.c)(8),{laeufe:n}=e,r,i,a;if(t[0]!==n){a=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(ut).slice(0,12);if(e.length===0){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,U.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch kein Update im Homelab eingespielt.`}),t[4]=e):e=t[4],a=e;break bb0}r=`@container m-0 flex list-none flex-col p-0`,i=e.map(lt)}t[0]=n,t[1]=r,t[2]=i,t[3]=a}else r=t[1],i=t[2],a=t[3];if(a!==Symbol.for(`react.early_return_sentinel`))return a;let o;return t[5]!==r||t[6]!==i?(o=(0,U.jsx)(`ol`,{className:r,children:i}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function lt(e){let t=e.ergebnis?tt[e.ergebnis]:{art:`grau`,text:`unterbrochen`};return(0,U.jsxs)(`li`,{className:`flex flex-col gap-1.5 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[(0,U.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:$(e.start)}),(0,U.jsx)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-[15px] break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:e.name}),(0,U.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,U.jsx)(D,{art:t.art,children:t.text})})]}),e.text&&(0,U.jsx)(`p`,{className:`m-0 text-sm text-text-2 @sm:pl-[124px]`,children:e.text})]},e.id)}function ut(e){return e.status!==`laeuft`}function dt(e){let t=(0,H.c)(9),{stand:n}=e;if(!n.ausfuehrer.verbunden){let e;t[0]===n.ausfuehrer.zuletzt?e=t[1]:(e=n.ausfuehrer.zuletzt?` (zuletzt ${$(n.ausfuehrer.zuletzt)})`:``,t[0]=n.ausfuehrer.zuletzt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,U.jsxs)(`p`,{role:`alert`,className:`rounded-xl border border-bernstein/60 bg-bernstein-grund px-4 py-3 text-[15px] text-bernstein`,children:[`Der Ausführer auf dem Proxmox-Host meldet sich nicht`,e,`. Die Geräte zeigen den letzten bekannten Stand; Updates starten erst, wenn er wieder da ist.`]}),t[2]=e,t[3]=r),r}if(!n.bericht){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,U.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer hat noch keinen Bericht geschickt.`}),t[4]=e):e=t[4],e}if(n.bericht.veraltet){let e;t[5]===n.bericht.empfangen?e=t[6]:(e=$(n.bericht.empfangen),t[5]=n.bericht.empfangen,t[6]=e);let r;return t[7]===e?r=t[8]:(r=(0,U.jsxs)(`p`,{className:`text-[15px] text-bernstein`,children:[`Der letzte Bericht ist von `,e,`; die Angaben können veraltet sein.`]}),t[7]=e,t[8]=r),r}return null}function ft(){let e=(0,H.c)(20),t=p(),n=A(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=c(r),a=b(r),o=f(r),s=ae(),l=null;if(t.isPending||n.isPending){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,U.jsx)(j,{text:`Wird gelesen …`}),e[0]=t):t=e[0],l=t}else if(!r){let t;e[1]!==n.data||e[2]!==n.error?.message?(t=n.data?(0,U.jsx)(it,{partner:n.data}):(0,U.jsx)(j,{fehler:!0,text:`Der Partner lässt sich nicht abfragen: ${n.error?.message??`keine Daten`}`}),e[1]=n.data,e[2]=n.error?.message,e[3]=t):t=e[3],l=t}else if(i.isPending){let t;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,U.jsx)(j,{text:`Der Homelab-Teil meldet sich gleich …`}),e[4]=t):t=e[4],l=t}else if(!i.data){let t=`Der Homelab-Teil antwortet nicht: ${i.error?.message??`keine Daten`}`,n;e[5]===t?n=e[6]:(n=(0,U.jsx)(j,{fehler:!0,text:t}),e[5]=t,e[6]=n),l=n}let u;if(e[7]!==a.data?.laeufe){u=new Map;for(let e of a.data?.laeufe??[])e.status===`laeuft`&&u.set(e.ziel,e.schritte.at(-1)??`startet …`);e[7]=a.data?.laeufe,e[8]=u}else u=e[8];let d;e[9]===a.data?.laeufe?d=e[10]:(d=a.data?.laeufe??[],e[9]=a.data?.laeufe,e[10]=d);let m;e[11]===o.data?.hinweise?m=e[12]:(m=o.data?.hinweise??[],e[11]=o.data?.hinweise,e[12]=m);let h;return e[13]!==s||e[14]!==l||e[15]!==i.data||e[16]!==u||e[17]!==d||e[18]!==m?(h={ersatz:l,stand:i.data,laufend:u,laeufe:d,hinweise:m,aktion:s},e[13]=s,e[14]=l,e[15]=i.data,e[16]=u,e[17]=d,e[18]=m,e[19]=h):h=e[19],h}function pt(){let e=(0,H.c)(46),t=C(),{ersatz:n,stand:r,laufend:i,hinweise:a,aktion:o}=ft(),s=x(`1h`,!!r),c=h(!!r);if(n||!r)return n;let l,u;e[0]!==a||e[1]!==i.size||e[2]!==r?(l=r.bericht?$(r.bericht.empfangen):null,u=ie(r,a,i.size,l),e[0]=a,e[1]=i.size,e[2]=r,e[3]=l,e[4]=u):(l=e[3],u=e[4]);let d=u,f;if(e[5]!==i||e[6]!==r.ziele){let t;e[8]===i?t=e[9]:(t=e=>T(e,i.has(e.id)),e[8]=i,e[9]=t),f=r.ziele.map(t),e[5]=i,e[6]=r.ziele,e[7]=f}else f=e[7];let p;e[10]!==d.ziel||e[11]!==t?(p=()=>{d.ziel===`updates`?t({to:`/homelab/updates`}):d.ziel&&document.getElementById(d.ziel)?.scrollIntoView({behavior:`smooth`,block:`start`})},e[10]=d.ziel,e[11]=t,e[12]=p):p=e[12];let m;e[13]!==d||e[14]!==f||e[15]!==p?(m=(0,U.jsx)(ge,{lage:d,lampen:f,onAnsehen:p}),e[13]=d,e[14]=f,e[15]=p,e[16]=m):m=e[16];let g;e[17]===r?g=e[18]:(g=(0,U.jsx)(dt,{stand:r}),e[17]=r,e[18]=g);let _;e[19]===a?_=e[20]:(_=a.length>0&&(0,U.jsx)(at,{hinweise:a}),e[19]=a,e[20]=_);let v;e[21]===l?v=e[22]:(v=l&&(0,U.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,l]}),e[21]=l,e[22]=v);let y;e[23]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,U.jsxs)(S,{to:`/homelab/monitoring`,className:`inline-flex items-center gap-1 text-sm text-lab-text hover:underline`,children:[`Monitoring `,(0,U.jsx)(ee,{className:`size-3.5`,"aria-hidden":!0})]}),e[23]=y):y=e[23];let b;e[24]===v?b=e[25]:(b=(0,U.jsxs)(`span`,{className:`flex items-center gap-3`,children:[v,y]}),e[24]=v,e[25]=b);let w=s.data?.geraete,E;e[26]!==r.ziele||e[27]!==w?(E=(0,U.jsx)(pe,{ziele:r.ziele,messwerte:w}),e[26]=r.ziele,e[27]=w,e[28]=E):E=e[28];let D;e[29]===s.isError?D=e[30]:(D=s.isError&&(0,U.jsx)(`p`,{className:`text-xs text-text-3`,children:`CPU und Speicher erscheinen, sobald der Ausführer Messwerte schickt.`}),e[29]=s.isError,e[30]=D);let O;e[31]!==E||e[32]!==D||e[33]!==b?(O=(0,U.jsxs)(M,{titel:`Geräte`,id:`geraete`,rechts:b,children:[E,D]}),e[31]=E,e[32]=D,e[33]=b,e[34]=O):O=e[34];let k;e[35]!==o||e[36]!==i||e[37]!==c.data||e[38]!==r.ausfuehrer?(k=c.data?.bericht&&(0,U.jsx)(M,{titel:`Speicher und Sicherungen`,id:`speicher`,children:(0,U.jsx)(ke,{daten:c.data,laeuft:i.get(`pve`)??null,gesperrt:o.isPending||i.has(`pve`)||!r.ausfuehrer.verbunden,onAktion:e=>o.mutate(e)})}),e[35]=o,e[36]=i,e[37]=c.data,e[38]=r.ausfuehrer,e[39]=k):k=e[39];let A;return e[40]!==O||e[41]!==k||e[42]!==m||e[43]!==g||e[44]!==_?(A=(0,U.jsxs)(U.Fragment,{children:[m,g,_,O,k]}),e[40]=O,e[41]=k,e[42]=m,e[43]=g,e[44]=_,e[45]=A):A=e[45],A}function mt(){let e=(0,H.c)(30),{ersatz:t,stand:n,laufend:r,laeufe:i,aktion:a}=ft(),o=k(!!n),s=te();if(t||!n)return t;let c=o.data?.sammellauf??null,l=c?.status===`laeuft`,u;e[0]===n.ziele?u=e[1]:(u=v(n.ziele).filter(ht),e[0]=n.ziele,e[1]=u);let d=u.length,f=a.isPending||l||!n.ausfuehrer.verbunden,p;e[2]!==d||e[3]!==f?(p=(0,U.jsx)(Re,{anzahl:d,gesperrt:f}),e[2]=d,e[3]=f,e[4]=p):p=e[4];let m;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,U.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Je Gerät, was läuft und was neu ist. Du startest jedes Update selbst — einzeln oder alle nacheinander. Vorher wird gesichert, danach geprüft; ist die Prüfung rot, geht es von selbst zurück.`}),e[5]=m):m=e[5];let h;e[6]===n?h=e[7]:(h=(0,U.jsx)(dt,{stand:n}),e[6]=n,e[7]=h);let g;e[8]!==c||e[9]!==s||e[10]!==l||e[11]!==n.bericht?.empfangen?(g=c&&(l||c.ende&&(n.bericht?.empfangen??0)-c.ende<21600)&&(0,U.jsx)(He,{lauf:c,onQuittieren:()=>s.mutate(c.id)}),e[8]=c,e[9]=s,e[10]=l,e[11]=n.bericht?.empfangen,e[12]=g):g=e[12];let _=a.isPending||l||!n.ausfuehrer.verbunden,y;e[13]===a?y=e[14]:(y=e=>a.mutate(e),e[13]=a,e[14]=y);let b;e[15]!==r||e[16]!==n.ziele||e[17]!==_||e[18]!==y?(b=(0,U.jsx)(Ze,{ziele:n.ziele,laufend:r,gesperrt:_,onAktion:y}),e[15]=r,e[16]=n.ziele,e[17]=_,e[18]=y,e[19]=b):b=e[19];let x;e[20]!==p||e[21]!==h||e[22]!==g||e[23]!==b?(x=(0,U.jsxs)(M,{titel:`Updates`,rechts:p,children:[m,h,g,b]}),e[20]=p,e[21]=h,e[22]=g,e[23]=b,e[24]=x):x=e[24];let S;e[25]===i?S=e[26]:(S=(0,U.jsx)(M,{titel:`Verlauf`,children:(0,U.jsx)(ct,{laeufe:i})}),e[25]=i,e[26]=S);let C;return e[27]!==S||e[28]!==x?(C=(0,U.jsxs)(U.Fragment,{children:[x,S]}),e[27]=S,e[28]=x,e[29]=C):C=e[29],C}function ht(e){return e.baustein.aktion}export{pt as HomelabSeite,mt as HomelabUpdatesSeite};