import{c as e,i as t,p as n,s as r,t as i,u as a}from"./button-BheHBEml.js";import{A as o,M as s,b as c,d as l,l as u,n as d,o as f,p,r as m,t as h,u as g}from"./index-BGjA8vtO.js";import{t as _}from"./Bestaetigen-CE_3b0PK.js";var v=r(),y=n(a(),1),b=e(),x={neu:{art:`cyan`,text:`Update bereit`},aktuell:{art:`gruen`,text:`aktuell`},unbekannt:{art:`bernstein`,text:`unklar`},festgehalten:{art:`bernstein`,text:`festgehalten`},"wird-geprueft":{art:`grau`,text:`wird geprüft`}},S={"ki-box":`KI-Box`,"proxmox-host":`Proxmox-Host`,container:`Container`,vm:`VM`};function C(e){let t=e.id.match(/-(\d+)$/)?.[1],n=S[e.art]??e.art;return t?`${n} ${t}`:n}function w(e){let t=(0,v.c)(4),{b:n}=e;if(n.kurz){let e;return t[0]===n.kurz?e=t[1]:(e=(0,b.jsx)(`span`,{className:`ziffern`,children:n.kurz}),t[0]=n.kurz,t[1]=e),e}if(n.installiert){let e;return t[2]===n.installiert?e=t[3]:(e=(0,b.jsx)(`span`,{className:`ziffern`,children:n.installiert}),t[2]=n.installiert,t[3]=e),e}return null}function T(e){let t=(0,v.c)(24),{b:n,gesperrt:r,onAktion:a}=e,o=x[n.zustand]??x.unbekannt,s;t[0]===n.name?s=t[1]:(s=(0,b.jsx)(`span`,{className:`text-[15px] font-medium`,children:n.name}),t[0]=n.name,t[1]=s);let c;t[2]===n?c=t[3]:(c=(0,b.jsx)(`span`,{className:`text-sm text-text-2`,children:(0,b.jsx)(w,{b:n})}),t[2]=n,t[3]=c);let l;t[4]!==s||t[5]!==c?(l=(0,b.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]!==o.art||t[8]!==o.text?(u=(0,b.jsx)(d,{art:o.art,children:o.text}),t[7]=o.art,t[8]=o.text,t[9]=u):u=t[9];let f;t[10]!==l||t[11]!==u?(f=(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=f):f=t[12];let p;t[13]===n.grund?p=t[14]:(p=n.grund&&(0,b.jsx)(`p`,{className:`text-sm text-text-2`,children:n.grund}),t[13]=n.grund,t[14]=p);let m;t[15]!==n.aktion||t[16]!==n.zustand||t[17]!==r||t[18]!==a?(m=n.aktion&&(0,b.jsx)(`div`,{children:(0,b.jsx)(i,{size:`sm`,variant:n.zustand===`neu`?`default`:`outline`,disabled:r,onClick:()=>n.aktion&&a(n.aktion),children:n.aktion.label})}),t[15]=n.aktion,t[16]=n.zustand,t[17]=r,t[18]=a,t[19]=m):m=t[19];let h;return t[20]!==f||t[21]!==p||t[22]!==m?(h=(0,b.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3 first:border-t-0 first:pt-0 last:pb-0`,children:[f,p,m]}),t[20]=f,t[21]=p,t[22]=m,t[23]=h):h=t[23],h}function E(e){let n=(0,v.c)(48),{ziel:r,laeuft:i,gesperrt:a,onAktion:o}=e,[s,c]=(0,y.useState)(null),l=r.erreichbar,u=r.name,d;n[0]===r.name?d=n[1]:(d=(0,b.jsx)(`h3`,{className:`schild text-base font-bold tracking-[0.18em] break-words`,children:r.name}),n[0]=r.name,n[1]=d);let f;n[2]===r?f=n[3]:(f=C(r),n[2]=r,n[3]=f);let p;n[4]===f?p=n[5]:(p=(0,b.jsx)(`span`,{className:`text-sm text-text-3`,children:f}),n[4]=f,n[5]=p);let m;n[6]!==d||n[7]!==p?(m=(0,b.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[d,p]}),n[6]=d,n[7]=p,n[8]=m):m=n[8];let h;n[9]===l?h=n[10]:(h=l!==null&&(0,b.jsxs)(`span`,{className:t(`schild flex items-center gap-1.5 text-xs`,l?`text-text-3`:`text-rot-text`),children:[(0,b.jsx)(`span`,{"aria-hidden":!0,className:t(`size-2 rounded-full`,l?`bg-gruen`:`bg-rot`)}),l?`erreichbar`:`antwortet nicht`]}),n[9]=l,n[10]=h);let g;n[11]!==m||n[12]!==h?(g=(0,b.jsxs)(`header`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[m,h]}),n[11]=m,n[12]=h,n[13]=g):g=n[13];let x;n[14]===i?x=n[15]:(x=i&&(0,b.jsxs)(`p`,{role:`status`,className:`rounded-lg border border-cyan-rand bg-cyan-grund px-3 py-2 text-sm text-cyan-text`,children:[`Update läuft: `,i]}),n[14]=i,n[15]=x);let S;if(n[16]!==a||n[17]!==i||n[18]!==r.bausteine){let e;n[20]!==a||n[21]!==i?(e=e=>(0,b.jsx)(T,{b:e,gesperrt:a||!!i,onAktion:c},e.id),n[20]=a,n[21]=i,n[22]=e):e=n[22],S=r.bausteine.map(e),n[16]=a,n[17]=i,n[18]=r.bausteine,n[19]=S}else S=n[19];let w;n[23]===S?w=n[24]:(w=(0,b.jsx)(`ul`,{className:`flex flex-col`,children:S}),n[23]=S,n[24]=w);let E;n[25]===r.rueckweg?E=n[26]:(E=r.rueckweg&&(0,b.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Rückweg: `,r.rueckweg]}),n[25]=r.rueckweg,n[26]=E);let D=!!s,O=s?`${r.name}: ${s.label}`:``,k=s?.frage??``,A=s?.label??``,j;n[27]===s?.pfad?j=n[28]:(j=s?.pfad.endsWith(`/neustart`),n[27]=s?.pfad,n[28]=j);let M=!!j,N;n[29]!==s||n[30]!==o?(N=()=>{s&&o(s),c(null)},n[29]=s,n[30]=o,n[31]=N):N=n[31];let P;n[32]===Symbol.for(`react.memo_cache_sentinel`)?(P=()=>c(null),n[32]=P):P=n[32];let F;n[33]!==a||n[34]!==D||n[35]!==O||n[36]!==k||n[37]!==A||n[38]!==M||n[39]!==N?(F=(0,b.jsx)(_,{offen:D,titel:O,text:k,knopf:A,gefahr:M,gesperrt:a,onJa:N,onNein:P}),n[33]=a,n[34]=D,n[35]=O,n[36]=k,n[37]=A,n[38]=M,n[39]=N,n[40]=F):F=n[40];let I;return n[41]!==w||n[42]!==E||n[43]!==F||n[44]!==g||n[45]!==x||n[46]!==r.name?(I=(0,b.jsxs)(`section`,{"aria-label":u,className:`flex min-w-0 flex-col gap-3 rounded-2xl border border-linie bg-panel p-5`,children:[g,x,w,E,F]}),n[41]=w,n[42]=E,n[43]=F,n[44]=g,n[45]=x,n[46]=r.name,n[47]=I):I=n[47],I}var D=[`Proxmox-Host`,`AdGuard`,`NPMplus`,`NetBird`,`PVE Scripts Local`,`Gitea`,`PBS`,`Arcane mit Docker`],O={eingespielt:{art:`gruen`,text:`eingespielt`},zurueckgerollt:{art:`bernstein`,text:`zurückgerollt`},fehler:{art:`rot`,text:`Fehler`},neustart:{art:`cyan`,text:`Neustart`}};function k(){let e=(0,v.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,b.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,b.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,b.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,b.jsxs)(b.Fragment,{children:[t,n,(0,b.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[r,(0,b.jsx)(`ul`,{className:`flex flex-wrap gap-2`,children:D.map(A)})]}),(0,b.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 A(e){return(0,b.jsx)(`li`,{children:(0,b.jsx)(d,{children:e})},e)}function j(e){let t=(0,v.c)(9),{partner:n}=e,r;t[0]===n.eingerichtet?r=t[1]:(r=n.eingerichtet?(0,b.jsx)(d,{art:`rot`,children:`Antwortet nicht`}):(0,b.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,b.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,b.jsx)(k,{}),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,b.jsx)(h,{titel:`Homelab`,rechts:i,children:a}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function M(e){let t=(0,v.c)(10),{hinweise:n}=e;if(n.length===0)return null;let r=n.some(P)?`rot`:`bernstein`,i;t[0]!==n.length||t[1]!==r?(i=(0,b.jsx)(d,{art:r,children:n.length}),t[0]=n.length,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=n.map(N),t[3]=n,t[4]=a);let o;t[5]===a?o=t[6]:(o=(0,b.jsx)(`ul`,{className:`flex flex-col gap-3`,children:a}),t[5]=a,t[6]=o);let s;return t[7]!==i||t[8]!==o?(s=(0,b.jsx)(h,{titel:`Hinweise im Homelab`,rechts:i,children:o}),t[7]=i,t[8]=o,t[9]=s):s=t[9],s}function N(e){return(0,b.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie pt-3 first:border-t-0 first:pt-0`,children:[(0,b.jsx)(`span`,{className:e.stufe===`rot`?`text-[15px] font-medium text-rot-text`:`text-[15px] font-medium text-bernstein`,children:e.titel}),(0,b.jsx)(`span`,{className:`text-sm text-text-2`,children:e.text})]},e.id)}function P(e){return e.stufe===`rot`}function F(e){let t=(0,v.c)(13),{laeufe:n}=e,r,i,a,o,s;if(t[0]!==n){s=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(L).slice(0,6);if(e.length===0){s=null;break bb0}r=h,o=`Letzte Updates im Homelab`,i=`flex flex-col gap-3`,a=e.map(I)}t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=s}else r=t[1],i=t[2],a=t[3],o=t[4],s=t[5];if(s!==Symbol.for(`react.early_return_sentinel`))return s;let c;t[6]!==i||t[7]!==a?(c=(0,b.jsx)(`ul`,{className:i,children:a}),t[6]=i,t[7]=a,t[8]=c):c=t[8];let l;return t[9]!==r||t[10]!==o||t[11]!==c?(l=(0,b.jsx)(r,{titel:o,children:c}),t[9]=r,t[10]=o,t[11]=c,t[12]=l):l=t[12],l}function I(e){let t=e.ergebnis?O[e.ergebnis]:{art:`grau`,text:`unterbrochen`};return(0,b.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie pt-3 first:border-t-0 first:pt-0`,children:[(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,b.jsx)(`span`,{className:`text-[15px] font-medium`,children:e.name}),(0,b.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(`span`,{className:`ziffern text-sm text-text-3`,children:s(new Date(e.start*1e3).toISOString())}),(0,b.jsx)(d,{art:t.art,children:t.text})]})]}),e.text&&(0,b.jsx)(`p`,{className:`text-sm text-text-2`,children:e.text})]},e.id)}function L(e){return e.status!==`laeuft`}function R(){let e=(0,v.c)(48),t=p(),n=c(),r=f(),i=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),a=u(i),_=l(i),y=g(i),x=o();if(t.isPending||n.isPending){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,b.jsx)(m,{text:`Wird gelesen …`}),e[0]=t):t=e[0],t}let S;if(e[1]!==_.data?.laeufe){S=new Map;for(let e of _.data?.laeufe??[])e.status===`laeuft`&&S.set(e.ziel,e.schritte.at(-1)??`startet …`);e[1]=_.data?.laeufe,e[2]=S}else S=e[2];let C,w;e[3]!==r.data?.ziele||e[4]!==a.data?.ziele?(w=[...r.data?.ziele??[],...a.data?.ziele??[]],C=w.reduce(z,0),e[3]=r.data?.ziele,e[4]=a.data?.ziele,e[5]=C,e[6]=w):(C=e[5],w=e[6]);let T=C,D=a.data?.bericht,O;e[7]===T?O=e[8]:(O=T>0?(0,b.jsxs)(d,{art:`cyan`,children:[T,` `,T===1?`Update`:`Updates`,` bereit`]}):(0,b.jsx)(d,{art:`gruen`,children:`aktuell`}),e[7]=T,e[8]=O);let k;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,b.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Die KI-Box und das Homelab an einem Ort. Updates startest du nur hier per Knopf; jedes fragt vorher und sagt, welcher Rückweg bereitsteht.`}),e[9]=k):k=e[9];let A;e[10]!==i||e[11]!==a.data?(A=i&&a.data&&!a.data.ausfuehrer.verbunden&&(0,b.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-bernstein`,children:[`Der Ausführer auf dem Proxmox-Host meldet sich nicht`,a.data.ausfuehrer.zuletzt?` (zuletzt ${s(new Date(a.data.ausfuehrer.zuletzt*1e3).toISOString())})`:``,`. Die Homelab-Geräte zeigen den letzten bekannten Stand.`]}),e[10]=i,e[11]=a.data,e[12]=A):A=e[12];let N;e[13]!==i||e[14]!==D||e[15]!==a.data?(N=i&&a.data&&!D&&(0,b.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer auf dem Proxmox-Host hat noch keinen Bericht geschickt.`}),e[13]=i,e[14]=D,e[15]=a.data,e[16]=N):N=e[16];let P;e[17]!==r.error||e[18]!==r.isError?(P=r.isError&&(0,b.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die KI-Box antwortet gerade nicht: `,r.error.message]}),e[17]=r.error,e[18]=r.isError,e[19]=P):P=e[19];let I;e[20]!==a.error||e[21]!==a.isError?(I=a.isError&&(0,b.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Der Homelab-Teil antwortet gerade nicht: `,a.error.message]}),e[20]=a.error,e[21]=a.isError,e[22]=I):I=e[22];let L;e[23]!==O||e[24]!==A||e[25]!==N||e[26]!==P||e[27]!==I?(L=(0,b.jsxs)(h,{titel:`Alle Geräte`,rechts:O,children:[k,A,N,P,I]}),e[23]=O,e[24]=A,e[25]=N,e[26]=P,e[27]=I,e[28]=L):L=e[28];let R;e[29]!==i||e[30]!==y?(R=i&&(0,b.jsx)(M,{hinweise:y.data?.hinweise??[]}),e[29]=i,e[30]=y,e[31]=R):R=e[31];let B;e[32]!==x||e[33]!==S||e[34]!==w?(B=w.length>0&&(0,b.jsx)(`div`,{className:`grid gap-5 md:gap-6 xl:grid-cols-2`,children:w.map(e=>(0,b.jsx)(E,{ziel:e,laeuft:S.get(e.id)??null,gesperrt:x.isPending,onAktion:e=>x.mutate(e)},e.id))}),e[32]=x,e[33]=S,e[34]=w,e[35]=B):B=e[35];let V;e[36]!==i||e[37]!==n?(V=!i&&n.data&&(0,b.jsx)(j,{partner:n.data}),e[36]=i,e[37]=n,e[38]=V):V=e[38];let H;e[39]!==i||e[40]!==_?(H=i&&(0,b.jsx)(F,{laeufe:_.data?.laeufe??[]}),e[39]=i,e[40]=_,e[41]=H):H=e[41];let U;return e[42]!==V||e[43]!==H||e[44]!==L||e[45]!==R||e[46]!==B?(U=(0,b.jsxs)(b.Fragment,{children:[L,R,B,V,H]}),e[42]=V,e[43]=H,e[44]=L,e[45]=R,e[46]=B,e[47]=U):U=e[47],U}function z(e,t){return e+t.offen}export{R as HomelabSeite};