From 77ecb35a6d823226361e8bac1059a3ba644d268b Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Fri, 25 Sep 2026 14:58:34 +0200 Subject: [PATCH 1/4] =?UTF-8?q?homelab:=20=E2=80=9ER=C3=BCckweg=20testen?= =?UTF-8?q?=E2=80=9C=20=E2=80=94=20Snapshot=20anlegen,=20absichtlich=20rot?= =?UTF-8?q?=20werten,=20zur=C3=BCck,=20nachpr=C3=BCfen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neuer Baustein „probe“ (POST /api/homelab/ziele/{id}/rueckweg-probe): legt den Rückweg an wie vor einem Update, wertet die Prüfung absichtlich als rot, geht zurück und prüft danach, ob das Gerät läuft und antwortet. Kein Update dabei; Meldung grün bzw. dringend rot. Die Probe steht im Protokoll, nicht im Update-Verlauf und nicht unter „Zuletzt eingespielt“. Der Snapshot bleibt liegen (wie nach einem echten Rückweg). Co-Authored-By: Claude Opus 5.5 --- backend/routers/homelab.py | 7 ++++ backend/services/homelab/protokoll.py | 6 ++- backend/services/homelab/updates.py | 59 +++++++++++++++++++++++---- backend/tests/test_homelab.py | 24 +++++++++++ frontend/src/lib/typen.ts | 5 ++- frontend/src/views/Uebersicht.tsx | 5 ++- 6 files changed, 92 insertions(+), 14 deletions(-) diff --git a/backend/routers/homelab.py b/backend/routers/homelab.py index c81b37d..8648593 100644 --- a/backend/routers/homelab.py +++ b/backend/routers/homelab.py @@ -5,6 +5,7 @@ POST /api/homelab/ziele/{id}/os-update Pakete im Gast einspielen POST /api/homelab/ziele/{id}/suchen Paketlisten im Gast erneuern POST /api/homelab/ziele/{id}/docker Docker über Arcane (zuerst Probelauf) + POST /api/homelab/ziele/{id}/rueckweg-probe Rückweg testen: Snapshot, absichtlich rot, zurück, nachprüfen POST /api/homelab/ziele/pve/neustart Proxmox-Host neu starten (eigener Knopf) GET /api/homelab/laeufe Die letzten Läufe (Updates, Snapshot-Aktionen) mit ihren Schritten GET /api/homelab/snapshots Snapshots und Sicherungen je Gerät (Aktionen: siehe unten) @@ -66,6 +67,12 @@ def docker(ziel_id: str) -> dict: return _antwort(updates.starten(ziel_id, "docker")) +@router.post("/ziele/{ziel_id}/rueckweg-probe") +def rueckweg_probe(ziel_id: str) -> dict: + """Rückweg testen (seit 25.09.2026): Snapshot anlegen, absichtlich rot werten, zurückgehen, nachprüfen.""" + return _antwort(updates.starten(ziel_id, "probe")) + + @router.post("/ziele/pve/neustart") def host_neustart() -> dict: return _antwort(updates.starten("pve", "neustart")) diff --git a/backend/services/homelab/protokoll.py b/backend/services/homelab/protokoll.py index 129e9cf..584c9cd 100644 --- a/backend/services/homelab/protokoll.py +++ b/backend/services/homelab/protokoll.py @@ -70,7 +70,7 @@ _AKTION = { } _HOST_AKTIONEN = {"bericht", "host_update", "host_neustart", "kernel_aufraeumen"} _LAUF_WAS = {"app": "Update", "os": "Paket-Update", "pakete": "Paket-Update", "docker": "Docker-Update", - "neustart": "Neustart", "kernel": "Kernel-Aufräumen"} + "neustart": "Neustart", "kernel": "Kernel-Aufräumen", "probe": "Rückweg-Probe"} _SCHRITT_WORT = {"wartet": "wartet", "laeuft": "läuft", "eingespielt": "eingespielt", "zurueckgerollt": "zurückgerollt", "fehler": "gescheitert", "uebersprungen": "übersprungen"} _MELDUNG = re.compile(r"^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) " @@ -351,7 +351,7 @@ def _lauf(x: dict, schw: Callable) -> dict | None: titel = f"{_anzahl_pakete(x.get('pakete'), 'Paket')} · {name}" elif ergebnis == "zurueckgerollt": titel, stufe = f"{was} zurückgerollt · {name}", "warn" - elif ergebnis == "fehler" and "Update nicht begonnen" in str(text or ""): + elif ergebnis == "fehler" and ("Update nicht begonnen" in str(text or "") or "Probe nicht begonnen" in str(text or "")): titel, stufe = f"{was} nicht begonnen · {name}", "warn" elif ergebnis == "fehler": titel, stufe = f"{was} gescheitert · {name}", "fehler" @@ -359,6 +359,8 @@ def _lauf(x: dict, schw: Callable) -> dict | None: titel, stufe = f"Neustart ausgelöst · {name}", "info" elif ergebnis == "aufgeraeumt": titel, stufe = f"Alte Kernel entfernt · {name}", "ok" + elif ergebnis == "probe-gruen": + titel, stufe = f"Rückweg-Probe grün · {name}", "ok" elif ergebnis == "offen": titel, stufe = f"Docker-Probelauf · {name}", "info" else: diff --git a/backend/services/homelab/updates.py b/backend/services/homelab/updates.py index 46ae658..aa6aca0 100644 --- a/backend/services/homelab/updates.py +++ b/backend/services/homelab/updates.py @@ -20,6 +20,10 @@ danach genauso mit Snapshot vorher und Rückweg bei Rot — sofern die VM freige Jeder Lauf steht in /homelab-laeufe.json und im strukturierten Update-Verlauf. Pro Ziel läuft höchstens ein Lauf; startet dieser Teil neu, gilt ein offener Lauf als unterbrochen. +„Rückweg testen“ (Baustein „probe“, seit 25.09.2026): Snapshot bzw. Sicherung anlegen, die Prüfung absichtlich als +rot werten, zurückgehen und nachprüfen, ob das Gerät danach läuft und antwortet. Ein Update gibt es dabei nicht; so +lässt sich der Weg zurück jederzeit echt beweisen, ohne auf ein gescheitertes Update zu warten. + „Alle aktualisieren“ (sammellauf.py, seit 24.09.2026) stößt dieselben Läufe nacheinander an. Solange es läuft, lehnt der einzelne Knopf ab (SAMMELLAUF_SPERRE), und die Erfolgsmeldung eines Schritts entfällt — die Sammelmeldung am Ende sagt es; Fehler werden weiter sofort gemeldet. @@ -227,6 +231,34 @@ def _gast_lauf(lauf: dict, gast: dict) -> None: dringend=True) +def _probe_lauf(lauf: dict, gast: dict) -> None: + """Rückweg testen: anlegen, absichtlich rot werten, zurückgehen, nachprüfen. Der Snapshot bzw. die Sicherung + bleibt danach liegen (wie nach einem echten Rückweg) — wegräumen geht auf der Seite Snapshots.""" + vmid = gast["vmid"] + try: + rueckweg = _rueckweg_anlegen(lauf, gast) + except RuntimeError as exc: + _ende(lauf, "fehler", f"{lauf['name']}: Rückweg-Probe nicht begonnen — {str(exc).rstrip('.')}. " + "Am Gerät wurde nichts geändert.") + return + if not rueckweg: + _ende(lauf, "fehler", f"{lauf['name']}: Für dieses Gerät gibt es keinen Rückweg (weder Snapshot noch " + "Sicherung) — die Probe ist nicht möglich.") + return + lauf["schritte"].append("Prüfung absichtlich auf Rot gesetzt (Probe, kein Update).") + _merken(lauf) + try: + wie = _zurueck(lauf, vmid, rueckweg) + time.sleep(WARTEN_NACH_UPDATE_S) + fehler = pruefen(gast, _frischer_gast(lauf, vmid), "probe") + except RuntimeError as exc: + wie, fehler = "", [str(exc)] + if fehler: + _ende(lauf, "fehler", f"{lauf['name']}: Rückweg-Probe rot — {' '.join(fehler)}", dringend=True) + return + _ende(lauf, "probe-gruen", f"{lauf['name']}: Rückweg-Probe grün — {wie}, danach läuft das Gerät und antwortet.") + + def _aufraeumen(lauf: dict, vmid: int, rueckweg: tuple[str, str] | None) -> None: """Ältere Snapshots des Orchestrators für diesen Gast löschen, nach einer Sicherung auch ältere Sicherungen; der Rückweg dieses Laufs (der neueste) bleibt. Ebenso bleiben Snapshots, die jemand auf der Seite Snapshots per @@ -348,13 +380,15 @@ def _ende(lauf: dict, ergebnis: str, text: str, dringend: bool = False) -> None: lauf.update(status="fertig", ergebnis=ergebnis, text=text, ende=time.time(), dringend=dringend, gemeldet=not still) _merken(lauf) - try: - # Die Schritte eines Sammellaufs stehen im Update-Verlauf als EIN Lauf (gleicher Beginn, eigener Anlass). - start = datetime.fromtimestamp(lauf.get("sammellauf_start") or lauf["start"], LOCAL_TZ) - anlass = "Alle aktualisieren" if lauf.get("sammellauf") else "Update von Hand" - update_verlauf.eintragen(start.isoformat(timespec="seconds"), anlass, lauf["ziel"], ergebnis, text) - except Exception: - log.warning("homelab: Verlauf nicht geschrieben", exc_info=True) + # Eine Rückweg-Probe ist kein Update: Sie steht im Protokoll, nicht im Update-Verlauf. + if lauf.get("baustein") != "probe": + try: + # Die Schritte eines Sammellaufs stehen im Update-Verlauf als EIN Lauf (gleicher Beginn, eigener Anlass). + start = datetime.fromtimestamp(lauf.get("sammellauf_start") or lauf["start"], LOCAL_TZ) + anlass = "Alle aktualisieren" if lauf.get("sammellauf") else "Update von Hand" + update_verlauf.eintragen(start.isoformat(timespec="seconds"), anlass, lauf["ziel"], ergebnis, text) + except Exception: + log.warning("homelab: Verlauf nicht geschrieben", exc_info=True) if not still: _melden(text, dringend=dringend) @@ -373,13 +407,15 @@ def starten(ziel_id: str, baustein: str, sammellauf: dict | None = None) -> dict sammellauf ({"id", "start"}) setzt nur „Alle aktualisieren“ (sammellauf.py) für seine Schritte; ohne ihn lehnt der Knopf ab, solange ein Sammellauf läuft.""" - if baustein not in ("app", "os", "pakete", "neustart", "docker", "kernel"): + if baustein not in ("app", "os", "pakete", "neustart", "docker", "kernel", "probe"): return {"ok": False, "detail": "Unbekannter Baustein."} with START_SPERRE: if sammellauf is None and _sammellauf_laeuft(): return {"ok": False, "detail": SAMMELLAUF_SPERRE} if laeuft(ziel_id): return {"ok": False, "detail": "Für dieses Gerät läuft schon ein Update."} + if ziel_id == "pve" and baustein == "probe": + return {"ok": False, "detail": "Für den Proxmox-Host gibt es keinen Rückweg zum Testen."} if ziel_id == "pve": name, gast = "Proxmox-Host", None host = ((kanal.bericht() or {}).get("bericht") or {}).get("host") or {} @@ -402,6 +438,13 @@ def starten(ziel_id: str, baustein: str, sammellauf: dict | None = None) -> dict return {"ok": False, "detail": "Dieses Gerät ist nicht freigegeben (Etikett watcher fehlt)."} app = apps.app_fuer((gast.get("app") or {}).get("kennung"), gast.get("name")) name = app.name if app else str(gast.get("name")) + if baustein == "probe": + if not (gast.get("snapshot_moeglich") or gast.get("sicherung_moeglich")): + return {"ok": False, "detail": f"{name} hat keinen Rückweg (weder Snapshot noch Sicherung)."} + lauf = _neuer_lauf(ziel_id, baustein, name, None) + threading.Thread(target=_probe_lauf, args=(lauf, gast), name=f"homelab-{ziel_id}", + daemon=True).start() + return {"ok": True, "lauf": lauf["id"]} if baustein == "app" and (not app or app.weg != "skript"): return {"ok": False, "detail": f"{name} aktualisiert sich nicht über das Community-Script " "(eigene Oberfläche oder Pakete)."} diff --git a/backend/tests/test_homelab.py b/backend/tests/test_homelab.py index f2cf78f..0ddbbaf 100644 --- a/backend/tests/test_homelab.py +++ b/backend/tests/test_homelab.py @@ -222,6 +222,30 @@ def test_update_ohne_neue_version_ist_rot(ausfuehrer): assert lauf["ergebnis"] == "zurueckgerollt" and "unverändert" in lauf["text"] +def test_rueckweg_probe_gruen(ausfuehrer): + starten, protokoll, meldungen, verlauf = ausfuehrer + starten("1.27.2") + lauf = _auf_ende(updates.starten("ct-104", "probe")["lauf"]) + # Kein Update: Snapshot, zurück auf ihn, frischer Bericht — und die Probe steht nicht im Update-Verlauf. + assert protokoll == ["snapshot", "zurueck", "bericht"] + assert lauf["ergebnis"] == "probe-gruen" and "zurück auf den Snapshot mc2-20260924-190000" in lauf["text"] + assert meldungen == [(lauf["text"], False)] and verlauf == [] + + +def test_rueckweg_probe_rot_meldet_dringend(ausfuehrer, monkeypatch): + starten, _, meldungen, _ = ausfuehrer + monkeypatch.setattr(inventar, "erreichbar", lambda url: False) + starten("1.27.2") + lauf = _auf_ende(updates.starten("ct-104", "probe")["lauf"]) + assert lauf["ergebnis"] == "fehler" and "Rückweg-Probe rot" in lauf["text"] and "antwortet nicht" in lauf["text"] + assert meldungen[0][1] is True + + +def test_rueckweg_probe_nur_mit_rueckweg(ausfuehrer): + assert updates.starten("pve", "probe")["detail"].startswith("Für den Proxmox-Host") + assert updates.starten("vm-106", "probe")["detail"].startswith("Dieses Gerät ist nicht freigegeben") + + def test_nicht_freigegeben_und_unbekannt(ausfuehrer): assert updates.starten("vm-106", "app")["detail"].startswith("Dieses Gerät ist nicht freigegeben") assert updates.starten("ct-999", "app")["ok"] is False diff --git a/frontend/src/lib/typen.ts b/frontend/src/lib/typen.ts index d6f685f..0a08cc3 100644 --- a/frontend/src/lib/typen.ts +++ b/frontend/src/lib/typen.ts @@ -332,7 +332,8 @@ export interface HomelabStand { } /** Ein Lauf im Homelab (GET /api/homelab/laeufe): „Jetzt updaten“ und seit 25.09.2026 die Aktionen der Seite - * Snapshots (Bausteine snapshot-anlegen, snapshot-loeschen, snapshot-zurueck, sicherung-loeschen). */ + * Snapshots (Bausteine snapshot-anlegen, snapshot-loeschen, snapshot-zurueck, sicherung-loeschen) sowie die + * Rückweg-Probe (Baustein probe). */ export interface HomelabLauf { id: string ziel: string @@ -343,7 +344,7 @@ export interface HomelabLauf { ende: number | null ergebnis: | "eingespielt" | "zurueckgerollt" | "fehler" | "neustart" | "aufgeraeumt" | "offen" - | "angelegt" | "geloescht" | "zurueckgesetzt" | null + | "angelegt" | "geloescht" | "zurueckgesetzt" | "probe-gruen" | null text: string | null schritte: string[] } diff --git a/frontend/src/views/Uebersicht.tsx b/frontend/src/views/Uebersicht.tsx index efcdb6b..ecfb8e2 100644 --- a/frontend/src/views/Uebersicht.tsx +++ b/frontend/src/views/Uebersicht.tsx @@ -237,8 +237,9 @@ function Zuletzt({ homelabAktiv }: { homelabAktiv: boolean }) { ...(box.data?.laeufe ?? []).slice(0, 6).map((l) => ({ zeit: new Date(l.start).getTime(), bereich: "KI-Box", titel: l.anlass, chip: l.titel, art: ERGEBNIS[l.stufe] ?? "grau", })), - // Die Aktionen der Seite Snapshots sind keine Updates. - ...(lab.data?.laeufe ?? []).filter((l) => l.status !== "laeuft" && !istSnapshotLauf(l)).slice(0, 6).map((l) => ({ + // Die Aktionen der Seite Snapshots und die Rückweg-Probe sind keine Updates. + ...(lab.data?.laeufe ?? []).filter((l) => l.status !== "laeuft" && !istSnapshotLauf(l) && l.baustein !== "probe") + .slice(0, 6).map((l) => ({ zeit: l.start * 1000, bereich: "Homelab", titel: l.name, chip: l.ergebnis ?? "unterbrochen", art: (l.ergebnis ? ERGEBNIS[l.ergebnis] : "grau") ?? "grau", })), From 23cecd3abceb4763e66c8412ba68348c24882909 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Fri, 25 Sep 2026 14:58:34 +0200 Subject: [PATCH 2/4] =?UTF-8?q?frontend:=20dist=20gebaut=20(R=C3=BCckweg-P?= =?UTF-8?q?robe)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../assets/{Auftraege-CdBAGJi2.js => Auftraege-BO4bSQmr.js} | 2 +- .../{Bestaetigen-D6CzMfJm.js => Bestaetigen-CMlebyiw.js} | 2 +- .../dist/assets/{Dienste-atjWw704.js => Dienste-Btw1nQIy.js} | 2 +- .../{Einstellungen-BUM2VQDj.js => Einstellungen-B9lWkZF-.js} | 2 +- .../dist/assets/{Homelab-Cf4eLYlp.js => Homelab-D7JGlciA.js} | 2 +- ...elabProtokoll-CwVh3SKG.js => HomelabProtokoll-Bn-4pxRM.js} | 2 +- ...elabSnapshots-BHJkSmwO.js => HomelabSnapshots-BJnRrB1s.js} | 2 +- ...{MenueSchublade-0T5uliTD.js => MenueSchublade-B0vlMk4k.js} | 2 +- .../dist/assets/{Modelle-Bh5l5QHZ.js => Modelle-CpXbVZza.js} | 2 +- .../assets/{Monitoring-D7SndtTk.js => Monitoring-Cx9bpZ97.js} | 2 +- ...tokollfenster-Ch6xrwBe.js => Protokollfenster-QxeTYr94.js} | 2 +- frontend/dist/assets/{Start-BicB1Gxf.js => Start-BEW_FGcW.js} | 4 ++-- .../dist/assets/{Updates-D5yJY-fn.js => Updates-DZ25Ri0a.js} | 2 +- .../{chevron-right-4vXDP1Jj.js => chevron-right-lErM2U6o.js} | 2 +- frontend/dist/assets/{dist-B2n2wafq.js => dist-VQuEcoq-.js} | 2 +- frontend/dist/assets/{index-CIOHqG23.js => index-CKWhFN2A.js} | 4 ++-- .../dist/assets/{search-hyFAofkN.js => search-DDxMRsny.js} | 2 +- frontend/dist/assets/{sheet-DU78qfp_.js => sheet-CHZtsS6E.js} | 2 +- .../dist/assets/{undo-2-DvQmwdhu.js => undo-2-CJEVZ3Al.js} | 2 +- frontend/dist/index.html | 2 +- 20 files changed, 22 insertions(+), 22 deletions(-) rename frontend/dist/assets/{Auftraege-CdBAGJi2.js => Auftraege-BO4bSQmr.js} (98%) rename frontend/dist/assets/{Bestaetigen-D6CzMfJm.js => Bestaetigen-CMlebyiw.js} (97%) rename frontend/dist/assets/{Dienste-atjWw704.js => Dienste-Btw1nQIy.js} (99%) rename frontend/dist/assets/{Einstellungen-BUM2VQDj.js => Einstellungen-B9lWkZF-.js} (99%) rename frontend/dist/assets/{Homelab-Cf4eLYlp.js => Homelab-D7JGlciA.js} (99%) rename frontend/dist/assets/{HomelabProtokoll-CwVh3SKG.js => HomelabProtokoll-Bn-4pxRM.js} (97%) rename frontend/dist/assets/{HomelabSnapshots-BHJkSmwO.js => HomelabSnapshots-BJnRrB1s.js} (98%) rename frontend/dist/assets/{MenueSchublade-0T5uliTD.js => MenueSchublade-B0vlMk4k.js} (86%) rename frontend/dist/assets/{Modelle-Bh5l5QHZ.js => Modelle-CpXbVZza.js} (99%) rename frontend/dist/assets/{Monitoring-D7SndtTk.js => Monitoring-Cx9bpZ97.js} (99%) rename frontend/dist/assets/{Protokollfenster-Ch6xrwBe.js => Protokollfenster-QxeTYr94.js} (94%) rename frontend/dist/assets/{Start-BicB1Gxf.js => Start-BEW_FGcW.js} (96%) rename frontend/dist/assets/{Updates-D5yJY-fn.js => Updates-DZ25Ri0a.js} (98%) rename frontend/dist/assets/{chevron-right-4vXDP1Jj.js => chevron-right-lErM2U6o.js} (60%) rename frontend/dist/assets/{dist-B2n2wafq.js => dist-VQuEcoq-.js} (99%) rename frontend/dist/assets/{index-CIOHqG23.js => index-CKWhFN2A.js} (97%) rename frontend/dist/assets/{search-hyFAofkN.js => search-DDxMRsny.js} (68%) rename frontend/dist/assets/{sheet-DU78qfp_.js => sheet-CHZtsS6E.js} (96%) rename frontend/dist/assets/{undo-2-DvQmwdhu.js => undo-2-CJEVZ3Al.js} (85%) diff --git a/frontend/dist/assets/Auftraege-CdBAGJi2.js b/frontend/dist/assets/Auftraege-BO4bSQmr.js similarity index 98% rename from frontend/dist/assets/Auftraege-CdBAGJi2.js rename to frontend/dist/assets/Auftraege-BO4bSQmr.js index 34c5bbe..0d25b67 100644 --- a/frontend/dist/assets/Auftraege-CdBAGJi2.js +++ b/frontend/dist/assets/Auftraege-BO4bSQmr.js @@ -1,2 +1,2 @@ -import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{It as a,Pt as o,S as s,Yt as c,b as l,ct as u,lt as d,st as f}from"./index-CIOHqG23.js";import{t as p}from"./button-D8rvET0Z.js";import{t as m}from"./Bestaetigen-D6CzMfJm.js";var h=t();function g(e,t){if(e===`os`)return{laeuft:`Ubuntu`,neu:t.count?`${t.count} ${t.count===1?`Paket`:`Pakete`}`:null};if(e===`hermes`)return{laeuft:t.installed_version?`v${t.installed_version}`:`–`,neu:t.behind?`+${t.behind.toLocaleString(`de-DE`)} Änderungen`:null};let n=e===`engine`?`b`:`v`;return{laeuft:t.installed_build==null?`–`:`${n}${t.installed_build}`,neu:t.latest_build!=null&&t.installed_build!=null&&t.latest_build>t.installed_build?`${n}${t.latest_build}`:null}}function _(e,t){return!t||t.error?null:e===`os`?typeof t.count==`number`?t.count>0:null:e===`hermes`?typeof t.behind==`number`?t.behind>0:null:t.latest_build==null||t.installed_build==null?null:t.latest_build>t.installed_build}function v(e){let t=e.trim();return/timed out|timeout|zeitüberschreitung/i.test(t)?`Konnte nicht prüfen: Die Gegenstelle hat nicht rechtzeitig geantwortet. Später klappt es meist wieder.`:/name resolution|name or service not known|network is unreachable|connection (refused|reset)|nicht erreichbar/i.test(t)?`Konnte nicht prüfen: Die Box kommt gerade nicht ins Internet.`:`Konnte nicht prüfen: ${t.length>160?`${t.slice(0,157)}…`:t}`}var y=e=>e.group===`download`||/^download\s/i.test(e.label),b=e=>e.group===`pruefen`||e.label===`Nach Updates suchen`,x=e=>c(e)&&y(e),S=[[/^download\s+(.+)$/i,`Download $1`],[/^OS-Update \(apt\)$/,`Update Betriebssystem`],[/^Engine-Update \(llama\.cpp Vulkan\)$/,`Update Motor (llama.cpp)`],[/^Router-Update \(llama-swap\)$/,`Update llama-swap`],[/^Hermes-Agent-Update$/,`Update Hermes`]],C=[[`Engine (llama.cpp)`,`Motor`],[`Router (llama-swap)`,`llama-swap`],[`Hermes-Agent`,`Hermes`],[`OS (apt)`,`Betriebssystem`]];function w(e){for(let[t,n]of S)if(t.test(e.label))return e.label.replace(t,n);return e.label.startsWith(`Alle aktualisieren`)?C.reduce((e,[t,n])=>e.split(t).join(n),e.label):e.label}function T(e){if(e<60)return`noch unter einer Minute`;let t=Math.round(e/60);if(t<60)return`noch etwa ${t} min`;let n=Math.floor(t/60),r=t%60;return r?`noch etwa ${n} h ${r} min`:`noch etwa ${n} h`}function E(e,t=Date.now()/1e3){let n=Math.max(0,t-e.started_at),r=Math.floor(n/60),i=n<60?`ein paar Sekunden`:r<60?`${r} min`:`${Math.floor(r/60)} h ${r%60} min`;return`${e.state===`queued`?`Wartet`:`Läuft`} seit ${i}`}function D(e){if(e.progress==null)return null;let t=[`${Math.round(e.progress)} %`];return e.total_bytes&&t.push(`${a(e.done_bytes??0,1)} von ${a(e.total_bytes,1)}`),e.eta_s!=null&&c(e)&&t.push(T(e.eta_s)),t.join(` · `)}function O(e){for(let t=(e.log?.length??0)-1;t>=0;t--){let n=e.log[t].trim();if(n&&!n.startsWith(`$ `))return n}return null}function k(e,t=Date.now()/1e3){let n=e.filter(c).sort((e,t)=>e.started_at-t.started_at),r=e.filter(e=>!c(e)&&!e.quittiert&&t-(e.finished_at??e.started_at)<86400).sort((e,t)=>(t.finished_at??t.started_at)-(e.finished_at??e.started_at)).slice(0,3);return[...n,...r]}function A(e,t,n){if(!n)return`Nach dem Download übernimmt ${e} die Rolle „${t}“.`;let r=n.weitere.length?` Die Rolle${n.weitere.length===1?``:`n`} „${n.weitere.join(`“, „`)}“ behält es.`:``;return`Achtung: Nach dem Download übernimmt ${e} die Rolle „${t}“ und ersetzt damit ${n.name}. Das bisherige Modell bleibt auf der Platte.${r}`+(n.zwilling?` Bilder liest vorerst weiter sein Bild-Zwilling, also noch das bisherige Modell.`:``)}function j(e){return`Kurze Unterbrechung: Beim Eintragen lädt llama-swap sofort neu. Was Lucy oder OpenChamber gerade schreiben, bricht ab, und die Modelle werden neu geladen.`+(e?` Mit Rolle passiert das nach dem Download noch einmal.`:``)}var M=r(e(),1),N=n(),P={queued:{text:`Wartet`,art:`cyan`},running:{text:`Läuft`,art:`cyan`},done:{text:`Fertig`,art:`gruen`},failed:{text:`Fehler`,art:`rot`},canceled:{text:`Abgebrochen`,art:`grau`}},F={queued:`bg-cyan`,running:`bg-cyan`,done:`bg-gruen`,failed:`bg-rot`,canceled:`bg-text-3`},I=e=>o(new Date(e*1e3).toISOString());function L(e){let t=(0,h.c)(3),[n,r]=(0,M.useState)(R),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(!e)return;let t=window.setInterval(()=>r(Date.now()/1e3),3e4);return()=>window.clearInterval(t)},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,M.useEffect)(i,a),n}function R(){return Date.now()/1e3}function z(e){let t=(0,h.c)(76),{job:n,onAbbrechen:r,onQuittieren:a,abbrechenGesperrt:o,ebene:l}=e,u=l===void 0?4:l,[d,f]=(0,M.useState)(!1),[g,_]=(0,M.useState)(!1),v;t[0]===n.state?v=t[1]:(v=P[n.state]??{text:n.state,art:`grau`},t[0]=n.state,t[1]=v);let b=v,S;t[2]===n?S=t[3]:(S=w(n),t[2]=n,t[3]=S);let C=S,T;t[4]===n?T=t[5]:(T=D(n),t[4]=n,t[5]=T);let k=T,A;t[6]===n?A=t[7]:(A=O(n),t[6]=n,t[7]=A);let j=A,R;t[8]===n?R=t[9]:(R=c(n),t[8]=n,t[9]=R);let z=R,B=L(z),V;t[10]!==n||t[11]!==r?(V=!!r&&x(n),t[10]=n,t[11]=r,t[12]=V):V=t[12];let H=V,U,W,G,K,q,J,Y,X;if(t[13]!==o||t[14]!==H||t[15]!==u||t[16]!==k||t[17]!==B||t[18]!==n||t[19]!==z||t[20]!==j||t[21]!==a||t[22]!==g||t[23]!==C||t[24]!==b.art||t[25]!==b.text){let e=(n.log??[]).slice(-12),r=u===3?`h3`:`h4`;Y=`Auftrag: ${C}`,X=`flex flex-col gap-2.5 rounded-xl border border-linie bg-erhaben/50 p-3.5`;let c;t[34]!==r||t[35]!==C?(c=(0,N.jsx)(r,{className:`m-0 min-w-0 text-[15px] leading-snug font-semibold break-words`,children:C}),t[34]=r,t[35]=C,t[36]=c):c=t[36];let l;t[37]!==b.art||t[38]!==b.text?(l=(0,N.jsx)(s,{art:b.art,children:b.text}),t[37]=b.art,t[38]=b.text,t[39]=l):l=t[39],t[40]!==c||t[41]!==l?(U=(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[c,l]}),t[40]=c,t[41]=l,t[42]=U):U=t[42],t[43]!==n.progress||t[44]!==n.state||t[45]!==C?(W=n.progress!=null&&(0,N.jsx)(`div`,{role:`progressbar`,"aria-label":`Fortschritt: ${C}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(n.progress),className:`h-2 overflow-hidden rounded-full bg-linie`,children:(0,N.jsx)(`div`,{className:i(`h-full`,F[n.state]??`bg-cyan`),style:{width:`${Math.max(2,Math.min(100,n.progress))}%`}})}),t[43]=n.progress,t[44]=n.state,t[45]=C,t[46]=W):W=t[46];let d;t[47]!==k||t[48]!==B||t[49]!==n||t[50]!==z||t[51]!==b.text?(d=z?k??E(n,B):`${b.text} · ${I(n.finished_at??n.started_at)}`,t[47]=k,t[48]=B,t[49]=n,t[50]=z,t[51]=b.text,t[52]=d):d=t[52],t[53]===d?G=t[54]:(G=(0,N.jsx)(`p`,{className:`ziffern m-0 text-sm text-text-2`,children:d}),t[53]=d,t[54]=G),t[55]!==n.progress||t[56]!==n.state||t[57]!==z||t[58]!==j?(K=j&&(n.state===`failed`||z&&n.progress==null)&&(0,N.jsx)(`p`,{className:n.state===`failed`?`m-0 text-sm break-words text-rot-text`:`ziffern m-0 line-clamp-2 text-xs break-all text-text-3`,children:n.state===`failed`?`Letzte Meldung: ${j}`:j}),t[55]=n.progress,t[56]=n.state,t[57]=z,t[58]=j,t[59]=K):K=t[59],q=(H||e.length>1||!z&&a)&&(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[H&&(0,N.jsx)(p,{variant:`outline`,size:`sm`,disabled:o,onClick:()=>f(!0),children:`Abbrechen`}),e.length>1&&(0,N.jsx)(p,{variant:`ghost`,size:`sm`,"aria-expanded":g,onClick:()=>_(!g),children:g?`Protokoll zu`:`Protokoll`}),!z&&a&&(0,N.jsx)(p,{variant:`outline`,size:`sm`,className:`ml-auto`,onClick:()=>a(n),children:`Ausblenden`})]}),J=g&&(0,N.jsx)(`pre`,{className:`ziffern m-0 max-h-56 overflow-auto rounded-md bg-[#0b0d0f] p-2 text-xs whitespace-pre-wrap break-all text-text-2`,children:e.join(` +import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{It as a,Pt as o,S as s,Yt as c,b as l,ct as u,lt as d,st as f}from"./index-CKWhFN2A.js";import{t as p}from"./button-D8rvET0Z.js";import{t as m}from"./Bestaetigen-CMlebyiw.js";var h=t();function g(e,t){if(e===`os`)return{laeuft:`Ubuntu`,neu:t.count?`${t.count} ${t.count===1?`Paket`:`Pakete`}`:null};if(e===`hermes`)return{laeuft:t.installed_version?`v${t.installed_version}`:`–`,neu:t.behind?`+${t.behind.toLocaleString(`de-DE`)} Änderungen`:null};let n=e===`engine`?`b`:`v`;return{laeuft:t.installed_build==null?`–`:`${n}${t.installed_build}`,neu:t.latest_build!=null&&t.installed_build!=null&&t.latest_build>t.installed_build?`${n}${t.latest_build}`:null}}function _(e,t){return!t||t.error?null:e===`os`?typeof t.count==`number`?t.count>0:null:e===`hermes`?typeof t.behind==`number`?t.behind>0:null:t.latest_build==null||t.installed_build==null?null:t.latest_build>t.installed_build}function v(e){let t=e.trim();return/timed out|timeout|zeitüberschreitung/i.test(t)?`Konnte nicht prüfen: Die Gegenstelle hat nicht rechtzeitig geantwortet. Später klappt es meist wieder.`:/name resolution|name or service not known|network is unreachable|connection (refused|reset)|nicht erreichbar/i.test(t)?`Konnte nicht prüfen: Die Box kommt gerade nicht ins Internet.`:`Konnte nicht prüfen: ${t.length>160?`${t.slice(0,157)}…`:t}`}var y=e=>e.group===`download`||/^download\s/i.test(e.label),b=e=>e.group===`pruefen`||e.label===`Nach Updates suchen`,x=e=>c(e)&&y(e),S=[[/^download\s+(.+)$/i,`Download $1`],[/^OS-Update \(apt\)$/,`Update Betriebssystem`],[/^Engine-Update \(llama\.cpp Vulkan\)$/,`Update Motor (llama.cpp)`],[/^Router-Update \(llama-swap\)$/,`Update llama-swap`],[/^Hermes-Agent-Update$/,`Update Hermes`]],C=[[`Engine (llama.cpp)`,`Motor`],[`Router (llama-swap)`,`llama-swap`],[`Hermes-Agent`,`Hermes`],[`OS (apt)`,`Betriebssystem`]];function w(e){for(let[t,n]of S)if(t.test(e.label))return e.label.replace(t,n);return e.label.startsWith(`Alle aktualisieren`)?C.reduce((e,[t,n])=>e.split(t).join(n),e.label):e.label}function T(e){if(e<60)return`noch unter einer Minute`;let t=Math.round(e/60);if(t<60)return`noch etwa ${t} min`;let n=Math.floor(t/60),r=t%60;return r?`noch etwa ${n} h ${r} min`:`noch etwa ${n} h`}function E(e,t=Date.now()/1e3){let n=Math.max(0,t-e.started_at),r=Math.floor(n/60),i=n<60?`ein paar Sekunden`:r<60?`${r} min`:`${Math.floor(r/60)} h ${r%60} min`;return`${e.state===`queued`?`Wartet`:`Läuft`} seit ${i}`}function D(e){if(e.progress==null)return null;let t=[`${Math.round(e.progress)} %`];return e.total_bytes&&t.push(`${a(e.done_bytes??0,1)} von ${a(e.total_bytes,1)}`),e.eta_s!=null&&c(e)&&t.push(T(e.eta_s)),t.join(` · `)}function O(e){for(let t=(e.log?.length??0)-1;t>=0;t--){let n=e.log[t].trim();if(n&&!n.startsWith(`$ `))return n}return null}function k(e,t=Date.now()/1e3){let n=e.filter(c).sort((e,t)=>e.started_at-t.started_at),r=e.filter(e=>!c(e)&&!e.quittiert&&t-(e.finished_at??e.started_at)<86400).sort((e,t)=>(t.finished_at??t.started_at)-(e.finished_at??e.started_at)).slice(0,3);return[...n,...r]}function A(e,t,n){if(!n)return`Nach dem Download übernimmt ${e} die Rolle „${t}“.`;let r=n.weitere.length?` Die Rolle${n.weitere.length===1?``:`n`} „${n.weitere.join(`“, „`)}“ behält es.`:``;return`Achtung: Nach dem Download übernimmt ${e} die Rolle „${t}“ und ersetzt damit ${n.name}. Das bisherige Modell bleibt auf der Platte.${r}`+(n.zwilling?` Bilder liest vorerst weiter sein Bild-Zwilling, also noch das bisherige Modell.`:``)}function j(e){return`Kurze Unterbrechung: Beim Eintragen lädt llama-swap sofort neu. Was Lucy oder OpenChamber gerade schreiben, bricht ab, und die Modelle werden neu geladen.`+(e?` Mit Rolle passiert das nach dem Download noch einmal.`:``)}var M=r(e(),1),N=n(),P={queued:{text:`Wartet`,art:`cyan`},running:{text:`Läuft`,art:`cyan`},done:{text:`Fertig`,art:`gruen`},failed:{text:`Fehler`,art:`rot`},canceled:{text:`Abgebrochen`,art:`grau`}},F={queued:`bg-cyan`,running:`bg-cyan`,done:`bg-gruen`,failed:`bg-rot`,canceled:`bg-text-3`},I=e=>o(new Date(e*1e3).toISOString());function L(e){let t=(0,h.c)(3),[n,r]=(0,M.useState)(R),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(!e)return;let t=window.setInterval(()=>r(Date.now()/1e3),3e4);return()=>window.clearInterval(t)},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,M.useEffect)(i,a),n}function R(){return Date.now()/1e3}function z(e){let t=(0,h.c)(76),{job:n,onAbbrechen:r,onQuittieren:a,abbrechenGesperrt:o,ebene:l}=e,u=l===void 0?4:l,[d,f]=(0,M.useState)(!1),[g,_]=(0,M.useState)(!1),v;t[0]===n.state?v=t[1]:(v=P[n.state]??{text:n.state,art:`grau`},t[0]=n.state,t[1]=v);let b=v,S;t[2]===n?S=t[3]:(S=w(n),t[2]=n,t[3]=S);let C=S,T;t[4]===n?T=t[5]:(T=D(n),t[4]=n,t[5]=T);let k=T,A;t[6]===n?A=t[7]:(A=O(n),t[6]=n,t[7]=A);let j=A,R;t[8]===n?R=t[9]:(R=c(n),t[8]=n,t[9]=R);let z=R,B=L(z),V;t[10]!==n||t[11]!==r?(V=!!r&&x(n),t[10]=n,t[11]=r,t[12]=V):V=t[12];let H=V,U,W,G,K,q,J,Y,X;if(t[13]!==o||t[14]!==H||t[15]!==u||t[16]!==k||t[17]!==B||t[18]!==n||t[19]!==z||t[20]!==j||t[21]!==a||t[22]!==g||t[23]!==C||t[24]!==b.art||t[25]!==b.text){let e=(n.log??[]).slice(-12),r=u===3?`h3`:`h4`;Y=`Auftrag: ${C}`,X=`flex flex-col gap-2.5 rounded-xl border border-linie bg-erhaben/50 p-3.5`;let c;t[34]!==r||t[35]!==C?(c=(0,N.jsx)(r,{className:`m-0 min-w-0 text-[15px] leading-snug font-semibold break-words`,children:C}),t[34]=r,t[35]=C,t[36]=c):c=t[36];let l;t[37]!==b.art||t[38]!==b.text?(l=(0,N.jsx)(s,{art:b.art,children:b.text}),t[37]=b.art,t[38]=b.text,t[39]=l):l=t[39],t[40]!==c||t[41]!==l?(U=(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[c,l]}),t[40]=c,t[41]=l,t[42]=U):U=t[42],t[43]!==n.progress||t[44]!==n.state||t[45]!==C?(W=n.progress!=null&&(0,N.jsx)(`div`,{role:`progressbar`,"aria-label":`Fortschritt: ${C}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(n.progress),className:`h-2 overflow-hidden rounded-full bg-linie`,children:(0,N.jsx)(`div`,{className:i(`h-full`,F[n.state]??`bg-cyan`),style:{width:`${Math.max(2,Math.min(100,n.progress))}%`}})}),t[43]=n.progress,t[44]=n.state,t[45]=C,t[46]=W):W=t[46];let d;t[47]!==k||t[48]!==B||t[49]!==n||t[50]!==z||t[51]!==b.text?(d=z?k??E(n,B):`${b.text} · ${I(n.finished_at??n.started_at)}`,t[47]=k,t[48]=B,t[49]=n,t[50]=z,t[51]=b.text,t[52]=d):d=t[52],t[53]===d?G=t[54]:(G=(0,N.jsx)(`p`,{className:`ziffern m-0 text-sm text-text-2`,children:d}),t[53]=d,t[54]=G),t[55]!==n.progress||t[56]!==n.state||t[57]!==z||t[58]!==j?(K=j&&(n.state===`failed`||z&&n.progress==null)&&(0,N.jsx)(`p`,{className:n.state===`failed`?`m-0 text-sm break-words text-rot-text`:`ziffern m-0 line-clamp-2 text-xs break-all text-text-3`,children:n.state===`failed`?`Letzte Meldung: ${j}`:j}),t[55]=n.progress,t[56]=n.state,t[57]=z,t[58]=j,t[59]=K):K=t[59],q=(H||e.length>1||!z&&a)&&(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[H&&(0,N.jsx)(p,{variant:`outline`,size:`sm`,disabled:o,onClick:()=>f(!0),children:`Abbrechen`}),e.length>1&&(0,N.jsx)(p,{variant:`ghost`,size:`sm`,"aria-expanded":g,onClick:()=>_(!g),children:g?`Protokoll zu`:`Protokoll`}),!z&&a&&(0,N.jsx)(p,{variant:`outline`,size:`sm`,className:`ml-auto`,onClick:()=>a(n),children:`Ausblenden`})]}),J=g&&(0,N.jsx)(`pre`,{className:`ziffern m-0 max-h-56 overflow-auto rounded-md bg-[#0b0d0f] p-2 text-xs whitespace-pre-wrap break-all text-text-2`,children:e.join(` `)}),t[13]=o,t[14]=H,t[15]=u,t[16]=k,t[17]=B,t[18]=n,t[19]=z,t[20]=j,t[21]=a,t[22]=g,t[23]=C,t[24]=b.art,t[25]=b.text,t[26]=U,t[27]=W,t[28]=G,t[29]=K,t[30]=q,t[31]=J,t[32]=Y,t[33]=X}else U=t[26],W=t[27],G=t[28],K=t[29],q=t[30],J=t[31],Y=t[32],X=t[33];let Z;t[60]!==H||t[61]!==d||t[62]!==n||t[63]!==r||t[64]!==C?(Z=H&&(0,N.jsx)(m,{offen:d,gefahr:!0,titel:`Auftrag abbrechen?`,text:y(n)?`Der ${C} stoppt. Du kannst ihn später über „Modelle selbst suchen“ neu starten.`:`„${C}“ wird abgebrochen.`,knopf:`Ja, abbrechen`,neinKnopf:`Weiterlaufen lassen`,onNein:()=>f(!1),onJa:()=>{d&&(f(!1),r?.(n))}}),t[60]=H,t[61]=d,t[62]=n,t[63]=r,t[64]=C,t[65]=Z):Z=t[65];let Q;return t[66]!==U||t[67]!==W||t[68]!==G||t[69]!==K||t[70]!==q||t[71]!==J||t[72]!==Z||t[73]!==Y||t[74]!==X?(Q=(0,N.jsxs)(`article`,{"aria-label":Y,className:X,children:[U,W,G,K,q,J,Z]}),t[66]=U,t[67]=W,t[68]=G,t[69]=K,t[70]=q,t[71]=J,t[72]=Z,t[73]=Y,t[74]=X,t[75]=Q):Q=t[75],Q}function B(e){let t=(0,h.c)(19),{alsPanel:n}=e,r=n!==void 0&&n,i=d(),a=f(),o=u(),s,c;if(t[0]!==a||t[1]!==r||t[2]!==i.data||t[3]!==i.error||t[4]!==i.isError||t[5]!==o){c=Symbol.for(`react.early_return_sentinel`);bb0:{let e=k(i.data?.jobs??[]);if(e.length>0){let n;t[8]!==a||t[9]!==r||t[10]!==o?(n=e=>(0,N.jsx)(z,{job:e,ebene:r?3:4,abbrechenGesperrt:a.isPending,onAbbrechen:e=>a.mutate({id:e.id,titel:w(e)}),onQuittieren:e=>o.mutate(e.id)},e.id),t[8]=a,t[9]=r,t[10]=o,t[11]=n):n=t[11],s=(0,N.jsx)(`div`,{className:`grid items-start gap-2.5 lg:grid-cols-2`,children:e.map(n)})}else if(i.isError&&!i.data){let e;t[12]===i.error.message?e=t[13]:(e=(0,N.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Aufträge lassen sich gerade nicht lesen: `,i.error.message]}),t[12]=i.error.message,t[13]=e),s=e}else{c=null;break bb0}}t[0]=a,t[1]=r,t[2]=i.data,t[3]=i.error,t[4]=i.isError,t[5]=o,t[6]=s,t[7]=c}else s=t[6],c=t[7];if(c!==Symbol.for(`react.early_return_sentinel`))return c;if(r){let e;return t[14]===s?e=t[15]:(e=(0,N.jsx)(l,{titel:`Aufträge`,children:s}),t[14]=s,t[15]=e),e}let p;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,N.jsx)(`h3`,{className:`schild m-0 text-sm text-text-3`,children:`Aufträge`}),t[16]=p):p=t[16];let m;return t[17]===s?m=t[18]:(m=(0,N.jsxs)(`section`,{"aria-label":`Aufträge`,className:`flex flex-col gap-2.5`,children:[p,s]}),t[17]=s,t[18]=m),m}export{O as a,g as c,b as i,_ as n,v as o,j as r,A as s,B as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Bestaetigen-D6CzMfJm.js b/frontend/dist/assets/Bestaetigen-CMlebyiw.js similarity index 97% rename from frontend/dist/assets/Bestaetigen-D6CzMfJm.js rename to frontend/dist/assets/Bestaetigen-CMlebyiw.js index cf21854..faccaef 100644 --- a/frontend/dist/assets/Bestaetigen-D6CzMfJm.js +++ b/frontend/dist/assets/Bestaetigen-CMlebyiw.js @@ -1 +1 @@ -import{i as e,n as t,o as n,r,t as i}from"./dist-D4CVSex9.js";import{nn as a}from"./index-CIOHqG23.js";import{t as o}from"./button-D8rvET0Z.js";import{a as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./dist-B2n2wafq.js";var m=t();e();var h=r();function g(e){let t=(0,m.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,h.jsx)(p,{"data-slot":`dialog`,...n}),t[2]=n,t[3]=r),r}function _(e){let t=(0,m.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,h.jsx)(u,{"data-slot":`dialog-portal`,...n}),t[2]=n,t[3]=r),r}function v(e){let t=(0,m.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,h.jsx)(s,{"data-slot":`dialog-overlay`,className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o}function y(e){let t=(0,m.c)(15),n,r,s,c;t[0]===e?(n=t[1],r=t[2],s=t[3],c=t[4]):({className:r,children:n,showCloseButton:c,...s}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=s,t[4]=c);let u=c===void 0||c,f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,h.jsx)(v,{}),t[5]=f):f=t[5];let p;t[6]===r?p=t[7]:(p=i(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,r),t[6]=r,t[7]=p);let g;t[8]===u?g=t[9]:(g=u&&(0,h.jsx)(l,{"data-slot":`dialog-close`,asChild:!0,children:(0,h.jsxs)(o,{variant:`ghost`,className:`absolute top-2 right-2`,size:`icon-sm`,children:[(0,h.jsx)(a,{}),(0,h.jsx)(`span`,{className:`sr-only`,children:`Schließen`})]})}),t[8]=u,t[9]=g);let y;return t[10]!==n||t[11]!==s||t[12]!==p||t[13]!==g?(y=(0,h.jsxs)(_,{children:[f,(0,h.jsxs)(d,{"data-slot":`dialog-content`,className:p,...s,children:[n,g]})]}),t[10]=n,t[11]=s,t[12]=p,t[13]=g,t[14]=y):y=t[14],y}function b(e){let t=(0,m.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`flex flex-col gap-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,h.jsx)(`div`,{"data-slot":`dialog-header`,className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o}function x(e){let t=(0,m.c)(14),n,r,a,s;t[0]===e?(n=t[1],r=t[2],a=t[3],s=t[4]):({className:r,showCloseButton:s,children:n,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=a,t[4]=s);let c=s!==void 0&&s,u;t[5]===r?u=t[6]:(u=i(`-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end`,r),t[5]=r,t[6]=u);let d;t[7]===c?d=t[8]:(d=c&&(0,h.jsx)(l,{asChild:!0,children:(0,h.jsx)(o,{variant:`outline`,children:`Schließen`})}),t[7]=c,t[8]=d);let f;return t[9]!==n||t[10]!==a||t[11]!==u||t[12]!==d?(f=(0,h.jsxs)(`div`,{"data-slot":`dialog-footer`,className:u,...a,children:[n,d]}),t[9]=n,t[10]=a,t[11]=u,t[12]=d,t[13]=f):f=t[13],f}function S(e){let t=(0,m.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`font-heading text-base leading-none font-medium`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,h.jsx)(f,{"data-slot":`dialog-title`,className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o}function C(e){let t=(0,m.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,h.jsx)(c,{"data-slot":`dialog-description`,className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o}var w=n({Bestaetigen:()=>T});function T(e){let t=(0,m.c)(32),{offen:n,titel:r,text:i,knopf:a,neinKnopf:s,gefahr:c,gesperrt:l,onJa:u,onNein:d,children:f}=e,p=s===void 0?`Abbrechen`:s,_;t[0]===d?_=t[1]:(_=e=>!e&&d(),t[0]=d,t[1]=_);let v;t[2]===r?v=t[3]:(v=(0,h.jsx)(S,{className:`schild pr-10 text-xl break-words`,children:r}),t[2]=r,t[3]=v);let w;t[4]===i?w=t[5]:(w=(0,h.jsx)(C,{className:`text-[15px] leading-relaxed text-text-2`,children:i}),t[4]=i,t[5]=w);let T;t[6]!==v||t[7]!==w?(T=(0,h.jsxs)(b,{children:[v,w]}),t[6]=v,t[7]=w,t[8]=T):T=t[8];let E;t[9]!==p||t[10]!==d?(E=(0,h.jsx)(o,{variant:`outline`,onClick:d,children:p}),t[9]=p,t[10]=d,t[11]=E):E=t[11];let D=c?`gefahr`:`default`,O=l||void 0,k;t[12]!==l||t[13]!==u?(k=()=>{l||u()},t[12]=l,t[13]=u,t[14]=k):k=t[14];let A;t[15]!==l||t[16]!==a||t[17]!==D||t[18]!==O||t[19]!==k?(A=(0,h.jsx)(o,{variant:D,disabled:l,"aria-busy":O,onClick:k,children:a}),t[15]=l,t[16]=a,t[17]=D,t[18]=O,t[19]=k,t[20]=A):A=t[20];let j;t[21]!==A||t[22]!==E?(j=(0,h.jsxs)(x,{className:`sticky bottom-0 mb-0 gap-2 bg-erhaben sm:gap-2`,children:[E,A]}),t[21]=A,t[22]=E,t[23]=j):j=t[23];let M;t[24]!==f||t[25]!==j||t[26]!==T?(M=(0,h.jsxs)(y,{className:`max-h-[calc(100dvh-2rem)] overflow-y-auto border-linie bg-panel pb-0 sm:max-w-lg`,children:[T,f,j]}),t[24]=f,t[25]=j,t[26]=T,t[27]=M):M=t[27];let N;return t[28]!==n||t[29]!==M||t[30]!==_?(N=(0,h.jsx)(g,{open:n,onOpenChange:_,children:M}),t[28]=n,t[29]=M,t[30]=_,t[31]=N):N=t[31],N}export{w as n,T as t}; \ No newline at end of file +import{i as e,n as t,o as n,r,t as i}from"./dist-D4CVSex9.js";import{nn as a}from"./index-CKWhFN2A.js";import{t as o}from"./button-D8rvET0Z.js";import{a as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./dist-VQuEcoq-.js";var m=t();e();var h=r();function g(e){let t=(0,m.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,h.jsx)(p,{"data-slot":`dialog`,...n}),t[2]=n,t[3]=r),r}function _(e){let t=(0,m.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,h.jsx)(u,{"data-slot":`dialog-portal`,...n}),t[2]=n,t[3]=r),r}function v(e){let t=(0,m.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,h.jsx)(s,{"data-slot":`dialog-overlay`,className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o}function y(e){let t=(0,m.c)(15),n,r,s,c;t[0]===e?(n=t[1],r=t[2],s=t[3],c=t[4]):({className:r,children:n,showCloseButton:c,...s}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=s,t[4]=c);let u=c===void 0||c,f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,h.jsx)(v,{}),t[5]=f):f=t[5];let p;t[6]===r?p=t[7]:(p=i(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,r),t[6]=r,t[7]=p);let g;t[8]===u?g=t[9]:(g=u&&(0,h.jsx)(l,{"data-slot":`dialog-close`,asChild:!0,children:(0,h.jsxs)(o,{variant:`ghost`,className:`absolute top-2 right-2`,size:`icon-sm`,children:[(0,h.jsx)(a,{}),(0,h.jsx)(`span`,{className:`sr-only`,children:`Schließen`})]})}),t[8]=u,t[9]=g);let y;return t[10]!==n||t[11]!==s||t[12]!==p||t[13]!==g?(y=(0,h.jsxs)(_,{children:[f,(0,h.jsxs)(d,{"data-slot":`dialog-content`,className:p,...s,children:[n,g]})]}),t[10]=n,t[11]=s,t[12]=p,t[13]=g,t[14]=y):y=t[14],y}function b(e){let t=(0,m.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`flex flex-col gap-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,h.jsx)(`div`,{"data-slot":`dialog-header`,className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o}function x(e){let t=(0,m.c)(14),n,r,a,s;t[0]===e?(n=t[1],r=t[2],a=t[3],s=t[4]):({className:r,showCloseButton:s,children:n,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=a,t[4]=s);let c=s!==void 0&&s,u;t[5]===r?u=t[6]:(u=i(`-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end`,r),t[5]=r,t[6]=u);let d;t[7]===c?d=t[8]:(d=c&&(0,h.jsx)(l,{asChild:!0,children:(0,h.jsx)(o,{variant:`outline`,children:`Schließen`})}),t[7]=c,t[8]=d);let f;return t[9]!==n||t[10]!==a||t[11]!==u||t[12]!==d?(f=(0,h.jsxs)(`div`,{"data-slot":`dialog-footer`,className:u,...a,children:[n,d]}),t[9]=n,t[10]=a,t[11]=u,t[12]=d,t[13]=f):f=t[13],f}function S(e){let t=(0,m.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`font-heading text-base leading-none font-medium`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,h.jsx)(f,{"data-slot":`dialog-title`,className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o}function C(e){let t=(0,m.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,h.jsx)(c,{"data-slot":`dialog-description`,className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o}var w=n({Bestaetigen:()=>T});function T(e){let t=(0,m.c)(32),{offen:n,titel:r,text:i,knopf:a,neinKnopf:s,gefahr:c,gesperrt:l,onJa:u,onNein:d,children:f}=e,p=s===void 0?`Abbrechen`:s,_;t[0]===d?_=t[1]:(_=e=>!e&&d(),t[0]=d,t[1]=_);let v;t[2]===r?v=t[3]:(v=(0,h.jsx)(S,{className:`schild pr-10 text-xl break-words`,children:r}),t[2]=r,t[3]=v);let w;t[4]===i?w=t[5]:(w=(0,h.jsx)(C,{className:`text-[15px] leading-relaxed text-text-2`,children:i}),t[4]=i,t[5]=w);let T;t[6]!==v||t[7]!==w?(T=(0,h.jsxs)(b,{children:[v,w]}),t[6]=v,t[7]=w,t[8]=T):T=t[8];let E;t[9]!==p||t[10]!==d?(E=(0,h.jsx)(o,{variant:`outline`,onClick:d,children:p}),t[9]=p,t[10]=d,t[11]=E):E=t[11];let D=c?`gefahr`:`default`,O=l||void 0,k;t[12]!==l||t[13]!==u?(k=()=>{l||u()},t[12]=l,t[13]=u,t[14]=k):k=t[14];let A;t[15]!==l||t[16]!==a||t[17]!==D||t[18]!==O||t[19]!==k?(A=(0,h.jsx)(o,{variant:D,disabled:l,"aria-busy":O,onClick:k,children:a}),t[15]=l,t[16]=a,t[17]=D,t[18]=O,t[19]=k,t[20]=A):A=t[20];let j;t[21]!==A||t[22]!==E?(j=(0,h.jsxs)(x,{className:`sticky bottom-0 mb-0 gap-2 bg-erhaben sm:gap-2`,children:[E,A]}),t[21]=A,t[22]=E,t[23]=j):j=t[23];let M;t[24]!==f||t[25]!==j||t[26]!==T?(M=(0,h.jsxs)(y,{className:`max-h-[calc(100dvh-2rem)] overflow-y-auto border-linie bg-panel pb-0 sm:max-w-lg`,children:[T,f,j]}),t[24]=f,t[25]=j,t[26]=T,t[27]=M):M=t[27];let N;return t[28]!==n||t[29]!==M||t[30]!==_?(N=(0,h.jsx)(g,{open:n,onOpenChange:_,children:M}),t[28]=n,t[29]=M,t[30]=_,t[31]=N):N=t[31],N}export{w as n,T as t}; \ No newline at end of file diff --git a/frontend/dist/assets/Dienste-atjWw704.js b/frontend/dist/assets/Dienste-Btw1nQIy.js similarity index 99% rename from frontend/dist/assets/Dienste-atjWw704.js rename to frontend/dist/assets/Dienste-Btw1nQIy.js index 2b8545d..b7f1bc9 100644 --- a/frontend/dist/assets/Dienste-atjWw704.js +++ b/frontend/dist/assets/Dienste-Btw1nQIy.js @@ -1 +1 @@ -import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{$t as a,C as o,Ht as s,It as c,K as l,Kt as u,S as d,b as f,m as p,mt as m,pn as h,tn as g}from"./index-CIOHqG23.js";import{t as _}from"./button-D8rvET0Z.js";import{t as v}from"./Bestaetigen-D6CzMfJm.js";var y=r(e(),1),b=t(),x={laeuft:{wort:`läuft`,punkt:`bg-gruen`,text:`text-text-3`},startet:{wort:`startet`,punkt:`bg-bernstein`,text:`text-bernstein`},stoppt:{wort:`stoppt`,punkt:`bg-bernstein`,text:`text-bernstein`},antwortet_nicht:{wort:`antwortet nicht`,punkt:`bg-rot`,text:`text-rot-text`},gestoppt:{wort:`gestoppt`,punkt:`bg-rot`,text:`text-rot-text`},gescheitert:{wort:`gescheitert`,punkt:`bg-rot`,text:`text-rot-text`},schlaeft:{wort:`schläft`,punkt:`bg-text-3`,text:`text-text-3`}};function S(e){return e.zustand?e.zustand:e.ok?`laeuft`:e.schlaeft?`schlaeft`:`antwortet_nicht`}var C={gescheitert:0,gestoppt:0,antwortet_nicht:0,startet:1,stoppt:1,laeuft:3,schlaeft:4};function w(e){let t=S(e);return t===`laeuft`&&(e.neustarts??0)>0?2:C[t]}var T=e=>w(e)===0,E=e=>[...e].sort((e,t)=>w(e)-w(t)),D=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0}),O=new Intl.NumberFormat(`de-DE`,{minimumFractionDigits:1,maximumFractionDigits:1});function ee(e){if(e==null)return`–`;let t=e/1024**2;return t<1e3?`${D.format(t)} MB`:`${O.format(t/1024)} GB`}function te(e,t){return e.speicher_bytes==null||!t?null:(e.speicher_bytes+(e.grafik_bytes??0))/t*100}function ne(e){return e==null?`–`:e>0&&e<.05?`< 0,1 %`:e<10?`${O.format(e).replace(/,0$/,``)} %`:`${D.format(e)} %`}function k(e){return e==null||e<0?`–`:e<60?`< 1 min`:p(e)}var A=`Europe/Berlin`,j=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:A}),M=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:A}),N=new Intl.DateTimeFormat(`en-CA`,{timeZone:A});function re(e,t=Date.now()){let n=new Date(t-e*1e3),r=N.format(n);return r===N.format(new Date(t))?`heute ${j.format(n)}`:r===N.format(new Date(t-864e5))?`gestern ${j.format(n)}`:`${M.format(n)}, ${j.format(n)}`}function ie(e,t=Date.now()){let n=S(e);return n===`schlaeft`?`mit Absicht aus`:(n===`gestoppt`||n===`gescheitert`)&&e.aus_seit_s!=null?`aus seit ${re(e.aus_seit_s,t)}`:null}function P(e){let t=S(e);return t===`schlaeft`?`Wecken`:t===`gestoppt`||t===`gescheitert`?`Starten`:`Neu starten`}var F={"llama-swap":`Laufende Antworten brechen ab; die Modelle werden danach neu geladen.`,"mission-control-2":`Das ist diese Oberfläche selbst: Sie ist ein paar Sekunden nicht erreichbar.`,"hermes-gateway":`Lucy antwortet in der Zeit nicht.`};function I(e){let t=P(e);if(t===`Wecken`)return{titel:`${e.name} wecken?`,text:`Der Dienst startet und läuft bis zum nächsten Neustart der Box. Danach schläft er wieder.`,knopf:t};if(t===`Starten`)return{titel:`${e.name} starten?`,text:`Der Dienst wird gestartet. Scheitert er wieder, steht der Grund im Protokoll.`,knopf:t};let n=F[e.unit]?` ${F[e.unit]}`:``;return{titel:`${e.name} neu starten?`,text:`Der Dienst wird neu gestartet und ist dabei kurz nicht erreichbar.${n}`,knopf:t}}function L(e){let t=P(e);return`${e.name} ${t===`Wecken`?`wird geweckt`:t===`Starten`?`startet`:`startet neu`}.`}var R=n(),ae=`grid-cols-2 gap-x-4 sm:grid-cols-4 xl:gap-x-3 xl:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_9.5rem] min-[87.5rem]:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_17.5rem]`,z=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`});function B(e){let t=(0,b.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,R.jsx)(`span`,{className:`block text-xs text-text-3 xl:hidden`,children:n}),t[0]=n,t[1]=r),r}function oe(e){let t=(0,b.c)(7),{anteil:n,children:r}=e,i;t[0]===r?i=t[1]:(i=(0,R.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[0]=r,t[1]=i);let a;t[2]===n?a=t[3]:(a=n!==null&&(0,R.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,R.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:`${Math.min(100,Math.max(2,n))}%`,background:`var(--reihe-1)`}})}),t[2]=n,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function se(e){let t=(0,b.c)(9),{d:n,id:r}=e,i=m(n.unit),a=(0,y.useRef)(null),o;if(i.isPending)o=`Wird gelesen …`;else if(i.isError)o=`Das Protokoll lässt sich gerade nicht lesen: ${i.error.message}`;else if(i.data.ok===!1)o=i.data.err||i.data.text||`Das Protokoll lässt sich nicht lesen.`;else{let e;t[0]===i.data.text?e=t[1]:(e=i.data.text?.trim()||`Noch keine Einträge.`,t[0]=i.data.text,t[1]=e),o=e}let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},t[2]=s):s=t[2];let c;t[3]===o?c=t[4]:(c=[o],t[3]=o,t[4]=c),(0,y.useEffect)(s,c);let l=`Letzte Protokollzeilen von ${n.name}`,u;return t[5]!==r||t[6]!==l||t[7]!==o?(u=(0,R.jsx)(`pre`,{id:r,ref:a,tabIndex:0,"aria-label":l,className:`ziffern m-0 max-h-[50vh] w-full overflow-auto rounded-lg border border-linie bg-[#0b0d0f] p-3 text-xs leading-relaxed whitespace-pre-wrap break-words text-text-2`,children:o}),t[5]=r,t[6]=l,t[7]=o,t[8]=u):u=t[8],u}function V(e){let t=(0,b.c)(113),{d:n,gesamt:r,offen:a,startet:o,onProtokoll:s,onFrage:c}=e,l=x[S(n)],u;t[0]===n?u=t[1]:(u=ie(n),t[0]=n,t[1]=u);let d=u,f,p,m,h,g,v,y,C,w,E,D;if(t[2]!==n||t[3]!==r||t[4]!==l.punkt||t[5]!==l.text||t[6]!==l.wort||t[7]!==d){let e=te(n,r);f=n.neustarts??0,p=`protokoll-${n.unit}`,C=`row`,t[19]===Symbol.for(`react.memo_cache_sentinel`)?(w=i(`grid gap-y-2.5 border-t border-linie py-3 xl:items-center`,ae),t[19]=w):w=t[19];let a;t[20]===l.punkt?a=t[21]:(a=i(`mt-1.5 size-2.5 shrink-0 rounded-full`,l.punkt),t[20]=l.punkt,t[21]=a);let o;t[22]===a?o=t[23]:(o=(0,R.jsx)(`span`,{"aria-hidden":!0,className:a}),t[22]=a,t[23]=o);let s;t[24]===n.name?s=t[25]:(s=(0,R.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[24]=n.name,t[25]=s);let c=n.scope===`system`?` · Systemdienst`:``,u;t[26]!==n.unit||t[27]!==c?(u=(0,R.jsxs)(`span`,{className:`ziffern text-xs break-words text-text-3`,children:[n.unit,c]}),t[26]=n.unit,t[27]=c,t[28]=u):u=t[28];let _;t[29]!==s||t[30]!==u?(_=(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[s,u]}),t[29]=s,t[30]=u,t[31]=_):_=t[31],t[32]!==o||t[33]!==_?(E=(0,R.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-start gap-2.5 xl:col-span-1`,children:[o,_]}),t[32]=o,t[33]=_,t[34]=E):E=t[34];let b;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,R.jsx)(B,{children:`Zustand`}),t[35]=b):b=t[35];let x;t[36]===l.text?x=t[37]:(x=i(`schild text-xs`,l.text),t[36]=l.text,t[37]=x);let S;t[38]!==x||t[39]!==l.wort?(S=(0,R.jsx)(`span`,{className:x,children:l.wort}),t[38]=x,t[39]=l.wort,t[40]=S):S=t[40];let T;t[41]===d?T=t[42]:(T=d&&(0,R.jsx)(`span`,{className:`text-xs text-text-3`,children:d}),t[41]=d,t[42]=T);let O;t[43]===f?O=t[44]:(O=f>0&&(0,R.jsx)(`span`,{className:`text-xs text-bernstein xl:hidden`,children:f===1?`1 Neustart`:`${f} Neustarts`}),t[43]=f,t[44]=O),t[45]!==S||t[46]!==T||t[47]!==O?(D=(0,R.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[b,S,T,O]}),t[45]=S,t[46]=T,t[47]=O,t[48]=D):D=t[48];let k;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,R.jsx)(B,{children:`CPU`}),t[49]=k):k=t[49],t[50]===n.cpu_prozent?m=t[51]:(m=(0,R.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[k,n.cpu_prozent==null?(0,R.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,R.jsx)(oe,{anteil:n.cpu_prozent,children:ne(n.cpu_prozent)})]}),t[50]=n.cpu_prozent,t[51]=m),h=`cell`,g=`min-w-0`,t[52]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,R.jsx)(B,{children:`Speicher`}),t[52]=v):v=t[52],y=n.speicher_bytes==null?(0,R.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,R.jsxs)(oe,{anteil:e,children:[ee(n.speicher_bytes+(n.grafik_bytes??0)),e!==null&&(0,R.jsxs)(`span`,{className:`font-sans text-xs text-text-3`,children:[` · `,ne(e)]})]}),t[2]=n,t[3]=r,t[4]=l.punkt,t[5]=l.text,t[6]=l.wort,t[7]=d,t[8]=f,t[9]=p,t[10]=m,t[11]=h,t[12]=g,t[13]=v,t[14]=y,t[15]=C,t[16]=w,t[17]=E,t[18]=D}else f=t[8],p=t[9],m=t[10],h=t[11],g=t[12],v=t[13],y=t[14],C=t[15],w=t[16],E=t[17],D=t[18];let O;t[53]!==n.grafik_bytes||t[54]!==n.speicher_bytes?(O=n.speicher_bytes!=null&&!!n.grafik_bytes&&(0,R.jsxs)(`span`,{className:`mt-1 block text-xs text-text-3`,children:[`davon `,ee(n.grafik_bytes),` Modelle`]}),t[53]=n.grafik_bytes,t[54]=n.speicher_bytes,t[55]=O):O=t[55];let A;t[56]!==O||t[57]!==h||t[58]!==g||t[59]!==v||t[60]!==y?(A=(0,R.jsxs)(`span`,{role:h,className:g,children:[v,y,O]}),t[56]=O,t[57]=h,t[58]=g,t[59]=v,t[60]=y,t[61]=A):A=t[61];let j;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,R.jsx)(B,{children:`Läuft seit`}),t[62]=j):j=t[62];let M;t[63]===n.laeuft_seit_s?M=t[64]:(M=k(n.laeuft_seit_s),t[63]=n.laeuft_seit_s,t[64]=M);let N;t[65]===M?N=t[66]:(N=(0,R.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:M}),t[65]=M,t[66]=N);let F;t[67]===n.laeuft_seit_s?F=t[68]:(F=n.laeuft_seit_s!=null&&(0,R.jsxs)(`span`,{className:`text-xs text-text-3`,children:[`gestartet `,re(n.laeuft_seit_s)]}),t[67]=n.laeuft_seit_s,t[68]=F);let I;t[69]!==N||t[70]!==F?(I=(0,R.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[j,N,F]}),t[69]=N,t[70]=F,t[71]=I):I=t[71];let L=f>0?`text-bernstein`:`text-text-3`,z;t[72]===L?z=t[73]:(z=i(`ziffern text-sm`,L),t[72]=L,t[73]=z);let V=n.neustarts??`–`,H;t[74]!==z||t[75]!==V?(H=(0,R.jsx)(`span`,{role:`cell`,className:`hidden min-w-0 xl:block`,children:(0,R.jsx)(`span`,{className:z,children:V})}),t[74]=z,t[75]=V,t[76]=H):H=t[76];let U=a?`info`:`ghost`,W=a?p:void 0,G=`Protokoll von ${n.name}`,K;t[77]!==a||t[78]!==s||t[79]!==U||t[80]!==W||t[81]!==G?(K=(0,R.jsx)(_,{variant:U,size:`sm`,"aria-expanded":a,"aria-controls":W,"aria-label":G,onClick:s,children:`Protokoll`}),t[77]=a,t[78]=s,t[79]=U,t[80]=W,t[81]=G,t[82]=K):K=t[82];let q=T(n)?`default`:`outline`,ce=o!==null,J;t[83]!==n||t[84]!==o?(J=o===n.unit?`startet …`:P(n),t[83]=n,t[84]=o,t[85]=J):J=t[85];let le=`${n.name}: ${J}`,Y;t[86]!==n||t[87]!==o?(Y=o===n.unit?`Startet …`:P(n),t[86]=n,t[87]=o,t[88]=Y):Y=t[88];let X;t[89]!==c||t[90]!==q||t[91]!==ce||t[92]!==le||t[93]!==Y?(X=(0,R.jsx)(_,{variant:q,size:`sm`,disabled:ce,"aria-label":le,onClick:c,children:Y}),t[89]=c,t[90]=q,t[91]=ce,t[92]=le,t[93]=Y,t[94]=X):X=t[94];let Z;t[95]!==K||t[96]!==X?(Z=(0,R.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex flex-wrap gap-2 sm:col-start-3 sm:row-start-1 sm:justify-end sm:self-start xl:col-span-1 xl:col-start-auto xl:row-start-auto xl:flex-col xl:items-stretch xl:self-center min-[87.5rem]:flex-row min-[87.5rem]:justify-end`,children:[K,X]}),t[95]=K,t[96]=X,t[97]=Z):Z=t[97];let Q;t[98]!==n||t[99]!==a||t[100]!==p?(Q=a&&(0,R.jsx)(`div`,{role:`cell`,className:`col-span-full`,children:(0,R.jsx)(se,{d:n,id:p})}),t[98]=n,t[99]=a,t[100]=p,t[101]=Q):Q=t[101];let $;return t[102]!==m||t[103]!==A||t[104]!==I||t[105]!==H||t[106]!==Z||t[107]!==Q||t[108]!==C||t[109]!==w||t[110]!==E||t[111]!==D?($=(0,R.jsxs)(`div`,{role:C,className:w,children:[E,D,m,A,I,H,Z,Q]}),t[102]=m,t[103]=A,t[104]=I,t[105]=H,t[106]=Z,t[107]=Q,t[108]=C,t[109]=w,t[110]=E,t[111]=D,t[112]=$):$=t[112],$}function H(e){let t=(0,b.c)(16),{stand:n,gewaehlt:r,startet:a,onProtokoll:o,onFrage:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,R.jsxs)(`div`,{role:`row`,className:i(`schild hidden pb-2 text-xs font-semibold text-text-3 xl:grid`,ae),children:[(0,R.jsx)(`span`,{role:`columnheader`,children:`Dienst`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`Zustand`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`Neustarts`}),(0,R.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktionen`})]}),t[0]=c):c=t[0];let l;if(t[1]!==r||t[2]!==s||t[3]!==o||t[4]!==n.services||t[5]!==n.speicher_gesamt||t[6]!==a){let e;t[8]!==r||t[9]!==s||t[10]!==o||t[11]!==n.speicher_gesamt||t[12]!==a?(e=e=>(0,R.jsx)(V,{d:e,gesamt:n.speicher_gesamt,offen:r===e.unit,startet:a,onProtokoll:()=>o(e.unit),onFrage:()=>s(e)},e.unit),t[8]=r,t[9]=s,t[10]=o,t[11]=n.speicher_gesamt,t[12]=a,t[13]=e):e=t[13],l=E(n.services).map(e),t[1]=r,t[2]=s,t[3]=o,t[4]=n.services,t[5]=n.speicher_gesamt,t[6]=a,t[7]=l}else l=t[7];let u;return t[14]===l?u=t[15]:(u=(0,R.jsxs)(`div`,{role:`table`,"aria-label":`Dienste der KI-Box`,className:`flex flex-col`,children:[c,l]}),t[14]=l,t[15]=u),u}function U(e){let t=(0,b.c)(8),{dienste:n,stand:r}=e,i;t[0]===n?i=t[1]:(i=n.filter(T),t[0]=n,t[1]=i);let a=i.length,o;if(t[2]!==n||t[3]!==a||t[4]!==r){let e=n.filter(G),i;t[6]===r?i=t[7]:(i=r>0&&(0,R.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,z.format(r)]}),t[6]=r,t[7]=i),o=(0,R.jsxs)(`span`,{className:`flex flex-wrap items-center gap-3`,children:[i,a>0?(0,R.jsx)(d,{art:`rot`,children:a===1?`1 Problem`:`${a} Probleme`}):e.length>0?(0,R.jsx)(d,{art:`bernstein`,children:e.some(W)?`Startet gerade`:`Stoppt gerade`}):(0,R.jsx)(d,{art:`gruen`,children:`Alles in Ordnung`})]}),t[2]=n,t[3]=a,t[4]=r,t[5]=o}else o=t[5];return o}function W(e){return S(e)===`startet`}function G(e){return w(e)===1}function K(){let e=h(),t=l(),[n,r]=(0,y.useState)(null),[i,d]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),[_,b]=(0,y.useState)(null);async function x(t){if(!_){b(t.unit);try{let e=await g(`/api/maintenance/restart`,{service:t.unit});e.ok?s(`erfolg`,L(t)):s(`fehler`,`${t.name} ließ sich nicht starten: ${u(e)}`)}catch(e){t.unit===`mission-control-2`&&e instanceof a?s(`info`,`Der Box-Wart startet neu. Die Seite ist gleich wieder da.`):s(`fehler`,e.message)}finally{b(null),e.invalidateQueries({queryKey:[`dienste`]}),e.invalidateQueries({queryKey:[`protokoll`,t.unit]})}}}if(t.isPending)return(0,R.jsx)(o,{text:`Die Dienste werden gelesen …`});if(!t.data)return(0,R.jsx)(o,{fehler:!0,text:`Die Dienste lassen sich gerade nicht lesen: ${t.error?.message??`keine Daten`}`});let S=t.data,C=i?I(i):null,w=S.speicher_gesamt?`den ${c(S.speicher_gesamt)}`:`dem Arbeitsspeicher`,T=S.kerne?`allen ${S.kerne} Kernen`:`allen Kernen`;return(0,R.jsxs)(f,{titel:`Dienste`,rechts:(0,R.jsx)(U,{dienste:S.services,stand:t.dataUpdatedAt}),children:[(0,R.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Die Dienste der KI-Box: ob sie laufen, was sie gerade an CPU und Speicher brauchen, seit wann sie laufen und was sie zuletzt ins Protokoll geschrieben haben. Probleme stehen oben.`}),S.services.length===0?(0,R.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Dienste gefunden.`}):(0,R.jsx)(H,{stand:S,gewaehlt:n,startet:_,onProtokoll:e=>r(n===e?null:e),onFrage:e=>{d(e),m(!0)}}),(0,R.jsxs)(`p`,{className:`m-0 text-xs leading-relaxed text-text-3`,children:[`CPU: Anteil an `,T,` der Box, gemessen zwischen zwei Abfragen (alle zehn Sekunden). Speicher: was systemd dem Dienst zurechnet; der Balken zeigt den Anteil an `,w,` der Box. Bei der Engine zählen die geladenen Modelle mit — sie liegen im Grafikspeicher, den systemd keinem Dienst zurechnet. Neustarts: wie oft systemd den Dienst nach einem Absturz von selbst wieder gestartet hat. „Schläft“ heißt: mit Absicht abgeschaltet, kein Fehler.`]}),(0,R.jsx)(v,{offen:p&&!!C,titel:C?.titel??``,text:C?.text??``,knopf:C?.knopf??``,gefahr:C?.knopf===`Neu starten`,gesperrt:_!==null,onJa:()=>{m(!1),i&&x(i)},onNein:()=>m(!1)})]})}export{K as DiensteSeite}; \ No newline at end of file +import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{$t as a,C as o,Ht as s,It as c,K as l,Kt as u,S as d,b as f,m as p,mt as m,pn as h,tn as g}from"./index-CKWhFN2A.js";import{t as _}from"./button-D8rvET0Z.js";import{t as v}from"./Bestaetigen-CMlebyiw.js";var y=r(e(),1),b=t(),x={laeuft:{wort:`läuft`,punkt:`bg-gruen`,text:`text-text-3`},startet:{wort:`startet`,punkt:`bg-bernstein`,text:`text-bernstein`},stoppt:{wort:`stoppt`,punkt:`bg-bernstein`,text:`text-bernstein`},antwortet_nicht:{wort:`antwortet nicht`,punkt:`bg-rot`,text:`text-rot-text`},gestoppt:{wort:`gestoppt`,punkt:`bg-rot`,text:`text-rot-text`},gescheitert:{wort:`gescheitert`,punkt:`bg-rot`,text:`text-rot-text`},schlaeft:{wort:`schläft`,punkt:`bg-text-3`,text:`text-text-3`}};function S(e){return e.zustand?e.zustand:e.ok?`laeuft`:e.schlaeft?`schlaeft`:`antwortet_nicht`}var C={gescheitert:0,gestoppt:0,antwortet_nicht:0,startet:1,stoppt:1,laeuft:3,schlaeft:4};function w(e){let t=S(e);return t===`laeuft`&&(e.neustarts??0)>0?2:C[t]}var T=e=>w(e)===0,E=e=>[...e].sort((e,t)=>w(e)-w(t)),D=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0}),O=new Intl.NumberFormat(`de-DE`,{minimumFractionDigits:1,maximumFractionDigits:1});function ee(e){if(e==null)return`–`;let t=e/1024**2;return t<1e3?`${D.format(t)} MB`:`${O.format(t/1024)} GB`}function te(e,t){return e.speicher_bytes==null||!t?null:(e.speicher_bytes+(e.grafik_bytes??0))/t*100}function ne(e){return e==null?`–`:e>0&&e<.05?`< 0,1 %`:e<10?`${O.format(e).replace(/,0$/,``)} %`:`${D.format(e)} %`}function k(e){return e==null||e<0?`–`:e<60?`< 1 min`:p(e)}var A=`Europe/Berlin`,j=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:A}),M=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:A}),N=new Intl.DateTimeFormat(`en-CA`,{timeZone:A});function re(e,t=Date.now()){let n=new Date(t-e*1e3),r=N.format(n);return r===N.format(new Date(t))?`heute ${j.format(n)}`:r===N.format(new Date(t-864e5))?`gestern ${j.format(n)}`:`${M.format(n)}, ${j.format(n)}`}function ie(e,t=Date.now()){let n=S(e);return n===`schlaeft`?`mit Absicht aus`:(n===`gestoppt`||n===`gescheitert`)&&e.aus_seit_s!=null?`aus seit ${re(e.aus_seit_s,t)}`:null}function P(e){let t=S(e);return t===`schlaeft`?`Wecken`:t===`gestoppt`||t===`gescheitert`?`Starten`:`Neu starten`}var F={"llama-swap":`Laufende Antworten brechen ab; die Modelle werden danach neu geladen.`,"mission-control-2":`Das ist diese Oberfläche selbst: Sie ist ein paar Sekunden nicht erreichbar.`,"hermes-gateway":`Lucy antwortet in der Zeit nicht.`};function I(e){let t=P(e);if(t===`Wecken`)return{titel:`${e.name} wecken?`,text:`Der Dienst startet und läuft bis zum nächsten Neustart der Box. Danach schläft er wieder.`,knopf:t};if(t===`Starten`)return{titel:`${e.name} starten?`,text:`Der Dienst wird gestartet. Scheitert er wieder, steht der Grund im Protokoll.`,knopf:t};let n=F[e.unit]?` ${F[e.unit]}`:``;return{titel:`${e.name} neu starten?`,text:`Der Dienst wird neu gestartet und ist dabei kurz nicht erreichbar.${n}`,knopf:t}}function L(e){let t=P(e);return`${e.name} ${t===`Wecken`?`wird geweckt`:t===`Starten`?`startet`:`startet neu`}.`}var R=n(),ae=`grid-cols-2 gap-x-4 sm:grid-cols-4 xl:gap-x-3 xl:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_9.5rem] min-[87.5rem]:grid-cols-[minmax(0,1.7fr)_7rem_minmax(0,0.7fr)_minmax(0,1.2fr)_7.5rem_5rem_17.5rem]`,z=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`});function B(e){let t=(0,b.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,R.jsx)(`span`,{className:`block text-xs text-text-3 xl:hidden`,children:n}),t[0]=n,t[1]=r),r}function oe(e){let t=(0,b.c)(7),{anteil:n,children:r}=e,i;t[0]===r?i=t[1]:(i=(0,R.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[0]=r,t[1]=i);let a;t[2]===n?a=t[3]:(a=n!==null&&(0,R.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,R.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:`${Math.min(100,Math.max(2,n))}%`,background:`var(--reihe-1)`}})}),t[2]=n,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function se(e){let t=(0,b.c)(9),{d:n,id:r}=e,i=m(n.unit),a=(0,y.useRef)(null),o;if(i.isPending)o=`Wird gelesen …`;else if(i.isError)o=`Das Protokoll lässt sich gerade nicht lesen: ${i.error.message}`;else if(i.data.ok===!1)o=i.data.err||i.data.text||`Das Protokoll lässt sich nicht lesen.`;else{let e;t[0]===i.data.text?e=t[1]:(e=i.data.text?.trim()||`Noch keine Einträge.`,t[0]=i.data.text,t[1]=e),o=e}let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},t[2]=s):s=t[2];let c;t[3]===o?c=t[4]:(c=[o],t[3]=o,t[4]=c),(0,y.useEffect)(s,c);let l=`Letzte Protokollzeilen von ${n.name}`,u;return t[5]!==r||t[6]!==l||t[7]!==o?(u=(0,R.jsx)(`pre`,{id:r,ref:a,tabIndex:0,"aria-label":l,className:`ziffern m-0 max-h-[50vh] w-full overflow-auto rounded-lg border border-linie bg-[#0b0d0f] p-3 text-xs leading-relaxed whitespace-pre-wrap break-words text-text-2`,children:o}),t[5]=r,t[6]=l,t[7]=o,t[8]=u):u=t[8],u}function V(e){let t=(0,b.c)(113),{d:n,gesamt:r,offen:a,startet:o,onProtokoll:s,onFrage:c}=e,l=x[S(n)],u;t[0]===n?u=t[1]:(u=ie(n),t[0]=n,t[1]=u);let d=u,f,p,m,h,g,v,y,C,w,E,D;if(t[2]!==n||t[3]!==r||t[4]!==l.punkt||t[5]!==l.text||t[6]!==l.wort||t[7]!==d){let e=te(n,r);f=n.neustarts??0,p=`protokoll-${n.unit}`,C=`row`,t[19]===Symbol.for(`react.memo_cache_sentinel`)?(w=i(`grid gap-y-2.5 border-t border-linie py-3 xl:items-center`,ae),t[19]=w):w=t[19];let a;t[20]===l.punkt?a=t[21]:(a=i(`mt-1.5 size-2.5 shrink-0 rounded-full`,l.punkt),t[20]=l.punkt,t[21]=a);let o;t[22]===a?o=t[23]:(o=(0,R.jsx)(`span`,{"aria-hidden":!0,className:a}),t[22]=a,t[23]=o);let s;t[24]===n.name?s=t[25]:(s=(0,R.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[24]=n.name,t[25]=s);let c=n.scope===`system`?` · Systemdienst`:``,u;t[26]!==n.unit||t[27]!==c?(u=(0,R.jsxs)(`span`,{className:`ziffern text-xs break-words text-text-3`,children:[n.unit,c]}),t[26]=n.unit,t[27]=c,t[28]=u):u=t[28];let _;t[29]!==s||t[30]!==u?(_=(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[s,u]}),t[29]=s,t[30]=u,t[31]=_):_=t[31],t[32]!==o||t[33]!==_?(E=(0,R.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-start gap-2.5 xl:col-span-1`,children:[o,_]}),t[32]=o,t[33]=_,t[34]=E):E=t[34];let b;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,R.jsx)(B,{children:`Zustand`}),t[35]=b):b=t[35];let x;t[36]===l.text?x=t[37]:(x=i(`schild text-xs`,l.text),t[36]=l.text,t[37]=x);let S;t[38]!==x||t[39]!==l.wort?(S=(0,R.jsx)(`span`,{className:x,children:l.wort}),t[38]=x,t[39]=l.wort,t[40]=S):S=t[40];let T;t[41]===d?T=t[42]:(T=d&&(0,R.jsx)(`span`,{className:`text-xs text-text-3`,children:d}),t[41]=d,t[42]=T);let O;t[43]===f?O=t[44]:(O=f>0&&(0,R.jsx)(`span`,{className:`text-xs text-bernstein xl:hidden`,children:f===1?`1 Neustart`:`${f} Neustarts`}),t[43]=f,t[44]=O),t[45]!==S||t[46]!==T||t[47]!==O?(D=(0,R.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[b,S,T,O]}),t[45]=S,t[46]=T,t[47]=O,t[48]=D):D=t[48];let k;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,R.jsx)(B,{children:`CPU`}),t[49]=k):k=t[49],t[50]===n.cpu_prozent?m=t[51]:(m=(0,R.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[k,n.cpu_prozent==null?(0,R.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,R.jsx)(oe,{anteil:n.cpu_prozent,children:ne(n.cpu_prozent)})]}),t[50]=n.cpu_prozent,t[51]=m),h=`cell`,g=`min-w-0`,t[52]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,R.jsx)(B,{children:`Speicher`}),t[52]=v):v=t[52],y=n.speicher_bytes==null?(0,R.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}):(0,R.jsxs)(oe,{anteil:e,children:[ee(n.speicher_bytes+(n.grafik_bytes??0)),e!==null&&(0,R.jsxs)(`span`,{className:`font-sans text-xs text-text-3`,children:[` · `,ne(e)]})]}),t[2]=n,t[3]=r,t[4]=l.punkt,t[5]=l.text,t[6]=l.wort,t[7]=d,t[8]=f,t[9]=p,t[10]=m,t[11]=h,t[12]=g,t[13]=v,t[14]=y,t[15]=C,t[16]=w,t[17]=E,t[18]=D}else f=t[8],p=t[9],m=t[10],h=t[11],g=t[12],v=t[13],y=t[14],C=t[15],w=t[16],E=t[17],D=t[18];let O;t[53]!==n.grafik_bytes||t[54]!==n.speicher_bytes?(O=n.speicher_bytes!=null&&!!n.grafik_bytes&&(0,R.jsxs)(`span`,{className:`mt-1 block text-xs text-text-3`,children:[`davon `,ee(n.grafik_bytes),` Modelle`]}),t[53]=n.grafik_bytes,t[54]=n.speicher_bytes,t[55]=O):O=t[55];let A;t[56]!==O||t[57]!==h||t[58]!==g||t[59]!==v||t[60]!==y?(A=(0,R.jsxs)(`span`,{role:h,className:g,children:[v,y,O]}),t[56]=O,t[57]=h,t[58]=g,t[59]=v,t[60]=y,t[61]=A):A=t[61];let j;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,R.jsx)(B,{children:`Läuft seit`}),t[62]=j):j=t[62];let M;t[63]===n.laeuft_seit_s?M=t[64]:(M=k(n.laeuft_seit_s),t[63]=n.laeuft_seit_s,t[64]=M);let N;t[65]===M?N=t[66]:(N=(0,R.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:M}),t[65]=M,t[66]=N);let F;t[67]===n.laeuft_seit_s?F=t[68]:(F=n.laeuft_seit_s!=null&&(0,R.jsxs)(`span`,{className:`text-xs text-text-3`,children:[`gestartet `,re(n.laeuft_seit_s)]}),t[67]=n.laeuft_seit_s,t[68]=F);let I;t[69]!==N||t[70]!==F?(I=(0,R.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[j,N,F]}),t[69]=N,t[70]=F,t[71]=I):I=t[71];let L=f>0?`text-bernstein`:`text-text-3`,z;t[72]===L?z=t[73]:(z=i(`ziffern text-sm`,L),t[72]=L,t[73]=z);let V=n.neustarts??`–`,H;t[74]!==z||t[75]!==V?(H=(0,R.jsx)(`span`,{role:`cell`,className:`hidden min-w-0 xl:block`,children:(0,R.jsx)(`span`,{className:z,children:V})}),t[74]=z,t[75]=V,t[76]=H):H=t[76];let U=a?`info`:`ghost`,W=a?p:void 0,G=`Protokoll von ${n.name}`,K;t[77]!==a||t[78]!==s||t[79]!==U||t[80]!==W||t[81]!==G?(K=(0,R.jsx)(_,{variant:U,size:`sm`,"aria-expanded":a,"aria-controls":W,"aria-label":G,onClick:s,children:`Protokoll`}),t[77]=a,t[78]=s,t[79]=U,t[80]=W,t[81]=G,t[82]=K):K=t[82];let q=T(n)?`default`:`outline`,ce=o!==null,J;t[83]!==n||t[84]!==o?(J=o===n.unit?`startet …`:P(n),t[83]=n,t[84]=o,t[85]=J):J=t[85];let le=`${n.name}: ${J}`,Y;t[86]!==n||t[87]!==o?(Y=o===n.unit?`Startet …`:P(n),t[86]=n,t[87]=o,t[88]=Y):Y=t[88];let X;t[89]!==c||t[90]!==q||t[91]!==ce||t[92]!==le||t[93]!==Y?(X=(0,R.jsx)(_,{variant:q,size:`sm`,disabled:ce,"aria-label":le,onClick:c,children:Y}),t[89]=c,t[90]=q,t[91]=ce,t[92]=le,t[93]=Y,t[94]=X):X=t[94];let Z;t[95]!==K||t[96]!==X?(Z=(0,R.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex flex-wrap gap-2 sm:col-start-3 sm:row-start-1 sm:justify-end sm:self-start xl:col-span-1 xl:col-start-auto xl:row-start-auto xl:flex-col xl:items-stretch xl:self-center min-[87.5rem]:flex-row min-[87.5rem]:justify-end`,children:[K,X]}),t[95]=K,t[96]=X,t[97]=Z):Z=t[97];let Q;t[98]!==n||t[99]!==a||t[100]!==p?(Q=a&&(0,R.jsx)(`div`,{role:`cell`,className:`col-span-full`,children:(0,R.jsx)(se,{d:n,id:p})}),t[98]=n,t[99]=a,t[100]=p,t[101]=Q):Q=t[101];let $;return t[102]!==m||t[103]!==A||t[104]!==I||t[105]!==H||t[106]!==Z||t[107]!==Q||t[108]!==C||t[109]!==w||t[110]!==E||t[111]!==D?($=(0,R.jsxs)(`div`,{role:C,className:w,children:[E,D,m,A,I,H,Z,Q]}),t[102]=m,t[103]=A,t[104]=I,t[105]=H,t[106]=Z,t[107]=Q,t[108]=C,t[109]=w,t[110]=E,t[111]=D,t[112]=$):$=t[112],$}function H(e){let t=(0,b.c)(16),{stand:n,gewaehlt:r,startet:a,onProtokoll:o,onFrage:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,R.jsxs)(`div`,{role:`row`,className:i(`schild hidden pb-2 text-xs font-semibold text-text-3 xl:grid`,ae),children:[(0,R.jsx)(`span`,{role:`columnheader`,children:`Dienst`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`Zustand`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`}),(0,R.jsx)(`span`,{role:`columnheader`,children:`Neustarts`}),(0,R.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktionen`})]}),t[0]=c):c=t[0];let l;if(t[1]!==r||t[2]!==s||t[3]!==o||t[4]!==n.services||t[5]!==n.speicher_gesamt||t[6]!==a){let e;t[8]!==r||t[9]!==s||t[10]!==o||t[11]!==n.speicher_gesamt||t[12]!==a?(e=e=>(0,R.jsx)(V,{d:e,gesamt:n.speicher_gesamt,offen:r===e.unit,startet:a,onProtokoll:()=>o(e.unit),onFrage:()=>s(e)},e.unit),t[8]=r,t[9]=s,t[10]=o,t[11]=n.speicher_gesamt,t[12]=a,t[13]=e):e=t[13],l=E(n.services).map(e),t[1]=r,t[2]=s,t[3]=o,t[4]=n.services,t[5]=n.speicher_gesamt,t[6]=a,t[7]=l}else l=t[7];let u;return t[14]===l?u=t[15]:(u=(0,R.jsxs)(`div`,{role:`table`,"aria-label":`Dienste der KI-Box`,className:`flex flex-col`,children:[c,l]}),t[14]=l,t[15]=u),u}function U(e){let t=(0,b.c)(8),{dienste:n,stand:r}=e,i;t[0]===n?i=t[1]:(i=n.filter(T),t[0]=n,t[1]=i);let a=i.length,o;if(t[2]!==n||t[3]!==a||t[4]!==r){let e=n.filter(G),i;t[6]===r?i=t[7]:(i=r>0&&(0,R.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,z.format(r)]}),t[6]=r,t[7]=i),o=(0,R.jsxs)(`span`,{className:`flex flex-wrap items-center gap-3`,children:[i,a>0?(0,R.jsx)(d,{art:`rot`,children:a===1?`1 Problem`:`${a} Probleme`}):e.length>0?(0,R.jsx)(d,{art:`bernstein`,children:e.some(W)?`Startet gerade`:`Stoppt gerade`}):(0,R.jsx)(d,{art:`gruen`,children:`Alles in Ordnung`})]}),t[2]=n,t[3]=a,t[4]=r,t[5]=o}else o=t[5];return o}function W(e){return S(e)===`startet`}function G(e){return w(e)===1}function K(){let e=h(),t=l(),[n,r]=(0,y.useState)(null),[i,d]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),[_,b]=(0,y.useState)(null);async function x(t){if(!_){b(t.unit);try{let e=await g(`/api/maintenance/restart`,{service:t.unit});e.ok?s(`erfolg`,L(t)):s(`fehler`,`${t.name} ließ sich nicht starten: ${u(e)}`)}catch(e){t.unit===`mission-control-2`&&e instanceof a?s(`info`,`Der Box-Wart startet neu. Die Seite ist gleich wieder da.`):s(`fehler`,e.message)}finally{b(null),e.invalidateQueries({queryKey:[`dienste`]}),e.invalidateQueries({queryKey:[`protokoll`,t.unit]})}}}if(t.isPending)return(0,R.jsx)(o,{text:`Die Dienste werden gelesen …`});if(!t.data)return(0,R.jsx)(o,{fehler:!0,text:`Die Dienste lassen sich gerade nicht lesen: ${t.error?.message??`keine Daten`}`});let S=t.data,C=i?I(i):null,w=S.speicher_gesamt?`den ${c(S.speicher_gesamt)}`:`dem Arbeitsspeicher`,T=S.kerne?`allen ${S.kerne} Kernen`:`allen Kernen`;return(0,R.jsxs)(f,{titel:`Dienste`,rechts:(0,R.jsx)(U,{dienste:S.services,stand:t.dataUpdatedAt}),children:[(0,R.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Die Dienste der KI-Box: ob sie laufen, was sie gerade an CPU und Speicher brauchen, seit wann sie laufen und was sie zuletzt ins Protokoll geschrieben haben. Probleme stehen oben.`}),S.services.length===0?(0,R.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Dienste gefunden.`}):(0,R.jsx)(H,{stand:S,gewaehlt:n,startet:_,onProtokoll:e=>r(n===e?null:e),onFrage:e=>{d(e),m(!0)}}),(0,R.jsxs)(`p`,{className:`m-0 text-xs leading-relaxed text-text-3`,children:[`CPU: Anteil an `,T,` der Box, gemessen zwischen zwei Abfragen (alle zehn Sekunden). Speicher: was systemd dem Dienst zurechnet; der Balken zeigt den Anteil an `,w,` der Box. Bei der Engine zählen die geladenen Modelle mit — sie liegen im Grafikspeicher, den systemd keinem Dienst zurechnet. Neustarts: wie oft systemd den Dienst nach einem Absturz von selbst wieder gestartet hat. „Schläft“ heißt: mit Absicht abgeschaltet, kein Fehler.`]}),(0,R.jsx)(v,{offen:p&&!!C,titel:C?.titel??``,text:C?.text??``,knopf:C?.knopf??``,gefahr:C?.knopf===`Neu starten`,gesperrt:_!==null,onJa:()=>{m(!1),i&&x(i)},onNein:()=>m(!1)})]})}export{K as DiensteSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Einstellungen-BUM2VQDj.js b/frontend/dist/assets/Einstellungen-B9lWkZF-.js similarity index 99% rename from frontend/dist/assets/Einstellungen-BUM2VQDj.js rename to frontend/dist/assets/Einstellungen-B9lWkZF-.js index 10e8a4f..716d1c3 100644 --- a/frontend/dist/assets/Einstellungen-BUM2VQDj.js +++ b/frontend/dist/assets/Einstellungen-B9lWkZF-.js @@ -1 +1 @@ -import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{Dt as a,H as o,Ht as s,Pt as c,S as l,Tt as u,V as d,Z as f,_t as p,an as m,at as h,cn as g,en as _,fn as v,kt as y,pn as b,pt as x,q as S,tn as C}from"./index-CIOHqG23.js";import{t as w}from"./button-D8rvET0Z.js";import{t as ee}from"./Bestaetigen-D6CzMfJm.js";var T={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};T.node;var E=g(T),D=t(),O=r(e(),1),k=n(),A=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],j=Array.from({length:48},(e,t)=>`${String(Math.floor(t/2)).padStart(2,`0`)}:${t%2?`30`:`00`}`),M=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function N(e){let t=e?new Date(e):null;return t&&!Number.isNaN(t.getTime())?M.format(t):`–`}function P(e,t){let n=Number(t.slice(0,2)),r=n*60+179,i=e;r>=1440&&(r-=1440,i=e%7+1);let a=e=>String(e).padStart(2,`0`),o=`${a(n)}:00`,s=`${a(Math.floor(r/60))}:${a(r%60)}`;return i===e?`${A[e-1]} ${o}–${s}`:`${A[e-1]} ${o} – ${A[i-1]} ${s}`}function F(e){let t=(0,D.c)(6),{titel:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,k.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-2`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i||t[4]!==n?(a=(0,k.jsxs)(`section`,{"aria-label":n,className:`flex flex-col gap-3 border-t border-linie pt-4 first:border-t-0 first:pt-0`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=n,t[5]=a):a=t[5],a}function I(e){let t=(0,D.c)(19),{titel:n,text:r,farbe:a,children:o}=e,s=a===`box`?`bg-box`:a===`homelab`?`bg-lab`:`bg-linie-stark`,c=a===`box`?`text-box-text`:a===`homelab`?`text-lab-text`:`text-foreground`,l;t[0]===s?l=t[1]:(l=i(`absolute inset-x-0 top-0 h-1`,s),t[0]=s,t[1]=l);let u;t[2]===l?u=t[3]:(u=(0,k.jsx)(`span`,{"aria-hidden":!0,className:l}),t[2]=l,t[3]=u);let d;t[4]===c?d=t[5]:(d=i(`schild text-lg font-bold tracking-[0.22em]`,c),t[4]=c,t[5]=d);let f;t[6]!==d||t[7]!==n?(f=(0,k.jsx)(`h2`,{className:d,children:n}),t[6]=d,t[7]=n,t[8]=f):f=t[8];let p;t[9]===r?p=t[10]:(p=(0,k.jsx)(`p`,{className:`text-sm text-text-3`,children:r}),t[9]=r,t[10]=p);let m;t[11]!==f||t[12]!==p?(m=(0,k.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[f,p]}),t[11]=f,t[12]=p,t[13]=m):m=t[13];let h;return t[14]!==o||t[15]!==u||t[16]!==m||t[17]!==n?(h=(0,k.jsxs)(`section`,{"aria-label":n,className:`relative flex min-w-0 flex-col gap-4 overflow-hidden rounded-2xl border border-linie bg-panel p-5 sm:p-6`,children:[u,m,o]}),t[14]=o,t[15]=u,t[16]=m,t[17]=n,t[18]=h):h=t[18],h}function L(e){let t=(0,D.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,k.jsx)(`p`,{className:`text-sm text-bernstein`,children:n}),t[0]=n,t[1]=r),r}function R(e){let t=(0,D.c)(3),{laedt:n,fehler:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],e}let i=r?`: ${r}`:`.`,a;return t[1]===i?a=t[2]:(a=(0,k.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Lässt sich gerade nicht lesen`,i]}),t[1]=i,t[2]=a),a}function z({offen:e}){let t=b(),n=v({queryKey:[`geheimnisse`],queryFn:()=>_(`/api/maintenance/geheimnisse`),enabled:e}),[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(!1),[c,l]=(0,O.useState)(!1);async function u(e){if(!a){o(!0),l(!1);try{await C(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),s(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),i(``),t.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){s(`fehler`,e.message)}finally{o(!1)}}}let d=n.data,f;return f=n.isPending?`Wird gelesen …`:d?d.hf_token_gesetzt?`Ist hinterlegt.`:`Fehlt.`:`Lässt sich gerade nicht lesen${n.error?`: ${n.error.message}`:`.`}`,(0,k.jsxs)(F,{titel:`Hugging-Face-Zugang`,children:[(0,k.jsxs)(`p`,{className:`text-sm text-text-2`,"aria-live":`polite`,children:[(0,k.jsx)(`span`,{className:!d&&!n.isPending?`text-rot-text`:void 0,children:f}),` Nötig für gesperrte Modelle und schnellere Downloads.`,d?.hf_token_aus_env?` Er kommt aus der Dienst-Einstellung und lässt sich hier nicht löschen.`:``]}),d?.schreibbar===!1&&(0,k.jsx)(`p`,{className:`text-sm text-bernstein`,children:`Die Box kann den Zugang gerade nicht speichern: Ihre Ablage ist nicht beschreibbar.`}),(0,k.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),r.trim()&&u(r.trim())},children:[(0,k.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,k.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:r,onChange:e=>i(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),(0,k.jsx)(w,{type:`submit`,disabled:!r.trim()||d?.schreibbar===!1||a,children:a?`Speichert …`:`Speichern`})]}),d?.hf_token_gesetzt&&!d.hf_token_aus_env&&(c?(0,k.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,k.jsx)(w,{variant:`gefahr`,size:`sm`,disabled:a,onClick:()=>u(null),children:`Wirklich löschen?`}),(0,k.jsx)(w,{variant:`ghost`,size:`sm`,onClick:()=>l(!1),children:`Nein`})]}):(0,k.jsx)(w,{variant:`ghost`,size:`sm`,className:`self-start`,disabled:a,onClick:()=>l(!0),children:`Zugang löschen`}))]})}function B(e){let t=(0,D.c)(24),{ziel:n,name:r}=e,i=a(),o=i.data,s=null;if(i.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Sendet …`}),t[0]=e):e=t[0],s=e}else if(o?.gesendet){let e=o.weg===`hermes`?`über Hermes`:`direkt an die Telegram-Bot-API`,n=o.kennung?`, Kennung ${o.kennung}`:``,r;t[1]!==e||t[2]!==n?(r=(0,k.jsxs)(`p`,{role:`status`,className:`text-sm text-gruen`,children:[`Gesendet `,e,n,`. Schau in Telegram nach.`]}),t[1]=e,t[2]=n,t[3]=r):r=t[3],s=r}else if(o){let e=o.grund??o.detail??`ohne Angabe eines Grundes.`,n;t[4]===e?n=t[5]:(n=(0,k.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Nicht gesendet: `,e]}),t[4]=e,t[5]=n),s=n}else if(i.error){let e;t[6]===i.error.message?e=t[7]:(e=(0,k.jsx)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:i.error.message}),t[6]=i.error.message,t[7]=e),s=e}let c;t[8]===r?c=t[9]:(c=(0,k.jsx)(`span`,{className:`text-[15px]`,children:r}),t[8]=r,t[9]=c);let l;t[10]!==i||t[11]!==n?(l=()=>i.mutate(n),t[10]=i,t[11]=n,t[12]=l):l=t[12];let u=`Testmeldung von ${r} senden`,d=i.isPending?`Sendet …`:`Test senden`,f;t[13]!==l||t[14]!==u||t[15]!==d||t[16]!==i.isPending?(f=(0,k.jsx)(w,{variant:`outline`,size:`sm`,disabled:i.isPending,onClick:l,"aria-label":u,children:d}),t[13]=l,t[14]=u,t[15]=d,t[16]=i.isPending,t[17]=f):f=t[17];let p;t[18]!==c||t[19]!==f?(p=(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[c,f]}),t[18]=c,t[19]=f,t[20]=p):p=t[20];let m;return t[21]!==s||t[22]!==p?(m=(0,k.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[p,s]}),t[21]=s,t[22]=p,t[23]=m):m=t[23],m}function V(){let e=(0,D.c)(9),t=h().data,n=t?.rolle??`box`,r=n===`box`?`homelab`:`box`,i=t?.instanz??(n===`box`?`Box-Wart`:`Homelab`),a;e[0]!==r||e[1]!==n||e[2]!==t||e[3]!==i?(a=[{ziel:n,name:i}],t?.partner.eingerichtet&&a.push({ziel:r,name:t.partner.name}),a.sort(U),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=a):a=e[4];let o,s;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Dringende Hinweise gehen zusätzlich per Telegram raus, alles andere bleibt hier; was nachts anfällt, kommt um 07:00 als eine Morgenmeldung. Einfache Probleme wie einen abgestürzten Dienst behebt der Wächter selbst und schreibt es in den Verlauf.`}),s=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Test schickt eine kurze Meldung über den echten Meldeweg, als dringend, damit sie auch nachts sofort kommt.`}),e[5]=o,e[6]=s):(o=e[5],s=e[6]);let c;return e[7]===a?c=e[8]:(c=(0,k.jsxs)(F,{titel:`Telegram`,children:[o,s,a.map(H)]}),e[7]=a,e[8]=c),c}function H(e){return(0,k.jsx)(B,{ziel:e.ziel,name:e.name},e.ziel)}function U(e,t){return Number(e.ziel!==`box`)-Number(t.ziel!==`box`)}function W(e){let t=(0,D.c)(87),{e:n,laedt:r,fehler:i}=e,a=y(),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(!1);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,k.jsx)(F,{titel:`Update-Zeitfenster`,children:(0,k.jsx)(R,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let u=n.update_fenster,d,f,p,m,h,g,_,v,b,x,S,C,T,E,M,I,z;if(t[3]!==n.schaltbar||t[4]!==o||t[5]!==u.naechster_lauf||t[6]!==u.neustart_fenster||t[7]!==u.tag||t[8]!==u.tag_name||t[9]!==u.timer_aktiv||t[10]!==u.uhrzeit||t[11]!==u.wirksam){z=o??{tag:u.tag,uhrzeit:u.uhrzeit},f=z.tag!==u.tag||z.uhrzeit!==u.uhrzeit;let e=j.includes(z.uhrzeit)?j:[...j,z.uhrzeit].sort();d=F,h=`Update-Zeitfenster`;let r;t[29]===u.naechster_lauf?r=t[30]:(r=u.naechster_lauf?` (nächster Lauf ${N(u.naechster_lauf)})`:``,t[29]=u.naechster_lauf,t[30]=r),t[31]!==u.neustart_fenster||t[32]!==u.tag_name||t[33]!==u.uhrzeit||t[34]!==r?(g=(0,k.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Die Box aktualisiert sich jeden `,u.tag_name,` um `,u.uhrzeit,` Uhr`,r,`. Neu gestartet wird sie danach nur`,` `,u.neustart_fenster,`.`]}),t[31]=u.neustart_fenster,t[32]=u.tag_name,t[33]=u.uhrzeit,t[34]=r,t[35]=g):g=t[35],t[36]!==n.schaltbar||t[37]!==u.timer_aktiv?(_=n.schaltbar&&!u.timer_aktiv&&(0,k.jsx)(L,{children:`Der Update-Timer läuft gerade nicht; er übernimmt das Fenster beim nächsten Start.`}),t[36]=n.schaltbar,t[37]=u.timer_aktiv,t[38]=_):_=t[38],t[39]!==n.schaltbar||t[40]!==u.wirksam?(v=n.schaltbar&&!u.wirksam&&(0,k.jsx)(L,{children:`Der Timer läuft noch nach einem anderen Plan als eingestellt. Einmal speichern gleicht es an.`}),t[39]=n.schaltbar,t[40]=u.wirksam,t[41]=v):v=t[41],I=`flex flex-wrap items-end gap-2`;let i=z.tag,a;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(a=A.map(K),t[42]=a):a=t[42],m=(0,k.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-text-3`,children:[`Tag`,(0,k.jsx)(`select`,{className:`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,value:i,disabled:!n.schaltbar,"aria-label":`Wochentag`,onChange:e=>s({...z,tag:Number(e.target.value)}),children:a})]}),E=`flex flex-col gap-1 text-xs text-text-3`,M=`Uhrzeit`,p=`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,b=z.uhrzeit,x=!n.schaltbar,S=`Uhrzeit`,C=e=>s({...z,uhrzeit:e.target.value}),T=e.map(G),t[3]=n.schaltbar,t[4]=o,t[5]=u.naechster_lauf,t[6]=u.neustart_fenster,t[7]=u.tag,t[8]=u.tag_name,t[9]=u.timer_aktiv,t[10]=u.uhrzeit,t[11]=u.wirksam,t[12]=d,t[13]=f,t[14]=p,t[15]=m,t[16]=h,t[17]=g,t[18]=_,t[19]=v,t[20]=b,t[21]=x,t[22]=S,t[23]=C,t[24]=T,t[25]=E,t[26]=M,t[27]=I,t[28]=z}else d=t[12],f=t[13],p=t[14],m=t[15],h=t[16],g=t[17],_=t[18],v=t[19],b=t[20],x=t[21],S=t[22],C=t[23],T=t[24],E=t[25],M=t[26],I=t[27],z=t[28];let B;t[43]!==p||t[44]!==b||t[45]!==x||t[46]!==S||t[47]!==C||t[48]!==T?(B=(0,k.jsx)(`select`,{className:p,value:b,disabled:x,"aria-label":S,onChange:C,children:T}),t[43]=p,t[44]=b,t[45]=x,t[46]=S,t[47]=C,t[48]=T,t[49]=B):B=t[49];let V;t[50]!==B||t[51]!==E||t[52]!==M?(V=(0,k.jsxs)(`label`,{className:E,children:[M,B]}),t[50]=B,t[51]=E,t[52]=M,t[53]=V):V=t[53];let H=!n.schaltbar||a.isPending||!f&&u.wirksam,U;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>l(!0),t[54]=U):U=t[54];let W=a.isPending?`Speichert …`:`Speichern`,q;t[55]!==H||t[56]!==W?(q=(0,k.jsx)(w,{disabled:H,onClick:U,children:W}),t[55]=H,t[56]=W,t[57]=q):q=t[57];let J;t[58]!==m||t[59]!==V||t[60]!==q||t[61]!==I?(J=(0,k.jsxs)(`div`,{className:I,children:[m,V,q]}),t[58]=m,t[59]=V,t[60]=q,t[61]=I,t[62]=J):J=t[62];let Y=n.schaltbar?``:` Einstellen lässt es sich nur auf der Box.`,X;t[63]===Y?X=t[64]:(X=(0,k.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Am besten nachts nach der Sicherung (03:30) und vor der Morgenmeldung (07:00).`,Y]}),t[63]=Y,t[64]=X);let Z;t[65]!==z.tag||t[66]!==z.uhrzeit?(Z=P(z.tag,z.uhrzeit),t[65]=z.tag,t[66]=z.uhrzeit,t[67]=Z):Z=t[67];let te=`Der Update-Lauf startet ab jetzt jeden ${A[z.tag-1]} um ${z.uhrzeit} Uhr. Neu gestartet wird die Box nur ${Z}. Ein Termin, der dadurch schon vorbei ist, wird nicht nachgeholt: Der erste Lauf ist der nächste reguläre.`,ne;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(ne=()=>l(!1),t[68]=ne):ne=t[68];let Q;t[69]!==c||t[70]!==a||t[71]!==z?(Q=()=>{c&&(a.mutate(z,{onSuccess:()=>s(null)}),l(!1))},t[69]=c,t[70]=a,t[71]=z,t[72]=Q):Q=t[72];let $;t[73]!==c||t[74]!==a.isPending||t[75]!==te||t[76]!==Q?($=(0,k.jsx)(ee,{offen:c,titel:`Update-Zeitfenster ändern?`,text:te,knopf:`Speichern`,gesperrt:a.isPending,onNein:ne,onJa:Q}),t[73]=c,t[74]=a.isPending,t[75]=te,t[76]=Q,t[77]=$):$=t[77];let re;return t[78]!==d||t[79]!==h||t[80]!==g||t[81]!==_||t[82]!==v||t[83]!==J||t[84]!==X||t[85]!==$?(re=(0,k.jsxs)(d,{titel:h,children:[g,_,v,J,X,$]}),t[78]=d,t[79]=h,t[80]=g,t[81]=_,t[82]=v,t[83]=J,t[84]=X,t[85]=$,t[86]=re):re=t[86],re}function G(e){return(0,k.jsx)(`option`,{value:e,children:e},e)}function K(e,t){return(0,k.jsx)(`option`,{value:t+1,children:e},e)}function q(e){let t=(0,D.c)(37),{e:n,laedt:r,fehler:i}=e,a=p(),[o,s]=(0,O.useState)(null);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,k.jsx)(F,{titel:`Modell-Radar`,children:(0,k.jsx)(R,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let c=n.radar,l=c.zustand===`an`||c.zustand===`unbekannt`&&c.an,u;t[3]===c.naechster_lauf?u=t[4]:(u=c.naechster_lauf?` (nächster Lauf ${N(c.naechster_lauf)})`:``,t[3]=c.naechster_lauf,t[4]=u);let d=`An. Es sucht jede Nacht ab 00:30 nach besseren Modellen${u}.`,f=c.an?`Eingeschaltet.`:`Ausgeschaltet.`,m;t[5]!==d||t[6]!==f?(m={an:d,schlaeft:`Schläft. Es sucht und testet keine Modelle, bis du es wieder einschaltest.`,aus:`Gestoppt, steht aber noch im Autostart: Nach einem Neustart der Box liefe es wieder.`,unbekannt:f},t[5]=d,t[6]=f,t[7]=m):m=t[7];let h=m[c.zustand],g;t[8]===h?g=t[9]:(g=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:h}),t[8]=h,t[9]=g);let _;t[10]!==n.schaltbar||t[11]!==c.an||t[12]!==c.wirksam?(_=n.schaltbar&&!c.wirksam&&(0,k.jsxs)(L,{children:[`Eingestellt ist „`,c.an?`an`:`aus`,`“, systemd zeigt etwas anderes. Noch einmal schalten gleicht es an.`]}),t[10]=n.schaltbar,t[11]=c.an,t[12]=c.wirksam,t[13]=_):_=t[13];let v=l?`outline`:`default`,y=!n.schaltbar||a.isPending,b;t[14]===l?b=t[15]:(b=()=>s(!l),t[14]=l,t[15]=b);let x=a.isPending?`Schaltet …`:l?`Ausschalten`:`Einschalten`,S;t[16]!==b||t[17]!==x||t[18]!==v||t[19]!==y?(S=(0,k.jsx)(w,{variant:v,size:`sm`,className:`self-start`,disabled:y,onClick:b,children:x}),t[16]=b,t[17]=x,t[18]=v,t[19]=y,t[20]=S):S=t[20];let C=o!==null,T=o?`Modell-Radar einschalten?`:`Modell-Radar ausschalten?`,E=o?`Das Radar sucht ab heute Nacht um 00:30 wieder nach besseren Modellen und testet höchstens eines pro Woche. Ein verpasster Lauf wird nicht nachgeholt, tagsüber lädt es also nichts.`:`Das Radar sucht und testet dann keine neuen Modelle mehr, bis du es wieder einschaltest. Ein Nachttest, der gerade läuft, endet noch. Auch ein Deploy schaltet es nicht wieder ein.`,A=o?`Einschalten`:`Ausschalten`,j;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>s(null),t[21]=j):j=t[21];let M;t[22]!==o||t[23]!==a?(M=()=>{o!==null&&(a.mutate(o),s(null))},t[22]=o,t[23]=a,t[24]=M):M=t[24];let P;t[25]!==a.isPending||t[26]!==C||t[27]!==T||t[28]!==E||t[29]!==A||t[30]!==M?(P=(0,k.jsx)(ee,{offen:C,titel:T,text:E,knopf:A,gesperrt:a.isPending,onNein:j,onJa:M}),t[25]=a.isPending,t[26]=C,t[27]=T,t[28]=E,t[29]=A,t[30]=M,t[31]=P):P=t[31];let I;return t[32]!==S||t[33]!==P||t[34]!==g||t[35]!==_?(I=(0,k.jsxs)(F,{titel:`Modell-Radar`,children:[g,_,S,P]}),t[32]=S,t[33]=P,t[34]=g,t[35]=_,t[36]=I):I=t[36],I}function J(e){let t=(0,D.c)(25),{name:n,stand:r,laedt:i,fehler:a}=e,o;if(i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`span`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],o=e}else if(a){let e;t[1]===a?e=t[2]:(e=(0,k.jsxs)(`span`,{className:`text-sm text-rot-text`,children:[`Nicht lesbar: `,a]}),t[1]=a,t[2]=e),o=e}else if(r?.commit){let e;t[4]===r.commit?e=t[5]:(e=(0,k.jsx)(`span`,{className:`ziffern text-foreground`,children:r.commit}),t[4]=r.commit,t[5]=e);let n=r.betreff?` · ${r.betreff}`:``,i;t[6]!==e||t[7]!==n?(i=(0,k.jsxs)(`span`,{className:`text-sm text-text-2`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=i):i=t[8];let a;t[9]!==r.deploy_zeit||t[10]!==r.quelle?(a=r.quelle===`deploy`?`Live seit ${N(r.deploy_zeit)}`:`Aus git gelesen, ohne Deploy`,t[9]=r.deploy_zeit,t[10]=r.quelle,t[11]=a):a=t[11];let s;t[12]===r.commit_datum?s=t[13]:(s=r.commit_datum?` · Commit vom ${N(r.commit_datum)}`:``,t[12]=r.commit_datum,t[13]=s);let c;t[14]!==a||t[15]!==s?(c=(0,k.jsxs)(`span`,{className:`text-xs text-text-3`,children:[a,s]}),t[14]=a,t[15]=s,t[16]=c):c=t[16];let l;t[17]!==i||t[18]!==c?(l=(0,k.jsxs)(k.Fragment,{children:[i,c]}),t[17]=i,t[18]=c,t[19]=l):l=t[19],o=l}else{let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`span`,{className:`text-sm text-text-2`,children:`Unbekannt: keine Stand-Datei und kein git.`}),t[3]=e):e=t[3],o=e}let s;t[20]===n?s=t[21]:(s=(0,k.jsx)(`span`,{className:`text-[15px]`,children:n}),t[20]=n,t[21]=s);let c;return t[22]!==o||t[23]!==s?(c=(0,k.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[s,o]}),t[22]=o,t[23]=s,t[24]=c):c=t[24],c}function Y(e,t){return!e||!t?null:e.startsWith(t)||t.startsWith(e)}function X(e){let t=(0,D.c)(21),{offen:n}=e,r=h().data,i=!!r?.partner.eingerichtet,[a,o]=u(n,i),s=a.data?.stand?.commit,c=o.data?.stand?.commit,l;t[0]!==s||t[1]!==c?(l=Y(s,c),t[0]=s,t[1]=c,t[2]=l):l=t[2];let d=l,f=a.data?.instanz??r?.instanz??`Diese Instanz`,p=a.data?.stand,m=a.error?.message,g;t[3]!==a.isPending||t[4]!==f||t[5]!==p||t[6]!==m?(g=(0,k.jsx)(J,{name:f,stand:p,laedt:a.isPending,fehler:m}),t[3]=a.isPending,t[4]=f,t[5]=p,t[6]=m,t[7]=g):g=t[7];let _;t[8]!==r?.partner||t[9]!==o.data?.instanz||t[10]!==o.data?.stand||t[11]!==o.error?.message||t[12]!==o.isPending||t[13]!==i?(_=i&&(0,k.jsx)(J,{name:o.data?.instanz??r?.partner.name??`Partner`,stand:o.data?.stand,laedt:o.isPending,fehler:o.error?.message}),t[8]=r?.partner,t[9]=o.data?.instanz,t[10]=o.data?.stand,t[11]=o.error?.message,t[12]=o.isPending,t[13]=i,t[14]=_):_=t[14];let v;t[15]===d?v=t[16]:(v=d===!1&&(0,k.jsx)(L,{children:`Die beiden Instanzen laufen mit verschiedenen Ständen. Der nächste Deploy der Box zieht den Homelab-Teil mit.`}),t[15]=d,t[16]=v);let y;return t[17]!==g||t[18]!==_||t[19]!==v?(y=(0,k.jsxs)(F,{titel:`Instanzen`,children:[g,_,v]}),t[17]=g,t[18]=_,t[19]=v,t[20]=y):y=t[20],y}function Z(e){let t=(0,D.c)(52),{h:n}=e,r=o(),i=d(),[a,s]=(0,O.useState)(``),[c,u]=(0,O.useState)(!1),[f,p]=(0,O.useState)(null),h=n.arcane,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g={hinterlegt:(0,k.jsx)(l,{art:`gruen`,children:`hinterlegt`}),umgebung:(0,k.jsx)(l,{art:`gruen`,children:`aus der Dienst-Einstellung`}),fehlt:(0,k.jsx)(l,{art:`bernstein`,children:`fehlt`})},t[0]=g):g=t[0];let _=g[h.schluessel],v;t[1]===h.url?v=t[2]:(v=h.url&&(0,k.jsxs)(`a`,{href:h.url,target:`_blank`,rel:`noopener`,className:`ml-auto inline-flex items-center gap-1 text-cyan hover:underline`,children:[`Arcane öffnen `,(0,k.jsx)(m,{className:`size-3.5`,"aria-hidden":!0})]}),t[1]=h.url,t[2]=v);let y;t[3]!==_||t[4]!==v?(y=(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-text-2`,children:[`API-Schlüssel `,_,v]}),t[3]=_,t[4]=v,t[5]=y):y=t[5];let b;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Mit Schlüssel sieht der Orchestrator, welche Docker-Images neuer sind. Anlegen in Arcane unter Einstellungen → API-Schlüssel; Lesen reicht, solange Docker-Updates nur als Probelauf laufen.`}),t[6]=b):b=t[6];let x;t[7]!==h.schluessel||t[8]!==r||t[9]!==a?(x=h.schluessel!==`umgebung`&&(0,k.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),a.trim()&&r.mutate(a.trim(),{onSuccess:()=>s(``)})},children:[(0,k.jsx)(`label`,{htmlFor:`arcane-schluessel`,className:`sr-only`,children:`Arcane-API-Schlüssel`}),(0,k.jsxs)(`span`,{className:`relative min-w-0 flex-1`,children:[(0,k.jsx)(E,{className:`pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-text-3`,"aria-hidden":!0}),(0,k.jsx)(`input`,{id:`arcane-schluessel`,type:`password`,autoComplete:`off`,value:a,onChange:e=>s(e.target.value),placeholder:h.schluessel===`hinterlegt`?`Neuen Schlüssel eintragen …`:`Schlüssel aus Arcane einfügen …`,className:`h-11 w-full rounded-lg border border-linie-stark bg-erhaben pr-3 pl-9 text-[15px] outline-none focus:border-lab`})]}),(0,k.jsx)(w,{type:`submit`,disabled:!a.trim()||r.isPending,children:r.isPending?`Prüft …`:`Prüfen und speichern`})]}),t[7]=h.schluessel,t[8]=r,t[9]=a,t[10]=x):x=t[10];let S;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,k.jsx)(`p`,{className:`text-xs text-text-3`,children:`Der Schlüssel wird vor dem Speichern an Arcane geprüft und nie wieder angezeigt. Er liegt nur im Homelab-Teil.`}),t[11]=S):S=t[11];let C;t[12]!==h.schluessel||t[13]!==c||t[14]!==r?(C=h.schluessel===`hinterlegt`&&(c?(0,k.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,k.jsx)(w,{variant:`gefahr`,size:`sm`,disabled:r.isPending,onClick:()=>{r.mutate(null),u(!1)},children:`Wirklich entfernen?`}),(0,k.jsx)(w,{variant:`ghost`,size:`sm`,onClick:()=>u(!1),children:`Nein`})]}):(0,k.jsx)(w,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>u(!0),children:`Schlüssel entfernen`})),t[12]=h.schluessel,t[13]=c,t[14]=r,t[15]=C):C=t[15];let T;t[16]!==y||t[17]!==x||t[18]!==C?(T=(0,k.jsxs)(F,{titel:`Arcane (Docker)`,children:[y,b,x,S,C]}),t[16]=y,t[17]=x,t[18]=C,t[19]=T):T=t[19];let A=h.echt?`Echt: „Jetzt updaten“ bei Arcane zieht neue Images und startet die Container neu.`:`Probelauf: Arcane zeigt nur, was es tun würde — kein Container wird angefasst.`,j=h.echt_quelle===`umgebung`?` Festgelegt in der Dienst-Einstellung (MC_ARCANE_ECHT).`:``,M;t[20]!==A||t[21]!==j?(M=(0,k.jsxs)(`p`,{className:`text-sm text-text-2`,children:[A,j]}),t[20]=A,t[21]=j,t[22]=M):M=t[22];let N=h.echt?`outline`:`default`,P=h.echt_quelle===`umgebung`||i.isPending||h.schluessel===`fehlt`,I;t[23]===h.echt?I=t[24]:(I=()=>p(!h.echt),t[23]=h.echt,t[24]=I);let L=i.isPending?`Schaltet …`:h.echt?`Zurück auf Probelauf`:`Echt schalten`,R;t[25]!==N||t[26]!==P||t[27]!==I||t[28]!==L?(R=(0,k.jsx)(w,{variant:N,size:`sm`,className:`self-start`,disabled:P,onClick:I,children:L}),t[25]=N,t[26]=P,t[27]=I,t[28]=L,t[29]=R):R=t[29];let z;t[30]===h.schluessel?z=t[31]:(z=h.schluessel===`fehlt`&&(0,k.jsx)(`p`,{className:`text-xs text-text-3`,children:`Erst den Schlüssel eintragen.`}),t[30]=h.schluessel,t[31]=z);let B=f!==null,V=f?`Docker-Updates echt ausführen?`:`Zurück auf Probelauf?`,H=f?`Ab jetzt zieht „Jetzt updaten“ bei Arcane neue Images und startet die betroffenen Container neu. Vorher wird ein Snapshot der VM angelegt, soweit möglich. Das lässt sich hier jederzeit zurückschalten.`:`Docker-Updates zeigen dann wieder nur, was Arcane tun würde.`,U=f?`Echt schalten`:`Probelauf`,W=!!f,G;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>p(null),t[32]=G):G=t[32];let K;t[33]!==i||t[34]!==f?(K=()=>{f!==null&&(i.mutate(f),p(null))},t[33]=i,t[34]=f,t[35]=K):K=t[35];let q;t[36]!==i.isPending||t[37]!==B||t[38]!==V||t[39]!==H||t[40]!==U||t[41]!==W||t[42]!==K?(q=(0,k.jsx)(ee,{offen:B,titel:V,text:H,knopf:U,gefahr:W,gesperrt:i.isPending,onNein:G,onJa:K}),t[36]=i.isPending,t[37]=B,t[38]=V,t[39]=H,t[40]=U,t[41]=W,t[42]=K,t[43]=q):q=t[43];let J;t[44]!==M||t[45]!==R||t[46]!==z||t[47]!==q?(J=(0,k.jsxs)(F,{titel:`Docker-Updates`,children:[M,R,z,q]}),t[44]=M,t[45]=R,t[46]=z,t[47]=q,t[48]=J):J=t[48];let Y;return t[49]!==J||t[50]!==T?(Y=(0,k.jsxs)(k.Fragment,{children:[T,J]}),t[49]=J,t[50]=T,t[51]=Y):Y=t[51],Y}function te(e){let t=(0,D.c)(21),{h:n}=e,r=n.ausfuehrer,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,k.jsx)(`dt`,{className:`text-text-3`,children:`Ausführer`}),t[0]=i):i=t[0];let a=r.verbunden?`text-gruen-text`:`text-rot-text`,o=r.verbunden?`verbunden`:`meldet sich nicht`,s;t[1]===r.zuletzt?s=t[2]:(s=r.zuletzt?` · zuletzt ${c(new Date(r.zuletzt*1e3).toISOString()).toLowerCase()}`:``,t[1]=r.zuletzt,t[2]=s);let l;t[3]!==a||t[4]!==o||t[5]!==s?(l=(0,k.jsxs)(`dd`,{className:a,children:[o,s]}),t[3]=a,t[4]=o,t[5]=s,t[6]=l):l=t[6];let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,k.jsx)(`dt`,{className:`text-text-3`,children:`Modus`}),t[7]=u):u=t[7];let d=r.nur_lesen?`nur lesen — Updates sind gesperrt`:`voll: Snapshots, Sicherungen und Updates`,f;t[8]===d?f=t[9]:(f=(0,k.jsx)(`dd`,{className:`text-text-2`,children:d}),t[8]=d,t[9]=f);let p;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,k.jsx)(`dt`,{className:`text-text-3`,children:`Sicherungen`}),t[10]=p):p=t[10];let m=r.sicherung_speicher?`auf „${r.sicherung_speicher}“ (wo kein Snapshot geht)`:`kein Speicher gefunden`,h;t[11]===m?h=t[12]:(h=(0,k.jsx)(`dd`,{className:`text-text-2`,children:m}),t[11]=m,t[12]=h);let g;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,k.jsx)(`dt`,{className:`text-text-3`,children:`Wartezeit`}),t[13]=g):g=t[13];let _=n.karenz_h>0?`${n.karenz_h} Stunden nach einer Änderung am Update-Skript einer App`:`aus`,v;t[14]===_?v=t[15]:(v=(0,k.jsx)(`dd`,{className:`text-text-2`,children:_}),t[14]=_,t[15]=v);let y;return t[16]!==h||t[17]!==v||t[18]!==l||t[19]!==f?(y=(0,k.jsx)(F,{titel:`Ausführer und Updates`,children:(0,k.jsxs)(`dl`,{className:`grid grid-cols-[auto_minmax(0,1fr)] gap-x-4 gap-y-2 text-sm`,children:[i,l,u,f,p,h,g,v]})}),t[16]=h,t[17]=v,t[18]=l,t[19]=f,t[20]=y):y=t[20],y}function ne(){let e=(0,D.c)(8),t=h().data,n=x().data,r=t?.rolle===`homelab`||!!(n?.eingerichtet&&n.erreichbar),i=f(r),a;if(!r){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht.`}),e[0]=t):t=e[0],a=t}else if(i.data){let t;e[4]===i.data?t=e[5]:(t=(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Z,{h:i.data}),(0,k.jsx)(te,{h:i.data})]}),e[4]=i.data,e[5]=t),a=t}else{let t=i.error?.message,n;e[1]!==i.isPending||e[2]!==t?(n=(0,k.jsx)(R,{laedt:i.isPending,fehler:t}),e[1]=i.isPending,e[2]=t,e[3]=n):n=e[3],a=n}let o;return e[6]===a?o=e[7]:(o=(0,k.jsx)(I,{titel:`Homelab`,farbe:`homelab`,text:`Arcane und Docker, der Ausführer auf dem Proxmox-Host, Rückwege.`,children:a}),e[6]=a,e[7]=o),o}function Q(){let e=(0,D.c)(17),t=S(!0),n=t.error?.message,r;e[0]!==t.data||e[1]!==t.isPending||e[2]!==n?(r={e:t.data,laedt:t.isPending,fehler:n},e[0]=t.data,e[1]=t.isPending,e[2]=n,e[3]=r):r=e[3];let i=r,a,o;e[4]===i?(a=e[5],o=e[6]):(a=(0,k.jsx)(W,{...i}),o=(0,k.jsx)(q,{...i}),e[4]=i,e[5]=a,e[6]=o);let s;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,k.jsx)(z,{offen:!0}),e[7]=s):s=e[7];let c;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,k.jsxs)(F,{titel:`Hermes`,children:[(0,k.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-lg border border-linie-stark bg-erhaben px-4 text-[15px] hover:border-text-3`,children:[(0,k.jsx)(m,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,k.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]}),e[8]=c):c=e[8];let l;e[9]!==a||e[10]!==o?(l=(0,k.jsxs)(I,{titel:`KI-Box`,farbe:`box`,text:`Wann sie sich aktualisiert, das Modell-Radar und Zugänge.`,children:[a,o,s,c]}),e[9]=a,e[10]=o,e[11]=l):l=e[11];let u;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,k.jsx)(ne,{}),e[12]=u):u=e[12];let d;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,k.jsx)(I,{titel:`Meldungen`,text:`Telegram, Morgenmeldung und was sofort kommt.`,children:(0,k.jsx)(V,{})}),e[13]=d):d=e[13];let f;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,k.jsx)(I,{titel:`Software-Stand`,text:`Welcher Stand auf beiden Instanzen läuft.`,children:(0,k.jsx)(X,{offen:!0})}),e[14]=f):f=e[14];let p;return e[15]===l?p=e[16]:(p=(0,k.jsxs)(`div`,{className:`grid gap-5 md:gap-6 xl:grid-cols-2`,children:[l,u,d,f]}),e[15]=l,e[16]=p),p}export{Q as EinstellungenSeite}; \ No newline at end of file +import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{Dt as a,H as o,Ht as s,Pt as c,S as l,Tt as u,V as d,Z as f,_t as p,an as m,at as h,cn as g,en as _,fn as v,kt as y,pn as b,pt as x,q as S,tn as C}from"./index-CKWhFN2A.js";import{t as w}from"./button-D8rvET0Z.js";import{t as ee}from"./Bestaetigen-CMlebyiw.js";var T={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};T.node;var E=g(T),D=t(),O=r(e(),1),k=n(),A=[`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`,`Sonntag`],j=Array.from({length:48},(e,t)=>`${String(Math.floor(t/2)).padStart(2,`0`)}:${t%2?`30`:`00`}`),M=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,year:`numeric`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function N(e){let t=e?new Date(e):null;return t&&!Number.isNaN(t.getTime())?M.format(t):`–`}function P(e,t){let n=Number(t.slice(0,2)),r=n*60+179,i=e;r>=1440&&(r-=1440,i=e%7+1);let a=e=>String(e).padStart(2,`0`),o=`${a(n)}:00`,s=`${a(Math.floor(r/60))}:${a(r%60)}`;return i===e?`${A[e-1]} ${o}–${s}`:`${A[e-1]} ${o} – ${A[i-1]} ${s}`}function F(e){let t=(0,D.c)(6),{titel:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,k.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-2`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i||t[4]!==n?(a=(0,k.jsxs)(`section`,{"aria-label":n,className:`flex flex-col gap-3 border-t border-linie pt-4 first:border-t-0 first:pt-0`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=n,t[5]=a):a=t[5],a}function I(e){let t=(0,D.c)(19),{titel:n,text:r,farbe:a,children:o}=e,s=a===`box`?`bg-box`:a===`homelab`?`bg-lab`:`bg-linie-stark`,c=a===`box`?`text-box-text`:a===`homelab`?`text-lab-text`:`text-foreground`,l;t[0]===s?l=t[1]:(l=i(`absolute inset-x-0 top-0 h-1`,s),t[0]=s,t[1]=l);let u;t[2]===l?u=t[3]:(u=(0,k.jsx)(`span`,{"aria-hidden":!0,className:l}),t[2]=l,t[3]=u);let d;t[4]===c?d=t[5]:(d=i(`schild text-lg font-bold tracking-[0.22em]`,c),t[4]=c,t[5]=d);let f;t[6]!==d||t[7]!==n?(f=(0,k.jsx)(`h2`,{className:d,children:n}),t[6]=d,t[7]=n,t[8]=f):f=t[8];let p;t[9]===r?p=t[10]:(p=(0,k.jsx)(`p`,{className:`text-sm text-text-3`,children:r}),t[9]=r,t[10]=p);let m;t[11]!==f||t[12]!==p?(m=(0,k.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[f,p]}),t[11]=f,t[12]=p,t[13]=m):m=t[13];let h;return t[14]!==o||t[15]!==u||t[16]!==m||t[17]!==n?(h=(0,k.jsxs)(`section`,{"aria-label":n,className:`relative flex min-w-0 flex-col gap-4 overflow-hidden rounded-2xl border border-linie bg-panel p-5 sm:p-6`,children:[u,m,o]}),t[14]=o,t[15]=u,t[16]=m,t[17]=n,t[18]=h):h=t[18],h}function L(e){let t=(0,D.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,k.jsx)(`p`,{className:`text-sm text-bernstein`,children:n}),t[0]=n,t[1]=r),r}function R(e){let t=(0,D.c)(3),{laedt:n,fehler:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],e}let i=r?`: ${r}`:`.`,a;return t[1]===i?a=t[2]:(a=(0,k.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Lässt sich gerade nicht lesen`,i]}),t[1]=i,t[2]=a),a}function z({offen:e}){let t=b(),n=v({queryKey:[`geheimnisse`],queryFn:()=>_(`/api/maintenance/geheimnisse`),enabled:e}),[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(!1),[c,l]=(0,O.useState)(!1);async function u(e){if(!a){o(!0),l(!1);try{await C(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),s(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),i(``),t.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){s(`fehler`,e.message)}finally{o(!1)}}}let d=n.data,f;return f=n.isPending?`Wird gelesen …`:d?d.hf_token_gesetzt?`Ist hinterlegt.`:`Fehlt.`:`Lässt sich gerade nicht lesen${n.error?`: ${n.error.message}`:`.`}`,(0,k.jsxs)(F,{titel:`Hugging-Face-Zugang`,children:[(0,k.jsxs)(`p`,{className:`text-sm text-text-2`,"aria-live":`polite`,children:[(0,k.jsx)(`span`,{className:!d&&!n.isPending?`text-rot-text`:void 0,children:f}),` Nötig für gesperrte Modelle und schnellere Downloads.`,d?.hf_token_aus_env?` Er kommt aus der Dienst-Einstellung und lässt sich hier nicht löschen.`:``]}),d?.schreibbar===!1&&(0,k.jsx)(`p`,{className:`text-sm text-bernstein`,children:`Die Box kann den Zugang gerade nicht speichern: Ihre Ablage ist nicht beschreibbar.`}),(0,k.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),r.trim()&&u(r.trim())},children:[(0,k.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,k.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:r,onChange:e=>i(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),(0,k.jsx)(w,{type:`submit`,disabled:!r.trim()||d?.schreibbar===!1||a,children:a?`Speichert …`:`Speichern`})]}),d?.hf_token_gesetzt&&!d.hf_token_aus_env&&(c?(0,k.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,k.jsx)(w,{variant:`gefahr`,size:`sm`,disabled:a,onClick:()=>u(null),children:`Wirklich löschen?`}),(0,k.jsx)(w,{variant:`ghost`,size:`sm`,onClick:()=>l(!1),children:`Nein`})]}):(0,k.jsx)(w,{variant:`ghost`,size:`sm`,className:`self-start`,disabled:a,onClick:()=>l(!0),children:`Zugang löschen`}))]})}function B(e){let t=(0,D.c)(24),{ziel:n,name:r}=e,i=a(),o=i.data,s=null;if(i.isPending){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Sendet …`}),t[0]=e):e=t[0],s=e}else if(o?.gesendet){let e=o.weg===`hermes`?`über Hermes`:`direkt an die Telegram-Bot-API`,n=o.kennung?`, Kennung ${o.kennung}`:``,r;t[1]!==e||t[2]!==n?(r=(0,k.jsxs)(`p`,{role:`status`,className:`text-sm text-gruen`,children:[`Gesendet `,e,n,`. Schau in Telegram nach.`]}),t[1]=e,t[2]=n,t[3]=r):r=t[3],s=r}else if(o){let e=o.grund??o.detail??`ohne Angabe eines Grundes.`,n;t[4]===e?n=t[5]:(n=(0,k.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Nicht gesendet: `,e]}),t[4]=e,t[5]=n),s=n}else if(i.error){let e;t[6]===i.error.message?e=t[7]:(e=(0,k.jsx)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:i.error.message}),t[6]=i.error.message,t[7]=e),s=e}let c;t[8]===r?c=t[9]:(c=(0,k.jsx)(`span`,{className:`text-[15px]`,children:r}),t[8]=r,t[9]=c);let l;t[10]!==i||t[11]!==n?(l=()=>i.mutate(n),t[10]=i,t[11]=n,t[12]=l):l=t[12];let u=`Testmeldung von ${r} senden`,d=i.isPending?`Sendet …`:`Test senden`,f;t[13]!==l||t[14]!==u||t[15]!==d||t[16]!==i.isPending?(f=(0,k.jsx)(w,{variant:`outline`,size:`sm`,disabled:i.isPending,onClick:l,"aria-label":u,children:d}),t[13]=l,t[14]=u,t[15]=d,t[16]=i.isPending,t[17]=f):f=t[17];let p;t[18]!==c||t[19]!==f?(p=(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[c,f]}),t[18]=c,t[19]=f,t[20]=p):p=t[20];let m;return t[21]!==s||t[22]!==p?(m=(0,k.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[p,s]}),t[21]=s,t[22]=p,t[23]=m):m=t[23],m}function V(){let e=(0,D.c)(9),t=h().data,n=t?.rolle??`box`,r=n===`box`?`homelab`:`box`,i=t?.instanz??(n===`box`?`Box-Wart`:`Homelab`),a;e[0]!==r||e[1]!==n||e[2]!==t||e[3]!==i?(a=[{ziel:n,name:i}],t?.partner.eingerichtet&&a.push({ziel:r,name:t.partner.name}),a.sort(U),e[0]=r,e[1]=n,e[2]=t,e[3]=i,e[4]=a):a=e[4];let o,s;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Dringende Hinweise gehen zusätzlich per Telegram raus, alles andere bleibt hier; was nachts anfällt, kommt um 07:00 als eine Morgenmeldung. Einfache Probleme wie einen abgestürzten Dienst behebt der Wächter selbst und schreibt es in den Verlauf.`}),s=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Test schickt eine kurze Meldung über den echten Meldeweg, als dringend, damit sie auch nachts sofort kommt.`}),e[5]=o,e[6]=s):(o=e[5],s=e[6]);let c;return e[7]===a?c=e[8]:(c=(0,k.jsxs)(F,{titel:`Telegram`,children:[o,s,a.map(H)]}),e[7]=a,e[8]=c),c}function H(e){return(0,k.jsx)(B,{ziel:e.ziel,name:e.name},e.ziel)}function U(e,t){return Number(e.ziel!==`box`)-Number(t.ziel!==`box`)}function W(e){let t=(0,D.c)(87),{e:n,laedt:r,fehler:i}=e,a=y(),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(!1);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,k.jsx)(F,{titel:`Update-Zeitfenster`,children:(0,k.jsx)(R,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let u=n.update_fenster,d,f,p,m,h,g,_,v,b,x,S,C,T,E,M,I,z;if(t[3]!==n.schaltbar||t[4]!==o||t[5]!==u.naechster_lauf||t[6]!==u.neustart_fenster||t[7]!==u.tag||t[8]!==u.tag_name||t[9]!==u.timer_aktiv||t[10]!==u.uhrzeit||t[11]!==u.wirksam){z=o??{tag:u.tag,uhrzeit:u.uhrzeit},f=z.tag!==u.tag||z.uhrzeit!==u.uhrzeit;let e=j.includes(z.uhrzeit)?j:[...j,z.uhrzeit].sort();d=F,h=`Update-Zeitfenster`;let r;t[29]===u.naechster_lauf?r=t[30]:(r=u.naechster_lauf?` (nächster Lauf ${N(u.naechster_lauf)})`:``,t[29]=u.naechster_lauf,t[30]=r),t[31]!==u.neustart_fenster||t[32]!==u.tag_name||t[33]!==u.uhrzeit||t[34]!==r?(g=(0,k.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Die Box aktualisiert sich jeden `,u.tag_name,` um `,u.uhrzeit,` Uhr`,r,`. Neu gestartet wird sie danach nur`,` `,u.neustart_fenster,`.`]}),t[31]=u.neustart_fenster,t[32]=u.tag_name,t[33]=u.uhrzeit,t[34]=r,t[35]=g):g=t[35],t[36]!==n.schaltbar||t[37]!==u.timer_aktiv?(_=n.schaltbar&&!u.timer_aktiv&&(0,k.jsx)(L,{children:`Der Update-Timer läuft gerade nicht; er übernimmt das Fenster beim nächsten Start.`}),t[36]=n.schaltbar,t[37]=u.timer_aktiv,t[38]=_):_=t[38],t[39]!==n.schaltbar||t[40]!==u.wirksam?(v=n.schaltbar&&!u.wirksam&&(0,k.jsx)(L,{children:`Der Timer läuft noch nach einem anderen Plan als eingestellt. Einmal speichern gleicht es an.`}),t[39]=n.schaltbar,t[40]=u.wirksam,t[41]=v):v=t[41],I=`flex flex-wrap items-end gap-2`;let i=z.tag,a;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(a=A.map(K),t[42]=a):a=t[42],m=(0,k.jsxs)(`label`,{className:`flex flex-col gap-1 text-xs text-text-3`,children:[`Tag`,(0,k.jsx)(`select`,{className:`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,value:i,disabled:!n.schaltbar,"aria-label":`Wochentag`,onChange:e=>s({...z,tag:Number(e.target.value)}),children:a})]}),E=`flex flex-col gap-1 text-xs text-text-3`,M=`Uhrzeit`,p=`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] text-foreground outline-none focus:border-cyan`,b=z.uhrzeit,x=!n.schaltbar,S=`Uhrzeit`,C=e=>s({...z,uhrzeit:e.target.value}),T=e.map(G),t[3]=n.schaltbar,t[4]=o,t[5]=u.naechster_lauf,t[6]=u.neustart_fenster,t[7]=u.tag,t[8]=u.tag_name,t[9]=u.timer_aktiv,t[10]=u.uhrzeit,t[11]=u.wirksam,t[12]=d,t[13]=f,t[14]=p,t[15]=m,t[16]=h,t[17]=g,t[18]=_,t[19]=v,t[20]=b,t[21]=x,t[22]=S,t[23]=C,t[24]=T,t[25]=E,t[26]=M,t[27]=I,t[28]=z}else d=t[12],f=t[13],p=t[14],m=t[15],h=t[16],g=t[17],_=t[18],v=t[19],b=t[20],x=t[21],S=t[22],C=t[23],T=t[24],E=t[25],M=t[26],I=t[27],z=t[28];let B;t[43]!==p||t[44]!==b||t[45]!==x||t[46]!==S||t[47]!==C||t[48]!==T?(B=(0,k.jsx)(`select`,{className:p,value:b,disabled:x,"aria-label":S,onChange:C,children:T}),t[43]=p,t[44]=b,t[45]=x,t[46]=S,t[47]=C,t[48]=T,t[49]=B):B=t[49];let V;t[50]!==B||t[51]!==E||t[52]!==M?(V=(0,k.jsxs)(`label`,{className:E,children:[M,B]}),t[50]=B,t[51]=E,t[52]=M,t[53]=V):V=t[53];let H=!n.schaltbar||a.isPending||!f&&u.wirksam,U;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(U=()=>l(!0),t[54]=U):U=t[54];let W=a.isPending?`Speichert …`:`Speichern`,q;t[55]!==H||t[56]!==W?(q=(0,k.jsx)(w,{disabled:H,onClick:U,children:W}),t[55]=H,t[56]=W,t[57]=q):q=t[57];let J;t[58]!==m||t[59]!==V||t[60]!==q||t[61]!==I?(J=(0,k.jsxs)(`div`,{className:I,children:[m,V,q]}),t[58]=m,t[59]=V,t[60]=q,t[61]=I,t[62]=J):J=t[62];let Y=n.schaltbar?``:` Einstellen lässt es sich nur auf der Box.`,X;t[63]===Y?X=t[64]:(X=(0,k.jsxs)(`p`,{className:`text-xs text-text-3`,children:[`Am besten nachts nach der Sicherung (03:30) und vor der Morgenmeldung (07:00).`,Y]}),t[63]=Y,t[64]=X);let Z;t[65]!==z.tag||t[66]!==z.uhrzeit?(Z=P(z.tag,z.uhrzeit),t[65]=z.tag,t[66]=z.uhrzeit,t[67]=Z):Z=t[67];let te=`Der Update-Lauf startet ab jetzt jeden ${A[z.tag-1]} um ${z.uhrzeit} Uhr. Neu gestartet wird die Box nur ${Z}. Ein Termin, der dadurch schon vorbei ist, wird nicht nachgeholt: Der erste Lauf ist der nächste reguläre.`,ne;t[68]===Symbol.for(`react.memo_cache_sentinel`)?(ne=()=>l(!1),t[68]=ne):ne=t[68];let Q;t[69]!==c||t[70]!==a||t[71]!==z?(Q=()=>{c&&(a.mutate(z,{onSuccess:()=>s(null)}),l(!1))},t[69]=c,t[70]=a,t[71]=z,t[72]=Q):Q=t[72];let $;t[73]!==c||t[74]!==a.isPending||t[75]!==te||t[76]!==Q?($=(0,k.jsx)(ee,{offen:c,titel:`Update-Zeitfenster ändern?`,text:te,knopf:`Speichern`,gesperrt:a.isPending,onNein:ne,onJa:Q}),t[73]=c,t[74]=a.isPending,t[75]=te,t[76]=Q,t[77]=$):$=t[77];let re;return t[78]!==d||t[79]!==h||t[80]!==g||t[81]!==_||t[82]!==v||t[83]!==J||t[84]!==X||t[85]!==$?(re=(0,k.jsxs)(d,{titel:h,children:[g,_,v,J,X,$]}),t[78]=d,t[79]=h,t[80]=g,t[81]=_,t[82]=v,t[83]=J,t[84]=X,t[85]=$,t[86]=re):re=t[86],re}function G(e){return(0,k.jsx)(`option`,{value:e,children:e},e)}function K(e,t){return(0,k.jsx)(`option`,{value:t+1,children:e},e)}function q(e){let t=(0,D.c)(37),{e:n,laedt:r,fehler:i}=e,a=p(),[o,s]=(0,O.useState)(null);if(!n){let e;return t[0]!==i||t[1]!==r?(e=(0,k.jsx)(F,{titel:`Modell-Radar`,children:(0,k.jsx)(R,{laedt:r,fehler:i})}),t[0]=i,t[1]=r,t[2]=e):e=t[2],e}let c=n.radar,l=c.zustand===`an`||c.zustand===`unbekannt`&&c.an,u;t[3]===c.naechster_lauf?u=t[4]:(u=c.naechster_lauf?` (nächster Lauf ${N(c.naechster_lauf)})`:``,t[3]=c.naechster_lauf,t[4]=u);let d=`An. Es sucht jede Nacht ab 00:30 nach besseren Modellen${u}.`,f=c.an?`Eingeschaltet.`:`Ausgeschaltet.`,m;t[5]!==d||t[6]!==f?(m={an:d,schlaeft:`Schläft. Es sucht und testet keine Modelle, bis du es wieder einschaltest.`,aus:`Gestoppt, steht aber noch im Autostart: Nach einem Neustart der Box liefe es wieder.`,unbekannt:f},t[5]=d,t[6]=f,t[7]=m):m=t[7];let h=m[c.zustand],g;t[8]===h?g=t[9]:(g=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:h}),t[8]=h,t[9]=g);let _;t[10]!==n.schaltbar||t[11]!==c.an||t[12]!==c.wirksam?(_=n.schaltbar&&!c.wirksam&&(0,k.jsxs)(L,{children:[`Eingestellt ist „`,c.an?`an`:`aus`,`“, systemd zeigt etwas anderes. Noch einmal schalten gleicht es an.`]}),t[10]=n.schaltbar,t[11]=c.an,t[12]=c.wirksam,t[13]=_):_=t[13];let v=l?`outline`:`default`,y=!n.schaltbar||a.isPending,b;t[14]===l?b=t[15]:(b=()=>s(!l),t[14]=l,t[15]=b);let x=a.isPending?`Schaltet …`:l?`Ausschalten`:`Einschalten`,S;t[16]!==b||t[17]!==x||t[18]!==v||t[19]!==y?(S=(0,k.jsx)(w,{variant:v,size:`sm`,className:`self-start`,disabled:y,onClick:b,children:x}),t[16]=b,t[17]=x,t[18]=v,t[19]=y,t[20]=S):S=t[20];let C=o!==null,T=o?`Modell-Radar einschalten?`:`Modell-Radar ausschalten?`,E=o?`Das Radar sucht ab heute Nacht um 00:30 wieder nach besseren Modellen und testet höchstens eines pro Woche. Ein verpasster Lauf wird nicht nachgeholt, tagsüber lädt es also nichts.`:`Das Radar sucht und testet dann keine neuen Modelle mehr, bis du es wieder einschaltest. Ein Nachttest, der gerade läuft, endet noch. Auch ein Deploy schaltet es nicht wieder ein.`,A=o?`Einschalten`:`Ausschalten`,j;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>s(null),t[21]=j):j=t[21];let M;t[22]!==o||t[23]!==a?(M=()=>{o!==null&&(a.mutate(o),s(null))},t[22]=o,t[23]=a,t[24]=M):M=t[24];let P;t[25]!==a.isPending||t[26]!==C||t[27]!==T||t[28]!==E||t[29]!==A||t[30]!==M?(P=(0,k.jsx)(ee,{offen:C,titel:T,text:E,knopf:A,gesperrt:a.isPending,onNein:j,onJa:M}),t[25]=a.isPending,t[26]=C,t[27]=T,t[28]=E,t[29]=A,t[30]=M,t[31]=P):P=t[31];let I;return t[32]!==S||t[33]!==P||t[34]!==g||t[35]!==_?(I=(0,k.jsxs)(F,{titel:`Modell-Radar`,children:[g,_,S,P]}),t[32]=S,t[33]=P,t[34]=g,t[35]=_,t[36]=I):I=t[36],I}function J(e){let t=(0,D.c)(25),{name:n,stand:r,laedt:i,fehler:a}=e,o;if(i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`span`,{className:`text-sm text-text-2`,children:`Wird gelesen …`}),t[0]=e):e=t[0],o=e}else if(a){let e;t[1]===a?e=t[2]:(e=(0,k.jsxs)(`span`,{className:`text-sm text-rot-text`,children:[`Nicht lesbar: `,a]}),t[1]=a,t[2]=e),o=e}else if(r?.commit){let e;t[4]===r.commit?e=t[5]:(e=(0,k.jsx)(`span`,{className:`ziffern text-foreground`,children:r.commit}),t[4]=r.commit,t[5]=e);let n=r.betreff?` · ${r.betreff}`:``,i;t[6]!==e||t[7]!==n?(i=(0,k.jsxs)(`span`,{className:`text-sm text-text-2`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=i):i=t[8];let a;t[9]!==r.deploy_zeit||t[10]!==r.quelle?(a=r.quelle===`deploy`?`Live seit ${N(r.deploy_zeit)}`:`Aus git gelesen, ohne Deploy`,t[9]=r.deploy_zeit,t[10]=r.quelle,t[11]=a):a=t[11];let s;t[12]===r.commit_datum?s=t[13]:(s=r.commit_datum?` · Commit vom ${N(r.commit_datum)}`:``,t[12]=r.commit_datum,t[13]=s);let c;t[14]!==a||t[15]!==s?(c=(0,k.jsxs)(`span`,{className:`text-xs text-text-3`,children:[a,s]}),t[14]=a,t[15]=s,t[16]=c):c=t[16];let l;t[17]!==i||t[18]!==c?(l=(0,k.jsxs)(k.Fragment,{children:[i,c]}),t[17]=i,t[18]=c,t[19]=l):l=t[19],o=l}else{let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`span`,{className:`text-sm text-text-2`,children:`Unbekannt: keine Stand-Datei und kein git.`}),t[3]=e):e=t[3],o=e}let s;t[20]===n?s=t[21]:(s=(0,k.jsx)(`span`,{className:`text-[15px]`,children:n}),t[20]=n,t[21]=s);let c;return t[22]!==o||t[23]!==s?(c=(0,k.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[s,o]}),t[22]=o,t[23]=s,t[24]=c):c=t[24],c}function Y(e,t){return!e||!t?null:e.startsWith(t)||t.startsWith(e)}function X(e){let t=(0,D.c)(21),{offen:n}=e,r=h().data,i=!!r?.partner.eingerichtet,[a,o]=u(n,i),s=a.data?.stand?.commit,c=o.data?.stand?.commit,l;t[0]!==s||t[1]!==c?(l=Y(s,c),t[0]=s,t[1]=c,t[2]=l):l=t[2];let d=l,f=a.data?.instanz??r?.instanz??`Diese Instanz`,p=a.data?.stand,m=a.error?.message,g;t[3]!==a.isPending||t[4]!==f||t[5]!==p||t[6]!==m?(g=(0,k.jsx)(J,{name:f,stand:p,laedt:a.isPending,fehler:m}),t[3]=a.isPending,t[4]=f,t[5]=p,t[6]=m,t[7]=g):g=t[7];let _;t[8]!==r?.partner||t[9]!==o.data?.instanz||t[10]!==o.data?.stand||t[11]!==o.error?.message||t[12]!==o.isPending||t[13]!==i?(_=i&&(0,k.jsx)(J,{name:o.data?.instanz??r?.partner.name??`Partner`,stand:o.data?.stand,laedt:o.isPending,fehler:o.error?.message}),t[8]=r?.partner,t[9]=o.data?.instanz,t[10]=o.data?.stand,t[11]=o.error?.message,t[12]=o.isPending,t[13]=i,t[14]=_):_=t[14];let v;t[15]===d?v=t[16]:(v=d===!1&&(0,k.jsx)(L,{children:`Die beiden Instanzen laufen mit verschiedenen Ständen. Der nächste Deploy der Box zieht den Homelab-Teil mit.`}),t[15]=d,t[16]=v);let y;return t[17]!==g||t[18]!==_||t[19]!==v?(y=(0,k.jsxs)(F,{titel:`Instanzen`,children:[g,_,v]}),t[17]=g,t[18]=_,t[19]=v,t[20]=y):y=t[20],y}function Z(e){let t=(0,D.c)(52),{h:n}=e,r=o(),i=d(),[a,s]=(0,O.useState)(``),[c,u]=(0,O.useState)(!1),[f,p]=(0,O.useState)(null),h=n.arcane,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g={hinterlegt:(0,k.jsx)(l,{art:`gruen`,children:`hinterlegt`}),umgebung:(0,k.jsx)(l,{art:`gruen`,children:`aus der Dienst-Einstellung`}),fehlt:(0,k.jsx)(l,{art:`bernstein`,children:`fehlt`})},t[0]=g):g=t[0];let _=g[h.schluessel],v;t[1]===h.url?v=t[2]:(v=h.url&&(0,k.jsxs)(`a`,{href:h.url,target:`_blank`,rel:`noopener`,className:`ml-auto inline-flex items-center gap-1 text-cyan hover:underline`,children:[`Arcane öffnen `,(0,k.jsx)(m,{className:`size-3.5`,"aria-hidden":!0})]}),t[1]=h.url,t[2]=v);let y;t[3]!==_||t[4]!==v?(y=(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-text-2`,children:[`API-Schlüssel `,_,v]}),t[3]=_,t[4]=v,t[5]=y):y=t[5];let b;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Mit Schlüssel sieht der Orchestrator, welche Docker-Images neuer sind. Anlegen in Arcane unter Einstellungen → API-Schlüssel; Lesen reicht, solange Docker-Updates nur als Probelauf laufen.`}),t[6]=b):b=t[6];let x;t[7]!==h.schluessel||t[8]!==r||t[9]!==a?(x=h.schluessel!==`umgebung`&&(0,k.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),a.trim()&&r.mutate(a.trim(),{onSuccess:()=>s(``)})},children:[(0,k.jsx)(`label`,{htmlFor:`arcane-schluessel`,className:`sr-only`,children:`Arcane-API-Schlüssel`}),(0,k.jsxs)(`span`,{className:`relative min-w-0 flex-1`,children:[(0,k.jsx)(E,{className:`pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-text-3`,"aria-hidden":!0}),(0,k.jsx)(`input`,{id:`arcane-schluessel`,type:`password`,autoComplete:`off`,value:a,onChange:e=>s(e.target.value),placeholder:h.schluessel===`hinterlegt`?`Neuen Schlüssel eintragen …`:`Schlüssel aus Arcane einfügen …`,className:`h-11 w-full rounded-lg border border-linie-stark bg-erhaben pr-3 pl-9 text-[15px] outline-none focus:border-lab`})]}),(0,k.jsx)(w,{type:`submit`,disabled:!a.trim()||r.isPending,children:r.isPending?`Prüft …`:`Prüfen und speichern`})]}),t[7]=h.schluessel,t[8]=r,t[9]=a,t[10]=x):x=t[10];let S;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,k.jsx)(`p`,{className:`text-xs text-text-3`,children:`Der Schlüssel wird vor dem Speichern an Arcane geprüft und nie wieder angezeigt. Er liegt nur im Homelab-Teil.`}),t[11]=S):S=t[11];let C;t[12]!==h.schluessel||t[13]!==c||t[14]!==r?(C=h.schluessel===`hinterlegt`&&(c?(0,k.jsxs)(`span`,{className:`flex flex-wrap gap-2`,children:[(0,k.jsx)(w,{variant:`gefahr`,size:`sm`,disabled:r.isPending,onClick:()=>{r.mutate(null),u(!1)},children:`Wirklich entfernen?`}),(0,k.jsx)(w,{variant:`ghost`,size:`sm`,onClick:()=>u(!1),children:`Nein`})]}):(0,k.jsx)(w,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>u(!0),children:`Schlüssel entfernen`})),t[12]=h.schluessel,t[13]=c,t[14]=r,t[15]=C):C=t[15];let T;t[16]!==y||t[17]!==x||t[18]!==C?(T=(0,k.jsxs)(F,{titel:`Arcane (Docker)`,children:[y,b,x,S,C]}),t[16]=y,t[17]=x,t[18]=C,t[19]=T):T=t[19];let A=h.echt?`Echt: „Jetzt updaten“ bei Arcane zieht neue Images und startet die Container neu.`:`Probelauf: Arcane zeigt nur, was es tun würde — kein Container wird angefasst.`,j=h.echt_quelle===`umgebung`?` Festgelegt in der Dienst-Einstellung (MC_ARCANE_ECHT).`:``,M;t[20]!==A||t[21]!==j?(M=(0,k.jsxs)(`p`,{className:`text-sm text-text-2`,children:[A,j]}),t[20]=A,t[21]=j,t[22]=M):M=t[22];let N=h.echt?`outline`:`default`,P=h.echt_quelle===`umgebung`||i.isPending||h.schluessel===`fehlt`,I;t[23]===h.echt?I=t[24]:(I=()=>p(!h.echt),t[23]=h.echt,t[24]=I);let L=i.isPending?`Schaltet …`:h.echt?`Zurück auf Probelauf`:`Echt schalten`,R;t[25]!==N||t[26]!==P||t[27]!==I||t[28]!==L?(R=(0,k.jsx)(w,{variant:N,size:`sm`,className:`self-start`,disabled:P,onClick:I,children:L}),t[25]=N,t[26]=P,t[27]=I,t[28]=L,t[29]=R):R=t[29];let z;t[30]===h.schluessel?z=t[31]:(z=h.schluessel===`fehlt`&&(0,k.jsx)(`p`,{className:`text-xs text-text-3`,children:`Erst den Schlüssel eintragen.`}),t[30]=h.schluessel,t[31]=z);let B=f!==null,V=f?`Docker-Updates echt ausführen?`:`Zurück auf Probelauf?`,H=f?`Ab jetzt zieht „Jetzt updaten“ bei Arcane neue Images und startet die betroffenen Container neu. Vorher wird ein Snapshot der VM angelegt, soweit möglich. Das lässt sich hier jederzeit zurückschalten.`:`Docker-Updates zeigen dann wieder nur, was Arcane tun würde.`,U=f?`Echt schalten`:`Probelauf`,W=!!f,G;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>p(null),t[32]=G):G=t[32];let K;t[33]!==i||t[34]!==f?(K=()=>{f!==null&&(i.mutate(f),p(null))},t[33]=i,t[34]=f,t[35]=K):K=t[35];let q;t[36]!==i.isPending||t[37]!==B||t[38]!==V||t[39]!==H||t[40]!==U||t[41]!==W||t[42]!==K?(q=(0,k.jsx)(ee,{offen:B,titel:V,text:H,knopf:U,gefahr:W,gesperrt:i.isPending,onNein:G,onJa:K}),t[36]=i.isPending,t[37]=B,t[38]=V,t[39]=H,t[40]=U,t[41]=W,t[42]=K,t[43]=q):q=t[43];let J;t[44]!==M||t[45]!==R||t[46]!==z||t[47]!==q?(J=(0,k.jsxs)(F,{titel:`Docker-Updates`,children:[M,R,z,q]}),t[44]=M,t[45]=R,t[46]=z,t[47]=q,t[48]=J):J=t[48];let Y;return t[49]!==J||t[50]!==T?(Y=(0,k.jsxs)(k.Fragment,{children:[T,J]}),t[49]=J,t[50]=T,t[51]=Y):Y=t[51],Y}function te(e){let t=(0,D.c)(21),{h:n}=e,r=n.ausfuehrer,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,k.jsx)(`dt`,{className:`text-text-3`,children:`Ausführer`}),t[0]=i):i=t[0];let a=r.verbunden?`text-gruen-text`:`text-rot-text`,o=r.verbunden?`verbunden`:`meldet sich nicht`,s;t[1]===r.zuletzt?s=t[2]:(s=r.zuletzt?` · zuletzt ${c(new Date(r.zuletzt*1e3).toISOString()).toLowerCase()}`:``,t[1]=r.zuletzt,t[2]=s);let l;t[3]!==a||t[4]!==o||t[5]!==s?(l=(0,k.jsxs)(`dd`,{className:a,children:[o,s]}),t[3]=a,t[4]=o,t[5]=s,t[6]=l):l=t[6];let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,k.jsx)(`dt`,{className:`text-text-3`,children:`Modus`}),t[7]=u):u=t[7];let d=r.nur_lesen?`nur lesen — Updates sind gesperrt`:`voll: Snapshots, Sicherungen und Updates`,f;t[8]===d?f=t[9]:(f=(0,k.jsx)(`dd`,{className:`text-text-2`,children:d}),t[8]=d,t[9]=f);let p;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,k.jsx)(`dt`,{className:`text-text-3`,children:`Sicherungen`}),t[10]=p):p=t[10];let m=r.sicherung_speicher?`auf „${r.sicherung_speicher}“ (wo kein Snapshot geht)`:`kein Speicher gefunden`,h;t[11]===m?h=t[12]:(h=(0,k.jsx)(`dd`,{className:`text-text-2`,children:m}),t[11]=m,t[12]=h);let g;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,k.jsx)(`dt`,{className:`text-text-3`,children:`Wartezeit`}),t[13]=g):g=t[13];let _=n.karenz_h>0?`${n.karenz_h} Stunden nach einer Änderung am Update-Skript einer App`:`aus`,v;t[14]===_?v=t[15]:(v=(0,k.jsx)(`dd`,{className:`text-text-2`,children:_}),t[14]=_,t[15]=v);let y;return t[16]!==h||t[17]!==v||t[18]!==l||t[19]!==f?(y=(0,k.jsx)(F,{titel:`Ausführer und Updates`,children:(0,k.jsxs)(`dl`,{className:`grid grid-cols-[auto_minmax(0,1fr)] gap-x-4 gap-y-2 text-sm`,children:[i,l,u,f,p,h,g,v]})}),t[16]=h,t[17]=v,t[18]=l,t[19]=f,t[20]=y):y=t[20],y}function ne(){let e=(0,D.c)(8),t=h().data,n=x().data,r=t?.rolle===`homelab`||!!(n?.eingerichtet&&n.erreichbar),i=f(r),a;if(!r){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht.`}),e[0]=t):t=e[0],a=t}else if(i.data){let t;e[4]===i.data?t=e[5]:(t=(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Z,{h:i.data}),(0,k.jsx)(te,{h:i.data})]}),e[4]=i.data,e[5]=t),a=t}else{let t=i.error?.message,n;e[1]!==i.isPending||e[2]!==t?(n=(0,k.jsx)(R,{laedt:i.isPending,fehler:t}),e[1]=i.isPending,e[2]=t,e[3]=n):n=e[3],a=n}let o;return e[6]===a?o=e[7]:(o=(0,k.jsx)(I,{titel:`Homelab`,farbe:`homelab`,text:`Arcane und Docker, der Ausführer auf dem Proxmox-Host, Rückwege.`,children:a}),e[6]=a,e[7]=o),o}function Q(){let e=(0,D.c)(17),t=S(!0),n=t.error?.message,r;e[0]!==t.data||e[1]!==t.isPending||e[2]!==n?(r={e:t.data,laedt:t.isPending,fehler:n},e[0]=t.data,e[1]=t.isPending,e[2]=n,e[3]=r):r=e[3];let i=r,a,o;e[4]===i?(a=e[5],o=e[6]):(a=(0,k.jsx)(W,{...i}),o=(0,k.jsx)(q,{...i}),e[4]=i,e[5]=a,e[6]=o);let s;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,k.jsx)(z,{offen:!0}),e[7]=s):s=e[7];let c;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,k.jsxs)(F,{titel:`Hermes`,children:[(0,k.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-lg border border-linie-stark bg-erhaben px-4 text-[15px] hover:border-text-3`,children:[(0,k.jsx)(m,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,k.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]}),e[8]=c):c=e[8];let l;e[9]!==a||e[10]!==o?(l=(0,k.jsxs)(I,{titel:`KI-Box`,farbe:`box`,text:`Wann sie sich aktualisiert, das Modell-Radar und Zugänge.`,children:[a,o,s,c]}),e[9]=a,e[10]=o,e[11]=l):l=e[11];let u;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,k.jsx)(ne,{}),e[12]=u):u=e[12];let d;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,k.jsx)(I,{titel:`Meldungen`,text:`Telegram, Morgenmeldung und was sofort kommt.`,children:(0,k.jsx)(V,{})}),e[13]=d):d=e[13];let f;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,k.jsx)(I,{titel:`Software-Stand`,text:`Welcher Stand auf beiden Instanzen läuft.`,children:(0,k.jsx)(X,{offen:!0})}),e[14]=f):f=e[14];let p;return e[15]===l?p=e[16]:(p=(0,k.jsxs)(`div`,{className:`grid gap-5 md:gap-6 xl:grid-cols-2`,children:[l,u,d,f]}),e[15]=l,e[16]=p),p}export{Q as EinstellungenSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Homelab-Cf4eLYlp.js b/frontend/dist/assets/Homelab-D7JGlciA.js similarity index 99% rename from frontend/dist/assets/Homelab-Cf4eLYlp.js rename to frontend/dist/assets/Homelab-D7JGlciA.js index 11d6d60..3fa0756 100644 --- a/frontend/dist/assets/Homelab-Cf4eLYlp.js +++ b/frontend/dist/assets/Homelab-D7JGlciA.js @@ -1 +1 @@ -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-4vXDP1Jj.js";import{n as o,t as s}from"./undo-2-DvQmwdhu.js";import{t as c}from"./search-hyFAofkN.js";import{$ as l,A as u,C as d,D as f,F as p,I as m,L as h,M as g,Mt as _,N as v,O as y,P as b,Pt as x,Q as S,R as C,S as w,St as T,Ut as E,X as D,at as O,b as k,bt as ee,cn as A,dn as te,et as ne,i as j,j as re,k as ie,m as ae,on as oe,pt as se,rt as ce,sn as M,un as N,xt as le}from"./index-CIOHqG23.js";import{t as P}from"./button-D8rvET0Z.js";import{t as F}from"./Bestaetigen-D6CzMfJm.js";import{t as ue}from"./Lampe-gSQfYg4e.js";var I={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`}]]};I.node;var de=A(I),L={name:`loader-circle`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]],aliases:[`loader-2`]};L.node;var fe=A(L),R={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`}]]};R.node;var pe=A(R),z=t(),B=n(),V=`md:grid-cols-[minmax(0,1.3fr)_110px_minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,1fr)_90px]`,H=e=>(e/1e9).toFixed(1).replace(`.`,`,`);function U(e){let t=(0,z.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,B.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,B.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,B.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,B.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,B.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,B.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 W(e){if(e.erreichbar===!1)return 0;let t=v(e);return t!==null&&t>=.8?1:e.art===`proxmox-host`?2:3}function me(e){let t=(0,z.c)(4),{ziele:n,messwerte:r}=e,a;if(t[0]!==r||t[1]!==n){let e=new Map((r??[]).map(ge)),o=[...n].sort(he),s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,B.jsxs)(`div`,{role:`row`,className:i(`schild hidden gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,V),children:[(0,B.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Netz`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Platte`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`})]}),t[3]=s):s=t[3],a=(0,B.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??(v(t)===null?null:v(t)*100),a=n?.ram_used&&n.ram_total?`${H(n.ram_used)} / ${H(n.ram_total)} GB`:void 0;return(0,B.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`,V),children:[(0,B.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 flex-col md:col-span-1`,children:[(0,B.jsx)(N,{to:`/homelab/monitoring`,hash:t.id,className:`text-[15px] font-semibold break-words hover:text-lab-text`,children:t.name}),y(t)!==t.name&&(0,B.jsx)(`span`,{className:`text-sm text-text-3`,children:y(t)})]}),(0,B.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,B.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,B.jsxs)(`span`,{role:`cell`,children:[(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`CPU `}),(0,B.jsx)(U,{wert:n?.cpu,gelb:85,rot:95})]}),(0,B.jsxs)(`span`,{role:`cell`,children:[(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Speicher `}),(0,B.jsx)(U,{wert:n?.ram,gelb:85,rot:95,zusatz:a})]}),(0,B.jsxs)(`span`,{role:`cell`,children:[(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Platte `}),(0,B.jsx)(U,{wert:r,gelb:80,rot:90})]}),(0,B.jsxs)(`span`,{role:`cell`,className:`ziffern text-sm text-text-2`,children:[(0,B.jsx)(`span`,{className:`font-sans text-xs text-text-3 md:hidden`,children:`Läuft seit `}),ae(n?.uptime_s)]})]},t.id)})]}),t[0]=r,t[1]=n,t[2]=a}else a=t[2];return a}function he(e,t){return W(e)-W(t)}function ge(e){return[e.id,e.aktuell]}function _e(e){let t=(0,z.c)(24),{lage:n,lampen:r,onAnsehen:a}=e,o=n.ziel!==null,s=!o,c=`${n.oben} ${n.mitte}`,l=E[n.art],u=o?`cursor-pointer`:`cursor-default`,d;t[0]!==l||t[1]!==u?(d=i(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,l,u),t[0]=l,t[1]=u,t[2]=d):d=t[2];let f;t[3]===n.oben?f=t[4]:(f=(0,B.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:n.oben}),t[3]=n.oben,t[4]=f);let p;t[5]===n.mitte?p=t[6]:(p=(0,B.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]=p);let m;t[7]===n.unten?m=t[8]:(m=(0,B.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:n.unten}),t[7]=n.unten,t[8]=m);let h;t[9]!==a||t[10]!==s||t[11]!==c||t[12]!==d||t[13]!==f||t[14]!==p||t[15]!==m?(h=(0,B.jsxs)(`button`,{type:`button`,onClick:a,disabled:s,"aria-label":c,className:d,children:[f,p,m]}),t[9]=a,t[10]=s,t[11]=c,t[12]=d,t[13]=f,t[14]=p,t[15]=m,t[16]=h):h=t[16];let g;t[17]===r?g=t[18]:(g=r.map(ve),t[17]=r,t[18]=g);let _;t[19]===g?_=t[20]:(_=(0,B.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:g}),t[19]=g,t[20]=_);let v;return t[21]!==_||t[22]!==h?(v=(0,B.jsxs)(`section`,{"aria-label":`Lage im Homelab`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[h,_]}),t[21]=_,t[22]=h,t[23]=v):v=t[23],v}function ve(e){return(0,B.jsx)(ue,{lampe:e},e.id)}var G=r(e(),1),K=(e,t=1)=>e.toFixed(t).replace(`.`,`,`);function q(e){return e==null?`–`:e>=0xe8d4a51000?`${K(e/0xe8d4a51000)} TB`:e>=1e10?`${Math.round(e/1e9)} GB`:`${K(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 J={ok:`in Ordnung`,gelb:`wird knapp`,rot:`fast voll`},Y={ok:`gruen`,gelb:`bernstein`,rot:`rot`,keine:`grau`},xe={ok:`var(--reihe-1)`,gelb:`var(--bernstein)`,rot:`var(--rot)`},X=e=>x(new Date(e*1e3).toISOString());function Z(e){let t=(0,z.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,B.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,B.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-y-0 left-[80%] w-px bg-bernstein/70`}),f=(0,B.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,B.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,z.c)(16),{titel:n,unter:r,chip:i,chipText:a,children:o}=e,s;t[0]===n?s=t[1]:(s=(0,B.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,B.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,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]!==i||t[8]!==a?(u=(0,B.jsx)(w,{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,B.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,B.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 Se(e){let t=(0,z.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=Y[n.stufe],c=J[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,B.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=q(n.belegt),t[6]=n.belegt,t[7]=f);let p;t[8]===n.gesamt?p=t[9]:(p=q(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=q(n.frei),t[12]=n.frei,t[13]=g);let _;t[14]!==h||t[15]!==g?(_=(0,B.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,B.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,B.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,B.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 Ce(e){let t=(0,z.c)(21),{s:n}=e,r=Y[n.stufe],i=J[n.stufe],a;t[0]!==n.anteil||t[1]!==n.stufe?(a=(0,B.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=q(n.belegt),t[5]=n.belegt,t[6]=s);let c;t[7]===n.gesamt?c=t[8]:(c=q(n.gesamt),t[7]=n.gesamt,t[8]=c);let l;t[9]===n.frei?l=t[10]:(l=q(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,B.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,B.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 we(e){let t=(0,z.c)(21),{n}=e,r=n.problem?n.stufe===`rot`?`gestört`:`unklar`:J[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=Y[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,B.jsx)(`p`,{className:i(`text-sm`,n.stufe===`rot`?`text-rot-text`:`text-bernstein`),children:n.problem}):n.anteil!==null&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Z,{anteil:n.anteil,stufe:n.stufe,name:`NAS ${n.server??``}`}),(0,B.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[Math.round(n.anteil*100),` % · `,q(n.belegt),` von `,q(n.gesamt),` · `,q((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,B.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,B.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 Te(e){let t=(0,z.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=Y[n.stufe],s;t[3]===n.probleme?s=t[4]:(s=n.probleme.map(De),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,B.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Alle `,n.erfasst,` Geräte gesichert`,n.zuletzt?(0,B.jsxs)(B.Fragment,{children:[`, zuletzt `,(0,B.jsx)(`span`,{className:`ziffern`,children:X(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,B.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm`,children:n.fehlend.map(Ee)}),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,B.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 Ee(e){return(0,B.jsxs)(`li`,{className:`text-bernstein`,children:[e.name,`: `,e.zuletzt?(0,B.jsxs)(B.Fragment,{children:[`zuletzt `,(0,B.jsx)(`span`,{className:`ziffern`,children:X(e.zuletzt)})]}):`noch nie gesichert`]},e.ziel)}function De(e){return(0,B.jsx)(`p`,{className:`text-sm text-rot-text`,children:e},e)}function Oe(e){let t=(0,z.c)(45),{daten:n,laeuft:r,gesperrt:i,onAktion:o,snapshotsLink:s}=e,c=r===void 0?null:r,l=i!==void 0&&i,[u,d]=(0,G.useState)(null),f;t[0]!==n.pools||t[1]!==n.systemplatte?.stufe?(f=n.pools.some(Me)||(n.systemplatte?.stufe??`ok`)!==`ok`,t[0]=n.pools,t[1]=n.systemplatte?.stufe,t[2]=f):f=t[2];let p=f,m,h,g;if(t[3]!==n.empfehlungen||t[4]!==n.nas||t[5]!==n.pools||t[6]!==n.sicherungen||t[7]!==n.systemplatte||t[8]!==l||t[9]!==p||t[10]!==c||t[11]!==o||t[12]!==s){let e=n.empfehlungen.reduce(je,0);m=`flex flex-col gap-4`;let r;t[16]===n.pools?r=t[17]:(r=n.pools.map(Ae),t[16]=n.pools,t[17]=r);let i;t[18]===n.systemplatte?i=t[19]:(i=n.systemplatte&&(0,B.jsx)(Ce,{s:n.systemplatte}),t[18]=n.systemplatte,t[19]=i);let u;t[20]===n.nas?u=t[21]:(u=n.nas.length>0?n.nas.map(ke):(0,B.jsx)(Q,{titel:`NAS`,chip:`grau`,chipText:`keins`,children:(0,B.jsx)(`p`,{className:`text-sm text-text-3`,children:`Auf dem Proxmox-Host ist kein Netzlaufwerk eingebunden.`})}),t[20]=n.nas,t[21]=u);let f;t[22]===n.sicherungen?f=t[23]:(f=(0,B.jsx)(Te,{s:n.sicherungen}),t[22]=n.sicherungen,t[23]=f),t[24]!==f||t[25]!==r||t[26]!==i||t[27]!==u?(h=(0,B.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2 2xl:grid-cols-4`,children:[r,i,u,f]}),t[24]=f,t[25]=r,t[26]=i,t[27]=u,t[28]=h):h=t[28],g=n.empfehlungen.length>0&&(0,B.jsxs)(`details`,{open:p,className:`group rounded-xl border border-linie bg-erhaben/40 px-4 open:pb-3`,children:[(0,B.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[(0,B.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,B.jsx)(a,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Was Platz bringt`]}),(0,B.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[n.empfehlungen.length,` `,n.empfehlungen.length===1?`Vorschlag`:`Vorschläge`,e>0&&` · bis zu ${q(e)}`]})]}),(0,B.jsx)(`ol`,{className:`flex flex-col`,children:n.empfehlungen.map(e=>(0,B.jsx)(Fe,{e,laeuft:c,gesperrt:l||!o,onFrage:d,verweis:e.art===`snapshot`?s:null},e.titel))})]}),t[3]=n.empfehlungen,t[4]=n.nas,t[5]=n.pools,t[6]=n.sicherungen,t[7]=n.systemplatte,t[8]=l,t[9]=p,t[10]=c,t[11]=o,t[12]=s,t[13]=m,t[14]=h,t[15]=g}else m=t[13],h=t[14],g=t[15];let _=!!u,v=u?`Proxmox-Host: ${u.label}`:``,y=u?.frage??``,b=u?.label??``,x;t[29]!==u||t[30]!==o?(x=()=>{u&&o&&o(u),d(null)},t[29]=u,t[30]=o,t[31]=x):x=t[31];let S;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>d(null),t[32]=S):S=t[32];let C;t[33]!==l||t[34]!==b||t[35]!==x||t[36]!==_||t[37]!==v||t[38]!==y?(C=(0,B.jsx)(F,{offen:_,titel:v,text:y,knopf:b,gesperrt:l,onJa:x,onNein:S}),t[33]=l,t[34]=b,t[35]=x,t[36]=_,t[37]=v,t[38]=y,t[39]=C):C=t[39];let w;return t[40]!==C||t[41]!==m||t[42]!==h||t[43]!==g?(w=(0,B.jsxs)(`div`,{className:m,children:[h,g,C]}),t[40]=C,t[41]=m,t[42]=h,t[43]=g,t[44]=w):w=t[44],w}function ke(e){return(0,B.jsx)(we,{n:e},e.ziel)}function Ae(e){return(0,B.jsx)(Se,{p:e},e.speicher)}function je(e,t){return e+(t.platz??0)}function Me(e){return e.stufe!==`ok`}var Ne={pool:`Speicherpool`,systemplatte:`Systemplatte des Hosts`};function Pe({text:e}){return e.split(/`([^`]+)`/).map((e,t)=>t%2==1?(0,B.jsx)(`code`,{className:`rounded bg-erhaben px-1 font-mono text-[13px] text-foreground [font-variant-ligatures:none]`,children:e},t):e)}function Fe(e){let t=(0,z.c)(24),{e:n,laeuft:r,gesperrt:i,onFrage:a,verweis:o}=e,s;t[0]===n.titel?s=t[1]:(s=(0,B.jsx)(`span`,{className:`text-[15px] font-medium break-words`,children:n.titel}),t[0]=n.titel,t[1]=s);let c;t[2]===n.platz?c=t[3]:(c=n.platz?`≈ ${q(n.platz)}`:`Größe unbekannt`,t[2]=n.platz,t[3]=c);let l;t[4]===c?l=t[5]:(l=(0,B.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:c}),t[4]=c,t[5]=l);let u;t[6]!==s||t[7]!==l?(u=(0,B.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[s,l]}),t[6]=s,t[7]=l,t[8]=u):u=t[8];let d;t[9]===n.ort?d=t[10]:(d=n.ort&&(0,B.jsx)(`span`,{className:`schild text-xs text-text-3`,children:Ne[n.ort]??n.ort}),t[9]=n.ort,t[10]=d);let f;t[11]===n.text?f=t[12]:(f=(0,B.jsx)(`p`,{className:`text-sm break-words text-text-2`,children:(0,B.jsx)(Pe,{text:n.text})}),t[11]=n.text,t[12]=f);let p;t[13]!==n.aktion||t[14]!==i||t[15]!==r||t[16]!==a?(p=n.aktion&&(r?(0,B.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,r]}):(0,B.jsx)(P,{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]=p):p=t[17];let m;return t[18]!==u||t[19]!==d||t[20]!==f||t[21]!==p||t[22]!==o?(m=(0,B.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie py-3 first:border-t-0 first:pt-1`,children:[u,d,f,o,p]}),t[18]=u,t[19]=d,t[20]=f,t[21]=p,t[22]=o,t[23]=m):m=t[23],m}var Ie={snapshot:`Snapshot`,sicherung:`Sicherung`,keiner:`kein Rückweg`};function Le(e){let t=(0,z.c)(24),{anzahl:n,gesperrt:r}=e,[i,a]=(0,G.useState)(!1),o=ee(i),s=C(),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,B.jsxs)(P,{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 _;t[7]!==i||t[8]!==s?(_=()=>{i&&(s.mutate(void 0),a(!1))},t[7]=i,t[8]=s,t[9]=_):_=t[9];let v;t[10]!==o.data||t[11]!==o.error||t[12]!==o.isPending||t[13]!==l?(v=o.isPending?(0,B.jsx)(`p`,{className:`text-sm text-text-2`,children:`Die Reihenfolge wird gelesen …`}):o.error?(0,B.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Der Plan lässt sich nicht lesen: `,o.error.message]}):(0,B.jsxs)(`div`,{className:`flex flex-col gap-2 pb-1`,children:[(0,B.jsx)(`ol`,{className:`m-0 flex list-none flex-col gap-1 p-0`,children:l.map(Re)}),o.data?.hinweis&&(0,B.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]=v):v=t[14];let y;t[15]!==i||t[16]!==v||t[17]!==m||t[18]!==h||t[19]!==_?(y=(0,B.jsx)(F,{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:_,children:v}),t[15]=i,t[16]=v,t[17]=m,t[18]=h,t[19]=_,t[20]=y):y=t[20];let b;return t[21]!==y||t[22]!==p?(b=(0,B.jsxs)(B.Fragment,{children:[p,y]}),t[21]=y,t[22]=p,t[23]=b):b=t[23],b}function Re(e,t){return(0,B.jsxs)(`li`,{className:`grid grid-cols-[1.5rem_minmax(0,1fr)_auto] items-baseline gap-2 text-sm`,children:[(0,B.jsxs)(`span`,{className:`ziffern text-text-3`,children:[t+1,`.`]}),(0,B.jsxs)(`span`,{className:`min-w-0`,children:[(0,B.jsx)(`span`,{className:`font-medium text-foreground`,children:e.name}),` `,(0,B.jsxs)(`span`,{className:`text-text-2`,children:[`· `,e.was]})]}),(0,B.jsx)(`span`,{className:i(`text-xs`,e.rueckweg_art===`keiner`?`text-bernstein`:`text-text-3`),children:Ie[e.rueckweg_art]})]},`${e.ziel}-${e.baustein}`)}var ze={wartet:{Symbol:de,farbe:`text-text-3`,text:`wartet`},laeuft:{Symbol:fe,farbe:`text-cyan`,text:`läuft`},eingespielt:{Symbol:oe,farbe:`text-gruen`,text:`eingespielt`},zurueckgerollt:{Symbol:s,farbe:`text-bernstein`,text:`zurückgerollt`},fehler:{Symbol:o,farbe:`text-rot`,text:`Fehler`},uebersprungen:{Symbol:pe,farbe:`text-text-3`,text:`übersprungen`}},Be={laeuft:{art:`cyan`,text:`läuft`},fertig:{art:`gruen`,text:`fertig`},abgebrochen:{art:`bernstein`,text:`abgebrochen`}};function Ve(e){let t=(0,z.c)(33),{lauf:n,onQuittieren:r}=e,i;t[0]===n.schritte?i=t[1]:(i=n.schritte.filter(Ue),t[0]=n.schritte,t[1]=i);let a=i.length,o=Be[n.status],s;t[2]!==a||t[3]!==n.schritte.length?(s=(0,B.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=x(new Date(n.start*1e3).toISOString()),t[5]=n.start,t[6]=c);let l;t[7]===c?l=t[8]:(l=(0,B.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,B.jsx)(w,{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,B.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,B.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,B.jsx)(`div`,{className:`h-1.5 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,B.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(He),t[20]=n.schritte,t[21]=h);let g;t[22]===h?g=t[23]:(g=(0,B.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,B.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n.text&&(0,B.jsx)(`p`,{className:`text-sm text-text-2`,children:n.text}),n.status!==`laeuft`&&r&&(0,B.jsx)(P,{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,B.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 He(e){let t=ze[e.status];return(0,B.jsxs)(`li`,{className:`flex items-start gap-2 text-sm`,children:[(0,B.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,B.jsxs)(`span`,{className:`min-w-0`,children:[(0,B.jsx)(`span`,{className:`text-foreground`,children:e.name}),` `,(0,B.jsxs)(`span`,{className:`text-text-3`,children:[`· `,e.was,` · `,t.text]}),e.text&&e.status!==`eingespielt`&&(0,B.jsx)(`span`,{className:`block text-xs text-text-3`,children:e.text})]})]},`${e.ziel}-${e.baustein}`)}function Ue(e){return![`wartet`,`laeuft`].includes(e.status)}var We=`md:grid-cols-[minmax(0,1.1fr)_minmax(0,1.3fr)_minmax(0,1fr)_minmax(0,0.9fr)_11.5rem]`;function Ge(e){let t=(0,z.c)(26),{ziel:n,b:r}=e;if(!r){let e=n.art===`proxmox-host`?p(n)?.installiert:null,r;return t[0]===e?r=t[1]:(r=e?(0,B.jsxs)(`span`,{className:`ziffern text-sm`,children:[`PVE `,e]}):(0,B.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?h(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,B.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,B.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,B.jsx)(`span`,{className:`font-sans text-xs text-gruen-text`,children:`aktuell`}),t[10]=r.zustand,t[11]=l);let u;t[12]===r.zustand?u=t[13]:(u=r.zustand===`unbekannt`&&(0,B.jsx)(`span`,{className:`font-sans text-xs text-text-3`,children:`unklar`}),t[12]=r.zustand,t[13]=u);let d;t[14]!==s||t[15]!==c||t[16]!==l||t[17]!==u?(d=(0,B.jsxs)(`span`,{className:`ziffern flex flex-wrap items-baseline gap-x-2 text-sm`,children:[s,c,l,u]}),t[14]=s,t[15]=c,t[16]=l,t[17]=u,t[18]=d):d=t[18];let f;t[19]!==r.aktion||t[20]!==r.grund||t[21]!==r.zustand?(f=r.zustand===`neu`&&!r.aktion&&r.grund&&(0,B.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]=f):f=t[22];let m;return t[23]!==d||t[24]!==f?(m=(0,B.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[d,f]}),t[23]=d,t[24]=f,t[25]=m):m=t[25],m}function Ke(e){let t=(0,z.c)(22),{b:n,onSuchen:r,gesperrt:i}=e;if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e):e=t[0],e}let a=n.id===`docker`,o;if(n.zustand===`neu`){let e=n.kurz||`Update bereit`,r;t[1]===e?r=t[2]:(r=(0,B.jsx)(`span`,{className:`text-cyan`,children:e}),t[1]=e,t[2]=r),o=r}else if(n.zustand===`aktuell`){let e=a?`Images aktuell`:`aktuell`,n;t[3]===e?n=t[4]:(n=(0,B.jsx)(`span`,{className:`text-gruen-text`,children:e}),t[3]=e,t[4]=n),o=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,s=a?`Images unklar`:`unklar`,c;t[7]===r?c=t[8]:(c=r&&(0,B.jsxs)(`span`,{className:`text-text-3`,children:[` · Listen vom `,r]}),t[7]=r,t[8]=c);let l;t[9]!==i||t[10]!==s||t[11]!==c?(l=(0,B.jsxs)(`span`,{className:`text-text-2`,title:i,children:[s,c]}),t[9]=i,t[10]=s,t[11]=c,t[12]=l):l=t[12],o=l}let s=n.zustand===`unbekannt`?n.aktion:null,l;t[13]===o?l=t[14]:(l=(0,B.jsx)(`span`,{className:`min-w-0`,children:o}),t[13]=o,t[14]=l);let u;t[15]!==i||t[16]!==r||t[17]!==s?(u=s&&(0,B.jsx)(P,{variant:`ghost`,size:`icon-sm`,className:`-my-2 shrink-0`,"aria-label":s.label,title:s.label,disabled:i,onClick:()=>r(s),children:(0,B.jsx)(c,{})}),t[15]=i,t[16]=r,t[17]=s,t[18]=u):u=t[18];let d;return t[19]!==l||t[20]!==u?(d=(0,B.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 qe={app:`App updaten`,os:`Pakete einspielen`,pakete:`Pakete einspielen`};function Je(e){let t=(0,z.c)(54),{ziel:n,laeuft:r,gesperrt:a,onFrage:o}=e,s;t[0]===n?s=t[1]:(s=f(n),t[0]=n,t[1]=s);let c=s,l;t[2]===n?l=t[3]:(l=p(n),t[2]=n,t[3]=l);let u=l,d,h,g,_,v,x,S,C,w;if(t[4]!==c||t[5]!==a||t[6]!==r||t[7]!==o||t[8]!==u||t[9]!==n){let e=n.bausteine.filter(Ye),s=m(n)>=2;x=`row`;let l=s&&`opacity-75`;t[19]===l?S=t[20]:(S=i(`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-linie py-3.5 md:items-center`,We,l),t[19]=l,t[20]=S);let f;t[21]===n.name?f=t[22]:(f=(0,B.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[21]=n.name,t[22]=f);let p;t[23]===n?p=t[24]:(p=y(n)!==n.name&&(0,B.jsx)(`span`,{className:`text-sm text-text-3`,children:y(n)}),t[23]=n,t[24]=p),t[25]!==f||t[26]!==p?(C=(0,B.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[f,p]}),t[25]=f,t[26]=p,t[27]=C):C=t[27];let T;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`App `}),t[28]=T):T=t[28],t[29]!==c||t[30]!==n?(w=(0,B.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[T,(0,B.jsx)(Ge,{ziel:n,b:c})]}),t[29]=c,t[30]=n,t[31]=w):w=t[31];let E;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Pakete `}),t[32]=E):E=t[32];let D=a||!!r,O;t[33]!==o||t[34]!==n?(O=e=>o({ziel:n,aktion:e}),t[33]=o,t[34]=n,t[35]=O):O=t[35],t[36]!==u||t[37]!==D||t[38]!==O?(d=(0,B.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[E,(0,B.jsx)(Ke,{b:u,gesperrt:D,onSuchen:O})]}),t[36]=u,t[37]=D,t[38]=O,t[39]=d):d=t[39];let k=e.length?b(n):``;t[40]===k?h=t[41]:(h=(0,B.jsx)(`span`,{role:`cell`,className:`text-sm text-text-3`,children:k}),t[40]=k,t[41]=h),g=`cell`,_=`flex flex-wrap gap-2 md:flex-col md:items-stretch`,v=r?(0,B.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,r]}):e.map(e=>(0,B.jsx)(P,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>e.aktion&&o({ziel:n,aktion:e.aktion}),children:qe[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]=d,t[11]=h,t[12]=g,t[13]=_,t[14]=v,t[15]=x,t[16]=S,t[17]=C,t[18]=w}else d=t[10],h=t[11],g=t[12],_=t[13],v=t[14],x=t[15],S=t[16],C=t[17],w=t[18];let T;t[42]!==g||t[43]!==_||t[44]!==v?(T=(0,B.jsx)(`span`,{role:g,className:_,children:v}),t[42]=g,t[43]=_,t[44]=v,t[45]=T):T=t[45];let E;return t[46]!==d||t[47]!==h||t[48]!==T||t[49]!==x||t[50]!==S||t[51]!==C||t[52]!==w?(E=(0,B.jsxs)(`div`,{role:x,className:S,children:[C,w,d,h,T]}),t[46]=d,t[47]=h,t[48]=T,t[49]=x,t[50]=S,t[51]=C,t[52]=w,t[53]=E):E=t[53],E}function Ye(e){return e.zustand===`neu`&&e.aktion}function Xe(e){let t=(0,z.c)(42),{ziele:n,laufend:r,gesperrt:a,onAktion:o}=e,[s,c]=(0,G.useState)(null),l,u,d,f,p,m;if(t[0]!==a||t[1]!==r||t[2]!==n){let e=[...n].sort(Qe),o;t[9]===n?o=t[10]:(o=n.filter(Ze),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,B.jsxs)(`div`,{role:`row`,className:i(`schild hidden gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,We),children:[(0,B.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`App`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Pakete`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Rückweg`}),(0,B.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,B.jsx)(Je,{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,B.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,B.jsx)(w,{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 T;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>c(null),t[29]=T):T=t[29];let E;t[30]!==a||t[31]!==y||t[32]!==b||t[33]!==S||t[34]!==C||t[35]!==_||t[36]!==v?(E=(0,B.jsx)(F,{offen:_,titel:v,text:y,knopf:b,gefahr:S,gesperrt:a,onJa:C,onNein:T}),t[30]=a,t[31]=y,t[32]=b,t[33]=S,t[34]=C,t[35]=_,t[36]=v,t[37]=E):E=t[37];let D;return t[38]!==E||t[39]!==h||t[40]!==g?(D=(0,B.jsxs)(B.Fragment,{children:[h,g,E]}),t[38]=E,t[39]=h,t[40]=g,t[41]=D):D=t[41],D}function Ze(e){return m(e)===3}function Qe(e,t){return m(e)-m(t)}var $e=[`Proxmox-Host`,`AdGuard`,`NPMplus`,`NetBird`,`PVE Scripts Local`,`Gitea`,`PBS`,`Arcane mit Docker`],et={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`},offen:{art:`cyan`,text:`Probelauf`}},$=e=>x(new Date(e*1e3).toISOString());function tt(){let e=(0,z.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:$e.map(nt)})]}),(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 nt(e){return(0,B.jsx)(`li`,{children:(0,B.jsx)(w,{children:e})},e)}function rt(e){let t=(0,z.c)(9),{partner:n}=e,r;t[0]===n.eingerichtet?r=t[1]:(r=n.eingerichtet?(0,B.jsx)(w,{art:`rot`,children:`Antwortet nicht`}):(0,B.jsx)(w,{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)(tt,{}),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)(k,{titel:`Homelab`,rechts:i,children:a}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function it(e){let t=(0,z.c)(10),{hinweise:n}=e,r=n.some(ot)?`rot`:`bernstein`,i;t[0]!==n.length||t[1]!==r?(i=(0,B.jsxs)(w,{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(at),t[3]=n,t[4]=a);let o;t[5]===a?o=t[6]:(o=(0,B.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,B.jsx)(k,{titel:`Hinweise`,id:`hinweise`,rechts:i,children:o}),t[7]=i,t[8]=o,t[9]=s):s=t[9],s}function at(e){return(0,B.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie py-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 ot(e){return e.stufe===`rot`}function st(e){let t=(0,z.c)(8),{laeufe:n}=e,r,i,a;if(t[0]!==n){a=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(lt).slice(0,12);if(e.length===0){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.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(ct)}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,B.jsx)(`ol`,{className:r,children:i}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function ct(e){let t=e.ergebnis?et[e.ergebnis]??{art:`grau`,text:e.ergebnis}:{art:`grau`,text:`unterbrochen`};return(0,B.jsxs)(`li`,{className:`flex flex-col gap-1.5 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,B.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,B.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:$(e.start)}),(0,B.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,B.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,B.jsx)(w,{art:t.art,children:t.text})})]}),e.text&&(0,B.jsx)(`p`,{className:`m-0 text-sm text-text-2 @sm:pl-[124px]`,children:e.text})]},e.id)}function lt(e){return e.status!==`laeuft`&&!j(e)}function ut(e){let t=(0,z.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,B.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,B.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,B.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 dt(){let e=(0,z.c)(20),t=O(),n=se(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=D(r),a=l(r),o=S(r),s=_(),c=null;if(t.isPending||n.isPending){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(d,{text:`Wird gelesen …`}),e[0]=t):t=e[0],c=t}else if(!r){let t;e[1]!==n.data||e[2]!==n.error?.message?(t=n.data?(0,B.jsx)(rt,{partner:n.data}):(0,B.jsx)(d,{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],c=t}else if(i.isPending){let t;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(d,{text:`Der Homelab-Teil meldet sich gleich …`}),e[4]=t):t=e[4],c=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,B.jsx)(d,{fehler:!0,text:t}),e[5]=t,e[6]=n),c=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 f;e[9]===a.data?.laeufe?f=e[10]:(f=a.data?.laeufe??[],e[9]=a.data?.laeufe,e[10]=f);let p;e[11]===o.data?.hinweise?p=e[12]:(p=o.data?.hinweise??[],e[11]=o.data?.hinweise,e[12]=p);let m;return e[13]!==s||e[14]!==c||e[15]!==i.data||e[16]!==u||e[17]!==f||e[18]!==p?(m={ersatz:c,stand:i.data,laufend:u,laeufe:f,hinweise:p,aktion:s},e[13]=s,e[14]=c,e[15]=i.data,e[16]=u,e[17]=f,e[18]=p,e[19]=m):m=e[19],m}function ft(){let e=(0,z.c)(49),t=te(),{ersatz:n,stand:r,laufend:i,laeufe:a,hinweise:o,aktion:s}=dt(),c=ne(`1h`,!!r),l=ce(!!r);if(n||!r)return n;let d,f,p;if(e[0]!==o||e[1]!==a||e[2]!==r){d=r.bericht?$(r.bericht.empfangen):null;let t;e[6]===a?t=e[7]:(t=new Set(a.filter(mt).map(pt)),e[6]=a,e[7]=t),f=t,p=ie(r,o,f.size,d),e[0]=o,e[1]=a,e[2]=r,e[3]=d,e[4]=f,e[5]=p}else d=e[3],f=e[4],p=e[5];let m=p,h;if(e[8]!==f||e[9]!==r.ziele){let t;e[11]===f?t=e[12]:(t=e=>u(e,f.has(e.id)),e[11]=f,e[12]=t),h=r.ziele.map(t),e[8]=f,e[9]=r.ziele,e[10]=h}else h=e[10];let g;e[13]!==m.ziel||e[14]!==t?(g=()=>{m.ziel===`updates`?t({to:`/homelab/updates`}):m.ziel&&document.getElementById(m.ziel)?.scrollIntoView({behavior:`smooth`,block:`start`})},e[13]=m.ziel,e[14]=t,e[15]=g):g=e[15];let _;e[16]!==m||e[17]!==h||e[18]!==g?(_=(0,B.jsx)(_e,{lage:m,lampen:h,onAnsehen:g}),e[16]=m,e[17]=h,e[18]=g,e[19]=_):_=e[19];let v;e[20]===r?v=e[21]:(v=(0,B.jsx)(ut,{stand:r}),e[20]=r,e[21]=v);let y;e[22]===o?y=e[23]:(y=o.length>0&&(0,B.jsx)(it,{hinweise:o}),e[22]=o,e[23]=y);let b;e[24]===d?b=e[25]:(b=d&&(0,B.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,d]}),e[24]=d,e[25]=b);let x;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,B.jsxs)(N,{to:`/homelab/monitoring`,className:`inline-flex items-center gap-1 text-sm text-lab-text hover:underline`,children:[`Monitoring `,(0,B.jsx)(M,{className:`size-3.5`,"aria-hidden":!0})]}),e[26]=x):x=e[26];let S;e[27]===b?S=e[28]:(S=(0,B.jsxs)(`span`,{className:`flex items-center gap-3`,children:[b,x]}),e[27]=b,e[28]=S);let C=c.data?.geraete,w;e[29]!==r.ziele||e[30]!==C?(w=(0,B.jsx)(me,{ziele:r.ziele,messwerte:C}),e[29]=r.ziele,e[30]=C,e[31]=w):w=e[31];let T;e[32]===c.isError?T=e[33]:(T=c.isError&&(0,B.jsx)(`p`,{className:`text-xs text-text-3`,children:`CPU und Speicher erscheinen, sobald der Ausführer Messwerte schickt.`}),e[32]=c.isError,e[33]=T);let E;e[34]!==w||e[35]!==T||e[36]!==S?(E=(0,B.jsxs)(k,{titel:`Geräte`,id:`geraete`,rechts:S,children:[w,T]}),e[34]=w,e[35]=T,e[36]=S,e[37]=E):E=e[37];let D;e[38]!==s||e[39]!==i||e[40]!==l.data||e[41]!==r.ausfuehrer?(D=l.data?.bericht&&(0,B.jsx)(k,{titel:`Speicher und Sicherungen`,id:`speicher`,children:(0,B.jsx)(Oe,{daten:l.data,laeuft:i.get(`pve`)??null,gesperrt:s.isPending||i.has(`pve`)||!r.ausfuehrer.verbunden,onAktion:e=>s.mutate(e),snapshotsLink:(0,B.jsxs)(N,{to:`/homelab/snapshots`,className:`inline-flex min-h-10 items-center gap-1 self-start text-sm text-lab-text hover:underline`,children:[`Zu den Snapshots `,(0,B.jsx)(M,{className:`size-3.5`,"aria-hidden":!0})]})})}),e[38]=s,e[39]=i,e[40]=l.data,e[41]=r.ausfuehrer,e[42]=D):D=e[42];let O;return e[43]!==E||e[44]!==D||e[45]!==_||e[46]!==v||e[47]!==y?(O=(0,B.jsxs)(B.Fragment,{children:[_,v,y,E,D]}),e[43]=E,e[44]=D,e[45]=_,e[46]=v,e[47]=y,e[48]=O):O=e[48],O}function pt(e){return e.ziel}function mt(e){return e.status===`laeuft`&&!j(e)}function ht(){let e=(0,z.c)(30),{ersatz:t,stand:n,laufend:r,laeufe:i,aktion:a}=dt(),o=le(!!n),s=T();if(t||!n)return t;let c=o.data?.sammellauf??null,l=c?.status===`laeuft`,u;e[0]===n.ziele?u=e[1]:(u=g(n.ziele).filter(gt),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,B.jsx)(Le,{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,B.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,B.jsx)(ut,{stand:n}),e[6]=n,e[7]=h);let _;e[8]!==c||e[9]!==s||e[10]!==l||e[11]!==n.bericht?.empfangen?(_=c&&(l||c.ende&&(n.bericht?.empfangen??0)-c.ende<21600)&&(0,B.jsx)(Ve,{lauf:c,onQuittieren:()=>s.mutate(c.id)}),e[8]=c,e[9]=s,e[10]=l,e[11]=n.bericht?.empfangen,e[12]=_):_=e[12];let v=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]!==v||e[18]!==y?(b=(0,B.jsx)(Xe,{ziele:n.ziele,laufend:r,gesperrt:v,onAktion:y}),e[15]=r,e[16]=n.ziele,e[17]=v,e[18]=y,e[19]=b):b=e[19];let x;e[20]!==p||e[21]!==h||e[22]!==_||e[23]!==b?(x=(0,B.jsxs)(k,{titel:`Updates`,rechts:p,children:[m,h,_,b]}),e[20]=p,e[21]=h,e[22]=_,e[23]=b,e[24]=x):x=e[24];let S;e[25]===i?S=e[26]:(S=(0,B.jsx)(k,{titel:`Verlauf`,children:(0,B.jsx)(st,{laeufe:i})}),e[25]=i,e[26]=S);let C;return e[27]!==S||e[28]!==x?(C=(0,B.jsxs)(B.Fragment,{children:[x,S]}),e[27]=S,e[28]=x,e[29]=C):C=e[29],C}function gt(e){return e.baustein.aktion}export{ft as HomelabSeite,ht as HomelabUpdatesSeite}; \ No newline at end of file +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-lErM2U6o.js";import{n as o,t as s}from"./undo-2-CJEVZ3Al.js";import{t as c}from"./search-DDxMRsny.js";import{$ as l,A as u,C as d,D as f,F as p,I as m,L as h,M as g,Mt as _,N as v,O as y,P as b,Pt as x,Q as S,R as C,S as w,St as T,Ut as E,X as D,at as O,b as k,bt as ee,cn as A,dn as te,et as ne,i as j,j as re,k as ie,m as ae,on as oe,pt as se,rt as ce,sn as M,un as N,xt as le}from"./index-CKWhFN2A.js";import{t as P}from"./button-D8rvET0Z.js";import{t as F}from"./Bestaetigen-CMlebyiw.js";import{t as ue}from"./Lampe-gSQfYg4e.js";var I={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`}]]};I.node;var de=A(I),L={name:`loader-circle`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]],aliases:[`loader-2`]};L.node;var fe=A(L),R={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`}]]};R.node;var pe=A(R),z=t(),B=n(),V=`md:grid-cols-[minmax(0,1.3fr)_110px_minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,1fr)_90px]`,H=e=>(e/1e9).toFixed(1).replace(`.`,`,`);function U(e){let t=(0,z.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,B.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,B.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,B.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,B.jsx)(`span`,{className:`h-1.5 w-full max-w-40 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,B.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,B.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 W(e){if(e.erreichbar===!1)return 0;let t=v(e);return t!==null&&t>=.8?1:e.art===`proxmox-host`?2:3}function me(e){let t=(0,z.c)(4),{ziele:n,messwerte:r}=e,a;if(t[0]!==r||t[1]!==n){let e=new Map((r??[]).map(ge)),o=[...n].sort(he),s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,B.jsxs)(`div`,{role:`row`,className:i(`schild hidden gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,V),children:[(0,B.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Netz`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`CPU`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Speicher`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Platte`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Läuft seit`})]}),t[3]=s):s=t[3],a=(0,B.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??(v(t)===null?null:v(t)*100),a=n?.ram_used&&n.ram_total?`${H(n.ram_used)} / ${H(n.ram_total)} GB`:void 0;return(0,B.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`,V),children:[(0,B.jsxs)(`div`,{role:`rowheader`,className:`col-span-2 flex min-w-0 flex-col md:col-span-1`,children:[(0,B.jsx)(N,{to:`/homelab/monitoring`,hash:t.id,className:`text-[15px] font-semibold break-words hover:text-lab-text`,children:t.name}),y(t)!==t.name&&(0,B.jsx)(`span`,{className:`text-sm text-text-3`,children:y(t)})]}),(0,B.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,B.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,B.jsxs)(`span`,{role:`cell`,children:[(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`CPU `}),(0,B.jsx)(U,{wert:n?.cpu,gelb:85,rot:95})]}),(0,B.jsxs)(`span`,{role:`cell`,children:[(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Speicher `}),(0,B.jsx)(U,{wert:n?.ram,gelb:85,rot:95,zusatz:a})]}),(0,B.jsxs)(`span`,{role:`cell`,children:[(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Platte `}),(0,B.jsx)(U,{wert:r,gelb:80,rot:90})]}),(0,B.jsxs)(`span`,{role:`cell`,className:`ziffern text-sm text-text-2`,children:[(0,B.jsx)(`span`,{className:`font-sans text-xs text-text-3 md:hidden`,children:`Läuft seit `}),ae(n?.uptime_s)]})]},t.id)})]}),t[0]=r,t[1]=n,t[2]=a}else a=t[2];return a}function he(e,t){return W(e)-W(t)}function ge(e){return[e.id,e.aktuell]}function _e(e){let t=(0,z.c)(24),{lage:n,lampen:r,onAnsehen:a}=e,o=n.ziel!==null,s=!o,c=`${n.oben} ${n.mitte}`,l=E[n.art],u=o?`cursor-pointer`:`cursor-default`,d;t[0]!==l||t[1]!==u?(d=i(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,l,u),t[0]=l,t[1]=u,t[2]=d):d=t[2];let f;t[3]===n.oben?f=t[4]:(f=(0,B.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:n.oben}),t[3]=n.oben,t[4]=f);let p;t[5]===n.mitte?p=t[6]:(p=(0,B.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]=p);let m;t[7]===n.unten?m=t[8]:(m=(0,B.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:n.unten}),t[7]=n.unten,t[8]=m);let h;t[9]!==a||t[10]!==s||t[11]!==c||t[12]!==d||t[13]!==f||t[14]!==p||t[15]!==m?(h=(0,B.jsxs)(`button`,{type:`button`,onClick:a,disabled:s,"aria-label":c,className:d,children:[f,p,m]}),t[9]=a,t[10]=s,t[11]=c,t[12]=d,t[13]=f,t[14]=p,t[15]=m,t[16]=h):h=t[16];let g;t[17]===r?g=t[18]:(g=r.map(ve),t[17]=r,t[18]=g);let _;t[19]===g?_=t[20]:(_=(0,B.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:g}),t[19]=g,t[20]=_);let v;return t[21]!==_||t[22]!==h?(v=(0,B.jsxs)(`section`,{"aria-label":`Lage im Homelab`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[h,_]}),t[21]=_,t[22]=h,t[23]=v):v=t[23],v}function ve(e){return(0,B.jsx)(ue,{lampe:e},e.id)}var G=r(e(),1),K=(e,t=1)=>e.toFixed(t).replace(`.`,`,`);function q(e){return e==null?`–`:e>=0xe8d4a51000?`${K(e/0xe8d4a51000)} TB`:e>=1e10?`${Math.round(e/1e9)} GB`:`${K(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 J={ok:`in Ordnung`,gelb:`wird knapp`,rot:`fast voll`},Y={ok:`gruen`,gelb:`bernstein`,rot:`rot`,keine:`grau`},xe={ok:`var(--reihe-1)`,gelb:`var(--bernstein)`,rot:`var(--rot)`},X=e=>x(new Date(e*1e3).toISOString());function Z(e){let t=(0,z.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,B.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,B.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-y-0 left-[80%] w-px bg-bernstein/70`}),f=(0,B.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,B.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,z.c)(16),{titel:n,unter:r,chip:i,chipText:a,children:o}=e,s;t[0]===n?s=t[1]:(s=(0,B.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,B.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,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]!==i||t[8]!==a?(u=(0,B.jsx)(w,{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,B.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,B.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 Se(e){let t=(0,z.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=Y[n.stufe],c=J[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,B.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=q(n.belegt),t[6]=n.belegt,t[7]=f);let p;t[8]===n.gesamt?p=t[9]:(p=q(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=q(n.frei),t[12]=n.frei,t[13]=g);let _;t[14]!==h||t[15]!==g?(_=(0,B.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,B.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,B.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,B.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 Ce(e){let t=(0,z.c)(21),{s:n}=e,r=Y[n.stufe],i=J[n.stufe],a;t[0]!==n.anteil||t[1]!==n.stufe?(a=(0,B.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=q(n.belegt),t[5]=n.belegt,t[6]=s);let c;t[7]===n.gesamt?c=t[8]:(c=q(n.gesamt),t[7]=n.gesamt,t[8]=c);let l;t[9]===n.frei?l=t[10]:(l=q(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,B.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,B.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 we(e){let t=(0,z.c)(21),{n}=e,r=n.problem?n.stufe===`rot`?`gestört`:`unklar`:J[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=Y[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,B.jsx)(`p`,{className:i(`text-sm`,n.stufe===`rot`?`text-rot-text`:`text-bernstein`),children:n.problem}):n.anteil!==null&&(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Z,{anteil:n.anteil,stufe:n.stufe,name:`NAS ${n.server??``}`}),(0,B.jsxs)(`p`,{className:`ziffern text-sm text-text-2`,children:[Math.round(n.anteil*100),` % · `,q(n.belegt),` von `,q(n.gesamt),` · `,q((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,B.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,B.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 Te(e){let t=(0,z.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=Y[n.stufe],s;t[3]===n.probleme?s=t[4]:(s=n.probleme.map(De),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,B.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Alle `,n.erfasst,` Geräte gesichert`,n.zuletzt?(0,B.jsxs)(B.Fragment,{children:[`, zuletzt `,(0,B.jsx)(`span`,{className:`ziffern`,children:X(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,B.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm`,children:n.fehlend.map(Ee)}),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,B.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 Ee(e){return(0,B.jsxs)(`li`,{className:`text-bernstein`,children:[e.name,`: `,e.zuletzt?(0,B.jsxs)(B.Fragment,{children:[`zuletzt `,(0,B.jsx)(`span`,{className:`ziffern`,children:X(e.zuletzt)})]}):`noch nie gesichert`]},e.ziel)}function De(e){return(0,B.jsx)(`p`,{className:`text-sm text-rot-text`,children:e},e)}function Oe(e){let t=(0,z.c)(45),{daten:n,laeuft:r,gesperrt:i,onAktion:o,snapshotsLink:s}=e,c=r===void 0?null:r,l=i!==void 0&&i,[u,d]=(0,G.useState)(null),f;t[0]!==n.pools||t[1]!==n.systemplatte?.stufe?(f=n.pools.some(Me)||(n.systemplatte?.stufe??`ok`)!==`ok`,t[0]=n.pools,t[1]=n.systemplatte?.stufe,t[2]=f):f=t[2];let p=f,m,h,g;if(t[3]!==n.empfehlungen||t[4]!==n.nas||t[5]!==n.pools||t[6]!==n.sicherungen||t[7]!==n.systemplatte||t[8]!==l||t[9]!==p||t[10]!==c||t[11]!==o||t[12]!==s){let e=n.empfehlungen.reduce(je,0);m=`flex flex-col gap-4`;let r;t[16]===n.pools?r=t[17]:(r=n.pools.map(Ae),t[16]=n.pools,t[17]=r);let i;t[18]===n.systemplatte?i=t[19]:(i=n.systemplatte&&(0,B.jsx)(Ce,{s:n.systemplatte}),t[18]=n.systemplatte,t[19]=i);let u;t[20]===n.nas?u=t[21]:(u=n.nas.length>0?n.nas.map(ke):(0,B.jsx)(Q,{titel:`NAS`,chip:`grau`,chipText:`keins`,children:(0,B.jsx)(`p`,{className:`text-sm text-text-3`,children:`Auf dem Proxmox-Host ist kein Netzlaufwerk eingebunden.`})}),t[20]=n.nas,t[21]=u);let f;t[22]===n.sicherungen?f=t[23]:(f=(0,B.jsx)(Te,{s:n.sicherungen}),t[22]=n.sicherungen,t[23]=f),t[24]!==f||t[25]!==r||t[26]!==i||t[27]!==u?(h=(0,B.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2 2xl:grid-cols-4`,children:[r,i,u,f]}),t[24]=f,t[25]=r,t[26]=i,t[27]=u,t[28]=h):h=t[28],g=n.empfehlungen.length>0&&(0,B.jsxs)(`details`,{open:p,className:`group rounded-xl border border-linie bg-erhaben/40 px-4 open:pb-3`,children:[(0,B.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[(0,B.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,B.jsx)(a,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Was Platz bringt`]}),(0,B.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[n.empfehlungen.length,` `,n.empfehlungen.length===1?`Vorschlag`:`Vorschläge`,e>0&&` · bis zu ${q(e)}`]})]}),(0,B.jsx)(`ol`,{className:`flex flex-col`,children:n.empfehlungen.map(e=>(0,B.jsx)(Fe,{e,laeuft:c,gesperrt:l||!o,onFrage:d,verweis:e.art===`snapshot`?s:null},e.titel))})]}),t[3]=n.empfehlungen,t[4]=n.nas,t[5]=n.pools,t[6]=n.sicherungen,t[7]=n.systemplatte,t[8]=l,t[9]=p,t[10]=c,t[11]=o,t[12]=s,t[13]=m,t[14]=h,t[15]=g}else m=t[13],h=t[14],g=t[15];let _=!!u,v=u?`Proxmox-Host: ${u.label}`:``,y=u?.frage??``,b=u?.label??``,x;t[29]!==u||t[30]!==o?(x=()=>{u&&o&&o(u),d(null)},t[29]=u,t[30]=o,t[31]=x):x=t[31];let S;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>d(null),t[32]=S):S=t[32];let C;t[33]!==l||t[34]!==b||t[35]!==x||t[36]!==_||t[37]!==v||t[38]!==y?(C=(0,B.jsx)(F,{offen:_,titel:v,text:y,knopf:b,gesperrt:l,onJa:x,onNein:S}),t[33]=l,t[34]=b,t[35]=x,t[36]=_,t[37]=v,t[38]=y,t[39]=C):C=t[39];let w;return t[40]!==C||t[41]!==m||t[42]!==h||t[43]!==g?(w=(0,B.jsxs)(`div`,{className:m,children:[h,g,C]}),t[40]=C,t[41]=m,t[42]=h,t[43]=g,t[44]=w):w=t[44],w}function ke(e){return(0,B.jsx)(we,{n:e},e.ziel)}function Ae(e){return(0,B.jsx)(Se,{p:e},e.speicher)}function je(e,t){return e+(t.platz??0)}function Me(e){return e.stufe!==`ok`}var Ne={pool:`Speicherpool`,systemplatte:`Systemplatte des Hosts`};function Pe({text:e}){return e.split(/`([^`]+)`/).map((e,t)=>t%2==1?(0,B.jsx)(`code`,{className:`rounded bg-erhaben px-1 font-mono text-[13px] text-foreground [font-variant-ligatures:none]`,children:e},t):e)}function Fe(e){let t=(0,z.c)(24),{e:n,laeuft:r,gesperrt:i,onFrage:a,verweis:o}=e,s;t[0]===n.titel?s=t[1]:(s=(0,B.jsx)(`span`,{className:`text-[15px] font-medium break-words`,children:n.titel}),t[0]=n.titel,t[1]=s);let c;t[2]===n.platz?c=t[3]:(c=n.platz?`≈ ${q(n.platz)}`:`Größe unbekannt`,t[2]=n.platz,t[3]=c);let l;t[4]===c?l=t[5]:(l=(0,B.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:c}),t[4]=c,t[5]=l);let u;t[6]!==s||t[7]!==l?(u=(0,B.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[s,l]}),t[6]=s,t[7]=l,t[8]=u):u=t[8];let d;t[9]===n.ort?d=t[10]:(d=n.ort&&(0,B.jsx)(`span`,{className:`schild text-xs text-text-3`,children:Ne[n.ort]??n.ort}),t[9]=n.ort,t[10]=d);let f;t[11]===n.text?f=t[12]:(f=(0,B.jsx)(`p`,{className:`text-sm break-words text-text-2`,children:(0,B.jsx)(Pe,{text:n.text})}),t[11]=n.text,t[12]=f);let p;t[13]!==n.aktion||t[14]!==i||t[15]!==r||t[16]!==a?(p=n.aktion&&(r?(0,B.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,r]}):(0,B.jsx)(P,{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]=p):p=t[17];let m;return t[18]!==u||t[19]!==d||t[20]!==f||t[21]!==p||t[22]!==o?(m=(0,B.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie py-3 first:border-t-0 first:pt-1`,children:[u,d,f,o,p]}),t[18]=u,t[19]=d,t[20]=f,t[21]=p,t[22]=o,t[23]=m):m=t[23],m}var Ie={snapshot:`Snapshot`,sicherung:`Sicherung`,keiner:`kein Rückweg`};function Le(e){let t=(0,z.c)(24),{anzahl:n,gesperrt:r}=e,[i,a]=(0,G.useState)(!1),o=ee(i),s=C(),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,B.jsxs)(P,{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 _;t[7]!==i||t[8]!==s?(_=()=>{i&&(s.mutate(void 0),a(!1))},t[7]=i,t[8]=s,t[9]=_):_=t[9];let v;t[10]!==o.data||t[11]!==o.error||t[12]!==o.isPending||t[13]!==l?(v=o.isPending?(0,B.jsx)(`p`,{className:`text-sm text-text-2`,children:`Die Reihenfolge wird gelesen …`}):o.error?(0,B.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Der Plan lässt sich nicht lesen: `,o.error.message]}):(0,B.jsxs)(`div`,{className:`flex flex-col gap-2 pb-1`,children:[(0,B.jsx)(`ol`,{className:`m-0 flex list-none flex-col gap-1 p-0`,children:l.map(Re)}),o.data?.hinweis&&(0,B.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]=v):v=t[14];let y;t[15]!==i||t[16]!==v||t[17]!==m||t[18]!==h||t[19]!==_?(y=(0,B.jsx)(F,{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:_,children:v}),t[15]=i,t[16]=v,t[17]=m,t[18]=h,t[19]=_,t[20]=y):y=t[20];let b;return t[21]!==y||t[22]!==p?(b=(0,B.jsxs)(B.Fragment,{children:[p,y]}),t[21]=y,t[22]=p,t[23]=b):b=t[23],b}function Re(e,t){return(0,B.jsxs)(`li`,{className:`grid grid-cols-[1.5rem_minmax(0,1fr)_auto] items-baseline gap-2 text-sm`,children:[(0,B.jsxs)(`span`,{className:`ziffern text-text-3`,children:[t+1,`.`]}),(0,B.jsxs)(`span`,{className:`min-w-0`,children:[(0,B.jsx)(`span`,{className:`font-medium text-foreground`,children:e.name}),` `,(0,B.jsxs)(`span`,{className:`text-text-2`,children:[`· `,e.was]})]}),(0,B.jsx)(`span`,{className:i(`text-xs`,e.rueckweg_art===`keiner`?`text-bernstein`:`text-text-3`),children:Ie[e.rueckweg_art]})]},`${e.ziel}-${e.baustein}`)}var ze={wartet:{Symbol:de,farbe:`text-text-3`,text:`wartet`},laeuft:{Symbol:fe,farbe:`text-cyan`,text:`läuft`},eingespielt:{Symbol:oe,farbe:`text-gruen`,text:`eingespielt`},zurueckgerollt:{Symbol:s,farbe:`text-bernstein`,text:`zurückgerollt`},fehler:{Symbol:o,farbe:`text-rot`,text:`Fehler`},uebersprungen:{Symbol:pe,farbe:`text-text-3`,text:`übersprungen`}},Be={laeuft:{art:`cyan`,text:`läuft`},fertig:{art:`gruen`,text:`fertig`},abgebrochen:{art:`bernstein`,text:`abgebrochen`}};function Ve(e){let t=(0,z.c)(33),{lauf:n,onQuittieren:r}=e,i;t[0]===n.schritte?i=t[1]:(i=n.schritte.filter(Ue),t[0]=n.schritte,t[1]=i);let a=i.length,o=Be[n.status],s;t[2]!==a||t[3]!==n.schritte.length?(s=(0,B.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=x(new Date(n.start*1e3).toISOString()),t[5]=n.start,t[6]=c);let l;t[7]===c?l=t[8]:(l=(0,B.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,B.jsx)(w,{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,B.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,B.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,B.jsx)(`div`,{className:`h-1.5 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,B.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(He),t[20]=n.schritte,t[21]=h);let g;t[22]===h?g=t[23]:(g=(0,B.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,B.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n.text&&(0,B.jsx)(`p`,{className:`text-sm text-text-2`,children:n.text}),n.status!==`laeuft`&&r&&(0,B.jsx)(P,{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,B.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 He(e){let t=ze[e.status];return(0,B.jsxs)(`li`,{className:`flex items-start gap-2 text-sm`,children:[(0,B.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,B.jsxs)(`span`,{className:`min-w-0`,children:[(0,B.jsx)(`span`,{className:`text-foreground`,children:e.name}),` `,(0,B.jsxs)(`span`,{className:`text-text-3`,children:[`· `,e.was,` · `,t.text]}),e.text&&e.status!==`eingespielt`&&(0,B.jsx)(`span`,{className:`block text-xs text-text-3`,children:e.text})]})]},`${e.ziel}-${e.baustein}`)}function Ue(e){return![`wartet`,`laeuft`].includes(e.status)}var We=`md:grid-cols-[minmax(0,1.1fr)_minmax(0,1.3fr)_minmax(0,1fr)_minmax(0,0.9fr)_11.5rem]`;function Ge(e){let t=(0,z.c)(26),{ziel:n,b:r}=e;if(!r){let e=n.art===`proxmox-host`?p(n)?.installiert:null,r;return t[0]===e?r=t[1]:(r=e?(0,B.jsxs)(`span`,{className:`ziffern text-sm`,children:[`PVE `,e]}):(0,B.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?h(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,B.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,B.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,B.jsx)(`span`,{className:`font-sans text-xs text-gruen-text`,children:`aktuell`}),t[10]=r.zustand,t[11]=l);let u;t[12]===r.zustand?u=t[13]:(u=r.zustand===`unbekannt`&&(0,B.jsx)(`span`,{className:`font-sans text-xs text-text-3`,children:`unklar`}),t[12]=r.zustand,t[13]=u);let d;t[14]!==s||t[15]!==c||t[16]!==l||t[17]!==u?(d=(0,B.jsxs)(`span`,{className:`ziffern flex flex-wrap items-baseline gap-x-2 text-sm`,children:[s,c,l,u]}),t[14]=s,t[15]=c,t[16]=l,t[17]=u,t[18]=d):d=t[18];let f;t[19]!==r.aktion||t[20]!==r.grund||t[21]!==r.zustand?(f=r.zustand===`neu`&&!r.aktion&&r.grund&&(0,B.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]=f):f=t[22];let m;return t[23]!==d||t[24]!==f?(m=(0,B.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[d,f]}),t[23]=d,t[24]=f,t[25]=m):m=t[25],m}function Ke(e){let t=(0,z.c)(22),{b:n,onSuchen:r,gesperrt:i}=e;if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(`span`,{className:`text-sm text-text-3`,children:`–`}),t[0]=e):e=t[0],e}let a=n.id===`docker`,o;if(n.zustand===`neu`){let e=n.kurz||`Update bereit`,r;t[1]===e?r=t[2]:(r=(0,B.jsx)(`span`,{className:`text-cyan`,children:e}),t[1]=e,t[2]=r),o=r}else if(n.zustand===`aktuell`){let e=a?`Images aktuell`:`aktuell`,n;t[3]===e?n=t[4]:(n=(0,B.jsx)(`span`,{className:`text-gruen-text`,children:e}),t[3]=e,t[4]=n),o=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,s=a?`Images unklar`:`unklar`,c;t[7]===r?c=t[8]:(c=r&&(0,B.jsxs)(`span`,{className:`text-text-3`,children:[` · Listen vom `,r]}),t[7]=r,t[8]=c);let l;t[9]!==i||t[10]!==s||t[11]!==c?(l=(0,B.jsxs)(`span`,{className:`text-text-2`,title:i,children:[s,c]}),t[9]=i,t[10]=s,t[11]=c,t[12]=l):l=t[12],o=l}let s=n.zustand===`unbekannt`?n.aktion:null,l;t[13]===o?l=t[14]:(l=(0,B.jsx)(`span`,{className:`min-w-0`,children:o}),t[13]=o,t[14]=l);let u;t[15]!==i||t[16]!==r||t[17]!==s?(u=s&&(0,B.jsx)(P,{variant:`ghost`,size:`icon-sm`,className:`-my-2 shrink-0`,"aria-label":s.label,title:s.label,disabled:i,onClick:()=>r(s),children:(0,B.jsx)(c,{})}),t[15]=i,t[16]=r,t[17]=s,t[18]=u):u=t[18];let d;return t[19]!==l||t[20]!==u?(d=(0,B.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 qe={app:`App updaten`,os:`Pakete einspielen`,pakete:`Pakete einspielen`};function Je(e){let t=(0,z.c)(54),{ziel:n,laeuft:r,gesperrt:a,onFrage:o}=e,s;t[0]===n?s=t[1]:(s=f(n),t[0]=n,t[1]=s);let c=s,l;t[2]===n?l=t[3]:(l=p(n),t[2]=n,t[3]=l);let u=l,d,h,g,_,v,x,S,C,w;if(t[4]!==c||t[5]!==a||t[6]!==r||t[7]!==o||t[8]!==u||t[9]!==n){let e=n.bausteine.filter(Ye),s=m(n)>=2;x=`row`;let l=s&&`opacity-75`;t[19]===l?S=t[20]:(S=i(`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-linie py-3.5 md:items-center`,We,l),t[19]=l,t[20]=S);let f;t[21]===n.name?f=t[22]:(f=(0,B.jsx)(`span`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[21]=n.name,t[22]=f);let p;t[23]===n?p=t[24]:(p=y(n)!==n.name&&(0,B.jsx)(`span`,{className:`text-sm text-text-3`,children:y(n)}),t[23]=n,t[24]=p),t[25]!==f||t[26]!==p?(C=(0,B.jsxs)(`div`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[f,p]}),t[25]=f,t[26]=p,t[27]=C):C=t[27];let T;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`App `}),t[28]=T):T=t[28],t[29]!==c||t[30]!==n?(w=(0,B.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[T,(0,B.jsx)(Ge,{ziel:n,b:c})]}),t[29]=c,t[30]=n,t[31]=w):w=t[31];let E;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,B.jsx)(`span`,{className:`text-xs text-text-3 md:hidden`,children:`Pakete `}),t[32]=E):E=t[32];let D=a||!!r,O;t[33]!==o||t[34]!==n?(O=e=>o({ziel:n,aktion:e}),t[33]=o,t[34]=n,t[35]=O):O=t[35],t[36]!==u||t[37]!==D||t[38]!==O?(d=(0,B.jsxs)(`span`,{role:`cell`,className:`min-w-0`,children:[E,(0,B.jsx)(Ke,{b:u,gesperrt:D,onSuchen:O})]}),t[36]=u,t[37]=D,t[38]=O,t[39]=d):d=t[39];let k=e.length?b(n):``;t[40]===k?h=t[41]:(h=(0,B.jsx)(`span`,{role:`cell`,className:`text-sm text-text-3`,children:k}),t[40]=k,t[41]=h),g=`cell`,_=`flex flex-wrap gap-2 md:flex-col md:items-stretch`,v=r?(0,B.jsxs)(`span`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,r]}):e.map(e=>(0,B.jsx)(P,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>e.aktion&&o({ziel:n,aktion:e.aktion}),children:qe[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]=d,t[11]=h,t[12]=g,t[13]=_,t[14]=v,t[15]=x,t[16]=S,t[17]=C,t[18]=w}else d=t[10],h=t[11],g=t[12],_=t[13],v=t[14],x=t[15],S=t[16],C=t[17],w=t[18];let T;t[42]!==g||t[43]!==_||t[44]!==v?(T=(0,B.jsx)(`span`,{role:g,className:_,children:v}),t[42]=g,t[43]=_,t[44]=v,t[45]=T):T=t[45];let E;return t[46]!==d||t[47]!==h||t[48]!==T||t[49]!==x||t[50]!==S||t[51]!==C||t[52]!==w?(E=(0,B.jsxs)(`div`,{role:x,className:S,children:[C,w,d,h,T]}),t[46]=d,t[47]=h,t[48]=T,t[49]=x,t[50]=S,t[51]=C,t[52]=w,t[53]=E):E=t[53],E}function Ye(e){return e.zustand===`neu`&&e.aktion}function Xe(e){let t=(0,z.c)(42),{ziele:n,laufend:r,gesperrt:a,onAktion:o}=e,[s,c]=(0,G.useState)(null),l,u,d,f,p,m;if(t[0]!==a||t[1]!==r||t[2]!==n){let e=[...n].sort(Qe),o;t[9]===n?o=t[10]:(o=n.filter(Ze),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,B.jsxs)(`div`,{role:`row`,className:i(`schild hidden gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,We),children:[(0,B.jsx)(`span`,{role:`columnheader`,children:`Gerät`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`App`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Pakete`}),(0,B.jsx)(`span`,{role:`columnheader`,children:`Rückweg`}),(0,B.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,B.jsx)(Je,{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,B.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,B.jsx)(w,{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 T;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>c(null),t[29]=T):T=t[29];let E;t[30]!==a||t[31]!==y||t[32]!==b||t[33]!==S||t[34]!==C||t[35]!==_||t[36]!==v?(E=(0,B.jsx)(F,{offen:_,titel:v,text:y,knopf:b,gefahr:S,gesperrt:a,onJa:C,onNein:T}),t[30]=a,t[31]=y,t[32]=b,t[33]=S,t[34]=C,t[35]=_,t[36]=v,t[37]=E):E=t[37];let D;return t[38]!==E||t[39]!==h||t[40]!==g?(D=(0,B.jsxs)(B.Fragment,{children:[h,g,E]}),t[38]=E,t[39]=h,t[40]=g,t[41]=D):D=t[41],D}function Ze(e){return m(e)===3}function Qe(e,t){return m(e)-m(t)}var $e=[`Proxmox-Host`,`AdGuard`,`NPMplus`,`NetBird`,`PVE Scripts Local`,`Gitea`,`PBS`,`Arcane mit Docker`],et={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`},offen:{art:`cyan`,text:`Probelauf`}},$=e=>x(new Date(e*1e3).toISOString());function tt(){let e=(0,z.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:$e.map(nt)})]}),(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 nt(e){return(0,B.jsx)(`li`,{children:(0,B.jsx)(w,{children:e})},e)}function rt(e){let t=(0,z.c)(9),{partner:n}=e,r;t[0]===n.eingerichtet?r=t[1]:(r=n.eingerichtet?(0,B.jsx)(w,{art:`rot`,children:`Antwortet nicht`}):(0,B.jsx)(w,{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)(tt,{}),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)(k,{titel:`Homelab`,rechts:i,children:a}),t[6]=i,t[7]=a,t[8]=o):o=t[8],o}function it(e){let t=(0,z.c)(10),{hinweise:n}=e,r=n.some(ot)?`rot`:`bernstein`,i;t[0]!==n.length||t[1]!==r?(i=(0,B.jsxs)(w,{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(at),t[3]=n,t[4]=a);let o;t[5]===a?o=t[6]:(o=(0,B.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,B.jsx)(k,{titel:`Hinweise`,id:`hinweise`,rechts:i,children:o}),t[7]=i,t[8]=o,t[9]=s):s=t[9],s}function at(e){return(0,B.jsxs)(`li`,{className:`flex flex-col gap-1 border-t border-linie py-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 ot(e){return e.stufe===`rot`}function st(e){let t=(0,z.c)(8),{laeufe:n}=e,r,i,a;if(t[0]!==n){a=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.filter(lt).slice(0,12);if(e.length===0){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.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(ct)}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,B.jsx)(`ol`,{className:r,children:i}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function ct(e){let t=e.ergebnis?et[e.ergebnis]??{art:`grau`,text:e.ergebnis}:{art:`grau`,text:`unterbrochen`};return(0,B.jsxs)(`li`,{className:`flex flex-col gap-1.5 border-t border-linie py-3 first:border-t-0 first:pt-0`,children:[(0,B.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,B.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:$(e.start)}),(0,B.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,B.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,B.jsx)(w,{art:t.art,children:t.text})})]}),e.text&&(0,B.jsx)(`p`,{className:`m-0 text-sm text-text-2 @sm:pl-[124px]`,children:e.text})]},e.id)}function lt(e){return e.status!==`laeuft`&&!j(e)}function ut(e){let t=(0,z.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,B.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,B.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,B.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 dt(){let e=(0,z.c)(20),t=O(),n=se(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=D(r),a=l(r),o=S(r),s=_(),c=null;if(t.isPending||n.isPending){let t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(d,{text:`Wird gelesen …`}),e[0]=t):t=e[0],c=t}else if(!r){let t;e[1]!==n.data||e[2]!==n.error?.message?(t=n.data?(0,B.jsx)(rt,{partner:n.data}):(0,B.jsx)(d,{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],c=t}else if(i.isPending){let t;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,B.jsx)(d,{text:`Der Homelab-Teil meldet sich gleich …`}),e[4]=t):t=e[4],c=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,B.jsx)(d,{fehler:!0,text:t}),e[5]=t,e[6]=n),c=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 f;e[9]===a.data?.laeufe?f=e[10]:(f=a.data?.laeufe??[],e[9]=a.data?.laeufe,e[10]=f);let p;e[11]===o.data?.hinweise?p=e[12]:(p=o.data?.hinweise??[],e[11]=o.data?.hinweise,e[12]=p);let m;return e[13]!==s||e[14]!==c||e[15]!==i.data||e[16]!==u||e[17]!==f||e[18]!==p?(m={ersatz:c,stand:i.data,laufend:u,laeufe:f,hinweise:p,aktion:s},e[13]=s,e[14]=c,e[15]=i.data,e[16]=u,e[17]=f,e[18]=p,e[19]=m):m=e[19],m}function ft(){let e=(0,z.c)(49),t=te(),{ersatz:n,stand:r,laufend:i,laeufe:a,hinweise:o,aktion:s}=dt(),c=ne(`1h`,!!r),l=ce(!!r);if(n||!r)return n;let d,f,p;if(e[0]!==o||e[1]!==a||e[2]!==r){d=r.bericht?$(r.bericht.empfangen):null;let t;e[6]===a?t=e[7]:(t=new Set(a.filter(mt).map(pt)),e[6]=a,e[7]=t),f=t,p=ie(r,o,f.size,d),e[0]=o,e[1]=a,e[2]=r,e[3]=d,e[4]=f,e[5]=p}else d=e[3],f=e[4],p=e[5];let m=p,h;if(e[8]!==f||e[9]!==r.ziele){let t;e[11]===f?t=e[12]:(t=e=>u(e,f.has(e.id)),e[11]=f,e[12]=t),h=r.ziele.map(t),e[8]=f,e[9]=r.ziele,e[10]=h}else h=e[10];let g;e[13]!==m.ziel||e[14]!==t?(g=()=>{m.ziel===`updates`?t({to:`/homelab/updates`}):m.ziel&&document.getElementById(m.ziel)?.scrollIntoView({behavior:`smooth`,block:`start`})},e[13]=m.ziel,e[14]=t,e[15]=g):g=e[15];let _;e[16]!==m||e[17]!==h||e[18]!==g?(_=(0,B.jsx)(_e,{lage:m,lampen:h,onAnsehen:g}),e[16]=m,e[17]=h,e[18]=g,e[19]=_):_=e[19];let v;e[20]===r?v=e[21]:(v=(0,B.jsx)(ut,{stand:r}),e[20]=r,e[21]=v);let y;e[22]===o?y=e[23]:(y=o.length>0&&(0,B.jsx)(it,{hinweise:o}),e[22]=o,e[23]=y);let b;e[24]===d?b=e[25]:(b=d&&(0,B.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`Stand `,d]}),e[24]=d,e[25]=b);let x;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,B.jsxs)(N,{to:`/homelab/monitoring`,className:`inline-flex items-center gap-1 text-sm text-lab-text hover:underline`,children:[`Monitoring `,(0,B.jsx)(M,{className:`size-3.5`,"aria-hidden":!0})]}),e[26]=x):x=e[26];let S;e[27]===b?S=e[28]:(S=(0,B.jsxs)(`span`,{className:`flex items-center gap-3`,children:[b,x]}),e[27]=b,e[28]=S);let C=c.data?.geraete,w;e[29]!==r.ziele||e[30]!==C?(w=(0,B.jsx)(me,{ziele:r.ziele,messwerte:C}),e[29]=r.ziele,e[30]=C,e[31]=w):w=e[31];let T;e[32]===c.isError?T=e[33]:(T=c.isError&&(0,B.jsx)(`p`,{className:`text-xs text-text-3`,children:`CPU und Speicher erscheinen, sobald der Ausführer Messwerte schickt.`}),e[32]=c.isError,e[33]=T);let E;e[34]!==w||e[35]!==T||e[36]!==S?(E=(0,B.jsxs)(k,{titel:`Geräte`,id:`geraete`,rechts:S,children:[w,T]}),e[34]=w,e[35]=T,e[36]=S,e[37]=E):E=e[37];let D;e[38]!==s||e[39]!==i||e[40]!==l.data||e[41]!==r.ausfuehrer?(D=l.data?.bericht&&(0,B.jsx)(k,{titel:`Speicher und Sicherungen`,id:`speicher`,children:(0,B.jsx)(Oe,{daten:l.data,laeuft:i.get(`pve`)??null,gesperrt:s.isPending||i.has(`pve`)||!r.ausfuehrer.verbunden,onAktion:e=>s.mutate(e),snapshotsLink:(0,B.jsxs)(N,{to:`/homelab/snapshots`,className:`inline-flex min-h-10 items-center gap-1 self-start text-sm text-lab-text hover:underline`,children:[`Zu den Snapshots `,(0,B.jsx)(M,{className:`size-3.5`,"aria-hidden":!0})]})})}),e[38]=s,e[39]=i,e[40]=l.data,e[41]=r.ausfuehrer,e[42]=D):D=e[42];let O;return e[43]!==E||e[44]!==D||e[45]!==_||e[46]!==v||e[47]!==y?(O=(0,B.jsxs)(B.Fragment,{children:[_,v,y,E,D]}),e[43]=E,e[44]=D,e[45]=_,e[46]=v,e[47]=y,e[48]=O):O=e[48],O}function pt(e){return e.ziel}function mt(e){return e.status===`laeuft`&&!j(e)}function ht(){let e=(0,z.c)(30),{ersatz:t,stand:n,laufend:r,laeufe:i,aktion:a}=dt(),o=le(!!n),s=T();if(t||!n)return t;let c=o.data?.sammellauf??null,l=c?.status===`laeuft`,u;e[0]===n.ziele?u=e[1]:(u=g(n.ziele).filter(gt),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,B.jsx)(Le,{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,B.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,B.jsx)(ut,{stand:n}),e[6]=n,e[7]=h);let _;e[8]!==c||e[9]!==s||e[10]!==l||e[11]!==n.bericht?.empfangen?(_=c&&(l||c.ende&&(n.bericht?.empfangen??0)-c.ende<21600)&&(0,B.jsx)(Ve,{lauf:c,onQuittieren:()=>s.mutate(c.id)}),e[8]=c,e[9]=s,e[10]=l,e[11]=n.bericht?.empfangen,e[12]=_):_=e[12];let v=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]!==v||e[18]!==y?(b=(0,B.jsx)(Xe,{ziele:n.ziele,laufend:r,gesperrt:v,onAktion:y}),e[15]=r,e[16]=n.ziele,e[17]=v,e[18]=y,e[19]=b):b=e[19];let x;e[20]!==p||e[21]!==h||e[22]!==_||e[23]!==b?(x=(0,B.jsxs)(k,{titel:`Updates`,rechts:p,children:[m,h,_,b]}),e[20]=p,e[21]=h,e[22]=_,e[23]=b,e[24]=x):x=e[24];let S;e[25]===i?S=e[26]:(S=(0,B.jsx)(k,{titel:`Verlauf`,children:(0,B.jsx)(st,{laeufe:i})}),e[25]=i,e[26]=S);let C;return e[27]!==S||e[28]!==x?(C=(0,B.jsxs)(B.Fragment,{children:[x,S]}),e[27]=S,e[28]=x,e[29]=C):C=e[29],C}function gt(e){return e.baustein.aktion}export{ft as HomelabSeite,ht as HomelabUpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/HomelabProtokoll-CwVh3SKG.js b/frontend/dist/assets/HomelabProtokoll-Bn-4pxRM.js similarity index 97% rename from frontend/dist/assets/HomelabProtokoll-CwVh3SKG.js rename to frontend/dist/assets/HomelabProtokoll-Bn-4pxRM.js index 6a8b066..1f4d64f 100644 --- a/frontend/dist/assets/HomelabProtokoll-CwVh3SKG.js +++ b/frontend/dist/assets/HomelabProtokoll-Bn-4pxRM.js @@ -1 +1 @@ -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-4vXDP1Jj.js";import{t as o}from"./search-hyFAofkN.js";import{C as s,X as c,at as l,b as u,cn as d,in as f,pt as p,rn as m,tt as h}from"./index-CIOHqG23.js";var g={name:`bell`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]};g.node;var _=d(g),v={name:`cog`,size:24,node:[[`path`,{d:`M11 10.27 7 3.34`,key:`16pf9h`}],[`path`,{d:`m11 13.73-4 6.93`,key:`794ttg`}],[`path`,{d:`M12 22v-2`,key:`1osdcq`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M14 12h8`,key:`4f43i9`}],[`path`,{d:`m17 20.66-1-1.73`,key:`eq3orb`}],[`path`,{d:`m17 3.34-1 1.73`,key:`2wel8s`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`m20.66 17-1.73-1`,key:`sg0v6f`}],[`path`,{d:`m20.66 7-1.73 1`,key:`1ow05n`}],[`path`,{d:`m3.34 17 1.73-1`,key:`nuk764`}],[`path`,{d:`m3.34 7 1.73 1`,key:`1ulond`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`circle`,{cx:`12`,cy:`12`,r:`8`,key:`46899m`}]]};v.node;var y=d(v),b={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};b.node;var x=d(b),S=t(),C=r(e(),1),w=n(),T=[{id:`alle`,name:`Alles`},{id:`lauf`,name:`Updates`},{id:`snapshot`,name:`Snapshots`},{id:`auftrag`,name:`Ausführer`},{id:`hinweis`,name:`Hinweise`},{id:`meldung`,name:`Meldungen`},{id:`pflege`,name:`Pflege`}],E={auftrag:y,lauf:f,sammellauf:f,hinweis:x,meldung:_,pflege:o,snapshot:m},D={ok:{punkt:`bg-gruen`,text:`text-gruen-text`,wort:`ok`},info:{punkt:`bg-cyan`,text:`text-cyan-text`,wort:`Info`},warn:{punkt:`bg-bernstein`,text:`text-bernstein`,wort:`Warnung`},fehler:{punkt:`bg-rot`,text:`text-rot-text`,wort:`Fehler`}},O=new Intl.DateTimeFormat(`de-DE`,{weekday:`long`,day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`}),k=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`}),A=new Intl.DateTimeFormat(`sv-SE`,{timeZone:`Europe/Berlin`});function j(e){let t=A.format(new Date),n=A.format(new Date(Date.now()-864e5)),r=A.format(new Date(e*1e3));return r===t?`Heute`:r===n?`Gestern`:O.format(new Date(e*1e3))}function M(e){let t=(0,S.c)(37),{e:n,geraet:r}=e,[o,s]=(0,C.useState)(!1),c=D[n.stufe]??D.info,l=E[n.art]??y,u;t[0]===n.zeit?u=t[1]:(u=k.format(new Date(n.zeit*1e3)),t[0]=n.zeit,t[1]=u);let d;t[2]===u?d=t[3]:(d=(0,w.jsx)(`span`,{className:`ziffern pt-0.5 text-xs text-text-3`,children:u}),t[2]=u,t[3]=d);let f;t[4]===c.punkt?f=t[5]:(f=i(`size-2.5 rounded-full`,c.punkt),t[4]=c.punkt,t[5]=f);let p;t[6]===f?p=t[7]:(p=(0,w.jsx)(`span`,{className:`flex flex-col items-center pt-1`,children:(0,w.jsx)(`span`,{"aria-hidden":!0,className:f})}),t[6]=f,t[7]=p);let m;t[8]===l?m=t[9]:(m=(0,w.jsx)(l,{className:`size-3.5 shrink-0 text-text-3`,"aria-hidden":!0}),t[8]=l,t[9]=m);let h=n.stufe===`fehler`||n.stufe===`warn`?c.text:`text-foreground`,g;t[10]===h?g=t[11]:(g=i(h),t[10]=h,t[11]=g);let _;t[12]!==n.titel||t[13]!==g?(_=(0,w.jsx)(`span`,{className:g,children:n.titel}),t[12]=n.titel,t[13]=g,t[14]=_):_=t[14];let v;t[15]===r?v=t[16]:(v=r&&(0,w.jsx)(`span`,{className:`rounded-md bg-lab-grund px-1.5 text-xs text-lab-text`,children:r}),t[15]=r,t[16]=v);let b;t[17]===c.wort?b=t[18]:(b=(0,w.jsxs)(`span`,{className:`sr-only`,children:[`(`,c.wort,`)`]}),t[17]=c.wort,t[18]=b);let x;t[19]!==b||t[20]!==m||t[21]!==_||t[22]!==v?(x=(0,w.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-2 text-[15px]`,children:[m,_,v,b]}),t[19]=b,t[20]=m,t[21]=_,t[22]=v,t[23]=x):x=t[23];let T;t[24]===n.text?T=t[25]:(T=n.text&&(0,w.jsx)(`span`,{className:`text-sm text-text-2`,children:n.text}),t[24]=n.text,t[25]=T);let O;t[26]!==n.details||t[27]!==o?(O=n.details&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>s(!o),"aria-expanded":o,className:`inline-flex h-8 items-center gap-1 self-start text-xs text-cyan hover:underline`,children:[(0,w.jsx)(a,{className:i(`size-3.5 transition-transform`,o&&`rotate-90`),"aria-hidden":!0}),o?`Ausgabe verbergen`:`Ausgabe zeigen`]}),o&&(0,w.jsx)(`pre`,{className:`ziffern m-0 max-h-72 overflow-auto rounded-md border border-linie bg-[#0b0d0f] p-2.5 text-xs whitespace-pre-wrap text-text-2`,children:n.details})]}),t[26]=n.details,t[27]=o,t[28]=O):O=t[28];let A;t[29]!==x||t[30]!==T||t[31]!==O?(A=(0,w.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[x,T,O]}),t[29]=x,t[30]=T,t[31]=O,t[32]=A):A=t[32];let j;return t[33]!==A||t[34]!==d||t[35]!==p?(j=(0,w.jsxs)(`li`,{className:`grid grid-cols-[64px_18px_minmax(0,1fr)] gap-x-3 border-t border-linie py-2.5 first:border-t-0`,children:[d,p,A]}),t[33]=A,t[34]=d,t[35]=p,t[36]=j):j=t[36],j}function N(){let e=(0,S.c)(16),t=l(),n=p(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),[a,o]=(0,C.useState)(`alle`),[d,f]=(0,C.useState)(!1),m=h(r,d),g=new Map((c(r).data?.ziele??[]).map(P));if(t.isPending||n.isPending){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(s,{text:`Wird gelesen …`}),e[0]=t):t=e[0],t}if(!r){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(s,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[1]=t):t=e[1],t}let _=(m.data?.eintraege??[]).filter(e=>a===`alle`||e.art===a||a===`lauf`&&e.art===`sammellauf`),v=[];for(let e of _){let t=j(e.zeit);v.at(-1)?.titel!==t&&v.push({titel:t,eintraege:[]}),v.at(-1).eintraege.push(e)}let y=u,b;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,w.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Was der Homelab-Teil getan hat: Aufträge an den Ausführer auf dem Proxmox-Host, Update-Läufe, Snapshots, Hinweise, gesendete Meldungen und die nächtliche Paketsuche.`}),e[2]=b):b=e[2];let x;e[3]===a?x=e[4]:(x=T.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>o(e.id),"aria-pressed":a===e.id,className:i(`h-9 rounded-full border px-3.5 text-sm`,a===e.id?`border-lab-rand bg-lab-grund text-lab-text`:`border-linie text-text-2 hover:border-linie-stark hover:text-foreground`),children:e.name},e.id)),e[3]=a,e[4]=x);let E;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(E=e=>f(e.target.checked),e[5]=E):E=e[5];let D;e[6]===d?D=e[7]:(D=(0,w.jsxs)(`label`,{className:`ml-auto flex h-9 cursor-pointer items-center gap-2 text-sm text-text-2`,children:[(0,w.jsx)(`input`,{type:`checkbox`,checked:d,onChange:E,className:`size-4 accent-[var(--lab)]`}),`Berichte zeigen (alle 10 min)`]}),e[6]=d,e[7]=D);let O;e[8]!==x||e[9]!==D?(O=(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,role:`group`,"aria-label":`Filter`,children:[x,D]}),e[8]=x,e[9]=D,e[10]=O):O=e[10];let k=m.isPending?(0,w.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):m.isError?(0,w.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Protokoll lässt sich nicht lesen: `,m.error.message]}):v.length===0?(0,w.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Dazu gibt es noch keine Einträge.`}):(0,w.jsx)(`div`,{className:i(`flex flex-col gap-5`,m.isFetching&&`opacity-80`),children:v.map(e=>(0,w.jsxs)(`section`,{"aria-label":e.titel,className:`flex flex-col gap-1`,children:[(0,w.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-lab-text`,children:e.titel}),(0,w.jsx)(`ol`,{className:`m-0 flex list-none flex-col p-0`,children:e.eintraege.map((e,t)=>{let n=e.ziel?g.get(e.ziel)??e.ziel:null;return(0,w.jsx)(M,{e,geraet:n&&!e.titel.includes(n)?n:null},`${e.zeit}-${e.titel}-${t}`)})})]},e.titel))}),A;return e[11]!==y||e[12]!==b||e[13]!==O||e[14]!==k?(A=(0,w.jsxs)(y,{titel:`Protokoll`,children:[b,O,k]}),e[11]=y,e[12]=b,e[13]=O,e[14]=k,e[15]=A):A=e[15],A}function P(e){return[e.id,e.name]}export{N as HomelabProtokollSeite}; \ No newline at end of file +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-lErM2U6o.js";import{t as o}from"./search-DDxMRsny.js";import{C as s,X as c,at as l,b as u,cn as d,in as f,pt as p,rn as m,tt as h}from"./index-CKWhFN2A.js";var g={name:`bell`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]};g.node;var _=d(g),v={name:`cog`,size:24,node:[[`path`,{d:`M11 10.27 7 3.34`,key:`16pf9h`}],[`path`,{d:`m11 13.73-4 6.93`,key:`794ttg`}],[`path`,{d:`M12 22v-2`,key:`1osdcq`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M14 12h8`,key:`4f43i9`}],[`path`,{d:`m17 20.66-1-1.73`,key:`eq3orb`}],[`path`,{d:`m17 3.34-1 1.73`,key:`2wel8s`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`m20.66 17-1.73-1`,key:`sg0v6f`}],[`path`,{d:`m20.66 7-1.73 1`,key:`1ow05n`}],[`path`,{d:`m3.34 17 1.73-1`,key:`nuk764`}],[`path`,{d:`m3.34 7 1.73 1`,key:`1ulond`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`circle`,{cx:`12`,cy:`12`,r:`8`,key:`46899m`}]]};v.node;var y=d(v),b={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};b.node;var x=d(b),S=t(),C=r(e(),1),w=n(),T=[{id:`alle`,name:`Alles`},{id:`lauf`,name:`Updates`},{id:`snapshot`,name:`Snapshots`},{id:`auftrag`,name:`Ausführer`},{id:`hinweis`,name:`Hinweise`},{id:`meldung`,name:`Meldungen`},{id:`pflege`,name:`Pflege`}],E={auftrag:y,lauf:f,sammellauf:f,hinweis:x,meldung:_,pflege:o,snapshot:m},D={ok:{punkt:`bg-gruen`,text:`text-gruen-text`,wort:`ok`},info:{punkt:`bg-cyan`,text:`text-cyan-text`,wort:`Info`},warn:{punkt:`bg-bernstein`,text:`text-bernstein`,wort:`Warnung`},fehler:{punkt:`bg-rot`,text:`text-rot-text`,wort:`Fehler`}},O=new Intl.DateTimeFormat(`de-DE`,{weekday:`long`,day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`}),k=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZone:`Europe/Berlin`}),A=new Intl.DateTimeFormat(`sv-SE`,{timeZone:`Europe/Berlin`});function j(e){let t=A.format(new Date),n=A.format(new Date(Date.now()-864e5)),r=A.format(new Date(e*1e3));return r===t?`Heute`:r===n?`Gestern`:O.format(new Date(e*1e3))}function M(e){let t=(0,S.c)(37),{e:n,geraet:r}=e,[o,s]=(0,C.useState)(!1),c=D[n.stufe]??D.info,l=E[n.art]??y,u;t[0]===n.zeit?u=t[1]:(u=k.format(new Date(n.zeit*1e3)),t[0]=n.zeit,t[1]=u);let d;t[2]===u?d=t[3]:(d=(0,w.jsx)(`span`,{className:`ziffern pt-0.5 text-xs text-text-3`,children:u}),t[2]=u,t[3]=d);let f;t[4]===c.punkt?f=t[5]:(f=i(`size-2.5 rounded-full`,c.punkt),t[4]=c.punkt,t[5]=f);let p;t[6]===f?p=t[7]:(p=(0,w.jsx)(`span`,{className:`flex flex-col items-center pt-1`,children:(0,w.jsx)(`span`,{"aria-hidden":!0,className:f})}),t[6]=f,t[7]=p);let m;t[8]===l?m=t[9]:(m=(0,w.jsx)(l,{className:`size-3.5 shrink-0 text-text-3`,"aria-hidden":!0}),t[8]=l,t[9]=m);let h=n.stufe===`fehler`||n.stufe===`warn`?c.text:`text-foreground`,g;t[10]===h?g=t[11]:(g=i(h),t[10]=h,t[11]=g);let _;t[12]!==n.titel||t[13]!==g?(_=(0,w.jsx)(`span`,{className:g,children:n.titel}),t[12]=n.titel,t[13]=g,t[14]=_):_=t[14];let v;t[15]===r?v=t[16]:(v=r&&(0,w.jsx)(`span`,{className:`rounded-md bg-lab-grund px-1.5 text-xs text-lab-text`,children:r}),t[15]=r,t[16]=v);let b;t[17]===c.wort?b=t[18]:(b=(0,w.jsxs)(`span`,{className:`sr-only`,children:[`(`,c.wort,`)`]}),t[17]=c.wort,t[18]=b);let x;t[19]!==b||t[20]!==m||t[21]!==_||t[22]!==v?(x=(0,w.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-2 text-[15px]`,children:[m,_,v,b]}),t[19]=b,t[20]=m,t[21]=_,t[22]=v,t[23]=x):x=t[23];let T;t[24]===n.text?T=t[25]:(T=n.text&&(0,w.jsx)(`span`,{className:`text-sm text-text-2`,children:n.text}),t[24]=n.text,t[25]=T);let O;t[26]!==n.details||t[27]!==o?(O=n.details&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>s(!o),"aria-expanded":o,className:`inline-flex h-8 items-center gap-1 self-start text-xs text-cyan hover:underline`,children:[(0,w.jsx)(a,{className:i(`size-3.5 transition-transform`,o&&`rotate-90`),"aria-hidden":!0}),o?`Ausgabe verbergen`:`Ausgabe zeigen`]}),o&&(0,w.jsx)(`pre`,{className:`ziffern m-0 max-h-72 overflow-auto rounded-md border border-linie bg-[#0b0d0f] p-2.5 text-xs whitespace-pre-wrap text-text-2`,children:n.details})]}),t[26]=n.details,t[27]=o,t[28]=O):O=t[28];let A;t[29]!==x||t[30]!==T||t[31]!==O?(A=(0,w.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[x,T,O]}),t[29]=x,t[30]=T,t[31]=O,t[32]=A):A=t[32];let j;return t[33]!==A||t[34]!==d||t[35]!==p?(j=(0,w.jsxs)(`li`,{className:`grid grid-cols-[64px_18px_minmax(0,1fr)] gap-x-3 border-t border-linie py-2.5 first:border-t-0`,children:[d,p,A]}),t[33]=A,t[34]=d,t[35]=p,t[36]=j):j=t[36],j}function N(){let e=(0,S.c)(16),t=l(),n=p(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),[a,o]=(0,C.useState)(`alle`),[d,f]=(0,C.useState)(!1),m=h(r,d),g=new Map((c(r).data?.ziele??[]).map(P));if(t.isPending||n.isPending){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(s,{text:`Wird gelesen …`}),e[0]=t):t=e[0],t}if(!r){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(s,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[1]=t):t=e[1],t}let _=(m.data?.eintraege??[]).filter(e=>a===`alle`||e.art===a||a===`lauf`&&e.art===`sammellauf`),v=[];for(let e of _){let t=j(e.zeit);v.at(-1)?.titel!==t&&v.push({titel:t,eintraege:[]}),v.at(-1).eintraege.push(e)}let y=u,b;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,w.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Was der Homelab-Teil getan hat: Aufträge an den Ausführer auf dem Proxmox-Host, Update-Läufe, Snapshots, Hinweise, gesendete Meldungen und die nächtliche Paketsuche.`}),e[2]=b):b=e[2];let x;e[3]===a?x=e[4]:(x=T.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>o(e.id),"aria-pressed":a===e.id,className:i(`h-9 rounded-full border px-3.5 text-sm`,a===e.id?`border-lab-rand bg-lab-grund text-lab-text`:`border-linie text-text-2 hover:border-linie-stark hover:text-foreground`),children:e.name},e.id)),e[3]=a,e[4]=x);let E;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(E=e=>f(e.target.checked),e[5]=E):E=e[5];let D;e[6]===d?D=e[7]:(D=(0,w.jsxs)(`label`,{className:`ml-auto flex h-9 cursor-pointer items-center gap-2 text-sm text-text-2`,children:[(0,w.jsx)(`input`,{type:`checkbox`,checked:d,onChange:E,className:`size-4 accent-[var(--lab)]`}),`Berichte zeigen (alle 10 min)`]}),e[6]=d,e[7]=D);let O;e[8]!==x||e[9]!==D?(O=(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,role:`group`,"aria-label":`Filter`,children:[x,D]}),e[8]=x,e[9]=D,e[10]=O):O=e[10];let k=m.isPending?(0,w.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):m.isError?(0,w.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Protokoll lässt sich nicht lesen: `,m.error.message]}):v.length===0?(0,w.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Dazu gibt es noch keine Einträge.`}):(0,w.jsx)(`div`,{className:i(`flex flex-col gap-5`,m.isFetching&&`opacity-80`),children:v.map(e=>(0,w.jsxs)(`section`,{"aria-label":e.titel,className:`flex flex-col gap-1`,children:[(0,w.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-lab-text`,children:e.titel}),(0,w.jsx)(`ol`,{className:`m-0 flex list-none flex-col p-0`,children:e.eintraege.map((e,t)=>{let n=e.ziel?g.get(e.ziel)??e.ziel:null;return(0,w.jsx)(M,{e,geraet:n&&!e.titel.includes(n)?n:null},`${e.zeit}-${e.titel}-${t}`)})})]},e.titel))}),A;return e[11]!==y||e[12]!==b||e[13]!==O||e[14]!==k?(A=(0,w.jsxs)(y,{titel:`Protokoll`,children:[b,O,k]}),e[11]=y,e[12]=b,e[13]=O,e[14]=k,e[15]=A):A=e[15],A}function P(e){return[e.id,e.name]}export{N as HomelabProtokollSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/HomelabSnapshots-BHJkSmwO.js b/frontend/dist/assets/HomelabSnapshots-BJnRrB1s.js similarity index 98% rename from frontend/dist/assets/HomelabSnapshots-BHJkSmwO.js rename to frontend/dist/assets/HomelabSnapshots-BJnRrB1s.js index 5400f39..2db7b0b 100644 --- a/frontend/dist/assets/HomelabSnapshots-BHJkSmwO.js +++ b/frontend/dist/assets/HomelabSnapshots-BJnRrB1s.js @@ -1 +1 @@ -import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{n as a,t as o}from"./undo-2-DvQmwdhu.js";import{C as s,S as c,a as l,at as u,b as d,cn as f,n as p,nt as m,o as h,on as g,pt as _,r as v,s as y,t as b,wt as x}from"./index-CIOHqG23.js";import{t as S}from"./button-D8rvET0Z.js";import{t as C}from"./Bestaetigen-D6CzMfJm.js";var w={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};w.node;var T=f(w),E={name:`trash`,size:24,node:[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],aliases:[`trash-2`]};E.node;var D=f(E),O=t(),k=r(e(),1),A=n(),j=`grid grid-cols-[minmax(0,1fr)_auto] items-start gap-x-3 gap-y-1.5 border-t border-linie py-3 [grid-template-areas:'name_herkunft'_'zeit_zeit'_'text_text'_'knoepfe_knoepfe'] md:grid-rows-[auto_auto_1fr] md:gap-x-4 md:[grid-template-areas:'name_herkunft'_'zeit_knoepfe'_'text_knoepfe'] xl:grid-cols-[minmax(10.5rem,1.1fr)_7.5rem_minmax(0,1fr)_minmax(0,1.4fr)_11rem] xl:grid-rows-none xl:items-center xl:[grid-template-areas:'name_herkunft_zeit_text_knoepfe']`,M=`ziffern min-w-0 pt-1 text-sm break-words text-foreground [grid-area:name] xl:pt-0`,N=`justify-self-end [grid-area:herkunft] xl:justify-self-start`;function P(e){let t=(0,O.c)(11),{zeit:n,jetzt:r}=e,i;t[0]!==r||t[1]!==n?(i=h(n,r),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a;t[3]===i?a=t[4]:(a=(0,A.jsx)(`span`,{className:`ziffern text-text-2`,children:i}),t[3]=i,t[4]=a);let o;t[5]!==r||t[6]!==n?(o=n!==null&&(0,A.jsx)(`span`,{className:`text-text-3`,children:p(n,r)}),t[5]=r,t[6]=n,t[7]=o):o=t[7];let s;return t[8]!==a||t[9]!==o?(s=(0,A.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap items-baseline gap-x-2 text-sm [grid-area:zeit]`,children:[a,o]}),t[8]=a,t[9]=o,t[10]=s):s=t[10],s}function F(e){let t=(0,O.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,A.jsx)(`span`,{role:`cell`,className:`min-w-0 text-sm break-words text-text-2 [grid-area:text]`,children:n}),t[0]=n,t[1]=r),r}function I(e){let t=(0,O.c)(5),{children:n,ohne:r}=e,i;t[0]!==n||t[1]!==r?(i=r?(0,A.jsx)(`span`,{className:`text-xs text-text-3`,children:r}):n,t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;return t[3]===i?a=t[4]:(a=(0,A.jsx)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 [grid-area:knoepfe] md:flex-col md:items-stretch md:justify-self-end xl:justify-self-stretch`,children:i}),t[3]=i,t[4]=a),a}function L(e){let t=(0,O.c)(35),{g:n,s:r,jetzt:i,gesperrt:a,onFrage:s}=e,{loeschen:l,zuruecksetzen:u}=r,d=l||u?null:r.eigen?`Nicht freigegeben`:`Nur in Proxmox`,f;t[0]===r.name?f=t[1]:(f=(0,A.jsx)(`span`,{role:`rowheader`,className:M,children:r.name}),t[0]=r.name,t[1]=f);let p=b[r.herkunft],m=b[r.herkunft],h;t[2]===m.chip?h=t[3]:(h=(0,A.jsx)(c,{children:m.chip}),t[2]=m.chip,t[3]=h);let g;t[4]!==p.text||t[5]!==h?(g=(0,A.jsx)(`span`,{role:`cell`,className:N,title:p.text,children:h}),t[4]=p.text,t[5]=h,t[6]=g):g=t[6];let _;t[7]!==i||t[8]!==r.zeit?(_=(0,A.jsx)(P,{zeit:r.zeit,jetzt:i}),t[7]=i,t[8]=r.zeit,t[9]=_):_=t[9];let v;t[10]!==r.beschreibung||t[11]!==r.herkunft?(v=r.beschreibung??(0,A.jsx)(`span`,{className:`text-text-3`,children:b[r.herkunft].text}),t[10]=r.beschreibung,t[11]=r.herkunft,t[12]=v):v=t[12];let y;t[13]===v?y=t[14]:(y=(0,A.jsx)(F,{children:v}),t[13]=v,t[14]=y);let x;t[15]!==n||t[16]!==a||t[17]!==s||t[18]!==u?(x=u&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>s({name:n.name,aktion:u,gefahr:!0}),children:[(0,A.jsx)(o,{"aria-hidden":!0}),` Zurücksetzen`]}),t[15]=n,t[16]=a,t[17]=s,t[18]=u,t[19]=x):x=t[19];let C;t[20]!==n||t[21]!==a||t[22]!==l||t[23]!==s?(C=l&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>s({name:n.name,aktion:l,gefahr:!0}),children:[(0,A.jsx)(D,{"aria-hidden":!0}),` Löschen`]}),t[20]=n,t[21]=a,t[22]=l,t[23]=s,t[24]=C):C=t[24];let w;t[25]!==d||t[26]!==C||t[27]!==x?(w=(0,A.jsxs)(I,{ohne:d,children:[x,C]}),t[25]=d,t[26]=C,t[27]=x,t[28]=w):w=t[28];let T;return t[29]!==f||t[30]!==w||t[31]!==g||t[32]!==_||t[33]!==y?(T=(0,A.jsxs)(`div`,{role:`row`,className:j,children:[f,g,_,y,w]}),t[29]=f,t[30]=w,t[31]=g,t[32]=_,t[33]=y,t[34]=T):T=t[34],T}function R(e){let t=(0,O.c)(23),{g:n,e:r,jetzt:i,gesperrt:a,onFrage:o}=e,s;t[0]===r.groesse?s=t[1]:(s=v(r.groesse),t[0]=r.groesse,t[1]=s);let l=s,u=r.loeschen,d;t[2]===r.datei?d=t[3]:(d=(0,A.jsx)(`span`,{role:`rowheader`,className:M,children:r.datei}),t[2]=r.datei,t[3]=d);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,A.jsx)(`span`,{role:`cell`,className:N,children:(0,A.jsx)(c,{children:`Sicherung`})}),t[4]=f):f=t[4];let p;t[5]!==r.zeit||t[6]!==i?(p=(0,A.jsx)(P,{zeit:r.zeit,jetzt:i}),t[5]=r.zeit,t[6]=i,t[7]=p):p=t[7];let m=l?`${l} auf „${r.speicher}“`:`Auf „${r.speicher}“`,h;t[8]===m?h=t[9]:(h=(0,A.jsxs)(F,{children:[m,`, vor einem Update angelegt`]}),t[8]=m,t[9]=h);let g=u?null:`Nicht freigegeben`,_;t[10]!==n||t[11]!==a||t[12]!==u||t[13]!==o?(_=u&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>o({name:n.name,aktion:u,gefahr:!0}),children:[(0,A.jsx)(D,{"aria-hidden":!0}),` Löschen`]}),t[10]=n,t[11]=a,t[12]=u,t[13]=o,t[14]=_):_=t[14];let y;t[15]!==g||t[16]!==_?(y=(0,A.jsx)(I,{ohne:g,children:_}),t[15]=g,t[16]=_,t[17]=y):y=t[17];let b;return t[18]!==d||t[19]!==p||t[20]!==h||t[21]!==y?(b=(0,A.jsxs)(`div`,{role:`row`,className:j,children:[d,f,p,h,y]}),t[18]=d,t[19]=p,t[20]=h,t[21]=y,t[22]=b):b=t[22],b}function z(e){let t=(0,O.c)(34),{g:n,jetzt:r,gesperrt:o,onFrage:s}=e,c=n.snapshots.length===0&&n.sicherungen.length===0,l=n.anlegen,u;t[0]===n.name?u=t[1]:(u=(0,A.jsx)(`h3`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[0]=n.name,t[1]=u);let d;t[2]===n.wo?d=t[3]:(d=(0,A.jsx)(`span`,{className:`text-sm text-text-3`,children:n.wo}),t[2]=n.wo,t[3]=d);let f;t[4]!==u||t[5]!==d?(f=(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[u,d]}),t[4]=u,t[5]=d,t[6]=f):f=t[6];let p;t[7]!==l||t[8]!==n.laeuft||t[9]!==n.name||t[10]!==o||t[11]!==s?(p=n.laeuft?(0,A.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,n.laeuft,` …`]}):l&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:o,onClick:()=>s({name:n.name,aktion:l,gefahr:!1}),children:[(0,A.jsx)(T,{"aria-hidden":!0}),` Snapshot anlegen`]}),t[7]=l,t[8]=n.laeuft,t[9]=n.name,t[10]=o,t[11]=s,t[12]=p):p=t[12];let m;t[13]!==f||t[14]!==p?(m=(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-4 gap-y-2`,children:[f,p]}),t[13]=f,t[14]=p,t[15]=m):m=t[15];let _;t[16]===n.grund?_=t[17]:(_=n.grund&&(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:n.grund}),t[16]=n.grund,t[17]=_);let v;t[18]!==n.name||t[19]!==n.zuletzt||t[20]!==r?(v=n.zuletzt&&(0,A.jsxs)(`p`,{className:i(`flex items-start gap-1.5 text-sm`,n.zuletzt.ok?`text-gruen-text`:`text-rot-text`),children:[n.zuletzt.ok?(0,A.jsx)(g,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}):(0,A.jsx)(a,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}),(0,A.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2`,children:[(0,A.jsx)(`span`,{className:`break-words`,children:y(n.zuletzt.text,n.name)}),(0,A.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:h(n.zuletzt.ende,r)})]})]}),t[18]=n.name,t[19]=n.zuletzt,t[20]=r,t[21]=v):v=t[21];let b;t[22]!==n||t[23]!==o||t[24]!==r||t[25]!==c||t[26]!==s?(b=c?(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Keine Snapshots.`}):(0,A.jsxs)(`div`,{role:`table`,"aria-label":`Snapshots von ${n.name}`,className:`flex flex-col`,children:[(0,A.jsxs)(`div`,{role:`row`,className:`sr-only`,children:[(0,A.jsx)(`span`,{role:`columnheader`,children:`Snapshot`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Herkunft`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Zeitpunkt`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Beschreibung`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Aktion`})]}),n.snapshots.map(e=>(0,A.jsx)(L,{g:n,s:e,jetzt:r,gesperrt:o,onFrage:s},e.name)),n.sicherungen.map(e=>(0,A.jsx)(R,{g:n,e,jetzt:r,gesperrt:o,onFrage:s},e.datei))]}),t[22]=n,t[23]=o,t[24]=r,t[25]=c,t[26]=s,t[27]=b):b=t[27];let x;return t[28]!==n.name||t[29]!==m||t[30]!==_||t[31]!==v||t[32]!==b?(x=(0,A.jsxs)(`section`,{"aria-label":n.name,className:`flex min-w-0 flex-col gap-2 border-t border-linie-stark pt-4 first:border-t-0 first:pt-0`,children:[m,_,v,b]}),t[28]=n.name,t[29]=m,t[30]=_,t[31]=v,t[32]=b,t[33]=x):x=t[33],x}function B(e){let t=(0,O.c)(24),{daten:n,gesperrt:r,onAktion:i}=e,[a,o]=(0,k.useState)(null),s;if(t[0]!==n.geraete||t[1]!==n.jetzt||t[2]!==r){let e;t[4]!==n.jetzt||t[5]!==r?(e=e=>(0,A.jsx)(z,{g:e,jetzt:n.jetzt,gesperrt:r||!!e.laeuft,onFrage:o},e.id),t[4]=n.jetzt,t[5]=r,t[6]=e):e=t[6],s=n.geraete.map(e),t[0]=n.geraete,t[1]=n.jetzt,t[2]=r,t[3]=s}else s=t[3];let c;t[7]===s?c=t[8]:(c=(0,A.jsx)(`div`,{className:`flex flex-col gap-5`,children:s}),t[7]=s,t[8]=c);let l=!!a,u=a?`${a.name}: ${a.aktion.label}`:``,d=a?.aktion.frage??``,f=a?.aktion.label??``,p=a?.gefahr,m;t[9]!==a||t[10]!==i?(m=()=>{a&&i(a.aktion),o(null)},t[9]=a,t[10]=i,t[11]=m):m=t[11];let h;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>o(null),t[12]=h):h=t[12];let g;t[13]!==r||t[14]!==l||t[15]!==u||t[16]!==d||t[17]!==f||t[18]!==p||t[19]!==m?(g=(0,A.jsx)(C,{offen:l,titel:u,text:d,knopf:f,gefahr:p,gesperrt:r,onJa:m,onNein:h}),t[13]=r,t[14]=l,t[15]=u,t[16]=d,t[17]=f,t[18]=p,t[19]=m,t[20]=g):g=t[20];let _;return t[21]!==g||t[22]!==c?(_=(0,A.jsxs)(A.Fragment,{children:[c,g]}),t[21]=g,t[22]=c,t[23]=_):_=t[23],_}function V(){let e=(0,O.c)(23),t=u(),n=_(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=m(r),a=x();if(t.isPending||n.isPending){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(s,{text:`Wird gelesen …`}),e[0]=t):t=e[0],t}if(!r){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(s,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[1]=t):t=e[1],t}if(i.isPending){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(s,{text:`Die Snapshots werden gelesen …`}),e[2]=t):t=e[2],t}if(!i.data){let t=`Die Snapshots lassen sich nicht lesen: ${i.error?.message??`keine Daten`}`,n;return e[3]===t?n=e[4]:(n=(0,A.jsx)(s,{fehler:!0,text:t}),e[3]=t,e[4]=n),n}let o=i.data,f=o.sperre,p;e[5]!==o.bericht||e[6]!==o.summe?(p=o.bericht?(0,A.jsx)(c,{children:l(o.summe)}):void 0,e[5]=o.bericht,e[6]=o.summe,e[7]=p):p=e[7];let g;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,A.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Ein Snapshot hält den Stand eines Geräts fest. Vor jedem Update legt der Orchestrator einen an (beim Proxmox Backup Server eine Sicherung) und räumt nach einem grünen Update die älteren weg. Hier legst du selbst welche an — die bleiben, bis du sie löschst —, setzt ein Gerät zurück oder löschst, was weg kann. Von Hand in Proxmox angelegte stehen nur zur Ansicht da.`}),e[8]=g):g=e[8];let v;e[9]===f?v=e[10]:(v=f&&(0,A.jsx)(`p`,{role:`alert`,className:`rounded-xl border border-bernstein/60 bg-bernstein-grund px-4 py-3 text-[15px] text-bernstein`,children:f}),e[9]=f,e[10]=v);let y;e[11]!==o.bericht||e[12]!==o.jetzt?(y=o.bericht?.veraltet&&(0,A.jsxs)(`p`,{className:`text-[15px] text-bernstein`,children:[`Der letzte Bericht ist von `,h(o.bericht.empfangen,o.jetzt),`; die Liste kann veraltet sein.`]}),e[11]=o.bericht,e[12]=o.jetzt,e[13]=y):y=e[13];let b;e[14]!==a||e[15]!==o||e[16]!==f?(b=o.bericht?(0,A.jsxs)(A.Fragment,{children:[!o.details&&(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Beschreibungen und die Größe der Sicherungen erscheinen, sobald der neue Ausführer auf dem Proxmox-Host läuft; bis dahin kommt der Zeitpunkt aus dem Namen des Snapshots.`}),(0,A.jsx)(B,{daten:o,gesperrt:a.isPending||!!f,onAktion:e=>a.mutate(e)}),(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wie viel ein Snapshot im Speicherpool belegt, sagt Proxmox nicht: Er teilt sich die Daten mit dem Gerät und wächst mit jeder Änderung seit seinem Zeitpunkt. Wie voll der Pool ist, steht im Cockpit unter „Speicher und Sicherungen“.`})]}):(0,A.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer hat noch keinen Bericht geschickt.`}),e[14]=a,e[15]=o,e[16]=f,e[17]=b):b=e[17];let S;return e[18]!==p||e[19]!==v||e[20]!==y||e[21]!==b?(S=(0,A.jsxs)(d,{titel:`Snapshots`,rechts:p,children:[g,v,y,b]}),e[18]=p,e[19]=v,e[20]=y,e[21]=b,e[22]=S):S=e[22],S}export{V as HomelabSnapshotsSeite}; \ No newline at end of file +import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{n as a,t as o}from"./undo-2-CJEVZ3Al.js";import{C as s,S as c,a as l,at as u,b as d,cn as f,n as p,nt as m,o as h,on as g,pt as _,r as v,s as y,t as b,wt as x}from"./index-CKWhFN2A.js";import{t as S}from"./button-D8rvET0Z.js";import{t as C}from"./Bestaetigen-CMlebyiw.js";var w={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};w.node;var T=f(w),E={name:`trash`,size:24,node:[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],aliases:[`trash-2`]};E.node;var D=f(E),O=t(),k=r(e(),1),A=n(),j=`grid grid-cols-[minmax(0,1fr)_auto] items-start gap-x-3 gap-y-1.5 border-t border-linie py-3 [grid-template-areas:'name_herkunft'_'zeit_zeit'_'text_text'_'knoepfe_knoepfe'] md:grid-rows-[auto_auto_1fr] md:gap-x-4 md:[grid-template-areas:'name_herkunft'_'zeit_knoepfe'_'text_knoepfe'] xl:grid-cols-[minmax(10.5rem,1.1fr)_7.5rem_minmax(0,1fr)_minmax(0,1.4fr)_11rem] xl:grid-rows-none xl:items-center xl:[grid-template-areas:'name_herkunft_zeit_text_knoepfe']`,M=`ziffern min-w-0 pt-1 text-sm break-words text-foreground [grid-area:name] xl:pt-0`,N=`justify-self-end [grid-area:herkunft] xl:justify-self-start`;function P(e){let t=(0,O.c)(11),{zeit:n,jetzt:r}=e,i;t[0]!==r||t[1]!==n?(i=h(n,r),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a;t[3]===i?a=t[4]:(a=(0,A.jsx)(`span`,{className:`ziffern text-text-2`,children:i}),t[3]=i,t[4]=a);let o;t[5]!==r||t[6]!==n?(o=n!==null&&(0,A.jsx)(`span`,{className:`text-text-3`,children:p(n,r)}),t[5]=r,t[6]=n,t[7]=o):o=t[7];let s;return t[8]!==a||t[9]!==o?(s=(0,A.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap items-baseline gap-x-2 text-sm [grid-area:zeit]`,children:[a,o]}),t[8]=a,t[9]=o,t[10]=s):s=t[10],s}function F(e){let t=(0,O.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,A.jsx)(`span`,{role:`cell`,className:`min-w-0 text-sm break-words text-text-2 [grid-area:text]`,children:n}),t[0]=n,t[1]=r),r}function I(e){let t=(0,O.c)(5),{children:n,ohne:r}=e,i;t[0]!==n||t[1]!==r?(i=r?(0,A.jsx)(`span`,{className:`text-xs text-text-3`,children:r}):n,t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;return t[3]===i?a=t[4]:(a=(0,A.jsx)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 [grid-area:knoepfe] md:flex-col md:items-stretch md:justify-self-end xl:justify-self-stretch`,children:i}),t[3]=i,t[4]=a),a}function L(e){let t=(0,O.c)(35),{g:n,s:r,jetzt:i,gesperrt:a,onFrage:s}=e,{loeschen:l,zuruecksetzen:u}=r,d=l||u?null:r.eigen?`Nicht freigegeben`:`Nur in Proxmox`,f;t[0]===r.name?f=t[1]:(f=(0,A.jsx)(`span`,{role:`rowheader`,className:M,children:r.name}),t[0]=r.name,t[1]=f);let p=b[r.herkunft],m=b[r.herkunft],h;t[2]===m.chip?h=t[3]:(h=(0,A.jsx)(c,{children:m.chip}),t[2]=m.chip,t[3]=h);let g;t[4]!==p.text||t[5]!==h?(g=(0,A.jsx)(`span`,{role:`cell`,className:N,title:p.text,children:h}),t[4]=p.text,t[5]=h,t[6]=g):g=t[6];let _;t[7]!==i||t[8]!==r.zeit?(_=(0,A.jsx)(P,{zeit:r.zeit,jetzt:i}),t[7]=i,t[8]=r.zeit,t[9]=_):_=t[9];let v;t[10]!==r.beschreibung||t[11]!==r.herkunft?(v=r.beschreibung??(0,A.jsx)(`span`,{className:`text-text-3`,children:b[r.herkunft].text}),t[10]=r.beschreibung,t[11]=r.herkunft,t[12]=v):v=t[12];let y;t[13]===v?y=t[14]:(y=(0,A.jsx)(F,{children:v}),t[13]=v,t[14]=y);let x;t[15]!==n||t[16]!==a||t[17]!==s||t[18]!==u?(x=u&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>s({name:n.name,aktion:u,gefahr:!0}),children:[(0,A.jsx)(o,{"aria-hidden":!0}),` Zurücksetzen`]}),t[15]=n,t[16]=a,t[17]=s,t[18]=u,t[19]=x):x=t[19];let C;t[20]!==n||t[21]!==a||t[22]!==l||t[23]!==s?(C=l&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>s({name:n.name,aktion:l,gefahr:!0}),children:[(0,A.jsx)(D,{"aria-hidden":!0}),` Löschen`]}),t[20]=n,t[21]=a,t[22]=l,t[23]=s,t[24]=C):C=t[24];let w;t[25]!==d||t[26]!==C||t[27]!==x?(w=(0,A.jsxs)(I,{ohne:d,children:[x,C]}),t[25]=d,t[26]=C,t[27]=x,t[28]=w):w=t[28];let T;return t[29]!==f||t[30]!==w||t[31]!==g||t[32]!==_||t[33]!==y?(T=(0,A.jsxs)(`div`,{role:`row`,className:j,children:[f,g,_,y,w]}),t[29]=f,t[30]=w,t[31]=g,t[32]=_,t[33]=y,t[34]=T):T=t[34],T}function R(e){let t=(0,O.c)(23),{g:n,e:r,jetzt:i,gesperrt:a,onFrage:o}=e,s;t[0]===r.groesse?s=t[1]:(s=v(r.groesse),t[0]=r.groesse,t[1]=s);let l=s,u=r.loeschen,d;t[2]===r.datei?d=t[3]:(d=(0,A.jsx)(`span`,{role:`rowheader`,className:M,children:r.datei}),t[2]=r.datei,t[3]=d);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,A.jsx)(`span`,{role:`cell`,className:N,children:(0,A.jsx)(c,{children:`Sicherung`})}),t[4]=f):f=t[4];let p;t[5]!==r.zeit||t[6]!==i?(p=(0,A.jsx)(P,{zeit:r.zeit,jetzt:i}),t[5]=r.zeit,t[6]=i,t[7]=p):p=t[7];let m=l?`${l} auf „${r.speicher}“`:`Auf „${r.speicher}“`,h;t[8]===m?h=t[9]:(h=(0,A.jsxs)(F,{children:[m,`, vor einem Update angelegt`]}),t[8]=m,t[9]=h);let g=u?null:`Nicht freigegeben`,_;t[10]!==n||t[11]!==a||t[12]!==u||t[13]!==o?(_=u&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:a,onClick:()=>o({name:n.name,aktion:u,gefahr:!0}),children:[(0,A.jsx)(D,{"aria-hidden":!0}),` Löschen`]}),t[10]=n,t[11]=a,t[12]=u,t[13]=o,t[14]=_):_=t[14];let y;t[15]!==g||t[16]!==_?(y=(0,A.jsx)(I,{ohne:g,children:_}),t[15]=g,t[16]=_,t[17]=y):y=t[17];let b;return t[18]!==d||t[19]!==p||t[20]!==h||t[21]!==y?(b=(0,A.jsxs)(`div`,{role:`row`,className:j,children:[d,f,p,h,y]}),t[18]=d,t[19]=p,t[20]=h,t[21]=y,t[22]=b):b=t[22],b}function z(e){let t=(0,O.c)(34),{g:n,jetzt:r,gesperrt:o,onFrage:s}=e,c=n.snapshots.length===0&&n.sicherungen.length===0,l=n.anlegen,u;t[0]===n.name?u=t[1]:(u=(0,A.jsx)(`h3`,{className:`text-[15px] font-semibold break-words`,children:n.name}),t[0]=n.name,t[1]=u);let d;t[2]===n.wo?d=t[3]:(d=(0,A.jsx)(`span`,{className:`text-sm text-text-3`,children:n.wo}),t[2]=n.wo,t[3]=d);let f;t[4]!==u||t[5]!==d?(f=(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[u,d]}),t[4]=u,t[5]=d,t[6]=f):f=t[6];let p;t[7]!==l||t[8]!==n.laeuft||t[9]!==n.name||t[10]!==o||t[11]!==s?(p=n.laeuft?(0,A.jsxs)(`p`,{role:`status`,className:`text-sm text-cyan`,children:[`Läuft: `,n.laeuft,` …`]}):l&&(0,A.jsxs)(S,{variant:`outline`,size:`sm`,disabled:o,onClick:()=>s({name:n.name,aktion:l,gefahr:!1}),children:[(0,A.jsx)(T,{"aria-hidden":!0}),` Snapshot anlegen`]}),t[7]=l,t[8]=n.laeuft,t[9]=n.name,t[10]=o,t[11]=s,t[12]=p):p=t[12];let m;t[13]!==f||t[14]!==p?(m=(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-4 gap-y-2`,children:[f,p]}),t[13]=f,t[14]=p,t[15]=m):m=t[15];let _;t[16]===n.grund?_=t[17]:(_=n.grund&&(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:n.grund}),t[16]=n.grund,t[17]=_);let v;t[18]!==n.name||t[19]!==n.zuletzt||t[20]!==r?(v=n.zuletzt&&(0,A.jsxs)(`p`,{className:i(`flex items-start gap-1.5 text-sm`,n.zuletzt.ok?`text-gruen-text`:`text-rot-text`),children:[n.zuletzt.ok?(0,A.jsx)(g,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}):(0,A.jsx)(a,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}),(0,A.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2`,children:[(0,A.jsx)(`span`,{className:`break-words`,children:y(n.zuletzt.text,n.name)}),(0,A.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:h(n.zuletzt.ende,r)})]})]}),t[18]=n.name,t[19]=n.zuletzt,t[20]=r,t[21]=v):v=t[21];let b;t[22]!==n||t[23]!==o||t[24]!==r||t[25]!==c||t[26]!==s?(b=c?(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Keine Snapshots.`}):(0,A.jsxs)(`div`,{role:`table`,"aria-label":`Snapshots von ${n.name}`,className:`flex flex-col`,children:[(0,A.jsxs)(`div`,{role:`row`,className:`sr-only`,children:[(0,A.jsx)(`span`,{role:`columnheader`,children:`Snapshot`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Herkunft`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Zeitpunkt`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Beschreibung`}),(0,A.jsx)(`span`,{role:`columnheader`,children:`Aktion`})]}),n.snapshots.map(e=>(0,A.jsx)(L,{g:n,s:e,jetzt:r,gesperrt:o,onFrage:s},e.name)),n.sicherungen.map(e=>(0,A.jsx)(R,{g:n,e,jetzt:r,gesperrt:o,onFrage:s},e.datei))]}),t[22]=n,t[23]=o,t[24]=r,t[25]=c,t[26]=s,t[27]=b):b=t[27];let x;return t[28]!==n.name||t[29]!==m||t[30]!==_||t[31]!==v||t[32]!==b?(x=(0,A.jsxs)(`section`,{"aria-label":n.name,className:`flex min-w-0 flex-col gap-2 border-t border-linie-stark pt-4 first:border-t-0 first:pt-0`,children:[m,_,v,b]}),t[28]=n.name,t[29]=m,t[30]=_,t[31]=v,t[32]=b,t[33]=x):x=t[33],x}function B(e){let t=(0,O.c)(24),{daten:n,gesperrt:r,onAktion:i}=e,[a,o]=(0,k.useState)(null),s;if(t[0]!==n.geraete||t[1]!==n.jetzt||t[2]!==r){let e;t[4]!==n.jetzt||t[5]!==r?(e=e=>(0,A.jsx)(z,{g:e,jetzt:n.jetzt,gesperrt:r||!!e.laeuft,onFrage:o},e.id),t[4]=n.jetzt,t[5]=r,t[6]=e):e=t[6],s=n.geraete.map(e),t[0]=n.geraete,t[1]=n.jetzt,t[2]=r,t[3]=s}else s=t[3];let c;t[7]===s?c=t[8]:(c=(0,A.jsx)(`div`,{className:`flex flex-col gap-5`,children:s}),t[7]=s,t[8]=c);let l=!!a,u=a?`${a.name}: ${a.aktion.label}`:``,d=a?.aktion.frage??``,f=a?.aktion.label??``,p=a?.gefahr,m;t[9]!==a||t[10]!==i?(m=()=>{a&&i(a.aktion),o(null)},t[9]=a,t[10]=i,t[11]=m):m=t[11];let h;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>o(null),t[12]=h):h=t[12];let g;t[13]!==r||t[14]!==l||t[15]!==u||t[16]!==d||t[17]!==f||t[18]!==p||t[19]!==m?(g=(0,A.jsx)(C,{offen:l,titel:u,text:d,knopf:f,gefahr:p,gesperrt:r,onJa:m,onNein:h}),t[13]=r,t[14]=l,t[15]=u,t[16]=d,t[17]=f,t[18]=p,t[19]=m,t[20]=g):g=t[20];let _;return t[21]!==g||t[22]!==c?(_=(0,A.jsxs)(A.Fragment,{children:[c,g]}),t[21]=g,t[22]=c,t[23]=_):_=t[23],_}function V(){let e=(0,O.c)(23),t=u(),n=_(),r=t.data?.rolle===`homelab`||!!(n.data?.eingerichtet&&n.data.erreichbar),i=m(r),a=x();if(t.isPending||n.isPending){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(s,{text:`Wird gelesen …`}),e[0]=t):t=e[0],t}if(!r){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(s,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[1]=t):t=e[1],t}if(i.isPending){let t;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(s,{text:`Die Snapshots werden gelesen …`}),e[2]=t):t=e[2],t}if(!i.data){let t=`Die Snapshots lassen sich nicht lesen: ${i.error?.message??`keine Daten`}`,n;return e[3]===t?n=e[4]:(n=(0,A.jsx)(s,{fehler:!0,text:t}),e[3]=t,e[4]=n),n}let o=i.data,f=o.sperre,p;e[5]!==o.bericht||e[6]!==o.summe?(p=o.bericht?(0,A.jsx)(c,{children:l(o.summe)}):void 0,e[5]=o.bericht,e[6]=o.summe,e[7]=p):p=e[7];let g;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,A.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Ein Snapshot hält den Stand eines Geräts fest. Vor jedem Update legt der Orchestrator einen an (beim Proxmox Backup Server eine Sicherung) und räumt nach einem grünen Update die älteren weg. Hier legst du selbst welche an — die bleiben, bis du sie löschst —, setzt ein Gerät zurück oder löschst, was weg kann. Von Hand in Proxmox angelegte stehen nur zur Ansicht da.`}),e[8]=g):g=e[8];let v;e[9]===f?v=e[10]:(v=f&&(0,A.jsx)(`p`,{role:`alert`,className:`rounded-xl border border-bernstein/60 bg-bernstein-grund px-4 py-3 text-[15px] text-bernstein`,children:f}),e[9]=f,e[10]=v);let y;e[11]!==o.bericht||e[12]!==o.jetzt?(y=o.bericht?.veraltet&&(0,A.jsxs)(`p`,{className:`text-[15px] text-bernstein`,children:[`Der letzte Bericht ist von `,h(o.bericht.empfangen,o.jetzt),`; die Liste kann veraltet sein.`]}),e[11]=o.bericht,e[12]=o.jetzt,e[13]=y):y=e[13];let b;e[14]!==a||e[15]!==o||e[16]!==f?(b=o.bericht?(0,A.jsxs)(A.Fragment,{children:[!o.details&&(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Beschreibungen und die Größe der Sicherungen erscheinen, sobald der neue Ausführer auf dem Proxmox-Host läuft; bis dahin kommt der Zeitpunkt aus dem Namen des Snapshots.`}),(0,A.jsx)(B,{daten:o,gesperrt:a.isPending||!!f,onAktion:e=>a.mutate(e)}),(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wie viel ein Snapshot im Speicherpool belegt, sagt Proxmox nicht: Er teilt sich die Daten mit dem Gerät und wächst mit jeder Änderung seit seinem Zeitpunkt. Wie voll der Pool ist, steht im Cockpit unter „Speicher und Sicherungen“.`})]}):(0,A.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Der Ausführer hat noch keinen Bericht geschickt.`}),e[14]=a,e[15]=o,e[16]=f,e[17]=b):b=e[17];let S;return e[18]!==p||e[19]!==v||e[20]!==y||e[21]!==b?(S=(0,A.jsxs)(d,{titel:`Snapshots`,rechts:p,children:[g,v,y,b]}),e[18]=p,e[19]=v,e[20]=y,e[21]=b,e[22]=S):S=e[22],S}export{V as HomelabSnapshotsSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/MenueSchublade-0T5uliTD.js b/frontend/dist/assets/MenueSchublade-B0vlMk4k.js similarity index 86% rename from frontend/dist/assets/MenueSchublade-0T5uliTD.js rename to frontend/dist/assets/MenueSchublade-B0vlMk4k.js index 89876cd..a59c361 100644 --- a/frontend/dist/assets/MenueSchublade-0T5uliTD.js +++ b/frontend/dist/assets/MenueSchublade-B0vlMk4k.js @@ -1 +1 @@ -import{n as e,r as t}from"./dist-D4CVSex9.js";import{E as n,T as r}from"./index-CIOHqG23.js";import{a as i,i as a,n as o,r as s,t as c}from"./sheet-DU78qfp_.js";var l=e(),u=t();function d(e){let t=(0,l.c)(8),{onSchliessen:d}=e,f;t[0]===d?f=t[1]:(f=e=>!e&&d(),t[0]=d,t[1]=f);let p;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,u.jsxs)(a,{className:`p-0`,children:[(0,u.jsx)(i,{asChild:!0,children:(0,u.jsx)(`div`,{children:(0,u.jsx)(r,{})})}),(0,u.jsx)(s,{className:`sr-only`,children:`Bereiche und Seiten`})]}),t[2]=p):p=t[2];let m;t[3]===d?m=t[4]:(m=(0,u.jsxs)(o,{side:`left`,className:`flex flex-col gap-6 border-linie bg-[#0c0f12] px-4 pt-5 pb-[calc(1.25rem+env(safe-area-inset-bottom))] data-[side=left]:w-[300px]`,children:[p,(0,u.jsx)(n,{onGewaehlt:d})]}),t[3]=d,t[4]=m);let h;return t[5]!==f||t[6]!==m?(h=(0,u.jsx)(c,{open:!0,onOpenChange:f,children:m}),t[5]=f,t[6]=m,t[7]=h):h=t[7],h}export{d as MenueSchublade}; \ No newline at end of file +import{n as e,r as t}from"./dist-D4CVSex9.js";import{E as n,T as r}from"./index-CKWhFN2A.js";import{a as i,i as a,n as o,r as s,t as c}from"./sheet-CHZtsS6E.js";var l=e(),u=t();function d(e){let t=(0,l.c)(8),{onSchliessen:d}=e,f;t[0]===d?f=t[1]:(f=e=>!e&&d(),t[0]=d,t[1]=f);let p;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,u.jsxs)(a,{className:`p-0`,children:[(0,u.jsx)(i,{asChild:!0,children:(0,u.jsx)(`div`,{children:(0,u.jsx)(r,{})})}),(0,u.jsx)(s,{className:`sr-only`,children:`Bereiche und Seiten`})]}),t[2]=p):p=t[2];let m;t[3]===d?m=t[4]:(m=(0,u.jsxs)(o,{side:`left`,className:`flex flex-col gap-6 border-linie bg-[#0c0f12] px-4 pt-5 pb-[calc(1.25rem+env(safe-area-inset-bottom))] data-[side=left]:w-[300px]`,children:[p,(0,u.jsx)(n,{onGewaehlt:d})]}),t[3]=d,t[4]=m);let h;return t[5]!==f||t[6]!==m?(h=(0,u.jsx)(c,{open:!0,onOpenChange:f,children:m}),t[5]=f,t[6]=m,t[7]=h):h=t[7],h}export{d as MenueSchublade}; \ No newline at end of file diff --git a/frontend/dist/assets/Modelle-Bh5l5QHZ.js b/frontend/dist/assets/Modelle-CpXbVZza.js similarity index 99% rename from frontend/dist/assets/Modelle-Bh5l5QHZ.js rename to frontend/dist/assets/Modelle-CpXbVZza.js index 19638d8..b056410 100644 --- a/frontend/dist/assets/Modelle-Bh5l5QHZ.js +++ b/frontend/dist/assets/Modelle-CpXbVZza.js @@ -1 +1 @@ -import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{n as a,t as o}from"./useSelector-uUwrspuX.js";import{n as s}from"./useMatch-CiyhmkMV.js";import{t as c}from"./chevron-right-4vXDP1Jj.js";import{t as l}from"./search-hyFAofkN.js";import{$t as u,B as d,Bt as f,C as p,Et as m,Ft as h,It as g,Pt as _,S as v,U as y,Vt as b,W as x,Wt as S,Xt as C,Yt as w,Zt as T,b as E,d as D,dt as O,en as k,f as A,fn as j,ft as M,gt as N,ht as P,it as F,lt as I,p as L,pn as R,ut as z,vt as B,yt as V,z as H}from"./index-CIOHqG23.js";import{t as U}from"./button-D8rvET0Z.js";import{a as W,i as G,n as K,r as ee,t as te}from"./sheet-DU78qfp_.js";import{t as ne}from"./Bestaetigen-D6CzMfJm.js";import{a as re,r as ie,s as ae,t as q}from"./Auftraege-CdBAGJi2.js";import{t as J}from"./breite-pBrnu3_s.js";function oe(e){let t=a();return o(t.stores.location,s(e,t))}var Y=t(),X=r(e(),1),Z=n(),Q=new Intl.NumberFormat(`de-DE`),se=240,ce=24,le={ArrowLeft:e=>Math.max(0,e-1),ArrowRight:(e,t)=>Math.min(t-1,e+1),Home:()=>0,End:(e,t)=>t-1};function ue(e){let t=(0,Y.c)(20),{saeule:n,reihen:r,summe:a,className:o,links:s}=e,c;t[0]===o?c=t[1]:(c=i(`flex flex-col gap-1 rounded-lg border border-linie-stark bg-erhaben px-3 py-2`,o),t[0]=o,t[1]=c);let l;t[2]===s?l=t[3]:(l=s===void 0?void 0:{left:s},t[2]=s,t[3]=l);let u;t[4]===n.lang?u=t[5]:(u=(0,Z.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:n.lang}),t[4]=n.lang,t[5]=u);let d;if(t[6]!==r||t[7]!==n.werte){let e;t[9]===n.werte?e=t[10]:(e=e=>(0,Z.jsxs)(`span`,{className:`flex items-baseline gap-2 text-sm`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 shrink-0 self-center rounded-full`,style:{background:e.farbe}}),(0,Z.jsx)(`span`,{className:`ziffern font-semibold text-foreground`,children:Q.format(n.werte[e.name]??0)}),(0,Z.jsx)(`span`,{className:`min-w-0 text-text-3`,children:e.name})]},e.name),t[9]=n.werte,t[10]=e),d=r.map(e),t[6]=r,t[7]=n.werte,t[8]=d}else d=t[8];let f;t[11]!==r.length||t[12]!==a?(f=r.length>1&&(0,Z.jsxs)(`span`,{className:`flex items-baseline gap-2 border-t border-linie pt-1 text-sm`,children:[(0,Z.jsx)(`span`,{className:`ziffern font-semibold text-foreground`,children:Q.format(a)}),(0,Z.jsx)(`span`,{className:`text-text-3`,children:`zusammen`})]}),t[11]=r.length,t[12]=a,t[13]=f):f=t[13];let p;return t[14]!==c||t[15]!==l||t[16]!==u||t[17]!==d||t[18]!==f?(p=(0,Z.jsxs)(`div`,{role:`status`,className:c,style:l,children:[u,d,f]}),t[14]=c,t[15]=l,t[16]=u,t[17]=d,t[18]=f,t[19]=p):p=t[19],p}function de(e){let t=(0,Y.c)(92),{saeulen:n,reihen:r,titel:a,summen:o,hoehe:s,spalte:c}=e,l=o===void 0?`alle`:o,u=s===void 0?200:s,d=c===void 0?`Zeitraum`:c,[f,p]=J(),[m,h]=(0,X.useState)(null),g=n.length,_,v,y,b,x,S,C,w,T,E;if(t[0]!==p||t[1]!==u||t[2]!==m||t[3]!==g||t[4]!==f||t[5]!==r||t[6]!==n||t[7]!==d||t[8]!==l||t[9]!==a){let e;t[20]===n?e=t[21]:(e=e=>n.some(t=>(t.werte[e.name]??0)>0),t[20]=n,t[21]=e);let o=r.filter(e),s=n.map(e=>o.reduce((t,n)=>t+(e.werte[n.name]??0),0)),c=Math.max(0,...s),O=L(c),k=O[O.length-1],j;t[22]===k?j=t[23]:(j=Q.format(k),t[22]=k,t[23]=j);let M=Math.max(28,j.length*7+12),N=n.some(ge)?34:22,P;t[24]!==M||t[25]!==N?(P={links:M,rechts:4,oben:20,unten:N},t[24]=M,t[25]=N,t[26]=P):P=t[26];let F=P,I=Math.max(1,p-F.links-F.rechts),R=u-F.oben-F.unten,z=I/Math.max(1,g),B=Math.min(ce,Math.max(3,z*.72)),V;t[27]!==R||t[28]!==k||t[29]!==F.oben?(V=e=>F.oben+R-e/k*R,t[27]=R,t[28]=k,t[29]=F.oben,t[30]=V):V=t[30];let H=V,U=F.oben+R,W;t[31]!==z||t[32]!==F.links?(W=e=>F.links+(e+.5)*z,t[31]=z,t[32]=F.links,t[33]=W):W=t[33];let G=W,K;t[34]===n?K=t[35]:(K=Math.max(1,...n.map(he)),t[34]=n,t[35]=K);let ee=K*6.6+8,te;t[36]!==z||t[37]!==ee?(te=[1,3,6,12].find(e=>e*z>=ee)??24,t[36]=z,t[37]=ee,t[38]=te):te=t[38];let ne=te,re=s.indexOf(c),ie=z<34,ae;t[39]===g?ae=t[40]:(ae=function(e){if(g===0)return;let t=e.currentTarget.getBoundingClientRect();h(Math.min(g-1,Math.max(0,Math.floor((e.clientX-t.left)/t.width*g))))},t[39]=g,t[40]=ae);let q=ae,J;t[41]===g?J=t[42]:(J=function(e){let t=le[e.key];g!==0&&t&&(e.preventDefault(),h(e=>t(e??g-1,g)))},t[41]=g,t[42]=J);let oe=J,Y=m===null?void 0:n[m],X=p>=360,de=m===null?0:Math.max(0,Math.min(p-se,G(m)+12+se>p?G(m)-12-se:G(m)+12));_=`flex flex-col gap-2`,v=o.length>1&&(0,Z.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:o.map(me)});let _e;t[43]===g?_e=t[44]:(_e=()=>h(e=>e??(g?g-1:null)),t[43]=g,t[44]=_e);let ve;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(ve=()=>h(null),t[45]=ve):ve=t[45];let ye;t[46]!==Y||t[47]!==z||t[48]!==m||t[49]!==R||t[50]!==F.links||t[51]!==F.oben?(ye=Y&&m!==null&&(0,Z.jsx)(`rect`,{x:F.links+m*z,y:F.oben-4,width:z,height:R+4,rx:4,fill:`var(--erhaben)`}),t[46]=Y,t[47]=z,t[48]=m,t[49]=R,t[50]=F.links,t[51]=F.oben,t[52]=ye):ye=t[52];let be;t[53]!==p||t[54]!==F.links||t[55]!==F.rechts||t[56]!==H?(be=e=>(0,Z.jsxs)(`g`,{children:[(0,Z.jsx)(`line`,{x1:F.links,x2:p-F.rechts,y1:H(e),y2:H(e),strokeWidth:1,stroke:e===0?`var(--linie-stark)`:`var(--linie)`}),(0,Z.jsx)(`text`,{x:F.links-8,y:H(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:Q.format(e)})]},e),t[53]=p,t[54]=F.links,t[55]=F.rechts,t[56]=H,t[57]=be):be=t[57];let xe;t[58]!==I||t[59]!==R||t[60]!==c||t[61]!==F.links||t[62]!==F.oben?(xe=c===0&&(0,Z.jsx)(`text`,{x:F.links+I/2,y:F.oben+R/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Keine Anfragen in diesem Zeitraum`}),t[58]=I,t[59]=R,t[60]=c,t[61]=F.links,t[62]=F.oben,t[63]=xe):xe=t[63];let Se;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(Se=e=>{e.pointerType!==`touch`&&h(null)},t[64]=Se):Se=t[64];let Ce;t[65]!==u||t[66]!==I||t[67]!==F.links||t[68]!==q?(Ce=(0,Z.jsx)(`rect`,{x:F.links,y:0,width:I,height:u,fill:`transparent`,onPointerMove:q,onPointerDown:q,onPointerLeave:Se}),t[65]=u,t[66]=I,t[67]=F.links,t[68]=q,t[69]=Ce):Ce=t[69],y=(0,Z.jsxs)(`div`,{ref:f,className:`relative w-full`,children:[(0,Z.jsxs)(`svg`,{width:p,height:u,viewBox:`0 0 ${p} ${u}`,role:`img`,"aria-label":a,tabIndex:0,onKeyDown:oe,onFocus:_e,onBlur:ve,className:`block h-auto max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[ye,O.map(be),n.map((e,t)=>{let n=G(t)-B/2;return(0,Z.jsxs)(`g`,{children:[A(o.map(t=>e.werte[t.name]??0),H).filter(pe).map(e=>e.oben?(0,Z.jsx)(`path`,{d:D(n,e.y,B,e.hoehe),fill:o[e.index].farbe},e.index):(0,Z.jsx)(`rect`,{x:n,y:e.y,width:B,height:e.hoehe,fill:o[e.index].farbe},e.index)),s[t]>0&&(l===`alle`||t===re)&&(0,Z.jsx)(`text`,{x:G(t),y:H(s[t])-6,textAnchor:`middle`,className:i(`fill-text-2 font-mono`,ie?`text-[10px]`:`text-[11px]`),children:Q.format(s[t])}),(e.raster??t)%ne===0&&(0,Z.jsxs)(`text`,{x:G(t),y:U+15,textAnchor:`middle`,className:`fill-text-3 font-mono text-[11px]`,children:[e.achse,e.achse2&&(0,Z.jsx)(`tspan`,{x:G(t),dy:13,className:`text-[10px]`,children:e.achse2})]})]},e.schluessel)}),xe,Ce]}),Y&&m!==null&&X&&(0,Z.jsx)(ue,{saeule:Y,reihen:o,summe:s[m],links:de,className:`pointer-events-none absolute top-1 z-10 w-60 shadow-lg`})]}),b=Y&&m!==null&&!X&&(0,Z.jsx)(ue,{saeule:Y,reihen:o,summe:s[m]}),T=`text-sm`,t[70]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Z.jsx)(`summary`,{className:`inline-flex cursor-pointer items-center text-text-3 hover:text-text-2`,children:`Werte als Tabelle`}),t[70]=E):E=t[70],w=`mt-2 overflow-x-auto`,S=`w-full border-collapse text-xs`;let we;t[71]===d?we=t[72]:(we=(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 pr-3 text-left font-normal`,children:d}),t[71]=d,t[72]=we),C=(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{className:`text-text-3`,children:[we,o.map(fe),o.length>1&&(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 text-right font-normal`,children:`Zusammen`})]})}),x=n.map((e,t)=>(0,Z.jsxs)(`tr`,{className:`border-t border-linie`,children:[(0,Z.jsx)(`th`,{scope:`row`,className:`py-1 pr-3 text-left font-normal text-text-3`,children:e.lang}),o.map(t=>(0,Z.jsx)(`td`,{className:`ziffern py-1 pr-3 text-right text-text-2`,children:Q.format(e.werte[t.name]??0)},t.name)),o.length>1&&(0,Z.jsx)(`td`,{className:`ziffern py-1 text-right text-foreground`,children:Q.format(s[t])})]},e.schluessel)),t[0]=p,t[1]=u,t[2]=m,t[3]=g,t[4]=f,t[5]=r,t[6]=n,t[7]=d,t[8]=l,t[9]=a,t[10]=_,t[11]=v,t[12]=y,t[13]=b,t[14]=x,t[15]=S,t[16]=C,t[17]=w,t[18]=T,t[19]=E}else _=t[10],v=t[11],y=t[12],b=t[13],x=t[14],S=t[15],C=t[16],w=t[17],T=t[18],E=t[19];let O;t[73]===x?O=t[74]:(O=(0,Z.jsx)(`tbody`,{children:x}),t[73]=x,t[74]=O);let k;t[75]!==O||t[76]!==S||t[77]!==C?(k=(0,Z.jsxs)(`table`,{className:S,children:[C,O]}),t[75]=O,t[76]=S,t[77]=C,t[78]=k):k=t[78];let j;t[79]!==k||t[80]!==w?(j=(0,Z.jsx)(`div`,{className:w,children:k}),t[79]=k,t[80]=w,t[81]=j):j=t[81];let M;t[82]!==j||t[83]!==T||t[84]!==E?(M=(0,Z.jsxs)(`details`,{className:T,children:[E,j]}),t[82]=j,t[83]=T,t[84]=E,t[85]=M):M=t[85];let N;return t[86]!==_||t[87]!==v||t[88]!==y||t[89]!==b||t[90]!==M?(N=(0,Z.jsxs)(`div`,{className:_,children:[v,y,b,M]}),t[86]=_,t[87]=v,t[88]=y,t[89]=b,t[90]=M,t[91]=N):N=t[91],N}function fe(e){return(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 pr-3 text-right font-normal [overflow-wrap:anywhere]`,children:e.name},e.name)}function pe(e){return e.hoehe>0}function me(e){return(0,Z.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.farbe}}),e.name]},e.name)}function he(e){return e.achse.length}function ge(e){return e.achse2}var _e=`Europe/Berlin`,ve=[`var(--reihe-1)`,`var(--reihe-2)`,`var(--reihe-3)`],ye={name:`Weitere`,farbe:`var(--reihe-weitere)`},be=new Intl.NumberFormat(`de-DE`),xe=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:1}),Se=new Intl.DateTimeFormat(`en-CA`,{timeZone:_e}),Ce=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:_e}),we=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,hourCycle:`h23`,timeZone:_e}),Te=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:`UTC`}),Ee=new Intl.DateTimeFormat(`de-DE`,{weekday:`long`,timeZone:`UTC`}),$=e=>be.format(e);function De(e){if(!(e>0))return`0 %`;let t=e*100;return t<.1?`unter 0,1 %`:`${t<10?xe.format(t):be.format(Math.round(t))} %`}function Oe(e,t=!1){if(e==null||!Number.isFinite(e)||e<0)return`–`;if(Math.round(e*1e3)<1e3)return`${Math.round(e*1e3)} ms`;if(e<9.95)return`${xe.format(e)} s`;let n=Math.round(e);if(n<60)return`${n} s`;if(n<3600&&!t)return n%60?`${Math.floor(n/60)} min ${n%60} s`:`${n/60} min`;let r=Math.round(e/60);return r<60?`${r} min`:r%60?`${Math.floor(r/60)} h ${r%60} min`:`${r/60} h`}var ke={400:`fehlerhafte Anfrage`,404:`nicht gefunden`,408:`Zeitüberschreitung`,413:`Anfrage zu groß`,429:`zu viele Anfragen`,499:`vom Absender abgebrochen`,500:`Fehler beim Modell`,502:`Modell nicht erreichbar`,503:`gerade nicht verfügbar`,504:`Zeitüberschreitung`};function Ae(e){return Object.entries(e??{}).sort(([e,t],[n,r])=>r-t||e.localeCompare(n)).map(([e,t])=>ke[e]?`${$(t)}× ${ke[e]} (${e})`:`${$(t)}× Status ${e}`).join(` · `)}function je(e){return e===null||e<.01?{art:`grau`,wort:null}:e>=.05?{art:`rot`,wort:`hoch`}:{art:`bernstein`,wort:`auffällig`}}var Me=e=>String(e).padStart(2,`0`),Ne=e=>Object.values(e??{}).reduce((e,t)=>e+t,0),Pe=e=>Te.format(e).replace(`.`,``);function Fe(e){return Number(we.formatToParts(e).find(e=>e.type===`hour`)?.value??0)%24}function Ie(e){let[,t,n]=e.split(`-`);return`${Ee.format(new Date(`${e}T12:00:00Z`))}, ${n}.${t}.`}function Le(e,t=new Date){let n=e.stand?new Date(e.stand):t,r=Se.format(n),i=new Date(Date.parse(`${r}T12:00:00Z`)-864e5).toISOString().slice(0,10),a=e.gesamt?.anfragen??e.absender.reduce((e,t)=>e+t.anfragen,0),o=e.gesamt?.dauer_summe_s??null,s=new Map(e.absender.map((e,t)=>[e.name,e.reihe??t])),c=e.absender.map(e=>{let t=s.get(e.name)??ve.length,n=t[e.name,e.reihe])),u=[];for(let e of[...c].sort((e,t)=>(s.get(e.name)??99)-(s.get(t.name)??99)))u.some(t=>t.name===e.reihe)||u.push({name:e.reihe,farbe:e.farbe});let d=e=>{let t={};for(let[n,r]of Object.entries(e??{})){let e=l.get(n)??ye.name;t[e]=(t[e]??0)+r,e===ye.name&&!u.some(t=>t.name===e)&&u.push({...ye})}return t},f=Object.keys(e.je_tag??{}).sort(),p=f.map(t=>{let i=t===r;return{schluessel:t,achse:Pe(new Date(`${t}T12:00:00Z`)),achse2:i?`heute`:`${Number(t.slice(8))}.`,lang:`${Ie(t)}${i?` (heute bis ${Ce.format(n)})`:``}`,werte:d(e.je_tag[t])}}),m;if(e.stunden?.length)m=e.stunden.map((e,t,n)=>{let a=new Date(e.beginn),o=Fe(a),s=Se.format(a),c=s===r?`Heute`:s===i?`Gestern`:Ie(s),l=t===n.length-1?` bis jetzt`:`–${Me((o+1)%24)}:00`;return{schluessel:e.beginn,achse:`${Me(o)}:00`,raster:o,lang:`${c} ${Me(o)}:00${l}`,werte:d(e.je_absender)}});else{let t=Fe(n),r=e.letzte_24h??[];m=[...r.slice(t+1),...r.slice(0,t+1)].map(e=>{let t=Number(e.stunde);return{schluessel:e.stunde,achse:`${Me(t)}:00`,raster:t,lang:`${Me(t)}:00–${Me((t+1)%24)}:00`,werte:d(e.je_absender)}})}let h=f.filter(e=>e!==r),g=e.seit?Se.format(new Date(e.seit)):null,_=e.ladevorgaenge??Object.entries(e.zuletzt_geladen??{}).sort(([,e],[,t])=>Date.parse(t)-Date.parse(e)).map(([e,t])=>({modell:e,anzahl:null,zeiten:[t]}));return{absender:c,reihen:u,tage:p,stunden:m,gesamt:{anfragen:a,fehler:e.gesamt?.fehler??null,fehlerCodes:e.gesamt?.fehler_codes??{},typisch:e.gesamt?.dauer_typisch_s??null,p90:e.gesamt?.dauer_p90_s??null,summe:o},heute:Ne(e.je_tag?.[r]),gestern:Ne(e.je_tag?.[i]),schnitt:h.length?h.reduce((t,n)=>t+Ne(e.je_tag[n]),0)/h.length:null,zeitraum:g?`seit ${Pe(new Date(`${g}T12:00:00Z`))} ${g.slice(8)}.${g.slice(5,7)}.`:`letzte ${e.tage} Tage`,stand:e.stand?Ce.format(n):null,modelle:_}}var Re={grau:`text-foreground`,bernstein:`text-bernstein`,rot:`text-rot-text`};function ze(e){let t=(0,Y.c)(13),{label:n,wert:r,zusatz:a,art:o}=e,s=o===void 0?`grau`:o,c;t[0]===n?c=t[1]:(c=(0,Z.jsx)(`span`,{className:`schild text-xs tracking-[0.18em] text-text-3`,children:n}),t[0]=n,t[1]=c);let l=Re[s],u;t[2]===l?u=t[3]:(u=i(`font-anzeige text-[28px] leading-none font-bold`,l),t[2]=l,t[3]=u);let d;t[4]!==u||t[5]!==r?(d=(0,Z.jsx)(`span`,{className:u,children:r}),t[4]=u,t[5]=r,t[6]=d):d=t[6];let f;t[7]===a?f=t[8]:(f=a&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:a}),t[7]=a,t[8]=f);let p;return t[9]!==c||t[10]!==d||t[11]!==f?(p=(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5 rounded-xl border border-linie bg-erhaben/50 px-3.5 py-3`,children:[c,d,f]}),t[9]=c,t[10]=d,t[11]=f,t[12]=p):p=t[12],p}var Be=`lg:grid-cols-[minmax(0,1.5fr)_minmax(0,1.4fr)_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,0.8fr)]`;function Ve(e){let t=(0,Y.c)(13),{label:n,wert:r,zusatz:a,leise:o}=e,s;t[0]===n?s=t[1]:(s=(0,Z.jsx)(`span`,{className:`text-xs text-text-3 lg:hidden`,children:n}),t[0]=n,t[1]=s);let c=o?`text-text-3`:`text-foreground`,l;t[2]===c?l=t[3]:(l=i(`ziffern text-sm`,c),t[2]=c,t[3]=l);let u;t[4]!==l||t[5]!==r?(u=(0,Z.jsx)(`span`,{className:l,children:r}),t[4]=l,t[5]=r,t[6]=u):u=t[6];let d;t[7]===a?d=t[8]:(d=a&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:a}),t[7]=a,t[8]=d);let f;return t[9]!==s||t[10]!==u||t[11]!==d?(f=(0,Z.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[s,u,d]}),t[9]=s,t[10]=u,t[11]=d,t[12]=f):f=t[12],f}function He(e){let t=(0,Y.c)(5),{zeilen:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsxs)(`div`,{role:`row`,className:i(`schild hidden gap-x-4 pb-2 text-xs text-text-3 lg:grid`,Be),children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Absender`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Anfragen`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Typische Antwort`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Rechenzeit`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Fehler`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`})]}),t[0]=r):r=t[0];let a;t[1]===n?a=t[2]:(a=n.map(Ue),t[1]=n,t[2]=a);let o;return t[3]===a?o=t[4]:(o=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Nutzung je Absender`,className:`flex flex-col`,children:[r,a]}),t[3]=a,t[4]=o),o}function Ue(e){return(0,Z.jsxs)(`div`,{role:`row`,className:i(`grid grid-cols-2 gap-x-4 gap-y-2.5 border-t border-linie py-3 lg:items-start`,Be),children:[(0,Z.jsxs)(`span`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-2 text-[15px] font-medium lg:col-span-1`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.farbe}}),(0,Z.jsx)(`span`,{className:`min-w-0 break-words`,children:e.name})]}),(0,Z.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex min-w-0 flex-col gap-1.5 lg:col-span-1`,children:[(0,Z.jsxs)(`span`,{className:`text-sm`,children:[(0,Z.jsx)(`span`,{className:`ziffern`,children:$(e.anfragen)}),(0,Z.jsxs)(`span`,{className:`text-text-3`,children:[` · `,De(e.anteil),` aller Anfragen`]})]}),(0,Z.jsx)(`span`,{className:`h-1.5 w-full max-w-56 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,Z.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:`${Math.max(1,e.anteil*100)}%`,background:e.farbe}})})]}),(0,Z.jsx)(Ve,{label:`Typische Antwort`,wert:Oe(e.typisch),zusatz:e.p90===null?void 0:`9 von 10 bis ${Oe(e.p90)}`}),(0,Z.jsx)(Ve,{label:`Rechenzeit`,wert:Oe(e.summe,!0),zusatz:e.zeitAnteil===null?void 0:`${De(e.zeitAnteil)} aller Rechenzeit`}),(0,Z.jsx)(Ve,{label:`Fehler`,leise:e.fehler===0,wert:e.fehler===null?`–`:e.fehler===0?`keine`:`${$(e.fehler)} · ${De(e.fehler/e.anfragen)}`,zusatz:e.fehler?Ae(e.fehlerCodes):void 0}),(0,Z.jsx)(Ve,{label:`Zuletzt`,wert:e.zuletzt?_(e.zuletzt):`–`})]},e.name)}function We(e){let t=(0,Y.c)(11),{titel:n,zusatz:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,Z.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:r}),t[2]=r,t[3]=o);let s;t[4]!==a||t[5]!==o?(s=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[a,o]}),t[4]=a,t[5]=o,t[6]=s):s=t[6];let c;return t[7]!==i||t[8]!==s||t[9]!==n?(c=(0,Z.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 rounded-xl border border-linie p-4`,children:[s,i]}),t[7]=i,t[8]=s,t[9]=n,t[10]=c):c=t[10],c}function Ge(e){let t=(0,Y.c)(29),{modelle:n,rollen:r}=e;if(n.length===0)return null;let i,a,o,s,l,u;if(t[0]!==n){let e=n.every(Je)?n.reduce(qe,0):null;u=`group rounded-xl border border-linie bg-erhaben/40 px-4 open:pb-2`,s=`flex min-h-12 cursor-pointer list-none flex-wrap items-center justify-between gap-x-3 gap-y-1 py-2 [&::-webkit-details-marker]:hidden`,t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,Z.jsx)(c,{className:`size-4 shrink-0 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Wann welches Modell geladen wurde`]}),t[7]=l):l=t[7],i=`ziffern text-sm text-text-2`,a=n.length===1?`1 Modell`:`${n.length} Modelle`,o=e===null?``:` · ${$(e)}× geladen`,t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=u}else i=t[1],a=t[2],o=t[3],s=t[4],l=t[5],u=t[6];let d;t[8]!==i||t[9]!==a||t[10]!==o?(d=(0,Z.jsxs)(`span`,{className:i,children:[a,o]}),t[8]=i,t[9]=a,t[10]=o,t[11]=d):d=t[11];let f;t[12]!==s||t[13]!==l||t[14]!==d?(f=(0,Z.jsxs)(`summary`,{className:s,children:[l,d]}),t[12]=s,t[13]=l,t[14]=d,t[15]=f):f=t[15];let p;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsx)(`p`,{className:`pb-1 text-sm text-text-2`,children:`Gezählt wird, wie oft sich ein Modell nach dem Laden bereit meldete: nach einem Neustart von llama-swap oder wenn es auf Abruf gebraucht wurde.`}),t[16]=p):p=t[16];let m;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Z.jsxs)(`div`,{role:`row`,className:`schild hidden gap-x-4 py-2 text-xs text-text-3 sm:grid sm:grid-cols-[minmax(0,1.5fr)_70px_130px_minmax(0,1.5fr)]`,children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Modell`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Geladen`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Davor`})]}),t[17]=m):m=t[17];let h;if(t[18]!==n||t[19]!==r){let e;t[21]===r?e=t[22]:(e=e=>(0,Z.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto] gap-x-4 gap-y-1 border-t border-linie py-2.5 sm:grid-cols-[minmax(0,1.5fr)_70px_130px_minmax(0,1.5fr)] sm:items-baseline`,children:[(0,Z.jsxs)(`span`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.modell}),r[e.modell]&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:r[e.modell]})]}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-sm text-text-2 sm:text-left`,children:e.anzahl===null?`–`:`${$(e.anzahl)}×`}),(0,Z.jsxs)(`span`,{role:`cell`,className:`ziffern col-span-2 text-xs text-text-2 sm:col-span-1`,children:[(0,Z.jsx)(`span`,{className:`font-sans text-text-3 sm:hidden`,children:`zuletzt `}),_(e.zeiten[0])]}),(0,Z.jsxs)(`span`,{role:`cell`,className:`ziffern col-span-2 text-xs text-text-3 sm:col-span-1`,children:[e.zeiten.length>1&&(0,Z.jsx)(`span`,{className:`font-sans sm:hidden`,children:`davor `}),e.zeiten.length>1?e.zeiten.slice(1,4).map(Ke).join(` · `):(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:`–`})]})]},e.modell),t[21]=r,t[22]=e),h=n.map(e),t[18]=n,t[19]=r,t[20]=h}else h=t[20];let g;t[23]===h?g=t[24]:(g=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Ladevorgänge je Modell`,className:`flex flex-col`,children:[m,h]}),t[23]=h,t[24]=g);let v;return t[25]!==g||t[26]!==u||t[27]!==f?(v=(0,Z.jsxs)(`details`,{className:u,children:[f,p,g]}),t[25]=g,t[26]=u,t[27]=f,t[28]=v):v=t[28],v}function Ke(e){return _(e)}function qe(e,t){return e+(t.anzahl??0)}function Je(e){return e.anzahl!==null}function Ye(e){let t=(0,Y.c)(23),{nutzung:n,laedt:r,fehler:i,rollen:a}=e,o;t[0]===a?o=t[1]:(o=a===void 0?{}:a,t[0]=a,t[1]=o);let s=o;if(!n){let e;return t[2]!==i||t[3]!==r?(e=(0,Z.jsx)(E,{titel:`Wer nutzt die Modelle`,children:r?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Nutzung lässt sich gerade nicht lesen`,i?`: ${i}`:`.`]})}),t[2]=i,t[3]=r,t[4]=e):e=t[4],e}let c,l,u,d,f;if(t[5]!==n){l=Le(n);let e=l.gesamt,r=e.fehler!==null&&e.anfragen?e.fehler/e.anfragen:null,i;t[11]===r?i=t[12]:(i=je(r),t[11]=r,t[12]=i);let a=i;c=E,u=`Wer nutzt die Modelle`,d=(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[l.zeitraum,l.stand?` · Stand ${l.stand}`:``]}),f=e.anfragen===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Anfragen aufgezeichnet.`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,Z.jsx)(ze,{label:`Anfragen`,wert:$(e.anfragen),zusatz:l.schnitt===null?void 0:`im Schnitt ${$(Math.round(l.schnitt))} am Tag`}),(0,Z.jsx)(ze,{label:`Heute`,wert:$(l.heute),zusatz:`${l.stand?`bis ${l.stand} · `:``}gestern ${$(l.gestern)}`}),(0,Z.jsx)(ze,{label:`Typische Antwort`,wert:Oe(e.typisch),zusatz:e.p90===null?void 0:`9 von 10 bis ${Oe(e.p90)}`}),(0,Z.jsx)(ze,{label:`Fehler`,wert:e.fehler===null?`–`:$(e.fehler),art:a.art,zusatz:e.fehler===null?void 0:e.fehler===0?`alle beantwortet`:`${De(r??0)} der Anfragen${a.wort?` · ${a.wort}`:``}`})]}),(0,Z.jsx)(He,{zeilen:l.absender}),(0,Z.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,Z.jsx)(We,{titel:`Anfragen je Tag`,zusatz:`letzte 7 Tage, heute bis jetzt`,children:(0,Z.jsx)(de,{saeulen:l.tage,reihen:l.reihen,spalte:`Tag`,titel:`Anfragen je Tag der letzten 7 Tage, gestapelt nach Absender`})}),(0,Z.jsx)(We,{titel:`Anfragen je Stunde`,zusatz:`letzte 24 Stunden`,children:(0,Z.jsx)(de,{saeulen:l.stunden,reihen:l.reihen,spalte:`Stunde`,summen:`hoechste`,titel:`Anfragen je Stunde der letzten 24 Stunden, gestapelt nach Absender`})})]})]}),t[5]=n,t[6]=c,t[7]=l,t[8]=u,t[9]=d,t[10]=f}else c=t[6],l=t[7],u=t[8],d=t[9],f=t[10];let p;t[13]!==l.modelle||t[14]!==s?(p=(0,Z.jsx)(Ge,{modelle:l.modelle,rollen:s}),t[13]=l.modelle,t[14]=s,t[15]=p):p=t[15];let m;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat-Anfragen an llama-swap, gelesen aus seinem Protokoll und alle 10 Minuten neu gerechnet. NerdQuiz fragt direkt dort an, Lucy und OpenChamber über MC2. Antwortzeit: bis die Antwort ganz da war. Rechenzeit: alle Antwortzeiten zusammen, gleichzeitige Anfragen zählen einzeln.`}),t[16]=m):m=t[16];let h;return t[17]!==c||t[18]!==u||t[19]!==d||t[20]!==f||t[21]!==p?(h=(0,Z.jsxs)(c,{titel:u,rechts:d,children:[f,p,m]}),t[17]=c,t[18]=u,t[19]=d,t[20]=f,t[21]=p,t[22]=h):h=t[22],h}var Xe={coder:`Coder`};function Ze(e){let t=(0,Y.c)(102),{offen:n,onSchliessen:r,rollenJetzt:i}=e,a=F(),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(null),[p,m]=(0,X.useState)(``),[h,_]=(0,X.useState)(null),v=(0,X.useRef)(!1),y,b;t[0]===c?(y=t[1],b=t[2]):(y=[`hf-suche`,c],b=()=>k(`/api/hf/search?q=${encodeURIComponent(c)}`),t[0]=c,t[1]=y,t[2]=b);let x=c.length>1,S;t[3]!==y||t[4]!==b||t[5]!==x?(S={queryKey:y,queryFn:b,enabled:x},t[3]=y,t[4]=b,t[5]=x,t[6]=S):S=t[6];let C=j(S),w,T;t[7]===u?(w=t[8],T=t[9]):(w=[`hf-quants`,u],T=()=>k(`/api/hf/quants?repo=${encodeURIComponent(u??``)}`),t[7]=u,t[8]=w,t[9]=T);let E=!!u,D;t[10]!==w||t[11]!==T||t[12]!==E?(D={queryKey:w,queryFn:T,enabled:E},t[10]=w,t[11]=T,t[12]=E,t[13]=D):D=t[13];let O=j(D),A,M,N,P,I,L,R,z,B,V,H,re,q;if(t[14]!==h||t[15]!==o||t[16]!==a||t[17]!==n||t[18]!==r||t[19]!==O.data||t[20]!==O.error||t[21]!==O.isError||t[22]!==O.isFetching||t[23]!==u||t[24]!==p||t[25]!==i||t[26]!==C){let e=(O.data?.quants??[]).map($e),c=p?Xe[p]??p:null,y;t[40]!==u||t[41]!==p||t[42]!==i||t[43]!==c?(y=c&&u?ae(u,c,i[p]):null,t[40]=u,t[41]=p,t[42]=i,t[43]=c,t[44]=y):y=t[44],N=y;let b;t[45]!==h||t[46]!==a||t[47]!==r||t[48]!==u||t[49]!==p?(b=function(){u&&h&&!v.current&&(v.current=!0,a.mutate({repo:u,quant:h.quant,rolle:p||null},{onSuccess:e=>{_(null),e.ok!==!1&&r()},onError:()=>_(null),onSettled:()=>{v.current=!1}}))},t[45]=h,t[46]=a,t[47]=r,t[48]=u,t[49]=p,t[50]=b):b=t[50],P=b,M=te,H=n,t[51]===r?re=t[52]:(re=e=>!e&&r(),t[51]=r,t[52]=re),A=K,R=`right`,z=`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-xl`,t[53]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,Z.jsxs)(G,{children:[(0,Z.jsx)(W,{className:`schild text-lg`,children:`Modelle selbst suchen`}),(0,Z.jsx)(ee,{className:`text-text-2`,children:`Auf Hugging Face suchen, Quantisierung wählen, installieren.`})]}),t[53]=B):B=t[53];let x;t[54]===o?x=t[55]:(x=e=>{e.preventDefault(),d(null),l(o.trim())},t[54]=o,t[55]=x);let S;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Z.jsx)(`label`,{htmlFor:`hf-suche`,className:`sr-only`,children:`Suchbegriff`}),t[56]=S):S=t[56];let w;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>s(e.target.value),t[57]=w):w=t[57];let T;t[58]===o?T=t[59]:(T=(0,Z.jsx)(`input`,{id:`hf-suche`,value:o,onChange:w,placeholder:`z. B. Qwen3.8 GGUF`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),t[58]=o,t[59]=T);let E;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Z.jsx)(U,{type:`submit`,children:`Suchen`}),t[60]=E):E=t[60],t[61]!==x||t[62]!==T?(V=(0,Z.jsxs)(`form`,{className:`flex gap-2 px-4`,onSubmit:x,children:[S,T,E]}),t[61]=x,t[62]=T,t[63]=V):V=t[63],q=`flex flex-col px-4 pb-4`,t[64]!==u||t[65]!==C?(I=!u&&(0,Z.jsxs)(Z.Fragment,{children:[C.isFetching&&(0,Z.jsx)(`p`,{role:`status`,className:`py-3 text-sm text-text-2`,children:`Suche läuft …`}),!C.isFetching&&C.isError&&(0,Z.jsxs)(`p`,{role:`alert`,className:`py-3 text-sm text-rot-text`,children:[`Die Suche ging nicht: `,C.error.message]}),!C.isFetching&&C.data?.results.length===0&&(0,Z.jsx)(`p`,{className:`py-3 text-sm text-text-2`,children:`Keine Treffer. Versuch einen anderen Suchbegriff — oder Hugging Face ist gerade nicht erreichbar.`}),C.data?.results.map(e=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>d(e.repo),className:`flex min-h-11 items-center justify-between gap-3 border-t border-linie py-2 text-left hover:text-cyan`,children:[(0,Z.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:e.repo}),(0,Z.jsxs)(`span`,{className:`ziffern shrink-0 text-xs text-text-3`,children:[f(e.downloads),` ↓`]})]},e.repo))]}),t[64]=u,t[65]=C,t[66]=I):I=t[66],L=u&&(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 pt-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:u}),(0,Z.jsx)(U,{variant:`ghost`,size:`sm`,onClick:()=>d(null),children:`Zurück`})]}),(0,Z.jsxs)(`label`,{className:`flex flex-wrap items-center gap-3 text-sm text-text-2`,children:[`Rolle`,(0,Z.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`h-11 min-w-0 rounded-lg border border-linie-stark bg-erhaben px-3 text-foreground`,children:[(0,Z.jsx)(`option`,{value:``,children:`ohne Rolle (nur installieren)`}),Object.entries(Xe).map(Qe)]})]}),N&&(0,Z.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-sm leading-relaxed text-bernstein`,children:N}),O.isFetching&&(0,Z.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Quantisierungen werden gelesen …`}),!O.isFetching&&O.isError&&(0,Z.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Dateien dieses Modells ließen sich nicht lesen: `,O.error.message]}),!O.isFetching&&O.data&&e.length===0&&(0,Z.jsx)(`p`,{className:`text-sm text-text-2`,children:`Hier gibt es keine GGUF-Dateien, die sich installieren lassen.`}),e.map(e=>{let t=e.quant??e.name??`?`,n=e.total_bytes??e.size_bytes;return(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm`,children:t}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[n?(0,Z.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:g(n,1)}):null,(0,Z.jsx)(U,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:()=>_({quant:t,bytes:n}),children:`Installieren`})]})]},t)})]}),t[14]=h,t[15]=o,t[16]=a,t[17]=n,t[18]=r,t[19]=O.data,t[20]=O.error,t[21]=O.isError,t[22]=O.isFetching,t[23]=u,t[24]=p,t[25]=i,t[26]=C,t[27]=A,t[28]=M,t[29]=N,t[30]=P,t[31]=I,t[32]=L,t[33]=R,t[34]=z,t[35]=B,t[36]=V,t[37]=H,t[38]=re,t[39]=q}else A=t[27],M=t[28],N=t[29],P=t[30],I=t[31],L=t[32],R=t[33],z=t[34],B=t[35],V=t[36],H=t[37],re=t[38],q=t[39];let J;t[67]!==I||t[68]!==L||t[69]!==q?(J=(0,Z.jsxs)(`div`,{className:q,children:[I,L]}),t[67]=I,t[68]=L,t[69]=q,t[70]=J):J=t[70];let oe=h!==null,Q;t[71]!==h||t[72]!==u?(Q=h&&u?`${u} (${h.quant}${h.bytes?`, ${g(h.bytes,1)}`:``}) wird heruntergeladen und in llama-swap eingetragen.`+(h.bytes?``:` Die Größe siehst du beim Auftrag, sobald der Download läuft.`):``,t[71]=h,t[72]=u,t[73]=Q):Q=t[73];let se=a.isPending?`Wird gestartet …`:`Installieren`,ce=a.isPending,le;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(le=()=>_(null),t[74]=le):le=t[74];let ue;t[75]===N?ue=t[76]:(ue=N&&(0,Z.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-[15px] leading-relaxed text-bernstein`,children:N}),t[75]=N,t[76]=ue);let de=!!p,fe;t[77]===de?fe=t[78]:(fe=ie(de),t[77]=de,t[78]=fe);let pe;t[79]===fe?pe=t[80]:(pe=(0,Z.jsx)(`p`,{className:`m-0 text-[15px] leading-relaxed text-text-2`,children:fe}),t[79]=fe,t[80]=pe);let me;t[81]!==a.isPending||t[82]!==P||t[83]!==oe||t[84]!==Q||t[85]!==se||t[86]!==ue||t[87]!==pe?(me=(0,Z.jsxs)(ne,{offen:oe,titel:`Modell installieren?`,text:Q,knopf:se,gesperrt:ce,onNein:le,onJa:P,children:[ue,pe]}),t[81]=a.isPending,t[82]=P,t[83]=oe,t[84]=Q,t[85]=se,t[86]=ue,t[87]=pe,t[88]=me):me=t[88];let he;t[89]!==A||t[90]!==R||t[91]!==z||t[92]!==B||t[93]!==V||t[94]!==J||t[95]!==me?(he=(0,Z.jsxs)(A,{side:R,className:z,children:[B,V,J,me]}),t[89]=A,t[90]=R,t[91]=z,t[92]=B,t[93]=V,t[94]=J,t[95]=me,t[96]=he):he=t[96];let ge;return t[97]!==M||t[98]!==H||t[99]!==re||t[100]!==he?(ge=(0,Z.jsx)(M,{open:H,onOpenChange:re,children:he}),t[97]=M,t[98]=H,t[99]=re,t[100]=he,t[101]=ge):ge=t[101],ge}function Qe(e){let[t,n]=e;return(0,Z.jsx)(`option`,{value:t,children:n},t)}function $e(e){return typeof e==`string`?{quant:e}:e}var et=115;function tt(e){let t=(0,Y.c)(55),{modelle:n,laufend:r}=e,i=b(),a=m(),o,s,c,l,u,d,f,p,g,_;if(t[0]!==r||t[1]!==i?.ram_total||t[2]!==i?.ram_used||t[3]!==n||t[4]!==a){let e=h(i?.ram_total??a.data?.box.ram_total)??122.7,m=h(i?.ram_used??a.data?.box.ram_used)??0,v;t[15]===r?v=t[16]:(v=e=>r.includes(e.name),t[15]=r,t[16]=v);let y=n.filter(v).reduce(nt,0);s=Math.max(0,m-y);let b=t=>`${Math.min(100,t/e*100)}%`;o=E,p=`Speicher`,g=(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[Math.round(m),` von `,Math.round(e),` GB belegt · Grenze ~`,et,` GB`]});let x=`Speicher: ${Math.round(m)} von ${Math.round(e)} GB belegt`,S=b(m),C;t[17]===S?C=t[18]:(C={width:S},t[17]=S,t[18]=C);let w=`${m?y/m*100:0}%`,T;t[19]===w?T=t[20]:(T=(0,Z.jsx)(`div`,{className:`h-full bg-cyan`,style:{width:w}}),t[19]=w,t[20]=T);let D=`${m?s/m*100:0}%`,O;t[21]===D?O=t[22]:(O=(0,Z.jsx)(`div`,{className:`h-full bg-cyan/35`,style:{width:D}}),t[21]=D,t[22]=O);let k;t[23]!==C||t[24]!==T||t[25]!==O?(k=(0,Z.jsxs)(`div`,{className:`absolute inset-y-0 left-0 flex overflow-hidden rounded-lg`,style:C,children:[T,O]}),t[23]=C,t[24]=T,t[25]=O,t[26]=k):k=t[26];let A=b(et),j;t[27]===A?j=t[28]:(j=(0,Z.jsx)(`div`,{className:`absolute -top-1.5 -bottom-1.5 w-0.5 bg-bernstein`,style:{left:A}}),t[27]=A,t[28]=j),t[29]!==x||t[30]!==k||t[31]!==j?(_=(0,Z.jsxs)(`div`,{className:`relative h-8 rounded-lg bg-erhaben`,role:`img`,"aria-label":x,children:[k,j]}),t[29]=x,t[30]=k,t[31]=j,t[32]=_):_=t[32],f=`flex flex-wrap gap-x-6 gap-y-2 text-sm text-text-2`,c=`flex items-center gap-2`,t[33]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan`}),t[33]=l):l=t[33],u=` Geladene Modelle: `,d=Math.round(y),t[0]=r,t[1]=i?.ram_total,t[2]=i?.ram_used,t[3]=n,t[4]=a,t[5]=o,t[6]=s,t[7]=c,t[8]=l,t[9]=u,t[10]=d,t[11]=f,t[12]=p,t[13]=g,t[14]=_}else o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],f=t[11],p=t[12],g=t[13],_=t[14];let v;t[34]!==c||t[35]!==l||t[36]!==u||t[37]!==d?(v=(0,Z.jsxs)(`span`,{className:c,children:[l,u,d,` GB Dateien`]}),t[34]=c,t[35]=l,t[36]=u,t[37]=d,t[38]=v):v=t[38];let y;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Z.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan/35`}),t[39]=y):y=t[39];let x;t[40]===s?x=t[41]:(x=Math.round(s),t[40]=s,t[41]=x);let S;t[42]===x?S=t[43]:(S=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[y,` Cache, Dienste, System: `,x,` GB`]}),t[42]=x,t[43]=S);let C;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`h-3 w-0.5 bg-bernstein`}),` Ab hier wird es eng`]}),t[44]=C):C=t[44];let w;t[45]!==S||t[46]!==f||t[47]!==v?(w=(0,Z.jsxs)(`div`,{className:f,children:[v,S,C]}),t[45]=S,t[46]=f,t[47]=v,t[48]=w):w=t[48];let T;return t[49]!==o||t[50]!==w||t[51]!==p||t[52]!==g||t[53]!==_?(T=(0,Z.jsxs)(o,{titel:p,rechts:g,children:[_,w]}),t[49]=o,t[50]=w,t[51]=p,t[52]=g,t[53]=_,t[54]=T):T=t[54],T}function nt(e,t){return e+(h(t.size_bytes)??0)}function rt(e){let t=(0,Y.c)(7),{name:n,wert:r}=e,i;t[0]===n?i=t[1]:(i=(0,Z.jsx)(`dt`,{className:`text-xs text-text-3`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,Z.jsx)(`dd`,{className:`ziffern m-0 text-lg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function it(e){let t=(0,Y.c)(48),{titel:n,modell:r,zwilling:i,laeuft:a,nutzer:o}=e,s=z();if(!r){let e;t[0]===n?e=t[1]:(e=(0,Z.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[0]=n,t[1]=e);let r;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsx)(v,{children:`Frei`}),t[2]=r):r=t[2];let i;t[3]===e?i=t[4]:(i=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[e,r]}),t[3]=e,t[4]=i);let a,o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(`h3`,{className:`font-anzeige text-xl font-semibold text-text-2`,children:`Nicht belegt`}),o=(0,Z.jsx)(`p`,{className:`text-sm text-text-2`,children:`Nur belegen, wenn ein Modell hier echten Mehrwert bringt. Das Radar meldet Kandidaten.`}),t[5]=a,t[6]=o):(a=t[5],o=t[6]);let s;return t[7]===i?s=t[8]:(s=(0,Z.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-dashed border-linie-stark p-5`,children:[i,a,o]}),t[7]=i,t[8]=s),s}let c;t[9]!==r.ctx||t[10]!==r.parallel_slots?(c=r.ctx?Math.round(r.ctx/Math.max(1,r.parallel_slots)/1024):null,t[9]=r.ctx,t[10]=r.parallel_slots,t[11]=c):c=t[11];let l=c,u=!!r.capabilities?.vision||!!i,d;t[12]===n?d=t[13]:(d=(0,Z.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[12]=n,t[13]=d);let f=a?`gruen`:`grau`,p=a?`Geladen`:`Auf Abruf`,m;t[14]!==f||t[15]!==p?(m=(0,Z.jsx)(v,{art:f,children:p}),t[14]=f,t[15]=p,t[16]=m):m=t[16];let h;t[17]!==d||t[18]!==m?(h=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[d,m]}),t[17]=d,t[18]=m,t[19]=h):h=t[19];let _;t[20]===r.name?_=t[21]:(_=(0,Z.jsx)(`h3`,{className:`ziffern m-0 text-lg font-medium break-all`,children:r.name}),t[20]=r.name,t[21]=_);let y;t[22]===r.size_bytes?y=t[23]:(y=g(r.size_bytes),t[22]=r.size_bytes,t[23]=y);let b;t[24]===y?b=t[25]:(b=(0,Z.jsx)(rt,{name:`Größe`,wert:y}),t[24]=y,t[25]=b);let x=l?`${l}k`:`–`,S;t[26]===x?S=t[27]:(S=(0,Z.jsx)(rt,{name:`Kontext`,wert:x}),t[26]=x,t[27]=S);let C=u?`ja`:`nein`,w;t[28]===C?w=t[29]:(w=(0,Z.jsx)(rt,{name:`Bilder`,wert:C}),t[28]=C,t[29]=w);let T;t[30]!==S||t[31]!==w||t[32]!==b?(T=(0,Z.jsxs)(`dl`,{className:`m-0 grid grid-cols-3 gap-3`,children:[b,S,w]}),t[30]=S,t[31]=w,t[32]=b,t[33]=T):T=t[33];let E=r.spec_active?` Mit Draft-Beschleunigung.`:``,D=i?` Bilder sieht es über seinen Bild-Zwilling, der nur bei Bedarf lädt.`:``,O;t[34]!==o||t[35]!==E||t[36]!==D?(O=(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Genutzt von `,o,`.`,E,D]}),t[34]=o,t[35]=E,t[36]=D,t[37]=O):O=t[37];let k;t[38]!==s||t[39]!==a||t[40]!==r.name?(k=!a&&(0,Z.jsx)(U,{variant:`outline`,size:`sm`,className:`mt-auto self-start`,onClick:()=>s.mutate(r.name),disabled:s.isPending,children:`Jetzt laden`}),t[38]=s,t[39]=a,t[40]=r.name,t[41]=k):k=t[41];let A;return t[42]!==T||t[43]!==O||t[44]!==k||t[45]!==h||t[46]!==_?(A=(0,Z.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-linie bg-panel p-5`,children:[h,_,T,O,k]}),t[42]=T,t[43]=O,t[44]=k,t[45]=h,t[46]=_,t[47]=A):A=t[47],A}var at={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`,getestet:`grau`,uebernommen:`gruen`,verworfen:`grau`},ot={besser:`text-gruen`,schlechter:`text-rot-text`,gleich:`text-text-2`};function st(e){let t=(0,Y.c)(4),{test:n}=e,r,i;if(t[0]!==n.vergleich){i=Symbol.for(`react.early_return_sentinel`);bb0:{let e=Object.entries(n.vergleich??{});if(e.length===0){i=null;break bb0}let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsxs)(`div`,{role:`row`,className:`schild grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 pb-1 text-xs text-text-3`,children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Messwert`}),(0,Z.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Kandidat`}),(0,Z.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Heute`})]}),t[3]=a):a=t[3],r=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Messwerte gegen das heutige Modell`,className:`rounded-lg border border-linie bg-erhaben/50 px-3 py-2 text-sm`,children:[a,e.map(ct)]})}t[0]=n.vergleich,t[1]=r,t[2]=i}else r=t[1],i=t[2];return i===Symbol.for(`react.early_return_sentinel`)?r:i}function ct(e){let[t,n]=e;return(0,Z.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 border-t border-linie py-1`,children:[(0,Z.jsx)(`span`,{role:`rowheader`,className:`text-text-2`,children:t}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right ${ot[n.urteil??``]??`text-text-2`}`,children:C(n.kandidat,n.einheit)}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-text-3`,children:C(n.baseline,n.einheit)})]},t)}function lt(e){let t=(0,Y.c)(80),{k:n,test:r,heute:i}=e,a=N(),o=V(),[s,c]=(0,X.useState)(null),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=[`bestanden`,`wartet`,`neu`,`getestet`],t[0]=l):l=t[0];let u=l.includes(n.status),d=n.rolle===`hirn`,f;t[1]===n.name?f=t[2]:(f=(0,Z.jsx)(`span`,{className:`ziffern text-[15px] font-medium`,children:n.name}),t[1]=n.name,t[2]=f);let p=d?`fürs Hirn`:`fürs Coden`,m;t[3]===p?m=t[4]:(m=(0,Z.jsx)(v,{art:`cyan`,children:p}),t[3]=p,t[4]=m);let h;t[5]!==n.eng||t[6]!==n.groesse_gb||t[7]!==n.passt?(h=n.groesse_gb!=null&&(0,Z.jsx)(v,{art:n.eng?`bernstein`:n.passt?`gruen`:`rot`,children:n.eng?`passt knapp`:n.passt?`passt`:`passt nicht`}),t[5]=n.eng,t[6]=n.groesse_gb,t[7]=n.passt,t[8]=h):h=t[8];let g=at[n.status]??`grau`,_=S[n.status]??n.status,y;t[9]!==g||t[10]!==_?(y=(0,Z.jsx)(v,{art:g,children:_}),t[9]=g,t[10]=_,t[11]=y):y=t[11];let b;t[12]!==f||t[13]!==m||t[14]!==h||t[15]!==y?(b=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[f,m,h,y]}),t[12]=f,t[13]=m,t[14]=h,t[15]=y,t[16]=b):b=t[16];let x;t[17]===n.groesse_gb?x=t[18]:(x=n.groesse_gb==null?``:`${n.groesse_gb.toLocaleString(`de-DE`)} GB. `,t[17]=n.groesse_gb,t[18]=x);let C;t[19]!==n.begruendung||t[20]!==x?(C=(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[x,n.begruendung]}),t[19]=n.begruendung,t[20]=x,t[21]=C):C=t[21];let w;t[22]!==n.status||t[23]!==r?(w=r&&[`bestanden`,`durchgefallen`].includes(n.status)&&(0,Z.jsx)(st,{test:r}),t[22]=n.status,t[23]=r,t[24]=w):w=t[24];let T;t[25]!==n.begruendung||t[26]!==n.testbar_grund?(T=n.testbar_grund&&!n.begruendung.startsWith(`Läuft gerade`)&&(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:n.testbar_grund}),t[25]=n.begruendung,t[26]=n.testbar_grund,t[27]=T):T=t[27];let E;t[28]!==a.isPending||t[29]!==n.status||t[30]!==n.testbar_jetzt||t[31]!==u||t[32]!==o.isPending?(E=u&&(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.testbar_jetzt&&(0,Z.jsx)(U,{variant:`info`,size:`sm`,disabled:o.isPending,onClick:()=>c(`testen`),children:`Jetzt testen`}),n.status===`bestanden`&&(0,Z.jsx)(U,{size:`sm`,disabled:a.isPending,onClick:()=>c(`uebernehmen`),children:`Übernehmen`}),(0,Z.jsx)(U,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:()=>c(`verwerfen`),children:`Verwerfen`})]}),t[28]=a.isPending,t[29]=n.status,t[30]=n.testbar_jetzt,t[31]=u,t[32]=o.isPending,t[33]=E):E=t[33];let D=s===`uebernehmen`,O=`${n.name} übernehmen?`,k=d?`${n.name} wird Lucys Hirn${i?` und löst ${i} ab`:``}. NerdQuiz und OpenChamber nutzen ab dann ebenfalls das neue Modell. Hermes startet dafür kurz neu, Lucy ist etwa eine Minute nicht erreichbar. Das alte Modell bleibt auf der Platte.`:`${n.name} wird der Coder${i?` und löst ${i} ab`:``}. OpenChamber plant und baut ab dann damit. Das alte Modell bleibt auf der Platte.`,A;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>c(null),t[34]=A):A=t[34];let j;t[35]!==a||t[36]!==s||t[37]!==n.id||t[38]!==n.name?(j=()=>{s===`uebernehmen`&&(a.mutate({id:n.id,aktion:`uebernehmen`,name:n.name}),c(null))},t[35]=a,t[36]=s,t[37]=n.id,t[38]=n.name,t[39]=j):j=t[39];let M;t[40]!==a.isPending||t[41]!==D||t[42]!==O||t[43]!==k||t[44]!==j?(M=(0,Z.jsx)(ne,{offen:D,titel:O,text:k,knopf:`Übernehmen`,gesperrt:a.isPending,onNein:A,onJa:j}),t[40]=a.isPending,t[41]=D,t[42]=O,t[43]=k,t[44]=j,t[45]=M):M=t[45];let P=s===`testen`,F=`${n.name} jetzt testen?`,I;t[46]===n.groesse_gb?I=t[47]:(I=n.groesse_gb==null?``:` (${n.groesse_gb.toLocaleString(`de-DE`)} GB)`,t[46]=n.groesse_gb,t[47]=I);let L=`Das Radar lädt ${n.name}${I} herunter, falls nötig, misst das heutige Modell der Rolle und dann den Kandidaten. Das dauert je nach Download eine halbe bis zwei Stunden. Solange antworten Lucy und NerdQuiz etwas langsamer; ein geladener Coder wird dafür entladen, und wird er währenddessen gebraucht, bricht der Test ab. Das Ergebnis kommt als Meldung; fällt der Kandidat durch, werden seine Dateien gelöscht.`,R;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(R=()=>c(null),t[48]=R):R=t[48];let z;t[49]!==s||t[50]!==n.id||t[51]!==n.name||t[52]!==o?(z=()=>{s===`testen`&&(o.mutate({id:n.id,name:n.name}),c(null))},t[49]=s,t[50]=n.id,t[51]=n.name,t[52]=o,t[53]=z):z=t[53];let B;t[54]!==P||t[55]!==F||t[56]!==L||t[57]!==z||t[58]!==o.isPending?(B=(0,Z.jsx)(ne,{offen:P,titel:F,text:L,knopf:`Jetzt testen`,gesperrt:o.isPending,onNein:R,onJa:z}),t[54]=P,t[55]=F,t[56]=L,t[57]=z,t[58]=o.isPending,t[59]=B):B=t[59];let H=s===`verwerfen`,W=`${n.name} verwerfen?`,G;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>c(null),t[60]=G):G=t[60];let K;t[61]!==a||t[62]!==s||t[63]!==n.id||t[64]!==n.name?(K=()=>{s===`verwerfen`&&(a.mutate({id:n.id,aktion:`verwerfen`,name:n.name}),c(null))},t[61]=a,t[62]=s,t[63]=n.id,t[64]=n.name,t[65]=K):K=t[65];let ee;t[66]!==a.isPending||t[67]!==H||t[68]!==W||t[69]!==K?(ee=(0,Z.jsx)(ne,{offen:H,gefahr:!0,titel:W,text:`Die heruntergeladenen Dateien werden gelöscht, und das Radar testet dieses Modell nicht noch einmal.`,knopf:`Verwerfen`,gesperrt:a.isPending,onNein:G,onJa:K}),t[66]=a.isPending,t[67]=H,t[68]=W,t[69]=K,t[70]=ee):ee=t[70];let te;return t[71]!==C||t[72]!==w||t[73]!==T||t[74]!==E||t[75]!==M||t[76]!==B||t[77]!==ee||t[78]!==b?(te=(0,Z.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3.5`,children:[b,C,w,T,E,M,B,ee]}),t[71]=C,t[72]=w,t[73]=T,t[74]=E,t[75]=M,t[76]=B,t[77]=ee,t[78]=b,t[79]=te):te=t[79],te}function ut(e){let t=(0,Y.c)(30),{hirn:n,coder:r}=e,i=P(),a=B(),o=I(),s=R(),c=o.data?.jobs,l=(c??[]).filter(ft).at(-1),d=a.data?.job_id,f;t[0]!==d||t[1]!==c?(f=!!d&&!!c&&!c.some(e=>e.id===d),t[0]=d,t[1]=c,t[2]=f):f=t[2];let p=f,m=a.isPending||p||l!==void 0&&w(l),h=(0,X.useRef)(m);if((0,X.useEffect)(()=>{h.current&&!m&&s.invalidateQueries({queryKey:[`radar`]}),h.current=m},[m,s]),i.isError&&!i.data){let e=i.error instanceof u&&i.error.status===404,n;return t[3]!==e||t[4]!==i.error?(n=(0,Z.jsx)(E,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,children:e?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Das Radar ist auf dieser Box noch nicht eingerichtet.`}):(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Radar antwortet gerade nicht: `,i.error.message]})}),t[3]=e,t[4]=i.error,t[5]=n):n=t[5],n}let g=i.data,v=E,y;t[6]===a?y=t[7]:(y=()=>a.mutate(void 0),t[6]=a,t[7]=y);let b=m?`Sucht …`:`Jetzt suchen`,x;t[8]!==m||t[9]!==y||t[10]!==b?(x=(0,Z.jsx)(U,{variant:`info`,size:`sm`,onClick:y,disabled:m,children:b}),t[8]=m,t[9]=y,t[10]=b,t[11]=x):x=t[11];let S;t[12]===g?S=t[13]:(S=g?.naechster_test?` Nächster Test: ${_(g.naechster_test)}.`:``,t[12]=g,t[13]=S);let C=m?` Sucht gerade bei Hugging Face. Das dauert ein paar Minuten; den Stand zeigt der Auftrag oben unter „Aufträge“.`:``,T;t[14]!==S||t[15]!==C?(T=(0,Z.jsxs)(`p`,{className:`-mt-2 text-sm text-text-2`,children:[`Testet nachts zwischen 00:30 und 02:30 selbst, höchstens einen Kandidaten pro Woche. Tagsüber geht es mit „Jetzt testen“, wenn der Kandidat samt Coder in den Speicher passt.`,S,C]}),t[14]=S,t[15]=C,t[16]=T):T=t[16];let D=!m&&l?.state===`failed`&&(0,Z.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die letzte Suche ist gescheitert: `,re(l)??`ohne Meldung`]}),O;t[17]!==r||t[18]!==g||t[19]!==n?(O=g?g.kandidaten.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}):(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:g.kandidaten.map(e=>(0,Z.jsx)(lt,{k:e,test:g.tests.find(t=>t.kandidat===e.id),heute:e.rolle===`hirn`?n:r},e.id))}):(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),t[17]=r,t[18]=g,t[19]=n,t[20]=O):O=t[20];let k;t[21]===g?k=t[22]:(k=g&&g.tests.length>0&&(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`h3`,{className:`schild text-xs text-text-3`,children:`Letzte Tests`}),g.tests.slice(0,3).map(dt)]}),t[21]=g,t[22]=k);let A;return t[23]!==v||t[24]!==T||t[25]!==D||t[26]!==O||t[27]!==k||t[28]!==x?(A=(0,Z.jsxs)(v,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,rechts:x,children:[T,D,O,k]}),t[23]=v,t[24]=T,t[25]=D,t[26]=O,t[27]=k,t[28]=x,t[29]=A):A=t[29],A}function dt(e){return(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-text-3`,children:_(e.datum)}),` · `,e.zusammenfassung]},e.id)}function ft(e){return e.group===`radar`}var pt=`text-rot-text hover:bg-rot-grund hover:text-rot-text`;function mt(e){let t=(0,Y.c)(13),{titel:n,zusatz:r,children:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(c,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[a,n]}),t[1]=n,t[2]=o);let s;t[3]===r?s=t[4]:(s=(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[3]=r,t[4]=s);let l;t[5]!==o||t[6]!==s?(l=(0,Z.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[o,s]}),t[5]=o,t[6]=s,t[7]=l):l=t[7];let u;t[8]===i?u=t[9]:(u=(0,Z.jsx)(`div`,{className:`flex flex-col gap-2 pb-1`,children:i}),t[8]=i,t[9]=u);let d;return t[10]!==l||t[11]!==u?(d=(0,Z.jsxs)(`details`,{className:`group rounded-xl border border-linie bg-erhaben/40 px-4 open:pb-2`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12],d}function ht(){let e=(0,Y.c)(37),t=y(),n=x(),[r,i]=(0,X.useState)(null),a,o,s,c,l,u;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n){u=Symbol.for(`react.early_return_sentinel`);bb0:{let r=t.data?.kandidaten??[],d=r.reduce(gt,0);if(t.isError&&!t.data){let n;e[11]===t.error.message?n=e[12]:(n=(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Was sich aufräumen ließe, lässt sich gerade nicht lesen: `,t.error.message]}),e[11]=t.error.message,e[12]=n);let r;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsx)(vt,{}),e[13]=r):r=e[13];let i;e[14]===n?i=e[15]:(i=(0,Z.jsxs)(E,{titel:`Aufräumen`,children:[n,r]}),e[14]=n,e[15]=i),u=i;break bb0}a=E,o=`Aufräumen`,s=r.length>0?(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`bis zu `,d.toLocaleString(`de-DE`,{maximumFractionDigits:0}),` GB frei`]}):void 0,e[16]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsx)(`p`,{className:`-mt-2 text-sm text-text-2`,children:`Modelle und Ordner, die gerade niemand nutzt. Nichts davon wird von selbst gelöscht, das entscheidest du je Eintrag.`}),e[16]=c):c=e[16],l=t.isPending?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):r.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts aufzuräumen.`}):(0,Z.jsx)(mt,{titel:`Modelle und Ordner`,zusatz:`${r.length} Einträge · bis zu ${d.toLocaleString(`de-DE`,{maximumFractionDigits:0})} GB`,children:(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,Z.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.name}),(0,Z.jsx)(v,{children:e.art===`eintrag`?`Eintrag`:`Ordner`})]}),(0,Z.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[e.groesse_gb.toLocaleString(`de-DE`),` GB`]}),(0,Z.jsx)(U,{variant:`ghost`,size:`sm`,className:pt,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},`${e.art}-${e.name}`))})})}e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n,e[5]=a,e[6]=o,e[7]=s,e[8]=c,e[9]=l,e[10]=u}else a=e[5],o=e[6],s=e[7],c=e[8],l=e[9],u=e[10];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d=r!==null,f=`${r?.name??``} löschen?`,p;e[17]===r?.groesse_gb?p=e[18]:(p=r?.groesse_gb.toLocaleString(`de-DE`)??``,e[17]=r?.groesse_gb,e[18]=p);let m=`${r?.hinweis??``} Es werden ${p} GB frei. Das lässt sich nicht rückgängig machen — zurück ginge es nur mit einem neuen Download.`,h;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>i(null),e[19]=h):h=e[19];let g;e[20]!==r||e[21]!==n?(g=()=>{r&&n.mutate(r),i(null)},e[20]=r,e[21]=n,e[22]=g):g=e[22];let _;e[23]!==n.isPending||e[24]!==g||e[25]!==d||e[26]!==f||e[27]!==m?(_=(0,Z.jsx)(ne,{offen:d,gefahr:!0,titel:f,text:m,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:h,onJa:g}),e[23]=n.isPending,e[24]=g,e[25]=d,e[26]=f,e[27]=m,e[28]=_):_=e[28];let b;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Z.jsx)(vt,{}),e[29]=b):b=e[29];let S;return e[30]!==a||e[31]!==o||e[32]!==s||e[33]!==_||e[34]!==c||e[35]!==l?(S=(0,Z.jsxs)(a,{titel:o,rechts:s,children:[c,l,_,b]}),e[30]=a,e[31]=o,e[32]=s,e[33]=_,e[34]=c,e[35]=l,e[36]=S):S=e[36],S}function gt(e,t){return e+t.groesse_gb}function _t(e){return e>=1e9?`${(e/1e9).toLocaleString(`de-DE`,{maximumFractionDigits:1})} GB`:e>=1e6?`${Math.round(e/1e6)} MB`:e>=1e3?`${Math.round(e/1e3)} KB`:`unter 1 KB`}function vt(){let e=(0,Y.c)(23),t=d(),n=H(),[r,i]=(0,X.useState)(null),a,o;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n.isPending){let r=t.data?.altreste??[],s=r.reduce(yt,0);a=`flex flex-col gap-2`,o=t.isPending?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):t.isError&&!t.data?(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Altreste lassen sich gerade nicht lesen: `,t.error.message]}):r.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Altreste mehr.`}):(0,Z.jsxs)(mt,{titel:`Altreste neben dem Betrieb`,zusatz:`${r.length} Einträge · ${_t(s)}`,children:[(0,Z.jsx)(`p`,{className:`text-sm text-text-2`,children:`Test-Ordner, alte Umgebungen und Arbeitskopien, die nichts mehr nutzt. Die Box prüft sie gegen eine feste Liste und löscht auch hier nie von selbst.`}),(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,Z.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm`,children:e.name}),(0,Z.jsx)(v,{children:`Altrest`})]}),(0,Z.jsx)(`span`,{className:`ziffern text-xs break-all text-text-3`,children:e.pfade.join(` · `)}),(0,Z.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:e.groesse}),(0,Z.jsx)(U,{variant:`ghost`,size:`sm`,className:pt,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},e.id))})]}),e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n.isPending,e[5]=a,e[6]=o}else a=e[5],o=e[6];let s=r!==null,c=`${r?.name??``} löschen?`,l;e[7]===r?.pfade?l=e[8]:(l=r?.pfade.join(`, `)??``,e[7]=r?.pfade,e[8]=l);let u=`${r?.hinweis??``} Gelöscht wird: ${l} (${r?.groesse??``}). Das lässt sich nicht rückgängig machen.`,f;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>i(null),e[9]=f):f=e[9];let p;e[10]!==r||e[11]!==n?(p=()=>{r&&n.mutate(r),i(null)},e[10]=r,e[11]=n,e[12]=p):p=e[12];let m;e[13]!==n.isPending||e[14]!==s||e[15]!==c||e[16]!==u||e[17]!==p?(m=(0,Z.jsx)(ne,{offen:s,gefahr:!0,titel:c,text:u,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:f,onJa:p}),e[13]=n.isPending,e[14]=s,e[15]=c,e[16]=u,e[17]=p,e[18]=m):m=e[18];let h;return e[19]!==a||e[20]!==o||e[21]!==m?(h=(0,Z.jsxs)(`div`,{className:a,children:[o,m]}),e[19]=a,e[20]=o,e[21]=m,e[22]=h):h=e[22],h}function yt(e,t){return e+t.groesse_bytes}function bt(){let e=(0,Y.c)(69),t=O(),n=M(),r=P(),i=I(),[a,o]=(0,X.useState)(!1),s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s={select:wt},e[0]=s):s=e[0];let c=oe(s),u=!!t.data&&!n.isPending&&!r.isPending&&!i.isPending,d,f;if(e[1]!==u||e[2]!==c?(d=()=>{u&&c===`radar`&&document.getElementById(`radar`)?.scrollIntoView({block:`start`})},f=[u,c],e[1]=u,e[2]=c,e[3]=d,e[4]=f):(d=e[3],f=e[4]),(0,X.useEffect)(d,f),t.isPending){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(p,{text:`Modelle werden gelesen …`}),e[5]=t):t=e[5],t}if(!t.data){let n=`Die Modell-Liste fehlt: ${t.error?.message??`keine Daten`}`,r;return e[6]===n?r=e[7]:(r=(0,Z.jsx)(p,{fehler:!0,text:n}),e[6]=n,e[7]=r),r}let m=t.data.models,h=t.data.running,v,y,b,x,S,C,w,T,D,k,A,j,N;if(e[8]!==h||e[9]!==m||e[10]!==n.data||e[11]!==n.error?.message||e[12]!==n.isPending){let t=m.find(Ct);y=m.find(St);let r;e[26]===m?r=e[27]:(r=(e,t)=>e?m.find(n=>n!==e&&n.aliases.includes(t)&&n.filename===e.filename):void 0,e[26]=m,e[27]=r);let i=r,a=i(t,`vision`);b=i(y,`coder-bild`);let s=m.filter(e=>![t,y,a,b].includes(e)),c;e[28]===n.data?.zuletzt_geladen?c=e[29]:(c=n.data?.zuletzt_geladen??{},e[28]=n.data?.zuletzt_geladen,e[29]=c);let u=c,d={};for(let[e,n]of[[t,`Hirn`],[y,`Coder`],[a,`Bild-Zwilling des Hirns`],[b,`Bild-Zwilling des Coders`]])e&&(d[e.name]=n);e[30]!==h||e[31]!==m?(j=(0,Z.jsx)(tt,{modelle:m,laufend:h}),e[30]=h,e[31]=m,e[32]=j):j=e[32],e[33]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Z.jsx)(q,{alsPanel:!0}),e[33]=N):N=e[33];let f;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(it,{titel:`Dritte Rolle`,laeuft:!1,nutzer:``}),e[34]=f):f=e[34],x=(0,Z.jsxs)(`section`,{"aria-label":`Rollen`,className:`grid gap-5 md:grid-cols-3 md:gap-6`,children:[(0,Z.jsx)(it,{titel:`Hirn`,modell:t,zwilling:a,laeuft:!!t&&h.includes(t.name),nutzer:`Lucy, NerdQuiz und OpenChamber für Kleinkram`}),(0,Z.jsx)(it,{titel:`Coder`,modell:y,zwilling:b,laeuft:!!y&&h.includes(y.name),nutzer:`OpenChamber zum Planen und Bauen und Lucys Delegation`}),f]}),S=(0,Z.jsx)(Ye,{nutzung:n.data,laedt:n.isPending,fehler:n.error?.message??null,rollen:d});let p=t?.name,O=y?.name;e[35]!==p||e[36]!==O?(C=(0,Z.jsx)(ut,{hirn:p,coder:O}),e[35]=p,e[36]=O,e[37]=C):C=e[37],v=E,D=`Weitere Einträge`,e[38]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Z.jsxs)(U,{variant:`outline`,size:`sm`,onClick:()=>o(!0),children:[(0,Z.jsx)(l,{"aria-hidden":!0}),` Modelle selbst suchen`]}),e[38]=k):k=e[38],A=s.length===0&&(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine weiteren Einträge.`}),w=`m-0 flex list-none flex-col p-0`;let M;e[39]!==h||e[40]!==u?(M=e=>(0,Z.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 border-t border-linie py-2.5 sm:grid-cols-[minmax(0,1fr)_120px_160px]`,children:[(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`ziffern block text-sm break-all`,children:e.name}),(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:e.aliases.length?e.aliases.join(`, `):`ohne Rolle`})]}),(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:g(e.size_bytes)}),(0,Z.jsx)(`span`,{className:`ziffern hidden text-xs text-text-3 sm:block`,children:h.includes(e.name)?`geladen`:u[e.name]?`zuletzt ${_(u[e.name])}`:`länger nicht geladen`})]},e.name),e[39]=h,e[40]=u,e[41]=M):M=e[41],T=s.map(M),e[8]=h,e[9]=m,e[10]=n.data,e[11]=n.error?.message,e[12]=n.isPending,e[13]=v,e[14]=y,e[15]=b,e[16]=x,e[17]=S,e[18]=C,e[19]=w,e[20]=T,e[21]=D,e[22]=k,e[23]=A,e[24]=j,e[25]=N}else v=e[13],y=e[14],b=e[15],x=e[16],S=e[17],C=e[18],w=e[19],T=e[20],D=e[21],k=e[22],A=e[23],j=e[24],N=e[25];let F;e[42]!==w||e[43]!==T?(F=(0,Z.jsx)(`ul`,{className:w,children:T}),e[42]=w,e[43]=T,e[44]=F):F=e[44];let L;e[45]!==v||e[46]!==F||e[47]!==D||e[48]!==k||e[49]!==A?(L=(0,Z.jsxs)(v,{titel:D,rechts:k,children:[A,F]}),e[45]=v,e[46]=F,e[47]=D,e[48]=k,e[49]=A,e[50]=L):L=e[50];let R;e[51]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,Z.jsx)(ht,{}),e[51]=R):R=e[51];let z;e[52]===Symbol.for(`react.memo_cache_sentinel`)?(z=()=>o(!1),e[52]=z):z=e[52];let B;e[53]!==y||e[54]!==b?(B=y?{name:y.name,zwilling:!!b,weitere:y.aliases.filter(xt)}:void 0,e[53]=y,e[54]=b,e[55]=B):B=e[55];let V;e[56]===B?V=e[57]:(V={coder:B},e[56]=B,e[57]=V);let H;e[58]!==a||e[59]!==V?(H=(0,Z.jsx)(Ze,{offen:a,onSchliessen:z,rollenJetzt:V}),e[58]=a,e[59]=V,e[60]=H):H=e[60];let W;return e[61]!==x||e[62]!==S||e[63]!==C||e[64]!==L||e[65]!==H||e[66]!==j||e[67]!==N?(W=(0,Z.jsxs)(Z.Fragment,{children:[j,N,x,S,C,L,R,H]}),e[61]=x,e[62]=S,e[63]=C,e[64]=L,e[65]=H,e[66]=j,e[67]=N,e[68]=W):W=e[68],W}function xt(e){return e.toLowerCase()!==`coder`}function St(e){return T(e)===`coder`}function Ct(e){return T(e)===`hirn`}function wt(e){return e.hash}export{lt as Kandidat,bt as ModelleSeite}; \ No newline at end of file +import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{n as a,t as o}from"./useSelector-uUwrspuX.js";import{n as s}from"./useMatch-CiyhmkMV.js";import{t as c}from"./chevron-right-lErM2U6o.js";import{t as l}from"./search-DDxMRsny.js";import{$t as u,B as d,Bt as f,C as p,Et as m,Ft as h,It as g,Pt as _,S as v,U as y,Vt as b,W as x,Wt as S,Xt as C,Yt as w,Zt as T,b as E,d as D,dt as O,en as k,f as A,fn as j,ft as M,gt as N,ht as P,it as F,lt as I,p as L,pn as R,ut as z,vt as B,yt as V,z as H}from"./index-CKWhFN2A.js";import{t as U}from"./button-D8rvET0Z.js";import{a as W,i as G,n as K,r as ee,t as te}from"./sheet-CHZtsS6E.js";import{t as ne}from"./Bestaetigen-CMlebyiw.js";import{a as re,r as ie,s as ae,t as q}from"./Auftraege-BO4bSQmr.js";import{t as J}from"./breite-pBrnu3_s.js";function oe(e){let t=a();return o(t.stores.location,s(e,t))}var Y=t(),X=r(e(),1),Z=n(),Q=new Intl.NumberFormat(`de-DE`),se=240,ce=24,le={ArrowLeft:e=>Math.max(0,e-1),ArrowRight:(e,t)=>Math.min(t-1,e+1),Home:()=>0,End:(e,t)=>t-1};function ue(e){let t=(0,Y.c)(20),{saeule:n,reihen:r,summe:a,className:o,links:s}=e,c;t[0]===o?c=t[1]:(c=i(`flex flex-col gap-1 rounded-lg border border-linie-stark bg-erhaben px-3 py-2`,o),t[0]=o,t[1]=c);let l;t[2]===s?l=t[3]:(l=s===void 0?void 0:{left:s},t[2]=s,t[3]=l);let u;t[4]===n.lang?u=t[5]:(u=(0,Z.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:n.lang}),t[4]=n.lang,t[5]=u);let d;if(t[6]!==r||t[7]!==n.werte){let e;t[9]===n.werte?e=t[10]:(e=e=>(0,Z.jsxs)(`span`,{className:`flex items-baseline gap-2 text-sm`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 shrink-0 self-center rounded-full`,style:{background:e.farbe}}),(0,Z.jsx)(`span`,{className:`ziffern font-semibold text-foreground`,children:Q.format(n.werte[e.name]??0)}),(0,Z.jsx)(`span`,{className:`min-w-0 text-text-3`,children:e.name})]},e.name),t[9]=n.werte,t[10]=e),d=r.map(e),t[6]=r,t[7]=n.werte,t[8]=d}else d=t[8];let f;t[11]!==r.length||t[12]!==a?(f=r.length>1&&(0,Z.jsxs)(`span`,{className:`flex items-baseline gap-2 border-t border-linie pt-1 text-sm`,children:[(0,Z.jsx)(`span`,{className:`ziffern font-semibold text-foreground`,children:Q.format(a)}),(0,Z.jsx)(`span`,{className:`text-text-3`,children:`zusammen`})]}),t[11]=r.length,t[12]=a,t[13]=f):f=t[13];let p;return t[14]!==c||t[15]!==l||t[16]!==u||t[17]!==d||t[18]!==f?(p=(0,Z.jsxs)(`div`,{role:`status`,className:c,style:l,children:[u,d,f]}),t[14]=c,t[15]=l,t[16]=u,t[17]=d,t[18]=f,t[19]=p):p=t[19],p}function de(e){let t=(0,Y.c)(92),{saeulen:n,reihen:r,titel:a,summen:o,hoehe:s,spalte:c}=e,l=o===void 0?`alle`:o,u=s===void 0?200:s,d=c===void 0?`Zeitraum`:c,[f,p]=J(),[m,h]=(0,X.useState)(null),g=n.length,_,v,y,b,x,S,C,w,T,E;if(t[0]!==p||t[1]!==u||t[2]!==m||t[3]!==g||t[4]!==f||t[5]!==r||t[6]!==n||t[7]!==d||t[8]!==l||t[9]!==a){let e;t[20]===n?e=t[21]:(e=e=>n.some(t=>(t.werte[e.name]??0)>0),t[20]=n,t[21]=e);let o=r.filter(e),s=n.map(e=>o.reduce((t,n)=>t+(e.werte[n.name]??0),0)),c=Math.max(0,...s),O=L(c),k=O[O.length-1],j;t[22]===k?j=t[23]:(j=Q.format(k),t[22]=k,t[23]=j);let M=Math.max(28,j.length*7+12),N=n.some(ge)?34:22,P;t[24]!==M||t[25]!==N?(P={links:M,rechts:4,oben:20,unten:N},t[24]=M,t[25]=N,t[26]=P):P=t[26];let F=P,I=Math.max(1,p-F.links-F.rechts),R=u-F.oben-F.unten,z=I/Math.max(1,g),B=Math.min(ce,Math.max(3,z*.72)),V;t[27]!==R||t[28]!==k||t[29]!==F.oben?(V=e=>F.oben+R-e/k*R,t[27]=R,t[28]=k,t[29]=F.oben,t[30]=V):V=t[30];let H=V,U=F.oben+R,W;t[31]!==z||t[32]!==F.links?(W=e=>F.links+(e+.5)*z,t[31]=z,t[32]=F.links,t[33]=W):W=t[33];let G=W,K;t[34]===n?K=t[35]:(K=Math.max(1,...n.map(he)),t[34]=n,t[35]=K);let ee=K*6.6+8,te;t[36]!==z||t[37]!==ee?(te=[1,3,6,12].find(e=>e*z>=ee)??24,t[36]=z,t[37]=ee,t[38]=te):te=t[38];let ne=te,re=s.indexOf(c),ie=z<34,ae;t[39]===g?ae=t[40]:(ae=function(e){if(g===0)return;let t=e.currentTarget.getBoundingClientRect();h(Math.min(g-1,Math.max(0,Math.floor((e.clientX-t.left)/t.width*g))))},t[39]=g,t[40]=ae);let q=ae,J;t[41]===g?J=t[42]:(J=function(e){let t=le[e.key];g!==0&&t&&(e.preventDefault(),h(e=>t(e??g-1,g)))},t[41]=g,t[42]=J);let oe=J,Y=m===null?void 0:n[m],X=p>=360,de=m===null?0:Math.max(0,Math.min(p-se,G(m)+12+se>p?G(m)-12-se:G(m)+12));_=`flex flex-col gap-2`,v=o.length>1&&(0,Z.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:o.map(me)});let _e;t[43]===g?_e=t[44]:(_e=()=>h(e=>e??(g?g-1:null)),t[43]=g,t[44]=_e);let ve;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(ve=()=>h(null),t[45]=ve):ve=t[45];let ye;t[46]!==Y||t[47]!==z||t[48]!==m||t[49]!==R||t[50]!==F.links||t[51]!==F.oben?(ye=Y&&m!==null&&(0,Z.jsx)(`rect`,{x:F.links+m*z,y:F.oben-4,width:z,height:R+4,rx:4,fill:`var(--erhaben)`}),t[46]=Y,t[47]=z,t[48]=m,t[49]=R,t[50]=F.links,t[51]=F.oben,t[52]=ye):ye=t[52];let be;t[53]!==p||t[54]!==F.links||t[55]!==F.rechts||t[56]!==H?(be=e=>(0,Z.jsxs)(`g`,{children:[(0,Z.jsx)(`line`,{x1:F.links,x2:p-F.rechts,y1:H(e),y2:H(e),strokeWidth:1,stroke:e===0?`var(--linie-stark)`:`var(--linie)`}),(0,Z.jsx)(`text`,{x:F.links-8,y:H(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:Q.format(e)})]},e),t[53]=p,t[54]=F.links,t[55]=F.rechts,t[56]=H,t[57]=be):be=t[57];let xe;t[58]!==I||t[59]!==R||t[60]!==c||t[61]!==F.links||t[62]!==F.oben?(xe=c===0&&(0,Z.jsx)(`text`,{x:F.links+I/2,y:F.oben+R/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Keine Anfragen in diesem Zeitraum`}),t[58]=I,t[59]=R,t[60]=c,t[61]=F.links,t[62]=F.oben,t[63]=xe):xe=t[63];let Se;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(Se=e=>{e.pointerType!==`touch`&&h(null)},t[64]=Se):Se=t[64];let Ce;t[65]!==u||t[66]!==I||t[67]!==F.links||t[68]!==q?(Ce=(0,Z.jsx)(`rect`,{x:F.links,y:0,width:I,height:u,fill:`transparent`,onPointerMove:q,onPointerDown:q,onPointerLeave:Se}),t[65]=u,t[66]=I,t[67]=F.links,t[68]=q,t[69]=Ce):Ce=t[69],y=(0,Z.jsxs)(`div`,{ref:f,className:`relative w-full`,children:[(0,Z.jsxs)(`svg`,{width:p,height:u,viewBox:`0 0 ${p} ${u}`,role:`img`,"aria-label":a,tabIndex:0,onKeyDown:oe,onFocus:_e,onBlur:ve,className:`block h-auto max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[ye,O.map(be),n.map((e,t)=>{let n=G(t)-B/2;return(0,Z.jsxs)(`g`,{children:[A(o.map(t=>e.werte[t.name]??0),H).filter(pe).map(e=>e.oben?(0,Z.jsx)(`path`,{d:D(n,e.y,B,e.hoehe),fill:o[e.index].farbe},e.index):(0,Z.jsx)(`rect`,{x:n,y:e.y,width:B,height:e.hoehe,fill:o[e.index].farbe},e.index)),s[t]>0&&(l===`alle`||t===re)&&(0,Z.jsx)(`text`,{x:G(t),y:H(s[t])-6,textAnchor:`middle`,className:i(`fill-text-2 font-mono`,ie?`text-[10px]`:`text-[11px]`),children:Q.format(s[t])}),(e.raster??t)%ne===0&&(0,Z.jsxs)(`text`,{x:G(t),y:U+15,textAnchor:`middle`,className:`fill-text-3 font-mono text-[11px]`,children:[e.achse,e.achse2&&(0,Z.jsx)(`tspan`,{x:G(t),dy:13,className:`text-[10px]`,children:e.achse2})]})]},e.schluessel)}),xe,Ce]}),Y&&m!==null&&X&&(0,Z.jsx)(ue,{saeule:Y,reihen:o,summe:s[m],links:de,className:`pointer-events-none absolute top-1 z-10 w-60 shadow-lg`})]}),b=Y&&m!==null&&!X&&(0,Z.jsx)(ue,{saeule:Y,reihen:o,summe:s[m]}),T=`text-sm`,t[70]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Z.jsx)(`summary`,{className:`inline-flex cursor-pointer items-center text-text-3 hover:text-text-2`,children:`Werte als Tabelle`}),t[70]=E):E=t[70],w=`mt-2 overflow-x-auto`,S=`w-full border-collapse text-xs`;let we;t[71]===d?we=t[72]:(we=(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 pr-3 text-left font-normal`,children:d}),t[71]=d,t[72]=we),C=(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{className:`text-text-3`,children:[we,o.map(fe),o.length>1&&(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 text-right font-normal`,children:`Zusammen`})]})}),x=n.map((e,t)=>(0,Z.jsxs)(`tr`,{className:`border-t border-linie`,children:[(0,Z.jsx)(`th`,{scope:`row`,className:`py-1 pr-3 text-left font-normal text-text-3`,children:e.lang}),o.map(t=>(0,Z.jsx)(`td`,{className:`ziffern py-1 pr-3 text-right text-text-2`,children:Q.format(e.werte[t.name]??0)},t.name)),o.length>1&&(0,Z.jsx)(`td`,{className:`ziffern py-1 text-right text-foreground`,children:Q.format(s[t])})]},e.schluessel)),t[0]=p,t[1]=u,t[2]=m,t[3]=g,t[4]=f,t[5]=r,t[6]=n,t[7]=d,t[8]=l,t[9]=a,t[10]=_,t[11]=v,t[12]=y,t[13]=b,t[14]=x,t[15]=S,t[16]=C,t[17]=w,t[18]=T,t[19]=E}else _=t[10],v=t[11],y=t[12],b=t[13],x=t[14],S=t[15],C=t[16],w=t[17],T=t[18],E=t[19];let O;t[73]===x?O=t[74]:(O=(0,Z.jsx)(`tbody`,{children:x}),t[73]=x,t[74]=O);let k;t[75]!==O||t[76]!==S||t[77]!==C?(k=(0,Z.jsxs)(`table`,{className:S,children:[C,O]}),t[75]=O,t[76]=S,t[77]=C,t[78]=k):k=t[78];let j;t[79]!==k||t[80]!==w?(j=(0,Z.jsx)(`div`,{className:w,children:k}),t[79]=k,t[80]=w,t[81]=j):j=t[81];let M;t[82]!==j||t[83]!==T||t[84]!==E?(M=(0,Z.jsxs)(`details`,{className:T,children:[E,j]}),t[82]=j,t[83]=T,t[84]=E,t[85]=M):M=t[85];let N;return t[86]!==_||t[87]!==v||t[88]!==y||t[89]!==b||t[90]!==M?(N=(0,Z.jsxs)(`div`,{className:_,children:[v,y,b,M]}),t[86]=_,t[87]=v,t[88]=y,t[89]=b,t[90]=M,t[91]=N):N=t[91],N}function fe(e){return(0,Z.jsx)(`th`,{scope:`col`,className:`py-1 pr-3 text-right font-normal [overflow-wrap:anywhere]`,children:e.name},e.name)}function pe(e){return e.hoehe>0}function me(e){return(0,Z.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.farbe}}),e.name]},e.name)}function he(e){return e.achse.length}function ge(e){return e.achse2}var _e=`Europe/Berlin`,ve=[`var(--reihe-1)`,`var(--reihe-2)`,`var(--reihe-3)`],ye={name:`Weitere`,farbe:`var(--reihe-weitere)`},be=new Intl.NumberFormat(`de-DE`),xe=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:1}),Se=new Intl.DateTimeFormat(`en-CA`,{timeZone:_e}),Ce=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:_e}),we=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,hourCycle:`h23`,timeZone:_e}),Te=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:`UTC`}),Ee=new Intl.DateTimeFormat(`de-DE`,{weekday:`long`,timeZone:`UTC`}),$=e=>be.format(e);function De(e){if(!(e>0))return`0 %`;let t=e*100;return t<.1?`unter 0,1 %`:`${t<10?xe.format(t):be.format(Math.round(t))} %`}function Oe(e,t=!1){if(e==null||!Number.isFinite(e)||e<0)return`–`;if(Math.round(e*1e3)<1e3)return`${Math.round(e*1e3)} ms`;if(e<9.95)return`${xe.format(e)} s`;let n=Math.round(e);if(n<60)return`${n} s`;if(n<3600&&!t)return n%60?`${Math.floor(n/60)} min ${n%60} s`:`${n/60} min`;let r=Math.round(e/60);return r<60?`${r} min`:r%60?`${Math.floor(r/60)} h ${r%60} min`:`${r/60} h`}var ke={400:`fehlerhafte Anfrage`,404:`nicht gefunden`,408:`Zeitüberschreitung`,413:`Anfrage zu groß`,429:`zu viele Anfragen`,499:`vom Absender abgebrochen`,500:`Fehler beim Modell`,502:`Modell nicht erreichbar`,503:`gerade nicht verfügbar`,504:`Zeitüberschreitung`};function Ae(e){return Object.entries(e??{}).sort(([e,t],[n,r])=>r-t||e.localeCompare(n)).map(([e,t])=>ke[e]?`${$(t)}× ${ke[e]} (${e})`:`${$(t)}× Status ${e}`).join(` · `)}function je(e){return e===null||e<.01?{art:`grau`,wort:null}:e>=.05?{art:`rot`,wort:`hoch`}:{art:`bernstein`,wort:`auffällig`}}var Me=e=>String(e).padStart(2,`0`),Ne=e=>Object.values(e??{}).reduce((e,t)=>e+t,0),Pe=e=>Te.format(e).replace(`.`,``);function Fe(e){return Number(we.formatToParts(e).find(e=>e.type===`hour`)?.value??0)%24}function Ie(e){let[,t,n]=e.split(`-`);return`${Ee.format(new Date(`${e}T12:00:00Z`))}, ${n}.${t}.`}function Le(e,t=new Date){let n=e.stand?new Date(e.stand):t,r=Se.format(n),i=new Date(Date.parse(`${r}T12:00:00Z`)-864e5).toISOString().slice(0,10),a=e.gesamt?.anfragen??e.absender.reduce((e,t)=>e+t.anfragen,0),o=e.gesamt?.dauer_summe_s??null,s=new Map(e.absender.map((e,t)=>[e.name,e.reihe??t])),c=e.absender.map(e=>{let t=s.get(e.name)??ve.length,n=t[e.name,e.reihe])),u=[];for(let e of[...c].sort((e,t)=>(s.get(e.name)??99)-(s.get(t.name)??99)))u.some(t=>t.name===e.reihe)||u.push({name:e.reihe,farbe:e.farbe});let d=e=>{let t={};for(let[n,r]of Object.entries(e??{})){let e=l.get(n)??ye.name;t[e]=(t[e]??0)+r,e===ye.name&&!u.some(t=>t.name===e)&&u.push({...ye})}return t},f=Object.keys(e.je_tag??{}).sort(),p=f.map(t=>{let i=t===r;return{schluessel:t,achse:Pe(new Date(`${t}T12:00:00Z`)),achse2:i?`heute`:`${Number(t.slice(8))}.`,lang:`${Ie(t)}${i?` (heute bis ${Ce.format(n)})`:``}`,werte:d(e.je_tag[t])}}),m;if(e.stunden?.length)m=e.stunden.map((e,t,n)=>{let a=new Date(e.beginn),o=Fe(a),s=Se.format(a),c=s===r?`Heute`:s===i?`Gestern`:Ie(s),l=t===n.length-1?` bis jetzt`:`–${Me((o+1)%24)}:00`;return{schluessel:e.beginn,achse:`${Me(o)}:00`,raster:o,lang:`${c} ${Me(o)}:00${l}`,werte:d(e.je_absender)}});else{let t=Fe(n),r=e.letzte_24h??[];m=[...r.slice(t+1),...r.slice(0,t+1)].map(e=>{let t=Number(e.stunde);return{schluessel:e.stunde,achse:`${Me(t)}:00`,raster:t,lang:`${Me(t)}:00–${Me((t+1)%24)}:00`,werte:d(e.je_absender)}})}let h=f.filter(e=>e!==r),g=e.seit?Se.format(new Date(e.seit)):null,_=e.ladevorgaenge??Object.entries(e.zuletzt_geladen??{}).sort(([,e],[,t])=>Date.parse(t)-Date.parse(e)).map(([e,t])=>({modell:e,anzahl:null,zeiten:[t]}));return{absender:c,reihen:u,tage:p,stunden:m,gesamt:{anfragen:a,fehler:e.gesamt?.fehler??null,fehlerCodes:e.gesamt?.fehler_codes??{},typisch:e.gesamt?.dauer_typisch_s??null,p90:e.gesamt?.dauer_p90_s??null,summe:o},heute:Ne(e.je_tag?.[r]),gestern:Ne(e.je_tag?.[i]),schnitt:h.length?h.reduce((t,n)=>t+Ne(e.je_tag[n]),0)/h.length:null,zeitraum:g?`seit ${Pe(new Date(`${g}T12:00:00Z`))} ${g.slice(8)}.${g.slice(5,7)}.`:`letzte ${e.tage} Tage`,stand:e.stand?Ce.format(n):null,modelle:_}}var Re={grau:`text-foreground`,bernstein:`text-bernstein`,rot:`text-rot-text`};function ze(e){let t=(0,Y.c)(13),{label:n,wert:r,zusatz:a,art:o}=e,s=o===void 0?`grau`:o,c;t[0]===n?c=t[1]:(c=(0,Z.jsx)(`span`,{className:`schild text-xs tracking-[0.18em] text-text-3`,children:n}),t[0]=n,t[1]=c);let l=Re[s],u;t[2]===l?u=t[3]:(u=i(`font-anzeige text-[28px] leading-none font-bold`,l),t[2]=l,t[3]=u);let d;t[4]!==u||t[5]!==r?(d=(0,Z.jsx)(`span`,{className:u,children:r}),t[4]=u,t[5]=r,t[6]=d):d=t[6];let f;t[7]===a?f=t[8]:(f=a&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:a}),t[7]=a,t[8]=f);let p;return t[9]!==c||t[10]!==d||t[11]!==f?(p=(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5 rounded-xl border border-linie bg-erhaben/50 px-3.5 py-3`,children:[c,d,f]}),t[9]=c,t[10]=d,t[11]=f,t[12]=p):p=t[12],p}var Be=`lg:grid-cols-[minmax(0,1.5fr)_minmax(0,1.4fr)_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,0.8fr)]`;function Ve(e){let t=(0,Y.c)(13),{label:n,wert:r,zusatz:a,leise:o}=e,s;t[0]===n?s=t[1]:(s=(0,Z.jsx)(`span`,{className:`text-xs text-text-3 lg:hidden`,children:n}),t[0]=n,t[1]=s);let c=o?`text-text-3`:`text-foreground`,l;t[2]===c?l=t[3]:(l=i(`ziffern text-sm`,c),t[2]=c,t[3]=l);let u;t[4]!==l||t[5]!==r?(u=(0,Z.jsx)(`span`,{className:l,children:r}),t[4]=l,t[5]=r,t[6]=u):u=t[6];let d;t[7]===a?d=t[8]:(d=a&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:a}),t[7]=a,t[8]=d);let f;return t[9]!==s||t[10]!==u||t[11]!==d?(f=(0,Z.jsxs)(`span`,{role:`cell`,className:`flex min-w-0 flex-col gap-0.5`,children:[s,u,d]}),t[9]=s,t[10]=u,t[11]=d,t[12]=f):f=t[12],f}function He(e){let t=(0,Y.c)(5),{zeilen:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsxs)(`div`,{role:`row`,className:i(`schild hidden gap-x-4 pb-2 text-xs text-text-3 lg:grid`,Be),children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Absender`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Anfragen`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Typische Antwort`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Rechenzeit`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Fehler`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`})]}),t[0]=r):r=t[0];let a;t[1]===n?a=t[2]:(a=n.map(Ue),t[1]=n,t[2]=a);let o;return t[3]===a?o=t[4]:(o=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Nutzung je Absender`,className:`flex flex-col`,children:[r,a]}),t[3]=a,t[4]=o),o}function Ue(e){return(0,Z.jsxs)(`div`,{role:`row`,className:i(`grid grid-cols-2 gap-x-4 gap-y-2.5 border-t border-linie py-3 lg:items-start`,Be),children:[(0,Z.jsxs)(`span`,{role:`rowheader`,className:`col-span-2 flex min-w-0 items-center gap-2 text-[15px] font-medium lg:col-span-1`,children:[(0,Z.jsx)(`span`,{"aria-hidden":!0,className:`size-2.5 shrink-0 rounded-[2px]`,style:{background:e.farbe}}),(0,Z.jsx)(`span`,{className:`min-w-0 break-words`,children:e.name})]}),(0,Z.jsxs)(`span`,{role:`cell`,className:`col-span-2 flex min-w-0 flex-col gap-1.5 lg:col-span-1`,children:[(0,Z.jsxs)(`span`,{className:`text-sm`,children:[(0,Z.jsx)(`span`,{className:`ziffern`,children:$(e.anfragen)}),(0,Z.jsxs)(`span`,{className:`text-text-3`,children:[` · `,De(e.anteil),` aller Anfragen`]})]}),(0,Z.jsx)(`span`,{className:`h-1.5 w-full max-w-56 overflow-hidden rounded-full bg-erhaben`,"aria-hidden":!0,children:(0,Z.jsx)(`span`,{className:`block h-full rounded-full`,style:{width:`${Math.max(1,e.anteil*100)}%`,background:e.farbe}})})]}),(0,Z.jsx)(Ve,{label:`Typische Antwort`,wert:Oe(e.typisch),zusatz:e.p90===null?void 0:`9 von 10 bis ${Oe(e.p90)}`}),(0,Z.jsx)(Ve,{label:`Rechenzeit`,wert:Oe(e.summe,!0),zusatz:e.zeitAnteil===null?void 0:`${De(e.zeitAnteil)} aller Rechenzeit`}),(0,Z.jsx)(Ve,{label:`Fehler`,leise:e.fehler===0,wert:e.fehler===null?`–`:e.fehler===0?`keine`:`${$(e.fehler)} · ${De(e.fehler/e.anfragen)}`,zusatz:e.fehler?Ae(e.fehlerCodes):void 0}),(0,Z.jsx)(Ve,{label:`Zuletzt`,wert:e.zuletzt?_(e.zuletzt):`–`})]},e.name)}function We(e){let t=(0,Y.c)(11),{titel:n,zusatz:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,Z.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:r}),t[2]=r,t[3]=o);let s;t[4]!==a||t[5]!==o?(s=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1`,children:[a,o]}),t[4]=a,t[5]=o,t[6]=s):s=t[6];let c;return t[7]!==i||t[8]!==s||t[9]!==n?(c=(0,Z.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 rounded-xl border border-linie p-4`,children:[s,i]}),t[7]=i,t[8]=s,t[9]=n,t[10]=c):c=t[10],c}function Ge(e){let t=(0,Y.c)(29),{modelle:n,rollen:r}=e;if(n.length===0)return null;let i,a,o,s,l,u;if(t[0]!==n){let e=n.every(Je)?n.reduce(qe,0):null;u=`group rounded-xl border border-linie bg-erhaben/40 px-4 open:pb-2`,s=`flex min-h-12 cursor-pointer list-none flex-wrap items-center justify-between gap-x-3 gap-y-1 py-2 [&::-webkit-details-marker]:hidden`,t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[(0,Z.jsx)(c,{className:`size-4 shrink-0 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),`Wann welches Modell geladen wurde`]}),t[7]=l):l=t[7],i=`ziffern text-sm text-text-2`,a=n.length===1?`1 Modell`:`${n.length} Modelle`,o=e===null?``:` · ${$(e)}× geladen`,t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=u}else i=t[1],a=t[2],o=t[3],s=t[4],l=t[5],u=t[6];let d;t[8]!==i||t[9]!==a||t[10]!==o?(d=(0,Z.jsxs)(`span`,{className:i,children:[a,o]}),t[8]=i,t[9]=a,t[10]=o,t[11]=d):d=t[11];let f;t[12]!==s||t[13]!==l||t[14]!==d?(f=(0,Z.jsxs)(`summary`,{className:s,children:[l,d]}),t[12]=s,t[13]=l,t[14]=d,t[15]=f):f=t[15];let p;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsx)(`p`,{className:`pb-1 text-sm text-text-2`,children:`Gezählt wird, wie oft sich ein Modell nach dem Laden bereit meldete: nach einem Neustart von llama-swap oder wenn es auf Abruf gebraucht wurde.`}),t[16]=p):p=t[16];let m;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Z.jsxs)(`div`,{role:`row`,className:`schild hidden gap-x-4 py-2 text-xs text-text-3 sm:grid sm:grid-cols-[minmax(0,1.5fr)_70px_130px_minmax(0,1.5fr)]`,children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Modell`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Geladen`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Zuletzt`}),(0,Z.jsx)(`span`,{role:`columnheader`,children:`Davor`})]}),t[17]=m):m=t[17];let h;if(t[18]!==n||t[19]!==r){let e;t[21]===r?e=t[22]:(e=e=>(0,Z.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto] gap-x-4 gap-y-1 border-t border-linie py-2.5 sm:grid-cols-[minmax(0,1.5fr)_70px_130px_minmax(0,1.5fr)] sm:items-baseline`,children:[(0,Z.jsxs)(`span`,{role:`rowheader`,className:`flex min-w-0 flex-col`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.modell}),r[e.modell]&&(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:r[e.modell]})]}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-sm text-text-2 sm:text-left`,children:e.anzahl===null?`–`:`${$(e.anzahl)}×`}),(0,Z.jsxs)(`span`,{role:`cell`,className:`ziffern col-span-2 text-xs text-text-2 sm:col-span-1`,children:[(0,Z.jsx)(`span`,{className:`font-sans text-text-3 sm:hidden`,children:`zuletzt `}),_(e.zeiten[0])]}),(0,Z.jsxs)(`span`,{role:`cell`,className:`ziffern col-span-2 text-xs text-text-3 sm:col-span-1`,children:[e.zeiten.length>1&&(0,Z.jsx)(`span`,{className:`font-sans sm:hidden`,children:`davor `}),e.zeiten.length>1?e.zeiten.slice(1,4).map(Ke).join(` · `):(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:`–`})]})]},e.modell),t[21]=r,t[22]=e),h=n.map(e),t[18]=n,t[19]=r,t[20]=h}else h=t[20];let g;t[23]===h?g=t[24]:(g=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Ladevorgänge je Modell`,className:`flex flex-col`,children:[m,h]}),t[23]=h,t[24]=g);let v;return t[25]!==g||t[26]!==u||t[27]!==f?(v=(0,Z.jsxs)(`details`,{className:u,children:[f,p,g]}),t[25]=g,t[26]=u,t[27]=f,t[28]=v):v=t[28],v}function Ke(e){return _(e)}function qe(e,t){return e+(t.anzahl??0)}function Je(e){return e.anzahl!==null}function Ye(e){let t=(0,Y.c)(23),{nutzung:n,laedt:r,fehler:i,rollen:a}=e,o;t[0]===a?o=t[1]:(o=a===void 0?{}:a,t[0]=a,t[1]=o);let s=o;if(!n){let e;return t[2]!==i||t[3]!==r?(e=(0,Z.jsx)(E,{titel:`Wer nutzt die Modelle`,children:r?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Nutzung lässt sich gerade nicht lesen`,i?`: ${i}`:`.`]})}),t[2]=i,t[3]=r,t[4]=e):e=t[4],e}let c,l,u,d,f;if(t[5]!==n){l=Le(n);let e=l.gesamt,r=e.fehler!==null&&e.anfragen?e.fehler/e.anfragen:null,i;t[11]===r?i=t[12]:(i=je(r),t[11]=r,t[12]=i);let a=i;c=E,u=`Wer nutzt die Modelle`,d=(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[l.zeitraum,l.stand?` · Stand ${l.stand}`:``]}),f=e.anfragen===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Anfragen aufgezeichnet.`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,Z.jsx)(ze,{label:`Anfragen`,wert:$(e.anfragen),zusatz:l.schnitt===null?void 0:`im Schnitt ${$(Math.round(l.schnitt))} am Tag`}),(0,Z.jsx)(ze,{label:`Heute`,wert:$(l.heute),zusatz:`${l.stand?`bis ${l.stand} · `:``}gestern ${$(l.gestern)}`}),(0,Z.jsx)(ze,{label:`Typische Antwort`,wert:Oe(e.typisch),zusatz:e.p90===null?void 0:`9 von 10 bis ${Oe(e.p90)}`}),(0,Z.jsx)(ze,{label:`Fehler`,wert:e.fehler===null?`–`:$(e.fehler),art:a.art,zusatz:e.fehler===null?void 0:e.fehler===0?`alle beantwortet`:`${De(r??0)} der Anfragen${a.wort?` · ${a.wort}`:``}`})]}),(0,Z.jsx)(He,{zeilen:l.absender}),(0,Z.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,Z.jsx)(We,{titel:`Anfragen je Tag`,zusatz:`letzte 7 Tage, heute bis jetzt`,children:(0,Z.jsx)(de,{saeulen:l.tage,reihen:l.reihen,spalte:`Tag`,titel:`Anfragen je Tag der letzten 7 Tage, gestapelt nach Absender`})}),(0,Z.jsx)(We,{titel:`Anfragen je Stunde`,zusatz:`letzte 24 Stunden`,children:(0,Z.jsx)(de,{saeulen:l.stunden,reihen:l.reihen,spalte:`Stunde`,summen:`hoechste`,titel:`Anfragen je Stunde der letzten 24 Stunden, gestapelt nach Absender`})})]})]}),t[5]=n,t[6]=c,t[7]=l,t[8]=u,t[9]=d,t[10]=f}else c=t[6],l=t[7],u=t[8],d=t[9],f=t[10];let p;t[13]!==l.modelle||t[14]!==s?(p=(0,Z.jsx)(Ge,{modelle:l.modelle,rollen:s}),t[13]=l.modelle,t[14]=s,t[15]=p):p=t[15];let m;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat-Anfragen an llama-swap, gelesen aus seinem Protokoll und alle 10 Minuten neu gerechnet. NerdQuiz fragt direkt dort an, Lucy und OpenChamber über MC2. Antwortzeit: bis die Antwort ganz da war. Rechenzeit: alle Antwortzeiten zusammen, gleichzeitige Anfragen zählen einzeln.`}),t[16]=m):m=t[16];let h;return t[17]!==c||t[18]!==u||t[19]!==d||t[20]!==f||t[21]!==p?(h=(0,Z.jsxs)(c,{titel:u,rechts:d,children:[f,p,m]}),t[17]=c,t[18]=u,t[19]=d,t[20]=f,t[21]=p,t[22]=h):h=t[22],h}var Xe={coder:`Coder`};function Ze(e){let t=(0,Y.c)(102),{offen:n,onSchliessen:r,rollenJetzt:i}=e,a=F(),[o,s]=(0,X.useState)(``),[c,l]=(0,X.useState)(``),[u,d]=(0,X.useState)(null),[p,m]=(0,X.useState)(``),[h,_]=(0,X.useState)(null),v=(0,X.useRef)(!1),y,b;t[0]===c?(y=t[1],b=t[2]):(y=[`hf-suche`,c],b=()=>k(`/api/hf/search?q=${encodeURIComponent(c)}`),t[0]=c,t[1]=y,t[2]=b);let x=c.length>1,S;t[3]!==y||t[4]!==b||t[5]!==x?(S={queryKey:y,queryFn:b,enabled:x},t[3]=y,t[4]=b,t[5]=x,t[6]=S):S=t[6];let C=j(S),w,T;t[7]===u?(w=t[8],T=t[9]):(w=[`hf-quants`,u],T=()=>k(`/api/hf/quants?repo=${encodeURIComponent(u??``)}`),t[7]=u,t[8]=w,t[9]=T);let E=!!u,D;t[10]!==w||t[11]!==T||t[12]!==E?(D={queryKey:w,queryFn:T,enabled:E},t[10]=w,t[11]=T,t[12]=E,t[13]=D):D=t[13];let O=j(D),A,M,N,P,I,L,R,z,B,V,H,re,q;if(t[14]!==h||t[15]!==o||t[16]!==a||t[17]!==n||t[18]!==r||t[19]!==O.data||t[20]!==O.error||t[21]!==O.isError||t[22]!==O.isFetching||t[23]!==u||t[24]!==p||t[25]!==i||t[26]!==C){let e=(O.data?.quants??[]).map($e),c=p?Xe[p]??p:null,y;t[40]!==u||t[41]!==p||t[42]!==i||t[43]!==c?(y=c&&u?ae(u,c,i[p]):null,t[40]=u,t[41]=p,t[42]=i,t[43]=c,t[44]=y):y=t[44],N=y;let b;t[45]!==h||t[46]!==a||t[47]!==r||t[48]!==u||t[49]!==p?(b=function(){u&&h&&!v.current&&(v.current=!0,a.mutate({repo:u,quant:h.quant,rolle:p||null},{onSuccess:e=>{_(null),e.ok!==!1&&r()},onError:()=>_(null),onSettled:()=>{v.current=!1}}))},t[45]=h,t[46]=a,t[47]=r,t[48]=u,t[49]=p,t[50]=b):b=t[50],P=b,M=te,H=n,t[51]===r?re=t[52]:(re=e=>!e&&r(),t[51]=r,t[52]=re),A=K,R=`right`,z=`gap-3 overflow-y-auto border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-xl`,t[53]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,Z.jsxs)(G,{children:[(0,Z.jsx)(W,{className:`schild text-lg`,children:`Modelle selbst suchen`}),(0,Z.jsx)(ee,{className:`text-text-2`,children:`Auf Hugging Face suchen, Quantisierung wählen, installieren.`})]}),t[53]=B):B=t[53];let x;t[54]===o?x=t[55]:(x=e=>{e.preventDefault(),d(null),l(o.trim())},t[54]=o,t[55]=x);let S;t[56]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Z.jsx)(`label`,{htmlFor:`hf-suche`,className:`sr-only`,children:`Suchbegriff`}),t[56]=S):S=t[56];let w;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>s(e.target.value),t[57]=w):w=t[57];let T;t[58]===o?T=t[59]:(T=(0,Z.jsx)(`input`,{id:`hf-suche`,value:o,onChange:w,placeholder:`z. B. Qwen3.8 GGUF`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),t[58]=o,t[59]=T);let E;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Z.jsx)(U,{type:`submit`,children:`Suchen`}),t[60]=E):E=t[60],t[61]!==x||t[62]!==T?(V=(0,Z.jsxs)(`form`,{className:`flex gap-2 px-4`,onSubmit:x,children:[S,T,E]}),t[61]=x,t[62]=T,t[63]=V):V=t[63],q=`flex flex-col px-4 pb-4`,t[64]!==u||t[65]!==C?(I=!u&&(0,Z.jsxs)(Z.Fragment,{children:[C.isFetching&&(0,Z.jsx)(`p`,{role:`status`,className:`py-3 text-sm text-text-2`,children:`Suche läuft …`}),!C.isFetching&&C.isError&&(0,Z.jsxs)(`p`,{role:`alert`,className:`py-3 text-sm text-rot-text`,children:[`Die Suche ging nicht: `,C.error.message]}),!C.isFetching&&C.data?.results.length===0&&(0,Z.jsx)(`p`,{className:`py-3 text-sm text-text-2`,children:`Keine Treffer. Versuch einen anderen Suchbegriff — oder Hugging Face ist gerade nicht erreichbar.`}),C.data?.results.map(e=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>d(e.repo),className:`flex min-h-11 items-center justify-between gap-3 border-t border-linie py-2 text-left hover:text-cyan`,children:[(0,Z.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:e.repo}),(0,Z.jsxs)(`span`,{className:`ziffern shrink-0 text-xs text-text-3`,children:[f(e.downloads),` ↓`]})]},e.repo))]}),t[64]=u,t[65]=C,t[66]=I):I=t[66],L=u&&(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 pt-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:u}),(0,Z.jsx)(U,{variant:`ghost`,size:`sm`,onClick:()=>d(null),children:`Zurück`})]}),(0,Z.jsxs)(`label`,{className:`flex flex-wrap items-center gap-3 text-sm text-text-2`,children:[`Rolle`,(0,Z.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`h-11 min-w-0 rounded-lg border border-linie-stark bg-erhaben px-3 text-foreground`,children:[(0,Z.jsx)(`option`,{value:``,children:`ohne Rolle (nur installieren)`}),Object.entries(Xe).map(Qe)]})]}),N&&(0,Z.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-sm leading-relaxed text-bernstein`,children:N}),O.isFetching&&(0,Z.jsx)(`p`,{role:`status`,className:`text-sm text-text-2`,children:`Quantisierungen werden gelesen …`}),!O.isFetching&&O.isError&&(0,Z.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die Dateien dieses Modells ließen sich nicht lesen: `,O.error.message]}),!O.isFetching&&O.data&&e.length===0&&(0,Z.jsx)(`p`,{className:`text-sm text-text-2`,children:`Hier gibt es keine GGUF-Dateien, die sich installieren lassen.`}),e.map(e=>{let t=e.quant??e.name??`?`,n=e.total_bytes??e.size_bytes;return(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm`,children:t}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[n?(0,Z.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:g(n,1)}):null,(0,Z.jsx)(U,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:()=>_({quant:t,bytes:n}),children:`Installieren`})]})]},t)})]}),t[14]=h,t[15]=o,t[16]=a,t[17]=n,t[18]=r,t[19]=O.data,t[20]=O.error,t[21]=O.isError,t[22]=O.isFetching,t[23]=u,t[24]=p,t[25]=i,t[26]=C,t[27]=A,t[28]=M,t[29]=N,t[30]=P,t[31]=I,t[32]=L,t[33]=R,t[34]=z,t[35]=B,t[36]=V,t[37]=H,t[38]=re,t[39]=q}else A=t[27],M=t[28],N=t[29],P=t[30],I=t[31],L=t[32],R=t[33],z=t[34],B=t[35],V=t[36],H=t[37],re=t[38],q=t[39];let J;t[67]!==I||t[68]!==L||t[69]!==q?(J=(0,Z.jsxs)(`div`,{className:q,children:[I,L]}),t[67]=I,t[68]=L,t[69]=q,t[70]=J):J=t[70];let oe=h!==null,Q;t[71]!==h||t[72]!==u?(Q=h&&u?`${u} (${h.quant}${h.bytes?`, ${g(h.bytes,1)}`:``}) wird heruntergeladen und in llama-swap eingetragen.`+(h.bytes?``:` Die Größe siehst du beim Auftrag, sobald der Download läuft.`):``,t[71]=h,t[72]=u,t[73]=Q):Q=t[73];let se=a.isPending?`Wird gestartet …`:`Installieren`,ce=a.isPending,le;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(le=()=>_(null),t[74]=le):le=t[74];let ue;t[75]===N?ue=t[76]:(ue=N&&(0,Z.jsx)(`p`,{className:`m-0 rounded-lg border border-bernstein/60 bg-bernstein-grund px-3 py-2.5 text-[15px] leading-relaxed text-bernstein`,children:N}),t[75]=N,t[76]=ue);let de=!!p,fe;t[77]===de?fe=t[78]:(fe=ie(de),t[77]=de,t[78]=fe);let pe;t[79]===fe?pe=t[80]:(pe=(0,Z.jsx)(`p`,{className:`m-0 text-[15px] leading-relaxed text-text-2`,children:fe}),t[79]=fe,t[80]=pe);let me;t[81]!==a.isPending||t[82]!==P||t[83]!==oe||t[84]!==Q||t[85]!==se||t[86]!==ue||t[87]!==pe?(me=(0,Z.jsxs)(ne,{offen:oe,titel:`Modell installieren?`,text:Q,knopf:se,gesperrt:ce,onNein:le,onJa:P,children:[ue,pe]}),t[81]=a.isPending,t[82]=P,t[83]=oe,t[84]=Q,t[85]=se,t[86]=ue,t[87]=pe,t[88]=me):me=t[88];let he;t[89]!==A||t[90]!==R||t[91]!==z||t[92]!==B||t[93]!==V||t[94]!==J||t[95]!==me?(he=(0,Z.jsxs)(A,{side:R,className:z,children:[B,V,J,me]}),t[89]=A,t[90]=R,t[91]=z,t[92]=B,t[93]=V,t[94]=J,t[95]=me,t[96]=he):he=t[96];let ge;return t[97]!==M||t[98]!==H||t[99]!==re||t[100]!==he?(ge=(0,Z.jsx)(M,{open:H,onOpenChange:re,children:he}),t[97]=M,t[98]=H,t[99]=re,t[100]=he,t[101]=ge):ge=t[101],ge}function Qe(e){let[t,n]=e;return(0,Z.jsx)(`option`,{value:t,children:n},t)}function $e(e){return typeof e==`string`?{quant:e}:e}var et=115;function tt(e){let t=(0,Y.c)(55),{modelle:n,laufend:r}=e,i=b(),a=m(),o,s,c,l,u,d,f,p,g,_;if(t[0]!==r||t[1]!==i?.ram_total||t[2]!==i?.ram_used||t[3]!==n||t[4]!==a){let e=h(i?.ram_total??a.data?.box.ram_total)??122.7,m=h(i?.ram_used??a.data?.box.ram_used)??0,v;t[15]===r?v=t[16]:(v=e=>r.includes(e.name),t[15]=r,t[16]=v);let y=n.filter(v).reduce(nt,0);s=Math.max(0,m-y);let b=t=>`${Math.min(100,t/e*100)}%`;o=E,p=`Speicher`,g=(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[Math.round(m),` von `,Math.round(e),` GB belegt · Grenze ~`,et,` GB`]});let x=`Speicher: ${Math.round(m)} von ${Math.round(e)} GB belegt`,S=b(m),C;t[17]===S?C=t[18]:(C={width:S},t[17]=S,t[18]=C);let w=`${m?y/m*100:0}%`,T;t[19]===w?T=t[20]:(T=(0,Z.jsx)(`div`,{className:`h-full bg-cyan`,style:{width:w}}),t[19]=w,t[20]=T);let D=`${m?s/m*100:0}%`,O;t[21]===D?O=t[22]:(O=(0,Z.jsx)(`div`,{className:`h-full bg-cyan/35`,style:{width:D}}),t[21]=D,t[22]=O);let k;t[23]!==C||t[24]!==T||t[25]!==O?(k=(0,Z.jsxs)(`div`,{className:`absolute inset-y-0 left-0 flex overflow-hidden rounded-lg`,style:C,children:[T,O]}),t[23]=C,t[24]=T,t[25]=O,t[26]=k):k=t[26];let A=b(et),j;t[27]===A?j=t[28]:(j=(0,Z.jsx)(`div`,{className:`absolute -top-1.5 -bottom-1.5 w-0.5 bg-bernstein`,style:{left:A}}),t[27]=A,t[28]=j),t[29]!==x||t[30]!==k||t[31]!==j?(_=(0,Z.jsxs)(`div`,{className:`relative h-8 rounded-lg bg-erhaben`,role:`img`,"aria-label":x,children:[k,j]}),t[29]=x,t[30]=k,t[31]=j,t[32]=_):_=t[32],f=`flex flex-wrap gap-x-6 gap-y-2 text-sm text-text-2`,c=`flex items-center gap-2`,t[33]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan`}),t[33]=l):l=t[33],u=` Geladene Modelle: `,d=Math.round(y),t[0]=r,t[1]=i?.ram_total,t[2]=i?.ram_used,t[3]=n,t[4]=a,t[5]=o,t[6]=s,t[7]=c,t[8]=l,t[9]=u,t[10]=d,t[11]=f,t[12]=p,t[13]=g,t[14]=_}else o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],f=t[11],p=t[12],g=t[13],_=t[14];let v;t[34]!==c||t[35]!==l||t[36]!==u||t[37]!==d?(v=(0,Z.jsxs)(`span`,{className:c,children:[l,u,d,` GB Dateien`]}),t[34]=c,t[35]=l,t[36]=u,t[37]=d,t[38]=v):v=t[38];let y;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Z.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan/35`}),t[39]=y):y=t[39];let x;t[40]===s?x=t[41]:(x=Math.round(s),t[40]=s,t[41]=x);let S;t[42]===x?S=t[43]:(S=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[y,` Cache, Dienste, System: `,x,` GB`]}),t[42]=x,t[43]=S);let C;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`h-3 w-0.5 bg-bernstein`}),` Ab hier wird es eng`]}),t[44]=C):C=t[44];let w;t[45]!==S||t[46]!==f||t[47]!==v?(w=(0,Z.jsxs)(`div`,{className:f,children:[v,S,C]}),t[45]=S,t[46]=f,t[47]=v,t[48]=w):w=t[48];let T;return t[49]!==o||t[50]!==w||t[51]!==p||t[52]!==g||t[53]!==_?(T=(0,Z.jsxs)(o,{titel:p,rechts:g,children:[_,w]}),t[49]=o,t[50]=w,t[51]=p,t[52]=g,t[53]=_,t[54]=T):T=t[54],T}function nt(e,t){return e+(h(t.size_bytes)??0)}function rt(e){let t=(0,Y.c)(7),{name:n,wert:r}=e,i;t[0]===n?i=t[1]:(i=(0,Z.jsx)(`dt`,{className:`text-xs text-text-3`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,Z.jsx)(`dd`,{className:`ziffern m-0 text-lg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function it(e){let t=(0,Y.c)(48),{titel:n,modell:r,zwilling:i,laeuft:a,nutzer:o}=e,s=z();if(!r){let e;t[0]===n?e=t[1]:(e=(0,Z.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[0]=n,t[1]=e);let r;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsx)(v,{children:`Frei`}),t[2]=r):r=t[2];let i;t[3]===e?i=t[4]:(i=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[e,r]}),t[3]=e,t[4]=i);let a,o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(`h3`,{className:`font-anzeige text-xl font-semibold text-text-2`,children:`Nicht belegt`}),o=(0,Z.jsx)(`p`,{className:`text-sm text-text-2`,children:`Nur belegen, wenn ein Modell hier echten Mehrwert bringt. Das Radar meldet Kandidaten.`}),t[5]=a,t[6]=o):(a=t[5],o=t[6]);let s;return t[7]===i?s=t[8]:(s=(0,Z.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-dashed border-linie-stark p-5`,children:[i,a,o]}),t[7]=i,t[8]=s),s}let c;t[9]!==r.ctx||t[10]!==r.parallel_slots?(c=r.ctx?Math.round(r.ctx/Math.max(1,r.parallel_slots)/1024):null,t[9]=r.ctx,t[10]=r.parallel_slots,t[11]=c):c=t[11];let l=c,u=!!r.capabilities?.vision||!!i,d;t[12]===n?d=t[13]:(d=(0,Z.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[12]=n,t[13]=d);let f=a?`gruen`:`grau`,p=a?`Geladen`:`Auf Abruf`,m;t[14]!==f||t[15]!==p?(m=(0,Z.jsx)(v,{art:f,children:p}),t[14]=f,t[15]=p,t[16]=m):m=t[16];let h;t[17]!==d||t[18]!==m?(h=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[d,m]}),t[17]=d,t[18]=m,t[19]=h):h=t[19];let _;t[20]===r.name?_=t[21]:(_=(0,Z.jsx)(`h3`,{className:`ziffern m-0 text-lg font-medium break-all`,children:r.name}),t[20]=r.name,t[21]=_);let y;t[22]===r.size_bytes?y=t[23]:(y=g(r.size_bytes),t[22]=r.size_bytes,t[23]=y);let b;t[24]===y?b=t[25]:(b=(0,Z.jsx)(rt,{name:`Größe`,wert:y}),t[24]=y,t[25]=b);let x=l?`${l}k`:`–`,S;t[26]===x?S=t[27]:(S=(0,Z.jsx)(rt,{name:`Kontext`,wert:x}),t[26]=x,t[27]=S);let C=u?`ja`:`nein`,w;t[28]===C?w=t[29]:(w=(0,Z.jsx)(rt,{name:`Bilder`,wert:C}),t[28]=C,t[29]=w);let T;t[30]!==S||t[31]!==w||t[32]!==b?(T=(0,Z.jsxs)(`dl`,{className:`m-0 grid grid-cols-3 gap-3`,children:[b,S,w]}),t[30]=S,t[31]=w,t[32]=b,t[33]=T):T=t[33];let E=r.spec_active?` Mit Draft-Beschleunigung.`:``,D=i?` Bilder sieht es über seinen Bild-Zwilling, der nur bei Bedarf lädt.`:``,O;t[34]!==o||t[35]!==E||t[36]!==D?(O=(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Genutzt von `,o,`.`,E,D]}),t[34]=o,t[35]=E,t[36]=D,t[37]=O):O=t[37];let k;t[38]!==s||t[39]!==a||t[40]!==r.name?(k=!a&&(0,Z.jsx)(U,{variant:`outline`,size:`sm`,className:`mt-auto self-start`,onClick:()=>s.mutate(r.name),disabled:s.isPending,children:`Jetzt laden`}),t[38]=s,t[39]=a,t[40]=r.name,t[41]=k):k=t[41];let A;return t[42]!==T||t[43]!==O||t[44]!==k||t[45]!==h||t[46]!==_?(A=(0,Z.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-linie bg-panel p-5`,children:[h,_,T,O,k]}),t[42]=T,t[43]=O,t[44]=k,t[45]=h,t[46]=_,t[47]=A):A=t[47],A}var at={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`,getestet:`grau`,uebernommen:`gruen`,verworfen:`grau`},ot={besser:`text-gruen`,schlechter:`text-rot-text`,gleich:`text-text-2`};function st(e){let t=(0,Y.c)(4),{test:n}=e,r,i;if(t[0]!==n.vergleich){i=Symbol.for(`react.early_return_sentinel`);bb0:{let e=Object.entries(n.vergleich??{});if(e.length===0){i=null;break bb0}let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsxs)(`div`,{role:`row`,className:`schild grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 pb-1 text-xs text-text-3`,children:[(0,Z.jsx)(`span`,{role:`columnheader`,children:`Messwert`}),(0,Z.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Kandidat`}),(0,Z.jsx)(`span`,{role:`columnheader`,className:`text-right`,children:`Heute`})]}),t[3]=a):a=t[3],r=(0,Z.jsxs)(`div`,{role:`table`,"aria-label":`Messwerte gegen das heutige Modell`,className:`rounded-lg border border-linie bg-erhaben/50 px-3 py-2 text-sm`,children:[a,e.map(ct)]})}t[0]=n.vergleich,t[1]=r,t[2]=i}else r=t[1],i=t[2];return i===Symbol.for(`react.early_return_sentinel`)?r:i}function ct(e){let[t,n]=e;return(0,Z.jsxs)(`div`,{role:`row`,className:`grid grid-cols-[minmax(0,1fr)_auto_auto] gap-x-4 border-t border-linie py-1`,children:[(0,Z.jsx)(`span`,{role:`rowheader`,className:`text-text-2`,children:t}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right ${ot[n.urteil??``]??`text-text-2`}`,children:C(n.kandidat,n.einheit)}),(0,Z.jsx)(`span`,{role:`cell`,className:`ziffern text-right text-text-3`,children:C(n.baseline,n.einheit)})]},t)}function lt(e){let t=(0,Y.c)(80),{k:n,test:r,heute:i}=e,a=N(),o=V(),[s,c]=(0,X.useState)(null),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=[`bestanden`,`wartet`,`neu`,`getestet`],t[0]=l):l=t[0];let u=l.includes(n.status),d=n.rolle===`hirn`,f;t[1]===n.name?f=t[2]:(f=(0,Z.jsx)(`span`,{className:`ziffern text-[15px] font-medium`,children:n.name}),t[1]=n.name,t[2]=f);let p=d?`fürs Hirn`:`fürs Coden`,m;t[3]===p?m=t[4]:(m=(0,Z.jsx)(v,{art:`cyan`,children:p}),t[3]=p,t[4]=m);let h;t[5]!==n.eng||t[6]!==n.groesse_gb||t[7]!==n.passt?(h=n.groesse_gb!=null&&(0,Z.jsx)(v,{art:n.eng?`bernstein`:n.passt?`gruen`:`rot`,children:n.eng?`passt knapp`:n.passt?`passt`:`passt nicht`}),t[5]=n.eng,t[6]=n.groesse_gb,t[7]=n.passt,t[8]=h):h=t[8];let g=at[n.status]??`grau`,_=S[n.status]??n.status,y;t[9]!==g||t[10]!==_?(y=(0,Z.jsx)(v,{art:g,children:_}),t[9]=g,t[10]=_,t[11]=y):y=t[11];let b;t[12]!==f||t[13]!==m||t[14]!==h||t[15]!==y?(b=(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[f,m,h,y]}),t[12]=f,t[13]=m,t[14]=h,t[15]=y,t[16]=b):b=t[16];let x;t[17]===n.groesse_gb?x=t[18]:(x=n.groesse_gb==null?``:`${n.groesse_gb.toLocaleString(`de-DE`)} GB. `,t[17]=n.groesse_gb,t[18]=x);let C;t[19]!==n.begruendung||t[20]!==x?(C=(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[x,n.begruendung]}),t[19]=n.begruendung,t[20]=x,t[21]=C):C=t[21];let w;t[22]!==n.status||t[23]!==r?(w=r&&[`bestanden`,`durchgefallen`].includes(n.status)&&(0,Z.jsx)(st,{test:r}),t[22]=n.status,t[23]=r,t[24]=w):w=t[24];let T;t[25]!==n.begruendung||t[26]!==n.testbar_grund?(T=n.testbar_grund&&!n.begruendung.startsWith(`Läuft gerade`)&&(0,Z.jsx)(`p`,{className:`text-xs text-text-3`,children:n.testbar_grund}),t[25]=n.begruendung,t[26]=n.testbar_grund,t[27]=T):T=t[27];let E;t[28]!==a.isPending||t[29]!==n.status||t[30]!==n.testbar_jetzt||t[31]!==u||t[32]!==o.isPending?(E=u&&(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.testbar_jetzt&&(0,Z.jsx)(U,{variant:`info`,size:`sm`,disabled:o.isPending,onClick:()=>c(`testen`),children:`Jetzt testen`}),n.status===`bestanden`&&(0,Z.jsx)(U,{size:`sm`,disabled:a.isPending,onClick:()=>c(`uebernehmen`),children:`Übernehmen`}),(0,Z.jsx)(U,{variant:`outline`,size:`sm`,disabled:a.isPending,onClick:()=>c(`verwerfen`),children:`Verwerfen`})]}),t[28]=a.isPending,t[29]=n.status,t[30]=n.testbar_jetzt,t[31]=u,t[32]=o.isPending,t[33]=E):E=t[33];let D=s===`uebernehmen`,O=`${n.name} übernehmen?`,k=d?`${n.name} wird Lucys Hirn${i?` und löst ${i} ab`:``}. NerdQuiz und OpenChamber nutzen ab dann ebenfalls das neue Modell. Hermes startet dafür kurz neu, Lucy ist etwa eine Minute nicht erreichbar. Das alte Modell bleibt auf der Platte.`:`${n.name} wird der Coder${i?` und löst ${i} ab`:``}. OpenChamber plant und baut ab dann damit. Das alte Modell bleibt auf der Platte.`,A;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>c(null),t[34]=A):A=t[34];let j;t[35]!==a||t[36]!==s||t[37]!==n.id||t[38]!==n.name?(j=()=>{s===`uebernehmen`&&(a.mutate({id:n.id,aktion:`uebernehmen`,name:n.name}),c(null))},t[35]=a,t[36]=s,t[37]=n.id,t[38]=n.name,t[39]=j):j=t[39];let M;t[40]!==a.isPending||t[41]!==D||t[42]!==O||t[43]!==k||t[44]!==j?(M=(0,Z.jsx)(ne,{offen:D,titel:O,text:k,knopf:`Übernehmen`,gesperrt:a.isPending,onNein:A,onJa:j}),t[40]=a.isPending,t[41]=D,t[42]=O,t[43]=k,t[44]=j,t[45]=M):M=t[45];let P=s===`testen`,F=`${n.name} jetzt testen?`,I;t[46]===n.groesse_gb?I=t[47]:(I=n.groesse_gb==null?``:` (${n.groesse_gb.toLocaleString(`de-DE`)} GB)`,t[46]=n.groesse_gb,t[47]=I);let L=`Das Radar lädt ${n.name}${I} herunter, falls nötig, misst das heutige Modell der Rolle und dann den Kandidaten. Das dauert je nach Download eine halbe bis zwei Stunden. Solange antworten Lucy und NerdQuiz etwas langsamer; ein geladener Coder wird dafür entladen, und wird er währenddessen gebraucht, bricht der Test ab. Das Ergebnis kommt als Meldung; fällt der Kandidat durch, werden seine Dateien gelöscht.`,R;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(R=()=>c(null),t[48]=R):R=t[48];let z;t[49]!==s||t[50]!==n.id||t[51]!==n.name||t[52]!==o?(z=()=>{s===`testen`&&(o.mutate({id:n.id,name:n.name}),c(null))},t[49]=s,t[50]=n.id,t[51]=n.name,t[52]=o,t[53]=z):z=t[53];let B;t[54]!==P||t[55]!==F||t[56]!==L||t[57]!==z||t[58]!==o.isPending?(B=(0,Z.jsx)(ne,{offen:P,titel:F,text:L,knopf:`Jetzt testen`,gesperrt:o.isPending,onNein:R,onJa:z}),t[54]=P,t[55]=F,t[56]=L,t[57]=z,t[58]=o.isPending,t[59]=B):B=t[59];let H=s===`verwerfen`,W=`${n.name} verwerfen?`,G;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>c(null),t[60]=G):G=t[60];let K;t[61]!==a||t[62]!==s||t[63]!==n.id||t[64]!==n.name?(K=()=>{s===`verwerfen`&&(a.mutate({id:n.id,aktion:`verwerfen`,name:n.name}),c(null))},t[61]=a,t[62]=s,t[63]=n.id,t[64]=n.name,t[65]=K):K=t[65];let ee;t[66]!==a.isPending||t[67]!==H||t[68]!==W||t[69]!==K?(ee=(0,Z.jsx)(ne,{offen:H,gefahr:!0,titel:W,text:`Die heruntergeladenen Dateien werden gelöscht, und das Radar testet dieses Modell nicht noch einmal.`,knopf:`Verwerfen`,gesperrt:a.isPending,onNein:G,onJa:K}),t[66]=a.isPending,t[67]=H,t[68]=W,t[69]=K,t[70]=ee):ee=t[70];let te;return t[71]!==C||t[72]!==w||t[73]!==T||t[74]!==E||t[75]!==M||t[76]!==B||t[77]!==ee||t[78]!==b?(te=(0,Z.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3.5`,children:[b,C,w,T,E,M,B,ee]}),t[71]=C,t[72]=w,t[73]=T,t[74]=E,t[75]=M,t[76]=B,t[77]=ee,t[78]=b,t[79]=te):te=t[79],te}function ut(e){let t=(0,Y.c)(30),{hirn:n,coder:r}=e,i=P(),a=B(),o=I(),s=R(),c=o.data?.jobs,l=(c??[]).filter(ft).at(-1),d=a.data?.job_id,f;t[0]!==d||t[1]!==c?(f=!!d&&!!c&&!c.some(e=>e.id===d),t[0]=d,t[1]=c,t[2]=f):f=t[2];let p=f,m=a.isPending||p||l!==void 0&&w(l),h=(0,X.useRef)(m);if((0,X.useEffect)(()=>{h.current&&!m&&s.invalidateQueries({queryKey:[`radar`]}),h.current=m},[m,s]),i.isError&&!i.data){let e=i.error instanceof u&&i.error.status===404,n;return t[3]!==e||t[4]!==i.error?(n=(0,Z.jsx)(E,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,children:e?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Das Radar ist auf dieser Box noch nicht eingerichtet.`}):(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Das Radar antwortet gerade nicht: `,i.error.message]})}),t[3]=e,t[4]=i.error,t[5]=n):n=t[5],n}let g=i.data,v=E,y;t[6]===a?y=t[7]:(y=()=>a.mutate(void 0),t[6]=a,t[7]=y);let b=m?`Sucht …`:`Jetzt suchen`,x;t[8]!==m||t[9]!==y||t[10]!==b?(x=(0,Z.jsx)(U,{variant:`info`,size:`sm`,onClick:y,disabled:m,children:b}),t[8]=m,t[9]=y,t[10]=b,t[11]=x):x=t[11];let S;t[12]===g?S=t[13]:(S=g?.naechster_test?` Nächster Test: ${_(g.naechster_test)}.`:``,t[12]=g,t[13]=S);let C=m?` Sucht gerade bei Hugging Face. Das dauert ein paar Minuten; den Stand zeigt der Auftrag oben unter „Aufträge“.`:``,T;t[14]!==S||t[15]!==C?(T=(0,Z.jsxs)(`p`,{className:`-mt-2 text-sm text-text-2`,children:[`Testet nachts zwischen 00:30 und 02:30 selbst, höchstens einen Kandidaten pro Woche. Tagsüber geht es mit „Jetzt testen“, wenn der Kandidat samt Coder in den Speicher passt.`,S,C]}),t[14]=S,t[15]=C,t[16]=T):T=t[16];let D=!m&&l?.state===`failed`&&(0,Z.jsxs)(`p`,{role:`alert`,className:`text-sm text-rot-text`,children:[`Die letzte Suche ist gescheitert: `,re(l)??`ohne Meldung`]}),O;t[17]!==r||t[18]!==g||t[19]!==n?(O=g?g.kandidaten.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}):(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:g.kandidaten.map(e=>(0,Z.jsx)(lt,{k:e,test:g.tests.find(t=>t.kandidat===e.id),heute:e.rolle===`hirn`?n:r},e.id))}):(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),t[17]=r,t[18]=g,t[19]=n,t[20]=O):O=t[20];let k;t[21]===g?k=t[22]:(k=g&&g.tests.length>0&&(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`h3`,{className:`schild text-xs text-text-3`,children:`Letzte Tests`}),g.tests.slice(0,3).map(dt)]}),t[21]=g,t[22]=k);let A;return t[23]!==v||t[24]!==T||t[25]!==D||t[26]!==O||t[27]!==k||t[28]!==x?(A=(0,Z.jsxs)(v,{titel:`Modell-Radar`,id:`radar`,className:`scroll-mt-4`,rechts:x,children:[T,D,O,k]}),t[23]=v,t[24]=T,t[25]=D,t[26]=O,t[27]=k,t[28]=x,t[29]=A):A=t[29],A}function dt(e){return(0,Z.jsxs)(`p`,{className:`text-sm text-text-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-text-3`,children:_(e.datum)}),` · `,e.zusammenfassung]},e.id)}function ft(e){return e.group===`radar`}var pt=`text-rot-text hover:bg-rot-grund hover:text-rot-text`;function mt(e){let t=(0,Y.c)(13),{titel:n,zusatz:r,children:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(c,{className:`size-4 text-text-3 transition-transform group-open:rotate-90`,"aria-hidden":!0}),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,Z.jsxs)(`span`,{className:`flex items-center gap-2 text-[15px] font-medium`,children:[a,n]}),t[1]=n,t[2]=o);let s;t[3]===r?s=t[4]:(s=(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:r}),t[3]=r,t[4]=s);let l;t[5]!==o||t[6]!==s?(l=(0,Z.jsxs)(`summary`,{className:`flex min-h-12 cursor-pointer list-none items-center justify-between gap-3 [&::-webkit-details-marker]:hidden`,children:[o,s]}),t[5]=o,t[6]=s,t[7]=l):l=t[7];let u;t[8]===i?u=t[9]:(u=(0,Z.jsx)(`div`,{className:`flex flex-col gap-2 pb-1`,children:i}),t[8]=i,t[9]=u);let d;return t[10]!==l||t[11]!==u?(d=(0,Z.jsxs)(`details`,{className:`group rounded-xl border border-linie bg-erhaben/40 px-4 open:pb-2`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12],d}function ht(){let e=(0,Y.c)(37),t=y(),n=x(),[r,i]=(0,X.useState)(null),a,o,s,c,l,u;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n){u=Symbol.for(`react.early_return_sentinel`);bb0:{let r=t.data?.kandidaten??[],d=r.reduce(gt,0);if(t.isError&&!t.data){let n;e[11]===t.error.message?n=e[12]:(n=(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Was sich aufräumen ließe, lässt sich gerade nicht lesen: `,t.error.message]}),e[11]=t.error.message,e[12]=n);let r;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Z.jsx)(vt,{}),e[13]=r):r=e[13];let i;e[14]===n?i=e[15]:(i=(0,Z.jsxs)(E,{titel:`Aufräumen`,children:[n,r]}),e[14]=n,e[15]=i),u=i;break bb0}a=E,o=`Aufräumen`,s=r.length>0?(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[`bis zu `,d.toLocaleString(`de-DE`,{maximumFractionDigits:0}),` GB frei`]}):void 0,e[16]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Z.jsx)(`p`,{className:`-mt-2 text-sm text-text-2`,children:`Modelle und Ordner, die gerade niemand nutzt. Nichts davon wird von selbst gelöscht, das entscheidest du je Eintrag.`}),e[16]=c):c=e[16],l=t.isPending?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):r.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts aufzuräumen.`}):(0,Z.jsx)(mt,{titel:`Modelle und Ordner`,zusatz:`${r.length} Einträge · bis zu ${d.toLocaleString(`de-DE`,{maximumFractionDigits:0})} GB`,children:(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,Z.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm break-all`,children:e.name}),(0,Z.jsx)(v,{children:e.art===`eintrag`?`Eintrag`:`Ordner`})]}),(0,Z.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,Z.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[e.groesse_gb.toLocaleString(`de-DE`),` GB`]}),(0,Z.jsx)(U,{variant:`ghost`,size:`sm`,className:pt,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},`${e.art}-${e.name}`))})})}e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n,e[5]=a,e[6]=o,e[7]=s,e[8]=c,e[9]=l,e[10]=u}else a=e[5],o=e[6],s=e[7],c=e[8],l=e[9],u=e[10];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d=r!==null,f=`${r?.name??``} löschen?`,p;e[17]===r?.groesse_gb?p=e[18]:(p=r?.groesse_gb.toLocaleString(`de-DE`)??``,e[17]=r?.groesse_gb,e[18]=p);let m=`${r?.hinweis??``} Es werden ${p} GB frei. Das lässt sich nicht rückgängig machen — zurück ginge es nur mit einem neuen Download.`,h;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>i(null),e[19]=h):h=e[19];let g;e[20]!==r||e[21]!==n?(g=()=>{r&&n.mutate(r),i(null)},e[20]=r,e[21]=n,e[22]=g):g=e[22];let _;e[23]!==n.isPending||e[24]!==g||e[25]!==d||e[26]!==f||e[27]!==m?(_=(0,Z.jsx)(ne,{offen:d,gefahr:!0,titel:f,text:m,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:h,onJa:g}),e[23]=n.isPending,e[24]=g,e[25]=d,e[26]=f,e[27]=m,e[28]=_):_=e[28];let b;e[29]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Z.jsx)(vt,{}),e[29]=b):b=e[29];let S;return e[30]!==a||e[31]!==o||e[32]!==s||e[33]!==_||e[34]!==c||e[35]!==l?(S=(0,Z.jsxs)(a,{titel:o,rechts:s,children:[c,l,_,b]}),e[30]=a,e[31]=o,e[32]=s,e[33]=_,e[34]=c,e[35]=l,e[36]=S):S=e[36],S}function gt(e,t){return e+t.groesse_gb}function _t(e){return e>=1e9?`${(e/1e9).toLocaleString(`de-DE`,{maximumFractionDigits:1})} GB`:e>=1e6?`${Math.round(e/1e6)} MB`:e>=1e3?`${Math.round(e/1e3)} KB`:`unter 1 KB`}function vt(){let e=(0,Y.c)(23),t=d(),n=H(),[r,i]=(0,X.useState)(null),a,o;if(e[0]!==t.data||e[1]!==t.error||e[2]!==t.isError||e[3]!==t.isPending||e[4]!==n.isPending){let r=t.data?.altreste??[],s=r.reduce(yt,0);a=`flex flex-col gap-2`,o=t.isPending?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}):t.isError&&!t.data?(0,Z.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Altreste lassen sich gerade nicht lesen: `,t.error.message]}):r.length===0?(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Altreste mehr.`}):(0,Z.jsxs)(mt,{titel:`Altreste neben dem Betrieb`,zusatz:`${r.length} Einträge · ${_t(s)}`,children:[(0,Z.jsx)(`p`,{className:`text-sm text-text-2`,children:`Test-Ordner, alte Umgebungen und Arbeitskopien, die nichts mehr nutzt. Die Box prüft sie gegen eine feste Liste und löscht auch hier nie von selbst.`}),(0,Z.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.map(e=>(0,Z.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-linie py-3`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`text-sm`,children:e.name}),(0,Z.jsx)(v,{children:`Altrest`})]}),(0,Z.jsx)(`span`,{className:`ziffern text-xs break-all text-text-3`,children:e.pfade.join(` · `)}),(0,Z.jsx)(`span`,{className:`text-sm text-text-2`,children:e.hinweis})]}),(0,Z.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:e.groesse}),(0,Z.jsx)(U,{variant:`ghost`,size:`sm`,className:pt,disabled:n.isPending,onClick:()=>i(e),children:`Löschen`})]})]},e.id))})]}),e[0]=t.data,e[1]=t.error,e[2]=t.isError,e[3]=t.isPending,e[4]=n.isPending,e[5]=a,e[6]=o}else a=e[5],o=e[6];let s=r!==null,c=`${r?.name??``} löschen?`,l;e[7]===r?.pfade?l=e[8]:(l=r?.pfade.join(`, `)??``,e[7]=r?.pfade,e[8]=l);let u=`${r?.hinweis??``} Gelöscht wird: ${l} (${r?.groesse??``}). Das lässt sich nicht rückgängig machen.`,f;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>i(null),e[9]=f):f=e[9];let p;e[10]!==r||e[11]!==n?(p=()=>{r&&n.mutate(r),i(null)},e[10]=r,e[11]=n,e[12]=p):p=e[12];let m;e[13]!==n.isPending||e[14]!==s||e[15]!==c||e[16]!==u||e[17]!==p?(m=(0,Z.jsx)(ne,{offen:s,gefahr:!0,titel:c,text:u,knopf:`Endgültig löschen`,gesperrt:n.isPending,onNein:f,onJa:p}),e[13]=n.isPending,e[14]=s,e[15]=c,e[16]=u,e[17]=p,e[18]=m):m=e[18];let h;return e[19]!==a||e[20]!==o||e[21]!==m?(h=(0,Z.jsxs)(`div`,{className:a,children:[o,m]}),e[19]=a,e[20]=o,e[21]=m,e[22]=h):h=e[22],h}function yt(e,t){return e+t.groesse_bytes}function bt(){let e=(0,Y.c)(69),t=O(),n=M(),r=P(),i=I(),[a,o]=(0,X.useState)(!1),s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s={select:wt},e[0]=s):s=e[0];let c=oe(s),u=!!t.data&&!n.isPending&&!r.isPending&&!i.isPending,d,f;if(e[1]!==u||e[2]!==c?(d=()=>{u&&c===`radar`&&document.getElementById(`radar`)?.scrollIntoView({block:`start`})},f=[u,c],e[1]=u,e[2]=c,e[3]=d,e[4]=f):(d=e[3],f=e[4]),(0,X.useEffect)(d,f),t.isPending){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(p,{text:`Modelle werden gelesen …`}),e[5]=t):t=e[5],t}if(!t.data){let n=`Die Modell-Liste fehlt: ${t.error?.message??`keine Daten`}`,r;return e[6]===n?r=e[7]:(r=(0,Z.jsx)(p,{fehler:!0,text:n}),e[6]=n,e[7]=r),r}let m=t.data.models,h=t.data.running,v,y,b,x,S,C,w,T,D,k,A,j,N;if(e[8]!==h||e[9]!==m||e[10]!==n.data||e[11]!==n.error?.message||e[12]!==n.isPending){let t=m.find(Ct);y=m.find(St);let r;e[26]===m?r=e[27]:(r=(e,t)=>e?m.find(n=>n!==e&&n.aliases.includes(t)&&n.filename===e.filename):void 0,e[26]=m,e[27]=r);let i=r,a=i(t,`vision`);b=i(y,`coder-bild`);let s=m.filter(e=>![t,y,a,b].includes(e)),c;e[28]===n.data?.zuletzt_geladen?c=e[29]:(c=n.data?.zuletzt_geladen??{},e[28]=n.data?.zuletzt_geladen,e[29]=c);let u=c,d={};for(let[e,n]of[[t,`Hirn`],[y,`Coder`],[a,`Bild-Zwilling des Hirns`],[b,`Bild-Zwilling des Coders`]])e&&(d[e.name]=n);e[30]!==h||e[31]!==m?(j=(0,Z.jsx)(tt,{modelle:m,laufend:h}),e[30]=h,e[31]=m,e[32]=j):j=e[32],e[33]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Z.jsx)(q,{alsPanel:!0}),e[33]=N):N=e[33];let f;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(it,{titel:`Dritte Rolle`,laeuft:!1,nutzer:``}),e[34]=f):f=e[34],x=(0,Z.jsxs)(`section`,{"aria-label":`Rollen`,className:`grid gap-5 md:grid-cols-3 md:gap-6`,children:[(0,Z.jsx)(it,{titel:`Hirn`,modell:t,zwilling:a,laeuft:!!t&&h.includes(t.name),nutzer:`Lucy, NerdQuiz und OpenChamber für Kleinkram`}),(0,Z.jsx)(it,{titel:`Coder`,modell:y,zwilling:b,laeuft:!!y&&h.includes(y.name),nutzer:`OpenChamber zum Planen und Bauen und Lucys Delegation`}),f]}),S=(0,Z.jsx)(Ye,{nutzung:n.data,laedt:n.isPending,fehler:n.error?.message??null,rollen:d});let p=t?.name,O=y?.name;e[35]!==p||e[36]!==O?(C=(0,Z.jsx)(ut,{hirn:p,coder:O}),e[35]=p,e[36]=O,e[37]=C):C=e[37],v=E,D=`Weitere Einträge`,e[38]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Z.jsxs)(U,{variant:`outline`,size:`sm`,onClick:()=>o(!0),children:[(0,Z.jsx)(l,{"aria-hidden":!0}),` Modelle selbst suchen`]}),e[38]=k):k=e[38],A=s.length===0&&(0,Z.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine weiteren Einträge.`}),w=`m-0 flex list-none flex-col p-0`;let M;e[39]!==h||e[40]!==u?(M=e=>(0,Z.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 border-t border-linie py-2.5 sm:grid-cols-[minmax(0,1fr)_120px_160px]`,children:[(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`ziffern block text-sm break-all`,children:e.name}),(0,Z.jsx)(`span`,{className:`text-xs text-text-3`,children:e.aliases.length?e.aliases.join(`, `):`ohne Rolle`})]}),(0,Z.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:g(e.size_bytes)}),(0,Z.jsx)(`span`,{className:`ziffern hidden text-xs text-text-3 sm:block`,children:h.includes(e.name)?`geladen`:u[e.name]?`zuletzt ${_(u[e.name])}`:`länger nicht geladen`})]},e.name),e[39]=h,e[40]=u,e[41]=M):M=e[41],T=s.map(M),e[8]=h,e[9]=m,e[10]=n.data,e[11]=n.error?.message,e[12]=n.isPending,e[13]=v,e[14]=y,e[15]=b,e[16]=x,e[17]=S,e[18]=C,e[19]=w,e[20]=T,e[21]=D,e[22]=k,e[23]=A,e[24]=j,e[25]=N}else v=e[13],y=e[14],b=e[15],x=e[16],S=e[17],C=e[18],w=e[19],T=e[20],D=e[21],k=e[22],A=e[23],j=e[24],N=e[25];let F;e[42]!==w||e[43]!==T?(F=(0,Z.jsx)(`ul`,{className:w,children:T}),e[42]=w,e[43]=T,e[44]=F):F=e[44];let L;e[45]!==v||e[46]!==F||e[47]!==D||e[48]!==k||e[49]!==A?(L=(0,Z.jsxs)(v,{titel:D,rechts:k,children:[A,F]}),e[45]=v,e[46]=F,e[47]=D,e[48]=k,e[49]=A,e[50]=L):L=e[50];let R;e[51]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,Z.jsx)(ht,{}),e[51]=R):R=e[51];let z;e[52]===Symbol.for(`react.memo_cache_sentinel`)?(z=()=>o(!1),e[52]=z):z=e[52];let B;e[53]!==y||e[54]!==b?(B=y?{name:y.name,zwilling:!!b,weitere:y.aliases.filter(xt)}:void 0,e[53]=y,e[54]=b,e[55]=B):B=e[55];let V;e[56]===B?V=e[57]:(V={coder:B},e[56]=B,e[57]=V);let H;e[58]!==a||e[59]!==V?(H=(0,Z.jsx)(Ze,{offen:a,onSchliessen:z,rollenJetzt:V}),e[58]=a,e[59]=V,e[60]=H):H=e[60];let W;return e[61]!==x||e[62]!==S||e[63]!==C||e[64]!==L||e[65]!==H||e[66]!==j||e[67]!==N?(W=(0,Z.jsxs)(Z.Fragment,{children:[j,N,x,S,C,L,R,H]}),e[61]=x,e[62]=S,e[63]=C,e[64]=L,e[65]=H,e[66]=j,e[67]=N,e[68]=W):W=e[68],W}function xt(e){return e.toLowerCase()!==`coder`}function St(e){return T(e)===`coder`}function Ct(e){return T(e)===`hirn`}function wt(e){return e.hash}export{lt as Kandidat,bt as ModelleSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Monitoring-D7SndtTk.js b/frontend/dist/assets/Monitoring-Cx9bpZ97.js similarity index 99% rename from frontend/dist/assets/Monitoring-D7SndtTk.js rename to frontend/dist/assets/Monitoring-Cx9bpZ97.js index ea52104..49c1af1 100644 --- a/frontend/dist/assets/Monitoring-D7SndtTk.js +++ b/frontend/dist/assets/Monitoring-Cx9bpZ97.js @@ -1 +1 @@ -import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{C as a,G as o,Vt as s,_ as c,at as l,b as u,c as d,et as f,g as p,h as m,l as h,ln as g,m as _,pt as v,u as y,v as b,y as x}from"./index-CIOHqG23.js";import{t as S}from"./breite-pBrnu3_s.js";var C=t(),ee=r(e(),1),w=n(),T={rechts:12,oben:10,unten:24};function E(e){let t=(0,C.c)(72),{reihen:n,einheit:r,langerZeitraum:i,hoehe:a,titel:o}=e,s=a===void 0?180:a,[l,u]=S(),[d,f]=(0,ee.useState)(null),m,g,_,v,x,E,A,j;if(t[0]!==u||t[1]!==r||t[2]!==s||t[3]!==d||t[4]!==i||t[5]!==l||t[6]!==n||t[7]!==o){let e=n[0]?.punkte??[],a=e.length,S=p(n.map(te),r),C=r===`prozent`?[0,25,50,75,100]:[0,S/2,S],ee=Math.max(40,Math.max(...C.map(e=>c(e,r).length))*7+12),M;t[16]===ee?M=t[17]:(M={...T,links:ee},t[16]=ee,t[17]=M);let N=M,P=u-N.links-T.rechts,F=s-T.oben-T.unten,I=e[0]?.[0]??0,L=e[a-1]?.[0]??1,R=e=>N.links+(L>I?(e-I)/(L-I)*P:0),z;t[18]!==F||t[19]!==S?(z=e=>T.oben+F-Math.min(e,S)/(S||1)*F,t[18]=F,t[19]=S,t[20]=z):z=t[20];let B=z,V=T.oben+F,ne=a>1?[0,.25,.5,.75,1].map(t=>e[Math.round(t*(a-1))][0]):[],re;t[21]===n?re=t[22]:(re=n.some(k),t[21]=n,t[22]=re);let H=re,ie;t[23]===a?ie=t[24]:(ie=function(e){if(a===0)return;let t=e.currentTarget.getBoundingClientRect(),n=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width));f(Math.round(n*(a-1)))},t[23]=a,t[24]=ie);let U=ie,W;t[25]===a?W=t[26]:(W=function(e){if(a!==0){if(e.key===`ArrowLeft`)f(e=>Math.max(0,(e??a-1)-1));else if(e.key===`ArrowRight`)f(e=>Math.min(a-1,(e??a-1)+1));else return;e.preventDefault()}},t[25]=a,t[26]=W);let ae=W,G=d!==null&&e[d]?e[d][0]:null,K=G===null?0:R(G),oe=e.slice(-12);E=`flex flex-col gap-2`,t[27]===n?A=t[28]:(A=n.length>1&&(0,w.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(O)}),t[27]=n,t[28]=A);let q;t[29]===a?q=t[30]:(q=()=>f(e=>e??(a?a-1:null)),t[29]=a,t[30]=q);let J;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>f(null),t[31]=J):J=t[31];let Y;t[32]!==N.links||t[33]!==V||t[34]!==H||t[35]!==P||t[36]!==F||t[37]!==n||t[38]!==R||t[39]!==B?(Y=H?n.map(e=>(0,w.jsxs)(`g`,{children:[n.length===1&&(0,w.jsx)(`path`,{d:h(e.punkte,R,B,V),fill:e.farbe,opacity:.1}),(0,w.jsx)(`path`,{d:y(e.punkte,R,B),fill:`none`,stroke:e.farbe,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})]},e.name)):(0,w.jsx)(`text`,{x:N.links+P/2,y:T.oben+F/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Noch keine Messwerte in diesem Zeitraum`}),t[32]=N.links,t[33]=V,t[34]=H,t[35]=P,t[36]=F,t[37]=n,t[38]=R,t[39]=B,t[40]=Y):Y=t[40];let se;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(se=()=>f(null),t[41]=se):se=t[41];let X;t[42]!==N.links||t[43]!==P||t[44]!==F||t[45]!==U?(X=(0,w.jsx)(`rect`,{x:N.links,y:T.oben,width:P,height:F,fill:`transparent`,onPointerMove:U,onPointerLeave:se}),t[42]=N.links,t[43]=P,t[44]=F,t[45]=U,t[46]=X):X=t[46];let ce=(0,w.jsxs)(`svg`,{width:u,height:s,role:`img`,"aria-label":o,tabIndex:0,onKeyDown:ae,onFocus:q,onBlur:J,className:`block max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[C.map(e=>(0,w.jsxs)(`g`,{children:[(0,w.jsx)(`line`,{x1:N.links,x2:u-T.rechts,y1:B(e),y2:B(e),stroke:`var(--linie)`,strokeWidth:1}),(0,w.jsx)(`text`,{x:N.links-8,y:B(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:c(e,r)})]},e)),ne.map((e,t)=>(0,w.jsx)(`text`,{x:R(e),y:s-6,className:`fill-text-3 font-mono text-[11px]`,textAnchor:t===0?`start`:t===ne.length-1?`end`:`middle`,children:b(e,i)},e)),Y,G!==null&&(0,w.jsxs)(`g`,{"aria-hidden":!0,children:[(0,w.jsx)(`line`,{x1:R(G),x2:R(G),y1:T.oben,y2:V,stroke:`var(--text-3)`,strokeWidth:1}),n.map(e=>{let t=e.punkte[d]?.[1];return t==null?null:(0,w.jsx)(`circle`,{cx:R(G),cy:B(t),r:4,fill:e.farbe,stroke:`var(--panel)`,strokeWidth:2},e.name)})]}),X]}),Z=G!==null&&(0,w.jsxs)(`div`,{role:`status`,className:`pointer-events-none absolute top-1 z-10 flex min-w-36 flex-col gap-1 rounded-lg border border-linie-stark bg-erhaben px-3 py-2 shadow-lg`,style:K>u/2?{right:u-K+10}:{left:K+10},children:[(0,w.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:b(G,!0)}),n.map(e=>(0,w.jsxs)(`span`,{className:`flex items-center gap-2 text-sm`,children:[(0,w.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 rounded-full`,style:{background:e.farbe}}),(0,w.jsx)(`span`,{className:`font-semibold text-foreground`,children:c(e.punkte[d]?.[1],r)}),n.length>1&&(0,w.jsx)(`span`,{className:`text-text-3`,children:e.name})]},e.name))]});t[47]!==l||t[48]!==ce||t[49]!==Z?(j=(0,w.jsxs)(`div`,{ref:l,className:`relative w-full`,children:[ce,Z]}),t[47]=l,t[48]=ce,t[49]=Z,t[50]=j):j=t[50],v=`group text-sm`,t[51]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,w.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 Q;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,w.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:`Zeit`}),t[52]=Q):Q=t[52];let $;t[53]===n?$=t[54]:($=n.map(D),t[53]=n,t[54]=$),t[55]===$?_=t[56]:(_=(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{className:`text-left text-text-3`,children:[Q,$]})}),t[55]=$,t[56]=_),m=oe.map((e,t)=>{let[o]=e;return(0,w.jsxs)(`tr`,{className:`border-t border-linie`,children:[(0,w.jsx)(`td`,{className:`py-1 pr-4 text-text-3`,children:b(o,i)}),n.map(e=>(0,w.jsx)(`td`,{className:`py-1 pr-4 text-text-2`,children:c(e.punkte[a-oe.length+t]?.[1],r)},e.name))]},o)}),t[0]=u,t[1]=r,t[2]=s,t[3]=d,t[4]=i,t[5]=l,t[6]=n,t[7]=o,t[8]=m,t[9]=g,t[10]=_,t[11]=v,t[12]=x,t[13]=E,t[14]=A,t[15]=j}else m=t[8],g=t[9],_=t[10],v=t[11],x=t[12],E=t[13],A=t[14],j=t[15];let M;t[57]===m?M=t[58]:(M=(0,w.jsx)(`tbody`,{children:m}),t[57]=m,t[58]=M);let N;t[59]!==M||t[60]!==g||t[61]!==_?(N=(0,w.jsxs)(`table`,{className:g,children:[_,M]}),t[59]=M,t[60]=g,t[61]=_,t[62]=N):N=t[62];let P;t[63]!==N||t[64]!==v||t[65]!==x?(P=(0,w.jsxs)(`details`,{className:v,children:[x,N]}),t[63]=N,t[64]=v,t[65]=x,t[66]=P):P=t[66];let F;return t[67]!==P||t[68]!==E||t[69]!==A||t[70]!==j?(F=(0,w.jsxs)(`div`,{className:E,children:[A,j,P]}),t[67]=P,t[68]=E,t[69]=A,t[70]=j,t[71]=F):F=t[71],F}function D(e){return(0,w.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:e.name},e.name)}function O(e){return(0,w.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-4 rounded-full`,style:{background:e.farbe}}),e.name]},e.name)}function k(e){return e.punkte.some(A)}function A(e){let[,t]=e;return t!==null}function te(e){return e.punkte}var j=[{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 M(e){let t=(0,C.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=j.map(e=>(0,w.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-linie text-text-2 hover:border-linie-stark 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,w.jsx)(`div`,{role:`group`,"aria-label":`Zeitraum`,className:`flex flex-wrap gap-2`,children:s}),t[4]=s,t[5]=c),c}function N(e){let t=(0,C.c)(9),{titel:n,rechts:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,w.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]!==r||t[3]!==a?(o=(0,w.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,w.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 rounded-2xl border border-linie bg-panel 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 P=e=>j.find(t=>t.id===e)?.text??``;function F(){let e=(0,C.c)(97),[t,n]=(0,ee.useState)(`1h`),r=o(t),c=s(),l;e[0]===r.data?.reihen?l=e[1]:(l=r.data?.reihen??{},e[0]=r.data?.reihen,e[1]=l);let u=l,f;e[2]===r.data?.aktuell?f=e[3]:(f=r.data?.aktuell??{},e[2]=r.data?.aktuell,e[3]=f);let p=f,h=t===`7d`,g;e[4]!==p||e[5]!==u?(g=(e,t)=>e??p[t]??m(u[t]),e[4]=p,e[5]=u,e[6]=g):g=e[6];let _=g,v;e[7]===t?v=e[8]:(v=(0,w.jsx)(M,{wert:t,onWahl:n,farbe:`box`}),e[7]=t,e[8]=v);let y;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,w.jsx)(`span`,{className:`text-sm text-text-3`,children:`Zahlen live, Verläufe im Minutentakt`}),e[9]=y):y=e[9];let b;e[10]===v?b=e[11]:(b=(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[v,y]}),e[10]=v,e[11]=b);let S=c?.cpu,T;e[12]!==S||e[13]!==_?(T=_(S,`cpu`),e[12]=S,e[13]=_,e[14]=T):T=e[14];let D=c?.cpu,O;e[15]!==D||e[16]!==_?(O=x(_(D,`cpu`),85,95),e[15]=D,e[16]=_,e[17]=O):O=e[17];let k;e[18]===t?k=e[19]:(k=P(t),e[18]=t,e[19]=k);let A;e[20]!==k||e[21]!==T||e[22]!==O?(A=(0,w.jsx)(d,{label:`CPU`,wert:T,einheit:`prozent`,max:100,zustand:O,zeitraumText:k}),e[20]=k,e[21]=T,e[22]=O,e[23]=A):A=e[23];let te=c?.ram,j;e[24]!==te||e[25]!==_?(j=_(te,`ram`),e[24]=te,e[25]=_,e[26]=j):j=e[26];let F=c?.ram,I;e[27]!==F||e[28]!==_?(I=x(_(F,`ram`),85,95),e[27]=F,e[28]=_,e[29]=I):I=e[29];let L;e[30]===t?L=e[31]:(L=P(t),e[30]=t,e[31]=L);let R;e[32]!==j||e[33]!==I||e[34]!==L?(R=(0,w.jsx)(d,{label:`Speicher`,wert:j,einheit:`prozent`,max:100,zustand:I,zeitraumText:L}),e[32]=j,e[33]=I,e[34]=L,e[35]=R):R=e[35];let z=c?.gpu,B;e[36]!==z||e[37]!==_?(B=_(z,`gpu`),e[36]=z,e[37]=_,e[38]=B):B=e[38];let V;e[39]===t?V=e[40]:(V=P(t),e[39]=t,e[40]=V);let ne;e[41]!==B||e[42]!==V?(ne=(0,w.jsx)(d,{label:`GPU`,wert:B,einheit:`prozent`,max:100,zeitraumText:V}),e[41]=B,e[42]=V,e[43]=ne):ne=e[43];let re=c?.temp_cpu,H;e[44]!==re||e[45]!==_?(H=_(re,`temp_cpu`),e[44]=re,e[45]=_,e[46]=H):H=e[46];let ie=c?.temp_cpu,U;e[47]!==ie||e[48]!==_?(U=x(_(ie,`temp_cpu`),80,90),e[47]=ie,e[48]=_,e[49]=U):U=e[49];let W;e[50]===t?W=e[51]:(W=P(t),e[50]=t,e[51]=W);let ae;e[52]!==H||e[53]!==U||e[54]!==W?(ae=(0,w.jsx)(d,{label:`CPU-Temp.`,wert:H,einheit:`grad`,max:100,zustand:U,zeitraumText:W}),e[52]=H,e[53]=U,e[54]=W,e[55]=ae):ae=e[55];let G=c?.temp_gpu,K;e[56]!==G||e[57]!==_?(K=_(G,`temp_gpu`),e[56]=G,e[57]=_,e[58]=K):K=e[58];let oe=c?.temp_gpu,q;e[59]!==oe||e[60]!==_?(q=x(_(oe,`temp_gpu`),80,90),e[59]=oe,e[60]=_,e[61]=q):q=e[61];let J;e[62]===t?J=e[63]:(J=P(t),e[62]=t,e[63]=J);let Y;e[64]!==K||e[65]!==q||e[66]!==J?(Y=(0,w.jsx)(d,{label:`GPU-Temp.`,wert:K,einheit:`grad`,max:100,zustand:q,zeitraumText:J}),e[64]=K,e[65]=q,e[66]=J,e[67]=Y):Y=e[67];let se=c?.disk,X;e[68]!==se||e[69]!==_?(X=_(se,`platte`),e[68]=se,e[69]=_,e[70]=X):X=e[70];let ce=c?.disk,Z;e[71]!==ce||e[72]!==_?(Z=x(_(ce,`platte`),80,90),e[71]=ce,e[72]=_,e[73]=Z):Z=e[73];let Q;e[74]===t?Q=e[75]:(Q=P(t),e[74]=t,e[75]=Q);let $;e[76]!==X||e[77]!==Z||e[78]!==Q?($=(0,w.jsx)(d,{label:`Platte`,wert:X,einheit:`prozent`,max:100,zustand:Z,zeitraumText:Q}),e[76]=X,e[77]=Z,e[78]=Q,e[79]=$):$=e[79];let le;e[80]!==A||e[81]!==R||e[82]!==ne||e[83]!==ae||e[84]!==Y||e[85]!==$?(le=(0,w.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-3 xl:grid-cols-6`,children:[A,R,ne,ae,Y,$]}),e[80]=A,e[81]=R,e[82]=ne,e[83]=ae,e[84]=Y,e[85]=$,e[86]=le):le=e[86];let ue;e[87]!==h||e[88]!==r.data||e[89]!==r.isError||e[90]!==r.isPlaceholderData||e[91]!==u?(ue=r.isError&&!r.data?(0,w.jsx)(a,{text:`Der Verlauf ist noch nicht da: Die KI-Box sammelt Messwerte, sobald der neue Stand läuft. Die Zahlen oben sind live.`}):(0,w.jsxs)(`div`,{className:i(`grid gap-5 md:gap-6 xl:grid-cols-2`,r.isPlaceholderData&&`opacity-70`),children:[(0,w.jsx)(N,{titel:`CPU`,children:(0,w.jsx)(E,{titel:`CPU-Auslastung in Prozent`,einheit:`prozent`,langerZeitraum:h,reihen:[{name:`CPU`,punkte:u.cpu??[],farbe:`var(--reihe-1)`}]})}),(0,w.jsx)(N,{titel:`Speicher`,children:(0,w.jsx)(E,{titel:`Belegter Speicher in Prozent`,einheit:`prozent`,langerZeitraum:h,reihen:[{name:`Speicher`,punkte:u.ram??[],farbe:`var(--reihe-1)`}]})}),(0,w.jsx)(N,{titel:`GPU`,children:(0,w.jsx)(E,{titel:`GPU-Last in Prozent`,einheit:`prozent`,langerZeitraum:h,reihen:[{name:`GPU`,punkte:u.gpu??[],farbe:`var(--reihe-1)`}]})}),(0,w.jsx)(N,{titel:`Temperatur`,children:(0,w.jsx)(E,{titel:`Temperatur von CPU und GPU in Grad`,einheit:`grad`,langerZeitraum:h,reihen:[{name:`CPU`,punkte:u.temp_cpu??[],farbe:`var(--reihe-1)`},{name:`GPU`,punkte:u.temp_gpu??[],farbe:`var(--reihe-2)`}]})}),(0,w.jsx)(N,{titel:`Netz`,children:(0,w.jsx)(E,{titel:`Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:h,reihen:[{name:`empfangen`,punkte:u.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:u.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(0,w.jsx)(N,{titel:`Tokens pro Minute`,children:(0,w.jsx)(E,{titel:`Erzeugte und gelesene Tokens pro Minute`,einheit:`anzahl`,langerZeitraum:h,reihen:[{name:`Tokens`,punkte:u.tokens??[],farbe:`var(--reihe-1)`}]})})]}),e[87]=h,e[88]=r.data,e[89]=r.isError,e[90]=r.isPlaceholderData,e[91]=u,e[92]=ue):ue=e[92];let de;return e[93]!==le||e[94]!==ue||e[95]!==b?(de=(0,w.jsxs)(w.Fragment,{children:[b,le,ue]}),e[93]=le,e[94]=ue,e[95]=b,e[96]=de):de=e[96],de}function I(e){let t=(0,C.c)(35),{g:n,zeitraum:r}=e,i=n.aktuell,a=n.id,o=n.name,s;t[0]===n.name?s=t[1]:(s=(0,w.jsx)(`h3`,{className:`text-[15px] font-semibold`,children:n.name}),t[0]=n.name,t[1]=s);let c;t[2]===i.cpu?c=t[3]:(c=i.cpu==null?`–`:`${Math.round(i.cpu)} %`,t[2]=i.cpu,t[3]=c);let l;t[4]===i.ram?l=t[5]:(l=i.ram==null?`–`:`${Math.round(i.ram)} %`,t[4]=i.ram,t[5]=l);let u;t[6]===i.uptime_s?u=t[7]:(u=_(i.uptime_s),t[6]=i.uptime_s,t[7]=u);let d;t[8]!==c||t[9]!==l||t[10]!==u?(d=(0,w.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`CPU `,c,` · RAM `,l,` · läuft `,u]}),t[8]=c,t[9]=l,t[10]=u,t[11]=d):d=t[11];let f;t[12]!==s||t[13]!==d?(f=(0,w.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-2`,children:[s,d]}),t[12]=s,t[13]=d,t[14]=f):f=t[14];let p=`${n.name}: CPU und Speicher in Prozent`,m=r===`7d`,h;t[15]===n.reihen.cpu?h=t[16]:(h=n.reihen.cpu??[],t[15]=n.reihen.cpu,t[16]=h);let g;t[17]===h?g=t[18]:(g={name:`CPU`,punkte:h,farbe:`var(--reihe-1)`},t[17]=h,t[18]=g);let v;t[19]===n.reihen.ram?v=t[20]:(v=n.reihen.ram??[],t[19]=n.reihen.ram,t[20]=v);let y;t[21]===v?y=t[22]:(y={name:`Speicher`,punkte:v,farbe:`var(--reihe-2)`},t[21]=v,t[22]=y);let b;t[23]!==g||t[24]!==y?(b=[g,y],t[23]=g,t[24]=y,t[25]=b):b=t[25];let x;t[26]!==m||t[27]!==b||t[28]!==p?(x=(0,w.jsx)(E,{titel:p,einheit:`prozent`,langerZeitraum:m,hoehe:140,reihen:b}),t[26]=m,t[27]=b,t[28]=p,t[29]=x):x=t[29];let S;return t[30]!==n.id||t[31]!==n.name||t[32]!==x||t[33]!==f?(S=(0,w.jsxs)(`section`,{id:a,"aria-label":o,className:`flex min-w-0 scroll-mt-6 flex-col gap-3 rounded-2xl border border-linie bg-panel p-4 sm:p-5`,children:[f,x]}),t[30]=n.id,t[31]=n.name,t[32]=x,t[33]=f,t[34]=S):S=t[34],S}function L(){let e=(0,C.c)(31),[t,n]=(0,ee.useState)(`1h`),r=l(),o=v(),s=r.data?.rolle===`homelab`||!!(o.data?.eingerichtet&&o.data.erreichbar),c=f(t,s),p;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(p={select:V},e[0]=p):p=e[0];let m=g(p),h,y;if(e[1]!==m||e[2]!==c.data?(h=()=>{m&&c.data&&document.getElementById(m)?.scrollIntoView({block:`start`})},y=[m,c.data],e[1]=m,e[2]=c.data,e[3]=h,e[4]=y):(h=e[3],y=e[4]),(0,ee.useEffect)(h,y),!s){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(a,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[5]=t):t=e[5],t}if(c.isPending){let t;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(a,{text:`Die Messwerte kommen gleich …`}),e[6]=t):t=e[6],t}if(!c.data){let t;return e[7]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(a,{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 b,S,T,D;if(e[8]!==c.data.geraete||e[9]!==c.isPlaceholderData||e[10]!==t){let r=c.data.geraete.find(B),a=c.data.geraete.filter(z),o=t===`7d`,s=r?.aktuell??{},l;e[15]===t?l=e[16]:(l=(0,w.jsx)(M,{wert:t,onWahl:n,farbe:`homelab`}),e[15]=t,e[16]=l);let f;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,w.jsx)(`span`,{className:`text-sm text-text-3`,children:`Werte im Minutentakt vom Proxmox-Host`}),e[17]=f):f=e[17],e[18]===l?T=e[19]:(T=(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[l,f]}),e[18]=l,e[19]=T),D=r&&(0,w.jsxs)(u,{titel:`Proxmox-Host`,rechts:(0,w.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`läuft `,_(s.uptime_s),s.load1==null?``:` · Last ${s.load1.toFixed(2).replace(`.`,`,`)}`]}),children:[(0,w.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,w.jsx)(d,{label:`CPU`,wert:s.cpu,einheit:`prozent`,max:100,punkte:r.reihen.cpu,zustand:x(s.cpu??null,85,95),zeitraumText:P(t)}),(0,w.jsx)(d,{label:`Speicher`,wert:s.ram,einheit:`prozent`,max:100,punkte:r.reihen.ram,zustand:x(s.ram??null,90,95),zeitraumText:P(t)}),(0,w.jsx)(d,{label:`Temperatur`,wert:s.temp_cpu,einheit:`grad`,max:100,punkte:r.reihen.temp_cpu,zustand:x(s.temp_cpu??null,80,90),zeitraumText:P(t)}),(0,w.jsx)(d,{label:`Systemplatte`,wert:s.platte,einheit:`prozent`,max:100,punkte:r.reihen.platte,zustand:x(s.platte??null,80,90),zeitraumText:P(t)})]}),(0,w.jsxs)(`div`,{className:i(`grid gap-5 xl:grid-cols-2`,c.isPlaceholderData&&`opacity-70`),children:[(0,w.jsx)(N,{titel:`CPU und Speicher`,children:(0,w.jsx)(E,{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,w.jsx)(N,{titel:`Netz`,children:(0,w.jsx)(E,{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(R)??!1)&&(0,w.jsx)(N,{titel:`Temperatur`,children:(0,w.jsx)(E,{titel:`Proxmox-Host: CPU-Temperatur in Grad`,einheit:`grad`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.temp_cpu??[],farbe:`var(--reihe-1)`}]})})]})]});let p=c.isPlaceholderData&&`opacity-70`;e[20]===p?b=e[21]:(b=i(`grid gap-5 md:gap-6 xl:grid-cols-2`,p),e[20]=p,e[21]=b);let m;e[22]===t?m=e[23]:(m=e=>(0,w.jsx)(I,{g:e,zeitraum:t},e.id),e[22]=t,e[23]=m),S=a.map(m),e[8]=c.data.geraete,e[9]=c.isPlaceholderData,e[10]=t,e[11]=b,e[12]=S,e[13]=T,e[14]=D}else b=e[11],S=e[12],T=e[13],D=e[14];let O;e[24]!==b||e[25]!==S?(O=(0,w.jsx)(`div`,{className:b,children:S}),e[24]=b,e[25]=S,e[26]=O):O=e[26];let k;return e[27]!==T||e[28]!==D||e[29]!==O?(k=(0,w.jsxs)(w.Fragment,{children:[T,D,O]}),e[27]=T,e[28]=D,e[29]=O,e[30]=k):k=e[30],k}function R(e){let[,t]=e;return t!==null}function z(e){return e.art!==`proxmox-host`}function B(e){return e.art===`proxmox-host`}function V(e){return e.location.hash}export{F as BoxMonitoringSeite,L as HomelabMonitoringSeite}; \ No newline at end of file +import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{C as a,G as o,Vt as s,_ as c,at as l,b as u,c as d,et as f,g as p,h as m,l as h,ln as g,m as _,pt as v,u as y,v as b,y as x}from"./index-CKWhFN2A.js";import{t as S}from"./breite-pBrnu3_s.js";var C=t(),ee=r(e(),1),w=n(),T={rechts:12,oben:10,unten:24};function E(e){let t=(0,C.c)(72),{reihen:n,einheit:r,langerZeitraum:i,hoehe:a,titel:o}=e,s=a===void 0?180:a,[l,u]=S(),[d,f]=(0,ee.useState)(null),m,g,_,v,x,E,A,j;if(t[0]!==u||t[1]!==r||t[2]!==s||t[3]!==d||t[4]!==i||t[5]!==l||t[6]!==n||t[7]!==o){let e=n[0]?.punkte??[],a=e.length,S=p(n.map(te),r),C=r===`prozent`?[0,25,50,75,100]:[0,S/2,S],ee=Math.max(40,Math.max(...C.map(e=>c(e,r).length))*7+12),M;t[16]===ee?M=t[17]:(M={...T,links:ee},t[16]=ee,t[17]=M);let N=M,P=u-N.links-T.rechts,F=s-T.oben-T.unten,I=e[0]?.[0]??0,L=e[a-1]?.[0]??1,R=e=>N.links+(L>I?(e-I)/(L-I)*P:0),z;t[18]!==F||t[19]!==S?(z=e=>T.oben+F-Math.min(e,S)/(S||1)*F,t[18]=F,t[19]=S,t[20]=z):z=t[20];let B=z,V=T.oben+F,ne=a>1?[0,.25,.5,.75,1].map(t=>e[Math.round(t*(a-1))][0]):[],re;t[21]===n?re=t[22]:(re=n.some(k),t[21]=n,t[22]=re);let H=re,ie;t[23]===a?ie=t[24]:(ie=function(e){if(a===0)return;let t=e.currentTarget.getBoundingClientRect(),n=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width));f(Math.round(n*(a-1)))},t[23]=a,t[24]=ie);let U=ie,W;t[25]===a?W=t[26]:(W=function(e){if(a!==0){if(e.key===`ArrowLeft`)f(e=>Math.max(0,(e??a-1)-1));else if(e.key===`ArrowRight`)f(e=>Math.min(a-1,(e??a-1)+1));else return;e.preventDefault()}},t[25]=a,t[26]=W);let ae=W,G=d!==null&&e[d]?e[d][0]:null,K=G===null?0:R(G),oe=e.slice(-12);E=`flex flex-col gap-2`,t[27]===n?A=t[28]:(A=n.length>1&&(0,w.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(O)}),t[27]=n,t[28]=A);let q;t[29]===a?q=t[30]:(q=()=>f(e=>e??(a?a-1:null)),t[29]=a,t[30]=q);let J;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(J=()=>f(null),t[31]=J):J=t[31];let Y;t[32]!==N.links||t[33]!==V||t[34]!==H||t[35]!==P||t[36]!==F||t[37]!==n||t[38]!==R||t[39]!==B?(Y=H?n.map(e=>(0,w.jsxs)(`g`,{children:[n.length===1&&(0,w.jsx)(`path`,{d:h(e.punkte,R,B,V),fill:e.farbe,opacity:.1}),(0,w.jsx)(`path`,{d:y(e.punkte,R,B),fill:`none`,stroke:e.farbe,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})]},e.name)):(0,w.jsx)(`text`,{x:N.links+P/2,y:T.oben+F/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Noch keine Messwerte in diesem Zeitraum`}),t[32]=N.links,t[33]=V,t[34]=H,t[35]=P,t[36]=F,t[37]=n,t[38]=R,t[39]=B,t[40]=Y):Y=t[40];let se;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(se=()=>f(null),t[41]=se):se=t[41];let X;t[42]!==N.links||t[43]!==P||t[44]!==F||t[45]!==U?(X=(0,w.jsx)(`rect`,{x:N.links,y:T.oben,width:P,height:F,fill:`transparent`,onPointerMove:U,onPointerLeave:se}),t[42]=N.links,t[43]=P,t[44]=F,t[45]=U,t[46]=X):X=t[46];let ce=(0,w.jsxs)(`svg`,{width:u,height:s,role:`img`,"aria-label":o,tabIndex:0,onKeyDown:ae,onFocus:q,onBlur:J,className:`block max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[C.map(e=>(0,w.jsxs)(`g`,{children:[(0,w.jsx)(`line`,{x1:N.links,x2:u-T.rechts,y1:B(e),y2:B(e),stroke:`var(--linie)`,strokeWidth:1}),(0,w.jsx)(`text`,{x:N.links-8,y:B(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:c(e,r)})]},e)),ne.map((e,t)=>(0,w.jsx)(`text`,{x:R(e),y:s-6,className:`fill-text-3 font-mono text-[11px]`,textAnchor:t===0?`start`:t===ne.length-1?`end`:`middle`,children:b(e,i)},e)),Y,G!==null&&(0,w.jsxs)(`g`,{"aria-hidden":!0,children:[(0,w.jsx)(`line`,{x1:R(G),x2:R(G),y1:T.oben,y2:V,stroke:`var(--text-3)`,strokeWidth:1}),n.map(e=>{let t=e.punkte[d]?.[1];return t==null?null:(0,w.jsx)(`circle`,{cx:R(G),cy:B(t),r:4,fill:e.farbe,stroke:`var(--panel)`,strokeWidth:2},e.name)})]}),X]}),Z=G!==null&&(0,w.jsxs)(`div`,{role:`status`,className:`pointer-events-none absolute top-1 z-10 flex min-w-36 flex-col gap-1 rounded-lg border border-linie-stark bg-erhaben px-3 py-2 shadow-lg`,style:K>u/2?{right:u-K+10}:{left:K+10},children:[(0,w.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:b(G,!0)}),n.map(e=>(0,w.jsxs)(`span`,{className:`flex items-center gap-2 text-sm`,children:[(0,w.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 rounded-full`,style:{background:e.farbe}}),(0,w.jsx)(`span`,{className:`font-semibold text-foreground`,children:c(e.punkte[d]?.[1],r)}),n.length>1&&(0,w.jsx)(`span`,{className:`text-text-3`,children:e.name})]},e.name))]});t[47]!==l||t[48]!==ce||t[49]!==Z?(j=(0,w.jsxs)(`div`,{ref:l,className:`relative w-full`,children:[ce,Z]}),t[47]=l,t[48]=ce,t[49]=Z,t[50]=j):j=t[50],v=`group text-sm`,t[51]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,w.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 Q;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,w.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:`Zeit`}),t[52]=Q):Q=t[52];let $;t[53]===n?$=t[54]:($=n.map(D),t[53]=n,t[54]=$),t[55]===$?_=t[56]:(_=(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{className:`text-left text-text-3`,children:[Q,$]})}),t[55]=$,t[56]=_),m=oe.map((e,t)=>{let[o]=e;return(0,w.jsxs)(`tr`,{className:`border-t border-linie`,children:[(0,w.jsx)(`td`,{className:`py-1 pr-4 text-text-3`,children:b(o,i)}),n.map(e=>(0,w.jsx)(`td`,{className:`py-1 pr-4 text-text-2`,children:c(e.punkte[a-oe.length+t]?.[1],r)},e.name))]},o)}),t[0]=u,t[1]=r,t[2]=s,t[3]=d,t[4]=i,t[5]=l,t[6]=n,t[7]=o,t[8]=m,t[9]=g,t[10]=_,t[11]=v,t[12]=x,t[13]=E,t[14]=A,t[15]=j}else m=t[8],g=t[9],_=t[10],v=t[11],x=t[12],E=t[13],A=t[14],j=t[15];let M;t[57]===m?M=t[58]:(M=(0,w.jsx)(`tbody`,{children:m}),t[57]=m,t[58]=M);let N;t[59]!==M||t[60]!==g||t[61]!==_?(N=(0,w.jsxs)(`table`,{className:g,children:[_,M]}),t[59]=M,t[60]=g,t[61]=_,t[62]=N):N=t[62];let P;t[63]!==N||t[64]!==v||t[65]!==x?(P=(0,w.jsxs)(`details`,{className:v,children:[x,N]}),t[63]=N,t[64]=v,t[65]=x,t[66]=P):P=t[66];let F;return t[67]!==P||t[68]!==E||t[69]!==A||t[70]!==j?(F=(0,w.jsxs)(`div`,{className:E,children:[A,j,P]}),t[67]=P,t[68]=E,t[69]=A,t[70]=j,t[71]=F):F=t[71],F}function D(e){return(0,w.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:e.name},e.name)}function O(e){return(0,w.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-4 rounded-full`,style:{background:e.farbe}}),e.name]},e.name)}function k(e){return e.punkte.some(A)}function A(e){let[,t]=e;return t!==null}function te(e){return e.punkte}var j=[{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 M(e){let t=(0,C.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=j.map(e=>(0,w.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-linie text-text-2 hover:border-linie-stark 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,w.jsx)(`div`,{role:`group`,"aria-label":`Zeitraum`,className:`flex flex-wrap gap-2`,children:s}),t[4]=s,t[5]=c),c}function N(e){let t=(0,C.c)(9),{titel:n,rechts:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,w.jsx)(`h3`,{className:`schild text-sm tracking-[0.18em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]!==r||t[3]!==a?(o=(0,w.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,w.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 rounded-2xl border border-linie bg-panel 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 P=e=>j.find(t=>t.id===e)?.text??``;function F(){let e=(0,C.c)(97),[t,n]=(0,ee.useState)(`1h`),r=o(t),c=s(),l;e[0]===r.data?.reihen?l=e[1]:(l=r.data?.reihen??{},e[0]=r.data?.reihen,e[1]=l);let u=l,f;e[2]===r.data?.aktuell?f=e[3]:(f=r.data?.aktuell??{},e[2]=r.data?.aktuell,e[3]=f);let p=f,h=t===`7d`,g;e[4]!==p||e[5]!==u?(g=(e,t)=>e??p[t]??m(u[t]),e[4]=p,e[5]=u,e[6]=g):g=e[6];let _=g,v;e[7]===t?v=e[8]:(v=(0,w.jsx)(M,{wert:t,onWahl:n,farbe:`box`}),e[7]=t,e[8]=v);let y;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,w.jsx)(`span`,{className:`text-sm text-text-3`,children:`Zahlen live, Verläufe im Minutentakt`}),e[9]=y):y=e[9];let b;e[10]===v?b=e[11]:(b=(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[v,y]}),e[10]=v,e[11]=b);let S=c?.cpu,T;e[12]!==S||e[13]!==_?(T=_(S,`cpu`),e[12]=S,e[13]=_,e[14]=T):T=e[14];let D=c?.cpu,O;e[15]!==D||e[16]!==_?(O=x(_(D,`cpu`),85,95),e[15]=D,e[16]=_,e[17]=O):O=e[17];let k;e[18]===t?k=e[19]:(k=P(t),e[18]=t,e[19]=k);let A;e[20]!==k||e[21]!==T||e[22]!==O?(A=(0,w.jsx)(d,{label:`CPU`,wert:T,einheit:`prozent`,max:100,zustand:O,zeitraumText:k}),e[20]=k,e[21]=T,e[22]=O,e[23]=A):A=e[23];let te=c?.ram,j;e[24]!==te||e[25]!==_?(j=_(te,`ram`),e[24]=te,e[25]=_,e[26]=j):j=e[26];let F=c?.ram,I;e[27]!==F||e[28]!==_?(I=x(_(F,`ram`),85,95),e[27]=F,e[28]=_,e[29]=I):I=e[29];let L;e[30]===t?L=e[31]:(L=P(t),e[30]=t,e[31]=L);let R;e[32]!==j||e[33]!==I||e[34]!==L?(R=(0,w.jsx)(d,{label:`Speicher`,wert:j,einheit:`prozent`,max:100,zustand:I,zeitraumText:L}),e[32]=j,e[33]=I,e[34]=L,e[35]=R):R=e[35];let z=c?.gpu,B;e[36]!==z||e[37]!==_?(B=_(z,`gpu`),e[36]=z,e[37]=_,e[38]=B):B=e[38];let V;e[39]===t?V=e[40]:(V=P(t),e[39]=t,e[40]=V);let ne;e[41]!==B||e[42]!==V?(ne=(0,w.jsx)(d,{label:`GPU`,wert:B,einheit:`prozent`,max:100,zeitraumText:V}),e[41]=B,e[42]=V,e[43]=ne):ne=e[43];let re=c?.temp_cpu,H;e[44]!==re||e[45]!==_?(H=_(re,`temp_cpu`),e[44]=re,e[45]=_,e[46]=H):H=e[46];let ie=c?.temp_cpu,U;e[47]!==ie||e[48]!==_?(U=x(_(ie,`temp_cpu`),80,90),e[47]=ie,e[48]=_,e[49]=U):U=e[49];let W;e[50]===t?W=e[51]:(W=P(t),e[50]=t,e[51]=W);let ae;e[52]!==H||e[53]!==U||e[54]!==W?(ae=(0,w.jsx)(d,{label:`CPU-Temp.`,wert:H,einheit:`grad`,max:100,zustand:U,zeitraumText:W}),e[52]=H,e[53]=U,e[54]=W,e[55]=ae):ae=e[55];let G=c?.temp_gpu,K;e[56]!==G||e[57]!==_?(K=_(G,`temp_gpu`),e[56]=G,e[57]=_,e[58]=K):K=e[58];let oe=c?.temp_gpu,q;e[59]!==oe||e[60]!==_?(q=x(_(oe,`temp_gpu`),80,90),e[59]=oe,e[60]=_,e[61]=q):q=e[61];let J;e[62]===t?J=e[63]:(J=P(t),e[62]=t,e[63]=J);let Y;e[64]!==K||e[65]!==q||e[66]!==J?(Y=(0,w.jsx)(d,{label:`GPU-Temp.`,wert:K,einheit:`grad`,max:100,zustand:q,zeitraumText:J}),e[64]=K,e[65]=q,e[66]=J,e[67]=Y):Y=e[67];let se=c?.disk,X;e[68]!==se||e[69]!==_?(X=_(se,`platte`),e[68]=se,e[69]=_,e[70]=X):X=e[70];let ce=c?.disk,Z;e[71]!==ce||e[72]!==_?(Z=x(_(ce,`platte`),80,90),e[71]=ce,e[72]=_,e[73]=Z):Z=e[73];let Q;e[74]===t?Q=e[75]:(Q=P(t),e[74]=t,e[75]=Q);let $;e[76]!==X||e[77]!==Z||e[78]!==Q?($=(0,w.jsx)(d,{label:`Platte`,wert:X,einheit:`prozent`,max:100,zustand:Z,zeitraumText:Q}),e[76]=X,e[77]=Z,e[78]=Q,e[79]=$):$=e[79];let le;e[80]!==A||e[81]!==R||e[82]!==ne||e[83]!==ae||e[84]!==Y||e[85]!==$?(le=(0,w.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-3 xl:grid-cols-6`,children:[A,R,ne,ae,Y,$]}),e[80]=A,e[81]=R,e[82]=ne,e[83]=ae,e[84]=Y,e[85]=$,e[86]=le):le=e[86];let ue;e[87]!==h||e[88]!==r.data||e[89]!==r.isError||e[90]!==r.isPlaceholderData||e[91]!==u?(ue=r.isError&&!r.data?(0,w.jsx)(a,{text:`Der Verlauf ist noch nicht da: Die KI-Box sammelt Messwerte, sobald der neue Stand läuft. Die Zahlen oben sind live.`}):(0,w.jsxs)(`div`,{className:i(`grid gap-5 md:gap-6 xl:grid-cols-2`,r.isPlaceholderData&&`opacity-70`),children:[(0,w.jsx)(N,{titel:`CPU`,children:(0,w.jsx)(E,{titel:`CPU-Auslastung in Prozent`,einheit:`prozent`,langerZeitraum:h,reihen:[{name:`CPU`,punkte:u.cpu??[],farbe:`var(--reihe-1)`}]})}),(0,w.jsx)(N,{titel:`Speicher`,children:(0,w.jsx)(E,{titel:`Belegter Speicher in Prozent`,einheit:`prozent`,langerZeitraum:h,reihen:[{name:`Speicher`,punkte:u.ram??[],farbe:`var(--reihe-1)`}]})}),(0,w.jsx)(N,{titel:`GPU`,children:(0,w.jsx)(E,{titel:`GPU-Last in Prozent`,einheit:`prozent`,langerZeitraum:h,reihen:[{name:`GPU`,punkte:u.gpu??[],farbe:`var(--reihe-1)`}]})}),(0,w.jsx)(N,{titel:`Temperatur`,children:(0,w.jsx)(E,{titel:`Temperatur von CPU und GPU in Grad`,einheit:`grad`,langerZeitraum:h,reihen:[{name:`CPU`,punkte:u.temp_cpu??[],farbe:`var(--reihe-1)`},{name:`GPU`,punkte:u.temp_gpu??[],farbe:`var(--reihe-2)`}]})}),(0,w.jsx)(N,{titel:`Netz`,children:(0,w.jsx)(E,{titel:`Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:h,reihen:[{name:`empfangen`,punkte:u.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:u.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(0,w.jsx)(N,{titel:`Tokens pro Minute`,children:(0,w.jsx)(E,{titel:`Erzeugte und gelesene Tokens pro Minute`,einheit:`anzahl`,langerZeitraum:h,reihen:[{name:`Tokens`,punkte:u.tokens??[],farbe:`var(--reihe-1)`}]})})]}),e[87]=h,e[88]=r.data,e[89]=r.isError,e[90]=r.isPlaceholderData,e[91]=u,e[92]=ue):ue=e[92];let de;return e[93]!==le||e[94]!==ue||e[95]!==b?(de=(0,w.jsxs)(w.Fragment,{children:[b,le,ue]}),e[93]=le,e[94]=ue,e[95]=b,e[96]=de):de=e[96],de}function I(e){let t=(0,C.c)(35),{g:n,zeitraum:r}=e,i=n.aktuell,a=n.id,o=n.name,s;t[0]===n.name?s=t[1]:(s=(0,w.jsx)(`h3`,{className:`text-[15px] font-semibold`,children:n.name}),t[0]=n.name,t[1]=s);let c;t[2]===i.cpu?c=t[3]:(c=i.cpu==null?`–`:`${Math.round(i.cpu)} %`,t[2]=i.cpu,t[3]=c);let l;t[4]===i.ram?l=t[5]:(l=i.ram==null?`–`:`${Math.round(i.ram)} %`,t[4]=i.ram,t[5]=l);let u;t[6]===i.uptime_s?u=t[7]:(u=_(i.uptime_s),t[6]=i.uptime_s,t[7]=u);let d;t[8]!==c||t[9]!==l||t[10]!==u?(d=(0,w.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`CPU `,c,` · RAM `,l,` · läuft `,u]}),t[8]=c,t[9]=l,t[10]=u,t[11]=d):d=t[11];let f;t[12]!==s||t[13]!==d?(f=(0,w.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-2`,children:[s,d]}),t[12]=s,t[13]=d,t[14]=f):f=t[14];let p=`${n.name}: CPU und Speicher in Prozent`,m=r===`7d`,h;t[15]===n.reihen.cpu?h=t[16]:(h=n.reihen.cpu??[],t[15]=n.reihen.cpu,t[16]=h);let g;t[17]===h?g=t[18]:(g={name:`CPU`,punkte:h,farbe:`var(--reihe-1)`},t[17]=h,t[18]=g);let v;t[19]===n.reihen.ram?v=t[20]:(v=n.reihen.ram??[],t[19]=n.reihen.ram,t[20]=v);let y;t[21]===v?y=t[22]:(y={name:`Speicher`,punkte:v,farbe:`var(--reihe-2)`},t[21]=v,t[22]=y);let b;t[23]!==g||t[24]!==y?(b=[g,y],t[23]=g,t[24]=y,t[25]=b):b=t[25];let x;t[26]!==m||t[27]!==b||t[28]!==p?(x=(0,w.jsx)(E,{titel:p,einheit:`prozent`,langerZeitraum:m,hoehe:140,reihen:b}),t[26]=m,t[27]=b,t[28]=p,t[29]=x):x=t[29];let S;return t[30]!==n.id||t[31]!==n.name||t[32]!==x||t[33]!==f?(S=(0,w.jsxs)(`section`,{id:a,"aria-label":o,className:`flex min-w-0 scroll-mt-6 flex-col gap-3 rounded-2xl border border-linie bg-panel p-4 sm:p-5`,children:[f,x]}),t[30]=n.id,t[31]=n.name,t[32]=x,t[33]=f,t[34]=S):S=t[34],S}function L(){let e=(0,C.c)(31),[t,n]=(0,ee.useState)(`1h`),r=l(),o=v(),s=r.data?.rolle===`homelab`||!!(o.data?.eingerichtet&&o.data.erreichbar),c=f(t,s),p;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(p={select:V},e[0]=p):p=e[0];let m=g(p),h,y;if(e[1]!==m||e[2]!==c.data?(h=()=>{m&&c.data&&document.getElementById(m)?.scrollIntoView({block:`start`})},y=[m,c.data],e[1]=m,e[2]=c.data,e[3]=h,e[4]=y):(h=e[3],y=e[4]),(0,ee.useEffect)(h,y),!s){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(a,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[5]=t):t=e[5],t}if(c.isPending){let t;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(a,{text:`Die Messwerte kommen gleich …`}),e[6]=t):t=e[6],t}if(!c.data){let t;return e[7]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsx)(a,{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 b,S,T,D;if(e[8]!==c.data.geraete||e[9]!==c.isPlaceholderData||e[10]!==t){let r=c.data.geraete.find(B),a=c.data.geraete.filter(z),o=t===`7d`,s=r?.aktuell??{},l;e[15]===t?l=e[16]:(l=(0,w.jsx)(M,{wert:t,onWahl:n,farbe:`homelab`}),e[15]=t,e[16]=l);let f;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,w.jsx)(`span`,{className:`text-sm text-text-3`,children:`Werte im Minutentakt vom Proxmox-Host`}),e[17]=f):f=e[17],e[18]===l?T=e[19]:(T=(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[l,f]}),e[18]=l,e[19]=T),D=r&&(0,w.jsxs)(u,{titel:`Proxmox-Host`,rechts:(0,w.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`läuft `,_(s.uptime_s),s.load1==null?``:` · Last ${s.load1.toFixed(2).replace(`.`,`,`)}`]}),children:[(0,w.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,w.jsx)(d,{label:`CPU`,wert:s.cpu,einheit:`prozent`,max:100,punkte:r.reihen.cpu,zustand:x(s.cpu??null,85,95),zeitraumText:P(t)}),(0,w.jsx)(d,{label:`Speicher`,wert:s.ram,einheit:`prozent`,max:100,punkte:r.reihen.ram,zustand:x(s.ram??null,90,95),zeitraumText:P(t)}),(0,w.jsx)(d,{label:`Temperatur`,wert:s.temp_cpu,einheit:`grad`,max:100,punkte:r.reihen.temp_cpu,zustand:x(s.temp_cpu??null,80,90),zeitraumText:P(t)}),(0,w.jsx)(d,{label:`Systemplatte`,wert:s.platte,einheit:`prozent`,max:100,punkte:r.reihen.platte,zustand:x(s.platte??null,80,90),zeitraumText:P(t)})]}),(0,w.jsxs)(`div`,{className:i(`grid gap-5 xl:grid-cols-2`,c.isPlaceholderData&&`opacity-70`),children:[(0,w.jsx)(N,{titel:`CPU und Speicher`,children:(0,w.jsx)(E,{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,w.jsx)(N,{titel:`Netz`,children:(0,w.jsx)(E,{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(R)??!1)&&(0,w.jsx)(N,{titel:`Temperatur`,children:(0,w.jsx)(E,{titel:`Proxmox-Host: CPU-Temperatur in Grad`,einheit:`grad`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.temp_cpu??[],farbe:`var(--reihe-1)`}]})})]})]});let p=c.isPlaceholderData&&`opacity-70`;e[20]===p?b=e[21]:(b=i(`grid gap-5 md:gap-6 xl:grid-cols-2`,p),e[20]=p,e[21]=b);let m;e[22]===t?m=e[23]:(m=e=>(0,w.jsx)(I,{g:e,zeitraum:t},e.id),e[22]=t,e[23]=m),S=a.map(m),e[8]=c.data.geraete,e[9]=c.isPlaceholderData,e[10]=t,e[11]=b,e[12]=S,e[13]=T,e[14]=D}else b=e[11],S=e[12],T=e[13],D=e[14];let O;e[24]!==b||e[25]!==S?(O=(0,w.jsx)(`div`,{className:b,children:S}),e[24]=b,e[25]=S,e[26]=O):O=e[26];let k;return e[27]!==T||e[28]!==D||e[29]!==O?(k=(0,w.jsxs)(w.Fragment,{children:[T,D,O]}),e[27]=T,e[28]=D,e[29]=O,e[30]=k):k=e[30],k}function R(e){let[,t]=e;return t!==null}function z(e){return e.art!==`proxmox-host`}function B(e){return e.art===`proxmox-host`}function V(e){return e.location.hash}export{F as BoxMonitoringSeite,L as HomelabMonitoringSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Protokollfenster-Ch6xrwBe.js b/frontend/dist/assets/Protokollfenster-QxeTYr94.js similarity index 94% rename from frontend/dist/assets/Protokollfenster-Ch6xrwBe.js rename to frontend/dist/assets/Protokollfenster-QxeTYr94.js index 9966c4e..adcc27d 100644 --- a/frontend/dist/assets/Protokollfenster-Ch6xrwBe.js +++ b/frontend/dist/assets/Protokollfenster-QxeTYr94.js @@ -1 +1 @@ -import{n as e,r as t}from"./dist-D4CVSex9.js";import{a as n,i as r,n as i,r as a,t as o}from"./sheet-DU78qfp_.js";var s=e(),c=t();function l(e){let t=(0,s.c)(14),{offen:l,titel:u,text:d,onSchliessen:f}=e,p;t[0]===f?p=t[1]:(p=e=>!e&&f(),t[0]=f,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,c.jsx)(n,{className:`schild text-lg`,children:`Protokoll`}),t[2]=m):m=t[2];let h;t[3]===u?h=t[4]:(h=(0,c.jsxs)(r,{children:[m,(0,c.jsx)(a,{className:`text-text-2`,children:u})]}),t[3]=u,t[4]=h);let g;t[5]===d?g=t[6]:(g=(0,c.jsx)(`pre`,{className:`ziffern mx-4 mb-4 flex-1 overflow-auto rounded-lg border border-linie bg-[#0b0d0f] p-3 text-xs leading-relaxed whitespace-pre-wrap text-text-2`,children:d}),t[5]=d,t[6]=g);let _;t[7]!==h||t[8]!==g?(_=(0,c.jsxs)(i,{side:`right`,className:`border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-2xl`,children:[h,g]}),t[7]=h,t[8]=g,t[9]=_):_=t[9];let v;return t[10]!==l||t[11]!==p||t[12]!==_?(v=(0,c.jsx)(o,{open:l,onOpenChange:p,children:_}),t[10]=l,t[11]=p,t[12]=_,t[13]=v):v=t[13],v}export{l as Protokollfenster}; \ No newline at end of file +import{n as e,r as t}from"./dist-D4CVSex9.js";import{a as n,i as r,n as i,r as a,t as o}from"./sheet-CHZtsS6E.js";var s=e(),c=t();function l(e){let t=(0,s.c)(14),{offen:l,titel:u,text:d,onSchliessen:f}=e,p;t[0]===f?p=t[1]:(p=e=>!e&&f(),t[0]=f,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,c.jsx)(n,{className:`schild text-lg`,children:`Protokoll`}),t[2]=m):m=t[2];let h;t[3]===u?h=t[4]:(h=(0,c.jsxs)(r,{children:[m,(0,c.jsx)(a,{className:`text-text-2`,children:u})]}),t[3]=u,t[4]=h);let g;t[5]===d?g=t[6]:(g=(0,c.jsx)(`pre`,{className:`ziffern mx-4 mb-4 flex-1 overflow-auto rounded-lg border border-linie bg-[#0b0d0f] p-3 text-xs leading-relaxed whitespace-pre-wrap text-text-2`,children:d}),t[5]=d,t[6]=g);let _;t[7]!==h||t[8]!==g?(_=(0,c.jsxs)(i,{side:`right`,className:`border-linie bg-panel data-[side=right]:w-full data-[side=right]:sm:max-w-2xl`,children:[h,g]}),t[7]=h,t[8]=g,t[9]=_):_=t[9];let v;return t[10]!==l||t[11]!==p||t[12]!==_?(v=(0,c.jsx)(o,{open:l,onOpenChange:p,children:_}),t[10]=l,t[11]=p,t[12]=_,t[13]=v):v=t[13],v}export{l as Protokollfenster}; \ No newline at end of file diff --git a/frontend/dist/assets/Start-BicB1Gxf.js b/frontend/dist/assets/Start-BEW_FGcW.js similarity index 96% rename from frontend/dist/assets/Start-BicB1Gxf.js rename to frontend/dist/assets/Start-BEW_FGcW.js index ab2f0dc..5ddbc84 100644 --- a/frontend/dist/assets/Start-BicB1Gxf.js +++ b/frontend/dist/assets/Start-BEW_FGcW.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Protokollfenster-Ch6xrwBe.js","assets/dist-D4CVSex9.js","assets/sheet-DU78qfp_.js","assets/index-CIOHqG23.js","assets/useSelector-uUwrspuX.js","assets/useMatch-CiyhmkMV.js","assets/index-h0yYjQNz.css","assets/button-D8rvET0Z.js","assets/dist-B2n2wafq.js","assets/Bestaetigen-D6CzMfJm.js"])))=>i.map(i=>d[i]); -import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{C as a,Et as o,Ft as s,Gt as c,Ht as l,It as u,Jt as d,Lt as f,Qt as p,Rt as m,S as h,Ut as g,Vt as _,Wt as v,Y as y,b,ht as x,qt as S,tn as C,un as w,w as T,x as E,zt as D}from"./index-CIOHqG23.js";import{t as O}from"./button-D8rvET0Z.js";import{t as k}from"./Lampe-gSQfYg4e.js";var A=t(),j=r(e(),1),M=n(),N=(0,j.lazy)(()=>T(()=>import(`./Protokollfenster-Ch6xrwBe.js`).then(e=>({default:e.Protokollfenster})),__vite__mapDeps([0,1,2,3,4,5,6,7,8]))),P=(0,j.lazy)(()=>T(()=>import(`./Bestaetigen-D6CzMfJm.js`).then(e=>e.n).then(e=>({default:e.Bestaetigen})),__vite__mapDeps([9,1,3,4,5,6,7,8])));function F({h:e}){let t=y(),[n,r]=(0,j.useState)(null),[a,o]=(0,j.useState)(null),s=e.stufe===`rot`,c=a?d(e,a):null;async function u(){try{let t=await C(`/api/hinweise/${encodeURIComponent(e.id)}/aktion/protokoll`);r({titel:e.titel,text:t.text||t.out||t.err||`Kein Protokoll vorhanden.`})}catch(e){l(`fehler`,e.message)}}function f(n){t.mutate({hinweis:e.id,aktion:n.id,label:n.label})}function p(t){t.id===`protokoll`?u():d(e,t)?o(t):f(t)}return(0,M.jsxs)(`article`,{className:`flex flex-col gap-2.5 border-t border-linie pt-4`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`h3`,{className:`min-w-0 font-sans text-[17px] leading-snug font-semibold`,children:e.titel}),(0,M.jsx)(`span`,{"aria-hidden":!0,className:`hidden h-0 flex-grow border-b-2 border-dotted border-linie-stark sm:block`}),(0,M.jsx)(`span`,{className:i(`schild shrink-0 text-base`,s?`text-rot`:`text-bernstein`),children:s?`Jetzt`:`Prüfen`})]}),(0,M.jsxs)(`p`,{className:`ziffern text-[13px] text-text-3`,children:[m(e.seit),` · zuletzt `,D(e.zuletzt)]}),e.text&&(0,M.jsx)(`p`,{className:`text-[15px] leading-relaxed break-words text-text-2`,children:e.text}),e.aktionen.length>0&&(0,M.jsx)(`div`,{className:`flex flex-wrap gap-2.5 pt-1`,children:e.aktionen.map((e,n)=>(0,M.jsx)(O,{variant:n===0&&e.id!==`protokoll`?`default`:`outline`,size:`sm`,disabled:t.isPending,onClick:()=>p(e),children:e.label},e.id))}),n&&(0,M.jsx)(j.Suspense,{fallback:null,children:(0,M.jsx)(N,{offen:!0,titel:n.titel,text:n.text,onSchliessen:()=>r(null)})}),a&&c&&(0,M.jsx)(j.Suspense,{fallback:null,children:(0,M.jsx)(P,{offen:!0,titel:c.titel,text:c.text,knopf:c.knopf,gesperrt:t.isPending,onNein:()=>o(null),onJa:()=>{f(a),o(null)}})})]})}function I(e){let t=(0,A.c)(12),{hinweise:n,verlauf:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Date().toDateString(),t[0]=i):i=t[0];let a=i,o;if(t[1]!==n.length||t[2]!==r){o=Symbol.for(`react.early_return_sentinel`);bb0:{let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=e=>(e.art===`erledigt`||e.art===`auto`)&&new Date(e.ts*1e3).toDateString()===a,t[4]=e):e=t[4];let i=r.filter(e);if(n.length===0){let e;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,M.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine offenen Punkte. Der Wächter prüft jede Minute.`}),t[5]=e):e=t[5];let n=i.length>0&&(0,M.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm text-text-3`,children:i.slice(0,4).map(R)}),r;t[6]===n?r=t[7]:(r=(0,M.jsxs)(`div`,{className:`flex flex-col gap-2 border-t border-linie pt-4`,children:[e,n]}),t[6]=n,t[7]=r),o=r;break bb0}}t[1]=n.length,t[2]=r,t[3]=o}else o=t[3];if(o!==Symbol.for(`react.early_return_sentinel`))return o;let s;t[8]===n?s=t[9]:(s=n.map(L),t[8]=n,t[9]=s);let c;return t[10]===s?c=t[11]:(c=(0,M.jsx)(`div`,{className:`flex flex-col gap-4`,children:s}),t[10]=s,t[11]=c),c}function L(e){return(0,M.jsx)(F,{h:e},e.id)}function R(e){return(0,M.jsxs)(`li`,{children:[(0,M.jsx)(`span`,{className:`ziffern`,children:D(e.ts)}),` · `,e.text]},`${e.id}-${e.ts}`)}function z(e){let t=(0,A.c)(25),{anteil:n,farbe:r,zonen:i,mitte:a,unter:o,beschriftung:s,ariaText:l}=e,u=r===void 0?`var(--cyan)`:r,d;t[0]===i?d=t[1]:(d=i===void 0?[]:i,t[0]=i,t[1]=d);let f=d,p=n!=null&&n>.004,m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,M.jsx)(`path`,{d:c(0,1,75),fill:`none`,stroke:`var(--linie)`,strokeWidth:12,strokeLinecap:`round`}),t[2]=m):m=t[2];let h;t[3]===f?h=t[4]:(h=f.map(B),t[3]=f,t[4]=h);let g;t[5]!==n||t[6]!==u||t[7]!==p?(g=p&&(0,M.jsx)(`path`,{d:c(0,n,75),fill:`none`,stroke:u,strokeWidth:12,strokeLinecap:`round`}),t[5]=n,t[6]=u,t[7]=p,t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_={fontSize:34,fontWeight:500,fill:`var(--foreground)`},t[9]=_):_=t[9];let v;t[10]===a?v=t[11]:(v=(0,M.jsx)(`text`,{x:`100`,y:`100`,textAnchor:`middle`,className:`ziffern`,style:_,children:a}),t[10]=a,t[11]=v);let y;t[12]===o?y=t[13]:(y=o&&(0,M.jsx)(`text`,{x:`100`,y:`122`,textAnchor:`middle`,style:{fontFamily:`var(--font-anzeige)`,fontSize:14,fontWeight:600,letterSpacing:`0.12em`,fill:`var(--text-3)`},children:o.toUpperCase()}),t[12]=o,t[13]=y);let b;t[14]!==l||t[15]!==h||t[16]!==g||t[17]!==v||t[18]!==y?(b=(0,M.jsxs)(`svg`,{viewBox:`0 0 200 150`,className:`h-auto w-full max-w-[200px]`,role:`img`,"aria-label":l,children:[m,h,g,v,y]}),t[14]=l,t[15]=h,t[16]=g,t[17]=v,t[18]=y,t[19]=b):b=t[19];let x;t[20]===s?x=t[21]:(x=(0,M.jsx)(`figcaption`,{className:`schild text-[15px] text-text-3`,children:s}),t[20]=s,t[21]=x);let S;return t[22]!==b||t[23]!==x?(S=(0,M.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col items-center gap-1`,children:[b,x]}),t[22]=b,t[23]=x,t[24]=S):S=t[24],S}function B(e){return(0,M.jsx)(`path`,{d:c(e.von,e.bis,86),fill:`none`,stroke:e.farbe,strokeWidth:4,strokeLinecap:`round`},`${e.von}-${e.bis}`)}function V(e){let t=(0,A.c)(26),{zustand:n,lampen:r,onAnsehen:a}=e,o;t[0]===n?o=t[1]:(o=S(n),t[0]=n,t[1]=o);let s=o,c=s.art===`gelb`||s.art===`rot`,l=!c,u=`${s.oben} ${s.mitte}`,d=g[s.art],f=c?`cursor-pointer`:`cursor-default`,p;t[2]!==d||t[3]!==f?(p=i(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,d,f),t[2]=d,t[3]=f,t[4]=p):p=t[4];let m;t[5]===s.oben?m=t[6]:(m=(0,M.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:s.oben}),t[5]=s.oben,t[6]=m);let h;t[7]===s.mitte?h=t[8]:(h=(0,M.jsx)(`span`,{className:`text-[40px] leading-none font-bold tracking-[0.04em] sm:text-[44px]`,children:s.mitte}),t[7]=s.mitte,t[8]=h);let _;t[9]===s.unten?_=t[10]:(_=(0,M.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:s.unten}),t[9]=s.unten,t[10]=_);let v;t[11]!==a||t[12]!==l||t[13]!==u||t[14]!==p||t[15]!==m||t[16]!==h||t[17]!==_?(v=(0,M.jsxs)(`button`,{type:`button`,onClick:a,disabled:l,"aria-label":u,className:p,children:[m,h,_]}),t[11]=a,t[12]=l,t[13]=u,t[14]=p,t[15]=m,t[16]=h,t[17]=_,t[18]=v):v=t[18];let y;t[19]===r?y=t[20]:(y=r.map(H),t[19]=r,t[20]=y);let b;t[21]===y?b=t[22]:(b=(0,M.jsx)(`ul`,{className:`grid grid-cols-2 gap-2.5 rounded-2xl border border-linie bg-panel p-3 sm:grid-cols-4`,children:y}),t[21]=y,t[22]=b);let x;return t[23]!==v||t[24]!==b?(x=(0,M.jsxs)(`section`,{"aria-label":`Warnpanel`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[v,b]}),t[23]=v,t[24]=b,t[25]=x):x=t[25],x}function H(e){return(0,M.jsx)(k,{lampe:e},e.id)}function U(e){let t=(0,A.c)(2),{z:n}=e,r;return t[0]===n?r=t[1]:(r=(0,M.jsx)(`span`,{className:`ziffern inline-flex h-[1.75em] w-[1.1875em] shrink-0 items-center justify-center rounded-md border border-[#2a3036] bg-[#0b0d0f] font-medium`,children:n}),t[0]=n,t[1]=r),r}function W(e){let t=(0,A.c)(25),{sekunden:n}=e,r;t[0]===n?r=t[1]:(r=f(n),t[0]=n,t[1]=r);let i=r,a=String(Math.min(i?.[0]??0,99)),o;t[2]===a?o=t[3]:(o=a.padStart(2,`0`),t[2]=a,t[3]=o);let s=o,c=String(i?.[1]??0),l;t[4]===c?l=t[5]:(l=c.padStart(2,`0`),t[4]=c,t[5]=l);let u=l,d=i?`Laufzeit ohne Neustart: ${i[0]} Tage, ${i[1]} Stunden`:`Laufzeit unbekannt`,p=i?s[0]:`–`,m;t[6]===p?m=t[7]:(m=(0,M.jsx)(U,{z:p}),t[6]=p,t[7]=m);let h=i?s[1]:`–`,g;t[8]===h?g=t[9]:(g=(0,M.jsx)(U,{z:h}),t[8]=h,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,M.jsx)(`span`,{className:`schild mr-[0.444em] ml-[0.111em] text-[0.5625em] font-bold text-text-3`,children:`T`}),t[10]=_):_=t[10];let v=i?u[0]:`–`,y;t[11]===v?y=t[12]:(y=(0,M.jsx)(U,{z:v}),t[11]=v,t[12]=y);let b=i?u[1]:`–`,x;t[13]===b?x=t[14]:(x=(0,M.jsx)(U,{z:b}),t[13]=b,t[14]=x);let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,M.jsx)(`span`,{className:`schild ml-[0.111em] text-[0.5625em] font-bold text-text-3`,children:`H`}),t[15]=S):S=t[15];let C;t[16]!==y||t[17]!==x||t[18]!==m||t[19]!==g||t[20]!==d?(C=(0,M.jsxs)(`div`,{"aria-label":d,role:`img`,className:`flex h-[min(75cqw,150px)] items-center gap-[0.1875em] pb-[min(10cqw,20px)] text-[length:clamp(14px,14.5cqw,32px)]`,children:[m,g,_,y,x,S]}),t[16]=y,t[17]=x,t[18]=m,t[19]=g,t[20]=d,t[21]=C):C=t[21];let w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,M.jsx)(`figcaption`,{className:`schild text-[15px] text-text-3`,children:`Ohne Neustart`}),t[22]=w):w=t[22];let T;return t[23]===C?T=t[24]:(T=(0,M.jsxs)(`figure`,{className:`@container m-0 flex min-w-0 flex-col items-center justify-end gap-1`,children:[C,w]}),t[23]=C,t[24]=T),T}function G(e){let t=(0,A.c)(47),{box:n}=e,r=_(),i=r?.ram_used??n.ram_used,a=r?.ram_total??n.ram_total,o=r?.temp_cpu??n.temp_cpu,c=r?.temp_gpu??n.temp_gpu,l=n.platte,d=r?.uptime_s??n.uptime_s,f=i!=null&&a?i/a:null,m;t[0]===i?m=t[1]:(m=i==null?`–`:String(Math.round(s(i)??0)),t[0]=i,t[1]=m);let h;t[2]===a?h=t[3]:(h=a?`von ${Math.round(s(a)??0)} GB`:void 0,t[2]=a,t[3]=h);let g;t[4]!==f||t[5]!==i||t[6]!==a?(g=f==null?`Speicher unbekannt`:`Speicher: ${u(i)} von ${u(a)} belegt`,t[4]=f,t[5]=i,t[6]=a,t[7]=g):g=t[7];let v;t[8]!==f||t[9]!==m||t[10]!==h||t[11]!==g?(v=(0,M.jsx)(z,{beschriftung:`Speicher`,anteil:f,mitte:m,unter:h,ariaText:g}),t[8]=f,t[9]=m,t[10]=h,t[11]=g,t[12]=v):v=t[12];let y=o==null?null:o/100,b;t[13]===o?b=t[14]:(b=p(o),t[13]=o,t[14]=b);let x;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(x=[{von:.7,bis:.85,farbe:`var(--bernstein)`},{von:.85,bis:1,farbe:`var(--rot)`}],t[15]=x):x=t[15];let S;t[16]===o?S=t[17]:(S=o==null?`–`:`${Math.round(o)}°`,t[16]=o,t[17]=S);let C;t[18]===c?C=t[19]:(C=c==null?void 0:`GPU ${Math.round(c)}°`,t[18]=c,t[19]=C);let w;t[20]===o?w=t[21]:(w=o==null?`Temperatur unbekannt`:`Temperatur ${Math.round(o)} Grad`,t[20]=o,t[21]=w);let T;t[22]!==w||t[23]!==y||t[24]!==b||t[25]!==S||t[26]!==C?(T=(0,M.jsx)(z,{beschriftung:`Temperatur`,anteil:y,farbe:b,zonen:x,mitte:S,unter:C,ariaText:w}),t[22]=w,t[23]=y,t[24]=b,t[25]=S,t[26]=C,t[27]=T):T=t[27];let E=l?l.percent/100:null,D=l&&l.percent>=90?`var(--rot)`:l&&l.percent>=80?`var(--bernstein)`:`var(--cyan)`,O;t[28]===l?O=t[29]:(O=l?`${Math.round(l.percent)}%`:`–`,t[28]=l,t[29]=O);let k;t[30]===l?k=t[31]:(k=l?`${u(l.used)} / ${u(l.total)}`:void 0,t[30]=l,t[31]=k);let j;t[32]===l?j=t[33]:(j=l?`Platte zu ${Math.round(l.percent)} Prozent belegt`:`Platte unbekannt`,t[32]=l,t[33]=j);let N;t[34]!==E||t[35]!==D||t[36]!==O||t[37]!==k||t[38]!==j?(N=(0,M.jsx)(z,{beschriftung:`Platte`,anteil:E,farbe:D,mitte:O,unter:k,ariaText:j}),t[34]=E,t[35]=D,t[36]=O,t[37]=k,t[38]=j,t[39]=N):N=t[39];let P;t[40]===d?P=t[41]:(P=(0,M.jsx)(W,{sekunden:d}),t[40]=d,t[41]=P);let F;return t[42]!==T||t[43]!==N||t[44]!==P||t[45]!==v?(F=(0,M.jsxs)(`section`,{"aria-label":`Instrumente`,className:`grid grid-cols-2 gap-x-4 gap-y-6 rounded-2xl border border-linie bg-panel px-4 py-5 lg:grid-cols-4 lg:px-6`,children:[v,T,N,P]}),t[42]=T,t[43]=N,t[44]=P,t[45]=v,t[46]=F):F=t[46],F}var K={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`};function q(e){let t=(0,A.c)(14),{radar:n}=e;if(!n?.kandidaten)return null;let r,i;t[0]===n.kandidaten?(r=t[1],i=t[2]):(r=n.kandidaten.filter(Y),i=r.find(J)??r[0],t[0]=n.kandidaten,t[1]=r,t[2]=i);let a=i,o=r.length===1?``:`en`,s;t[3]!==r.length||t[4]!==o?(s=(0,M.jsxs)(`span`,{className:`schild text-sm text-cyan`,children:[`Radar · `,r.length,` Kandidat`,o]}),t[3]=r.length,t[4]=o,t[5]=s):s=t[5];let c;t[6]===a?c=t[7]:(c=a?(0,M.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-[15px]`,children:[(0,M.jsx)(`span`,{className:`ziffern`,children:a.name}),(0,M.jsxs)(`span`,{className:`text-text-2`,children:[`fürs `,a.rolle===`hirn`?`Hirn`:`Coden`]}),(0,M.jsx)(h,{art:K[a.status]??`grau`,children:v[a.status]??a.status})]}):(0,M.jsx)(`span`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}),t[6]=a,t[7]=c);let l;t[8]!==s||t[9]!==c?(l=(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[s,c]}),t[8]=s,t[9]=c,t[10]=l):l=t[10];let u;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,M.jsx)(O,{variant:`info`,size:`sm`,asChild:!0,children:(0,M.jsx)(w,{to:`/box/modelle`,hash:`radar`,children:`Ansehen`})}),t[11]=u):u=t[11];let d;return t[12]===l?d=t[13]:(d=(0,M.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3 rounded-xl border border-cyan-rand bg-cyan-grund px-4 py-3.5`,children:[l,u]}),t[12]=l,t[13]=d),d}function J(e){return e.status===`bestanden`}function Y(e){return[`bestanden`,`wartet`,`neu`].includes(e.status)}function X(){let e=(0,A.c)(32),{data:t,error:n,isPending:r}=o(),i=x();if(r){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(a,{text:`Die Box meldet sich gleich …`}),e[0]=t):t=e[0],t}if(!t){let t=`MC2 antwortet nicht: ${n?.message??`keine Daten`}`,r;return e[1]===t?r=e[2]:(r=(0,M.jsx)(a,{fehler:!0,text:t}),e[1]=t,e[2]=r),r}let s=t.hinweise.length,c;e[3]!==t.lampen||e[4]!==t.zustand?(c=(0,M.jsx)(V,{zustand:t.zustand,lampen:t.lampen,onAnsehen:Z}),e[3]=t.lampen,e[4]=t.zustand,e[5]=c):c=e[5];let l;e[6]===t.box?l=e[7]:(l=(0,M.jsx)(G,{box:t.box}),e[6]=t.box,e[7]=l);let u=s?`ziffern text-sm text-bernstein`:`ziffern text-sm text-gruen`,d=s?`${s} offen`:`alles erledigt`,f;e[8]!==u||e[9]!==d?(f=(0,M.jsx)(`span`,{className:u,children:d}),e[8]=u,e[9]=d,e[10]=f):f=e[10];let p;e[11]!==t.hinweise||e[12]!==t.verlauf?(p=(0,M.jsx)(I,{hinweise:t.hinweise,verlauf:t.verlauf}),e[11]=t.hinweise,e[12]=t.verlauf,e[13]=p):p=e[13];let m;e[14]!==f||e[15]!==p?(m=(0,M.jsx)(b,{titel:`Checkliste`,id:`checkliste`,rechts:f,children:p}),e[14]=f,e[15]=p,e[16]=m):m=e[16];let h;e[17]!==t.flugplan.gelaufen||e[18]!==t.flugplan.geplant?(h=(0,M.jsx)(E,{gelaufen:t.flugplan.gelaufen,geplant:t.flugplan.geplant}),e[17]=t.flugplan.gelaufen,e[18]=t.flugplan.geplant,e[19]=h):h=e[19];let g;e[20]===i.data?g=e[21]:(g=(0,M.jsx)(q,{radar:i.data}),e[20]=i.data,e[21]=g);let _;e[22]!==h||e[23]!==g?(_=(0,M.jsxs)(b,{titel:`Flugplan`,children:[h,g]}),e[22]=h,e[23]=g,e[24]=_):_=e[24];let v;e[25]!==m||e[26]!==_?(v=(0,M.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] md:gap-6`,children:[m,_]}),e[25]=m,e[26]=_,e[27]=v):v=e[27];let y;return e[28]!==c||e[29]!==l||e[30]!==v?(y=(0,M.jsxs)(M.Fragment,{children:[c,l,v]}),e[28]=c,e[29]=l,e[30]=v,e[31]=y):y=e[31],y}function Z(){return document.getElementById(`checkliste`)?.scrollIntoView({behavior:`smooth`,block:`start`})}export{X as StartSeite}; \ No newline at end of file +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Protokollfenster-QxeTYr94.js","assets/dist-D4CVSex9.js","assets/sheet-CHZtsS6E.js","assets/index-CKWhFN2A.js","assets/useSelector-uUwrspuX.js","assets/useMatch-CiyhmkMV.js","assets/index-h0yYjQNz.css","assets/button-D8rvET0Z.js","assets/dist-VQuEcoq-.js","assets/Bestaetigen-CMlebyiw.js"])))=>i.map(i=>d[i]); +import{i as e,n as t,r as n,s as r,t as i}from"./dist-D4CVSex9.js";import{C as a,Et as o,Ft as s,Gt as c,Ht as l,It as u,Jt as d,Lt as f,Qt as p,Rt as m,S as h,Ut as g,Vt as _,Wt as v,Y as y,b,ht as x,qt as S,tn as C,un as w,w as T,x as E,zt as D}from"./index-CKWhFN2A.js";import{t as O}from"./button-D8rvET0Z.js";import{t as k}from"./Lampe-gSQfYg4e.js";var A=t(),j=r(e(),1),M=n(),N=(0,j.lazy)(()=>T(()=>import(`./Protokollfenster-QxeTYr94.js`).then(e=>({default:e.Protokollfenster})),__vite__mapDeps([0,1,2,3,4,5,6,7,8]))),P=(0,j.lazy)(()=>T(()=>import(`./Bestaetigen-CMlebyiw.js`).then(e=>e.n).then(e=>({default:e.Bestaetigen})),__vite__mapDeps([9,1,3,4,5,6,7,8])));function F({h:e}){let t=y(),[n,r]=(0,j.useState)(null),[a,o]=(0,j.useState)(null),s=e.stufe===`rot`,c=a?d(e,a):null;async function u(){try{let t=await C(`/api/hinweise/${encodeURIComponent(e.id)}/aktion/protokoll`);r({titel:e.titel,text:t.text||t.out||t.err||`Kein Protokoll vorhanden.`})}catch(e){l(`fehler`,e.message)}}function f(n){t.mutate({hinweis:e.id,aktion:n.id,label:n.label})}function p(t){t.id===`protokoll`?u():d(e,t)?o(t):f(t)}return(0,M.jsxs)(`article`,{className:`flex flex-col gap-2.5 border-t border-linie pt-4`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`h3`,{className:`min-w-0 font-sans text-[17px] leading-snug font-semibold`,children:e.titel}),(0,M.jsx)(`span`,{"aria-hidden":!0,className:`hidden h-0 flex-grow border-b-2 border-dotted border-linie-stark sm:block`}),(0,M.jsx)(`span`,{className:i(`schild shrink-0 text-base`,s?`text-rot`:`text-bernstein`),children:s?`Jetzt`:`Prüfen`})]}),(0,M.jsxs)(`p`,{className:`ziffern text-[13px] text-text-3`,children:[m(e.seit),` · zuletzt `,D(e.zuletzt)]}),e.text&&(0,M.jsx)(`p`,{className:`text-[15px] leading-relaxed break-words text-text-2`,children:e.text}),e.aktionen.length>0&&(0,M.jsx)(`div`,{className:`flex flex-wrap gap-2.5 pt-1`,children:e.aktionen.map((e,n)=>(0,M.jsx)(O,{variant:n===0&&e.id!==`protokoll`?`default`:`outline`,size:`sm`,disabled:t.isPending,onClick:()=>p(e),children:e.label},e.id))}),n&&(0,M.jsx)(j.Suspense,{fallback:null,children:(0,M.jsx)(N,{offen:!0,titel:n.titel,text:n.text,onSchliessen:()=>r(null)})}),a&&c&&(0,M.jsx)(j.Suspense,{fallback:null,children:(0,M.jsx)(P,{offen:!0,titel:c.titel,text:c.text,knopf:c.knopf,gesperrt:t.isPending,onNein:()=>o(null),onJa:()=>{f(a),o(null)}})})]})}function I(e){let t=(0,A.c)(12),{hinweise:n,verlauf:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Date().toDateString(),t[0]=i):i=t[0];let a=i,o;if(t[1]!==n.length||t[2]!==r){o=Symbol.for(`react.early_return_sentinel`);bb0:{let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=e=>(e.art===`erledigt`||e.art===`auto`)&&new Date(e.ts*1e3).toDateString()===a,t[4]=e):e=t[4];let i=r.filter(e);if(n.length===0){let e;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,M.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine offenen Punkte. Der Wächter prüft jede Minute.`}),t[5]=e):e=t[5];let n=i.length>0&&(0,M.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm text-text-3`,children:i.slice(0,4).map(R)}),r;t[6]===n?r=t[7]:(r=(0,M.jsxs)(`div`,{className:`flex flex-col gap-2 border-t border-linie pt-4`,children:[e,n]}),t[6]=n,t[7]=r),o=r;break bb0}}t[1]=n.length,t[2]=r,t[3]=o}else o=t[3];if(o!==Symbol.for(`react.early_return_sentinel`))return o;let s;t[8]===n?s=t[9]:(s=n.map(L),t[8]=n,t[9]=s);let c;return t[10]===s?c=t[11]:(c=(0,M.jsx)(`div`,{className:`flex flex-col gap-4`,children:s}),t[10]=s,t[11]=c),c}function L(e){return(0,M.jsx)(F,{h:e},e.id)}function R(e){return(0,M.jsxs)(`li`,{children:[(0,M.jsx)(`span`,{className:`ziffern`,children:D(e.ts)}),` · `,e.text]},`${e.id}-${e.ts}`)}function z(e){let t=(0,A.c)(25),{anteil:n,farbe:r,zonen:i,mitte:a,unter:o,beschriftung:s,ariaText:l}=e,u=r===void 0?`var(--cyan)`:r,d;t[0]===i?d=t[1]:(d=i===void 0?[]:i,t[0]=i,t[1]=d);let f=d,p=n!=null&&n>.004,m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,M.jsx)(`path`,{d:c(0,1,75),fill:`none`,stroke:`var(--linie)`,strokeWidth:12,strokeLinecap:`round`}),t[2]=m):m=t[2];let h;t[3]===f?h=t[4]:(h=f.map(B),t[3]=f,t[4]=h);let g;t[5]!==n||t[6]!==u||t[7]!==p?(g=p&&(0,M.jsx)(`path`,{d:c(0,n,75),fill:`none`,stroke:u,strokeWidth:12,strokeLinecap:`round`}),t[5]=n,t[6]=u,t[7]=p,t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_={fontSize:34,fontWeight:500,fill:`var(--foreground)`},t[9]=_):_=t[9];let v;t[10]===a?v=t[11]:(v=(0,M.jsx)(`text`,{x:`100`,y:`100`,textAnchor:`middle`,className:`ziffern`,style:_,children:a}),t[10]=a,t[11]=v);let y;t[12]===o?y=t[13]:(y=o&&(0,M.jsx)(`text`,{x:`100`,y:`122`,textAnchor:`middle`,style:{fontFamily:`var(--font-anzeige)`,fontSize:14,fontWeight:600,letterSpacing:`0.12em`,fill:`var(--text-3)`},children:o.toUpperCase()}),t[12]=o,t[13]=y);let b;t[14]!==l||t[15]!==h||t[16]!==g||t[17]!==v||t[18]!==y?(b=(0,M.jsxs)(`svg`,{viewBox:`0 0 200 150`,className:`h-auto w-full max-w-[200px]`,role:`img`,"aria-label":l,children:[m,h,g,v,y]}),t[14]=l,t[15]=h,t[16]=g,t[17]=v,t[18]=y,t[19]=b):b=t[19];let x;t[20]===s?x=t[21]:(x=(0,M.jsx)(`figcaption`,{className:`schild text-[15px] text-text-3`,children:s}),t[20]=s,t[21]=x);let S;return t[22]!==b||t[23]!==x?(S=(0,M.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col items-center gap-1`,children:[b,x]}),t[22]=b,t[23]=x,t[24]=S):S=t[24],S}function B(e){return(0,M.jsx)(`path`,{d:c(e.von,e.bis,86),fill:`none`,stroke:e.farbe,strokeWidth:4,strokeLinecap:`round`},`${e.von}-${e.bis}`)}function V(e){let t=(0,A.c)(26),{zustand:n,lampen:r,onAnsehen:a}=e,o;t[0]===n?o=t[1]:(o=S(n),t[0]=n,t[1]=o);let s=o,c=s.art===`gelb`||s.art===`rot`,l=!c,u=`${s.oben} ${s.mitte}`,d=g[s.art],f=c?`cursor-pointer`:`cursor-default`,p;t[2]!==d||t[3]!==f?(p=i(`flex min-h-[130px] flex-col items-center justify-center gap-1 rounded-2xl border px-4 py-4 font-anzeige transition-colors`,d,f),t[2]=d,t[3]=f,t[4]=p):p=t[4];let m;t[5]===s.oben?m=t[6]:(m=(0,M.jsx)(`span`,{className:`schild text-sm tracking-[0.26em]`,children:s.oben}),t[5]=s.oben,t[6]=m);let h;t[7]===s.mitte?h=t[8]:(h=(0,M.jsx)(`span`,{className:`text-[40px] leading-none font-bold tracking-[0.04em] sm:text-[44px]`,children:s.mitte}),t[7]=s.mitte,t[8]=h);let _;t[9]===s.unten?_=t[10]:(_=(0,M.jsx)(`span`,{className:`font-sans text-sm opacity-80`,children:s.unten}),t[9]=s.unten,t[10]=_);let v;t[11]!==a||t[12]!==l||t[13]!==u||t[14]!==p||t[15]!==m||t[16]!==h||t[17]!==_?(v=(0,M.jsxs)(`button`,{type:`button`,onClick:a,disabled:l,"aria-label":u,className:p,children:[m,h,_]}),t[11]=a,t[12]=l,t[13]=u,t[14]=p,t[15]=m,t[16]=h,t[17]=_,t[18]=v):v=t[18];let y;t[19]===r?y=t[20]:(y=r.map(H),t[19]=r,t[20]=y);let b;t[21]===y?b=t[22]:(b=(0,M.jsx)(`ul`,{className:`grid grid-cols-2 gap-2.5 rounded-2xl border border-linie bg-panel p-3 sm:grid-cols-4`,children:y}),t[21]=y,t[22]=b);let x;return t[23]!==v||t[24]!==b?(x=(0,M.jsxs)(`section`,{"aria-label":`Warnpanel`,className:`grid gap-4 md:grid-cols-[260px_minmax(0,1fr)] md:gap-5`,children:[v,b]}),t[23]=v,t[24]=b,t[25]=x):x=t[25],x}function H(e){return(0,M.jsx)(k,{lampe:e},e.id)}function U(e){let t=(0,A.c)(2),{z:n}=e,r;return t[0]===n?r=t[1]:(r=(0,M.jsx)(`span`,{className:`ziffern inline-flex h-[1.75em] w-[1.1875em] shrink-0 items-center justify-center rounded-md border border-[#2a3036] bg-[#0b0d0f] font-medium`,children:n}),t[0]=n,t[1]=r),r}function W(e){let t=(0,A.c)(25),{sekunden:n}=e,r;t[0]===n?r=t[1]:(r=f(n),t[0]=n,t[1]=r);let i=r,a=String(Math.min(i?.[0]??0,99)),o;t[2]===a?o=t[3]:(o=a.padStart(2,`0`),t[2]=a,t[3]=o);let s=o,c=String(i?.[1]??0),l;t[4]===c?l=t[5]:(l=c.padStart(2,`0`),t[4]=c,t[5]=l);let u=l,d=i?`Laufzeit ohne Neustart: ${i[0]} Tage, ${i[1]} Stunden`:`Laufzeit unbekannt`,p=i?s[0]:`–`,m;t[6]===p?m=t[7]:(m=(0,M.jsx)(U,{z:p}),t[6]=p,t[7]=m);let h=i?s[1]:`–`,g;t[8]===h?g=t[9]:(g=(0,M.jsx)(U,{z:h}),t[8]=h,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,M.jsx)(`span`,{className:`schild mr-[0.444em] ml-[0.111em] text-[0.5625em] font-bold text-text-3`,children:`T`}),t[10]=_):_=t[10];let v=i?u[0]:`–`,y;t[11]===v?y=t[12]:(y=(0,M.jsx)(U,{z:v}),t[11]=v,t[12]=y);let b=i?u[1]:`–`,x;t[13]===b?x=t[14]:(x=(0,M.jsx)(U,{z:b}),t[13]=b,t[14]=x);let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,M.jsx)(`span`,{className:`schild ml-[0.111em] text-[0.5625em] font-bold text-text-3`,children:`H`}),t[15]=S):S=t[15];let C;t[16]!==y||t[17]!==x||t[18]!==m||t[19]!==g||t[20]!==d?(C=(0,M.jsxs)(`div`,{"aria-label":d,role:`img`,className:`flex h-[min(75cqw,150px)] items-center gap-[0.1875em] pb-[min(10cqw,20px)] text-[length:clamp(14px,14.5cqw,32px)]`,children:[m,g,_,y,x,S]}),t[16]=y,t[17]=x,t[18]=m,t[19]=g,t[20]=d,t[21]=C):C=t[21];let w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,M.jsx)(`figcaption`,{className:`schild text-[15px] text-text-3`,children:`Ohne Neustart`}),t[22]=w):w=t[22];let T;return t[23]===C?T=t[24]:(T=(0,M.jsxs)(`figure`,{className:`@container m-0 flex min-w-0 flex-col items-center justify-end gap-1`,children:[C,w]}),t[23]=C,t[24]=T),T}function G(e){let t=(0,A.c)(47),{box:n}=e,r=_(),i=r?.ram_used??n.ram_used,a=r?.ram_total??n.ram_total,o=r?.temp_cpu??n.temp_cpu,c=r?.temp_gpu??n.temp_gpu,l=n.platte,d=r?.uptime_s??n.uptime_s,f=i!=null&&a?i/a:null,m;t[0]===i?m=t[1]:(m=i==null?`–`:String(Math.round(s(i)??0)),t[0]=i,t[1]=m);let h;t[2]===a?h=t[3]:(h=a?`von ${Math.round(s(a)??0)} GB`:void 0,t[2]=a,t[3]=h);let g;t[4]!==f||t[5]!==i||t[6]!==a?(g=f==null?`Speicher unbekannt`:`Speicher: ${u(i)} von ${u(a)} belegt`,t[4]=f,t[5]=i,t[6]=a,t[7]=g):g=t[7];let v;t[8]!==f||t[9]!==m||t[10]!==h||t[11]!==g?(v=(0,M.jsx)(z,{beschriftung:`Speicher`,anteil:f,mitte:m,unter:h,ariaText:g}),t[8]=f,t[9]=m,t[10]=h,t[11]=g,t[12]=v):v=t[12];let y=o==null?null:o/100,b;t[13]===o?b=t[14]:(b=p(o),t[13]=o,t[14]=b);let x;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(x=[{von:.7,bis:.85,farbe:`var(--bernstein)`},{von:.85,bis:1,farbe:`var(--rot)`}],t[15]=x):x=t[15];let S;t[16]===o?S=t[17]:(S=o==null?`–`:`${Math.round(o)}°`,t[16]=o,t[17]=S);let C;t[18]===c?C=t[19]:(C=c==null?void 0:`GPU ${Math.round(c)}°`,t[18]=c,t[19]=C);let w;t[20]===o?w=t[21]:(w=o==null?`Temperatur unbekannt`:`Temperatur ${Math.round(o)} Grad`,t[20]=o,t[21]=w);let T;t[22]!==w||t[23]!==y||t[24]!==b||t[25]!==S||t[26]!==C?(T=(0,M.jsx)(z,{beschriftung:`Temperatur`,anteil:y,farbe:b,zonen:x,mitte:S,unter:C,ariaText:w}),t[22]=w,t[23]=y,t[24]=b,t[25]=S,t[26]=C,t[27]=T):T=t[27];let E=l?l.percent/100:null,D=l&&l.percent>=90?`var(--rot)`:l&&l.percent>=80?`var(--bernstein)`:`var(--cyan)`,O;t[28]===l?O=t[29]:(O=l?`${Math.round(l.percent)}%`:`–`,t[28]=l,t[29]=O);let k;t[30]===l?k=t[31]:(k=l?`${u(l.used)} / ${u(l.total)}`:void 0,t[30]=l,t[31]=k);let j;t[32]===l?j=t[33]:(j=l?`Platte zu ${Math.round(l.percent)} Prozent belegt`:`Platte unbekannt`,t[32]=l,t[33]=j);let N;t[34]!==E||t[35]!==D||t[36]!==O||t[37]!==k||t[38]!==j?(N=(0,M.jsx)(z,{beschriftung:`Platte`,anteil:E,farbe:D,mitte:O,unter:k,ariaText:j}),t[34]=E,t[35]=D,t[36]=O,t[37]=k,t[38]=j,t[39]=N):N=t[39];let P;t[40]===d?P=t[41]:(P=(0,M.jsx)(W,{sekunden:d}),t[40]=d,t[41]=P);let F;return t[42]!==T||t[43]!==N||t[44]!==P||t[45]!==v?(F=(0,M.jsxs)(`section`,{"aria-label":`Instrumente`,className:`grid grid-cols-2 gap-x-4 gap-y-6 rounded-2xl border border-linie bg-panel px-4 py-5 lg:grid-cols-4 lg:px-6`,children:[v,T,N,P]}),t[42]=T,t[43]=N,t[44]=P,t[45]=v,t[46]=F):F=t[46],F}var K={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`};function q(e){let t=(0,A.c)(14),{radar:n}=e;if(!n?.kandidaten)return null;let r,i;t[0]===n.kandidaten?(r=t[1],i=t[2]):(r=n.kandidaten.filter(Y),i=r.find(J)??r[0],t[0]=n.kandidaten,t[1]=r,t[2]=i);let a=i,o=r.length===1?``:`en`,s;t[3]!==r.length||t[4]!==o?(s=(0,M.jsxs)(`span`,{className:`schild text-sm text-cyan`,children:[`Radar · `,r.length,` Kandidat`,o]}),t[3]=r.length,t[4]=o,t[5]=s):s=t[5];let c;t[6]===a?c=t[7]:(c=a?(0,M.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-[15px]`,children:[(0,M.jsx)(`span`,{className:`ziffern`,children:a.name}),(0,M.jsxs)(`span`,{className:`text-text-2`,children:[`fürs `,a.rolle===`hirn`?`Hirn`:`Coden`]}),(0,M.jsx)(h,{art:K[a.status]??`grau`,children:v[a.status]??a.status})]}):(0,M.jsx)(`span`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}),t[6]=a,t[7]=c);let l;t[8]!==s||t[9]!==c?(l=(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[s,c]}),t[8]=s,t[9]=c,t[10]=l):l=t[10];let u;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,M.jsx)(O,{variant:`info`,size:`sm`,asChild:!0,children:(0,M.jsx)(w,{to:`/box/modelle`,hash:`radar`,children:`Ansehen`})}),t[11]=u):u=t[11];let d;return t[12]===l?d=t[13]:(d=(0,M.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3 rounded-xl border border-cyan-rand bg-cyan-grund px-4 py-3.5`,children:[l,u]}),t[12]=l,t[13]=d),d}function J(e){return e.status===`bestanden`}function Y(e){return[`bestanden`,`wartet`,`neu`].includes(e.status)}function X(){let e=(0,A.c)(32),{data:t,error:n,isPending:r}=o(),i=x();if(r){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,M.jsx)(a,{text:`Die Box meldet sich gleich …`}),e[0]=t):t=e[0],t}if(!t){let t=`MC2 antwortet nicht: ${n?.message??`keine Daten`}`,r;return e[1]===t?r=e[2]:(r=(0,M.jsx)(a,{fehler:!0,text:t}),e[1]=t,e[2]=r),r}let s=t.hinweise.length,c;e[3]!==t.lampen||e[4]!==t.zustand?(c=(0,M.jsx)(V,{zustand:t.zustand,lampen:t.lampen,onAnsehen:Z}),e[3]=t.lampen,e[4]=t.zustand,e[5]=c):c=e[5];let l;e[6]===t.box?l=e[7]:(l=(0,M.jsx)(G,{box:t.box}),e[6]=t.box,e[7]=l);let u=s?`ziffern text-sm text-bernstein`:`ziffern text-sm text-gruen`,d=s?`${s} offen`:`alles erledigt`,f;e[8]!==u||e[9]!==d?(f=(0,M.jsx)(`span`,{className:u,children:d}),e[8]=u,e[9]=d,e[10]=f):f=e[10];let p;e[11]!==t.hinweise||e[12]!==t.verlauf?(p=(0,M.jsx)(I,{hinweise:t.hinweise,verlauf:t.verlauf}),e[11]=t.hinweise,e[12]=t.verlauf,e[13]=p):p=e[13];let m;e[14]!==f||e[15]!==p?(m=(0,M.jsx)(b,{titel:`Checkliste`,id:`checkliste`,rechts:f,children:p}),e[14]=f,e[15]=p,e[16]=m):m=e[16];let h;e[17]!==t.flugplan.gelaufen||e[18]!==t.flugplan.geplant?(h=(0,M.jsx)(E,{gelaufen:t.flugplan.gelaufen,geplant:t.flugplan.geplant}),e[17]=t.flugplan.gelaufen,e[18]=t.flugplan.geplant,e[19]=h):h=e[19];let g;e[20]===i.data?g=e[21]:(g=(0,M.jsx)(q,{radar:i.data}),e[20]=i.data,e[21]=g);let _;e[22]!==h||e[23]!==g?(_=(0,M.jsxs)(b,{titel:`Flugplan`,children:[h,g]}),e[22]=h,e[23]=g,e[24]=_):_=e[24];let v;e[25]!==m||e[26]!==_?(v=(0,M.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] md:gap-6`,children:[m,_]}),e[25]=m,e[26]=_,e[27]=v):v=e[27];let y;return e[28]!==c||e[29]!==l||e[30]!==v?(y=(0,M.jsxs)(M.Fragment,{children:[c,l,v]}),e[28]=c,e[29]=l,e[30]=v,e[31]=y):y=e[31],y}function Z(){return document.getElementById(`checkliste`)?.scrollIntoView({behavior:`smooth`,block:`start`})}export{X as StartSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/Updates-D5yJY-fn.js b/frontend/dist/assets/Updates-DZ25Ri0a.js similarity index 98% rename from frontend/dist/assets/Updates-D5yJY-fn.js rename to frontend/dist/assets/Updates-DZ25Ri0a.js index a686b2e..b8624c4 100644 --- a/frontend/dist/assets/Updates-D5yJY-fn.js +++ b/frontend/dist/assets/Updates-DZ25Ri0a.js @@ -1,2 +1,2 @@ -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-4vXDP1Jj.js";import{At as o,C as s,Ct as c,Et as l,J as u,Nt as d,Ot as f,Pt as p,S as m,Yt as h,b as g,jt as ee,lt as te,ot as ne,q as re}from"./index-CIOHqG23.js";import{t as _}from"./button-D8rvET0Z.js";import{t as v}from"./Bestaetigen-D6CzMfJm.js";import{c as y,i as b,n as ie,o as x,t as S}from"./Auftraege-CdBAGJi2.js";var C=t(),w=r(e(),1),T=n(),E=[{id:`os`,name:`Betriebssystem`},{id:`engine`,name:`Motor (llama.cpp)`},{id:`swap`,name:`llama-swap`},{id:`hermes`,name:`Hermes`}],D={os:`Die Ubuntu-Pakete werden eingespielt, danach prüft die Box, ob die Modelle noch antworten. Das kann einige Minuten dauern.`,engine:`Der Motor wird ersetzt, llama-swap startet dafür neu und die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,swap:`llama-swap wird ersetzt und startet neu, die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,hermes:`Vorher wird gesichert. Dann wird Hermes aktualisiert und startet neu — Lucy ist dabei ein paar Minuten nicht erreichbar.`};function O(e){let t=(0,C.c)(7),{breit:n}=e,r=n===void 0?`w-16`:n,a;t[0]===r?a=t[1]:(a=i(`inline-block h-3.5 rounded bg-linie motion-safe:animate-pulse`,r),t[0]=r,t[1]=a);let o;t[2]===a?o=t[3]:(o=(0,T.jsx)(`span`,{"aria-hidden":!0,className:a}),t[2]=a,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,T.jsx)(`span`,{className:`sr-only`,children:`wird geprüft`}),t[4]=s):s=t[4];let c;return t[5]===o?c=t[6]:(c=(0,T.jsxs)(`span`,{className:`inline-flex items-center`,children:[o,s]}),t[5]=o,t[6]=c),c}function ae(e){let t=(0,C.c)(13),{text:n}=e,[r,a]=(0,w.useState)(!1),o;t[0]===n?o=t[1]:(o=n.split(` +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-lErM2U6o.js";import{At as o,C as s,Ct as c,Et as l,J as u,Nt as d,Ot as f,Pt as p,S as m,Yt as h,b as g,jt as ee,lt as te,ot as ne,q as re}from"./index-CKWhFN2A.js";import{t as _}from"./button-D8rvET0Z.js";import{t as v}from"./Bestaetigen-CMlebyiw.js";import{c as y,i as b,n as ie,o as x,t as S}from"./Auftraege-BO4bSQmr.js";var C=t(),w=r(e(),1),T=n(),E=[{id:`os`,name:`Betriebssystem`},{id:`engine`,name:`Motor (llama.cpp)`},{id:`swap`,name:`llama-swap`},{id:`hermes`,name:`Hermes`}],D={os:`Die Ubuntu-Pakete werden eingespielt, danach prüft die Box, ob die Modelle noch antworten. Das kann einige Minuten dauern.`,engine:`Der Motor wird ersetzt, llama-swap startet dafür neu und die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,swap:`llama-swap wird ersetzt und startet neu, die Modelle sind kurz nicht erreichbar. Klappt die Prüfung danach nicht, holt die Box den alten Stand von selbst zurück.`,hermes:`Vorher wird gesichert. Dann wird Hermes aktualisiert und startet neu — Lucy ist dabei ein paar Minuten nicht erreichbar.`};function O(e){let t=(0,C.c)(7),{breit:n}=e,r=n===void 0?`w-16`:n,a;t[0]===r?a=t[1]:(a=i(`inline-block h-3.5 rounded bg-linie motion-safe:animate-pulse`,r),t[0]=r,t[1]=a);let o;t[2]===a?o=t[3]:(o=(0,T.jsx)(`span`,{"aria-hidden":!0,className:a}),t[2]=a,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,T.jsx)(`span`,{className:`sr-only`,children:`wird geprüft`}),t[4]=s):s=t[4];let c;return t[5]===o?c=t[6]:(c=(0,T.jsxs)(`span`,{className:`inline-flex items-center`,children:[o,s]}),t[5]=o,t[6]=c),c}function ae(e){let t=(0,C.c)(13),{text:n}=e,[r,a]=(0,w.useState)(!1),o;t[0]===n?o=t[1]:(o=n.split(` `).length>3||n.length>240,t[0]=n,t[1]=o);let s=o,c=s&&!r&&`line-clamp-3`,l;t[2]===c?l=t[3]:(l=i(`m-0 whitespace-pre-line`,c),t[2]=c,t[3]=l);let u;t[4]!==l||t[5]!==n?(u=(0,T.jsx)(`p`,{className:l,children:n}),t[4]=l,t[5]=n,t[6]=u):u=t[6];let d;t[7]!==s||t[8]!==r?(d=s&&(0,T.jsx)(`button`,{type:`button`,"aria-expanded":r,onClick:()=>a(!r),className:`-mb-2 inline-flex h-11 items-center text-sm text-cyan hover:underline`,children:r?`Weniger zeigen`:`Ganze Zusammenfassung zeigen`}),t[7]=s,t[8]=r,t[9]=d):d=t[9];let f;return t[10]!==u||t[11]!==d?(f=(0,T.jsxs)(`div`,{className:`flex flex-col items-start`,children:[u,d]}),t[10]=u,t[11]=d,t[12]=f):f=t[12],f}function oe(e){let t=(0,C.c)(13),{d:n}=e,r;t[0]===n.packages?r=t[1]:(r=n.packages??[],t[0]=n.packages,t[1]=r);let i=r,o,s;if(t[2]!==n.held_back||t[3]!==i){s=Symbol.for(`react.early_return_sentinel`);bb0:{let e=n.held_back??[];if(i.length===0&&e.length===0){s=null;break bb0}let r;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,T.jsx)(a,{"aria-hidden":!0,className:`size-4 transition-transform group-open:rotate-90`}),t[6]=r):r=t[6];let c=i.length===0?`Was Ubuntu zurückhält (${e.length})`:i.length===1?`Das Paket ansehen`:`Alle ${i.length} Pakete ansehen`,l;t[7]===c?l=t[8]:(l=(0,T.jsxs)(`summary`,{className:`inline-flex h-11 cursor-pointer items-center gap-1 text-sm text-cyan hover:underline`,children:[r,c]}),t[7]=c,t[8]=l);let u;t[9]===i?u=t[10]:(u=i.map(A),t[9]=i,t[10]=u);let d;t[11]===u?d=t[12]:(d=(0,T.jsx)(`ul`,{className:`ziffern m-0 flex max-h-64 list-none flex-col gap-1 overflow-auto rounded-md border border-linie bg-[#0b0d0f] p-2.5 text-xs`,children:u}),t[11]=u,t[12]=d),o=(0,T.jsxs)(`details`,{className:`group`,children:[l,d,e.length>0&&(0,T.jsxs)(`p`,{className:`mt-2 text-xs text-text-3`,children:[`Dazu `,e.length===1?`kommt ein Paket`:`kommen ${e.length} Pakete`,`, die Ubuntu noch zurückhält (`,e.map(k).join(`, `),`). Die kommen von selbst, wenn Ubuntu sie freigibt.`]})]})}t[2]=n.held_back,t[3]=i,t[4]=o,t[5]=s}else o=t[4],s=t[5];return s===Symbol.for(`react.early_return_sentinel`)?o:s}function k(e){return e.name}function A(e){return(0,T.jsxs)(`li`,{className:`break-all`,children:[(0,T.jsx)(`span`,{className:`text-foreground`,children:e.name}),` `,(0,T.jsxs)(`span`,{className:`text-text-3`,children:[e.current,` → `,e.candidate]})]},e.name)}function se(e){let t=(0,C.c)(6),{d:n}=e;if(n.action_needed===!1){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,T.jsx)(m,{art:`gruen`,children:`Nichts zu tun`}),t[0]=e):e=t[0],e}if(n.action_needed!==!0)return null;let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,T.jsx)(m,{art:`bernstein`,children:`Du musst etwas tun`}),t[1]=r):r=t[1];let i;t[2]===n.action_text?i=t[3]:(i=n.action_text&&(0,T.jsx)(`span`,{className:`text-bernstein`,children:n.action_text}),t[2]=n.action_text,t[3]=i);let a;return t[4]===i?a=t[5]:(a=(0,T.jsxs)(`span`,{className:`flex flex-col items-start gap-1.5`,children:[r,i]}),t[4]=i,t[5]=a),a}function ce(e){let t=e?.trim();return t?t.startsWith(`(Zusammenfassung nicht verfügbar`)?`Die Zusammenfassung ist gerade nicht verfügbar.`:t:null}function j(e){let t=(0,C.c)(63),{id:n,name:r,details:i,hatUpdate:a,neuLautStart:o,fest:s,gesperrt:c,onStart:l,onFreigeben:u}=e,d=i.data,f=i.isPending,p=i.isError?i.error.message:d?.error,m;t[0]!==d||t[1]!==n?(m=d?y(n,d):null,t[0]=d,t[1]=n,t[2]=m):m=t[2];let h=m,g=a?h?.neu??o??null:null,ee=d?.summary,te;t[3]===ee?te=t[4]:(te=ce(ee),t[3]=ee,t[4]=te);let ne=te,re=h&&h.laeuft!==`–`?h.laeuft:p?`unbekannt`:`–`,v;t[5]!==f||t[6]!==re?(v=f?(0,T.jsx)(O,{}):(0,T.jsx)(T.Fragment,{children:re}),t[5]=f,t[6]=re,t[7]=v):v=t[7];let b=v,ie;t[8]!==p||t[9]!==f||t[10]!==g?(ie=f?(0,T.jsx)(O,{breit:`w-20`}):g?(0,T.jsx)(`span`,{className:`text-cyan`,children:g}):p?(0,T.jsx)(`span`,{className:`text-bernstein`,children:`nicht geprüft`}):(0,T.jsx)(`span`,{className:`text-text-3`,children:`–`}),t[8]=p,t[9]=f,t[10]=g,t[11]=ie):ie=t[11];let S=ie,w;if(f){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,T.jsx)(`span`,{className:`text-text-3`,children:`Wird geprüft …`}),t[12]=e):e=t[12],w=e}else if(p&&!a){let e;t[13]===p?e=t[14]:(e=x(p),t[13]=p,t[14]=e);let n;t[15]===e?n=t[16]:(n=(0,T.jsx)(`span`,{className:`text-bernstein`,children:e}),t[15]=e,t[16]=n),w=n}else if(!a)w=`Aktuell.`;else{let e;t[17]===p?e=t[18]:(e=p&&(0,T.jsx)(`span`,{className:`text-bernstein`,children:x(p)}),t[17]=p,t[18]=e);let r;t[19]===d?r=t[20]:(r=d&&(0,T.jsx)(se,{d}),t[19]=d,t[20]=r);let i;t[21]!==d||t[22]!==n||t[23]!==ne?(i=n===`os`?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`span`,{children:d?.count?`${d.count} ${d.count===1?`Paket`:`Pakete`} aus Ubuntu.`:`Neue Pakete aus Ubuntu.`}),d&&(0,T.jsx)(oe,{d})]}):ne?(0,T.jsx)(ae,{text:ne}):null,t[21]=d,t[22]=n,t[23]=ne,t[24]=i):i=t[24];let a;t[25]!==e||t[26]!==r||t[27]!==i?(a=(0,T.jsxs)(`div`,{className:`flex flex-col items-start gap-2`,children:[e,r,i]}),t[25]=e,t[26]=r,t[27]=i,t[28]=a):a=t[28],w=a}let E=f||void 0,D;t[29]===r?D=t[30]:(D=(0,T.jsx)(`span`,{role:`rowheader`,className:`text-[15px] font-semibold`,children:r}),t[29]=r,t[30]=D);let k;t[31]!==p||t[32]!==f||t[33]!==g||t[34]!==S?(k=!f&&(g||p)&&(0,T.jsxs)(T.Fragment,{children:[` `,g?`→`:`·`,` `,S]}),t[31]=p,t[32]=f,t[33]=g,t[34]=S,t[35]=k):k=t[35];let A;t[36]!==b||t[37]!==k?(A=(0,T.jsxs)(`span`,{role:`cell`,className:`ziffern -mt-1 text-sm text-text-2 md:hidden`,children:[b,k]}),t[36]=b,t[37]=k,t[38]=A):A=t[38];let j;t[39]===b?j=t[40]:(j=(0,T.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm text-text-2 md:block`,children:b}),t[39]=b,t[40]=j);let M;t[41]===S?M=t[42]:(M=(0,T.jsx)(`span`,{role:`cell`,className:`ziffern hidden text-sm md:block`,children:S}),t[41]=S,t[42]=M);let N;t[43]!==s||t[44]!==r?(N=s&&(0,T.jsxs)(`span`,{className:`mb-1.5 block text-bernstein`,children:[`Festgehalten seit `,s.seit,` auf `,s.version,`: `,s.grund,`. Der Sonntags-Lauf überspringt `,r,`.`]}),t[43]=s,t[44]=r,t[45]=N):N=t[45];let P;t[46]!==N||t[47]!==w?(P=(0,T.jsxs)(`div`,{role:`cell`,className:`text-sm leading-relaxed text-text-2`,children:[N,w]}),t[46]=N,t[47]=w,t[48]=P):P=t[48];let F;t[49]!==s||t[50]!==c||t[51]!==a||t[52]!==u||t[53]!==l?(F=(s||a)&&(0,T.jsxs)(`span`,{role:`cell`,className:`flex flex-wrap gap-2 md:flex-col md:items-end`,children:[s&&(0,T.jsx)(_,{variant:`outline`,size:`sm`,onClick:u,children:`Freigeben`}),a&&(0,T.jsx)(_,{variant:`outline`,size:`sm`,onClick:l,disabled:c,children:`Aktualisieren`})]}),t[49]=s,t[50]=c,t[51]=a,t[52]=u,t[53]=l,t[54]=F):F=t[54];let I;return t[55]!==j||t[56]!==M||t[57]!==P||t[58]!==F||t[59]!==E||t[60]!==D||t[61]!==A?(I=(0,T.jsxs)(`div`,{role:`row`,"aria-busy":E,className:`grid grid-cols-1 gap-x-4 gap-y-2 border-t border-linie py-3.5 md:grid-cols-[170px_100px_170px_minmax(0,1fr)_auto] md:items-start`,children:[D,A,j,M,P,F]}),t[55]=j,t[56]=M,t[57]=P,t[58]=F,t[59]=E,t[60]=D,t[61]=A,t[62]=I):I=t[62],I}var M={rot:`rot`,gelb:`bernstein`,gruen:`gruen`,info:`cyan`,grau:`grau`},N={rot:`bg-rot`,gelb:`bg-bernstein`,gruen:`bg-gruen`,info:`bg-cyan`,grau:`bg-text-3`};function P(e){let t=(0,C.c)(19),{lauf:n}=e,r;t[0]===n.start?r=t[1]:(r=p(n.start),t[0]=n.start,t[1]=r);let i;t[2]===r?i=t[3]:(i=(0,T.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:r}),t[2]=r,t[3]=i);let a;t[4]===n.anlass?a=t[5]:(a=(0,T.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:n.anlass}),t[4]=n.anlass,t[5]=a);let o=M[n.stufe],s;t[6]!==n.titel||t[7]!==o?(s=(0,T.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @sm:col-start-3`,children:(0,T.jsx)(m,{art:o,children:n.titel})}),t[6]=n.titel,t[7]=o,t[8]=s):s=t[8];let c;t[9]!==i||t[10]!==a||t[11]!==s?(c=(0,T.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:[i,a,s]}),t[9]=i,t[10]=a,t[11]=s,t[12]=c):c=t[12];let l;t[13]!==n.stufe||t[14]!==n.zeilen?(l=n.stufe!==`grau`&&n.zeilen.length>0&&(0,T.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-1 p-0 @sm:pl-[124px]`,children:n.zeilen.map(F)}),t[13]=n.stufe,t[14]=n.zeilen,t[15]=l):l=t[15];let u;return t[16]!==c||t[17]!==l?(u=(0,T.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3`,children:[c,l]}),t[16]=c,t[17]=l,t[18]=u):u=t[18],u}function F(e){return(0,T.jsxs)(`li`,{className:`flex items-baseline gap-2 text-sm leading-snug text-text-2`,children:[(0,T.jsx)(`span`,{"aria-hidden":!0,className:i(`size-1.5 shrink-0 -translate-y-px rounded-full`,N[e.stufe])}),(0,T.jsxs)(`span`,{className:`min-w-0 break-words`,children:[(0,T.jsx)(`span`,{className:`text-foreground`,children:e.baustein}),` · `,e.text]})]},`${e.baustein}-${e.text}`)}function I(e){return e.mtime?p(new Date(e.mtime*1e3).toISOString()):e.snapshot}function le(){let e=(0,C.c)(126),t=l(),n=re(!0).data?.update_fenster,r=te(),i=ee(),a=c(),p=o(),m=u(),h=ne(),y=d(),[b,x]=(0,w.useState)(null),O;e[0]===t.data?.updates.bausteine?O=e[1]:(O=new Map((t.data?.updates.bausteine??[]).map(he)),e[0]=t.data?.updates.bausteine,e[1]=O);let ae=O,oe=new Map((t.data?.updates.festgehalten??[]).map(me)),k;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(k=E.map(pe),e[2]=k):k=e[2];let A=f(k),se;e[3]!==A||e[4]!==ae?(se=(e,t)=>ie(e.id,A[t].data)??ae.has(e.id),e[3]=A,e[4]=ae,e[5]=se):se=e[5];let ce=E.map(se),M;e[6]===r.data?.jobs?M=e[7]:(M=r.data?.jobs??[],e[6]=r.data?.jobs,e[7]=M);let N=M,P;e[8]!==N||e[9]!==t.data?.zustand?(P=N.some(fe)||(t.data?.zustand.update_laeuft??!1),e[8]=N,e[9]=t.data?.zustand,e[10]=P):P=e[10];let F=P,le;e[11]===N?le=e[12]:(le=N.some(de),e[11]=N,e[12]=le);let ge=le,L=F||p.isPending,R=a.data?.available??!1,z;if(t.isPending){let t;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(s,{text:`Updates werden gelesen …`}),e[13]=t):t=e[13],z=t}else if(t.isError&&!t.data){let n=`Die Box antwortet nicht: ${t.error.message}`,r;e[14]===n?r=e[15]:(r=(0,T.jsx)(s,{fehler:!0,text:n}),e[14]=n,e[15]=r),z=r}else{let t;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsxs)(`div`,{role:`row`,className:`schild hidden grid-cols-[170px_100px_170px_minmax(0,1fr)_auto] gap-x-4 pb-2 text-xs font-semibold text-text-3 md:grid`,children:[(0,T.jsx)(`span`,{role:`columnheader`,children:`Baustein`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Läuft`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Neu`}),(0,T.jsx)(`span`,{role:`columnheader`,children:`Was sich ändert`}),(0,T.jsx)(`span`,{role:`columnheader`,className:`sr-only`,children:`Aktion`})]}),e[16]=t):t=e[16],z=(0,T.jsxs)(`div`,{role:`table`,"aria-label":`Bausteine und ihre Updates`,className:`flex flex-col`,children:[t,E.map((e,t)=>(0,T.jsx)(j,{id:e.id,name:e.name,details:A[t],hatUpdate:ce[t],neuLautStart:ae.get(e.id),fest:oe.get(e.id),gesperrt:L,onStart:()=>x({art:`einzeln`,id:e.id,name:e.name}),onFreigeben:()=>{let t=oe.get(e.id);t&&x({art:`freigeben`,id:e.id,name:e.name,grund:t.grund})}},e.id))]})}let B;if(i.isPending){let t;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),e[17]=t):t=e[17],B=t}else if(i.isError&&!i.data){let t;e[18]===i.error.message?t=e[19]:(t=(0,T.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Der Verlauf lässt sich gerade nicht lesen: `,i.error.message]}),e[18]=i.error.message,e[19]=t),B=t}else if(i.data?.laeufe.length){let t;e[21]===i.data.laeufe?t=e[22]:(t=i.data.laeufe.map(ue),e[21]=i.data.laeufe,e[22]=t);let n;e[23]===t?n=e[24]:(n=(0,T.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:t}),e[23]=t,e[24]=n),B=n}else{let t;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Update-Läufe aufgezeichnet.`}),e[20]=t):t=e[20],B=t}let V;if(a.isPending){let t;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),e[25]=t):t=e[25],V=t}else if(a.isError&&!a.data){let t;e[26]===a.error.message?t=e[27]:(t=(0,T.jsxs)(`p`,{role:`alert`,className:`text-[15px] text-rot-text`,children:[`Die Sicherungen lassen sich gerade nicht lesen: `,a.error.message]}),e[26]=a.error.message,e[27]=t),V=t}else if(a.data?.backups.length){let t;if(e[29]!==a.data.backups||e[30]!==y.isPending||e[31]!==R){let n;e[33]!==y.isPending||e[34]!==R?(n=e=>(0,T.jsxs)(`li`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2.5`,children:[(0,T.jsx)(`span`,{className:`ziffern text-sm`,children:I(e)}),(0,T.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,T.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[e.size_mb.toLocaleString(`de-DE`),` MB`]}),(0,T.jsx)(_,{variant:`ghost`,size:`sm`,disabled:!R||y.isPending,onClick:()=>x({art:`zurueck`,datei:e.file,zeit:I(e)}),children:`Zurückspielen`})]})]},e.file),e[33]=y.isPending,e[34]=R,e[35]=n):n=e[35],t=a.data.backups.slice(0,5).map(n),e[29]=a.data.backups,e[30]=y.isPending,e[31]=R,e[32]=t}else t=e[32];let n;e[36]===t?n=e[37]:(n=(0,T.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:t}),e[36]=t,e[37]=n),V=n}else{let t;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Sicherung vorhanden.`}),e[28]=t):t=e[28],V=t}let _e=g,H;e[38]===p?H=e[39]:(H=()=>p.mutate(`pruefen`),e[38]=p,e[39]=H);let ve=p.isPending||ge,ye=ge?`Sucht …`:`Nach Neuem suchen`,U;e[40]!==ye||e[41]!==H||e[42]!==ve?(U=(0,T.jsx)(_,{variant:`outline`,onClick:H,disabled:ve,children:ye}),e[40]=ye,e[41]=H,e[42]=ve,e[43]=U):U=e[43];let be=_,W;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(W=()=>x({art:`alle`}),e[44]=W):W=e[44];let xe=L||!ce.some(Boolean),G;e[45]!==be||e[46]!==W||e[47]!==xe?(G=(0,T.jsx)(be,{onClick:W,disabled:xe,children:`Alles jetzt aktualisieren`}),e[45]=be,e[46]=W,e[47]=xe,e[48]=G):G=e[48];let K;e[49]!==U||e[50]!==G?(K=(0,T.jsxs)(`div`,{className:`flex flex-wrap gap-2.5`,children:[U,G]}),e[49]=U,e[50]=G,e[51]=K):K=e[51];let Se=n?`Jeden ${n.tag_name} um ${n.uhrzeit} automatisch.`:`Einmal pro Woche automatisch.`,q;e[52]===Se?q=e[53]:(q=(0,T.jsxs)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:[Se,` Vorher wird gesichert, danach geprüft.`]}),e[52]=Se,e[53]=q);let J;e[54]===F?J=e[55]:(J=F&&(0,T.jsx)(`p`,{role:`status`,className:`text-[15px] text-cyan`,children:`Gerade läuft ein Update. Weitere lassen sich erst starten, wenn es fertig ist.`}),e[54]=F,e[55]=J);let Ce;e[56]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,T.jsx)(S,{}),e[56]=Ce):Ce=e[56];let Y;e[57]!==_e||e[58]!==K||e[59]!==q||e[60]!==J||e[61]!==z?(Y=(0,T.jsxs)(_e,{titel:`Updates`,rechts:K,children:[q,J,z,Ce]}),e[57]=_e,e[58]=K,e[59]=q,e[60]=J,e[61]=z,e[62]=Y):Y=e[62];let X;e[63]===B?X=e[64]:(X=(0,T.jsx)(g,{titel:`Verlauf`,children:B}),e[63]=B,e[64]=X);let Z;e[65]===h?Z=e[66]:(Z=()=>h.mutate(void 0),e[65]=h,e[66]=Z);let we=h.isPending?`Sichert …`:`Jetzt sichern`,Q;e[67]!==h.isPending||e[68]!==Z||e[69]!==we?(Q=(0,T.jsx)(_,{variant:`outline`,size:`sm`,onClick:Z,disabled:h.isPending,children:we}),e[67]=h.isPending,e[68]=Z,e[69]=we,e[70]=Q):Q=e[70];let Te;e[71]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,T.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Täglich um 03:35, mit Kopie auf einem zweiten Gerät.`}),e[71]=Te):Te=e[71];let Ee;e[72]!==a.data||e[73]!==R?(Ee=a.data&&!R&&(0,T.jsx)(`p`,{className:`text-sm text-text-3`,children:`Zurückspielen geht nur auf der Box selbst.`}),e[72]=a.data,e[73]=R,e[74]=Ee):Ee=e[74];let De;e[75]!==V||e[76]!==Q||e[77]!==Ee?(De=(0,T.jsxs)(g,{titel:`Sicherungen`,rechts:Q,children:[Te,Ee,V]}),e[75]=V,e[76]=Q,e[77]=Ee,e[78]=De):De=e[78];let Oe;e[79]!==X||e[80]!==De?(Oe=(0,T.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[X,De]}),e[79]=X,e[80]=De,e[81]=Oe):Oe=e[81];let ke=b?.art===`alle`,Ae;e[82]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=()=>x(null),e[82]=Ae):Ae=e[82];let je;e[83]!==b?.art||e[84]!==p?(je=()=>{b?.art===`alle`&&p.mutate(`alle`),x(null)},e[83]=b?.art,e[84]=p,e[85]=je):je=e[85];let Me;e[86]!==L||e[87]!==ke||e[88]!==je?(Me=(0,T.jsx)(v,{offen:ke,titel:`Alles jetzt aktualisieren?`,text:`Motor, llama-swap, Hermes und Betriebssystem werden nacheinander aktualisiert, soweit es Neues gibt, und danach geprüft. Motor und llama-swap holen bei Problemen ihren alten Stand von selbst zurück, vor Hermes wird gesichert. Lucy ist dabei ein paar Minuten nicht erreichbar.`,knopf:`Aktualisieren`,gesperrt:L,onNein:Ae,onJa:je}),e[86]=L,e[87]=ke,e[88]=je,e[89]=Me):Me=e[89];let Ne=b?.art===`einzeln`,Pe=b?.art===`einzeln`?`${b.name} aktualisieren?`:``,Fe=b?.art===`einzeln`?D[b.id]??``:``,Ie;e[90]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=()=>x(null),e[90]=Ie):Ie=e[90];let Le;e[91]!==b||e[92]!==p?(Le=()=>{b?.art===`einzeln`&&p.mutate(b.id),x(null)},e[91]=b,e[92]=p,e[93]=Le):Le=e[93];let $;e[94]!==L||e[95]!==Ne||e[96]!==Pe||e[97]!==Fe||e[98]!==Le?($=(0,T.jsx)(v,{offen:Ne,titel:Pe,text:Fe,knopf:`Aktualisieren`,gesperrt:L,onNein:Ie,onJa:Le}),e[94]=L,e[95]=Ne,e[96]=Pe,e[97]=Fe,e[98]=Le,e[99]=$):$=e[99];let Re=b?.art===`freigeben`,ze=b?.art===`freigeben`?`${b.name} freigeben?`:``,Be=b?.art===`freigeben`?`Festgehalten wurde ${b.name}, weil: ${b.grund}. Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`:``,Ve;e[100]===Symbol.for(`react.memo_cache_sentinel`)?(Ve=()=>x(null),e[100]=Ve):Ve=e[100];let He;e[101]!==b||e[102]!==m?(He=()=>{b?.art===`freigeben`&&m.mutate(b.id),x(null)},e[101]=b,e[102]=m,e[103]=He):He=e[103];let Ue;e[104]!==m.isPending||e[105]!==Re||e[106]!==ze||e[107]!==Be||e[108]!==He?(Ue=(0,T.jsx)(v,{offen:Re,titel:ze,text:Be,knopf:`Freigeben`,gesperrt:m.isPending,onNein:Ve,onJa:He}),e[104]=m.isPending,e[105]=Re,e[106]=ze,e[107]=Be,e[108]=He,e[109]=Ue):Ue=e[109];let We=b?.art===`zurueck`,Ge=`Die Einstellungen von Hermes und llama-swap werden auf den Stand von ${b?.art===`zurueck`?b.zeit:``} gesetzt. Vorher wird der jetzige Stand gesichert. Die Dienste starten danach neu.`,Ke;e[110]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=()=>x(null),e[110]=Ke):Ke=e[110];let qe;e[111]!==b||e[112]!==y?(qe=()=>{b?.art===`zurueck`&&y.mutate(b.datei),x(null)},e[111]=b,e[112]=y,e[113]=qe):qe=e[113];let Je;e[114]!==We||e[115]!==Ge||e[116]!==qe||e[117]!==y.isPending?(Je=(0,T.jsx)(v,{offen:We,gefahr:!0,titel:`Sicherung zurückspielen?`,text:Ge,knopf:`Zurückspielen`,gesperrt:y.isPending,onNein:Ke,onJa:qe}),e[114]=We,e[115]=Ge,e[116]=qe,e[117]=y.isPending,e[118]=Je):Je=e[118];let Ye;return e[119]!==Y||e[120]!==Oe||e[121]!==Me||e[122]!==$||e[123]!==Ue||e[124]!==Je?(Ye=(0,T.jsxs)(T.Fragment,{children:[Y,Oe,Me,$,Ue,Je]}),e[119]=Y,e[120]=Oe,e[121]=Me,e[122]=$,e[123]=Ue,e[124]=Je,e[125]=Ye):Ye=e[125],Ye}function ue(e){return(0,T.jsx)(P,{lauf:e},e.start)}function de(e){return b(e)&&h(e)}function fe(e){return e.group===`maintenance`&&h(e)}function pe(e){return e.id}function me(e){return[e.baustein,e]}function he(e){return[e.id,e.neu]}export{le as UpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/chevron-right-4vXDP1Jj.js b/frontend/dist/assets/chevron-right-lErM2U6o.js similarity index 60% rename from frontend/dist/assets/chevron-right-4vXDP1Jj.js rename to frontend/dist/assets/chevron-right-lErM2U6o.js index 37c2427..0ea444f 100644 --- a/frontend/dist/assets/chevron-right-4vXDP1Jj.js +++ b/frontend/dist/assets/chevron-right-lErM2U6o.js @@ -1 +1 @@ -import{cn as e}from"./index-CIOHqG23.js";var t={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};t.node;var n=e(t);export{n as t}; \ No newline at end of file +import{cn as e}from"./index-CKWhFN2A.js";var t={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};t.node;var n=e(t);export{n as t}; \ No newline at end of file diff --git a/frontend/dist/assets/dist-B2n2wafq.js b/frontend/dist/assets/dist-VQuEcoq-.js similarity index 99% rename from frontend/dist/assets/dist-B2n2wafq.js rename to frontend/dist/assets/dist-VQuEcoq-.js index 5352e35..45d651f 100644 --- a/frontend/dist/assets/dist-B2n2wafq.js +++ b/frontend/dist/assets/dist-VQuEcoq-.js @@ -1,4 +1,4 @@ -import{i as e,r as t,s as n}from"./dist-D4CVSex9.js";import{mn as r}from"./index-CIOHqG23.js";import{n as i,r as a}from"./button-D8rvET0Z.js";var o=n(e(),1),s=n(r(),1),c=t(),l=Object.defineProperty,u=(e,t)=>l(e,`name`,{value:t,configurable:!0}),d=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=i(`Primitive.${t}`),r=o.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,c.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function f(e,t){e&&s.flushSync(()=>e.dispatchEvent(t))}u(f,`dispatchDiscreteCustomEvent`);var p=Object.defineProperty,m=(e,t)=>p(e,`name`,{value:t,configurable:!0});function h(e,t){let n=o.createContext(t);n.displayName=e+`Context`;let r=m(e=>{let{children:t,...r}=e,i=o.useMemo(()=>r,Object.values(r));return(0,c.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,s=o.useContext(n);if(s)return s;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return m(i,`useContext`),[r,i]}m(h,`createContext`);function g(e,t=[]){let n=[];function r(t,r){let i=o.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let s=m(t=>{let{scope:n,children:r,...s}=t,l=n?.[e]?.[a]||i,u=o.useMemo(()=>s,Object.values(s));return(0,c.jsx)(l.Provider,{value:u,children:r})},`Provider`);s.displayName=t+`Provider`;function l(n,s,c={}){let{optional:l=!1}=c,u=s?.[e]?.[a]||i,d=o.useContext(u);if(d)return d;if(r!==void 0)return r;if(!l)throw Error(`\`${n}\` must be used within \`${t}\``)}return m(l,`useContext`),[s,l]}m(r,`createContext`);let i=m(()=>{let t=n.map(e=>o.createContext(e));return m(function(n){let r=n?.[e]||t;return o.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,_(i,...t)]}m(g,`createContextScope`);function _(...e){let t=e[0];if(e.length===1)return t;let n=m(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return m(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return o.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}m(_,`composeContextScopes`);var v=Object.defineProperty,y=(e,t)=>v(e,`name`,{value:t,configurable:!0}),b=!!(typeof window<`u`&&window.document&&window.document.createElement);function x(e,t,{checkForDefaultPrevented:n=!0}={}){return y(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}y(x,`composeEventHandlers`);function S(e){if(!b)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}y(S,`getOwnerWindow`);function C(e){if(!b)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}y(C,`getOwnerDocument`);function w(e,t=!1){let{activeElement:n}=C(e);if(!n?.nodeName)return null;if(ee(n)&&n.contentDocument)return w(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=C(n).getElementById(e);if(t)return t}}return n}y(w,`getActiveElement`);function ee(e){return e.tagName===`IFRAME`}y(ee,`isFrame`);var T=globalThis?.document?o.useLayoutEffect:()=>{},te=Object.defineProperty,ne=(e,t)=>te(e,`name`,{value:t,configurable:!0}),E=o.useEffectEvent,D=o.useInsertionEffect;function O(e){if(typeof E==`function`)return E(e);let t=o.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof D==`function`?D(()=>{t.current=e}):T(()=>{t.current=e}),o.useMemo(()=>((...e)=>t.current?.(...e)),[])}ne(O,`useEffectEvent`);var re=Object.defineProperty,k=(e,t)=>re(e,`name`,{value:t,configurable:!0}),ie=o.useInsertionEffect||T;function ae({prop:e,defaultProp:t,onChange:n=k(()=>{},`onChange`),caller:r}){let[i,a,s]=oe({defaultProp:t,onChange:n}),c=e!==void 0;return[c?e:i,o.useCallback(t=>{if(c){let n=se(t)?t(e):t;n!==e&&s.current?.(n)}else a(t)},[c,e,a,s])]}k(ae,`useControllableState`);function oe({defaultProp:e,onChange:t}){let[n,r]=o.useState(e),i=o.useRef(n),a=o.useRef(t);return ie(()=>{a.current=t},[t]),o.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}k(oe,`useUncontrolledState`);function se(e){return typeof e==`function`}k(se,`isFunction`);var ce=Symbol(`RADIX:SYNC_STATE`);function le(e,t,n,r){let{prop:i,defaultProp:a,onChange:s,caller:c}=t,l=i!==void 0,u=O(s),d=[{...n,state:a}];r&&d.push(r);let[f,p]=o.useReducer((t,n)=>{if(n.type===ce)return{...t,state:n.state};let r=e(t,n);return l&&!Object.is(r.state,t.state)&&u(r.state),r},...d),m=f.state,h=o.useRef(m);o.useEffect(()=>{h.current!==m&&(h.current=m,l||u(m))},[m,h,l]);let g=o.useMemo(()=>i===void 0?f:{...f,state:i},[f,i]);return o.useEffect(()=>{l&&!Object.is(i,f.state)&&p({type:ce,state:i})},[i,f.state,l]),[g,p]}k(le,`useControllableStateReducer`);var ue=Object.defineProperty,A=(e,t)=>ue(e,`name`,{value:t,configurable:!0});function de(e,t){return o.useReducer((e,n)=>t[e][n]??e,e)}A(de,`useStateMachine`);var fe=A(e=>{let{present:t,children:n}=e,r=pe(t),i=typeof n==`function`?n({present:r.isPresent}):o.Children.only(n),a=he(r.ref,ge(i));return typeof n==`function`||r.isPresent?o.cloneElement(i,{ref:a}):null},`Presence`);function pe(e){let[t,n]=o.useState(),r=o.useRef(null),i=o.useRef(e),a=o.useRef(`none`),s=o.useRef(void 0),[c,l]=de(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return o.useEffect(()=>{c===`mounted`?(a.current=s.current??j(r.current),s.current=void 0):a.current=`none`},[c]),T(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=j(t);e?(s.current=o,l(`MOUNT`)):o===`none`||t?.display===`none`?l(`UNMOUNT`):l(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,l]),T(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=A(a=>{let o=j(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(l(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=A(e=>{e.target===t&&(a.current=j(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}l(`ANIMATION_END`)},[t,l]),{isPresent:[`mounted`,`unmountSuspended`].includes(c),ref:o.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,s.current=j(t)}else r.current=null;n(e)},[])}}A(pe,`usePresence`);function me(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}A(me,`setRef`);function he(...e){let t=o.useRef(e);return t.current=e,o.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=me(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e_e(e,`name`,{value:t,configurable:!0}),ye=o.useId||(()=>void 0),be=0;function M(e){let[t,n]=o.useState(ye());return T(()=>{e||n(e=>e??String(be++))},[e]),e||(t?`radix-${t}`:``)}ve(M,`useId`);var xe=Object.defineProperty,Se=(e,t)=>xe(e,`name`,{value:t,configurable:!0});function N(e){let t=o.useRef(e);return o.useEffect(()=>{t.current=e}),o.useMemo(()=>((...e)=>t.current?.(...e)),[])}Se(N,`useCallbackRef`);var Ce=Object.defineProperty,P=(e,t)=>Ce(e,`name`,{value:t,configurable:!0}),we=`dismissableLayer.update`,Te=`dismissableLayer.pointerDownOutside`,Ee=`dismissableLayer.focusOutside`,De,Oe=o.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),ke=o.forwardRef(P(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:l,onInteractOutside:u,onDismiss:f,...p}=e,m=o.useContext(Oe),[h,g]=o.useState(null),_=h?.ownerDocument??globalThis?.document,[,v]=o.useState({}),y=a(t,g),b=Array.from(m.layers),[S]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),C=S?b.indexOf(S):-1,w=h?b.indexOf(h):-1,ee=m.layersWithOutsidePointerEventsDisabled.size>0,T=w>=C,te=o.useRef(!1),ne=Me(e=>{s?.(e),u?.(e),e.defaultPrevented||f?.()},{ownerDocument:_,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:te,dismissableSurfaces:m.dismissableSurfaces,shouldHandlePointerDownOutside:o.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...m.branches].some(t=>t.contains(e));return T&&!t},[m.branches,T])}),E=Ne(e=>{if(r&&te.current)return;let t=e.target;[...m.branches].some(e=>e.contains(t))||(l?.(e),u?.(e),e.defaultPrevented||f?.())},_),D=h?w===b.length-1:!1,O=N(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&f&&(e.preventDefault(),f()))});return o.useEffect(()=>{if(D)return _.addEventListener(`keydown`,O,{capture:!0}),()=>_.removeEventListener(`keydown`,O,{capture:!0})},[_,D,O]),o.useEffect(()=>{if(h)return n&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(De=_.body.style.pointerEvents,_.body.style.pointerEvents=`none`),m.layersWithOutsidePointerEventsDisabled.add(h)),m.layers.add(h),Pe(),()=>{n&&(m.layersWithOutsidePointerEventsDisabled.delete(h),m.layersWithOutsidePointerEventsDisabled.size===0&&(_.body.style.pointerEvents=De))}},[h,_,n,m]),o.useEffect(()=>()=>{h&&(m.layers.delete(h),m.layersWithOutsidePointerEventsDisabled.delete(h),Pe())},[h,m]),o.useEffect(()=>{let e=P(()=>v({}),`handleUpdate`);return document.addEventListener(we,e),()=>document.removeEventListener(we,e)},[]),(0,c.jsx)(d.div,{...p,ref:y,style:{pointerEvents:ee?T?`auto`:`none`:void 0,...e.style},onFocusCapture:x(e.onFocusCapture,E.onFocusCapture),onBlurCapture:x(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:x(e.onPointerDownCapture,ne.onPointerDownCapture)})},`DismissableLayer`));function Ae(){let e=o.useContext(Oe),[t,n]=o.useState(null);return o.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}P(Ae,`useDismissableLayerSurface`);var je=P(()=>!0,`IS_TRUE`);function Me(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:s=je}=t,c=N(e),l=o.useRef(!1),u=o.useRef(!1),d=o.useRef(new Map),f=o.useRef(()=>{});return o.useEffect(()=>{function e(){u.current=!1,i.current=!1,d.current.clear()}P(e,`resetOutsideInteraction`);function t(){return Array.from(d.current.values()).some(Boolean)}P(t,`isOutsideInteractionIntercepted`);function o(e){if(!u.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||d.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{u.current&&f.current()},0)}P(o,`handleInteractionCapture`);function p(e){u.current&&d.current.set(e.type,!1)}P(p,`handleInteractionBubble`);let m=P(a=>{if(a.target&&!l.current){let o=function(){n.removeEventListener(`click`,f.current);let r=t();e(),r||Fe(Te,c,p,{discrete:!0})};if(P(o,`handleAndDispatchPointerDownOutsideEvent`),!s(a.target)){n.removeEventListener(`click`,f.current),e(),l.current=!1;return}let p={originalEvent:a};u.current=!0,i.current=r&&a.button===0,d.current.clear(),!r||a.button!==0?o():(n.removeEventListener(`click`,f.current),f.current=o,n.addEventListener(`click`,f.current,{once:!0}))}else n.removeEventListener(`click`,f.current),e();l.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,o,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,f.current);for(let e of h)n.removeEventListener(e,o,!0),n.removeEventListener(e,p)}},[n,c,r,i,a,s]),{onPointerDownCapture:P(()=>l.current=!0,`onPointerDownCapture`)}}P(Me,`usePointerDownOutside`);function Ne(e,t=globalThis?.document){let n=N(e),r=o.useRef(!1);return o.useEffect(()=>{let e=P(e=>{e.target&&!r.current&&Fe(Ee,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:P(()=>r.current=!0,`onFocusCapture`),onBlurCapture:P(()=>r.current=!1,`onBlurCapture`)}}P(Ne,`useFocusOutside`);function Pe(){let e=new CustomEvent(we);document.dispatchEvent(e)}P(Pe,`dispatchUpdate`);function Fe(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?f(i,a):i.dispatchEvent(a)}P(Fe,`handleAndDispatchCustomEvent`);var Ie=Object.defineProperty,F=(e,t)=>Ie(e,`name`,{value:t,configurable:!0}),Le=`focusScope.autoFocusOnMount`,Re=`focusScope.autoFocusOnUnmount`,ze={bubbles:!1,cancelable:!0},Be=o.forwardRef(F(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:s,...l}=e,[u,f]=o.useState(null),p=N(i),m=N(s),h=o.useRef(null),g=a(t,f),_=o.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;o.useEffect(()=>{if(r){let e=function(e){if(_.paused||!u)return;let t=e.target;u.contains(t)?h.current=t:I(h.current,{select:!0})},t=function(e){if(_.paused||!u)return;let t=e.relatedTarget;t!==null&&(u.contains(t)||I(h.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&I(u)};F(e,`handleFocusIn`),F(t,`handleFocusOut`),F(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return u&&r.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,u,_.paused]),o.useEffect(()=>{if(u){qe.add(_);let e=document.activeElement;if(!u.contains(e)){let t=new CustomEvent(Le,ze);u.addEventListener(Le,p),u.dispatchEvent(t),t.defaultPrevented||(Ve(Xe(Ue(u)),{select:!0}),document.activeElement===e&&I(u))}return()=>{u.removeEventListener(Le,p),setTimeout(()=>{let t=new CustomEvent(Re,ze);u.addEventListener(Re,m),u.dispatchEvent(t),t.defaultPrevented||I(e??document.body,{select:!0}),u.removeEventListener(Re,m),qe.remove(_)},0)}}},[u,p,m,_]);let v=o.useCallback(e=>{if(!n&&!r||_.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=He(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&I(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&I(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,_.paused]);return(0,c.jsx)(d.div,{tabIndex:-1,...l,ref:g,onKeyDown:v})},`FocusScope`));function Ve(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(I(r,{select:t}),document.activeElement!==n)return}F(Ve,`focusFirst`);function He(e){let t=Ue(e);return[We(t,e),We(t.reverse(),e)]}F(He,`getTabbableEdges`);function Ue(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:F(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}F(Ue,`getTabbableCandidates`);function We(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):Ge(r,{upTo:t})))return r}F(We,`findVisible`);function Ge(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}F(Ge,`isHidden`);function Ke(e){return e instanceof HTMLInputElement&&`select`in e}F(Ke,`isSelectableInput`);function I(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Ke(e)&&t&&e.select()}}F(I,`focus`);var qe=Je();function Je(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=Ye(e,t),e.unshift(t)},remove(t){e=Ye(e,t),e[0]?.resume()}}}F(Je,`createFocusScopesStack`);function Ye(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}F(Ye,`arrayRemove`);function Xe(e){return e.filter(e=>e.tagName!==`A`)}F(Xe,`removeLinks`);var Ze=Object.defineProperty,Qe=o.forwardRef(((e,t)=>Ze(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=o.useState(!1);T(()=>a(!0),[]);let l=n||i&&globalThis?.document?.body;return l?s.createPortal((0,c.jsx)(d.div,{...r,ref:t}),l):null},`Portal`)),$e=Object.defineProperty,et=(e,t)=>$e(e,`name`,{value:t,configurable:!0}),L=0,R=null;function tt(e){return nt(),e.children}et(tt,`FocusGuards`);function nt(){o.useEffect(()=>{R||={start:rt(),end:rt()};let{start:e,end:t}=R;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),L++,()=>{L===1&&(R?.start.remove(),R?.end.remove(),R=null),L=Math.max(0,L-1)}},[])}et(nt,`useFocusGuards`);function rt(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}et(rt,`createFocusGuard`);var z=function(){return z=Object.assign||function(e){for(var t,n=1,r=arguments.length;n`u`)return Dt;var t=kt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},jt=Et(),U=`data-scroll-locked`,Mt=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),` +import{i as e,r as t,s as n}from"./dist-D4CVSex9.js";import{mn as r}from"./index-CKWhFN2A.js";import{n as i,r as a}from"./button-D8rvET0Z.js";var o=n(e(),1),s=n(r(),1),c=t(),l=Object.defineProperty,u=(e,t)=>l(e,`name`,{value:t,configurable:!0}),d=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=i(`Primitive.${t}`),r=o.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,c.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function f(e,t){e&&s.flushSync(()=>e.dispatchEvent(t))}u(f,`dispatchDiscreteCustomEvent`);var p=Object.defineProperty,m=(e,t)=>p(e,`name`,{value:t,configurable:!0});function h(e,t){let n=o.createContext(t);n.displayName=e+`Context`;let r=m(e=>{let{children:t,...r}=e,i=o.useMemo(()=>r,Object.values(r));return(0,c.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,s=o.useContext(n);if(s)return s;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return m(i,`useContext`),[r,i]}m(h,`createContext`);function g(e,t=[]){let n=[];function r(t,r){let i=o.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let s=m(t=>{let{scope:n,children:r,...s}=t,l=n?.[e]?.[a]||i,u=o.useMemo(()=>s,Object.values(s));return(0,c.jsx)(l.Provider,{value:u,children:r})},`Provider`);s.displayName=t+`Provider`;function l(n,s,c={}){let{optional:l=!1}=c,u=s?.[e]?.[a]||i,d=o.useContext(u);if(d)return d;if(r!==void 0)return r;if(!l)throw Error(`\`${n}\` must be used within \`${t}\``)}return m(l,`useContext`),[s,l]}m(r,`createContext`);let i=m(()=>{let t=n.map(e=>o.createContext(e));return m(function(n){let r=n?.[e]||t;return o.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,_(i,...t)]}m(g,`createContextScope`);function _(...e){let t=e[0];if(e.length===1)return t;let n=m(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return m(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return o.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}m(_,`composeContextScopes`);var v=Object.defineProperty,y=(e,t)=>v(e,`name`,{value:t,configurable:!0}),b=!!(typeof window<`u`&&window.document&&window.document.createElement);function x(e,t,{checkForDefaultPrevented:n=!0}={}){return y(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}y(x,`composeEventHandlers`);function S(e){if(!b)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}y(S,`getOwnerWindow`);function C(e){if(!b)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}y(C,`getOwnerDocument`);function w(e,t=!1){let{activeElement:n}=C(e);if(!n?.nodeName)return null;if(ee(n)&&n.contentDocument)return w(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=C(n).getElementById(e);if(t)return t}}return n}y(w,`getActiveElement`);function ee(e){return e.tagName===`IFRAME`}y(ee,`isFrame`);var T=globalThis?.document?o.useLayoutEffect:()=>{},te=Object.defineProperty,ne=(e,t)=>te(e,`name`,{value:t,configurable:!0}),E=o.useEffectEvent,D=o.useInsertionEffect;function O(e){if(typeof E==`function`)return E(e);let t=o.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof D==`function`?D(()=>{t.current=e}):T(()=>{t.current=e}),o.useMemo(()=>((...e)=>t.current?.(...e)),[])}ne(O,`useEffectEvent`);var re=Object.defineProperty,k=(e,t)=>re(e,`name`,{value:t,configurable:!0}),ie=o.useInsertionEffect||T;function ae({prop:e,defaultProp:t,onChange:n=k(()=>{},`onChange`),caller:r}){let[i,a,s]=oe({defaultProp:t,onChange:n}),c=e!==void 0;return[c?e:i,o.useCallback(t=>{if(c){let n=se(t)?t(e):t;n!==e&&s.current?.(n)}else a(t)},[c,e,a,s])]}k(ae,`useControllableState`);function oe({defaultProp:e,onChange:t}){let[n,r]=o.useState(e),i=o.useRef(n),a=o.useRef(t);return ie(()=>{a.current=t},[t]),o.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}k(oe,`useUncontrolledState`);function se(e){return typeof e==`function`}k(se,`isFunction`);var ce=Symbol(`RADIX:SYNC_STATE`);function le(e,t,n,r){let{prop:i,defaultProp:a,onChange:s,caller:c}=t,l=i!==void 0,u=O(s),d=[{...n,state:a}];r&&d.push(r);let[f,p]=o.useReducer((t,n)=>{if(n.type===ce)return{...t,state:n.state};let r=e(t,n);return l&&!Object.is(r.state,t.state)&&u(r.state),r},...d),m=f.state,h=o.useRef(m);o.useEffect(()=>{h.current!==m&&(h.current=m,l||u(m))},[m,h,l]);let g=o.useMemo(()=>i===void 0?f:{...f,state:i},[f,i]);return o.useEffect(()=>{l&&!Object.is(i,f.state)&&p({type:ce,state:i})},[i,f.state,l]),[g,p]}k(le,`useControllableStateReducer`);var ue=Object.defineProperty,A=(e,t)=>ue(e,`name`,{value:t,configurable:!0});function de(e,t){return o.useReducer((e,n)=>t[e][n]??e,e)}A(de,`useStateMachine`);var fe=A(e=>{let{present:t,children:n}=e,r=pe(t),i=typeof n==`function`?n({present:r.isPresent}):o.Children.only(n),a=he(r.ref,ge(i));return typeof n==`function`||r.isPresent?o.cloneElement(i,{ref:a}):null},`Presence`);function pe(e){let[t,n]=o.useState(),r=o.useRef(null),i=o.useRef(e),a=o.useRef(`none`),s=o.useRef(void 0),[c,l]=de(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return o.useEffect(()=>{c===`mounted`?(a.current=s.current??j(r.current),s.current=void 0):a.current=`none`},[c]),T(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=j(t);e?(s.current=o,l(`MOUNT`)):o===`none`||t?.display===`none`?l(`UNMOUNT`):l(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,l]),T(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=A(a=>{let o=j(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(l(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=A(e=>{e.target===t&&(a.current=j(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}l(`ANIMATION_END`)},[t,l]),{isPresent:[`mounted`,`unmountSuspended`].includes(c),ref:o.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,s.current=j(t)}else r.current=null;n(e)},[])}}A(pe,`usePresence`);function me(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}A(me,`setRef`);function he(...e){let t=o.useRef(e);return t.current=e,o.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=me(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e_e(e,`name`,{value:t,configurable:!0}),ye=o.useId||(()=>void 0),be=0;function M(e){let[t,n]=o.useState(ye());return T(()=>{e||n(e=>e??String(be++))},[e]),e||(t?`radix-${t}`:``)}ve(M,`useId`);var xe=Object.defineProperty,Se=(e,t)=>xe(e,`name`,{value:t,configurable:!0});function N(e){let t=o.useRef(e);return o.useEffect(()=>{t.current=e}),o.useMemo(()=>((...e)=>t.current?.(...e)),[])}Se(N,`useCallbackRef`);var Ce=Object.defineProperty,P=(e,t)=>Ce(e,`name`,{value:t,configurable:!0}),we=`dismissableLayer.update`,Te=`dismissableLayer.pointerDownOutside`,Ee=`dismissableLayer.focusOutside`,De,Oe=o.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),ke=o.forwardRef(P(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:l,onInteractOutside:u,onDismiss:f,...p}=e,m=o.useContext(Oe),[h,g]=o.useState(null),_=h?.ownerDocument??globalThis?.document,[,v]=o.useState({}),y=a(t,g),b=Array.from(m.layers),[S]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),C=S?b.indexOf(S):-1,w=h?b.indexOf(h):-1,ee=m.layersWithOutsidePointerEventsDisabled.size>0,T=w>=C,te=o.useRef(!1),ne=Me(e=>{s?.(e),u?.(e),e.defaultPrevented||f?.()},{ownerDocument:_,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:te,dismissableSurfaces:m.dismissableSurfaces,shouldHandlePointerDownOutside:o.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...m.branches].some(t=>t.contains(e));return T&&!t},[m.branches,T])}),E=Ne(e=>{if(r&&te.current)return;let t=e.target;[...m.branches].some(e=>e.contains(t))||(l?.(e),u?.(e),e.defaultPrevented||f?.())},_),D=h?w===b.length-1:!1,O=N(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&f&&(e.preventDefault(),f()))});return o.useEffect(()=>{if(D)return _.addEventListener(`keydown`,O,{capture:!0}),()=>_.removeEventListener(`keydown`,O,{capture:!0})},[_,D,O]),o.useEffect(()=>{if(h)return n&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(De=_.body.style.pointerEvents,_.body.style.pointerEvents=`none`),m.layersWithOutsidePointerEventsDisabled.add(h)),m.layers.add(h),Pe(),()=>{n&&(m.layersWithOutsidePointerEventsDisabled.delete(h),m.layersWithOutsidePointerEventsDisabled.size===0&&(_.body.style.pointerEvents=De))}},[h,_,n,m]),o.useEffect(()=>()=>{h&&(m.layers.delete(h),m.layersWithOutsidePointerEventsDisabled.delete(h),Pe())},[h,m]),o.useEffect(()=>{let e=P(()=>v({}),`handleUpdate`);return document.addEventListener(we,e),()=>document.removeEventListener(we,e)},[]),(0,c.jsx)(d.div,{...p,ref:y,style:{pointerEvents:ee?T?`auto`:`none`:void 0,...e.style},onFocusCapture:x(e.onFocusCapture,E.onFocusCapture),onBlurCapture:x(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:x(e.onPointerDownCapture,ne.onPointerDownCapture)})},`DismissableLayer`));function Ae(){let e=o.useContext(Oe),[t,n]=o.useState(null);return o.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}P(Ae,`useDismissableLayerSurface`);var je=P(()=>!0,`IS_TRUE`);function Me(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:s=je}=t,c=N(e),l=o.useRef(!1),u=o.useRef(!1),d=o.useRef(new Map),f=o.useRef(()=>{});return o.useEffect(()=>{function e(){u.current=!1,i.current=!1,d.current.clear()}P(e,`resetOutsideInteraction`);function t(){return Array.from(d.current.values()).some(Boolean)}P(t,`isOutsideInteractionIntercepted`);function o(e){if(!u.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||d.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{u.current&&f.current()},0)}P(o,`handleInteractionCapture`);function p(e){u.current&&d.current.set(e.type,!1)}P(p,`handleInteractionBubble`);let m=P(a=>{if(a.target&&!l.current){let o=function(){n.removeEventListener(`click`,f.current);let r=t();e(),r||Fe(Te,c,p,{discrete:!0})};if(P(o,`handleAndDispatchPointerDownOutsideEvent`),!s(a.target)){n.removeEventListener(`click`,f.current),e(),l.current=!1;return}let p={originalEvent:a};u.current=!0,i.current=r&&a.button===0,d.current.clear(),!r||a.button!==0?o():(n.removeEventListener(`click`,f.current),f.current=o,n.addEventListener(`click`,f.current,{once:!0}))}else n.removeEventListener(`click`,f.current),e();l.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,o,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,f.current);for(let e of h)n.removeEventListener(e,o,!0),n.removeEventListener(e,p)}},[n,c,r,i,a,s]),{onPointerDownCapture:P(()=>l.current=!0,`onPointerDownCapture`)}}P(Me,`usePointerDownOutside`);function Ne(e,t=globalThis?.document){let n=N(e),r=o.useRef(!1);return o.useEffect(()=>{let e=P(e=>{e.target&&!r.current&&Fe(Ee,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:P(()=>r.current=!0,`onFocusCapture`),onBlurCapture:P(()=>r.current=!1,`onBlurCapture`)}}P(Ne,`useFocusOutside`);function Pe(){let e=new CustomEvent(we);document.dispatchEvent(e)}P(Pe,`dispatchUpdate`);function Fe(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?f(i,a):i.dispatchEvent(a)}P(Fe,`handleAndDispatchCustomEvent`);var Ie=Object.defineProperty,F=(e,t)=>Ie(e,`name`,{value:t,configurable:!0}),Le=`focusScope.autoFocusOnMount`,Re=`focusScope.autoFocusOnUnmount`,ze={bubbles:!1,cancelable:!0},Be=o.forwardRef(F(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:s,...l}=e,[u,f]=o.useState(null),p=N(i),m=N(s),h=o.useRef(null),g=a(t,f),_=o.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;o.useEffect(()=>{if(r){let e=function(e){if(_.paused||!u)return;let t=e.target;u.contains(t)?h.current=t:I(h.current,{select:!0})},t=function(e){if(_.paused||!u)return;let t=e.relatedTarget;t!==null&&(u.contains(t)||I(h.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&I(u)};F(e,`handleFocusIn`),F(t,`handleFocusOut`),F(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return u&&r.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,u,_.paused]),o.useEffect(()=>{if(u){qe.add(_);let e=document.activeElement;if(!u.contains(e)){let t=new CustomEvent(Le,ze);u.addEventListener(Le,p),u.dispatchEvent(t),t.defaultPrevented||(Ve(Xe(Ue(u)),{select:!0}),document.activeElement===e&&I(u))}return()=>{u.removeEventListener(Le,p),setTimeout(()=>{let t=new CustomEvent(Re,ze);u.addEventListener(Re,m),u.dispatchEvent(t),t.defaultPrevented||I(e??document.body,{select:!0}),u.removeEventListener(Re,m),qe.remove(_)},0)}}},[u,p,m,_]);let v=o.useCallback(e=>{if(!n&&!r||_.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=He(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&I(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&I(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,_.paused]);return(0,c.jsx)(d.div,{tabIndex:-1,...l,ref:g,onKeyDown:v})},`FocusScope`));function Ve(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(I(r,{select:t}),document.activeElement!==n)return}F(Ve,`focusFirst`);function He(e){let t=Ue(e);return[We(t,e),We(t.reverse(),e)]}F(He,`getTabbableEdges`);function Ue(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:F(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}F(Ue,`getTabbableCandidates`);function We(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):Ge(r,{upTo:t})))return r}F(We,`findVisible`);function Ge(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}F(Ge,`isHidden`);function Ke(e){return e instanceof HTMLInputElement&&`select`in e}F(Ke,`isSelectableInput`);function I(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Ke(e)&&t&&e.select()}}F(I,`focus`);var qe=Je();function Je(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=Ye(e,t),e.unshift(t)},remove(t){e=Ye(e,t),e[0]?.resume()}}}F(Je,`createFocusScopesStack`);function Ye(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}F(Ye,`arrayRemove`);function Xe(e){return e.filter(e=>e.tagName!==`A`)}F(Xe,`removeLinks`);var Ze=Object.defineProperty,Qe=o.forwardRef(((e,t)=>Ze(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=o.useState(!1);T(()=>a(!0),[]);let l=n||i&&globalThis?.document?.body;return l?s.createPortal((0,c.jsx)(d.div,{...r,ref:t}),l):null},`Portal`)),$e=Object.defineProperty,et=(e,t)=>$e(e,`name`,{value:t,configurable:!0}),L=0,R=null;function tt(e){return nt(),e.children}et(tt,`FocusGuards`);function nt(){o.useEffect(()=>{R||={start:rt(),end:rt()};let{start:e,end:t}=R;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),L++,()=>{L===1&&(R?.start.remove(),R?.end.remove(),R=null),L=Math.max(0,L-1)}},[])}et(nt,`useFocusGuards`);function rt(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}et(rt,`createFocusGuard`);var z=function(){return z=Object.assign||function(e){for(var t,n=1,r=arguments.length;n`u`)return Dt;var t=kt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},jt=Et(),U=`data-scroll-locked`,Mt=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),` .${ot} { overflow: hidden ${r}; padding-right: ${s}px ${r}; diff --git a/frontend/dist/assets/index-CIOHqG23.js b/frontend/dist/assets/index-CKWhFN2A.js similarity index 97% rename from frontend/dist/assets/index-CIOHqG23.js rename to frontend/dist/assets/index-CKWhFN2A.js index 1702b26..668e65e 100644 --- a/frontend/dist/assets/index-CIOHqG23.js +++ b/frontend/dist/assets/index-CKWhFN2A.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MenueSchublade-0T5uliTD.js","assets/dist-D4CVSex9.js","assets/sheet-DU78qfp_.js","assets/button-D8rvET0Z.js","assets/dist-B2n2wafq.js","assets/Start-BicB1Gxf.js","assets/Lampe-gSQfYg4e.js","assets/Updates-D5yJY-fn.js","assets/chevron-right-4vXDP1Jj.js","assets/Bestaetigen-D6CzMfJm.js","assets/Auftraege-CdBAGJi2.js","assets/Modelle-Bh5l5QHZ.js","assets/useSelector-uUwrspuX.js","assets/useMatch-CiyhmkMV.js","assets/search-hyFAofkN.js","assets/breite-pBrnu3_s.js","assets/Monitoring-D7SndtTk.js","assets/Dienste-atjWw704.js","assets/Homelab-Cf4eLYlp.js","assets/undo-2-DvQmwdhu.js","assets/HomelabSnapshots-BHJkSmwO.js","assets/HomelabProtokoll-CwVh3SKG.js","assets/Einstellungen-BUM2VQDj.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MenueSchublade-B0vlMk4k.js","assets/dist-D4CVSex9.js","assets/sheet-CHZtsS6E.js","assets/button-D8rvET0Z.js","assets/dist-VQuEcoq-.js","assets/Start-BEW_FGcW.js","assets/Lampe-gSQfYg4e.js","assets/Updates-DZ25Ri0a.js","assets/chevron-right-lErM2U6o.js","assets/Bestaetigen-CMlebyiw.js","assets/Auftraege-BO4bSQmr.js","assets/Modelle-CpXbVZza.js","assets/useSelector-uUwrspuX.js","assets/useMatch-CiyhmkMV.js","assets/search-DDxMRsny.js","assets/breite-pBrnu3_s.js","assets/Monitoring-Cx9bpZ97.js","assets/Dienste-Btw1nQIy.js","assets/Homelab-D7JGlciA.js","assets/undo-2-CJEVZ3Al.js","assets/HomelabSnapshots-BJnRrB1s.js","assets/HomelabProtokoll-Bn-4pxRM.js","assets/Einstellungen-B9lWkZF-.js"])))=>i.map(i=>d[i]); import{a as e,i as t,n,r,s as i,t as a}from"./dist-D4CVSex9.js";import{_ as o,a as s,c,d as l,f as u,g as d,h as f,i as p,l as m,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as S,v as C,y as w}from"./useSelector-uUwrspuX.js";import{i as T,n as E,r as D,t as O}from"./useMatch-CiyhmkMV.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var ee=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&ne(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&ne(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var ee=new MessageChannel,te=ee.port2;ee.port1.onmessage=D,O=function(){te.postMessage(null)}}else O=function(){_(D,0)};function ne(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,ne(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),te=e(((e,t)=>{t.exports=ee()})),ne=e((e=>{var n=t();function r(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=ne()})),ie=e((e=>{var n=te(),r=t(),i=re();function a(e){var t=`https://react.dev/errors/`+e;if(1xe||(e.current=be[xe],be[xe]=null,xe--)}function P(e,t){xe++,be[xe]=e.current,e.current=t}var we=Se(null),Te=Se(null),Ee=Se(null),De=Se(null);function Oe(e,t){switch(P(Ee,t),P(Te,e),P(we,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?up(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=up(t),e=dp(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}Ce(we),P(we,e)}function ke(){Ce(we),Ce(Te),Ce(Ee)}function Ae(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,P(De,e)),t=we.current;var n=dp(t,e.type);t!==n&&(P(Te,e),P(we,n))}function je(e){Te.current===e&&(Ce(we),Ce(Te)),De.current===e&&(Ce(De),sh._currentValue=ye)}var Me,Ne;function Pe(e){if(Me===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Me=t&&t[1]||``,Ne=-1)`:-1>>=0,e===0?32:31-(rt(e)/it|0)|0}var ot=256,st=262144,ct=4194304;function lt(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ut(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=lt(n))):i=lt(o):i=lt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=lt(n))):i=lt(o)):i=lt(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function dt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ft(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0n;n++)t.push(e);return t}function gt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function _t(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0=hr),vr=` `,yr=!1;function br(e,t){switch(e){case`keyup`:return pr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function xr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Sr=!1;function Cr(e,t){switch(e){case`compositionend`:return xr(t);case`keypress`:return t.which===32?(yr=!0,vr):null;case`textInput`:return e=t.data,e===vr&&yr?null:e;default:return null}}function wr(e,t){if(Sr)return e===`compositionend`||!mr&&br(e,t)?(e=In(),Fn=Pn=Nn=null,Sr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=qr(n)}}function Yr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Yr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Xr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Kr(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Kr(e.document)}return t}function Zr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Qr=An&&`documentMode`in document&&11>=document.documentMode,$r=null,ei=null,ti=null,ni=!1;function ri(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ni||$r==null||$r!==Kr(r)||(r=$r,`selectionStart`in r&&Zr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ti&&Gr(ti,r)||(ti=r,r=Jf(ei,`onSelect`),0>=o,i-=o,$i=1<<32-nt(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),R&&ta(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),R&&ta(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return R&&ta(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&h.delete(_.key===null?g:_.key)),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),R&&ta(i,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===ee&&o.key===null&&o.props.ref===void 0&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case D:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===ee){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),lo(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===le&&no(l)===r.type){n(e,r.sibling),c=i(r,o.props),lo(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===ee?(c=Bi(o.props.children,e.mode,c,o.key),lo(c,o),c.return=e,e=c):(c=zi(o.type,o.key,o.props,null,e.mode,c),lo(c,o),c.return=e,e=c)}return s(e);case O:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Ui(o,e.mode,c),c.return=e,e=c}return s(e);case le:return o=no(o),_(e,r,o,c)}if(ve(o))return h(e,r,o,c);if(ge(o)){if(l=ge(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return _(e,r,co(o),c);if(o.$$typeof===k)return _(e,r,z(e,o),c);uo(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=Vi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{so=0;var i=_(e,t,n,r);return oo=null,i}catch(t){if(t===Xa||t===Qa)throw t;var a=Fi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var po=fo(!0),mo=fo(!1),ho=!1;function go(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function _o(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function vo(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function yo(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,G&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Mi(e),ji(e,null,n),t}return Oi(e,r,t,n),Mi(e)}function bo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,yt(e,n)}}function xo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var So=!1;function Co(){if(So){var e=Va;if(e!==null)throw e}}function wo(e,t,n,r){So=!1;var i=e.updateQueue;ho=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(J&f)===f:(r&f)===f){f!==0&&f===Ba&&(So=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,h=s;f=t;var g=n;switch(h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(g,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(g,d,f):m,f==null)break a;d=T({},d,f);break a;case 2:ho=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),sd|=o,e.lanes=o,e.memoizedState=d}}function To(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function B(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=M.T,s={};s.types=o===null?null:o.types,M.T=s,dc(e,!1,t,n);try{var c=i(),l=M.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?uc(e,t,Wa(c,r),jd(e)):uc(e,t,r,jd(e))}catch(n){uc(e,t,{then:function(){},status:`rejected`,reason:n},jd())}finally{N.p=a,o!==null&&s.types!==null&&(o.types=s.types),M.T=o}}function ec(){}function tc(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=nc(e).queue;$s(e,i,t,ye,n===null?ec:function(){return rc(e),n(r)})}function nc(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ye,baseState:ye,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:fs,lastRenderedState:ye},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:fs,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function rc(e){var t=nc(e);t.next===null&&(t=e.alternate.memoizedState),uc(e,t.next.queue,{},jd())}function ic(){return Da(sh)}function ac(){return ss().memoizedState}function oc(){return ss().memoizedState}function sc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=jd();e=vo(n);var r=yo(t,e,n);r!==null&&(Pd(r,t,n),bo(r,t,n)),t={cache:Na()},e.payload=t;return}t=t.return}}function cc(e,t,n){var r=jd();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},fc(e)?pc(t,n):(n=ki(e,t,n,r),n!==null&&(Pd(n,e,r),mc(n,t,r)))}function lc(e,t,n){uc(e,t,n,jd())}function uc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(fc(e))pc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Wr(s,o))return Oi(e,t,i,0),K===null&&Di(),!1}catch{}if(n=ki(e,t,i,r),n!==null)return Pd(n,e,r),mc(n,t,r),!0}return!1}function dc(e,t,n,r){if(r={lane:2,revertLane:Pf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},fc(e)){if(t)throw Error(a(479))}else t=ki(e,n,r,2),t!==null&&Pd(t,e,2)}function fc(e){var t=e.alternate;return e===V||t!==null&&t===V}function pc(e,t){Go=Wo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function mc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,yt(e,n)}}var hc={readContext:Da,use:us,useCallback:Zo,useContext:Zo,useEffect:Zo,useImperativeHandle:Zo,useLayoutEffect:Zo,useInsertionEffect:Zo,useMemo:Zo,useReducer:Zo,useRef:Zo,useState:Zo,useDebugValue:Zo,useDeferredValue:Zo,useTransition:Zo,useSyncExternalStore:Zo,useId:Zo,useHostTransitionStatus:Zo,useFormState:Zo,useActionState:Zo,useOptimistic:Zo,useMemoCache:Zo,useCacheRefresh:Zo,useEffectEvent:Zo},gc={readContext:Da,use:us,useCallback:function(e,t){return os().memoizedState=[e,t===void 0?null:t],e},useContext:Da,useEffect:Bs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Rs(4194308,4,Ks.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Rs(4194308,4,e,t)},useInsertionEffect:function(e,t){Rs(4,2,e,t)},useMemo:function(e,t){var n=os();t=t===void 0?null:t;var r=e();if(Ko){tt(!0);try{e()}finally{tt(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=os();if(n!==void 0){var i=n(t);if(Ko){tt(!0);try{n(t)}finally{tt(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=cc.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=os();return e={current:e},t.memoizedState=e},useState:function(e){e=Ss(e);var t=e.queue,n=lc.bind(null,V,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Js,useDeferredValue:function(e,t){return Zs(os(),e,t)},useTransition:function(){var e=Ss(!1);return e=$s.bind(null,V,e.queue,!0,!1),os().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=V,i=os();if(R){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),K===null)throw Error(a(349));J&127||_s(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,Bs(ys.bind(null,r,o,e),[e]),r.flags|=2048,Is(9,{destroy:void 0},vs.bind(null,r,o,n,t),null),n},useId:function(){var e=os(),t=K.identifierPrefix;if(R){var n=ea,r=$i;n=(r&~(1<<32-nt(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=qo++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[Et]=t,o[F]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(np(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&ml(t)}}return U(t),t.subtreeFlags&=-33554433,hl(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&ml(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=Ee.current,pa(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=oa,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[Et]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||ep(e.nodeValue,n)),e||ua(t,!0)}else e=lp(e).createTextNode(r),e[Et]=t,t.stateNode=e}return U(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=pa(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[Et]=t}else ma(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),e=!1}else n=ha(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Lo(t),t):(Lo(t),null);if(t.flags&128)throw Error(a(558))}return U(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=pa(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[Et]=t}else ma(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),i=!1}else i=ha(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(Lo(t),t):(Lo(t),null)}return Lo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),_l(t,t.updateQueue),U(t),null);case 4:return ke(),e===null&&Wf(t.stateNode.containerInfo),t.flags|=67108864,U(t),null;case 10:return xa(t.type),U(t),null;case 19:if(Bo(t),r=t.memoizedState,r===null)return U(t),null;if(i=!!(t.flags&128),o=r.rendering,o===null){if(i)vl(r,!1);else{if(od!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Vo(e),o!==null){for(t.flags|=128,vl(r,!1),e=o.updateQueue,t.updateQueue=e,_l(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Ri(n,e),n=n.sibling;return zo(t,Ro.current&1|2),R&&ta(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&We()>gd&&(t.flags|=128,i=!0,vl(r,!1),t.lanes=4194304)}}else{if(!i){if(e=Vo(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,_l(t,e),vl(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!R)return U(t),null}else 2*We()-r.renderingStartTime>gd&&n!==536870912&&(t.flags|=128,i=!0,vl(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}if(r.tail!==null){e=r.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=We(),e.sibling=null,o=Ro.current,o=i?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||R?zo(t,o):(n=o,P(jo,t),P(Ro,n),Mo===null&&(Mo=t)),R&&ta(t,r.treeForkCount),e}return U(t),null;case 22:case 23:return Lo(t),Ao(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(U(t),t.subtreeFlags&6&&(t.flags|=8192)):U(t),n=t.updateQueue,n!==null&&_l(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&Ce(Ka),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),xa(Ma),U(t),null;case 25:return null;case 30:return t.flags|=33554432,U(t),null}throw Error(a(156,t.tag))}function bl(e,t){switch(ia(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return xa(Ma),ke(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return je(t),null;case 31:if(t.memoizedState!==null){if(Lo(t),t.alternate===null)throw Error(a(340));ma()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Lo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));ma()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Bo(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ke(),null;case 10:return xa(t.type),null;case 22:case 23:return Lo(t),Ao(),e!==null&&Ce(Ka),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return xa(Ma),null;case 25:return null;default:return null}}function xl(e,t){switch(ia(t),t.tag){case 3:xa(Ma),ke();break;case 26:case 27:case 5:je(t);break;case 4:ke();break;case 31:t.memoizedState!==null&&Lo(t);break;case 13:Lo(t);break;case 19:Bo(t);break;case 10:xa(t.type);break;case 22:case 23:Lo(t),Ao(),e!==null&&Ce(Ka);break;case 24:xa(Ma)}}function Sl(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Cl(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function wl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{B(t,n)}catch(t){Z(e,e.return,t)}}}function Tl(e,t,n){n.props=Cc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function El(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var i=e.stateNode,a=bi(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=Pp(a)),r=i.ref;break;case 7:if(e.stateNode===null){var o=new Fp(e);p(e.child,!1,Qp,o,void 0,void 0),e.stateNode=o}r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function Dl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}}function Ol(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n title`))),np(r,t,n),r[Et]=e,zt(r),t=r;break a;case`link`:if(o=Gm(`link`,`href`,i).get(t+(n.href||``))){for(s=0;sg&&(o=g,g=h,h=o);var _=Jr(s,h),v=Jr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,M.T=null,n=wd,wd=null;var o=bd,s=Sd;if(yd=0,xd=bd=null,Sd=0,G&6)throw Error(a(331));var c=G;if(G|=4,Xu(o.current),Hu(o,o.current,s,n),G=c,Df(0,!1),et&&typeof et.onPostCommitFiberRoot==`function`)try{et.onPostCommitFiberRoot($e,o)}catch{}return!0}finally{N.p=i,M.T=r,uf(e,t)}}function pf(e,t,n){t=Gi(n,t),t=kc(e.stateNode,t,2),e=yo(e,t,2),e!==null&&(gt(e,2),Ef(e))}function Z(e,t,n){if(e.tag===3)pf(e,e,n);else for(;t!==null;){if(t.tag===3){pf(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(vd===null||!vd.has(r))){e=Gi(n,e),n=Ac(2),r=yo(t,n,2),r!==null&&(jc(n,r,t,e),gt(r,2),Ef(r));break}}t=t.return}}function mf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new ed;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(id=!0,i.add(n),e=hf.bind(null,e,t,n),t.then(e,e))}function hf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,K===e&&(J&n)===n&&(od===4||od===3&&(J&62914560)===J&&300>We()-md?G&2?ld|=n:Vd(e,0):ld|=n,dd===J&&(dd=0)),Ef(e)}function gf(e,t){t===0&&(t=mt()),e=Ai(e,t),e!==null&&(gt(e,t),Ef(e))}function _f(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),gf(e,n)}function vf(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),gf(e,n)}function yf(e,t){return Be(e,t)}var bf=null,xf=null,Sf=!1,Cf=!1,wf=!1,Tf=0;function Ef(e){e!==xf&&e.next===null&&(xf===null?bf=xf=e:xf=xf.next=e),Cf=!0,Sf||(Sf=!0,Nf())}function Df(e,t){if(!wf&&Cf){wf=!0;do for(var n=!1,r=bf;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-nt(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Mf(r,a))}else a=J,a=ut(r,r===K?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||dt(r,a)||(n=!0,Mf(r,a))}r=r.next}while(n);wf=!1}}function Of(){kf()}function kf(){Cf=Sf=!1;var e=0;Tf!==0&&hp()&&(e=Tf);for(var t=We(),n=null,r=bf;r!==null;){var i=r.next,a=Af(r,t);a===0?(r.next=null,n===null?bf=i:n.next=i,i===null&&(xf=n)):(n=r,(e!==0||a&3)&&(Cf=!0)),r=i}yd!==0&&yd!==5||Df(e,!1),Tf!==0&&(Tf=0)}function Af(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=on(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),zt(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+on(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+on(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+on(n.imageSizes)+`"]`)):i+=`[href="`+on(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=T({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[Nt]=!0,o.onload=o.onerror=function(){Bt(o)}),zt(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+on(r)+`"][href="`+on(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=T({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),zt(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=Rt(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=T({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);zt(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=Rt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=T({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),zt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=Rt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=T({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),zt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var i=(i=Ee.current)?bm(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=Rt(i).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var o=Rt(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(Fm(e)))?o._p||(s.instance=o,s.state.loading=5):(o=vm.get(e),o||(o={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,o)),Lm(i,e,o,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=Rt(i).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Pm(e){return`href="`+on(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return T({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){if(!0!==t[Nt]){r.loading=1;return}}else t=e.createElement(`link`),t[Nt]=!0,t.onload=t.onerror=Bt.bind(null,t),np(t,`link`,n),zt(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+on(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+on(n.href)+`"]`);if(r)return t.instance=r,zt(r),r;var i=T({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),zt(r),np(r,`style`,i),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Pm(n.href);var o=e.querySelector(Fm(i));if(o)return t.state.loading|=4,t.instance=o,zt(o),o;r=Im(n),(i=vm.get(i))&&Hm(r,i),o=(e.ownerDocument||e).createElement(`link`),zt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),np(o,`link`,r),t.state.loading|=4,Vm(o,n.precedence,e),t.instance=o;case`script`:return o=Rm(n.src),(i=e.querySelector(zm(o)))?(t.instance=i,zt(i),i):(r=n,(i=vm.get(o))&&(r=T({},n),Um(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),zt(i),np(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,zt(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),zt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=ie()})),k=i(t(),1),A=r(),oe=k.createContext(void 0),se=e=>{let t=k.useContext(oe);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},ce=({client:e,children:t})=>(k.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,A.jsx)(oe.Provider,{value:e,children:t})),le={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},ue=new class{#e=le;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function de(e){setTimeout(e,0)}var fe=typeof window>`u`||`Deno`in globalThis;function pe(){}function me(e,t){return typeof e==`function`?e(t):e}function he(e){return typeof e==`number`&&e>=0&&e!==1/0}function ge(e,t){return Math.max(e+(t||0)-Date.now(),0)}function j(e,t){return typeof e==`function`?e(t):e}function _e(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==M(o,t.options))return!1}else if(!ye(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function ve(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(N(t.options.mutationKey)!==N(a))return!1}else if(!ye(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function M(e,t){return(t?.queryKeyHashFn||N)(e)}function N(e){return JSON.stringify(e,(e,t)=>P(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function ye(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){if(t.length>e.length)return!1;for(let n=0;n500)return t;let r=Ce(e)&&Ce(t);if(!r&&!(P(e)&&P(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l{ue.setTimeout(t,e)})}function Ee(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:xe(e,t)}function De(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function Oe(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var ke=Symbol();function Ae(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===ke?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function je(e,t){return typeof e==`function`?e(...t):!!e}function Me(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var Ne=()=>fe,Pe=()=>Ne(),Fe=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ie=new class extends Fe{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},Le=de;function Re(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=Le,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var ze=Re(),Be=new class extends Fe{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function Ve(e){return Math.min(1e3*2**e,3e4)}function He(e){return(e??`online`)!==`online`||Be.isOnline()}var Ue=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function We(e){let t=!1,n=0,r,i=`pending`,a,o,s=new Promise((e,t)=>{a=e,o=t});s.catch(pe);let c=()=>i!==`pending`,l=t=>{if(!c()){let n=new Ue(t);h(n),e.onCancel?.(n)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>Ie.isFocused()&&(e.networkMode===`always`||Be.isOnline())&&e.canRun(),p=()=>He(e.networkMode)&&e.canRun(),m=e=>{c()||(r?.(),i=`resolved`,a(e))},h=e=>{c()||(r?.(),i=`rejected`,o(e))},g=()=>new Promise(t=>{r=e=>{(c()||f())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,c()||e.onContinue?.()}),_=()=>{if(c())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(m).catch(r=>{if(c())return;let i=e.retry??(Pe()?0:3),a=e.retryDelay??Ve,o=typeof a==`function`?a(n,r):a,s=i===!0||typeof i==`number`&&nf()?void 0:g()).then(()=>{t?h(r):_()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:p,start:()=>(p()?_():g().then(_),s)}}var Ge=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),he(this.gcTime)&&(this.#e=ue.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Pe()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(ue.clearTimeout(this.#e),this.#e=void 0)}};function Ke(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{Me(e,()=>t.signal,()=>n=!0)},u=Ae(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?Oe:De;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?Je:qe,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:qe(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(ct.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function qe(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Je(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var Ye=class extends Ge{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=Qe(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=Qe(this.options);e.data!==void 0&&(this.setState(Ze(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=Ee(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#c({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(pe).catch(pe):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>j(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===ke||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>j(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!ge(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){let t=this.observers.indexOf(e);t!==-1&&(this.observers.splice(t,1),this.observers.length||(this.#a&&(this.#s||this.state.fetchStatus===`paused`&&this.state.status===`pending`?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=Ae(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?Ke(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta});let o=this.#a=We({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof Ue&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await o.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof Ue){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.#a===o&&(this.#a=void 0),this.scheduleGc()}}#c(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Xe(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Ze(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),ze.batch(()=>{this.observers.slice().forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Xe(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:He(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Ze(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Qe(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var $e=class extends Fe{#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p=new Set;constructor(e,t){super(),this.options=t,this.#e=e,this.#o=null,this.bindMethods(),this.setOptions(t)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),tt(this.#t,this.options)?this.#m():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return nt(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return nt(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof j(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!Se(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&rt(this.#t,n,this.options,t)&&this.#m(),this.updateResult(),r&&(this.#t!==n||j(this.options.enabled,this.#t)!==j(t.enabled,this.#t)||j(this.options.staleTime,this.#t)!==j(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||j(this.options.enabled,this.#t)!==j(t.enabled,this.#t)||i!==this.#f)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return Se(this.getCurrentResult(),n)||(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),Reflect.get(e,n))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t),r=()=>{},i,a=new Promise(e=>{i=e,r=this.#e.getQueryCache().subscribe(i=>{i.type===`updated`&&i.query.queryHash===n.queryHash&&n.state.data!==void 0&&(r(),e(this.createResult(n,t)))})});return Promise.race([n.fetch().then(()=>{let e=this.createResult(n,t);return i?.(e),e}).finally(()=>{r()}),a])}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#m(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(pe)),t}#h(e){return!Pe()&&j(this.options.enabled,this.#t)!==!1&&he(e)}#g(){this.#b();let e=j(this.options.staleTime,this.#t);if(this.#r.isStale||!this.#h(e))return;let t=ge(this.#r.dataUpdatedAt,e)+1;this.#u=ue.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return j(this.options.refetchInterval,this.#t)??!1}#v(e){this.#x(),this.#f=e,this.#f!==0&&this.#h(this.#f)&&(this.#d=ue.setInterval(()=>{(this.options.refetchIntervalInBackground||Ie.isFocused())&&this.#m()},this.#f))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#u!==void 0&&(ue.clearTimeout(this.#u),this.#u=void 0)}#x(){this.#d!==void 0&&(ue.clearInterval(this.#d),this.#d=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&tt(e,t),o=i&&rt(e,n,t,r);(a||o)&&(l={...l,...Xe(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#l?.state.data,this.#l):t.placeholderData,e!==void 0&&(m=`success`,d=Ee(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h){if(i&&d===a?.data&&t.select===this.#s)d=this.#c;else try{this.#s=t.select,d=t.select(d),d=Ee(i?.data,d,t),this.#c=d,this.#o=null}catch(e){this.#o=e}}else d===void 0&&(this.#o=null);this.#o&&(f=this.#o,d=this.#c,p=Date.now(),m=`error`,u=!1);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0;return{status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:it(e,t),refetch:this.refetch,isEnabled:j(t.enabled,e)!==!1}}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);if(this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#l=this.#t),Se(t,e))return;this.#r=t;let n=(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#p.size)return!0;let r=new Set(n??this.#p);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})();ze.batch(()=>{n&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}};function et(e,t){return j(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||j(t.retryOnMount,e)!==!1)}function tt(e,t){return et(e,t)||e.state.data!==void 0&&nt(e,t,t.refetchOnMount)}function nt(e,t,n){if(j(t.enabled,e)!==!1&&j(t.staleTime,e)!==`static`){let r=j(n,e);return r===`always`||r!==!1&&it(e,t)}return!1}function rt(e,t,n,r){return(e!==t||j(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&it(e,n)}function it(e,t){return j(t.enabled,e)!==!1&&e.isStaleByTime(j(t.staleTime,e))}var at=class extends Ge{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||ot(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??(this.state.status===`pending`?this.execute(this.state.variables):Promise.resolve())}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},r=this.#r=We({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)}),i=this.state.status===`pending`,a=!r.canStart();try{if(i)t();else{this.#i({type:`pending`,variables:e,isPaused:a}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:a})}let o=await r.start();return await this.#n.config.onSuccess?.(o,e,this.state.context,this,n),await this.options.onSuccess?.(o,e,this.state.context,n),await this.#n.config.onSettled?.(o,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(o,null,e,this.state.context,n),this.#i({type:`success`,data:o}),o}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#r===r&&(this.#r=void 0),this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),ze.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function ot(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var st=class extends Fe{#e;#t;#n;constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}build(e,t,n){let r=new at({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=ct(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=ct(e);if(typeof t==`string`){let n=this.#t.get(t);if(n){if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=ct(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=ct(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){ze.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ve(t,e))}findAll(e={}){return this.getAll().filter(t=>ve(e,t))}notify(e){ze.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return ze.batch(()=>Promise.all(e.map(e=>e.continue().catch(pe))))}};function ct(e){return e.options.scope?.id}var lt=class extends Fe{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),Se(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&N(t.mutationKey)!==N(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onSubscribe(){this.listeners.size===1&&this.#n&&(this.#n.addObserver(this),this.#i())}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??ot();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){ze.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}};function ut(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}var dt=class extends Fe{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,ze.batch(()=>{let e=this.#i,t=this.#p(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),i=e.length!==n.length,a=n.some((t,n)=>t!==e[n]),o=i||a,s=o?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!Se(e,n)});(o||s)&&(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(ut(e,n).forEach(e=>{e.destroy()}),ut(n,e).forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})),this.#h()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#p(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){let n=new Set;return t.map((r,i)=>{let a=e[i];return r.defaultedQueryOptions.notifyOnChangeProps?a:r.observer.trackResult(a,e=>{n.has(e)||(n.add(e),t.forEach(t=>{t.observer.trackProp(e)}))})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=xe(this.#a,t(e))),this.#a}return e}#f(){return!this.#r?.combine||this.#i.some((e,t)=>e.options.suspense&&this.#t[t]?.data===void 0)}#p(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new $e(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#m(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=this.#t.slice(),this.#t[n]=t,this.#h())}#h(){if(this.hasListeners()){let e=this.#f(),t=this.#a,n=e?t:this.#d(this.#u(this.#t,this.#l),this.#r?.combine);(e||t!==n)&&ze.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},ft=class extends Fe{#e;constructor(e={}){super(),this.config=e,this.#e=new Map}build(e,t,n){let r=t.queryKey,i=t.queryHash??M(r,t),a=this.get(i);return a||(a=new Ye({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){this.#e.get(e.queryHash)===e&&(e.destroy(),this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){ze.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>_e(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>_e(e,t)):t}notify(e){ze.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){ze.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){ze.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},pt=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new ft,this.#t=e.mutationCache||new st,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=Ie.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Be.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(j(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=me(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return ze.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;ze.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return ze.batch(()=>{let r=n.findAll(e),i=new Set(r);return r.forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,predicate:e=>i.has(e)},t)})}cancelQueries(e,t={}){let n={revert:!0,...t},r=ze.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(pe).catch(pe)}invalidateQueries(e,t={}){return ze.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=ze.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(pe)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(pe)}async query(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t),r=n.isStaleByTime(j(t.staleTime,n))?await n.fetch(t):n.state.data,i=t.select;return i?i(r):r}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(j(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(pe).catch(pe)}infiniteQuery(e){return e._type=`infinite`,this.query(e)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(pe).catch(pe)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return Be.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(N(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ye(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(N(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ye(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=M(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===ke&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},mt=k.createContext(!1),ht=()=>k.useContext(mt);mt.Provider;function gt(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var _t=k.createContext(gt()),vt=()=>k.useContext(_t),yt=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?je(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||r)&&(t.isReset()||(e.retryOnMount=!1))},bt=e=>{k.useEffect(()=>{e.clearReset()},[e])},xt=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||je(n,[e.error,r])),St=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},Ct=(e,t)=>e?.suspense&&t.isPending,wt=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function Tt({queries:e,...t},n){let r=se(n),i=ht(),a=vt(),o=t.subscribed!==!1,s=k.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:o?`optimistic`:void 0,t}),[e,r,i,o]);s.forEach(e=>{St(e);let t=r.getQueryCache().get(e.queryHash);yt(e,a,t)}),bt(a);let[c]=k.useState(()=>new dt(r,s,t)),[l,u,d]=c.getOptimisticResult(s,t.combine),f=!i&&o;k.useSyncExternalStore(k.useCallback(e=>f?c.subscribe(ze.batchCalls(e)):pe,[c,f]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),k.useEffect(()=>{c.setQueries(s,t)},[s,t,c]);let p=l.some((e,t)=>Ct(s[t],e))?l.flatMap((e,t)=>{let n=s[t];return n&&Ct(n,e)?wt(n,new $e(r,n),a):[]}):[];if(p.length>0)throw Promise.all(p);let m=l.find((e,t)=>{let n=s[t];return n&&xt({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(m)throw m.error;return u(d())}function Et(e,t,n){let r=ht(),i=vt(),a=se(n),o=a.defaultQueryOptions(e),s=a.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:c?`optimistic`:void 0,St(o),yt(o,i,s),bt(i);let[l]=k.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&c;if(k.useSyncExternalStore(k.useCallback(e=>{let t=d?l.subscribe(ze.batchCalls(e)):pe;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),k.useEffect(()=>{l.setOptions(o)},[o,l]),Ct(o,u))throw wt(o,l,i);if(xt({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return o.notifyOnChangeProps?u:l.trackResult(u)}function F(e,t){return Et(e,$e,t)}function Dt(e,t){let n=se(t),[r]=k.useState(()=>new lt(n,e));k.useEffect(()=>{r.setOptions(e)},[r,e]);let i=k.useSyncExternalStore(k.useCallback(e=>r.subscribe(ze.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=k.useCallback((...e)=>{r.mutate(e[0],e[1]).catch(pe)},[r]);if(i.error&&je(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var Ot=k.use,kt=k.useLayoutEffect;function At(e){return e.replace(/\/{2,}/g,`/`)}function jt(e){return e===`/`?e:e.replace(/^\/+/,``)}function Mt(e){let t=e.length;return t>1&&e[t-1]===`/`?e.replace(/\/+$/,``):e}function Nt(e){return Mt(jt(e))}function Pt(e,t){return e?.endsWith(`/`)&&e!==`/`&&e!==`${t}/`?e.slice(0,-1):e}function Ft(e,t,n=`never`,r){if(t.includes(`//`)&&(t=At(t)),t.startsWith(`/`))return t.length===1||n===`preserve`?t:n===`always`?t.endsWith(`/`)?t:`${t}/`:t.endsWith(`/`)?t.slice(0,-1):t;let i=t===`.`,a;if(r){a=i?e:e+`\0`+t;let n=r.get(a);if(n)return n}let o;if(i)o=e.split(`/`);else{for(e.includes(`//`)&&(e=At(e)),o=e.split(`/`);o.length>1&&d(o)===``;)o.pop();let n=t.split(`/`);for(let e=0,t=n.length;e1?o.pop():o=[``]:r===`.`||o.push(r)}}o.length>1&&(d(o)===``?n===`never`&&o.pop():n===`always`&&o.push(``));let s=o.join(`/`),c=(i?At(s):s)||`/`;return a&&r&&r.set(a,c),c}function It(e){let t=new Map(e.map(e=>[encodeURIComponent(e),e])),n=new RegExp([...t.keys()].join(`|`).replace(/[.*()]/g,`\\$&`),`g`);return e=>e.replace(n,e=>t.get(e)??e)}function Lt(e){return e==null||e===``}function Rt(e,t,n){if(typeof t!=`string`)return``+(t??void 0);let r=e===`_splat`;if(r&&(!t||/^[a-zA-Z0-9\-._~!/]*$/.test(t)))return t;let i=encodeURIComponent(t);return r&&(i=i.replaceAll(`%2F`,`/`)),n?n(i):i}function zt(e,t,n,r,i){let a=e.endsWith(`/`)?`/`:``,o=``;for(let e of t){if(typeof e==`string`){o+=e;continue}let[t,s,c,l]=e,u=t===2,d=u&&l!==void 0?l+a:l,f=n[s];if(t!==3||f!=null){if(i&&(i[s]=f,u&&(i[`*`]=f)),u&&Lt(f)){if(c===`/`&&!d)continue;f=``}o+=c+Rt(s,f,r)+(d||``)}}return o+a||`/`}function Bt(e){return e?.isNotFound===!0}function Vt(){try{return sessionStorage}catch{return}}var Ht=`tsr-scroll-restoration-v1_3`,Ut=Vt();function Wt(){try{return JSON.parse(Ut?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function Gt(){try{Ut?.setItem(Ht,JSON.stringify(Kt))}catch{}}var Kt=Wt(),qt=`data-scroll-restoration-id`,Jt=e=>e.state.__TSR_key||e.href;function I(e){let t=e.getAttribute(qt);if(t)return`[${qt}="${t}"]`;let n=``,r=e,i;for(;i=r.parentNode;){let e=1,t=r;for(;t=t.previousElementSibling;)e++;let a=`${r.localName}:nth-child(${e})`;n=n?`${a} > ${n}`:a,r=i}return n}var Yt=!1,Xt=`window`;function Zt(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function Qt(e){let t=new Set;for(let n of e){if(n===Xt)continue;let e=Zt(n);e&&t.add(e)}return t}function $t(e,t){let n=t??e.options.scrollRestoration,r=e._scroll;n&&(r.restoring=!0);let i=e.options.getScrollRestorationKey||Jt,a=new Set,o=e=>{let t=Kt[e]||={};for(let e of a)e===document?t[Xt]={scrollX,scrollY}:e.isConnected&&(t[I(e)]={scrollX:e.scrollLeft,scrollY:e.scrollTop})};n&&!r.restoration&&(r.restoration=!0,Yt=!1,history.scrollRestoration=`manual`,document.addEventListener(`scroll`,e=>{Yt||a.add(e.target)},!0),e.subscribe(`onBeforeLoad`,e=>{e.fromLocation&&o(i(e.fromLocation)),a.clear()}),addEventListener(`pagehide`,()=>{o(i(e.stores.resolvedLocation.get()??e.stores.location.get())),Gt()})),!r.reset&&(r.reset=!0,e.subscribe(`onRendered`,t=>{let n=e.options.scrollRestorationBehavior,o=e.options.scrollToTopSelectors,s=r.next,c=r.hash,l;if(a.clear(),r.next=!0,r.hash=!1,typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))return;let u=i(t.toLocation),d=t.fromLocation&&i(t.fromLocation);if(r.restoring&&d&&d!==u){let e=Kt[d];if(e){let t=Kt[u];for(let n in e){if(n===Xt){if(s)continue}else{let e=Zt(n);if(!e||s&&o&&(l??=Qt(o),l.has(e)))continue}t||=Kt[u]={},t[n]??=e[n]}}}Yt=!0;try{let e=t.toLocation.hash,i=t.toLocation.state.__hashScrollIntoViewOptions??!0,a=!1;if(s){!e&&o&&(l??=Qt(o));let t=e&&i&&c,s=r.restoring?Kt[u]:void 0;if(s)for(let e in s){let{scrollX:r,scrollY:i}=s[e];if(e===Xt){if(t)continue;scrollTo({top:i,left:r,behavior:n}),a=!0}else{let t=Zt(e);t&&(t.scrollLeft=r,t.scrollTop=i,l?.delete(t))}}if(!e){let e={top:0,left:0,behavior:n};if(a||scrollTo(e),l)for(let t of l)t.scrollTo(e)}}!a&&e&&i&&document.getElementById(e)?.scrollIntoView(i)}finally{Yt=!1}}))}function en(e,t=String){let n;for(let r in e){let i=e[r];i!==void 0&&(n||=new URLSearchParams).set(r,t(i))}return n?n.toString():``}function tn(e){return e?e===`false`?!1:e===`true`?!0:e*0==0&&+e+``===e?+e:e:``}function nn(e){let t=new URLSearchParams(e),n=Object.create(null);for(let[e,r]of t.entries()){let t=n[e];t==null?n[e]=tn(r):Array.isArray(t)?t.push(tn(r)):n[e]=[t,tn(r)]}return n}var rn=/^(?:\s|["[{\d-]|fa|nu|tr)/,an=sn(JSON.parse),on=cn(JSON.stringify,JSON.parse);function sn(e){let t=e===JSON.parse;return n=>{n[0]===`?`&&(n=n.substring(1));let r=nn(n);for(let n in r){let i=r[n];if(typeof i==`string`){if(t&&!rn.test(i))continue;try{r[n]=e(i)}catch{}}}return r}}function cn(e,t){let n=t===JSON.parse;function r(r){if(r&&typeof r==`object`)try{return e(r)}catch{}else if(t&&typeof r==`string`){if(n&&!rn.test(r))return r;try{return t(r),e(r)}catch{}}return r}return e=>{let t=en(e,r);return t?`?${t}`:``}}var ln=`__root__`;function un(e){e.statusCode=e.statusCode||e.code||307;let t=new Headers(e.headers);e.href&&t.get(`Location`)===null&&t.set(`Location`,e.href);let n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function dn(e){return e instanceof Response&&!!e.options}function fn(e){let t=new Map,n,r;return{get(e){let n=t.get(e);if(n)return n.visited=!0,n.value},set(i,a){let o=t.get(i);if(o){o.value=a;return}if(t.size>=e){let e=n?.next().value;for(;!e||e.visited;)e?e.visited=!1:n=t.values(),e=n.next().value;e===r&&(n=void 0),t.delete(e.key)}let s={key:i,value:a,visited:!1};r=s,t.set(i,s)},clear(){t.clear(),n=void 0,r=void 0}}}var pn=4,mn=5;function hn(e){let t=e.names;if(t)return t;let n=[];for(let t of e)typeof t!=`string`&&n.push(t[1]);return e.names=n}function gn(e,t,n){let r=e.substring(t,n);if(r.charCodeAt(0)===36)return r.length===1?[2,`_splat`,``,void 0]:[1,r.substring(1),``,``];let i=r.indexOf(`{`);if(i>=0){let a=r.indexOf(`}`,i),o=r.charCodeAt(i+1)===45,s=i+(o?3:2);if(a>=0&&r.charCodeAt(s-1)===36&&(!o||s!e.parse&&e.caseSensitive===_&&e.prefix===d&&e.suffix===g);if(y)c=y;else{let e=yn(r,t,_,d,g);c=e,v.push(e),v.length===2&&i?.push(v)}}r=c}m&&h=0;e--){let n=i.wildcard[e],{prefix:r,suffix:a}=n;if(!r||!_&&(n.caseSensitive?v:y??=v.toLowerCase()).startsWith(r)){if(a){if(_)continue;let e=t.slice(u).join(`/`),i=e.slice(-a.length);if((n.caseSensitive?i:i.toLowerCase())!==a||e.length-a.length=0;t--){let n=i.optional[t];s.push({node:n,index:u,skipped:e,statics:f,dynamics:p,optionals:m,extract:h,rawParams:g})}if(!_)for(let e=i.optional.length-1;e>=0;e--){let t=i.optional[e],{prefix:n,suffix:r}=t;if(n||r){let e=t.caseSensitive?v:y??=v.toLowerCase();if(n&&!e.startsWith(n)||r&&e.indexOf(r,e.length-r.length)=0;e--){let t=i.dynamic[e],{prefix:n,suffix:r}=t;if(n||r){let e=t.caseSensitive?v:y??=v.toLowerCase();if(n&&!e.startsWith(n)||r&&e.indexOf(r,e.length-r.length)=0;e--){let t=i.pathless[e];s.push({node:t,index:u,skipped:d,statics:f,dynamics:p,optionals:m,extract:h,rawParams:g})}}if(l)return l;if(r&&c){let n=c.index;for(let e=0;ee.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((t.node.kind===pn)>(e.node.kind===pn)||t.node.kind===pn==(e.node.kind===pn)&&t.node.depth>e.node.depth)))}function Pn(e,t,n){let r=Nt(e),i=`/${r}`,a=t?i:i.toLowerCase(),o=`${a}/`,s={input:({url:e})=>{let n=t?e.pathname:e.pathname.toLowerCase();return n===a?e.pathname=`/`:n.startsWith(o)&&(e.pathname=e.pathname.slice(i.length)),e},output:({url:e})=>(e.pathname=At(`/${r}${e.pathname}`),e)};return n?{input:({url:e})=>Fn(n,s.input({url:e})),output:({url:e})=>s.output({url:In(n,e)})}:s}function Fn(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function In(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function Ln(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i}=t,a=new Map,o=n(`idle`),c=n(e),l=n(void 0),u=n([]),d=r(()=>u.get().map(e=>a.get(e).get())),f=r(()=>({status:o.get(),isLoading:o.get()===`pending`,matches:d.get(),location:c.get(),resolvedLocation:l.get()}));function p(e){let t=a.get(e);return t||(t=n(void 0),a.set(e,t)),t}let m={status:o,location:c,resolvedLocation:l,ids:u,matches:d,byRoute:a,__store:f,getMatchStore:p,setMatches:h};function h(e){let t=u.get(),n=e.map(e=>e.routeId);i(()=>{s(t,n)||u.set(n);for(let e of t)n.includes(e)||a.get(e).set(()=>void 0);for(let t of e){let e=p(t.routeId);e.get()!==t&&e.set(t)}})}return m}var Rn=`__TSR_index`,zn=`popstate`,Bn=`beforeunload`,Vn=/^[\x00-\x20]*(?:[\\/][\t\n\r]*){2,}/;function Hn(e){let t=Vn.exec(e);return t?`/`+e.slice(t[0].length):e}function Un(e){return/[\x00-\x1f\x7f]/.test(e)&&(e=e.replace(/[\x00-\x1f\x7f]/g,e=>` -\r`.includes(e)?``:encodeURIComponent(e))),Hn(e)}function Wn(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=qn(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[Rn];i=Gn(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[Rn];i=Gn(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t,n?.ignoreBlocker??!1),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[Rn]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r,_getBlockers:()=>e.getBlockers?.()??[]}}function Gn(e,t){let n=Jn();return{...t,key:n,__TSR_key:n,[Rn]:e}}function Kn(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=t=>Un(e?.createHref?e.createHref(t):t),c=e?.parseLocation??(()=>qn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=Jn();t.history.replaceState({[Rn]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_=()=>{g&&(S._ignoreSubscribers=!0,(g[2]?t.history.pushState:t.history.replaceState)(g[1],``,g[0]),S._ignoreSubscribers=!1,g=void 0,u=void 0)},v=(t,n,r)=>{let i=e?.createHref?s(n):void 0,a=!!g;a||(u=l),l=qn(n,r),g=[i??l.href,r,g?.[2]||t],a||queueMicrotask(()=>_())},y=e=>{l=c(),S.notify({type:e})},b=async()=>{if(m=!1,f){f=!1;return}let e=c(),n=e.state[Rn]-l.state[Rn],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let r=a();if(typeof document<`u`&&r.length){for(let i of r)if(await i.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(-n),S.notify(u);return}}}l=c(),S.notify(u)},x=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},S=Wn({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>v(!0,e,t),replaceState:(e,t)=>v(!1,e,t),back:e=>(e&&(p=!0,m=!0),t.history.back()),forward:e=>{e&&(p=!0,m=!0),t.history.forward()},go:(e,n)=>{d=!0,n&&(p=!0,m=!0),t.history.go(e)},createHref:e=>s(e),flush:_,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Bn,x,{capture:!0}),t.removeEventListener(zn,b)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return S._ignoreNextBeforeUnload=e=>{m=!1;try{e=new URL(e,t.document.baseURI).href,m=/^https?:/.test(e)&&(!e.includes(`#`)||e.split(`#`)[0]!==t.location.href.split(`#`)[0])}catch{}},t.addEventListener(Bn,x,{capture:!0}),t.addEventListener(zn,b),t.history.pushState=function(...e){let r=n.apply(t.history,e);return S._ignoreSubscribers||y(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return S._ignoreSubscribers||y(`REPLACE`),n},S}function qn(e,t){let n=Un(e),r=n.indexOf(`#`),i=n.indexOf(`?`);if(!t){let e=Jn();t={[Rn]:0,key:e,__TSR_key:e}}return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t}}function Jn(){return(Math.random()+1).toString(36).substring(7)}function Yn(e,t){return e.protocol!==`http:`&&e.protocol!==`https:`||e.origin!==t||!!e.username||!!e.password}function Xn(e){return e.pathname+e.search+e.hash}function Zn(e){return e.options.loader||e.options.beforeLoad||e.lazyFn||e.options.component?.preload||e.options.pendingComponent?.preload}function Qn(e,t){return{fromLocation:t,toLocation:e,pathChanged:t?.pathname!==e.pathname,hrefChanged:t?.href!==e.href,hashChanged:t?.hash!==e.hash}}function $n({key:e,__TSR_key:t,__TSR_index:n,__hashScrollIntoViewOptions:r,...i}){return i}function er(e){return e.findIndex(e=>e.status===`error`||e.status===`notFound`||e._notFound)+1}function tr(e,t,n,r,i,a){r&&(t=t.slice(0,r)),i&&(n=n.slice(0,i));for(let r of t){if(a&&e._tx!==a)return;n.some(e=>e.routeId===r.routeId)||e.routesById[r.routeId].options.onLeave?.(r)}for(let r of n){if(a&&e._tx!==a)return;e.routesById[r.routeId].options[t.some(e=>e.routeId===r.routeId)?`onStay`:`onEnter`]?.(r)}}var nr=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this._scroll={next:!0},this.subscribers=new Set,this._cache=new Map,this._committed=[],this.startTransition=async e=>(e(),!1),this.update=e=>{let t=this.options;this.options={...t,...e},this.isServer=this.options.isServer??!1??typeof document>`u`,this.staticLocations=new WeakMap,this.protocolAllowlist=new Set(this.options.protocolAllowlist),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history?this.options.history:Kn()),this.origin=this.options.origin,this.origin||=window?.origin&&window.origin!==`null`?window.origin:`http://localhost`;let n=this.options.basepath??`/`,r=this.options.rewrite,i=this.basepath!==n||t?.rewrite!==r||t?.caseSensitive!==this.options.caseSensitive;if(i&&(this.basepath=n,this.rewrite=n!==`/`&&Nt(n)?Pn(n,this.options.caseSensitive,r):r),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;e=this.buildRouteTree(),this.setRoutes(e)}if(this.stores)i&&this.stores.location.set(this.latestLocation);else if(this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=Ln(this.latestLocation,e),$t(this)}},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=wn(this.routeTree,this.options.caseSensitive);return this.options.routeMasks&&bn(this.options.routeMasks,e.processedTree),{...e,resolvePathCache:fn(1e3)}},this.subscribe=(e,t)=>{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{for(let t of this.subscribers)if(t.eventType===e.type)try{t.fn(e)}catch(e){console.error(e)}},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i},a)=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),s=this.options.stringifySearch(i);return{href:e+s+r,publicHref:e+s+r,pathname:b(e),external:!1,searchStr:s,search:o(t?.search,i),hash:b(r.slice(1)),state:w(t?.state,a)}}let s=Fn(this.rewrite,new URL(i,this.origin)),c=this.options.parseSearch(s.search),l=this.options.stringifySearch(c);return s.search=l,{href:s.href.replace(s.origin,``),publicHref:i,pathname:b(Hn(s.pathname)),external:!!this.rewrite&&Yn(s,this.origin),searchStr:l,search:o(t?.search,c),hash:b(s.hash.slice(1)),state:w(t?.state,a)}},r=n(e,e.state),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i,{...i.state,__tempLocation:void 0,key:r.state.key,__TSR_key:r.state.__TSR_key});return e.maskedLocation=r,e}return r},this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>{let t=Object.create(null),n=Cn(Mt(e),this.processedTree,!0);return n&&Object.assign(t,n.rawParams),[n?.branch||[this.routesById.__root__],t,n?.route]},this.buildLocation=e=>{{let t=this.staticLocations.get(e);if(t)return t}let t=!1,n=(n={})=>{if(n.href){let e=qn(n.href,{});n={...n,to:Fn(this.rewrite,new URL(e.pathname,this.origin)).pathname,search:this.options.parseSearch(e.search),hash:e.hash.slice(1)}}let r=n._fromLocation||this._pendingLocation||this.latestLocation,i,a=()=>(t=!0,r),o=()=>(t=!0,i??=this.matchRoutesLightweight(r)),s=n.to?`${n.to}`:`.`,c=Ft(s[0]===`/`?``:n.unsafeRelative===`path`?a().pathname:n.from??o()[1],s,this.options.trailingSlash,this.resolvePathCache),l=this.routesByPath[Mt(c)],d=c.includes(`$`),f;if(l)f=l._branch??=Dn(l);else if(d)f=[];else{let[e,t,n]=this.getMatchedRoutes(c);f=e,this.options.notFoundRoute&&(!n||n.path!==`/`&&t[`**`])&&(f=[...f,this.options.notFoundRoute])}let p=d?l?._interpolation??_n(!1,{fullPath:c},0):void 0,h;for(let e of f){let t=e.options.params?.stringify??e.options.stringifyParams;if(t){let e=o()[3];if(h??=sr(n.params,e),!u(h))break;h===e&&(h=Object.assign(_(),h));try{Object.assign(h,t(h))}catch{}}}h??=sr(n.params,cr(n.params,p)?o()[3]:lr);let g=e.leaveParams?c:Hn(b(p?zt(c,p,h,this.pathParamsDecoder):c)),v=ur(f,e._includeValidateSearch),y=()=>{let t=o()[2];if(e._includeValidateSearch&&this.options.search?.strict){let e={};f.forEach(n=>{if(n.options.validateSearch)try{Object.assign(e,or(n.options.validateSearch,{...e,...t}))}catch{}}),t=e}return t},x=v.length?dr(v,y(),n):n.search===!0?y():typeof n.search==`function`?n.search(y()):n.search||lr,S=this.options.stringifySearch(x),C=n.hash===!0?a().hash:typeof n.hash==`function`?n.hash(a().hash):n.hash||void 0,w=C?`#${C}`:``,T=n.state?n.state===!0?a().state:typeof n.state==`function`?n.state(a().state):n.state:lr,E=`${g}${S}${w}`,D,O,ee=!1;if(this.rewrite){let e=new URL(E,this.origin),t=e.origin,n=In(this.rewrite,e);D=Xn(e),Yn(n,t)?(O=n.href,ee=!0):O=Hn(Xn(n))}else D=m(E),O=D;return{publicHref:O,href:D,pathname:g,search:x,searchStr:S,state:T,hash:C??``,external:ee,unmaskOnReload:n.unmaskOnReload}},r=n(e);if(e.mask)r.maskedLocation=n({from:e.from,...e.mask});else if(this.options.routeMasks){let t=xn(r.pathname,this.processedTree);if(t){let i=Object.assign(_(),t.rawParams),{from:a,params:o,...s}=t.route,c=sr(o,i);r.maskedLocation=n({from:e.from,...s,params:c})}}return!t&&e._fromLocation&&!r.maskedLocation&&this.staticLocations.set(e,r),r},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r=n.maskedLocation??n;if(r.external)return rr(this,r.publicHref,{replace:n.replace,ignoreBlocker:t});let i,a=Mt(this.latestLocation.href)===Mt(n.href)&&c($n(n.state),$n(this.latestLocation.state)),o=this._commitPromise,s,l=new Promise(e=>{s=e});if(l.resolve=()=>{s(),o?.resolve()},this._commitPromise=l,a)this.load();else{let{maskedLocation:r,hashScrollIntoView:a,...o}=n;r&&(o={...r,state:{...r.state,__tempKey:void 0,__tempLocation:{...o,search:o.searchStr,state:{...o.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(o.unmaskOnReload??this.options.unmaskOnReload??!1)&&(o.state.__tempKey=this.tempLocationKey)),o.state={...o.state,__hashScrollIntoViewOptions:a??this.options.defaultHashScrollIntoView??!0},this.shouldViewTransition=e,i=n.replace?`REPLACE`:`PUSH`,this.history[i===`REPLACE`?`replace`:`push`](o.publicHref,o.state,{ignoreBlocker:t}),this.history.subscribers.size||this.load({action:{type:i}})}return this._scroll.next=n.resetScroll??!0,this._commitPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,...a}={})=>{let o=this.buildLocation({...a,_includeValidateSearch:!0});this._pendingLocation=o;let s=this.commitLocation({...o,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return queueMicrotask(()=>{this._pendingLocation===o&&(this._pendingLocation=void 0)}),s},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=n?l(n):void 0;if(a||t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i}),a=t.maskedLocation??t;n??=a.publicHref,r??=a.publicHref}let t=!a&&r?r:n;return rr(this,t,i)}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.load=async e=>{this.updateLatestLocation(),e?.action&&(this._scroll.hash=e.action.type===`PUSH`||e.action.type===`REPLACE`),await ri(this,e)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&window.CSS?.supports?.(`selector(:active-view-transition-type(a))`)){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(Qn(r,i)):t.types;if(a===!1)return e();n={update:e,types:a}}else n=e;return document.startViewTransition(n).updateCallbackDone}return e()},this.invalidate=e=>{let t=this._committed,n=e?.filter,r=this._preloads,i=new Set,a=e=>{(!n||n(e))&&i.add(e.id)};t.forEach(a),this._cache.forEach(a),r?.forEach(e=>e.forEach(a)),this._tx?.[3].forEach(a);let o=[];for(let[e,t]of r??[])t.some(e=>i.has(e.id))&&(r.delete(e),o.push(e));let s=t=>{if(i.has(t.id)){let n=this.routesById[t.routeId],r={...t,invalid:!0,...(e?.forcePending||t.status===`error`||t.status===`notFound`)&&Zn(n)?{status:`pending`,error:void 0}:void 0};return t._flight=void 0,r}return t};this._committed=t.map(s);for(let[t,n]of this._cache)i.has(t)&&(n.invalid=!0,e?.forcePending&&(n.status=`pending`));for(let e of i)this._flights?.delete(e);for(let e of o)e.abort();return this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.resolveRedirect=e=>{let t=e.options,n=e.headers.get(`Location`)||t.href;if(!n){let e=this.buildLocation(t);n=(e.maskedLocation??e).publicHref||`/`}let r;if(C.test(n)||(r=l(n))&&!this.protocolAllowlist.has(r))throw Error(`Redirect blocked: unsafe protocol`);if(r===`http:`||r===`https:`){let e=new URL(n);e.pathname.startsWith(`//`)?n=e.href:Yn(e,this.origin)||(n=Xn(e),r=void 0)}return r&&(t.reloadDocument=!0),t.href=n,e.headers.set(`Location`,n),e},this.clearCache=e=>{let t=this._cache,n=this._preloads,r=e?.filter,i=[],a=[];for(let[e,n]of t)(!r||r(n))&&(a.push(e),i.push(n));let o=[];for(let[e,t]of n??[])(!r||t.some(r))&&(o.push(e),i.push(...t));for(let e of a)t.delete(e);for(let e of o)n.delete(e);for(let e of i){let t=e._flight;e._flight=void 0,t&&!--t[2]&&(this._flights?.get(e.id)===t&&this._flights.delete(e.id),o.push(t[1]))}for(let e of o)e.abort()},this.loadRouteChunk=gr,this.preloadRoute=e=>ii(this,e),this.matchRoute=(e,t)=>{let n={...e,to:e.to?Ft(e.from||``,e.to,this.options.trailingSlash,this.resolvePathCache):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n),i=this.stores.status.get()===`pending`;if(t?.pending&&!i)return!1;let a=t?.pending??!i?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),o=Sn(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,a.pathname,this.processedTree);return!o||e.params&&!c(o.rawParams,e.params,!0)?!1:t?.includeSearch??!0?c(a.search,r.search,!0)?o.rawParams:!1:o.rawParams},this.getStoreConfig=t,e.pathParamsAllowedCharacters?.length&&(this.pathParamsDecoder=It(e.pathParamsAllowedCharacters)),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??on,parseSearch:e.parseSearch??an,protocolAllowlist:e.protocolAllowlist??p}),self.__TSR_ROUTER__=this}isShell(){return!!this.options.isShell}get state(){return this.stores.__store.get()}setRoutes(e){Object.assign(this,e),this.lightweightCache=new WeakMap,this.staticLocations=new WeakMap;let t=this.options.notFoundRoute;t&&(t.init(99999999999),this.routesById[t.id]!==t&&(t._interpolation=_n(!1,t,0)),this.routesById[t.id]=t)}matchRoutesInternal(e,t){let[n,r,i]=this.getMatchedRoutes(e.pathname),a=n,s=!1;(i?i.path!==`/`&&r[`**`]:Mt(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:s=!0);let c=s?fr(this.options.notFoundMode,a):void 0,l=Array(a.length),u=this._committed,d=(e,t)=>{let n=u[t];return n?.routeId===e.id?n:e===this.options.notFoundRoute?u.find(t=>t.routeId===e.id):void 0},f;for(let n=0;ntypeof t!=`string`&&!v.call(e,t[1]))}var lr=Object.freeze({});function ur(e,t){let n=[];for(let r=0;r{let n=t(i.preSearchFilters?i.preSearchFilters.reduce((e,t)=>t(e),e):e);return i.postSearchFilters?i.postSearchFilters.reduce((e,t)=>t(e),n):n});let a=i.validateSearch;t&&a&&n.push(({search:e,next:t,meta:n})=>{let r=t(e);try{let e=or(a,r);if(n&&e)for(let t in e)t in r||(n.defaulted||=new Map).set(t,e[t]);return{...r,...e}}catch{}return r})}return n}function dr(e,t,n){let r=(t,i,a)=>{if(t>=e.length){if(!n.search)return{};if(n.search===!0)return i;let e=S(n.search,i);return a&&(a.explicit=e),e}return e[t]({search:i,next:(e,n)=>{if(n){let n=a||{};return{search:r(t+1,e,n),meta:n}}return r(t+1,e,a)},meta:a})};return r(0,t)}function fr(e,t){if(e!==`root`){let e;for(let n=t.length-1;n>=0;n--){let r=t[n];if(r.options.notFoundComponent)return r.id;e||=r.children&&r.id}if(e)return e}return ln}function pr(e,t){let n=e.options.params?.parse??e.options.parseParams;n&&Object.assign(t,n(t))}function mr(e,t){return e.options[t]?.preload?.()}function hr(e,t){let n=mr(e,`component`),r=mr(e,`pendingComponent`);return t&&(r?r=r.then(t):t()),n&&r?Promise.all([n,r]).then(()=>{}):n??r}function gr(e,t,n){let r=()=>t===!1?void 0:t?mr(e,t):hr(e,n),i=e._lazy;if(i)return i===!0?r():i.then(r);if(!e.lazyFn)return r();let a=e.lazyFn().then(t=>{{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazy=!0}},t=>{throw e._lazy=void 0,t});return e._lazy=a,a.then(r)}function _r(e){let t=e.findIndex(e=>e.status!==`success`||e._notFound)+1;return t&&t{let i=()=>r(t);t.addEventListener(`abort`,i,{once:!0}),Promise.resolve(e).then(n,r).then(()=>t.removeEventListener(`abort`,i))})}function Tr(e,t){return e.routesById[t.routeId]}function Er(e,t,n){return dn(e)?[xr,e]:Bt(e)?(e.routeId||=n,[br,e]):t?(typeof e?.then==`function`&&(e=Error(`A Promise was thrown`,{cause:e})),[yr,e]):[vr,e]}function Dr(e,t){let n=Er(t,!0,e.id);if(n[0]!==yr)return n;try{e.options.onError?.(n[1])}catch(t){n=Er(t,!0,e.id)}return n}function Or(e,t,n,r,i){return i[0].signal.aborted?Sr:Wr(e,t,n,Dr(n,r),i)}async function kr(e,t,n,r,i,a){let[o,s]=t,c=n[0].signal,l=!!n[3];for(let i=n[6]??0;ie.navigate({...t,_fromLocation:o}),buildLocation:e.buildLocation,cause:l?`preload`:r.cause,abortController:n[0],preload:l,matches:s,routeId:u.id};try{let e=r._ctx||=u.options.context?u.options.context({...f,deps:r.loaderDeps,context:d})||{}:void 0;r.context={...d,...e}}catch(a){return jr(e,r),[i,Or(e,t,u,a,n)]}if(c.aborted)return[i,Sr];let p=r.paramsError??r.searchError;if(p!==void 0)return jr(e,r),[i,Or(e,t,u,p,n)];let m=u.options.beforeLoad;if(!m)continue;let h=r.status;i>=a&&(r.status=`pending`,n[7]?.());try{Pr(e,r,`beforeLoad`,n[0]);let a=m({...f,search:r.search,context:r.context,...e.options.additionalContext}),o=await(typeof a?.then==`function`?wr(a,c):a);if(c.aborted)return[i,Sr];let s=Wr(e,t,u,Er(o,!1,u.id),n);if(s[0]!==vr)return jr(e,r),[i,s];r.context={...r.context,...o}}catch(a){return jr(e,r),[i,Or(e,t,u,a,n)]}finally{r.status=h,Pr(e,r,!1,n[0])}}i()}function Ar(e,t,n){if(!(!n||--n[2])){if(e._flights?.get(t.id)===n){let n=e._tx;if(n&&!n[0].signal.aborted&&!n[3].includes(t)&&n[3].some(e=>e.id===t.id)&&n[3].some(e=>e.isFetching===`beforeLoad`))return;e._flights.delete(t.id)}return n[1]}}function jr(e,t){let n=t._flight;t._flight=void 0,Ar(e,t,n)?.abort()}function Mr(e,t,n,r){let i=[];for(let a of t)if(!n?.includes(a)){let t=a._flight;if(a._flight=void 0,r&&t?.[2]===1&&e._flights?.get(a.id)===t&&n?.some(e=>e.id===a.id))t[2]=0;else{let n=Ar(e,a,t);n&&i.push(n)}}for(let e of i)e.abort()}function Nr(e){for(let t of e){let e=t._flight;e&&e[2]++}}function Pr(e,t,n,r){if(t.isFetching=n,r&&e._tx?.[0]!==r)return;let i=e.stores.byRoute.get(t.routeId),a=i?.get();a?.id===t.id&&i.set({...a,isFetching:n})}function Fr(e,t,n,r,i,a,o){let s=t[0];return{params:n.params,location:s,navigate:t=>e.navigate({...t,_fromLocation:s}),cause:o?`preload`:n.cause,abortController:i,preload:o,deps:n.loaderDeps,parentMatchPromise:a,context:n.context,route:r,...e.options.additionalContext}}async function Ir(e,t,n,r,i,a,o){let s=o[0],c=s.signal;if(c.aborted)return Sr;if(!i)return[vr,void 0];let l=n._flight;Pr(e,n,`loader`,s);try{if(!l){let s=new AbortController;l=[Promise.resolve().then(()=>i(Fr(e,t,n,r,s,a,!!o[3]))).then(e=>Er(e,!1,r.id),e=>Er(e,!0,r.id)).then(t=>(t[0]!==vr&&e._flights?.get(n.id)===l&&(e._flights.delete(n.id),l[2]||s.abort()),t[0]===yr&&l[2]?Dr(r,t[1]):t)),s,1],(e._flights??=new Map).set(n.id,l)}return n._flight=l,n.abortController=l[1],Wr(e,t,r,await wr(l[0],c),o)}catch(t){if(t!==c||!c.aborted)throw t;return jr(e,n),Sr}finally{Pr(e,n,!1,s)}}function Lr(e,t,n){t[0]!==xr&&(e.status=`success`,e.error=void 0,t[0]===vr?(e.loaderData=t[1],e.invalid=!1,e.updatedAt=Date.now(),e.preload=n):e.invalid=!0)}function Rr(e,t,n){let r=e._cache.get(t.id);if(r!==n||e._committed.some(e=>e.id===t.id&&e._flight===t._flight))return;let i={...t,_notFound:void 0,context:{}};i._flight&&i._flight[2]++,e._cache.set(t.id,i),r&&jr(e,r)}function zr(e,t){return t[0]===yr||t[0]===br?{...e,status:t[0]===yr?`error`:`notFound`,error:t[1],_flight:void 0}:e}function Br(e,t,n,r,i,a,o){let s=t[1][n],c=Tr(e,s),l=!!a[3],u=e._cache.get(s.id),d,f=!1,p;try{if(s.status===`success`&&(d=c.options.shouldReload,typeof d==`function`&&(d=d(Fr(e,t,s,c,a[0],i,l))),a[0].signal.aborted&&(p=Sr)),!p){if(s.status!==`success`)f=!0;else{let t=l||s.preload?c.options.preloadStaleTime??e.options.defaultPreloadStaleTime??3e4:c.options.staleTime??e.options.defaultStaleTime??0;f=!!(s.invalid||d||d===void 0&&Date.now()-s.updatedAt>=t&&(a[5]||s.cause===`enter`||a[2].some(e=>e.routeId===s.routeId&&e.id!==s.id)))}}}catch(n){s.invalid=!0,jr(e,s),p=Or(e,t,c,n,a)}let m=c.options.loader,h=typeof m==`function`,g=h?m:m?.handler,_=!l||c.options.preload!==!1,v=_&&m?e._flights?.get(s.id):void 0;v===s._flight||p?v=void 0:v&&!f&&!l&&d===void 0?f=!0:f||(v=void 0);let y=!(!m||!f||s.status!==`success`||l||a[4]||((h?void 0:m.staleReloadMode)??e.options.defaultStaleReloadMode)===`blocking`),b=f&&_,x=b&&!y&&(s.status!==`success`||!!m),S=n>=o?a[7]:void 0,C=c.lazyFn&&c._lazy!==!0?S:void 0;if(b&&!m&&(s.invalid=!1,s.updatedAt=Date.now()),v&&v[2]++,x){let t=s._flight;s._flight=v,Ar(e,s,t)?.abort(),n>=o&&(s.status=`pending`),S?.()}b||(s.isFetching=!1);let w=!p&&x?Ir(e,t,s,c,g,i,a).then(t=>(Lr(s,t,l),t[0]===vr&&(m&&!a[0].signal.aborted&&Rr(e,s,u),n>=o&&(s.status=`pending`)),t)):Promise.resolve(p??[vr,s.loaderData]),T=(async()=>{try{let e=gr(c,void 0,C);e&&await wr(e,a[0].signal)}catch(r){if(!t[1].some((e,t)=>t<=n&&(e.status===`error`||e.status===`notFound`||e._notFound)))return[n,Or(e,t,c,r,a)]}let r=await w;x&&r[0]===vr&&s.status===`pending`&&!a[0].signal.aborted&&(s.status=`success`,S?.())})();if(r.push([n,w,T]),!y)return w.then(e=>zr(s,e));let E={...s,status:`pending`,preload:!1,_flight:v};s.invalid=!1,s.isFetching=`loader`;let D=Ir(e,t,E,c,g,i,a).then(e=>(s.isFetching=!1,Lr(E,e,!1),e));return(t[2]??=[]).push([n,D,T,E]),D.then(e=>zr(E,e))}async function Vr(e,t,n,r,i=0){let a=n?.[1][1],o=a?.routeId?t.findIndex(e=>e.routeId===a.routeId):n?.[0]??t.length-1;o<0&&(o=0);for(let n=o;n>=0;n--){let i=Tr(e,t[n]);try{let e=gr(i,!1);e&&await wr(e,r)}catch(e){if(e===r&&r.aborted)throw e}if(i.options.notFoundComponent)return n}return a?.routeId?o:i}function Hr(e,t){t[2]&&=(Mr(e,t[2].map(e=>e[3])),void 0)}async function Ur(e,t,n,r){let i;try{await Promise.all(e.map(e=>e[1].then(async t=>{let a=e[0];if(!(r&&a>=await r)){if(t[0]>=xr)throw[a,t];!i&&t[0]!==vr&&(i=[a,t],await Promise.all((n??[]).map(e=>{if(!(e[0]<=a))return e[1].then(t=>{if(t[0]===xr)throw[e[0],t]})})))}})))}catch(e){return e}return t??i}function Wr(e,t,n,r,i,a){for(;r[0]===xr;){let o=r[1],s=o.options;try{if((s.href||o.headers.has(`Location`))&&(e.resolveRedirect(o),s.reloadDocument)||(s.reloadDocument?i[3]:i[1]>=20))return r;let n=e.buildLocation({...s,_fromLocation:t[0],_includeValidateSearch:!0}),a=n.maskedLocation??n;if(a.external){let t=o.clone();return t.options={...s},t.headers.set(`Location`,a.publicHref),e.resolveRedirect(t),i[3]?[xr,t]:[xr,t,a]}return[xr,o,n]}catch(e){r=a?[yr,e]:Dr(n,e),a=!0}}return r}async function Gr(e,t,n,r,i,a){let o=t[1],s=await i,c=!1,l=o.findIndex(e=>e._notFound),u=t=>t[1][0]===br?Vr(e,o,t,r.signal):t[0],d=l<0?o.length:l;if((s?.[1][0]??0)>=xr)d=0;else if(s){d=s[2]??=await u(s);for(let e of n){if(e[0]>=d)break;let t=await e[1];if(t[0]!==vr&&t[0]=d)break;let t=await e[2];if(t){s=t;break}}if((s?.[1][0]??0)>=xr){let n=s[1];if(n[0]!==xr||n[1].options.reloadDocument||n[2])return Hr(e,t),n;c=!0,s=[0,[yr,Error(`Too many redirects`)]]}let f=s?s[2]??await u(s):l;if(f>=0){let i=s?.[1],l=i?.[0],u=o[f],d=i?.[1],p=()=>{i&&(u._notFound=void 0,l===yr?u.status=`error`:(d.routeId=u.routeId,u.routeId===e.routeTree.id?(u.status=`success`,u._notFound=!0):u.status=`notFound`),u.error=d,u.isFetching=!1)};p(),i||a?.();let m=Tr(e,u);try{await wr(i?Promise.resolve().then(()=>gr(m,l===yr?`errorComponent`:`notFoundComponent`)):Promise.all([gr(m),gr(m,`notFoundComponent`)]),r.signal)}catch(n){if(n===r.signal&&r.signal.aborted)return Hr(e,t),Sr}i?c&&(r.abort(),await Promise.all([...n.map(e=>e[1]),...n.map(e=>e[2]),...(t[2]??[]).map(e=>e[1])]),Hr(e,t),Mr(e,o),p()):u.status=`success`}return t}async function Kr(e,t,n,r=0,i=t[1].length){let a=t[1];for(let t=r;te._notFound);if(e.options.notFoundMode!==`root`&&s>=0){let t=await Vr(e,n,void 0,a,s);n[s]._notFound=void 0,n[t]._notFound=!0,s=t}let c=s<0?n.length:s+1,l=0;for(;l{for(let t=d;t=xr&&(c=0);p()}if(!a.aborted&&!r[3]){let t=[];for(let[n,r]of e._flights??[])r[2]||(e._flights.delete(n),t.push(r[1]));for(let e of t)e.abort()}let h=Gr(e,i,u,r[0],Ur(u,m,i[2]),r[7]);i[2]?.length&&(i[3]=Ur(i[2],void 0,void 0,h.then(e=>Cr(e)?0:_r(n).length,()=>0))),o=await h}catch(t){if(Hr(e,i),t===a&&a.aborted)return Sr;throw t}return Cr(o)?o:Kr(e,o,a,r[6]===n.length?r[6]:0)}function Jr(e,t){if(e._tx!==t)return;let n=t[3],r=e.stores.matches.get(),i=e._pending;for(let a=0;a0){i[3]=setTimeout(()=>Jr(e,t),n);return}i[2]=0}let m=n.map(e=>({...e,_flight:void 0}));m[a].status=`pending`;let h=i[4]=e.startTransition(()=>e.stores.setMatches(m),m).then(t=>(t&&e._pending===i&&i[4]===h&&!i[2]&&(i[2]=Date.now()+f),t));return}}function Yr(e,t){let n=e._pending;(e._tx===t||!e._tx?.[3].some(e=>e.id===n?.[1]))&&(clearTimeout(n?.[3]),e._pending=void 0)}async function Xr(e,t){let n=e._pending;if(!n)return;clearTimeout(n[3]);let r=n[2]-Date.now();if(!n[4]||r<=0||!_r(t[3]).some(e=>e.id===n[1]))return;let i;try{await wr(new Promise(e=>{i=setTimeout(e,r)}),t[0].signal)}catch{}clearTimeout(i)}function Zr(e,t){e._committed=t,e.stores.setMatches(t)}function Qr(e,t,n,r){let i=e._committed,a=e._lifecycleEnd,o=e._cache;for(let e of n)e.preload=!1,r&&(e._assetEnd=void 0);let s=_r(n).length,c=new Map;{let t=Date.now(),r=new Set;for(let e=0;e=(n.preload?i.options.preloadGcTime??e.options.defaultPreloadGcTime??3e5:i.options.gcTime??e.options.defaultGcTime??3e5)||c.set(n.id,o.get(n.id)===n?n:{...n,_flight:void 0,isFetching:!1,context:{}})}}t[3]=[],e._cache=c;let l=e._lifecycleEnd=er(n);Zr(e,n),Mr(e,[...o.values(),...i].filter(e=>e._flight&&c.get(e.id)!==e),n),tr(e,i,n,a,l,t)}async function $r(e,t){let n=e._tx;for(;n&&n!==t;)t=n,await n[5],n=e._tx}function ei(e,t,n){let r=n[1].options,i=n[2];if(!i)return e.navigate({...r,replace:!0,ignoreBlocker:!0});if(r.reloadDocument)return e.navigate({href:(i.maskedLocation??i).publicHref,reloadDocument:!0,replace:!0,ignoreBlocker:!0});i._redirects=t[1]+1,e._pendingLocation=i;let a=e.commitLocation({...i,viewTransition:r.viewTransition,replace:!0,resetScroll:r.resetScroll,hashScrollIntoView:r.hashScrollIntoView,ignoreBlocker:!0});return queueMicrotask(()=>{e._pendingLocation===i&&(e._pendingLocation=void 0)}),a}async function ti(e,t,n,r,i){let a=n.map(e=>({...e}));Nr(a);for(let t of r)jr(e,a[t[0]]),a[t[0]]=t[3];let o=[t[2],a],s;try{s=await Gr(e,o,r,t[0],i)}catch(t){throw Mr(e,a),t}if(Cr(s)){Mr(e,a),s[0]===xr&&e._tx===t&&e._committed===n&&await ei(e,t,s);return}if(await Kr(e,s,t[0].signal),e._tx!==t||e._committed!==n){Mr(e,a);return}for(let t of a){let n=e._cache.get(t.id);n?._flight&&n._flight===t._flight&&(e._cache.delete(t.id),jr(e,n))}Zr(e,a),Mr(e,n,a)}async function ni(e,t,n,r,i,a){let o=await qr(e,t[2],t[3],[t[0],t[1],e._committed,void 0,i,n,a,r]);if(Cr(o)){let n=o[0]===xr&&e._tx===t;if((!n||o[1].options.reloadDocument)&&Yr(e,t),Mr(e,t[3]),t[3]=[],!n)return;if(e._tx!==t){Yr(e,t);return}await ei(e,t,o);return}let s=o[1];if(e._tx===t&&await Xr(e,t),e._tx!==t){Yr(e,t),Mr(e,s),Hr(e,o);return}let c=t[2],l=Qn(c,e.stores.resolvedLocation.get()),u=o[2];await e.startViewTransition(async()=>{if(e._tx===t&&await Xr(e,t),e._tx!==t){Yr(e,t),Mr(e,s),Hr(e,o);return}let n=await e.startTransition(()=>{Yr(e,t),Qr(e,t,s,a),e._tx===t&&(e.emit({type:`onLoad`,...l}),e._tx===t&&e.emit({type:`onBeforeRouteMount`,...l}))},s);if(e._tx!==t){Hr(e,o);return}u?.length&&ti(e,t,s,u,o[3]).catch(console.error),e.batch(()=>{e.stores.resolvedLocation.set(c),e.stores.status.set(`idle`),e._tx===t&&e.emit({type:`onResolved`,...l}),n&&e._tx===t&&e.emit({type:`onRendered`,...l})}),e._tx===t&&(e._commitPromise?.resolve(),e._commitPromise=void 0)})}async function ri(e,t){let n=e._tx,r=e.stores.resolvedLocation.get(),i=r??e.stores.location.get(),a=e.latestLocation,o=e._pendingLocation,s=o?.href===a.href?o._redirects??0:0,c=e._handoff,l=c?.[0](),u=new AbortController,d=e._preflight;if(e._preflight=u,l||c?.[1](),d?.abort(),!u.signal.aborted){let t=Qn(a,r);e.emit({type:`onBeforeNavigate`,...t}),u.signal.aborted||e.emit({type:`onBeforeLoad`,...t})}if(u.signal.aborted){await $r(e,n);return}let f=i.href===a.href,p=u,m=e.matchRoutes(a,{_controller:u});Nr(m);let h=l?c[1](m):void 0;if(h?p=l:l?.abort(),u.signal.aborted){Mr(e,m),await $r(e,n);return}e._preflight=void 0;let g,_=()=>ni(e,y,f,()=>Jr(e,y),t?.sync,h),v=t?.sync?new Promise(e=>g=e):Promise.resolve().then(_),y=[p,s,a,m,Date.now(),v.then(()=>$r(e,y))];if(e._tx=y,n){for(let t of e.stores.matches.get()){if(e._tx!==y)break;t.isFetching&&Pr(e,t,!1)}n[0].abort(),Mr(e,n[3],y[3],!0)}if(e._tx!==y){Mr(e,y[3]),y[3]=[],g?.(),await $r(e,y);return}e.batch(()=>{e.stores.status.set(`pending`),e.stores.location.set(a)}),(h||!e._committed.length&&m[0]?.status!==`success`&&!m.some(e=>e._notFound))&&Jr(e,y),g?.(_()),await y[5]}async function ii(e,t){let n=e.buildLocation(t);for(let t=0;;t++){let r=e._committed,i=new AbortController,a,o,s;try{try{a=e.matchRoutes(n,{_controller:i}),Nr(a),o=(e._preloads??=new Map).set(i,a),s=await qr(e,n,a,[i,t,r,!0])}finally{o&&(o=o.delete(i),Mr(e,a)),i.abort()}if(!Cr(s))return s[1];if(!o||s.length<3)return;n=s[2]}catch(e){Bt(e)||console.error(e);return}}}var ai=`Error preloading route! ☝️`,oi=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e,this._branch=void 0;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=ln:this.parentRoute||T();let r=n?ln:t?.path;r&&r!==`/`&&(r=jt(r));let i=t?.id||r,a=n?ln:At((this.parentRoute.id===`__root__`?``:this.parentRoute.id)+`/`+(i??``));r===`__root__`&&(r=`/`);let o=a===`__root__`?`/`:r===void 0?this.parentRoute.fullPath:At(this.parentRoute.fullPath+`/`+r);this._path=r,this._id=a,this._fullPath=o,this._to=Mt(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>un({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},si=class extends oi{constructor(e){super(e)}},ci=class extends k.Component{constructor(...e){super(...e),this.state={error:0},this.reset=()=>{this.setState({error:0})}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:0}:{resetKey:n}}static getDerivedStateFromError(e){return{error:[e]}}componentDidCatch(e,t){this.props.onCatch?.(e,t)}render(){let e=this.state.error;return e?k.createElement(this.props.errorComponent??li,{error:e[0],reset:this.reset}):this.props.children}};function li({error:e}){let[t,n]=k.useState(!1);return(0,A.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,A.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,A.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,A.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,A.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,A.jsx)(`div`,{children:(0,A.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e?.message?(0,A.jsx)(`code`,{children:e.message}):null})}):null]})}var ui=()=>!0,di=()=>!1;function fi({children:e,fallback:t=null}){return(0,A.jsx)(k.Fragment,{children:pi()?e:t})}function pi(e=!0){return k.useSyncExternalStore(mi,ui,e?di:ui)}function mi(){return()=>{}}function hi({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(1)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(1)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function gi(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var _i=[],vi=0,{link:yi,unlink:bi,propagate:xi,checkDirty:Si,shallowPropagate:Ci}=hi({update(e){return e._update()},notify(e){_i[Ti++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,ki(e))}}),wi=0,Ti=0,Ei,Di=0;function Oi(e){try{++Di,e()}finally{--Di||Ai()}}function ki(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=bi(n,e)}function Ai(){if(!(Di>0)){for(;wi{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Ei,o=t?.compare??Object.is;if(n)Ei=i,++vi,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=5);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Ei=a,n&&(i.flags&=-5),ki(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&Si(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Ci(e)}}else e&32&&(i.flags=e&-33);return Ei!==void 0&&yi(i,Ei,vi),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(xi(e),Ci(e),Ai())}},i}function Mi(e){let t=()=>{let t=Ei;Ei=n,++vi,n.depsTail=void 0,n.flags=6;try{return e()}finally{Ei=t,n.flags&=-5,ki(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){let e=this.flags;e&16||e&32&&Si(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,ki(this)}};return t(),n}function Ni(e){return O({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Pi(e){let{select:t,...n}=e;return O({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function Fi(e){return O({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function Ii(e){return O({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Li(e){let t=g();return k.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function Ri(e){let t=g(),n=Li(),r=k.useRef(null);return kt(()=>{r.current!==e&&(n(e),r.current=e)},[t,e,n]),null}function zi(e){return O({...e,select:t=>e.select?e.select(t.context):t.context})}function Bi(...e){let t=k.useRef(e),n=t.current;return e.forEach((e,t)=>{c(n[t],e,!1,!0)||(n[t]=e)}),t.current}function Vi(e,t){e.preloadRoute(t).catch(e=>{console.warn(e),console.warn(ai)})}var Hi={compare:(e,t)=>e[0]===t[0]&&e[1]===t[1]};function Ui(e,t){let n=typeof e==`string`&&l(e);if(n)return t.has(n)?e:null}function Wi(e,t,n,r,i){let a=Pt(e.pathname,r),o=Pt(t.pathname,r);return(n?.exact?a!==o:!a.startsWith(o)||a.length!==o.length&&a[o.length]!==`/`)||(n?.includeSearch??!0)&&!c(e.search,t.search,!n?.exact,n?.explicitUndefined)?!1:!n?.includeHash||i&&e.hash===t.hash}function Gi(e,t,n){let r=g(),i=k.useRef(null),a=k.useCallback(e=>{if(i.current=e,typeof t==`function`)return t(e);t&&(t.current=e)},[t]),{activeOptions:o,to:s,preload:c,preloadDelay:u,hashScrollIntoView:d,replace:f,startTransition:p,resetScroll:m,viewTransition:h,ignoreBlocker:_,disabled:v,target:y,onClick:b,onBlur:S,onFocus:C,onMouseEnter:w,onMouseLeave:T,onTouchStart:E}=e,D=pi(!!o?.includeHash),[O,ee,te]=Bi(e.search,e.params,o),[ne,re]=k.useMemo(()=>[e,{...e}],[r,e.from,e._fromLocation,e.hash,e.to,O,ee,e.state,e.mask,e.unsafeRelative]),ie=k.useCallback(e=>{let t=Ui(s,r.protocolAllowlist);if(t!==void 0)return[t??void 0];ne._fromLocation||(re._fromLocation=e);let n=r.buildLocation(re),i=ea(n,r,v);return[i,!v&&(!i||l(i))?void 0:Wi(e,n,te,r.basepath,D)]},[te,v,D,ne,re,r,s]),[ae,A]=x(r.stores.location,ie,Hi),oe=A===void 0?ae:void 0,se=v||ae===void 0,ce=k.useRef(!1),le=e.reloadDocument||oe||se?!1:c??r.options.defaultPreload,ue=u??r.options.defaultPreloadDelay??0,de=k.useCallback(e=>{let t=e?.isIntersecting;if(!(t??le===`intent`)){t===!1&&Qi(i);return}if(!ue){Vi(r,ne);return}Zi.has(i)||Zi.set(i,setTimeout(()=>{Zi.delete(i),Vi(r,ne)},ue))},[r,ne,i,le,ue]);k.useEffect(()=>{le===`render`&&!ce.current&&(ce.current=!0,Vi(r,ne));let e;return le===`viewport`&&i.current&&typeof IntersectionObserver==`function`&&(e=new IntersectionObserver(e=>de(e.pop()),{rootMargin:`100px`}),e.observe(i.current)),()=>{e?.disconnect(),Qi(i)}},[r,ne,le,de,i]);let fe=Yi(e,n);if(fe.ref=t?a:i,oe)return fe.href=oe,fe;let pe=e=>{let t=y??e.currentTarget.getAttribute(`target`);!se&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(!t||t===`_self`)&&e.button===0&&(e.preventDefault(),r.navigate({...ne,replace:f,resetScroll:m,hashScrollIntoView:d,startTransition:p,viewTransition:h,ignoreBlocker:_}))},me=()=>{le===`intent`&&Vi(r,ne)},he=()=>{le===`intent`&&Qi(i)};return fe.onClick=$i(b,pe),fe.onBlur=$i(S,he),fe.onFocus=$i(C,de),fe.onMouseEnter=$i(w,de),fe.onMouseLeave=$i(T,he),fe.onTouchStart=$i(E,me),Xi(fe,e,A,ae,se,n)}var Ki={},qi={className:`active`},Ji=new Set([`to`,`params`,`search`,`hash`,`state`,`mask`,`from`,`unsafeRelative`,`_fromLocation`,`reloadDocument`,`preload`,`preloadDelay`,`preloadIntentProximity`,`hashScrollIntoView`,`replace`,`startTransition`,`resetScroll`,`viewTransition`,`ignoreBlocker`,`activeProps`,`inactiveProps`,`activeOptions`,`_asChild`]);function Yi(e,t){let n={};for(let r in e)Ji.has(r)||r===`type`&&t!==void 0||r===`disabled`&&t===`a`||(n[r]=e[r]);return n}function Xi(e,t,n,r,i,a){let{activeProps:o,inactiveProps:s,className:c,style:l,target:u}=t,d=S(n?o:s,{})??(n?qi:Ki);Object.assign(e,d),e.href=r,a!==`a`&&(e.disabled=i),e.target=u;let f=d.style;(l||f)&&(e.style=l&&f?{...l,...f}:l||f);let p=d.className;return(c||p)&&(e.className=c?p?`${c} ${p}`:c:p),i&&(e.role=`link`,e[`aria-disabled`]=!0),n&&(e[`data-status`]=`active`,e[`aria-current`]=`page`),e}var Zi=new WeakMap,Qi=e=>{clearTimeout(Zi.get(e)),Zi.delete(e)},$i=(e,t)=>e?n=>n.defaultPrevented||(e(n),n.defaultPrevented||t(n)):t;function ea(e,t,n){if(n)return;let r=e.maskedLocation??e,i=r.external?r.publicHref:t.history.createHref(r.publicHref)||`/`;if(!r.external&&i===r.publicHref||!h(i,t.protocolAllowlist))return i}var ta=k.memo(k.forwardRef((e,t)=>{let n=e._asChild||`a`,r=Gi(e,t,n),i=typeof e.children==`function`?e.children({isActive:r[`data-status`]===`active`}):e.children;return k.createElement(n,r,i)}),na);function na(e,t){let n=0;for(let r in t)if(n++,e[r]!==t[r]&&(!Ji.has(r)||!c(e[r],t[r],!1,!0)))return!1;for(let t in e)n--;return n===0}var ra=class extends oi{constructor(e){super(e),this.useMatch=e=>O({...e,from:this.id}),this.useRouteContext=e=>zi({...e,from:this.id}),this.useSearch=e=>Ii({...e,from:this.id}),this.useParams=e=>Fi({...e,from:this.id}),this.useLoaderDeps=e=>Pi({...e,from:this.id}),this.useLoaderData=e=>Ni({...e,from:this.id}),this.useNavigate=()=>Li({from:this.fullPath}),this.Link=k.forwardRef((e,t)=>(0,A.jsx)(ta,{ref:t,from:this.fullPath,...e}))}};function ia(e){return new ra(e)}var aa=class extends si{constructor(e){super(e),this.useMatch=e=>O({...e,from:this.id}),this.useRouteContext=e=>zi({...e,from:this.id}),this.useSearch=e=>Ii({...e,from:this.id}),this.useParams=e=>Fi({...e,from:this.id}),this.useLoaderDeps=e=>Pi({...e,from:this.id}),this.useLoaderData=e=>Ni({...e,from:this.id}),this.useNavigate=()=>Li({from:this.fullPath}),this.Link=k.forwardRef((e,t)=>(0,A.jsx)(ta,{ref:t,from:this.fullPath,...e}))}};function oa(e){return new aa(e)}function L(e,t){let n,r,i,a=()=>(n||=(i=void 0,e().then(e=>{n=void 0,o.preload=void 0,r=e[t??`default`]}).catch(e=>{n=void 0,i=e})),n),o=function(e){if(i){if(f(i)&&typeof sessionStorage<`u`){let e=`tanstack_router_reload:${i.message}`;if(!sessionStorage.getItem(e))throw sessionStorage.setItem(e,`1`),window.location.reload(),new Promise(()=>{})}throw i}if(!r){if(Ot)Ot(a());else throw a()}return k.createElement(r,e)};return o.preload=a,o}function R(e){let t=g(),n=`not-found-${x(t.stores.location,e=>e.pathname)}-${x(t.stores.status)}`;return(0,A.jsx)(ci,{getResetKey:()=>n,onCatch:(t,n)=>{if(Bt(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(Bt(t))return e.fallback?.(t);throw t},children:e.children})}function sa(){return(0,A.jsx)(`p`,{children:`Not Found`})}function ca(e){return(0,A.jsx)(A.Fragment,{children:e.children})}function la(e,t,n){return t.options.notFoundComponent?(0,A.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,A.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,A.jsx)(sa,{})}function ua(e,t){let n=t?.options.pendingComponent??e.options.defaultPendingComponent;return n?(0,A.jsx)(n,{}):null}var da=(e,t)=>e[0]===t[0]&&e[1]===t[1],fa=(e,t,n)=>!t.isRoot||t.options.shellComponent||t.options.wrapInSuspense||n===!1||n===`data-only`||!e.ssr,pa=k.memo(function({routeId:e}){let t=g();return(0,A.jsx)(ma,{router:t,match:x(t.stores.getMatchStore(e))})});function ma({router:e,match:t}){let n=e.routesById[t.routeId],r=ua(e,n),i=n.options.errorComponent??e.options.defaultErrorComponent,a=n.options.onCatch??e.options.defaultOnCatch,o=n.isRoot?n.options.notFoundComponent??e.options.notFoundRoute?.options.component:n.options.notFoundComponent,s=t.ssr===!1||t.ssr===`data-only`,c=fa(e,n,t.ssr)&&(n.options.wrapInSuspense??r??(n.options.errorComponent?.preload||s))?k.Suspense:ca,l=i?ci:ca,u=o?R:ca;return(0,A.jsxs)(n.isRoot?n.options.shellComponent??ca:ca,{children:[(0,A.jsx)(D.Provider,{value:t.routeId,children:(0,A.jsx)(c,{fallback:r,children:(0,A.jsx)(l,{getResetKey:()=>t,errorComponent:i,onCatch:(e,n)=>{if(Bt(e))throw e.routeId??=t.routeId,e;a?.(e,n)},children:(0,A.jsx)(u,{fallback:e=>{if(e.routeId??=t.routeId,e.routeId!==t.routeId)throw e;return k.createElement(o,e)},children:s?(0,A.jsx)(fi,{fallback:r,children:(0,A.jsx)(ha,{match:t})}):(0,A.jsx)(ha,{match:t})})})})}),null]})}var ha=k.memo(function({match:e}){let t=g(),n=e.routeId,r=t.routesById[n],i=k.useMemo(()=>{let i=(r.options.remountDeps??t.options.defaultRemountDeps)?.({routeId:n,loaderDeps:e.loaderDeps,params:e._strictParams,search:e._strictSearch});return i?JSON.stringify(i):void 0},[n,e.loaderDeps,e._strictParams,e._strictSearch,r.options.remountDeps,t.options.defaultRemountDeps]),a=k.useMemo(()=>{let e=r.options.component??t.options.defaultComponent;return e?(0,A.jsx)(e,{},i):(0,A.jsx)(ga,{})},[i,r.options.component,t.options.defaultComponent]);if(e.status===`pending`){if(t.ssr&&!fa(t,r,e.ssr))return a;if(t._tx)throw t._tx[5];return ua(t,r)}if(e.status===`notFound`)return la(t,r,e.error);if(e.status===`error`)throw e.error;return a}),ga=k.memo(function(){let e=g(),t=k.useContext(D),n,r,i;{let a=e.stores.getMatchStore(t);[n,r]=x(a,e=>[!!e._notFound,e.error],{compare:da}),i=x(e.stores.ids,e=>e[e.indexOf(t)+1])}if(n)return la(e,e.routesById[t],r);if(!i)return null;let a=(0,A.jsx)(pa,{routeId:i});return t===`__root__`?(0,A.jsx)(k.Suspense,{fallback:ua(e),children:a}):a});function _a(e,t){let n=e[1];e.length=0,n?.(t)}function va({t:e}){let t=g(),n=t._rendered??=[];return t.startTransition=(r,i)=>new Promise(a=>{_a(n,!1),n.push(i,a),e(t),k.startTransition(r)}),kt(()=>{let e=t.history.subscribe(t.load);t.updateLatestLocation();let r=t.latestLocation,i=t.buildLocation({to:r.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});if(Mt(r.publicHref)!==Mt(i.publicHref))return t.commitLocation({...i,replace:!0,ignoreBlocker:!0}),e;let a=t.stores.resolvedLocation.get();return a?.href===r.href&&a.state.__TSR_key===r.state.__TSR_key?n.push(t.stores.matches.get(),e=>{e&&t.emit({type:`onRendered`,...Qn(a,a)})}):t._tx||t.load({sync:!0}).catch(console.error),e},[t,t.history]),null}function ya(){let e=g(),t=e.routesById[ln],n=ua(e,t),r=e.ssr?ca:k.Suspense,i=(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(va,{t:k.useState()[1]}),(0,A.jsx)(r,{fallback:n,children:(0,A.jsx)(ba,{})})]});return e.options.InnerWrap?(0,A.jsx)(e.options.InnerWrap,{children:i}):i}function ba(){let e=g(),t=e._rendered,n=x(e.stores.matches,e=>t[0]??e),r=n[0],i=r?.routeId;kt(()=>{t[0]===n&&_a(t,!0)},[t,n]);let a=i?(0,A.jsx)(pa,{routeId:i}):null;return(0,A.jsx)(D.Provider,{value:i,children:e.options.disableGlobalCatchBoundary?a:(0,A.jsx)(ci,{getResetKey:()=>r,onCatch:void 0,children:a})})}var xa=e=>({createMutableStore:ji,createReadonlyStore:ji,batch:Oi}),Sa=e=>new Ca(e),Ca=class extends nr{constructor(e){super(e,xa)}};function wa({router:e,children:t,...n}){u(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,A.jsx)(y.Provider,{value:e,children:t});return e.options.Wrap?(0,A.jsx)(e.options.Wrap,{children:r}):r}function Ta({router:e,...t}){return(0,A.jsx)(wa,{router:e,...t,children:(0,A.jsx)(ya,{})})}function Ea(e){let t=g({warn:e?.router===void 0}),n=e?.router||t;return x(n.stores.__store,E(e,n))}var Da=ae(),z=n();function Oa(e){let t=(0,z.c)(6),{error:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,A.jsx)(`p`,{className:`schild text-lg text-rot`,children:`Diese Ansicht ist abgestürzt`}),t[0]=r):r=t[0];let i=n instanceof Error?n.message:String(n),a;t[1]===i?a=t[2]:(a=(0,A.jsx)(`p`,{className:`text-[15px]`,children:i}),t[1]=i,t[2]=a);let o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,A.jsx)(`button`,{type:`button`,onClick:ka,className:`schild h-11 rounded-lg border border-rot-rand px-5 text-sm text-foreground hover:bg-[#3a1512]`,children:`Neu laden`}),t[3]=o):o=t[3];let s;return t[4]===a?s=t[5]:(s=(0,A.jsxs)(`div`,{role:`alert`,className:`flex flex-col items-start gap-3 rounded-2xl border border-rot-rand bg-rot-grund p-6 text-rot-text`,children:[r,a,o]}),t[4]=a,t[5]=s),s}function ka(){return window.location.reload()}var Aa=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function ja(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:Aa(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var Ma=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},Na=e=>{let t=Ma(e);return t.charAt(0).toUpperCase()+t.slice(1)},Pa=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Fa={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Ia(e){return e!=null}function La(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??Fa.width,a=e.size??e.height??Fa.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?Pa(...c):Pa(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??Fa[`stroke-width`])*Number(e.size??e.width??Fa.width)/Number(t.size??t.width??Fa.width):t.strokeWidth??Fa[`stroke-width`];return[`svg`,{...Object.entries(Fa).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&Ia(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&Ia(t.width)&&{[r(`width`)]:t.width},...`height`in t&&Ia(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function Ra(e,t={}){return La(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var za=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},Ba=(0,k.createContext)({}),Va=()=>(0,k.useContext)(Ba),Ha=(0,k.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...d},f)=>{let{size:p=24,strokeWidth:m=2,absoluteStrokeWidth:h=!1,nonScalingStroke:g=!1,color:_=`currentColor`,className:v=``}=Va()??{},y=!!c||za(d),[b,x,S=[]]=Ra(u,{color:e??_,width:n??t??p,height:r??t??p,strokeWidth:i??m,absoluteStrokeWidth:a??h,nonScalingStroke:o??g,className:Pa(v,s),hasA11yProp:y,attributes:d});return(0,k.createElement)(b,{ref:f,...x},[...S.map(([e,t])=>(0,k.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function Ua(e,t=[],n=[]){let r=typeof e==`string`?ja(e,t,n):e,i=(0,k.forwardRef)(({className:e,...t},n)=>(0,k.createElement)(Ha,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=Na(r.name)),i}var Wa={name:`activity`,size:24,node:[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]};Wa.node;var Ga=Ua(Wa),Ka={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};Ka.node;var qa=Ua(Ka),Ja={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};Ja.node;var Ya=Ua(Ja),Xa={name:`circle-check`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 9-5.5 5.5L8 12`,key:`xofnsj`}]],aliases:[`check-circle-2`]};Xa.node;var Za=Ua(Xa),Qa={name:`cpu`,size:24,node:[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]};Qa.node;var $a=Ua(Qa),eo={name:`external-link`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]};eo.node;var to=Ua(eo),no={name:`gauge`,size:24,node:[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]};no.node;var ro=Ua(no),io={name:`layout-grid`,size:24,node:[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]};io.node;var ao=Ua(io),oo={name:`menu`,size:24,node:[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]};oo.node;var so=Ua(oo),co={name:`refresh-cw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]};co.node;var lo=Ua(co),uo={name:`rotate-ccw-clock`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]],aliases:[`history`]};uo.node;var fo=Ua(uo),po={name:`scroll-text`,size:24,node:[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]};po.node;var mo=Ua(po),ho={name:`settings`,size:24,node:[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};ho.node;var go=Ua(ho),_o={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};_o.node;var vo=Ua(_o),yo=[`/api/instanz`,`/api/partner`,`/api/health`],bo=(e,t)=>e===t||e.startsWith(`${t}/`)||e.startsWith(`${t}?`);function xo(e,t){return!e.startsWith(`/api/`)||yo.some(t=>bo(e,t))||(bo(e,`/api/homelab`)?`homelab`:`box`)===t?e:`/api/partner${e.slice(4)}`}var So=null;function Co(){return So??=fetch(`/api/instanz`,{headers:{Accept:`application/json`}}).then(e=>e.ok?e.json():Promise.reject(Error(String(e.status)))).then(e=>e.rolle===`homelab`?`homelab`:`box`).catch(()=>(So=null,`box`)),So}var wo=class extends Error{status;detail;constructor(e,t){super(t),this.status=e,this.detail=t,this.name=`ApiFehler`}};function To(e,t){if(e&&typeof e==`object`&&`detail`in e){let t=e.detail;if(typeof t==`string`)return t;if(Array.isArray(t))return t.map(e=>e.msg??String(e)).join(`; `)}return`Die Box antwortet mit Fehler ${t}.`}async function B(e,t={}){let n=xo(e,await Co()),r;try{r=await fetch(n,{...t,headers:{"Content-Type":`application/json`,Accept:`application/json`,...t.headers}})}catch{throw new wo(0,`MC2 ist nicht erreichbar. Läuft die Box?`)}let i=await r.text(),a=i?Eo(i):null;if(!r.ok)throw new wo(r.status,To(a,r.status));if(typeof a==`string`)throw new wo(r.status,`Die Box antwortet nicht mit Daten.`);return a}function Eo(e){try{return JSON.parse(e)}catch{return e}}var Do=(e,t)=>B(e,{method:`POST`,body:t===void 0?void 0:JSON.stringify(t)}),Oo=100,ko=95,Ao=210,jo=240;function Mo(e,t){let n=e*Math.PI/180;return[Oo+t*Math.cos(n),ko-t*Math.sin(n)]}var No=e=>Math.round(e*100)/100;function Po(e,t,n){let r=Math.max(0,Math.min(1,e)),i=Math.max(r,Math.min(1,t)),[a,o]=Mo(Ao-jo*r,n),[s,c]=Mo(Ao-jo*i,n),l=+((i-r)*jo>180);return`M ${No(a)} ${No(o)} A ${n} ${n} 0 ${l} 1 ${No(s)} ${No(c)}`}function Fo(e){return e==null?`var(--text-3)`:e>=85?`var(--rot)`:e>=70?`var(--bernstein)`:`var(--gruen)`}var Io={ok:`border-gruen-rand bg-gruen-grund text-gruen`,info:`border-cyan-rand bg-cyan-grund text-cyan`,stumm:`border-aus-rand bg-aus-grund text-aus-text`,gelb:`border-2 border-bernstein bg-bernstein-grund text-bernstein-hell lampe-atmet`,rot:`border-2 border-rot bg-rot-grund text-rot shadow-[0_0_32px_rgba(255,90,79,0.3)]`};function Lo(e){if(!e.waechter_wach)return{art:`stumm`,oben:`Wächter`,mitte:`SCHWEIGT`,unten:`Seit über 5 Minuten kein Prüflauf`};if(e.update_laeuft)return{art:`info`,oben:`Wartung`,mitte:`UPDATE LÄUFT`,unten:`Hinweise ruhen bis zum Ende`};if(e.anzahl===0)return{art:`ok`,oben:`Alles`,mitte:`IN ORDNUNG`,unten:`Keine offenen Hinweise`};let t=`${e.anzahl} HINWEIS${e.anzahl===1?``:`E`}`;return e.stufe===`rot`?{art:`rot`,oben:`Störung`,mitte:t,unten:`Drücken zum Ansehen`}:{art:`gelb`,oben:`Achtung`,mitte:t,unten:`Drücken zum Ansehen`}}function Ro(e,t){let n=`„${e.titel}“:`;switch(t.id){case`protokoll`:return null;case`neustart`:return e.id.startsWith(`timer:`)?{titel:`${t.label}?`,text:`${n} Der Dienst läuft sofort noch einmal.`,knopf:t.label}:{titel:`${t.label}?`,text:`${n} Der Dienst wird ${/^starten/i.test(t.label)?`gestartet`:`neu gestartet`} und ist dabei kurz nicht erreichbar.`,knopf:t.label};case`job-wiederholen`:return{titel:`Job erneut ausführen?`,text:`${n} Hermes führt den Job sofort noch einmal aus, mit allem, was er sonst auch tut — etwa Nachrichten verschicken.`,knopf:t.label};case`freigeben`:return{titel:`Update freigeben?`,text:`${n} Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`,knopf:t.label};default:return{titel:`${t.label}?`,text:`${n} ${t.label}.`,knopf:t.label}}}function zo(e){return e?.status===`busy`?e.running?`Es läuft schon ein Update („${e.running}“). Warte, bis es fertig ist.`:`Es läuft schon ein Update. Warte, bis es fertig ist.`:e?.detail||e?.err||e?.error||e?.text||`Das hat nicht geklappt.`}var Bo=e=>e.state===`running`||e.state===`queued`;function Vo(e){let t=e.aliases.map(e=>e.toLowerCase());return t.includes(`hermes`)||t.includes(`fast`)?`hirn`:t.includes(`coder`)?`coder`:null}var Ho={neu:`Neu`,wartet:`Wartet`,getestet:`Gemessen`,bestanden:`Bestanden`,durchgefallen:`Durchgefallen`,uebernommen:`Übernommen`,verworfen:`Verworfen`};function V(e,t=``){if(e==null||e===``)return`–`;let n=typeof e==`number`?e.toLocaleString(`de-DE`,{maximumFractionDigits:+(e<10)}):String(e);return t?`${n} ${t}`:n}var H=[],Uo=1,Wo=new Set,Go=()=>Wo.forEach(e=>e());function Ko(e,t){let n=Uo++;H=[...H,{id:n,art:e,text:t}].slice(-4),Go(),e!==`fehler`&&window.setTimeout(()=>qo(n),6e3)}function qo(e){H=H.filter(t=>t.id!==e),Go()}var Jo=()=>(0,k.useSyncExternalStore)(Yo,Xo);function Yo(e){return Wo.add(e),()=>{Wo.delete(e)}}function Xo(){return H}var Zo=2e3,Qo=3e4,$o=2e4,es=`verbinde`,ts=null,ns=new Set,rs=()=>ns.forEach(e=>e());function is(e){return ns.add(e),()=>{ns.delete(e)}}var as=()=>es===`live`,os=()=>(0,k.useSyncExternalStore)(is,us),ss=()=>(0,k.useSyncExternalStore)(is,ds);function cs(e){e!==es&&(es=e,rs())}function ls(){let e=se();(0,k.useEffect)(()=>{let t=null,n,r,i=Date.now(),a=Zo,o=!1;function s(){o||(window.clearTimeout(n),n=window.setTimeout(l,a),a=Math.min(a*2,Qo))}function c(){i=Date.now(),window.clearTimeout(r),r=window.setTimeout(()=>{t?.close(),cs(`getrennt`),s()},$o)}function l(){window.clearTimeout(n),window.clearTimeout(r),t?.close();let i=new EventSource(`/api/stream`);t=i,i.onopen=()=>{a=Zo,cs(`live`),c(),e.invalidateQueries()},i.onerror=()=>{cs(`getrennt`),i.readyState===EventSource.CLOSED&&(window.clearTimeout(r),s())},i.addEventListener(`invalidate`,t=>{c();try{let n=JSON.parse(t.data)?.keys??[];for(let t of n)e.invalidateQueries({queryKey:[t]})}catch{}}),i.addEventListener(`metrik`,e=>{c();try{ts=JSON.parse(e.data),rs()}catch{}})}let u=()=>{o||document.visibilityState!==`visible`||(t?.readyState===EventSource.CLOSED||Date.now()-i>5e3)&&(a=Zo,l())};return l(),window.addEventListener(`online`,u),document.addEventListener(`visibilitychange`,u),()=>{o=!0,window.clearTimeout(n),window.clearTimeout(r),window.removeEventListener(`online`,u),document.removeEventListener(`visibilitychange`,u),t?.close(),cs(`getrennt`)}},[e])}function us(){return es}function ds(){return ts}var fs=`Europe/Berlin`,ps=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:fs}),ms=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:fs}),hs=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:fs}),gs=new Intl.DateTimeFormat(`en-CA`,{timeZone:fs});function _s(e){return gs.format(e)}function vs(e,t=new Date){let n=new Date(e);if(Number.isNaN(n.getTime()))return`–`;let r=_s(t),i=_s(new Date(t.getTime()-864e5)),a=_s(new Date(t.getTime()+864e5)),o=_s(n),s=ps.format(n);return o===r?`HEUTE ${s}`:o===i?`GESTERN ${s}`:o===a?`MORGEN ${s}`:Math.abs(n.getTime()-t.getTime())<5616e5?`${ms.format(n).replace(`.`,``).toUpperCase()} ${s}`:`${hs.format(n)} ${s}`}function ys(e,t=new Date){let n=new Date(e*1e3);return _s(n)===_s(t)?`seit heute ${ps.format(n)}`:`seit ${hs.format(n)}, ${ps.format(n)}`}function bs(e,t=Date.now()){let n=Math.max(0,Math.round(t/1e3-e));if(n<60)return`vor ${n} s`;if(n<3600)return`vor ${Math.round(n/60)} min`;if(n<86400)return`vor ${Math.round(n/3600)} h`;let r=Math.round(n/86400);return`vor ${r} ${r===1?`Tag`:`Tagen`}`}function xs(e){return e==null||e<0?null:[Math.floor(e/86400),Math.floor(e%86400/3600)]}var Ss=e=>e==null?null:e/1024**3;function Cs(e,t=0){let n=Ss(e);return n==null?`–`:n>=1e3?`${(n/1024).toFixed(1).replace(`.`,`,`)} TB`:`${n.toFixed(t).replace(`.`,`,`)} GB`}var ws=e=>e.toLocaleString(`de-DE`),Ts=e=>()=>as()?e*5:e;function Es(e,t){let n=e.getQueryData([`jobs`])?.jobs??[],r=t.filter(e=>!Bo(e)&&n.some(t=>t.id===e.id&&Bo(t)));if(r.length===0)return;let i=new Set([`start`]);for(let e of r){let t=e.group===`download`||/^download\s/i.test(e.label);for(let e of t?[`models`,`aufraeumen`]:[`update-details`,`updates-verlauf`,`sicherungen`])i.add(e)}for(let t of i)e.invalidateQueries({queryKey:[t]})}var Ds=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`start`],queryFn:Oc,refetchInterval:kc},e[0]=t):t=e[0],F(t)},Os=()=>{let e=(0,z.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[`models`],e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={queryKey:t,queryFn:Ac,refetchInterval:Ts(3e4)},e[1]=n):n=e[1],F(n)},ks=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`nutzung`],queryFn:jc,refetchInterval:6e5},e[0]=t):t=e[0],F(t)},As=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`radar`],queryFn:Mc,retry:!1,refetchInterval:3e5},e[0]=t):t=e[0],F(t)},js=()=>{let e=(0,z.c)(3),t=se(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`jobs`],e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r={queryKey:n,queryFn:async()=>{let e=await B(`/api/jobs`);return Es(t,e.jobs),e},refetchInterval:Nc},e[1]=t,e[2]=r),F(r)},Ms=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`sicherungen`],queryFn:Pc},e[0]=t):t=e[0],F(t)},Ns=e=>{let t=(0,z.c)(4),n;t[0]===e?n=t[1]:(n=e.map(Fc),t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r={queries:n},t[2]=n,t[3]=r),Tt(r)},Ps=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`updates-verlauf`],queryFn:Ic},e[0]=t):t=e[0],F(t)},Fs=e=>{let t=(0,z.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):(n=[`protokoll`,e],r=()=>B(`/api/maintenance/logs?service=${encodeURIComponent(e??``)}&lines=200`),t[0]=e,t[1]=n,t[2]=r);let i=!!e,a;return t[3]!==n||t[4]!==r||t[5]!==i?(a={queryKey:n,queryFn:r,enabled:i},t[3]=n,t[4]=r,t[5]=i,t[6]=a):a=t[6],F(a)},Is=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`dienste`],queryFn:Lc,refetchInterval:1e4},e[0]=t):t=e[0],F(t)};function Ls(e,t){let n=(0,z.c)(6),r=se(),i;n[0]!==t||n[1]!==r?(i=(e,n)=>{let i=e;i&&i.ok===!1?Ko(`fehler`,t.fehler?.(n,i)??zo(i)):t.erfolg(n,e)&&Ko(`erfolg`,t.erfolg(n,e));for(let e of t.neuLaden)r.invalidateQueries({queryKey:[e]})},n[0]=t,n[1]=r,n[2]=i):i=n[2];let a;return n[3]!==e||n[4]!==i?(a={mutationFn:e,onSuccess:i,onError:Rs},n[3]=e,n[4]=i,n[5]=a):a=n[5],Dt(a)}function Rs(e){return Ko(`fehler`,e.message)}var zs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:zc,neuLaden:[`start`]},e[0]=t):t=e[0],Ls(Rc,t)},Bs={alle:`/api/maintenance/update-all`,pruefen:`/api/maintenance/check-updates`,os:`/api/maintenance/os-update`,engine:`/api/maintenance/engine-update`,swap:`/api/maintenance/swap-update`,hermes:`/api/maintenance/hermes-update`},Vs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Vc,neuLaden:[`jobs`,`start`]},e[0]=t):t=e[0],Ls(Bc,t)},Hs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Uc,fehler:Wc,neuLaden:[`jobs`]},e[0]=t):t=e[0],Ls(Hc,t)},Us=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Kc,neuLaden:[`jobs`]},e[0]=t):t=e[0],Ls(Gc,t)},Ws=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Jc,neuLaden:[`jobs`,`models`]},e[0]=t):t=e[0],Ls(qc,t)},Gs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`aufraeumen`],queryFn:Yc,staleTime:6e4},e[0]=t):t=e[0],F(t)},Ks=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Zc,neuLaden:[`aufraeumen`,`models`,`start`]},e[0]=t):t=e[0],Ls(Xc,t)},qs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:$c,neuLaden:[`start`]},e[0]=t):t=e[0],Ls(Qc,t)},Js=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:tl,fehler:nl,neuLaden:[`sicherungen`,`start`]},e[0]=t):t=e[0],Ls(el,t)},Ys=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:il,neuLaden:[`sicherungen`]},e[0]=t):t=e[0],Ls(rl,t)},Xs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ol,neuLaden:[`models`,`start`]},e[0]=t):t=e[0],Ls(al,t)},Zs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:cl,neuLaden:[`radar`,`models`,`start`]},e[0]=t):t=e[0],Ls(sl,t)},Qs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ul,neuLaden:[`radar`,`jobs`]},e[0]=t):t=e[0],Ls(ll,t)},$s=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:fl,neuLaden:[`jobs`]},e[0]=t):t=e[0],Ls(dl,t)},ec=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`instanz`],queryFn:pl,staleTime:1/0},e[0]=t):t=e[0],F(t)},tc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`partner`],queryFn:ml,refetchInterval:3e4},e[0]=t):t=e[0],F(t)},nc=()=>{let e=(0,z.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[`ziele-box`],e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={queryKey:t,queryFn:hl,refetchInterval:Ts(3e4)},e[1]=n):n=e[1],F(n)},rc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:gl,enabled:e,refetchInterval:3e4},t[1]=e,t[2]=r),F(r)},ic=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-laeufe`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:_l,enabled:e,refetchInterval:U},t[1]=e,t[2]=r),F(r)},ac=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:bl,neuLaden:[`homelab`,`homelab-laeufe`,`ziele-box`,`jobs`,`start`]},e[0]=t):t=e[0],Ls(yl,t)},oc=e=>{let t=(0,z.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-hinweise`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Ts(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:xl,enabled:e,refetchInterval:r},t[2]=e,t[3]=i),F(i)},sc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`einstellungen`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Sl,enabled:e,retry:!1},t[1]=e,t[2]=r),F(r)},cc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:wl,neuLaden:[`einstellungen`,`start`]},e[0]=t):t=e[0],Ls(Cl,t)},lc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:El,neuLaden:[`einstellungen`,`start`,`radar`]},e[0]=t):t=e[0],Ls(Tl,t)},uc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ol,neuLaden:[]},e[0]=t):t=e[0],Ls(Dl,t)},dc=(e,t)=>{let n=(0,z.c)(9),r;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[`stand`,`hier`],n[0]=r):r=n[0];let i;n[1]===e?i=n[2]:(i={queryKey:r,queryFn:kl,enabled:e},n[1]=e,n[2]=i);let a;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=[`stand`,`partner`],n[3]=a):a=n[3];let o=e&&t,s;n[4]===o?s=n[5]:(s={queryKey:a,queryFn:Al,enabled:o,retry:!1},n[4]=o,n[5]=s);let c;return n[6]!==i||n[7]!==s?(c={queries:[i,s]},n[6]=i,n[7]=s,n[8]=c):c=n[8],Tt(c)},fc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`altreste`],queryFn:jl,staleTime:6e4},e[0]=t):t=e[0],F(t)},pc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Nl,neuLaden:[`altreste`,`start`]},e[0]=t):t=e[0],Ls(Ml,t)},mc={"1h":6e4,"24h":3e5,"7d":9e5},hc=(e,t)=>{let n=(0,z.c)(8),r=t===void 0||t,i,a;n[0]===e?(i=n[1],a=n[2]):(i=[`messwerte`,`box`,e],a=()=>B(`/api/messwerte?zeitraum=${e}`),n[0]=e,n[1]=i,n[2]=a);let o=mc[e],s;return n[3]!==r||n[4]!==i||n[5]!==a||n[6]!==o?(s={queryKey:i,queryFn:a,enabled:r,refetchInterval:o,placeholderData:Pl,retry:!1},n[3]=r,n[4]=i,n[5]=a,n[6]=o,n[7]=s):s=n[7],F(s)},gc=(e,t)=>{let n=(0,z.c)(8),r,i;n[0]===e?(r=n[1],i=n[2]):(r=[`messwerte`,`homelab`,e],i=()=>B(`/api/homelab/messwerte?zeitraum=${e}`),n[0]=e,n[1]=r,n[2]=i);let a=mc[e],o;return n[3]!==t||n[4]!==r||n[5]!==i||n[6]!==a?(o={queryKey:r,queryFn:i,enabled:t,refetchInterval:a,placeholderData:Fl,retry:!1},n[3]=t,n[4]=r,n[5]=i,n[6]=a,n[7]=o):o=n[7],F(o)},_c=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-sammelplan`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Il,enabled:e,retry:!1},t[1]=e,t[2]=r),F(r)},vc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-sammellauf`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Ll,enabled:e,refetchInterval:Rl,retry:!1},t[1]=e,t[2]=r),F(r)},yc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Bl,neuLaden:[`homelab-sammellauf`,`homelab-laeufe`,`homelab`]},e[0]=t):t=e[0],Ls(zl,t)},bc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Hl,neuLaden:[`homelab-sammellauf`]},e[0]=t):t=e[0],Ls(Vl,t)},xc=(e,t)=>{let n=(0,z.c)(8),r,i;n[0]===t?(r=n[1],i=n[2]):(r=[`homelab-protokoll`,t],i=()=>B(`/api/homelab/protokoll?grenze=300&berichte=${+!!t}`),n[0]=t,n[1]=r,n[2]=i);let a;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=Ts(3e4),n[3]=a):a=n[3];let o;return n[4]!==e||n[5]!==r||n[6]!==i?(o={queryKey:r,queryFn:i,enabled:e,refetchInterval:a,retry:!1},n[4]=e,n[5]=r,n[6]=i,n[7]=o):o=n[7],F(o)},Sc=e=>{let t=(0,z.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-speicher`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Ts(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:Ul,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),F(i)},Cc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab`,`snapshots`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Wl,enabled:e,refetchInterval:Kl,retry:!1},t[1]=e,t[2]=r),F(r)},wc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Jl,neuLaden:[`homelab`,`homelab-laeufe`]},e[0]=t):t=e[0],Ls(ql,t)},Tc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-einstellungen`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Yl,enabled:e,retry:!1},t[1]=e,t[2]=r),F(r)},Ec=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Zl,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],Ls(Xl,t)},Dc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:$l,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],Ls(Ql,t)};function Oc(){return B(`/api/start`)}function kc(e){return e.state.data&&!e.state.data.updates.gelesen?4e3:Ts(2e4)()}function Ac(){return B(`/api/models`)}function jc(){return B(`/api/modelle/nutzung`)}function Mc(){return B(`/api/radar`)}function Nc(e){return e.state.data?.jobs.some(Bo)?2e3:Ts(3e4)()}function Pc(){return B(`/api/zeitmaschine`)}function Fc(e){return{queryKey:[`update-details`,e],queryFn:()=>B(`/api/maintenance/update-details?kind=${encodeURIComponent(e)}`),staleTime:6e5}}function Ic(){return B(`/api/updates/verlauf`)}function Lc(){return B(`/api/system/services`)}function Rc(e){let{hinweis:t,aktion:n}=e;return Do(`/api/hinweise/${encodeURIComponent(t)}/aktion/${n}`)}function zc(e,t){return e.aktion===`freigeben`&&t.text?t.text:`${e.label}: erledigt. Der Wächter prüft in einer Minute nach.`}function Bc(e){return Do(Bs[e])}function Vc(e){return e===`pruefen`?`Die Suche nach Neuem läuft. Den Fortschritt siehst du unten bei den Aufträgen.`:`Das Update läuft. Den Fortschritt siehst du unten bei den Aufträgen.`}function Hc(e){let{id:t}=e;return Do(`/api/jobs/${encodeURIComponent(t)}/cancel`)}function Uc(e){return`${e.titel}: wird abgebrochen.`}function Wc(e){return`${e.titel} lief schon nicht mehr.`}function Gc(e){return Do(`/api/jobs/${encodeURIComponent(e)}/quittieren`)}function Kc(){return``}function qc(e){let{repo:t,quant:n,rolle:r}=e;return Do(`/api/models/install`,{repo:t,quant:n,role:r})}function Jc(e,t){return`${e.repo} (${e.quant}) wird heruntergeladen${t.total_bytes?`, ${Cs(t.total_bytes,1)}`:``}. Den Fortschritt siehst du unter Aufträge.`}function Yc(){return B(`/api/modelle/aufraeumen`)}function Xc(e){return Do(`/api/modelle/aufraeumen/loeschen`,{art:e.art,name:e.name})}function Zc(e,t){return t.text??`Gelöscht.`}function Qc(e){return Do(`/api/updates/festgehalten/${encodeURIComponent(e)}/freigeben`)}function $c(e,t){return t.text??`Freigegeben.`}function el(){return Do(`/api/system/backup`)}function tl(e,t){return t.size_mb==null?`Sicherung erstellt.`:`Sicherung erstellt (${t.size_mb.toLocaleString(`de-DE`)} MB).`}function nl(e,t){return`Die Sicherung ging nicht: ${zo(t)}`}function rl(e){return Do(`/api/zeitmaschine/restore`,{file:e})}function il(){return`Zurückspielen läuft. Die Dienste starten gleich neu.`}function al(e){return Do(`/api/models/${encodeURIComponent(e)}/load`)}function ol(e){return`${e} wird geladen.`}function sl(e){let{id:t,aktion:n}=e;return Do(`/api/radar/${encodeURIComponent(t)}/${n}`)}function cl(e){return e.aktion===`uebernehmen`?`${e.name} übernommen.`:`${e.name} verworfen.`}function ll(e){let{id:t}=e;return Do(`/api/radar/${encodeURIComponent(t)}/testen`)}function ul(e,t){return t.text??`Der Test von ${e.name} läuft.`}function dl(){return Do(`/api/radar/suche`)}function fl(e,t){return t.text??`Das Radar sucht jetzt nach neuen Modellen.`}function pl(){return B(`/api/instanz`)}function ml(){return B(`/api/partner`)}function hl(){return B(`/api/ziele`)}function gl(){return B(`/api/homelab/ziele`)}function _l(){return B(`/api/homelab/laeufe`)}function vl(e){return e.status===`laeuft`}function U(e){return e.state.data?.laeufe.some(vl)?3e3:3e4}function yl(e){return B(e.pfad,{method:e.methode})}function bl(e){return`${e.label}: gestartet. Das Ergebnis kommt als Meldung.`}function xl(){return B(`/api/homelab/hinweise`)}function Sl(){return B(`/api/einstellungen`)}function Cl(e){return Do(`/api/einstellungen/update-fenster`,e)}function wl(e,t){return t.text??`Gespeichert.`}function Tl(e){return Do(`/api/einstellungen/radar`,{an:e})}function El(e,t){return t.text??`Geschaltet.`}function Dl(e){return Do(e===`homelab`?`/api/homelab/einstellungen/telegram-test`:`/api/einstellungen/telegram-test`)}function Ol(e,t){return t.text??`Die Testmeldung ist raus.`}function kl(){return B(`/api/instanz`)}function Al(){return B(`/api/partner/instanz`)}function jl(){return B(`/api/aufraeumen/altreste`)}function Ml(e){return Do(`/api/aufraeumen/altreste/loeschen`,{id:e.id})}function Nl(e,t){return t.text??`Gelöscht.`}function Pl(e){return e}function Fl(e){return e}function Il(){return B(`/api/homelab/alle/plan`)}function Ll(){return B(`/api/homelab/sammellauf`)}function Rl(e){return e.state.data?.sammellauf?.status===`laeuft`?5e3:6e4}function zl(){return Do(`/api/homelab/alle`)}function Bl(){return`Alle aktualisieren: gestartet. Die Schritte laufen nacheinander; das Ergebnis kommt als Meldung.`}function Vl(e){return Do(`/api/homelab/sammellauf/${encodeURIComponent(e)}/quittieren`)}function Hl(){return``}function Ul(){return B(`/api/homelab/speicher`)}function Wl(){return B(`/api/homelab/snapshots`)}function Gl(e){return e.laeuft}function Kl(e){return e.state.data?.geraete.some(Gl)?3e3:3e4}function ql(e){return B(e.pfad,{method:e.methode})}function Jl(e){return`${e.label}: gestartet. Das Ergebnis steht gleich beim Gerät.`}function Yl(){return B(`/api/homelab/einstellungen`)}function Xl(e){return e===null?B(`/api/homelab/einstellungen/arcane-schluessel`,{method:`DELETE`}):Do(`/api/homelab/einstellungen/arcane-schluessel`,{schluessel:e})}function Zl(e,t){return t.text??(e===null?`Arcane-Schlüssel entfernt.`:`Arcane-Schlüssel gespeichert.`)}function Ql(e){return Do(`/api/homelab/einstellungen/arcane-echt`,{an:e})}function $l(e){return e?`Docker-Updates über Arcane laufen jetzt echt.`:`Docker-Updates über Arcane sind wieder nur ein Probelauf.`}var eu={"ki-box":`KI-Box`,"proxmox-host":`Proxmox-Host`,container:`Container`,vm:`VM`};function tu(e){let t=e.id.match(/-(\d+)$/)?.[1],n=eu[e.art]??e.art;return t?`${n} ${t}`:n}var nu={"Proxmox-Host":`Proxmox`,"AdGuard Home":`AdGuard`,"PVE Scripts Local":`PVE Scripts`,"Proxmox Backup Server":`PBS`,"Arcane (Docker)":`Arcane`},ru=e=>nu[e.name]??e.name,iu=new Set([`app`,`arcane`]),au=e=>e.bausteine.find(e=>iu.has(e.id))??null,W=e=>e.bausteine.find(e=>!iu.has(e.id))??null;function ou(e){let t=e.flatMap(e=>e.bausteine.filter(e=>e.zustand===`neu`).map(t=>({ziel:e,baustein:t})));return[...t.filter(e=>e.baustein.aktion),...t.filter(e=>!e.baustein.aktion)]}function su(e){let t=e.bausteine.filter(e=>e.zustand===`neu`);return t.some(e=>e.aktion)?0:t.length>0?1:e.bausteine.some(e=>e.zustand===`unbekannt`)?2:3}function cu(e){let t=e.rueckweg_art??lu(e.rueckweg);return t===`snapshot`?`Snapshot vorher, bei Rot zurück`:t===`sicherung`?`Sicherung vorher, bei Rot zurück`:e.art===`proxmox-host`?`Kein Rückweg, Neustart getrennt`:`Kein automatischer Rückweg`}function lu(e){let t=(e??``).toLowerCase();return t.startsWith(`snapshot vor`)?`snapshot`:t.startsWith(`sicherung`)?`sicherung`:`keiner`}var uu=e=>iu.has(e.id),du=e=>e.replace(/^Image vom /,``);function fu(e){return uu(e)&&e.verfuegbar?e.verfuegbar:e.kurz||e.verfuegbar||`neu`}function pu(e){let t=e.platte;return t&&t.gesamt>0?t.belegt/t.gesamt:null}function mu(e,t){let n=ru(e),r=pu(e);if(e.erreichbar===!1)return{id:e.id,label:n,zustand:`fehler`,wert:`antwortet nicht`};if(r!==null&&r>=.9)return{id:e.id,label:n,zustand:`fehler`,wert:`Platte voll`};if(t)return{id:e.id,label:n,zustand:`info`,wert:`Update läuft`};if(r!==null&&r>=.8)return{id:e.id,label:n,zustand:`warn`,wert:`Platte ${Math.round(r*100)} %`};let i=e.bausteine.filter(e=>e.zustand===`neu`);if(i.length>0){let t=i.find(e=>iu.has(e.id))??i[0];return{id:e.id,label:n,zustand:`info`,wert:iu.has(t.id)&&t.verfuegbar?`→ ${t.verfuegbar}`:fu(t)}}let a=au(e);return{id:e.id,label:n,zustand:`ok`,wert:a?.installiert?du(a.installiert):`aktuell`}}var hu=e=>`${e} HINWEIS${e===1?``:`E`}`;function gu(e,t,n,r){let i=e.ziele.filter(e=>e.erreichbar===!1);if(i.length>0)return{art:`rot`,oben:`Störung`,mitte:i.length===1?`1 GERÄT STUMM`:`${i.length} GERÄTE STUMM`,unten:i.map(ru).join(`, `),ziel:`geraete`};if(t.some(e=>e.stufe===`rot`))return{art:`rot`,oben:`Störung`,mitte:hu(t.length),unten:`Drücken zum Ansehen`,ziel:`hinweise`};if(!e.ausfuehrer.verbunden)return{art:`gelb`,oben:`Achtung`,mitte:`AUSFÜHRER STUMM`,unten:`Die Geräte zeigen den letzten Stand`,ziel:null};if(t.length>0)return{art:`gelb`,oben:`Achtung`,mitte:hu(t.length),unten:`Drücken zum Ansehen`,ziel:`hinweise`};if(n>0)return{art:`info`,oben:`Wartung`,mitte:`UPDATE LÄUFT`,unten:`Das Ergebnis kommt als Meldung`,ziel:`updates`};let a=ou(e.ziele).filter(e=>e.baustein.aktion).length;return a>0?{art:`info`,oben:`Homelab`,mitte:`${a} UPDATE${a===1?``:`S`}`,unten:`Drücken zum Ansehen`,ziel:`updates`}:{art:`ok`,oben:`Homelab`,mitte:`ALLES AKTUELL`,unten:r?`Stand ${r}`:`Keine offenen Updates`,ziel:null}}function _u(e){return e?.match(/vom (\d{2}\.\d{2}\.\d{4})/)?.[1]??null}var vu=[{id:`box`,name:`KI-Box`},{id:`homelab`,name:`Homelab`}],yu=[{to:`/`,label:`Übersicht`,Icon:ao,ort:`uebersicht`},{to:`/box`,label:`Cockpit`,Icon:ro,ort:`box`},{to:`/box/updates`,label:`Updates`,Icon:lo,ort:`box`,zaehlt:!0},{to:`/box/modelle`,label:`Modelle`,Icon:$a,ort:`box`},{to:`/box/monitoring`,label:`Monitoring`,Icon:Ga,ort:`box`},{to:`/box/dienste`,label:`Dienste und Protokolle`,Icon:mo,ort:`box`},{to:`/homelab`,label:`Cockpit`,Icon:ro,ort:`homelab`},{to:`/homelab/updates`,label:`Updates`,Icon:lo,ort:`homelab`,zaehlt:!0},{to:`/homelab/snapshots`,label:`Snapshots`,Icon:fo,ort:`homelab`},{to:`/homelab/monitoring`,label:`Monitoring`,Icon:Ga,ort:`homelab`},{to:`/homelab/protokoll`,label:`Protokoll`,Icon:mo,ort:`homelab`},{to:`/einstellungen`,label:`Einstellungen`,Icon:go,ort:`system`}],bu={uebersicht:`Auf einen Blick`,box:`KI-Box`,homelab:`Homelab`,system:`Beide Instanzen`};function xu(){let e=(0,z.c)(2),t=Ea({select:Su}).replace(/\/+$/,``)||`/`,n;return e[0]===t?n=e[1]:(n=yu.find(e=>e.to===t)??yu[0],e[0]=t,e[1]=n),n}function Su(e){return e.location.pathname}function Cu(){let e=(0,z.c)(19),t=ec(),n=tc(),r=os(),i=t.data?.rolle===`homelab`?`homelab`:`box`,a=r===`live`?`online`:r,o=n.data,s=o?o.eingerichtet?o.erreichbar?`online`:`getrennt`:`fehlt`:`verbinde`,c;e[0]!==a||e[1]!==s||e[2]!==i?(c=i===`box`?{box:a,homelab:s}:{box:s,homelab:a},e[0]=a,e[1]=s,e[2]=i,e[3]=c):c=e[3];let l=c,u=nc(),d=rc(l.homelab===`online`),f;e[4]===u.data?.ziele?f=e[5]:(f=u.data?.ziele??[],e[4]=u.data?.ziele,e[5]=f);let p;e[6]===f?p=e[7]:(p=f.reduce(Tu,0),e[6]=f,e[7]=p);let m=p,h;e[8]===d.data?.ziele?h=e[9]:(h=ou(d.data?.ziele??[]).filter(wu),e[8]=d.data?.ziele,e[9]=h);let g=h.length,_;e[10]!==m||e[11]!==l.box?(_={verbindung:l.box,updates:m},e[10]=m,e[11]=l.box,e[12]=_):_=e[12];let v;e[13]!==g||e[14]!==l.homelab?(v={verbindung:l.homelab,updates:g},e[13]=g,e[14]=l.homelab,e[15]=v):v=e[15];let y;return e[16]!==_||e[17]!==v?(y={box:_,homelab:v},e[16]=_,e[17]=v,e[18]=y):y=e[18],y}function wu(e){return e.baustein.aktion}function Tu(e,t){return e+t.bausteine.filter(Eu).length}function Eu(e){return e.zustand===`neu`&&e.aktion}var Du={erfolg:`border-gruen-rand bg-gruen-grund text-gruen-text`,fehler:`border-rot-rand bg-rot-grund text-rot-text`,info:`border-cyan-rand bg-cyan-grund text-cyan-text`};function Ou(){let e=(0,z.c)(4),t=Jo(),n;e[0]===t?n=e[1]:(n=t.map(ku),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,A.jsx)(`div`,{"aria-live":`polite`,className:`pointer-events-none fixed right-4 bottom-24 left-4 z-50 flex flex-col items-end gap-2 md:left-auto md:w-[420px] lg:bottom-6`,children:n}),e[2]=n,e[3]=r),r}function ku(e){return(0,A.jsxs)(`div`,{role:e.art===`fehler`?`alert`:`status`,className:a(`pointer-events-auto flex w-full items-start gap-3 rounded-xl border px-4 py-3 text-[15px] shadow-lg`,Du[e.art]),children:[(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:e.text}),(0,A.jsx)(`button`,{type:`button`,onClick:()=>qo(e.id),"aria-label":`Meldung schließen`,className:`-m-2 p-2 opacity-70 hover:opacity-100`,children:(0,A.jsx)(vo,{className:`size-4`})})]},e.id)}var Au={online:{punkt:`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`,text:`online`},verbinde:{punkt:`bg-bernstein`,text:`verbinde`},getrennt:{punkt:`bg-rot`,text:`getrennt`},fehlt:{punkt:`bg-text-3`,text:`nicht eingerichtet`}},ju={uebersicht:{aktiv:`!border-bernstein bg-bernstein-grund`,symbol:`group-data-[status=active]:text-bernstein`},box:{aktiv:`!border-box bg-box-grund`,symbol:`group-data-[status=active]:text-box`},homelab:{aktiv:`!border-lab bg-lab-grund`,symbol:`group-data-[status=active]:text-lab`},system:{aktiv:`!border-text-2 bg-erhaben`,symbol:`group-data-[status=active]:text-foreground`}},Mu={box:{text:`text-box-text`,balken:`bg-box`},homelab:{text:`text-lab-text`,balken:`bg-lab`}},Nu=`group flex h-11 items-center gap-3 rounded-lg border-l-2 border-transparent pr-3 pl-3 text-[15px] text-text-2 hover:bg-erhaben hover:text-foreground`;function Pu(){let e=(0,z.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(`img`,{src:`/favicon.svg`,alt:``,width:36,height:36,className:`size-9 shrink-0`}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,A.jsxs)(`div`,{className:`flex items-center gap-3 px-1`,children:[t,(0,A.jsxs)(`span`,{className:`flex flex-col leading-none`,children:[(0,A.jsx)(`span`,{className:`font-anzeige text-[22px] font-bold tracking-[0.06em]`,children:`Homelab`}),(0,A.jsx)(`span`,{className:`schild text-[13px] tracking-[0.22em] text-text-3`,children:`Orchestrator`})]})]}),e[1]=n):n=e[1],n}function Fu(e){let t=(0,z.c)(21),{s:n,zahl:r,onGewaehlt:i}=e,o=ju[n.ort],s=n.to,c;t[0]===o.aktiv?c=t[1]:(c=a(o.aktiv,`!text-foreground`),t[0]=o.aktiv,t[1]=c);let l;t[2]===c?l=t[3]:(l={className:c},t[2]=c,t[3]=l);let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u={exact:!0},t[4]=u):u=t[4];let d=n.Icon,f;t[5]===o.symbol?f=t[6]:(f=a(`size-[18px] shrink-0 text-text-3 group-hover:text-text-2`,o.symbol),t[5]=o.symbol,t[6]=f);let p;t[7]!==n.Icon||t[8]!==f?(p=(0,A.jsx)(d,{className:f,"aria-hidden":!0}),t[7]=n.Icon,t[8]=f,t[9]=p):p=t[9];let m;t[10]===n.label?m=t[11]:(m=(0,A.jsx)(`span`,{className:`flex-1`,children:n.label}),t[10]=n.label,t[11]=m);let h;t[12]===r?h=t[13]:(h=!!r&&(0,A.jsxs)(`span`,{className:`ziffern rounded-full border border-cyan-rand bg-cyan-grund px-2 text-xs leading-5 text-cyan`,children:[r,(0,A.jsxs)(`span`,{className:`sr-only`,children:[` `,r===1?`Update`:`Updates`,` bereit`]})]}),t[12]=r,t[13]=h);let g;return t[14]!==i||t[15]!==n.to||t[16]!==l||t[17]!==p||t[18]!==m||t[19]!==h?(g=(0,A.jsxs)(ta,{to:s,onClick:i,className:Nu,activeProps:l,activeOptions:u,children:[p,m,h]}),t[14]=i,t[15]=n.to,t[16]=l,t[17]=p,t[18]=m,t[19]=h,t[20]=g):g=t[20],g}function Iu(e){let t=(0,z.c)(14),{onGewaehlt:n}=e,r=Cu(),i=ec().data?.rolle!==`homelab`,o=Lu,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=o(`/`),t[0]=s):s=t[0];let c;t[1]===n?c=t[2]:(c=(0,A.jsx)(Fu,{s,onGewaehlt:n}),t[1]=n,t[2]=c);let l;t[3]!==i||t[4]!==n||t[5]!==r?(l=vu.map(e=>{let t=Au[r[e.id].verbindung],o=Mu[e.id];return(0,A.jsxs)(`section`,{"aria-label":e.name,className:`flex flex-col gap-1`,children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pr-3 pb-1.5`,children:[(0,A.jsxs)(`h2`,{className:a(`schild flex items-center gap-2.5 text-sm font-bold tracking-[0.24em]`,o.text),children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:a(`h-4 w-1 rounded-full`,o.balken)}),e.name]}),(0,A.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-text-3`,children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:a(`size-2 rounded-full`,t.punkt)}),t.text]})]}),yu.filter(t=>t.ort===e.id).map(t=>(0,A.jsx)(Fu,{s:t,zahl:t.zaehlt?r[e.id].updates:0,onGewaehlt:n},t.to)),e.id===`box`&&i&&(0,A.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:Nu,children:[(0,A.jsx)(to,{className:`size-[18px] shrink-0 text-text-3`,"aria-hidden":!0}),`Hermes-Dashboard`]})]},e.id)}),t[3]=i,t[4]=n,t[5]=r,t[6]=l):l=t[6];let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=o(`/einstellungen`),t[7]=u):u=t[7];let d;t[8]===n?d=t[9]:(d=(0,A.jsx)(`div`,{className:`mt-auto border-t border-linie pt-4`,children:(0,A.jsx)(Fu,{s:u,onGewaehlt:n})}),t[8]=n,t[9]=d);let f;return t[10]!==c||t[11]!==l||t[12]!==d?(f=(0,A.jsxs)(`nav`,{"aria-label":`Hauptnavigation`,className:`flex flex-1 flex-col gap-6`,children:[c,l,d]}),t[10]=c,t[11]=l,t[12]=d,t[13]=f):f=t[13],f}function Lu(e){return yu.find(t=>t.to===e)}var Ru=`modulepreload`,zu=function(e){return`/`+e},Bu={},Vu=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=zu(t,n),t=s(t),t in Bu)return;Bu[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Ru,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Hu=(0,k.lazy)(()=>Vu(()=>import(`./MenueSchublade-0T5uliTD.js`).then(e=>({default:e.MenueSchublade})),__vite__mapDeps([0,1,2,3,4]))),Uu=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),Wu=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`});function Gu(){let e=(0,z.c)(13),[t,n]=(0,k.useState)(Ku),r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=window.setInterval(()=>n(new Date),2e4);return()=>window.clearInterval(e)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,k.useEffect)(r,i);let a;e[2]===t?a=e[3]:(a=Uu.format(t),e[2]=t,e[3]=a);let o;e[4]===a?o=e[5]:(o=(0,A.jsx)(`span`,{className:`ziffern text-2xl font-medium`,children:a}),e[4]=a,e[5]=o);let s;e[6]===t?s=e[7]:(s=Wu.format(t).replace(`,`,``),e[6]=t,e[7]=s);let c;e[8]===s?c=e[9]:(c=(0,A.jsx)(`span`,{className:`schild text-[13px] text-text-3`,children:s}),e[8]=s,e[9]=c);let l;return e[10]!==o||e[11]!==c?(l=(0,A.jsxs)(`div`,{className:`flex flex-col items-end leading-tight`,children:[o,c]}),e[10]=o,e[11]=c,e[12]=l):l=e[12],l}function Ku(){return new Date}function qu(){let e=(0,z.c)(14),t=os(),n=t===`live`,r=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,i=n?`text-text-3`:`text-bernstein`,o;e[0]===i?o=e[1]:(o=a(`schild flex items-center gap-1.5 text-[13px]`,i),e[0]=i,e[1]=o);let s=n?`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`:`bg-bernstein`,c;e[2]===s?c=e[3]:(c=a(`size-2 rounded-full`,s),e[2]=s,e[3]=c);let l;e[4]===c?l=e[5]:(l=(0,A.jsx)(`span`,{"aria-hidden":!0,className:c}),e[4]=c,e[5]=l);let u=n?`sr-only`:void 0,d=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,f;e[6]!==u||e[7]!==d?(f=(0,A.jsx)(`span`,{className:u,children:d}),e[6]=u,e[7]=d,e[8]=f):f=e[8];let p;return e[9]!==r||e[10]!==o||e[11]!==l||e[12]!==f?(p=(0,A.jsxs)(`span`,{role:`status`,title:r,className:o,children:[l,f]}),e[9]=r,e[10]=o,e[11]=l,e[12]=f,e[13]=p):p=e[13],p}var Ju={uebersicht:`text-bernstein`,box:`text-box-text`,homelab:`text-lab-text`,system:`text-text-3`};function Yu(){let e=(0,z.c)(27);ls();let[t,n]=(0,k.useState)(!1),r=xu(),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,A.jsxs)(`aside`,{className:`sticky top-0 hidden h-dvh flex-col gap-8 overflow-y-auto border-r border-linie bg-[#0c0f12] px-4 py-7 lg:flex`,children:[(0,A.jsx)(Pu,{}),(0,A.jsx)(Iu,{})]}),e[0]=i):i=e[0];let o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>n(!0),e[1]=o):o=e[1];let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,A.jsx)(`button`,{type:`button`,onClick:o,className:`-ml-2 flex size-11 shrink-0 items-center justify-center rounded-lg text-text-2 hover:bg-erhaben hover:text-foreground lg:hidden`,"aria-label":`Menü öffnen`,children:(0,A.jsx)(so,{className:`size-6`})}),e[2]=s):s=e[2];let c=Ju[r.ort],l;e[3]===c?l=e[4]:(l=a(`schild text-[13px] tracking-[0.24em]`,c),e[3]=c,e[4]=l);let u=bu[r.ort],d;e[5]!==l||e[6]!==u?(d=(0,A.jsx)(`span`,{className:l,children:u}),e[5]=l,e[6]=u,e[7]=d):d=e[7];let f;e[8]===r.label?f=e[9]:(f=(0,A.jsx)(`h1`,{className:`font-anzeige text-[26px] leading-none font-bold tracking-[0.04em]`,children:r.label}),e[8]=r.label,e[9]=f);let p;e[10]!==d||e[11]!==f?(p=(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[s,(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col leading-tight`,children:[d,f]})]}),e[10]=d,e[11]=f,e[12]=p):p=e[12];let m;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,A.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,A.jsx)(`span`,{className:`lg:hidden`,children:(0,A.jsx)(qu,{})}),(0,A.jsx)(Gu,{})]}),e[13]=m):m=e[13];let h;e[14]===p?h=e[15]:(h=(0,A.jsxs)(`header`,{className:`flex items-center justify-between gap-4`,children:[p,m]}),e[14]=p,e[15]=h);let g;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,A.jsx)(`main`,{className:`flex min-w-0 flex-col gap-5 md:gap-6`,children:(0,A.jsx)(ga,{})}),e[16]=g):g=e[16];let _;e[17]===h?_=e[18]:(_=(0,A.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1320px] min-w-0 flex-col gap-5 px-4 pt-4 pb-10 sm:px-6 md:gap-6 md:px-10 md:pt-8`,children:[h,g]}),e[17]=h,e[18]=_);let v;e[19]===t?v=e[20]:(v=t&&(0,A.jsx)(Hu,{onSchliessen:()=>n(!1)}),e[19]=t,e[20]=v);let y;e[21]===v?y=e[22]:(y=(0,A.jsx)(k.Suspense,{fallback:null,children:v}),e[21]=v,e[22]=y);let b;e[23]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,A.jsx)(Ou,{}),e[23]=b):b=e[23];let x;return e[24]!==_||e[25]!==y?(x=(0,A.jsxs)(`div`,{className:`min-h-dvh lg:grid lg:grid-cols-[272px_minmax(0,1fr)]`,children:[i,_,y,b]}),e[24]=_,e[25]=y,e[26]=x):x=e[26],x}var Xu={gruen:`border-gruen-rand bg-gruen-grund text-gruen`,bernstein:`border-bernstein/60 bg-bernstein-grund text-bernstein`,cyan:`border-cyan-rand bg-cyan-grund text-cyan`,rot:`border-rot-rand bg-rot-grund text-rot-text`,grau:`border-linie bg-erhaben text-text-2`};function Zu(e){let t=(0,z.c)(5),{art:n,children:r}=e,i=Xu[n===void 0?`grau`:n],o;t[0]===i?o=t[1]:(o=a(`schild inline-flex h-7 items-center rounded-full border px-2.5 text-xs whitespace-nowrap`,i),t[0]=i,t[1]=o);let s;return t[2]!==r||t[3]!==o?(s=(0,A.jsx)(`span`,{className:o,children:r}),t[2]=r,t[3]=o,t[4]=s):s=t[4],s}function Qu(e){let t=(0,z.c)(6),{fehler:n,text:r}=e,i=n?`alert`:`status`,o=n?`border-rot-rand bg-rot-grund text-rot-text`:`border-linie bg-panel text-text-2`,s;t[0]===o?s=t[1]:(s=a(`rounded-2xl border px-5 py-8 text-center text-[15px]`,o),t[0]=o,t[1]=s);let c;return t[2]!==i||t[3]!==s||t[4]!==r?(c=(0,A.jsx)(`div`,{role:i,className:s,children:r}),t[2]=i,t[3]=s,t[4]=r,t[5]=c):c=t[5],c}var $u={erledigt:{text:`Erledigt`,farbe:`text-gruen`},fehler:{text:`Fehler`,farbe:`text-rot`},geplant:{text:`Geplant`,farbe:`text-text-3`}};function ed(e){let t=(0,z.c)(18),{e:n}=e,r=$u[n.status]??$u.geplant,i=n.status===`geplant`&&/update/i.test(n.titel)?`text-cyan`:r.farbe,o;t[0]===n.zeit?o=t[1]:(o=vs(n.zeit),t[0]=n.zeit,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,A.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:o}),t[2]=o,t[3]=s);let c;t[4]===n.text?c=t[5]:(c=n.text&&(0,A.jsxs)(`span`,{className:`text-text-3`,children:[`, `,n.text]}),t[4]=n.text,t[5]=c);let l;t[6]!==n.titel||t[7]!==c?(l=(0,A.jsxs)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-base break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:[n.titel,c]}),t[6]=n.titel,t[7]=c,t[8]=l):l=t[8];let u;t[9]===i?u=t[10]:(u=a(`schild col-start-2 row-start-1 justify-self-end text-[13px] @sm:col-start-3`,i),t[9]=i,t[10]=u);let d;t[11]!==r.text||t[12]!==u?(d=(0,A.jsx)(`span`,{className:u,children:r.text}),t[11]=r.text,t[12]=u,t[13]=d):d=t[13];let f;return t[14]!==s||t[15]!==l||t[16]!==d?(f=(0,A.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-linie py-2.5 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[s,l,d]}),t[14]=s,t[15]=l,t[16]=d,t[17]=f):f=t[17],f}function G(e){let t=(0,z.c)(6),{gelaufen:n,geplant:r}=e,i;t[0]!==n||t[1]!==r?(i=[...n,...r.slice(0,5)],t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=i;if(a.length===0){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,A.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Heute ist noch nichts gelaufen, und nichts ist geplant.`}),t[3]=e):e=t[3],e}let o;return t[4]===a?o=t[5]:(o=(0,A.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:a.map(K)}),t[4]=a,t[5]=o),o}function K(e){return(0,A.jsx)(ed,{e},`${e.titel}-${e.zeit}`)}function q(e){let t=(0,z.c)(11),{titel:n,rechts:r,children:i,className:o,id:s}=e,c;t[0]===o?c=t[1]:(c=a(`flex min-w-0 flex-col gap-4 rounded-2xl border border-linie bg-panel p-5 sm:p-6`,o),t[0]=o,t[1]=c);let l;t[2]!==r||t[3]!==n?(l=(n||r)&&(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n&&(0,A.jsx)(`h2`,{className:`schild text-lg font-bold tracking-[0.22em] text-foreground`,children:n}),r]}),t[2]=r,t[3]=n,t[4]=l):l=t[4];let u;return t[5]!==i||t[6]!==s||t[7]!==c||t[8]!==l||t[9]!==n?(u=(0,A.jsxs)(`section`,{id:s,"aria-label":n,className:c,children:[l,i]}),t[5]=i,t[6]=s,t[7]=c,t[8]=l,t[9]=n,t[10]=u):u=t[10],u}var J=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:1}),Y=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0});function td(e){return e<1e3?`${Y.format(e)} B/s`:e<1e6?`${J.format(e/1e3)} KB/s`:e<1e9?`${J.format(e/1e6)} MB/s`:`${J.format(e/1e9)} GB/s`}function nd(e,t){return e==null||Number.isNaN(e)?`–`:t===`prozent`?`${Y.format(e)} %`:t===`grad`?`${Y.format(e)} °C`:t===`bytes_s`?td(e):Y.format(e)}function rd(e){if(!e)return null;for(let t=e.length-1;t>=0;t--){let n=e[t][1];if(n!==null)return n}return null}function id(e,t){if(t===`prozent`)return 100;let n=0;for(let t of e)for(let[,e]of t??[])e!==null&&e>n&&(n=e);if(t===`grad`)return Math.max(60,Math.ceil((n+5)/10)*10);if(n<=0)return 1;let r=10**Math.floor(Math.log10(n));for(let e of[1,2,2.5,5,10])if(e*r>=n)return e*r;return 10*r}function ad(e,t,n){return e===null?`ruhig`:e>=n?`rot`:e>=t?`gelb`:`ruhig`}var od=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),sd=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function cd(e,t){let n=new Date(e*1e3);return(t?sd:od).format(n).replace(`,`,``)}function ld(e){if(!e||e<0)return`–`;let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t} T ${n} h`:n>0?`${n} h ${r} min`:`${r} min`}function ud(e,t,n){let r=``,i=!1;for(let[a,o]of e){if(o===null){i=!1;continue}r+=`${i?`L`:`M`}${t(a).toFixed(1)},${n(o).toFixed(1)}`,i=!0}return r}function dd(e,t,n,r){let i=``,a=[],o=()=>{a.length>1&&(i+=`M${a[0][0].toFixed(1)},${r}`+a.map(([e,t])=>`L${e.toFixed(1)},${t.toFixed(1)}`).join(``)+`L${a[a.length-1][0].toFixed(1)},${r}Z`),a=[]};for(let[r,i]of e)i===null?o():a.push([t(r),n(i)]);return o(),i}function fd(e){if(!Number.isFinite(e)||e<=0)return[0,1];for(let t=0;;t++)for(let n of[1,2,2.5,5]){let r=n*10**t;if(!Number.isInteger(r))continue;let i=Math.ceil(e/r);if(i<=4)return Array.from({length:i+1},(e,t)=>t*r)}}var X=e=>Number(e.toFixed(1));function pd(e,t,n,r,i=4){let a=Math.max(0,Math.min(i,n/2,r));return`M${X(e)},${X(t+r)}V${X(t+a)}Q${X(e)},${X(t)} ${X(e+a)},${X(t)}H${X(e+n-a)}Q${X(e+n)},${X(t)} ${X(e+n)},${X(t+a)}V${X(t+r)}Z`}function md(e,t,n=2){let r=[],i=0;e.forEach((e,a)=>{if(!(e>0))return;let o=t(i);i+=e;let s=t(i);r.push({index:a,y:s,hoehe:Math.max(0,o-s-(r.length?n:0)),oben:!1})});let a=r.filter(e=>e.hoehe>=1).at(-1);return a&&(a.oben=!0),r}function hd(e){let t=(0,z.c)(22),{punkte:n,max:r,farbe:i,hoehe:a,beschriftung:o}=e,s=i===void 0?`var(--reihe-1)`:i,c=a===void 0?36:a,l=n[0]?.[0]??0,u=n[n.length-1]?.[0]??1,d;t[0]!==l||t[1]!==u?(d=e=>u>l?(e-l)/(u-l)*100:0,t[0]=l,t[1]=u,t[2]=d):d=t[2];let f=d,p;t[3]!==c||t[4]!==r?(p=e=>c-2-Math.min(e,r)/(r||1)*(c-4),t[3]=c,t[4]=r,t[5]=p):p=t[5];let m=p,h;t[6]===n?h=t[7]:(h=n.some(gd),t[6]=n,t[7]=h);let g=h,_=`0 0 100 ${c}`,v;t[8]===c?v=t[9]:(v={height:c},t[8]=c,t[9]=v);let y;t[10]!==s||t[11]!==g||t[12]!==c||t[13]!==n||t[14]!==f||t[15]!==m?(y=g&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{d:dd(n,f,m,c),fill:s,opacity:.12}),(0,A.jsx)(`path`,{d:ud(n,f,m),fill:`none`,stroke:s,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`})]}),t[10]=s,t[11]=g,t[12]=c,t[13]=n,t[14]=f,t[15]=m,t[16]=y):y=t[16];let b;return t[17]!==o||t[18]!==_||t[19]!==v||t[20]!==y?(b=(0,A.jsx)(`svg`,{role:`img`,"aria-label":o,viewBox:_,preserveAspectRatio:`none`,className:`block w-full`,style:v,children:y}),t[17]=o,t[18]=_,t[19]=v,t[20]=y,t[21]=b):b=t[21],b}function gd(e){let[,t]=e;return t!==null}var _d={ruhig:{wert:`text-foreground`,marke:null},gelb:{wert:`text-bernstein`,marke:`hoch`},rot:{wert:`text-rot-text`,marke:`kritisch`}};function vd(e){let t=(0,z.c)(29),{label:n,wert:r,einheit:i,punkte:o,max:s,zustand:c,farbe:l,zeitraumText:u}=e,d=_d[c===void 0?`ruhig`:c],f;t[0]===n?f=t[1]:(f=(0,A.jsx)(`span`,{className:`schild text-xs tracking-[0.18em] text-text-3`,children:n}),t[0]=n,t[1]=f);let p;t[2]===d.wert?p=t[3]:(p=a(`font-anzeige text-[28px] leading-none font-bold`,d.wert),t[2]=d.wert,t[3]=p);let m;t[4]!==i||t[5]!==r?(m=nd(r,i),t[4]=i,t[5]=r,t[6]=m):m=t[6];let h;t[7]!==p||t[8]!==m?(h=(0,A.jsx)(`span`,{className:p,children:m}),t[7]=p,t[8]=m,t[9]=h):h=t[9];let g;t[10]!==d.marke||t[11]!==d.wert?(g=d.marke&&(0,A.jsx)(`span`,{className:a(`schild text-[11px]`,d.wert),children:d.marke}),t[10]=d.marke,t[11]=d.wert,t[12]=g):g=t[12];let _;t[13]!==h||t[14]!==g?(_=(0,A.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[h,g]}),t[13]=h,t[14]=g,t[15]=_):_=t[15];let v;t[16]!==l||t[17]!==n||t[18]!==s||t[19]!==o||t[20]!==u?(v=o&&o.length>1&&(0,A.jsx)(hd,{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]=v):v=t[21];let y;t[22]===o?y=t[23]:(y=o&&o.length<=1&&(0,A.jsx)(`span`,{className:`h-9`,"aria-hidden":!0}),t[22]=o,t[23]=y);let b;return t[24]!==f||t[25]!==_||t[26]!==v||t[27]!==y?(b=(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5 rounded-xl border border-linie bg-erhaben/50 px-3.5 pt-3 pb-2`,children:[f,_,v,y]}),t[24]=f,t[25]=_,t[26]=v,t[27]=y,t[28]=b):b=t[28],b}var yd=new Set([`snapshot-anlegen`,`snapshot-loeschen`,`snapshot-zurueck`,`sicherung-loeschen`]),bd=e=>yd.has(e.baustein),xd={update:{chip:`vor Update`,text:`Rückweg vor einem Update`},knopf:{chip:`per Knopf`,text:`Hier per Knopf angelegt`},proxmox:{chip:`von Hand`,text:`Von Hand in Proxmox angelegt`}};function Sd(e,t){return e===null?`Zeitpunkt unbekannt`:vs(new Date(e*1e3).toISOString(),new Date(t*1e3))}function Cd(e,t){return e===null?``:bs(e,t*1e3)}function wd(e){return e===null||e<=0?null:e<1e9?`${Math.round(e/1e6)} MB`:`${(e/1e9).toFixed(1).replace(`.`,`,`)} GB`}function Td(e,t){let n=e.startsWith(`${t}: `)?e.slice(t.length+2):e;return n.charAt(0).toUpperCase()+n.slice(1)}function Ed(e){let t=[`${e.snapshots} ${e.snapshots===1?`Snapshot`:`Snapshots`}`];return e.sicherungen>0&&t.push(`${e.sicherungen} ${e.sicherungen===1?`Sicherung`:`Sicherungen`}`),t.join(` · `)}function Dd(e){if(e.aktion)return null;let t=e.grund??``,n=t.match(/erst ab (\d{2}\.\d{2}\.(?:\d{4})? ?\d{2}:\d{2})/)?.[1];return n?`ab ${n}`:/eigene Oberfläche|eigenen Oberfläche|eigenes Update/i.test(t)?`über die App`:null}function Od(e){let t=e.bausteine.filter(e=>e.zustand===`neu`);if(t.length===0)return null;let n=[],r=au(e);if(r?.zustand===`neu`){let e=Dd(r);n.push(`App → ${r.verfuegbar??`neu`}${e?` (${e})`:``}`)}let i=W(e);i?.zustand===`neu`&&n.push(i.kurz||(i.id===`docker`?`Images`:`Pakete`));for(let e of t)e!==r&&e!==i&&n.push(`${e.name}${e.kurz?` · ${e.kurz}`:``}`);return{id:e.id,name:e.name,teile:n,knopf:t.some(e=>!!e.aktion)}}function kd(e){return e.bausteine.filter(e=>e.zustand===`neu`).map(t=>({id:`${e.id}-${t.id}`,name:t.name,teile:[t.kurz||t.verfuegbar||`neu`],knopf:!!t.aktion}))}function Ad(e){let t=e.flatMap(e=>e.art===`ki-box`?kd(e):[Od(e)]).filter(e=>e!==null);return[...t.filter(e=>e.knopf),...t.filter(e=>!e.knopf)]}function jd(e){return e.getrennt.length>0?{stufe:`rot`,titel:`Verbindung weg`,text:`${e.getrennt.join(` und `)} antwortet nicht.`}:e.stumm.length>0||e.hinweiseRot>0?{stufe:`rot`,titel:`Störung`,text:`${e.stumm.length>0?`${e.stumm.join(`, `)} antwortet nicht`:`Ein roter Hinweis wartet`}.`}:e.hinweise>0?{stufe:`gelb`,titel:e.hinweise===1?`1 Hinweis`:`${e.hinweise} Hinweise`,text:`Bei Gelegenheit ansehen.`}:e.updates>0?{stufe:`info`,titel:`Alles läuft`,text:`${e.updates} ${e.updates===1?`Update steht`:`Updates stehen`} bereit.`}:{stufe:`ok`,titel:`Alles läuft`,text:`Keine Hinweise, keine offenen Updates.`}}var Md={ok:{rahmen:`border-gruen-rand bg-gruen-grund`,titel:`text-gruen`,Symbol:Za},info:{rahmen:`border-cyan-rand bg-cyan-grund`,titel:`text-cyan`,Symbol:lo},gelb:{rahmen:`border-bernstein/70 bg-bernstein-grund`,titel:`text-bernstein`,Symbol:Ya},rot:{rahmen:`border-rot bg-rot-grund`,titel:`text-rot`,Symbol:Ya}};function Nd(e){let t=(0,z.c)(17),{label:n,wert:r,zusatz:i,art:o}=e,s,c,l;t[0]!==o||t[1]!==n?(c=`flex min-w-0 flex-col gap-1 rounded-xl border border-linie bg-panel/70 px-4 py-3`,t[5]===n?l=t[6]:(l=(0,A.jsx)(`span`,{className:`schild text-xs tracking-[0.18em] text-text-3`,children:n}),t[5]=n,t[6]=l),s=a(`font-anzeige text-[32px] leading-none font-bold`,{gruen:`text-gruen`,bernstein:`text-bernstein`,cyan:`text-cyan`,rot:`text-rot-text`,grau:`text-foreground`}[o]),t[0]=o,t[1]=n,t[2]=s,t[3]=c,t[4]=l):(s=t[2],c=t[3],l=t[4]);let u;t[7]!==s||t[8]!==r?(u=(0,A.jsx)(`span`,{className:s,children:r}),t[7]=s,t[8]=r,t[9]=u):u=t[9];let d;t[10]===i?d=t[11]:(d=i&&(0,A.jsx)(`span`,{className:`truncate text-xs text-text-3`,children:i}),t[10]=i,t[11]=d);let f;return t[12]!==c||t[13]!==l||t[14]!==u||t[15]!==d?(f=(0,A.jsxs)(`div`,{className:c,children:[l,u,d]}),t[12]=c,t[13]=l,t[14]=u,t[15]=d,t[16]=f):f=t[16],f}var Pd={online:`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`,verbinde:`bg-bernstein`,getrennt:`bg-rot`,fehlt:`bg-text-3`},Fd={online:`online`,verbinde:`verbinde`,getrennt:`getrennt`,fehlt:`nicht eingerichtet`};function Id(e){let t=(0,z.c)(43),{bereich:n,name:r,verbindung:i,cockpit:o,children:s}=e,c,l,u,d,f,p,m,h,g;if(t[0]!==n||t[1]!==o||t[2]!==r){let e=n===`box`?{rand:`border-box-rand`,kopf:`from-box-grund`,text:`text-box-text`,balken:`bg-box`}:{rand:`border-lab-rand`,kopf:`from-lab-grund`,text:`text-lab-text`,balken:`bg-lab`};h=r,g=a(`flex min-w-0 flex-col overflow-hidden rounded-2xl border bg-panel`,e.rand),c=ta,p=o,m=a(`group flex items-center justify-between gap-3 bg-gradient-to-r to-transparent px-5 py-4 sm:px-6`,e.kopf),d=`flex items-center gap-3`,f=(0,A.jsx)(`span`,{"aria-hidden":!0,className:a(`h-7 w-1.5 rounded-full`,e.balken)}),u=`flex flex-col leading-tight`,l=a(`schild text-lg font-bold tracking-[0.22em]`,e.text),t[0]=n,t[1]=o,t[2]=r,t[3]=c,t[4]=l,t[5]=u,t[6]=d,t[7]=f,t[8]=p,t[9]=m,t[10]=h,t[11]=g}else c=t[3],l=t[4],u=t[5],d=t[6],f=t[7],p=t[8],m=t[9],h=t[10],g=t[11];let _;t[12]!==r||t[13]!==l?(_=(0,A.jsx)(`span`,{className:l,children:r}),t[12]=r,t[13]=l,t[14]=_):_=t[14];let v=Pd[i],y;t[15]===v?y=t[16]:(y=a(`size-2 rounded-full`,v),t[15]=v,t[16]=y);let b;t[17]===y?b=t[18]:(b=(0,A.jsx)(`span`,{"aria-hidden":!0,className:y}),t[17]=y,t[18]=b);let x=Fd[i],S;t[19]!==b||t[20]!==x?(S=(0,A.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-text-3`,children:[b,x]}),t[19]=b,t[20]=x,t[21]=S):S=t[21];let C;t[22]!==S||t[23]!==u||t[24]!==_?(C=(0,A.jsxs)(`span`,{className:u,children:[_,S]}),t[22]=S,t[23]=u,t[24]=_,t[25]=C):C=t[25];let w;t[26]!==C||t[27]!==d||t[28]!==f?(w=(0,A.jsxs)(`span`,{className:d,children:[f,C]}),t[26]=C,t[27]=d,t[28]=f,t[29]=w):w=t[29];let T;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,A.jsxs)(`span`,{className:`flex items-center gap-1.5 text-sm text-text-2 group-hover:text-foreground`,children:[`Cockpit `,(0,A.jsx)(qa,{className:`size-4 transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0})]}),t[30]=T):T=t[30];let E;t[31]!==c||t[32]!==w||t[33]!==p||t[34]!==m?(E=(0,A.jsxs)(c,{to:p,className:m,children:[w,T]}),t[31]=c,t[32]=w,t[33]=p,t[34]=m,t[35]=E):E=t[35];let D;t[36]===s?D=t[37]:(D=(0,A.jsx)(`div`,{className:`flex flex-col gap-5 px-5 pt-1 pb-5 sm:px-6`,children:s}),t[36]=s,t[37]=D);let O;return t[38]!==E||t[39]!==D||t[40]!==h||t[41]!==g?(O=(0,A.jsxs)(`section`,{"aria-label":h,className:g,children:[E,D]}),t[38]=E,t[39]=D,t[40]=h,t[41]=g,t[42]=O):O=t[42],O}function Ld(e){let t=(0,z.c)(5),{titel:n,rechts:r}=e,i;t[0]===n?i=t[1]:(i=(0,A.jsx)(`h3`,{className:`schild text-sm tracking-[0.2em] text-text-2`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a}function Rd(e){let t=(0,z.c)(13),{zeilen:n,ziel:r,laedt:i,alleAktuell:o}=e,s;t[0]===n?s=t[1]:(s=n.filter(zd),t[0]=n,t[1]=s);let c=s.length,l;t[2]!==c||t[3]!==n.length?(l=(0,A.jsx)(Ld,{titel:`Updates`,rechts:c>0?(0,A.jsxs)(Zu,{art:`cyan`,children:[c,` bereit`]}):n.length>0?(0,A.jsx)(Zu,{children:`wartet`}):(0,A.jsx)(Zu,{art:`gruen`,children:`aktuell`})}),t[2]=c,t[3]=n.length,t[4]=l):l=t[4];let u;t[5]!==o||t[6]!==i||t[7]!==n||t[8]!==r?(u=i?(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wird gelesen …`}):n.length===0?(0,A.jsxs)(`p`,{className:`flex items-center gap-2 text-sm text-gruen-text`,children:[(0,A.jsx)(Za,{className:`size-4`,"aria-hidden":!0}),o]}):(0,A.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:n.map(e=>(0,A.jsx)(`li`,{children:(0,A.jsxs)(ta,{to:r,className:`group -mx-2 grid grid-cols-[minmax(0,9rem)_minmax(0,1fr)_auto] items-baseline gap-3 rounded-lg px-2 py-1.5 hover:bg-erhaben`,children:[(0,A.jsx)(`span`,{className:`truncate text-[15px] font-medium`,children:e.name}),(0,A.jsx)(`span`,{className:a(`min-w-0 text-sm`,e.knopf?`text-cyan`:`text-text-3`),children:e.teile.join(` · `)}),(0,A.jsx)(qa,{className:`size-3.5 self-center text-text-3 opacity-0 group-hover:opacity-100`,"aria-hidden":!0})]})},e.id))}),t[5]=o,t[6]=i,t[7]=n,t[8]=r,t[9]=u):u=t[9];let d;return t[10]!==l||t[11]!==u?(d=(0,A.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12],d}function zd(e){return e.knopf}function Bd(e){let t=(0,z.c)(18),{hinweise:n,ziel:r}=e;if(n.length===0)return null;let i,o,s,c;if(t[0]!==n||t[1]!==r){let e=[...n].sort(Hd);s=`flex flex-col gap-2`;let l=n.some(Vd)?`rot`:`bernstein`;t[6]!==n.length||t[7]!==l?(c=(0,A.jsx)(Ld,{titel:`Hinweise`,rechts:(0,A.jsx)(Zu,{art:l,children:n.length})}),t[6]=n.length,t[7]=l,t[8]=c):c=t[8],i=`m-0 flex list-none flex-col gap-1 p-0`;let u;t[9]===r?u=t[10]:(u=e=>(0,A.jsx)(`li`,{children:(0,A.jsxs)(ta,{to:r,className:`-mx-2 flex items-start gap-2 rounded-lg px-2 py-1.5 hover:bg-erhaben`,children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:a(`mt-1.5 size-2 shrink-0 rounded-full`,e.stufe===`rot`?`bg-rot`:`bg-bernstein`)}),(0,A.jsx)(`span`,{className:a(`text-sm`,e.stufe===`rot`?`text-rot-text`:`text-bernstein`),children:e.titel})]})},e.id),t[9]=r,t[10]=u),o=e.slice(0,3).map(u),t[0]=n,t[1]=r,t[2]=i,t[3]=o,t[4]=s,t[5]=c}else i=t[2],o=t[3],s=t[4],c=t[5];let l;t[11]!==i||t[12]!==o?(l=(0,A.jsx)(`ul`,{className:i,children:o}),t[11]=i,t[12]=o,t[13]=l):l=t[13];let u;return t[14]!==s||t[15]!==c||t[16]!==l?(u=(0,A.jsxs)(`div`,{className:s,children:[c,l]}),t[14]=s,t[15]=c,t[16]=l,t[17]=u):u=t[17],u}function Vd(e){return e.stufe===`rot`}function Hd(e,t){return Number(t.stufe===`rot`)-Number(e.stufe===`rot`)}function Ud(e){let t=(0,z.c)(4),{werte:n}=e,r;t[0]===n?r=t[1]:(r=n.map(Wd),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,A.jsx)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4 xl:grid-cols-2 2xl:grid-cols-4`,children:r}),t[2]=r,t[3]=i),i}function Wd(e){return(0,A.jsx)(vd,{label:e.label,wert:e.wert,einheit:e.einheit,punkte:e.punkte,max:(e.einheit,100),zustand:ad(e.wert??null,e.gelb,e.rot),zeitraumText:`letzte Stunde`},e.label)}function Gd(e){let t=(0,z.c)(33),{verbindung:n}=e,r=Ds(),i=nc(),a=hc(`1h`),o=ss(),s=a.data?.reihen,c=r.data?.box,l=o?.ram??(c?.ram_used&&c.ram_total?c.ram_used/c.ram_total*100:null),u=o?.cpu??a.data?.aktuell.cpu,d=s?.cpu,f;t[0]!==u||t[1]!==d?(f={label:`CPU`,wert:u,einheit:`prozent`,punkte:d,gelb:85,rot:95},t[0]=u,t[1]=d,t[2]=f):f=t[2];let p=s?.ram,m;t[3]!==l||t[4]!==p?(m={label:`Speicher`,wert:l,einheit:`prozent`,punkte:p,gelb:85,rot:95},t[3]=l,t[4]=p,t[5]=m):m=t[5];let h=o?.temp_cpu??c?.temp_cpu,g=s?.temp_cpu,_;t[6]!==h||t[7]!==g?(_={label:`Temperatur`,wert:h,einheit:`grad`,punkte:g,gelb:80,rot:90},t[6]=h,t[7]=g,t[8]=_):_=t[8];let v=o?.disk??c?.platte?.percent,y=s?.platte,b;t[9]!==y||t[10]!==v?(b={label:`Platte`,wert:v,einheit:`prozent`,punkte:y,gelb:80,rot:90},t[9]=y,t[10]=v,t[11]=b):b=t[11];let x;t[12]!==b||t[13]!==f||t[14]!==m||t[15]!==_?(x=(0,A.jsx)(Ud,{werte:[f,m,_,b]}),t[12]=b,t[13]=f,t[14]=m,t[15]=_,t[16]=x):x=t[16];let S;t[17]===i.data?.ziele?S=t[18]:(S=i.data?.ziele??[],t[17]=i.data?.ziele,t[18]=S);let C;t[19]===S?C=t[20]:(C=Ad(S),t[19]=S,t[20]=C);let w;t[21]!==C||t[22]!==i.isPending?(w=(0,A.jsx)(Rd,{zeilen:C,ziel:`/box/updates`,laedt:i.isPending,alleAktuell:`Betriebssystem, Motor, llama-swap und Hermes sind aktuell.`}),t[21]=C,t[22]=i.isPending,t[23]=w):w=t[23];let T;t[24]===r.data?.hinweise?T=t[25]:(T=r.data?.hinweise??[],t[24]=r.data?.hinweise,t[25]=T);let E;t[26]===T?E=t[27]:(E=(0,A.jsx)(Bd,{hinweise:T,ziel:`/box`}),t[26]=T,t[27]=E);let D;return t[28]!==x||t[29]!==w||t[30]!==E||t[31]!==n?(D=(0,A.jsxs)(Id,{bereich:`box`,name:`KI-Box`,verbindung:n,cockpit:`/box`,children:[x,w,E]}),t[28]=x,t[29]=w,t[30]=E,t[31]=n,t[32]=D):D=t[32],D}function Kd(e){let t=(0,z.c)(14),{verbindung:n}=e,r=n===`online`,i=rc(r),a=oc(r),o=gc(`1h`,r),s;t[0]===o.data?.geraete?s=t[1]:(s=o.data?.geraete.find(qd),t[0]=o.data?.geraete,t[1]=s);let c=s,l;t[2]===i.data?.ziele?l=t[3]:(l=i.data?.ziele??[],t[2]=i.data?.ziele,t[3]=l);let u=l,d;t[4]!==r||t[5]!==a||t[6]!==i.isPending||t[7]!==c?.aktuell||t[8]!==c?.reihen||t[9]!==u?(d=r?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,A.jsx)(Ld,{titel:`Proxmox-Host`}),(0,A.jsx)(Ud,{werte:[{label:`CPU`,wert:c?.aktuell.cpu,einheit:`prozent`,punkte:c?.reihen.cpu,gelb:85,rot:95},{label:`Speicher`,wert:c?.aktuell.ram,einheit:`prozent`,punkte:c?.reihen.ram,gelb:90,rot:95},{label:`Temperatur`,wert:c?.aktuell.temp_cpu,einheit:`grad`,punkte:c?.reihen.temp_cpu,gelb:80,rot:90},{label:`Platte`,wert:c?.aktuell.platte,einheit:`prozent`,punkte:c?.reihen.platte,gelb:80,rot:90}]})]}),(0,A.jsx)(Rd,{zeilen:Ad(u),ziel:`/homelab/updates`,laedt:i.isPending,alleAktuell:`Alle Geräte sind aktuell.`}),(0,A.jsx)(Bd,{hinweise:a.data?.hinweise??[],ziel:`/homelab`})]}):(0,A.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht; die Karte zeigt nichts Veraltetes.`}),t[4]=r,t[5]=a,t[6]=i.isPending,t[7]=c?.aktuell,t[8]=c?.reihen,t[9]=u,t[10]=d):d=t[10];let f;return t[11]!==d||t[12]!==n?(f=(0,A.jsx)(Id,{bereich:`homelab`,name:`Homelab`,verbindung:n,cockpit:`/homelab`,children:d}),t[11]=d,t[12]=n,t[13]=f):f=t[13],f}function qd(e){return e.art===`proxmox-host`}var Jd={eingespielt:`gruen`,gruen:`gruen`,zurueckgerollt:`bernstein`,gelb:`bernstein`,fehler:`rot`,rot:`rot`,neustart:`cyan`,info:`cyan`,aufgeraeumt:`gruen`};function Yd(e){let t=(0,z.c)(9),{homelabAktiv:n}=e,r=Ps(),i=ic(n),a,o,s;if(t[0]!==r.data?.laeufe||t[1]!==i.data?.laeufe){s=Symbol.for(`react.early_return_sentinel`);bb0:{let e=[...(r.data?.laeufe??[]).slice(0,6).map(ef),...(i.data?.laeufe??[]).filter($d).slice(0,6).map(Qd)].sort(Zd).slice(0,6);if(e.length===0){let e;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,A.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Updates aufgezeichnet.`}),t[5]=e):e=t[5],s=e;break bb0}a=`@container m-0 flex list-none flex-col p-0`,o=e.map(Xd)}t[0]=r.data?.laeufe,t[1]=i.data?.laeufe,t[2]=a,t[3]=o,t[4]=s}else a=t[2],o=t[3],s=t[4];if(s!==Symbol.for(`react.early_return_sentinel`))return s;let c;return t[6]!==a||t[7]!==o?(c=(0,A.jsx)(`ol`,{className:a,children:o}),t[6]=a,t[7]=o,t[8]=c):c=t[8],c}function Xd(e){return(0,A.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-linie py-2.5 first:border-t-0 @md:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[(0,A.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:vs(new Date(e.zeit).toISOString())}),(0,A.jsxs)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-[15px] @md:col-span-1 @md:col-start-2 @md:row-start-1`,children:[(0,A.jsx)(`span`,{className:a(`schild mr-2 text-[11px]`,e.bereich===`KI-Box`?`text-box-text`:`text-lab-text`),children:e.bereich}),e.titel]}),(0,A.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @md:col-start-3`,children:(0,A.jsx)(Zu,{art:e.art,children:e.chip})})]},`${e.bereich}-${e.zeit}-${e.titel}`)}function Zd(e,t){return t.zeit-e.zeit}function Qd(e){return{zeit:e.start*1e3,bereich:`Homelab`,titel:e.name,chip:e.ergebnis??`unterbrochen`,art:(e.ergebnis?Jd[e.ergebnis]:`grau`)??`grau`}}function $d(e){return e.status!==`laeuft`&&!bd(e)}function ef(e){return{zeit:new Date(e.start).getTime(),bereich:`KI-Box`,titel:e.anlass,chip:e.titel,art:Jd[e.stufe]??`grau`}}function tf(){let e=(0,z.c)(92),t=Cu(),n=Ds(),r=t.homelab.verbindung===`online`,i=rc(r),o=oc(r);if(n.isPending&&!n.data){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(Qu,{text:`Die Übersicht sammelt sich gleich …`}),e[0]=t):t=e[0],t}let s,c,l;if(e[1]!==i.data?.ziele||e[2]!==o.data?.hinweise||e[3]!==t.box.updates||e[4]!==t.box.verbindung||e[5]!==t.homelab.updates||e[6]!==t.homelab.verbindung||e[7]!==n.data?.hinweise||e[8]!==n.isError){let r=[...t.box.verbindung===`getrennt`&&n.isError?[`Die KI-Box`]:[],...t.homelab.verbindung===`getrennt`?[`Der Homelab-Teil`]:[]],a=(i.data?.ziele??[]).filter(sf).map(of),u;e[12]===n.data?.hinweise?u=e[13]:(u=n.data?.hinweise??[],e[12]=n.data?.hinweise,e[13]=u);let d;e[14]===o.data?.hinweise?d=e[15]:(d=o.data?.hinweise??[],e[14]=o.data?.hinweise,e[15]=d);let f;e[16]!==u||e[17]!==d?(f=[...u,...d],e[16]=u,e[17]=d,e[18]=f):f=e[18],s=f,l=t.box.updates+t.homelab.updates;let p;e[19]===s?p=e[20]:(p=s.filter(af),e[19]=s,e[20]=p),c=jd({getrennt:r,stumm:a,hinweiseRot:p.length,hinweise:s.length,updates:l}),e[1]=i.data?.ziele,e[2]=o.data?.hinweise,e[3]=t.box.updates,e[4]=t.box.verbindung,e[5]=t.homelab.updates,e[6]=t.homelab.verbindung,e[7]=n.data?.hinweise,e[8]=n.isError,e[9]=s,e[10]=c,e[11]=l}else s=e[9],c=e[10],l=e[11];let u=c,d=Md[u.stufe],f;e[21]===i.data?.ziele?f=e[22]:(f=i.data?.ziele??[],e[21]=i.data?.ziele,e[22]=f);let p=f,m;e[23]===p?m=e[24]:(m=p.filter(rf),e[23]=p,e[24]=m);let h=m.length+ +(t.box.verbindung===`online`),g=p.length+1,_=n.data?.flugplan.geplant[0],v;e[25]===d.rahmen?v=e[26]:(v=a(`grid gap-4 rounded-2xl border p-4 sm:p-5 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.6fr)] lg:items-center`,d.rahmen),e[25]=d.rahmen,e[26]=v);let y=d.Symbol,b;e[27]===d.titel?b=e[28]:(b=a(`size-10 shrink-0`,d.titel),e[27]=d.titel,e[28]=b);let x;e[29]!==d.Symbol||e[30]!==b?(x=(0,A.jsx)(y,{className:b,"aria-hidden":!0}),e[29]=d.Symbol,e[30]=b,e[31]=x):x=e[31];let S;e[32]===d.titel?S=e[33]:(S=a(`font-anzeige text-[34px] leading-none font-bold tracking-[0.02em]`,d.titel),e[32]=d.titel,e[33]=S);let C;e[34]!==u.titel||e[35]!==S?(C=(0,A.jsx)(`span`,{className:S,children:u.titel}),e[34]=u.titel,e[35]=S,e[36]=C):C=e[36];let w;e[37]===u.text?w=e[38]:(w=(0,A.jsx)(`span`,{className:`text-[15px] text-text-2`,children:u.text}),e[37]=u.text,e[38]=w);let T;e[39]!==C||e[40]!==w?(T=(0,A.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[C,w]}),e[39]=C,e[40]=w,e[41]=T):T=e[41];let E;e[42]!==x||e[43]!==T?(E=(0,A.jsxs)(`div`,{className:`flex items-center gap-4 px-1`,children:[x,T]}),e[42]=x,e[43]=T,e[44]=E):E=e[44];let D=String(l),O=l?`cyan`:`gruen`,ee=`KI-Box ${t.box.updates} · Homelab ${t.homelab.updates}`,te;e[45]!==D||e[46]!==O||e[47]!==ee?(te=(0,A.jsx)(Nd,{label:`Updates bereit`,wert:D,art:O,zusatz:ee}),e[45]=D,e[46]=O,e[47]=ee,e[48]=te):te=e[48];let ne=String(s.length),re=s.some(nf)?`rot`:s.length?`bernstein`:`gruen`,ie;e[49]!==ne||e[50]!==re?(ie=(0,A.jsx)(Nd,{label:`Hinweise`,wert:ne,art:re}),e[49]=ne,e[50]=re,e[51]=ie):ie=e[51];let ae=`${h}/${g}`,k=h(0,A.jsx)(Ri,{to:`/`})}),lf=ia({getParentRoute:()=>cf,path:`/`,component:tf}),uf=ia({getParentRoute:()=>cf,path:`/box`,component:L(()=>Vu(()=>import(`./Start-BicB1Gxf.js`),__vite__mapDeps([5,1,3,6])),`StartSeite`)}),df=ia({getParentRoute:()=>cf,path:`/box/updates`,component:L(()=>Vu(()=>import(`./Updates-D5yJY-fn.js`),__vite__mapDeps([7,1,8,3,9,4,10])),`UpdatesSeite`)}),ff=ia({getParentRoute:()=>cf,path:`/box/modelle`,component:L(()=>Vu(()=>import(`./Modelle-Bh5l5QHZ.js`),__vite__mapDeps([11,1,12,13,8,14,3,2,4,9,10,15])),`ModelleSeite`)}),pf=ia({getParentRoute:()=>cf,path:`/box/monitoring`,component:L(()=>Vu(()=>import(`./Monitoring-D7SndtTk.js`),__vite__mapDeps([16,1,15])),`BoxMonitoringSeite`)}),Z=ia({getParentRoute:()=>cf,path:`/box/dienste`,component:L(()=>Vu(()=>import(`./Dienste-atjWw704.js`),__vite__mapDeps([17,1,3,9,4])),`DiensteSeite`)}),mf=ia({getParentRoute:()=>cf,path:`/homelab`,component:L(()=>Vu(()=>import(`./Homelab-Cf4eLYlp.js`),__vite__mapDeps([18,1,8,19,14,3,9,4,6])),`HomelabSeite`)}),hf=ia({getParentRoute:()=>cf,path:`/homelab/updates`,component:L(()=>Vu(()=>import(`./Homelab-Cf4eLYlp.js`),__vite__mapDeps([18,1,8,19,14,3,9,4,6])),`HomelabUpdatesSeite`)}),gf=ia({getParentRoute:()=>cf,path:`/homelab/snapshots`,component:L(()=>Vu(()=>import(`./HomelabSnapshots-BHJkSmwO.js`),__vite__mapDeps([20,1,19,3,9,4])),`HomelabSnapshotsSeite`)}),_f=ia({getParentRoute:()=>cf,path:`/homelab/monitoring`,component:L(()=>Vu(()=>import(`./Monitoring-D7SndtTk.js`),__vite__mapDeps([16,1,15])),`HomelabMonitoringSeite`)}),vf=ia({getParentRoute:()=>cf,path:`/homelab/protokoll`,component:L(()=>Vu(()=>import(`./HomelabProtokoll-CwVh3SKG.js`),__vite__mapDeps([21,1,8,14])),`HomelabProtokollSeite`)}),yf=ia({getParentRoute:()=>cf,path:`/einstellungen`,component:L(()=>Vu(()=>import(`./Einstellungen-BUM2VQDj.js`),__vite__mapDeps([22,1,3,9,4])),`EinstellungenSeite`)}),bf=ia({getParentRoute:()=>cf,path:`/updates`,beforeLoad:()=>{throw un({to:`/box/updates`})}}),xf=ia({getParentRoute:()=>cf,path:`/modelle`,beforeLoad:({location:e})=>{throw un({to:`/box/modelle`,hash:e.hash||void 0})}}),Sf=Sa({routeTree:cf.addChildren([lf,uf,df,ff,pf,Z,mf,hf,_f,vf,yf,bf,xf,gf]),defaultPreload:`intent`,defaultErrorComponent:Oa}),Cf=`mc_neuladen_wegen_version`;function wf(){window.addEventListener(`vite:preloadError`,e=>{sessionStorage.getItem(Cf)||(e.preventDefault(),sessionStorage.setItem(Cf,`1`),window.location.reload())}),window.addEventListener(`load`,()=>{window.setTimeout(()=>sessionStorage.removeItem(Cf),5e3)})}wf();var Tf=new pt({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});(0,Da.createRoot)(document.getElementById(`root`)).render((0,A.jsx)(k.StrictMode,{children:(0,A.jsx)(ce,{client:Tf,children:(0,A.jsx)(Ta,{router:Sf})})}));export{ic as $,wo as $t,mu as A,Vs as At,fc as B,ws as Bt,Qu as C,Ms as Ct,au as D,uc as Dt,Iu as E,Ds as Et,W as F,Ss as Ft,hc as G,Po as Gt,Ec as H,Ko as Ht,su as I,Cs as It,qs as J,Ro as Jt,Is as K,zo as Kt,du as L,xs as Lt,ou as M,ac as Mt,pu as N,Ys as Nt,tu as O,Ns as Ot,cu as P,vs as Pt,oc as Q,Fo as Qt,yc as R,ys as Rt,Zu as S,bc as St,Pu as T,dc as Tt,Gs as U,Io as Ut,Dc as V,ss as Vt,Ks as W,Ho as Wt,rc as X,V as Xt,zs as Y,Bo as Yt,Tc as Z,Vo as Zt,nd as _,lc as _t,Ed as a,to as an,ec as at,q as b,_c as bt,vd as c,Ua as cn,Us as ct,pd as d,Li as dn,Os as dt,B as en,gc as et,md as f,F as fn,ks as ft,id as g,Zs as gt,rd as h,As as ht,bd as i,lo as in,Ws as it,_u as j,Ps as jt,gu as k,cc as kt,dd as l,Ea as ln,js as lt,ld as m,re as mn,Fs as mt,Cd as n,vo as nn,Cc as nt,Sd as o,Za as on,Js as ot,fd as p,se as pn,tc as pt,sc as q,Lo as qt,wd as r,fo as rn,Sc as rt,Td as s,qa as sn,Hs as st,xd as t,Do as tn,xc as tt,ud as u,ta as un,Xs as ut,cd as v,$s as vt,Vu as w,wc as wt,G as x,vc as xt,ad as y,Qs as yt,pc as z,bs as zt}; \ No newline at end of file +\r`.includes(e)?``:encodeURIComponent(e))),Hn(e)}function Wn(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=qn(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[Rn];i=Gn(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[Rn];i=Gn(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t,n?.ignoreBlocker??!1),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[Rn]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r,_getBlockers:()=>e.getBlockers?.()??[]}}function Gn(e,t){let n=Jn();return{...t,key:n,__TSR_key:n,[Rn]:e}}function Kn(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=t=>Un(e?.createHref?e.createHref(t):t),c=e?.parseLocation??(()=>qn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=Jn();t.history.replaceState({[Rn]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_=()=>{g&&(S._ignoreSubscribers=!0,(g[2]?t.history.pushState:t.history.replaceState)(g[1],``,g[0]),S._ignoreSubscribers=!1,g=void 0,u=void 0)},v=(t,n,r)=>{let i=e?.createHref?s(n):void 0,a=!!g;a||(u=l),l=qn(n,r),g=[i??l.href,r,g?.[2]||t],a||queueMicrotask(()=>_())},y=e=>{l=c(),S.notify({type:e})},b=async()=>{if(m=!1,f){f=!1;return}let e=c(),n=e.state[Rn]-l.state[Rn],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let r=a();if(typeof document<`u`&&r.length){for(let i of r)if(await i.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(-n),S.notify(u);return}}}l=c(),S.notify(u)},x=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},S=Wn({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>v(!0,e,t),replaceState:(e,t)=>v(!1,e,t),back:e=>(e&&(p=!0,m=!0),t.history.back()),forward:e=>{e&&(p=!0,m=!0),t.history.forward()},go:(e,n)=>{d=!0,n&&(p=!0,m=!0),t.history.go(e)},createHref:e=>s(e),flush:_,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Bn,x,{capture:!0}),t.removeEventListener(zn,b)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return S._ignoreNextBeforeUnload=e=>{m=!1;try{e=new URL(e,t.document.baseURI).href,m=/^https?:/.test(e)&&(!e.includes(`#`)||e.split(`#`)[0]!==t.location.href.split(`#`)[0])}catch{}},t.addEventListener(Bn,x,{capture:!0}),t.addEventListener(zn,b),t.history.pushState=function(...e){let r=n.apply(t.history,e);return S._ignoreSubscribers||y(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return S._ignoreSubscribers||y(`REPLACE`),n},S}function qn(e,t){let n=Un(e),r=n.indexOf(`#`),i=n.indexOf(`?`);if(!t){let e=Jn();t={[Rn]:0,key:e,__TSR_key:e}}return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t}}function Jn(){return(Math.random()+1).toString(36).substring(7)}function Yn(e,t){return e.protocol!==`http:`&&e.protocol!==`https:`||e.origin!==t||!!e.username||!!e.password}function Xn(e){return e.pathname+e.search+e.hash}function Zn(e){return e.options.loader||e.options.beforeLoad||e.lazyFn||e.options.component?.preload||e.options.pendingComponent?.preload}function Qn(e,t){return{fromLocation:t,toLocation:e,pathChanged:t?.pathname!==e.pathname,hrefChanged:t?.href!==e.href,hashChanged:t?.hash!==e.hash}}function $n({key:e,__TSR_key:t,__TSR_index:n,__hashScrollIntoViewOptions:r,...i}){return i}function er(e){return e.findIndex(e=>e.status===`error`||e.status===`notFound`||e._notFound)+1}function tr(e,t,n,r,i,a){r&&(t=t.slice(0,r)),i&&(n=n.slice(0,i));for(let r of t){if(a&&e._tx!==a)return;n.some(e=>e.routeId===r.routeId)||e.routesById[r.routeId].options.onLeave?.(r)}for(let r of n){if(a&&e._tx!==a)return;e.routesById[r.routeId].options[t.some(e=>e.routeId===r.routeId)?`onStay`:`onEnter`]?.(r)}}var nr=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this._scroll={next:!0},this.subscribers=new Set,this._cache=new Map,this._committed=[],this.startTransition=async e=>(e(),!1),this.update=e=>{let t=this.options;this.options={...t,...e},this.isServer=this.options.isServer??!1??typeof document>`u`,this.staticLocations=new WeakMap,this.protocolAllowlist=new Set(this.options.protocolAllowlist),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.history=this.options.history?this.options.history:Kn()),this.origin=this.options.origin,this.origin||=window?.origin&&window.origin!==`null`?window.origin:`http://localhost`;let n=this.options.basepath??`/`,r=this.options.rewrite,i=this.basepath!==n||t?.rewrite!==r||t?.caseSensitive!==this.options.caseSensitive;if(i&&(this.basepath=n,this.rewrite=n!==`/`&&Nt(n)?Pn(n,this.options.caseSensitive,r):r),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;e=this.buildRouteTree(),this.setRoutes(e)}if(this.stores)i&&this.stores.location.set(this.latestLocation);else if(this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=Ln(this.latestLocation,e),$t(this)}},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=wn(this.routeTree,this.options.caseSensitive);return this.options.routeMasks&&bn(this.options.routeMasks,e.processedTree),{...e,resolvePathCache:fn(1e3)}},this.subscribe=(e,t)=>{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{for(let t of this.subscribers)if(t.eventType===e.type)try{t.fn(e)}catch(e){console.error(e)}},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i},a)=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),s=this.options.stringifySearch(i);return{href:e+s+r,publicHref:e+s+r,pathname:b(e),external:!1,searchStr:s,search:o(t?.search,i),hash:b(r.slice(1)),state:w(t?.state,a)}}let s=Fn(this.rewrite,new URL(i,this.origin)),c=this.options.parseSearch(s.search),l=this.options.stringifySearch(c);return s.search=l,{href:s.href.replace(s.origin,``),publicHref:i,pathname:b(Hn(s.pathname)),external:!!this.rewrite&&Yn(s,this.origin),searchStr:l,search:o(t?.search,c),hash:b(s.hash.slice(1)),state:w(t?.state,a)}},r=n(e,e.state),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i,{...i.state,__tempLocation:void 0,key:r.state.key,__TSR_key:r.state.__TSR_key});return e.maskedLocation=r,e}return r},this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>{let t=Object.create(null),n=Cn(Mt(e),this.processedTree,!0);return n&&Object.assign(t,n.rawParams),[n?.branch||[this.routesById.__root__],t,n?.route]},this.buildLocation=e=>{{let t=this.staticLocations.get(e);if(t)return t}let t=!1,n=(n={})=>{if(n.href){let e=qn(n.href,{});n={...n,to:Fn(this.rewrite,new URL(e.pathname,this.origin)).pathname,search:this.options.parseSearch(e.search),hash:e.hash.slice(1)}}let r=n._fromLocation||this._pendingLocation||this.latestLocation,i,a=()=>(t=!0,r),o=()=>(t=!0,i??=this.matchRoutesLightweight(r)),s=n.to?`${n.to}`:`.`,c=Ft(s[0]===`/`?``:n.unsafeRelative===`path`?a().pathname:n.from??o()[1],s,this.options.trailingSlash,this.resolvePathCache),l=this.routesByPath[Mt(c)],d=c.includes(`$`),f;if(l)f=l._branch??=Dn(l);else if(d)f=[];else{let[e,t,n]=this.getMatchedRoutes(c);f=e,this.options.notFoundRoute&&(!n||n.path!==`/`&&t[`**`])&&(f=[...f,this.options.notFoundRoute])}let p=d?l?._interpolation??_n(!1,{fullPath:c},0):void 0,h;for(let e of f){let t=e.options.params?.stringify??e.options.stringifyParams;if(t){let e=o()[3];if(h??=sr(n.params,e),!u(h))break;h===e&&(h=Object.assign(_(),h));try{Object.assign(h,t(h))}catch{}}}h??=sr(n.params,cr(n.params,p)?o()[3]:lr);let g=e.leaveParams?c:Hn(b(p?zt(c,p,h,this.pathParamsDecoder):c)),v=ur(f,e._includeValidateSearch),y=()=>{let t=o()[2];if(e._includeValidateSearch&&this.options.search?.strict){let e={};f.forEach(n=>{if(n.options.validateSearch)try{Object.assign(e,or(n.options.validateSearch,{...e,...t}))}catch{}}),t=e}return t},x=v.length?dr(v,y(),n):n.search===!0?y():typeof n.search==`function`?n.search(y()):n.search||lr,S=this.options.stringifySearch(x),C=n.hash===!0?a().hash:typeof n.hash==`function`?n.hash(a().hash):n.hash||void 0,w=C?`#${C}`:``,T=n.state?n.state===!0?a().state:typeof n.state==`function`?n.state(a().state):n.state:lr,E=`${g}${S}${w}`,D,O,ee=!1;if(this.rewrite){let e=new URL(E,this.origin),t=e.origin,n=In(this.rewrite,e);D=Xn(e),Yn(n,t)?(O=n.href,ee=!0):O=Hn(Xn(n))}else D=m(E),O=D;return{publicHref:O,href:D,pathname:g,search:x,searchStr:S,state:T,hash:C??``,external:ee,unmaskOnReload:n.unmaskOnReload}},r=n(e);if(e.mask)r.maskedLocation=n({from:e.from,...e.mask});else if(this.options.routeMasks){let t=xn(r.pathname,this.processedTree);if(t){let i=Object.assign(_(),t.rawParams),{from:a,params:o,...s}=t.route,c=sr(o,i);r.maskedLocation=n({from:e.from,...s,params:c})}}return!t&&e._fromLocation&&!r.maskedLocation&&this.staticLocations.set(e,r),r},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r=n.maskedLocation??n;if(r.external)return rr(this,r.publicHref,{replace:n.replace,ignoreBlocker:t});let i,a=Mt(this.latestLocation.href)===Mt(n.href)&&c($n(n.state),$n(this.latestLocation.state)),o=this._commitPromise,s,l=new Promise(e=>{s=e});if(l.resolve=()=>{s(),o?.resolve()},this._commitPromise=l,a)this.load();else{let{maskedLocation:r,hashScrollIntoView:a,...o}=n;r&&(o={...r,state:{...r.state,__tempKey:void 0,__tempLocation:{...o,search:o.searchStr,state:{...o.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(o.unmaskOnReload??this.options.unmaskOnReload??!1)&&(o.state.__tempKey=this.tempLocationKey)),o.state={...o.state,__hashScrollIntoViewOptions:a??this.options.defaultHashScrollIntoView??!0},this.shouldViewTransition=e,i=n.replace?`REPLACE`:`PUSH`,this.history[i===`REPLACE`?`replace`:`push`](o.publicHref,o.state,{ignoreBlocker:t}),this.history.subscribers.size||this.load({action:{type:i}})}return this._scroll.next=n.resetScroll??!0,this._commitPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,...a}={})=>{let o=this.buildLocation({...a,_includeValidateSearch:!0});this._pendingLocation=o;let s=this.commitLocation({...o,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return queueMicrotask(()=>{this._pendingLocation===o&&(this._pendingLocation=void 0)}),s},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=n?l(n):void 0;if(a||t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i}),a=t.maskedLocation??t;n??=a.publicHref,r??=a.publicHref}let t=!a&&r?r:n;return rr(this,t,i)}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.load=async e=>{this.updateLatestLocation(),e?.action&&(this._scroll.hash=e.action.type===`PUSH`||e.action.type===`REPLACE`),await ri(this,e)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&window.CSS?.supports?.(`selector(:active-view-transition-type(a))`)){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(Qn(r,i)):t.types;if(a===!1)return e();n={update:e,types:a}}else n=e;return document.startViewTransition(n).updateCallbackDone}return e()},this.invalidate=e=>{let t=this._committed,n=e?.filter,r=this._preloads,i=new Set,a=e=>{(!n||n(e))&&i.add(e.id)};t.forEach(a),this._cache.forEach(a),r?.forEach(e=>e.forEach(a)),this._tx?.[3].forEach(a);let o=[];for(let[e,t]of r??[])t.some(e=>i.has(e.id))&&(r.delete(e),o.push(e));let s=t=>{if(i.has(t.id)){let n=this.routesById[t.routeId],r={...t,invalid:!0,...(e?.forcePending||t.status===`error`||t.status===`notFound`)&&Zn(n)?{status:`pending`,error:void 0}:void 0};return t._flight=void 0,r}return t};this._committed=t.map(s);for(let[t,n]of this._cache)i.has(t)&&(n.invalid=!0,e?.forcePending&&(n.status=`pending`));for(let e of i)this._flights?.delete(e);for(let e of o)e.abort();return this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.resolveRedirect=e=>{let t=e.options,n=e.headers.get(`Location`)||t.href;if(!n){let e=this.buildLocation(t);n=(e.maskedLocation??e).publicHref||`/`}let r;if(C.test(n)||(r=l(n))&&!this.protocolAllowlist.has(r))throw Error(`Redirect blocked: unsafe protocol`);if(r===`http:`||r===`https:`){let e=new URL(n);e.pathname.startsWith(`//`)?n=e.href:Yn(e,this.origin)||(n=Xn(e),r=void 0)}return r&&(t.reloadDocument=!0),t.href=n,e.headers.set(`Location`,n),e},this.clearCache=e=>{let t=this._cache,n=this._preloads,r=e?.filter,i=[],a=[];for(let[e,n]of t)(!r||r(n))&&(a.push(e),i.push(n));let o=[];for(let[e,t]of n??[])(!r||t.some(r))&&(o.push(e),i.push(...t));for(let e of a)t.delete(e);for(let e of o)n.delete(e);for(let e of i){let t=e._flight;e._flight=void 0,t&&!--t[2]&&(this._flights?.get(e.id)===t&&this._flights.delete(e.id),o.push(t[1]))}for(let e of o)e.abort()},this.loadRouteChunk=gr,this.preloadRoute=e=>ii(this,e),this.matchRoute=(e,t)=>{let n={...e,to:e.to?Ft(e.from||``,e.to,this.options.trailingSlash,this.resolvePathCache):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n),i=this.stores.status.get()===`pending`;if(t?.pending&&!i)return!1;let a=t?.pending??!i?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),o=Sn(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,a.pathname,this.processedTree);return!o||e.params&&!c(o.rawParams,e.params,!0)?!1:t?.includeSearch??!0?c(a.search,r.search,!0)?o.rawParams:!1:o.rawParams},this.getStoreConfig=t,e.pathParamsAllowedCharacters?.length&&(this.pathParamsDecoder=It(e.pathParamsAllowedCharacters)),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??on,parseSearch:e.parseSearch??an,protocolAllowlist:e.protocolAllowlist??p}),self.__TSR_ROUTER__=this}isShell(){return!!this.options.isShell}get state(){return this.stores.__store.get()}setRoutes(e){Object.assign(this,e),this.lightweightCache=new WeakMap,this.staticLocations=new WeakMap;let t=this.options.notFoundRoute;t&&(t.init(99999999999),this.routesById[t.id]!==t&&(t._interpolation=_n(!1,t,0)),this.routesById[t.id]=t)}matchRoutesInternal(e,t){let[n,r,i]=this.getMatchedRoutes(e.pathname),a=n,s=!1;(i?i.path!==`/`&&r[`**`]:Mt(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:s=!0);let c=s?fr(this.options.notFoundMode,a):void 0,l=Array(a.length),u=this._committed,d=(e,t)=>{let n=u[t];return n?.routeId===e.id?n:e===this.options.notFoundRoute?u.find(t=>t.routeId===e.id):void 0},f;for(let n=0;ntypeof t!=`string`&&!v.call(e,t[1]))}var lr=Object.freeze({});function ur(e,t){let n=[];for(let r=0;r{let n=t(i.preSearchFilters?i.preSearchFilters.reduce((e,t)=>t(e),e):e);return i.postSearchFilters?i.postSearchFilters.reduce((e,t)=>t(e),n):n});let a=i.validateSearch;t&&a&&n.push(({search:e,next:t,meta:n})=>{let r=t(e);try{let e=or(a,r);if(n&&e)for(let t in e)t in r||(n.defaulted||=new Map).set(t,e[t]);return{...r,...e}}catch{}return r})}return n}function dr(e,t,n){let r=(t,i,a)=>{if(t>=e.length){if(!n.search)return{};if(n.search===!0)return i;let e=S(n.search,i);return a&&(a.explicit=e),e}return e[t]({search:i,next:(e,n)=>{if(n){let n=a||{};return{search:r(t+1,e,n),meta:n}}return r(t+1,e,a)},meta:a})};return r(0,t)}function fr(e,t){if(e!==`root`){let e;for(let n=t.length-1;n>=0;n--){let r=t[n];if(r.options.notFoundComponent)return r.id;e||=r.children&&r.id}if(e)return e}return ln}function pr(e,t){let n=e.options.params?.parse??e.options.parseParams;n&&Object.assign(t,n(t))}function mr(e,t){return e.options[t]?.preload?.()}function hr(e,t){let n=mr(e,`component`),r=mr(e,`pendingComponent`);return t&&(r?r=r.then(t):t()),n&&r?Promise.all([n,r]).then(()=>{}):n??r}function gr(e,t,n){let r=()=>t===!1?void 0:t?mr(e,t):hr(e,n),i=e._lazy;if(i)return i===!0?r():i.then(r);if(!e.lazyFn)return r();let a=e.lazyFn().then(t=>{{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazy=!0}},t=>{throw e._lazy=void 0,t});return e._lazy=a,a.then(r)}function _r(e){let t=e.findIndex(e=>e.status!==`success`||e._notFound)+1;return t&&t{let i=()=>r(t);t.addEventListener(`abort`,i,{once:!0}),Promise.resolve(e).then(n,r).then(()=>t.removeEventListener(`abort`,i))})}function Tr(e,t){return e.routesById[t.routeId]}function Er(e,t,n){return dn(e)?[xr,e]:Bt(e)?(e.routeId||=n,[br,e]):t?(typeof e?.then==`function`&&(e=Error(`A Promise was thrown`,{cause:e})),[yr,e]):[vr,e]}function Dr(e,t){let n=Er(t,!0,e.id);if(n[0]!==yr)return n;try{e.options.onError?.(n[1])}catch(t){n=Er(t,!0,e.id)}return n}function Or(e,t,n,r,i){return i[0].signal.aborted?Sr:Wr(e,t,n,Dr(n,r),i)}async function kr(e,t,n,r,i,a){let[o,s]=t,c=n[0].signal,l=!!n[3];for(let i=n[6]??0;ie.navigate({...t,_fromLocation:o}),buildLocation:e.buildLocation,cause:l?`preload`:r.cause,abortController:n[0],preload:l,matches:s,routeId:u.id};try{let e=r._ctx||=u.options.context?u.options.context({...f,deps:r.loaderDeps,context:d})||{}:void 0;r.context={...d,...e}}catch(a){return jr(e,r),[i,Or(e,t,u,a,n)]}if(c.aborted)return[i,Sr];let p=r.paramsError??r.searchError;if(p!==void 0)return jr(e,r),[i,Or(e,t,u,p,n)];let m=u.options.beforeLoad;if(!m)continue;let h=r.status;i>=a&&(r.status=`pending`,n[7]?.());try{Pr(e,r,`beforeLoad`,n[0]);let a=m({...f,search:r.search,context:r.context,...e.options.additionalContext}),o=await(typeof a?.then==`function`?wr(a,c):a);if(c.aborted)return[i,Sr];let s=Wr(e,t,u,Er(o,!1,u.id),n);if(s[0]!==vr)return jr(e,r),[i,s];r.context={...r.context,...o}}catch(a){return jr(e,r),[i,Or(e,t,u,a,n)]}finally{r.status=h,Pr(e,r,!1,n[0])}}i()}function Ar(e,t,n){if(!(!n||--n[2])){if(e._flights?.get(t.id)===n){let n=e._tx;if(n&&!n[0].signal.aborted&&!n[3].includes(t)&&n[3].some(e=>e.id===t.id)&&n[3].some(e=>e.isFetching===`beforeLoad`))return;e._flights.delete(t.id)}return n[1]}}function jr(e,t){let n=t._flight;t._flight=void 0,Ar(e,t,n)?.abort()}function Mr(e,t,n,r){let i=[];for(let a of t)if(!n?.includes(a)){let t=a._flight;if(a._flight=void 0,r&&t?.[2]===1&&e._flights?.get(a.id)===t&&n?.some(e=>e.id===a.id))t[2]=0;else{let n=Ar(e,a,t);n&&i.push(n)}}for(let e of i)e.abort()}function Nr(e){for(let t of e){let e=t._flight;e&&e[2]++}}function Pr(e,t,n,r){if(t.isFetching=n,r&&e._tx?.[0]!==r)return;let i=e.stores.byRoute.get(t.routeId),a=i?.get();a?.id===t.id&&i.set({...a,isFetching:n})}function Fr(e,t,n,r,i,a,o){let s=t[0];return{params:n.params,location:s,navigate:t=>e.navigate({...t,_fromLocation:s}),cause:o?`preload`:n.cause,abortController:i,preload:o,deps:n.loaderDeps,parentMatchPromise:a,context:n.context,route:r,...e.options.additionalContext}}async function Ir(e,t,n,r,i,a,o){let s=o[0],c=s.signal;if(c.aborted)return Sr;if(!i)return[vr,void 0];let l=n._flight;Pr(e,n,`loader`,s);try{if(!l){let s=new AbortController;l=[Promise.resolve().then(()=>i(Fr(e,t,n,r,s,a,!!o[3]))).then(e=>Er(e,!1,r.id),e=>Er(e,!0,r.id)).then(t=>(t[0]!==vr&&e._flights?.get(n.id)===l&&(e._flights.delete(n.id),l[2]||s.abort()),t[0]===yr&&l[2]?Dr(r,t[1]):t)),s,1],(e._flights??=new Map).set(n.id,l)}return n._flight=l,n.abortController=l[1],Wr(e,t,r,await wr(l[0],c),o)}catch(t){if(t!==c||!c.aborted)throw t;return jr(e,n),Sr}finally{Pr(e,n,!1,s)}}function Lr(e,t,n){t[0]!==xr&&(e.status=`success`,e.error=void 0,t[0]===vr?(e.loaderData=t[1],e.invalid=!1,e.updatedAt=Date.now(),e.preload=n):e.invalid=!0)}function Rr(e,t,n){let r=e._cache.get(t.id);if(r!==n||e._committed.some(e=>e.id===t.id&&e._flight===t._flight))return;let i={...t,_notFound:void 0,context:{}};i._flight&&i._flight[2]++,e._cache.set(t.id,i),r&&jr(e,r)}function zr(e,t){return t[0]===yr||t[0]===br?{...e,status:t[0]===yr?`error`:`notFound`,error:t[1],_flight:void 0}:e}function Br(e,t,n,r,i,a,o){let s=t[1][n],c=Tr(e,s),l=!!a[3],u=e._cache.get(s.id),d,f=!1,p;try{if(s.status===`success`&&(d=c.options.shouldReload,typeof d==`function`&&(d=d(Fr(e,t,s,c,a[0],i,l))),a[0].signal.aborted&&(p=Sr)),!p){if(s.status!==`success`)f=!0;else{let t=l||s.preload?c.options.preloadStaleTime??e.options.defaultPreloadStaleTime??3e4:c.options.staleTime??e.options.defaultStaleTime??0;f=!!(s.invalid||d||d===void 0&&Date.now()-s.updatedAt>=t&&(a[5]||s.cause===`enter`||a[2].some(e=>e.routeId===s.routeId&&e.id!==s.id)))}}}catch(n){s.invalid=!0,jr(e,s),p=Or(e,t,c,n,a)}let m=c.options.loader,h=typeof m==`function`,g=h?m:m?.handler,_=!l||c.options.preload!==!1,v=_&&m?e._flights?.get(s.id):void 0;v===s._flight||p?v=void 0:v&&!f&&!l&&d===void 0?f=!0:f||(v=void 0);let y=!(!m||!f||s.status!==`success`||l||a[4]||((h?void 0:m.staleReloadMode)??e.options.defaultStaleReloadMode)===`blocking`),b=f&&_,x=b&&!y&&(s.status!==`success`||!!m),S=n>=o?a[7]:void 0,C=c.lazyFn&&c._lazy!==!0?S:void 0;if(b&&!m&&(s.invalid=!1,s.updatedAt=Date.now()),v&&v[2]++,x){let t=s._flight;s._flight=v,Ar(e,s,t)?.abort(),n>=o&&(s.status=`pending`),S?.()}b||(s.isFetching=!1);let w=!p&&x?Ir(e,t,s,c,g,i,a).then(t=>(Lr(s,t,l),t[0]===vr&&(m&&!a[0].signal.aborted&&Rr(e,s,u),n>=o&&(s.status=`pending`)),t)):Promise.resolve(p??[vr,s.loaderData]),T=(async()=>{try{let e=gr(c,void 0,C);e&&await wr(e,a[0].signal)}catch(r){if(!t[1].some((e,t)=>t<=n&&(e.status===`error`||e.status===`notFound`||e._notFound)))return[n,Or(e,t,c,r,a)]}let r=await w;x&&r[0]===vr&&s.status===`pending`&&!a[0].signal.aborted&&(s.status=`success`,S?.())})();if(r.push([n,w,T]),!y)return w.then(e=>zr(s,e));let E={...s,status:`pending`,preload:!1,_flight:v};s.invalid=!1,s.isFetching=`loader`;let D=Ir(e,t,E,c,g,i,a).then(e=>(s.isFetching=!1,Lr(E,e,!1),e));return(t[2]??=[]).push([n,D,T,E]),D.then(e=>zr(E,e))}async function Vr(e,t,n,r,i=0){let a=n?.[1][1],o=a?.routeId?t.findIndex(e=>e.routeId===a.routeId):n?.[0]??t.length-1;o<0&&(o=0);for(let n=o;n>=0;n--){let i=Tr(e,t[n]);try{let e=gr(i,!1);e&&await wr(e,r)}catch(e){if(e===r&&r.aborted)throw e}if(i.options.notFoundComponent)return n}return a?.routeId?o:i}function Hr(e,t){t[2]&&=(Mr(e,t[2].map(e=>e[3])),void 0)}async function Ur(e,t,n,r){let i;try{await Promise.all(e.map(e=>e[1].then(async t=>{let a=e[0];if(!(r&&a>=await r)){if(t[0]>=xr)throw[a,t];!i&&t[0]!==vr&&(i=[a,t],await Promise.all((n??[]).map(e=>{if(!(e[0]<=a))return e[1].then(t=>{if(t[0]===xr)throw[e[0],t]})})))}})))}catch(e){return e}return t??i}function Wr(e,t,n,r,i,a){for(;r[0]===xr;){let o=r[1],s=o.options;try{if((s.href||o.headers.has(`Location`))&&(e.resolveRedirect(o),s.reloadDocument)||(s.reloadDocument?i[3]:i[1]>=20))return r;let n=e.buildLocation({...s,_fromLocation:t[0],_includeValidateSearch:!0}),a=n.maskedLocation??n;if(a.external){let t=o.clone();return t.options={...s},t.headers.set(`Location`,a.publicHref),e.resolveRedirect(t),i[3]?[xr,t]:[xr,t,a]}return[xr,o,n]}catch(e){r=a?[yr,e]:Dr(n,e),a=!0}}return r}async function Gr(e,t,n,r,i,a){let o=t[1],s=await i,c=!1,l=o.findIndex(e=>e._notFound),u=t=>t[1][0]===br?Vr(e,o,t,r.signal):t[0],d=l<0?o.length:l;if((s?.[1][0]??0)>=xr)d=0;else if(s){d=s[2]??=await u(s);for(let e of n){if(e[0]>=d)break;let t=await e[1];if(t[0]!==vr&&t[0]=d)break;let t=await e[2];if(t){s=t;break}}if((s?.[1][0]??0)>=xr){let n=s[1];if(n[0]!==xr||n[1].options.reloadDocument||n[2])return Hr(e,t),n;c=!0,s=[0,[yr,Error(`Too many redirects`)]]}let f=s?s[2]??await u(s):l;if(f>=0){let i=s?.[1],l=i?.[0],u=o[f],d=i?.[1],p=()=>{i&&(u._notFound=void 0,l===yr?u.status=`error`:(d.routeId=u.routeId,u.routeId===e.routeTree.id?(u.status=`success`,u._notFound=!0):u.status=`notFound`),u.error=d,u.isFetching=!1)};p(),i||a?.();let m=Tr(e,u);try{await wr(i?Promise.resolve().then(()=>gr(m,l===yr?`errorComponent`:`notFoundComponent`)):Promise.all([gr(m),gr(m,`notFoundComponent`)]),r.signal)}catch(n){if(n===r.signal&&r.signal.aborted)return Hr(e,t),Sr}i?c&&(r.abort(),await Promise.all([...n.map(e=>e[1]),...n.map(e=>e[2]),...(t[2]??[]).map(e=>e[1])]),Hr(e,t),Mr(e,o),p()):u.status=`success`}return t}async function Kr(e,t,n,r=0,i=t[1].length){let a=t[1];for(let t=r;te._notFound);if(e.options.notFoundMode!==`root`&&s>=0){let t=await Vr(e,n,void 0,a,s);n[s]._notFound=void 0,n[t]._notFound=!0,s=t}let c=s<0?n.length:s+1,l=0;for(;l{for(let t=d;t=xr&&(c=0);p()}if(!a.aborted&&!r[3]){let t=[];for(let[n,r]of e._flights??[])r[2]||(e._flights.delete(n),t.push(r[1]));for(let e of t)e.abort()}let h=Gr(e,i,u,r[0],Ur(u,m,i[2]),r[7]);i[2]?.length&&(i[3]=Ur(i[2],void 0,void 0,h.then(e=>Cr(e)?0:_r(n).length,()=>0))),o=await h}catch(t){if(Hr(e,i),t===a&&a.aborted)return Sr;throw t}return Cr(o)?o:Kr(e,o,a,r[6]===n.length?r[6]:0)}function Jr(e,t){if(e._tx!==t)return;let n=t[3],r=e.stores.matches.get(),i=e._pending;for(let a=0;a0){i[3]=setTimeout(()=>Jr(e,t),n);return}i[2]=0}let m=n.map(e=>({...e,_flight:void 0}));m[a].status=`pending`;let h=i[4]=e.startTransition(()=>e.stores.setMatches(m),m).then(t=>(t&&e._pending===i&&i[4]===h&&!i[2]&&(i[2]=Date.now()+f),t));return}}function Yr(e,t){let n=e._pending;(e._tx===t||!e._tx?.[3].some(e=>e.id===n?.[1]))&&(clearTimeout(n?.[3]),e._pending=void 0)}async function Xr(e,t){let n=e._pending;if(!n)return;clearTimeout(n[3]);let r=n[2]-Date.now();if(!n[4]||r<=0||!_r(t[3]).some(e=>e.id===n[1]))return;let i;try{await wr(new Promise(e=>{i=setTimeout(e,r)}),t[0].signal)}catch{}clearTimeout(i)}function Zr(e,t){e._committed=t,e.stores.setMatches(t)}function Qr(e,t,n,r){let i=e._committed,a=e._lifecycleEnd,o=e._cache;for(let e of n)e.preload=!1,r&&(e._assetEnd=void 0);let s=_r(n).length,c=new Map;{let t=Date.now(),r=new Set;for(let e=0;e=(n.preload?i.options.preloadGcTime??e.options.defaultPreloadGcTime??3e5:i.options.gcTime??e.options.defaultGcTime??3e5)||c.set(n.id,o.get(n.id)===n?n:{...n,_flight:void 0,isFetching:!1,context:{}})}}t[3]=[],e._cache=c;let l=e._lifecycleEnd=er(n);Zr(e,n),Mr(e,[...o.values(),...i].filter(e=>e._flight&&c.get(e.id)!==e),n),tr(e,i,n,a,l,t)}async function $r(e,t){let n=e._tx;for(;n&&n!==t;)t=n,await n[5],n=e._tx}function ei(e,t,n){let r=n[1].options,i=n[2];if(!i)return e.navigate({...r,replace:!0,ignoreBlocker:!0});if(r.reloadDocument)return e.navigate({href:(i.maskedLocation??i).publicHref,reloadDocument:!0,replace:!0,ignoreBlocker:!0});i._redirects=t[1]+1,e._pendingLocation=i;let a=e.commitLocation({...i,viewTransition:r.viewTransition,replace:!0,resetScroll:r.resetScroll,hashScrollIntoView:r.hashScrollIntoView,ignoreBlocker:!0});return queueMicrotask(()=>{e._pendingLocation===i&&(e._pendingLocation=void 0)}),a}async function ti(e,t,n,r,i){let a=n.map(e=>({...e}));Nr(a);for(let t of r)jr(e,a[t[0]]),a[t[0]]=t[3];let o=[t[2],a],s;try{s=await Gr(e,o,r,t[0],i)}catch(t){throw Mr(e,a),t}if(Cr(s)){Mr(e,a),s[0]===xr&&e._tx===t&&e._committed===n&&await ei(e,t,s);return}if(await Kr(e,s,t[0].signal),e._tx!==t||e._committed!==n){Mr(e,a);return}for(let t of a){let n=e._cache.get(t.id);n?._flight&&n._flight===t._flight&&(e._cache.delete(t.id),jr(e,n))}Zr(e,a),Mr(e,n,a)}async function ni(e,t,n,r,i,a){let o=await qr(e,t[2],t[3],[t[0],t[1],e._committed,void 0,i,n,a,r]);if(Cr(o)){let n=o[0]===xr&&e._tx===t;if((!n||o[1].options.reloadDocument)&&Yr(e,t),Mr(e,t[3]),t[3]=[],!n)return;if(e._tx!==t){Yr(e,t);return}await ei(e,t,o);return}let s=o[1];if(e._tx===t&&await Xr(e,t),e._tx!==t){Yr(e,t),Mr(e,s),Hr(e,o);return}let c=t[2],l=Qn(c,e.stores.resolvedLocation.get()),u=o[2];await e.startViewTransition(async()=>{if(e._tx===t&&await Xr(e,t),e._tx!==t){Yr(e,t),Mr(e,s),Hr(e,o);return}let n=await e.startTransition(()=>{Yr(e,t),Qr(e,t,s,a),e._tx===t&&(e.emit({type:`onLoad`,...l}),e._tx===t&&e.emit({type:`onBeforeRouteMount`,...l}))},s);if(e._tx!==t){Hr(e,o);return}u?.length&&ti(e,t,s,u,o[3]).catch(console.error),e.batch(()=>{e.stores.resolvedLocation.set(c),e.stores.status.set(`idle`),e._tx===t&&e.emit({type:`onResolved`,...l}),n&&e._tx===t&&e.emit({type:`onRendered`,...l})}),e._tx===t&&(e._commitPromise?.resolve(),e._commitPromise=void 0)})}async function ri(e,t){let n=e._tx,r=e.stores.resolvedLocation.get(),i=r??e.stores.location.get(),a=e.latestLocation,o=e._pendingLocation,s=o?.href===a.href?o._redirects??0:0,c=e._handoff,l=c?.[0](),u=new AbortController,d=e._preflight;if(e._preflight=u,l||c?.[1](),d?.abort(),!u.signal.aborted){let t=Qn(a,r);e.emit({type:`onBeforeNavigate`,...t}),u.signal.aborted||e.emit({type:`onBeforeLoad`,...t})}if(u.signal.aborted){await $r(e,n);return}let f=i.href===a.href,p=u,m=e.matchRoutes(a,{_controller:u});Nr(m);let h=l?c[1](m):void 0;if(h?p=l:l?.abort(),u.signal.aborted){Mr(e,m),await $r(e,n);return}e._preflight=void 0;let g,_=()=>ni(e,y,f,()=>Jr(e,y),t?.sync,h),v=t?.sync?new Promise(e=>g=e):Promise.resolve().then(_),y=[p,s,a,m,Date.now(),v.then(()=>$r(e,y))];if(e._tx=y,n){for(let t of e.stores.matches.get()){if(e._tx!==y)break;t.isFetching&&Pr(e,t,!1)}n[0].abort(),Mr(e,n[3],y[3],!0)}if(e._tx!==y){Mr(e,y[3]),y[3]=[],g?.(),await $r(e,y);return}e.batch(()=>{e.stores.status.set(`pending`),e.stores.location.set(a)}),(h||!e._committed.length&&m[0]?.status!==`success`&&!m.some(e=>e._notFound))&&Jr(e,y),g?.(_()),await y[5]}async function ii(e,t){let n=e.buildLocation(t);for(let t=0;;t++){let r=e._committed,i=new AbortController,a,o,s;try{try{a=e.matchRoutes(n,{_controller:i}),Nr(a),o=(e._preloads??=new Map).set(i,a),s=await qr(e,n,a,[i,t,r,!0])}finally{o&&(o=o.delete(i),Mr(e,a)),i.abort()}if(!Cr(s))return s[1];if(!o||s.length<3)return;n=s[2]}catch(e){Bt(e)||console.error(e);return}}}var ai=`Error preloading route! ☝️`,oi=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e,this._branch=void 0;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=ln:this.parentRoute||T();let r=n?ln:t?.path;r&&r!==`/`&&(r=jt(r));let i=t?.id||r,a=n?ln:At((this.parentRoute.id===`__root__`?``:this.parentRoute.id)+`/`+(i??``));r===`__root__`&&(r=`/`);let o=a===`__root__`?`/`:r===void 0?this.parentRoute.fullPath:At(this.parentRoute.fullPath+`/`+r);this._path=r,this._id=a,this._fullPath=o,this._to=Mt(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>un({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},si=class extends oi{constructor(e){super(e)}},ci=class extends k.Component{constructor(...e){super(...e),this.state={error:0},this.reset=()=>{this.setState({error:0})}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:0}:{resetKey:n}}static getDerivedStateFromError(e){return{error:[e]}}componentDidCatch(e,t){this.props.onCatch?.(e,t)}render(){let e=this.state.error;return e?k.createElement(this.props.errorComponent??li,{error:e[0],reset:this.reset}):this.props.children}};function li({error:e}){let[t,n]=k.useState(!1);return(0,A.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,A.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,A.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,A.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,A.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,A.jsx)(`div`,{children:(0,A.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e?.message?(0,A.jsx)(`code`,{children:e.message}):null})}):null]})}var ui=()=>!0,di=()=>!1;function fi({children:e,fallback:t=null}){return(0,A.jsx)(k.Fragment,{children:pi()?e:t})}function pi(e=!0){return k.useSyncExternalStore(mi,ui,e?di:ui)}function mi(){return()=>{}}function hi({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(1)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(1)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function gi(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var _i=[],vi=0,{link:yi,unlink:bi,propagate:xi,checkDirty:Si,shallowPropagate:Ci}=hi({update(e){return e._update()},notify(e){_i[Ti++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,ki(e))}}),wi=0,Ti=0,Ei,Di=0;function Oi(e){try{++Di,e()}finally{--Di||Ai()}}function ki(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=bi(n,e)}function Ai(){if(!(Di>0)){for(;wi{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Ei,o=t?.compare??Object.is;if(n)Ei=i,++vi,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=5);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Ei=a,n&&(i.flags&=-5),ki(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&Si(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Ci(e)}}else e&32&&(i.flags=e&-33);return Ei!==void 0&&yi(i,Ei,vi),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(xi(e),Ci(e),Ai())}},i}function Mi(e){let t=()=>{let t=Ei;Ei=n,++vi,n.depsTail=void 0,n.flags=6;try{return e()}finally{Ei=t,n.flags&=-5,ki(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){let e=this.flags;e&16||e&32&&Si(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,ki(this)}};return t(),n}function Ni(e){return O({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Pi(e){let{select:t,...n}=e;return O({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function Fi(e){return O({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function Ii(e){return O({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Li(e){let t=g();return k.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function Ri(e){let t=g(),n=Li(),r=k.useRef(null);return kt(()=>{r.current!==e&&(n(e),r.current=e)},[t,e,n]),null}function zi(e){return O({...e,select:t=>e.select?e.select(t.context):t.context})}function Bi(...e){let t=k.useRef(e),n=t.current;return e.forEach((e,t)=>{c(n[t],e,!1,!0)||(n[t]=e)}),t.current}function Vi(e,t){e.preloadRoute(t).catch(e=>{console.warn(e),console.warn(ai)})}var Hi={compare:(e,t)=>e[0]===t[0]&&e[1]===t[1]};function Ui(e,t){let n=typeof e==`string`&&l(e);if(n)return t.has(n)?e:null}function Wi(e,t,n,r,i){let a=Pt(e.pathname,r),o=Pt(t.pathname,r);return(n?.exact?a!==o:!a.startsWith(o)||a.length!==o.length&&a[o.length]!==`/`)||(n?.includeSearch??!0)&&!c(e.search,t.search,!n?.exact,n?.explicitUndefined)?!1:!n?.includeHash||i&&e.hash===t.hash}function Gi(e,t,n){let r=g(),i=k.useRef(null),a=k.useCallback(e=>{if(i.current=e,typeof t==`function`)return t(e);t&&(t.current=e)},[t]),{activeOptions:o,to:s,preload:c,preloadDelay:u,hashScrollIntoView:d,replace:f,startTransition:p,resetScroll:m,viewTransition:h,ignoreBlocker:_,disabled:v,target:y,onClick:b,onBlur:S,onFocus:C,onMouseEnter:w,onMouseLeave:T,onTouchStart:E}=e,D=pi(!!o?.includeHash),[O,ee,te]=Bi(e.search,e.params,o),[ne,re]=k.useMemo(()=>[e,{...e}],[r,e.from,e._fromLocation,e.hash,e.to,O,ee,e.state,e.mask,e.unsafeRelative]),ie=k.useCallback(e=>{let t=Ui(s,r.protocolAllowlist);if(t!==void 0)return[t??void 0];ne._fromLocation||(re._fromLocation=e);let n=r.buildLocation(re),i=ea(n,r,v);return[i,!v&&(!i||l(i))?void 0:Wi(e,n,te,r.basepath,D)]},[te,v,D,ne,re,r,s]),[ae,A]=x(r.stores.location,ie,Hi),oe=A===void 0?ae:void 0,se=v||ae===void 0,ce=k.useRef(!1),le=e.reloadDocument||oe||se?!1:c??r.options.defaultPreload,ue=u??r.options.defaultPreloadDelay??0,de=k.useCallback(e=>{let t=e?.isIntersecting;if(!(t??le===`intent`)){t===!1&&Qi(i);return}if(!ue){Vi(r,ne);return}Zi.has(i)||Zi.set(i,setTimeout(()=>{Zi.delete(i),Vi(r,ne)},ue))},[r,ne,i,le,ue]);k.useEffect(()=>{le===`render`&&!ce.current&&(ce.current=!0,Vi(r,ne));let e;return le===`viewport`&&i.current&&typeof IntersectionObserver==`function`&&(e=new IntersectionObserver(e=>de(e.pop()),{rootMargin:`100px`}),e.observe(i.current)),()=>{e?.disconnect(),Qi(i)}},[r,ne,le,de,i]);let fe=Yi(e,n);if(fe.ref=t?a:i,oe)return fe.href=oe,fe;let pe=e=>{let t=y??e.currentTarget.getAttribute(`target`);!se&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(!t||t===`_self`)&&e.button===0&&(e.preventDefault(),r.navigate({...ne,replace:f,resetScroll:m,hashScrollIntoView:d,startTransition:p,viewTransition:h,ignoreBlocker:_}))},me=()=>{le===`intent`&&Vi(r,ne)},he=()=>{le===`intent`&&Qi(i)};return fe.onClick=$i(b,pe),fe.onBlur=$i(S,he),fe.onFocus=$i(C,de),fe.onMouseEnter=$i(w,de),fe.onMouseLeave=$i(T,he),fe.onTouchStart=$i(E,me),Xi(fe,e,A,ae,se,n)}var Ki={},qi={className:`active`},Ji=new Set([`to`,`params`,`search`,`hash`,`state`,`mask`,`from`,`unsafeRelative`,`_fromLocation`,`reloadDocument`,`preload`,`preloadDelay`,`preloadIntentProximity`,`hashScrollIntoView`,`replace`,`startTransition`,`resetScroll`,`viewTransition`,`ignoreBlocker`,`activeProps`,`inactiveProps`,`activeOptions`,`_asChild`]);function Yi(e,t){let n={};for(let r in e)Ji.has(r)||r===`type`&&t!==void 0||r===`disabled`&&t===`a`||(n[r]=e[r]);return n}function Xi(e,t,n,r,i,a){let{activeProps:o,inactiveProps:s,className:c,style:l,target:u}=t,d=S(n?o:s,{})??(n?qi:Ki);Object.assign(e,d),e.href=r,a!==`a`&&(e.disabled=i),e.target=u;let f=d.style;(l||f)&&(e.style=l&&f?{...l,...f}:l||f);let p=d.className;return(c||p)&&(e.className=c?p?`${c} ${p}`:c:p),i&&(e.role=`link`,e[`aria-disabled`]=!0),n&&(e[`data-status`]=`active`,e[`aria-current`]=`page`),e}var Zi=new WeakMap,Qi=e=>{clearTimeout(Zi.get(e)),Zi.delete(e)},$i=(e,t)=>e?n=>n.defaultPrevented||(e(n),n.defaultPrevented||t(n)):t;function ea(e,t,n){if(n)return;let r=e.maskedLocation??e,i=r.external?r.publicHref:t.history.createHref(r.publicHref)||`/`;if(!r.external&&i===r.publicHref||!h(i,t.protocolAllowlist))return i}var ta=k.memo(k.forwardRef((e,t)=>{let n=e._asChild||`a`,r=Gi(e,t,n),i=typeof e.children==`function`?e.children({isActive:r[`data-status`]===`active`}):e.children;return k.createElement(n,r,i)}),na);function na(e,t){let n=0;for(let r in t)if(n++,e[r]!==t[r]&&(!Ji.has(r)||!c(e[r],t[r],!1,!0)))return!1;for(let t in e)n--;return n===0}var ra=class extends oi{constructor(e){super(e),this.useMatch=e=>O({...e,from:this.id}),this.useRouteContext=e=>zi({...e,from:this.id}),this.useSearch=e=>Ii({...e,from:this.id}),this.useParams=e=>Fi({...e,from:this.id}),this.useLoaderDeps=e=>Pi({...e,from:this.id}),this.useLoaderData=e=>Ni({...e,from:this.id}),this.useNavigate=()=>Li({from:this.fullPath}),this.Link=k.forwardRef((e,t)=>(0,A.jsx)(ta,{ref:t,from:this.fullPath,...e}))}};function ia(e){return new ra(e)}var aa=class extends si{constructor(e){super(e),this.useMatch=e=>O({...e,from:this.id}),this.useRouteContext=e=>zi({...e,from:this.id}),this.useSearch=e=>Ii({...e,from:this.id}),this.useParams=e=>Fi({...e,from:this.id}),this.useLoaderDeps=e=>Pi({...e,from:this.id}),this.useLoaderData=e=>Ni({...e,from:this.id}),this.useNavigate=()=>Li({from:this.fullPath}),this.Link=k.forwardRef((e,t)=>(0,A.jsx)(ta,{ref:t,from:this.fullPath,...e}))}};function oa(e){return new aa(e)}function L(e,t){let n,r,i,a=()=>(n||=(i=void 0,e().then(e=>{n=void 0,o.preload=void 0,r=e[t??`default`]}).catch(e=>{n=void 0,i=e})),n),o=function(e){if(i){if(f(i)&&typeof sessionStorage<`u`){let e=`tanstack_router_reload:${i.message}`;if(!sessionStorage.getItem(e))throw sessionStorage.setItem(e,`1`),window.location.reload(),new Promise(()=>{})}throw i}if(!r){if(Ot)Ot(a());else throw a()}return k.createElement(r,e)};return o.preload=a,o}function R(e){let t=g(),n=`not-found-${x(t.stores.location,e=>e.pathname)}-${x(t.stores.status)}`;return(0,A.jsx)(ci,{getResetKey:()=>n,onCatch:(t,n)=>{if(Bt(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(Bt(t))return e.fallback?.(t);throw t},children:e.children})}function sa(){return(0,A.jsx)(`p`,{children:`Not Found`})}function ca(e){return(0,A.jsx)(A.Fragment,{children:e.children})}function la(e,t,n){return t.options.notFoundComponent?(0,A.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,A.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,A.jsx)(sa,{})}function ua(e,t){let n=t?.options.pendingComponent??e.options.defaultPendingComponent;return n?(0,A.jsx)(n,{}):null}var da=(e,t)=>e[0]===t[0]&&e[1]===t[1],fa=(e,t,n)=>!t.isRoot||t.options.shellComponent||t.options.wrapInSuspense||n===!1||n===`data-only`||!e.ssr,pa=k.memo(function({routeId:e}){let t=g();return(0,A.jsx)(ma,{router:t,match:x(t.stores.getMatchStore(e))})});function ma({router:e,match:t}){let n=e.routesById[t.routeId],r=ua(e,n),i=n.options.errorComponent??e.options.defaultErrorComponent,a=n.options.onCatch??e.options.defaultOnCatch,o=n.isRoot?n.options.notFoundComponent??e.options.notFoundRoute?.options.component:n.options.notFoundComponent,s=t.ssr===!1||t.ssr===`data-only`,c=fa(e,n,t.ssr)&&(n.options.wrapInSuspense??r??(n.options.errorComponent?.preload||s))?k.Suspense:ca,l=i?ci:ca,u=o?R:ca;return(0,A.jsxs)(n.isRoot?n.options.shellComponent??ca:ca,{children:[(0,A.jsx)(D.Provider,{value:t.routeId,children:(0,A.jsx)(c,{fallback:r,children:(0,A.jsx)(l,{getResetKey:()=>t,errorComponent:i,onCatch:(e,n)=>{if(Bt(e))throw e.routeId??=t.routeId,e;a?.(e,n)},children:(0,A.jsx)(u,{fallback:e=>{if(e.routeId??=t.routeId,e.routeId!==t.routeId)throw e;return k.createElement(o,e)},children:s?(0,A.jsx)(fi,{fallback:r,children:(0,A.jsx)(ha,{match:t})}):(0,A.jsx)(ha,{match:t})})})})}),null]})}var ha=k.memo(function({match:e}){let t=g(),n=e.routeId,r=t.routesById[n],i=k.useMemo(()=>{let i=(r.options.remountDeps??t.options.defaultRemountDeps)?.({routeId:n,loaderDeps:e.loaderDeps,params:e._strictParams,search:e._strictSearch});return i?JSON.stringify(i):void 0},[n,e.loaderDeps,e._strictParams,e._strictSearch,r.options.remountDeps,t.options.defaultRemountDeps]),a=k.useMemo(()=>{let e=r.options.component??t.options.defaultComponent;return e?(0,A.jsx)(e,{},i):(0,A.jsx)(ga,{})},[i,r.options.component,t.options.defaultComponent]);if(e.status===`pending`){if(t.ssr&&!fa(t,r,e.ssr))return a;if(t._tx)throw t._tx[5];return ua(t,r)}if(e.status===`notFound`)return la(t,r,e.error);if(e.status===`error`)throw e.error;return a}),ga=k.memo(function(){let e=g(),t=k.useContext(D),n,r,i;{let a=e.stores.getMatchStore(t);[n,r]=x(a,e=>[!!e._notFound,e.error],{compare:da}),i=x(e.stores.ids,e=>e[e.indexOf(t)+1])}if(n)return la(e,e.routesById[t],r);if(!i)return null;let a=(0,A.jsx)(pa,{routeId:i});return t===`__root__`?(0,A.jsx)(k.Suspense,{fallback:ua(e),children:a}):a});function _a(e,t){let n=e[1];e.length=0,n?.(t)}function va({t:e}){let t=g(),n=t._rendered??=[];return t.startTransition=(r,i)=>new Promise(a=>{_a(n,!1),n.push(i,a),e(t),k.startTransition(r)}),kt(()=>{let e=t.history.subscribe(t.load);t.updateLatestLocation();let r=t.latestLocation,i=t.buildLocation({to:r.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});if(Mt(r.publicHref)!==Mt(i.publicHref))return t.commitLocation({...i,replace:!0,ignoreBlocker:!0}),e;let a=t.stores.resolvedLocation.get();return a?.href===r.href&&a.state.__TSR_key===r.state.__TSR_key?n.push(t.stores.matches.get(),e=>{e&&t.emit({type:`onRendered`,...Qn(a,a)})}):t._tx||t.load({sync:!0}).catch(console.error),e},[t,t.history]),null}function ya(){let e=g(),t=e.routesById[ln],n=ua(e,t),r=e.ssr?ca:k.Suspense,i=(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(va,{t:k.useState()[1]}),(0,A.jsx)(r,{fallback:n,children:(0,A.jsx)(ba,{})})]});return e.options.InnerWrap?(0,A.jsx)(e.options.InnerWrap,{children:i}):i}function ba(){let e=g(),t=e._rendered,n=x(e.stores.matches,e=>t[0]??e),r=n[0],i=r?.routeId;kt(()=>{t[0]===n&&_a(t,!0)},[t,n]);let a=i?(0,A.jsx)(pa,{routeId:i}):null;return(0,A.jsx)(D.Provider,{value:i,children:e.options.disableGlobalCatchBoundary?a:(0,A.jsx)(ci,{getResetKey:()=>r,onCatch:void 0,children:a})})}var xa=e=>({createMutableStore:ji,createReadonlyStore:ji,batch:Oi}),Sa=e=>new Ca(e),Ca=class extends nr{constructor(e){super(e,xa)}};function wa({router:e,children:t,...n}){u(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,A.jsx)(y.Provider,{value:e,children:t});return e.options.Wrap?(0,A.jsx)(e.options.Wrap,{children:r}):r}function Ta({router:e,...t}){return(0,A.jsx)(wa,{router:e,...t,children:(0,A.jsx)(ya,{})})}function Ea(e){let t=g({warn:e?.router===void 0}),n=e?.router||t;return x(n.stores.__store,E(e,n))}var Da=ae(),z=n();function Oa(e){let t=(0,z.c)(6),{error:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,A.jsx)(`p`,{className:`schild text-lg text-rot`,children:`Diese Ansicht ist abgestürzt`}),t[0]=r):r=t[0];let i=n instanceof Error?n.message:String(n),a;t[1]===i?a=t[2]:(a=(0,A.jsx)(`p`,{className:`text-[15px]`,children:i}),t[1]=i,t[2]=a);let o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,A.jsx)(`button`,{type:`button`,onClick:ka,className:`schild h-11 rounded-lg border border-rot-rand px-5 text-sm text-foreground hover:bg-[#3a1512]`,children:`Neu laden`}),t[3]=o):o=t[3];let s;return t[4]===a?s=t[5]:(s=(0,A.jsxs)(`div`,{role:`alert`,className:`flex flex-col items-start gap-3 rounded-2xl border border-rot-rand bg-rot-grund p-6 text-rot-text`,children:[r,a,o]}),t[4]=a,t[5]=s),s}function ka(){return window.location.reload()}var Aa=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function ja(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:Aa(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var Ma=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},Na=e=>{let t=Ma(e);return t.charAt(0).toUpperCase()+t.slice(1)},Pa=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Fa={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Ia(e){return e!=null}function La(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??Fa.width,a=e.size??e.height??Fa.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?Pa(...c):Pa(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??Fa[`stroke-width`])*Number(e.size??e.width??Fa.width)/Number(t.size??t.width??Fa.width):t.strokeWidth??Fa[`stroke-width`];return[`svg`,{...Object.entries(Fa).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&Ia(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&Ia(t.width)&&{[r(`width`)]:t.width},...`height`in t&&Ia(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function Ra(e,t={}){return La(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var za=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},Ba=(0,k.createContext)({}),Va=()=>(0,k.useContext)(Ba),Ha=(0,k.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...d},f)=>{let{size:p=24,strokeWidth:m=2,absoluteStrokeWidth:h=!1,nonScalingStroke:g=!1,color:_=`currentColor`,className:v=``}=Va()??{},y=!!c||za(d),[b,x,S=[]]=Ra(u,{color:e??_,width:n??t??p,height:r??t??p,strokeWidth:i??m,absoluteStrokeWidth:a??h,nonScalingStroke:o??g,className:Pa(v,s),hasA11yProp:y,attributes:d});return(0,k.createElement)(b,{ref:f,...x},[...S.map(([e,t])=>(0,k.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function Ua(e,t=[],n=[]){let r=typeof e==`string`?ja(e,t,n):e,i=(0,k.forwardRef)(({className:e,...t},n)=>(0,k.createElement)(Ha,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=Na(r.name)),i}var Wa={name:`activity`,size:24,node:[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]};Wa.node;var Ga=Ua(Wa),Ka={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};Ka.node;var qa=Ua(Ka),Ja={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};Ja.node;var Ya=Ua(Ja),Xa={name:`circle-check`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 9-5.5 5.5L8 12`,key:`xofnsj`}]],aliases:[`check-circle-2`]};Xa.node;var Za=Ua(Xa),Qa={name:`cpu`,size:24,node:[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]};Qa.node;var $a=Ua(Qa),eo={name:`external-link`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]};eo.node;var to=Ua(eo),no={name:`gauge`,size:24,node:[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]};no.node;var ro=Ua(no),io={name:`layout-grid`,size:24,node:[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]};io.node;var ao=Ua(io),oo={name:`menu`,size:24,node:[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]};oo.node;var so=Ua(oo),co={name:`refresh-cw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]};co.node;var lo=Ua(co),uo={name:`rotate-ccw-clock`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]],aliases:[`history`]};uo.node;var fo=Ua(uo),po={name:`scroll-text`,size:24,node:[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]};po.node;var mo=Ua(po),ho={name:`settings`,size:24,node:[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};ho.node;var go=Ua(ho),_o={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};_o.node;var vo=Ua(_o),yo=[`/api/instanz`,`/api/partner`,`/api/health`],bo=(e,t)=>e===t||e.startsWith(`${t}/`)||e.startsWith(`${t}?`);function xo(e,t){return!e.startsWith(`/api/`)||yo.some(t=>bo(e,t))||(bo(e,`/api/homelab`)?`homelab`:`box`)===t?e:`/api/partner${e.slice(4)}`}var So=null;function Co(){return So??=fetch(`/api/instanz`,{headers:{Accept:`application/json`}}).then(e=>e.ok?e.json():Promise.reject(Error(String(e.status)))).then(e=>e.rolle===`homelab`?`homelab`:`box`).catch(()=>(So=null,`box`)),So}var wo=class extends Error{status;detail;constructor(e,t){super(t),this.status=e,this.detail=t,this.name=`ApiFehler`}};function To(e,t){if(e&&typeof e==`object`&&`detail`in e){let t=e.detail;if(typeof t==`string`)return t;if(Array.isArray(t))return t.map(e=>e.msg??String(e)).join(`; `)}return`Die Box antwortet mit Fehler ${t}.`}async function B(e,t={}){let n=xo(e,await Co()),r;try{r=await fetch(n,{...t,headers:{"Content-Type":`application/json`,Accept:`application/json`,...t.headers}})}catch{throw new wo(0,`MC2 ist nicht erreichbar. Läuft die Box?`)}let i=await r.text(),a=i?Eo(i):null;if(!r.ok)throw new wo(r.status,To(a,r.status));if(typeof a==`string`)throw new wo(r.status,`Die Box antwortet nicht mit Daten.`);return a}function Eo(e){try{return JSON.parse(e)}catch{return e}}var Do=(e,t)=>B(e,{method:`POST`,body:t===void 0?void 0:JSON.stringify(t)}),Oo=100,ko=95,Ao=210,jo=240;function Mo(e,t){let n=e*Math.PI/180;return[Oo+t*Math.cos(n),ko-t*Math.sin(n)]}var No=e=>Math.round(e*100)/100;function Po(e,t,n){let r=Math.max(0,Math.min(1,e)),i=Math.max(r,Math.min(1,t)),[a,o]=Mo(Ao-jo*r,n),[s,c]=Mo(Ao-jo*i,n),l=+((i-r)*jo>180);return`M ${No(a)} ${No(o)} A ${n} ${n} 0 ${l} 1 ${No(s)} ${No(c)}`}function Fo(e){return e==null?`var(--text-3)`:e>=85?`var(--rot)`:e>=70?`var(--bernstein)`:`var(--gruen)`}var Io={ok:`border-gruen-rand bg-gruen-grund text-gruen`,info:`border-cyan-rand bg-cyan-grund text-cyan`,stumm:`border-aus-rand bg-aus-grund text-aus-text`,gelb:`border-2 border-bernstein bg-bernstein-grund text-bernstein-hell lampe-atmet`,rot:`border-2 border-rot bg-rot-grund text-rot shadow-[0_0_32px_rgba(255,90,79,0.3)]`};function Lo(e){if(!e.waechter_wach)return{art:`stumm`,oben:`Wächter`,mitte:`SCHWEIGT`,unten:`Seit über 5 Minuten kein Prüflauf`};if(e.update_laeuft)return{art:`info`,oben:`Wartung`,mitte:`UPDATE LÄUFT`,unten:`Hinweise ruhen bis zum Ende`};if(e.anzahl===0)return{art:`ok`,oben:`Alles`,mitte:`IN ORDNUNG`,unten:`Keine offenen Hinweise`};let t=`${e.anzahl} HINWEIS${e.anzahl===1?``:`E`}`;return e.stufe===`rot`?{art:`rot`,oben:`Störung`,mitte:t,unten:`Drücken zum Ansehen`}:{art:`gelb`,oben:`Achtung`,mitte:t,unten:`Drücken zum Ansehen`}}function Ro(e,t){let n=`„${e.titel}“:`;switch(t.id){case`protokoll`:return null;case`neustart`:return e.id.startsWith(`timer:`)?{titel:`${t.label}?`,text:`${n} Der Dienst läuft sofort noch einmal.`,knopf:t.label}:{titel:`${t.label}?`,text:`${n} Der Dienst wird ${/^starten/i.test(t.label)?`gestartet`:`neu gestartet`} und ist dabei kurz nicht erreichbar.`,knopf:t.label};case`job-wiederholen`:return{titel:`Job erneut ausführen?`,text:`${n} Hermes führt den Job sofort noch einmal aus, mit allem, was er sonst auch tut — etwa Nachrichten verschicken.`,knopf:t.label};case`freigeben`:return{titel:`Update freigeben?`,text:`${n} Nach dem Freigeben versucht der nächste Sonntags-Lauf das Update wieder.`,knopf:t.label};default:return{titel:`${t.label}?`,text:`${n} ${t.label}.`,knopf:t.label}}}function zo(e){return e?.status===`busy`?e.running?`Es läuft schon ein Update („${e.running}“). Warte, bis es fertig ist.`:`Es läuft schon ein Update. Warte, bis es fertig ist.`:e?.detail||e?.err||e?.error||e?.text||`Das hat nicht geklappt.`}var Bo=e=>e.state===`running`||e.state===`queued`;function Vo(e){let t=e.aliases.map(e=>e.toLowerCase());return t.includes(`hermes`)||t.includes(`fast`)?`hirn`:t.includes(`coder`)?`coder`:null}var Ho={neu:`Neu`,wartet:`Wartet`,getestet:`Gemessen`,bestanden:`Bestanden`,durchgefallen:`Durchgefallen`,uebernommen:`Übernommen`,verworfen:`Verworfen`};function V(e,t=``){if(e==null||e===``)return`–`;let n=typeof e==`number`?e.toLocaleString(`de-DE`,{maximumFractionDigits:+(e<10)}):String(e);return t?`${n} ${t}`:n}var H=[],Uo=1,Wo=new Set,Go=()=>Wo.forEach(e=>e());function Ko(e,t){let n=Uo++;H=[...H,{id:n,art:e,text:t}].slice(-4),Go(),e!==`fehler`&&window.setTimeout(()=>qo(n),6e3)}function qo(e){H=H.filter(t=>t.id!==e),Go()}var Jo=()=>(0,k.useSyncExternalStore)(Yo,Xo);function Yo(e){return Wo.add(e),()=>{Wo.delete(e)}}function Xo(){return H}var Zo=2e3,Qo=3e4,$o=2e4,es=`verbinde`,ts=null,ns=new Set,rs=()=>ns.forEach(e=>e());function is(e){return ns.add(e),()=>{ns.delete(e)}}var as=()=>es===`live`,os=()=>(0,k.useSyncExternalStore)(is,us),ss=()=>(0,k.useSyncExternalStore)(is,ds);function cs(e){e!==es&&(es=e,rs())}function ls(){let e=se();(0,k.useEffect)(()=>{let t=null,n,r,i=Date.now(),a=Zo,o=!1;function s(){o||(window.clearTimeout(n),n=window.setTimeout(l,a),a=Math.min(a*2,Qo))}function c(){i=Date.now(),window.clearTimeout(r),r=window.setTimeout(()=>{t?.close(),cs(`getrennt`),s()},$o)}function l(){window.clearTimeout(n),window.clearTimeout(r),t?.close();let i=new EventSource(`/api/stream`);t=i,i.onopen=()=>{a=Zo,cs(`live`),c(),e.invalidateQueries()},i.onerror=()=>{cs(`getrennt`),i.readyState===EventSource.CLOSED&&(window.clearTimeout(r),s())},i.addEventListener(`invalidate`,t=>{c();try{let n=JSON.parse(t.data)?.keys??[];for(let t of n)e.invalidateQueries({queryKey:[t]})}catch{}}),i.addEventListener(`metrik`,e=>{c();try{ts=JSON.parse(e.data),rs()}catch{}})}let u=()=>{o||document.visibilityState!==`visible`||(t?.readyState===EventSource.CLOSED||Date.now()-i>5e3)&&(a=Zo,l())};return l(),window.addEventListener(`online`,u),document.addEventListener(`visibilitychange`,u),()=>{o=!0,window.clearTimeout(n),window.clearTimeout(r),window.removeEventListener(`online`,u),document.removeEventListener(`visibilitychange`,u),t?.close(),cs(`getrennt`)}},[e])}function us(){return es}function ds(){return ts}var fs=`Europe/Berlin`,ps=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:fs}),ms=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,timeZone:fs}),hs=new Intl.DateTimeFormat(`de-DE`,{day:`2-digit`,month:`2-digit`,timeZone:fs}),gs=new Intl.DateTimeFormat(`en-CA`,{timeZone:fs});function _s(e){return gs.format(e)}function vs(e,t=new Date){let n=new Date(e);if(Number.isNaN(n.getTime()))return`–`;let r=_s(t),i=_s(new Date(t.getTime()-864e5)),a=_s(new Date(t.getTime()+864e5)),o=_s(n),s=ps.format(n);return o===r?`HEUTE ${s}`:o===i?`GESTERN ${s}`:o===a?`MORGEN ${s}`:Math.abs(n.getTime()-t.getTime())<5616e5?`${ms.format(n).replace(`.`,``).toUpperCase()} ${s}`:`${hs.format(n)} ${s}`}function ys(e,t=new Date){let n=new Date(e*1e3);return _s(n)===_s(t)?`seit heute ${ps.format(n)}`:`seit ${hs.format(n)}, ${ps.format(n)}`}function bs(e,t=Date.now()){let n=Math.max(0,Math.round(t/1e3-e));if(n<60)return`vor ${n} s`;if(n<3600)return`vor ${Math.round(n/60)} min`;if(n<86400)return`vor ${Math.round(n/3600)} h`;let r=Math.round(n/86400);return`vor ${r} ${r===1?`Tag`:`Tagen`}`}function xs(e){return e==null||e<0?null:[Math.floor(e/86400),Math.floor(e%86400/3600)]}var Ss=e=>e==null?null:e/1024**3;function Cs(e,t=0){let n=Ss(e);return n==null?`–`:n>=1e3?`${(n/1024).toFixed(1).replace(`.`,`,`)} TB`:`${n.toFixed(t).replace(`.`,`,`)} GB`}var ws=e=>e.toLocaleString(`de-DE`),Ts=e=>()=>as()?e*5:e;function Es(e,t){let n=e.getQueryData([`jobs`])?.jobs??[],r=t.filter(e=>!Bo(e)&&n.some(t=>t.id===e.id&&Bo(t)));if(r.length===0)return;let i=new Set([`start`]);for(let e of r){let t=e.group===`download`||/^download\s/i.test(e.label);for(let e of t?[`models`,`aufraeumen`]:[`update-details`,`updates-verlauf`,`sicherungen`])i.add(e)}for(let t of i)e.invalidateQueries({queryKey:[t]})}var Ds=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`start`],queryFn:Oc,refetchInterval:kc},e[0]=t):t=e[0],F(t)},Os=()=>{let e=(0,z.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[`models`],e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={queryKey:t,queryFn:Ac,refetchInterval:Ts(3e4)},e[1]=n):n=e[1],F(n)},ks=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`nutzung`],queryFn:jc,refetchInterval:6e5},e[0]=t):t=e[0],F(t)},As=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`radar`],queryFn:Mc,retry:!1,refetchInterval:3e5},e[0]=t):t=e[0],F(t)},js=()=>{let e=(0,z.c)(3),t=se(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`jobs`],e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r={queryKey:n,queryFn:async()=>{let e=await B(`/api/jobs`);return Es(t,e.jobs),e},refetchInterval:Nc},e[1]=t,e[2]=r),F(r)},Ms=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`sicherungen`],queryFn:Pc},e[0]=t):t=e[0],F(t)},Ns=e=>{let t=(0,z.c)(4),n;t[0]===e?n=t[1]:(n=e.map(Fc),t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r={queries:n},t[2]=n,t[3]=r),Tt(r)},Ps=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`updates-verlauf`],queryFn:Ic},e[0]=t):t=e[0],F(t)},Fs=e=>{let t=(0,z.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):(n=[`protokoll`,e],r=()=>B(`/api/maintenance/logs?service=${encodeURIComponent(e??``)}&lines=200`),t[0]=e,t[1]=n,t[2]=r);let i=!!e,a;return t[3]!==n||t[4]!==r||t[5]!==i?(a={queryKey:n,queryFn:r,enabled:i},t[3]=n,t[4]=r,t[5]=i,t[6]=a):a=t[6],F(a)},Is=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`dienste`],queryFn:Lc,refetchInterval:1e4},e[0]=t):t=e[0],F(t)};function Ls(e,t){let n=(0,z.c)(6),r=se(),i;n[0]!==t||n[1]!==r?(i=(e,n)=>{let i=e;i&&i.ok===!1?Ko(`fehler`,t.fehler?.(n,i)??zo(i)):t.erfolg(n,e)&&Ko(`erfolg`,t.erfolg(n,e));for(let e of t.neuLaden)r.invalidateQueries({queryKey:[e]})},n[0]=t,n[1]=r,n[2]=i):i=n[2];let a;return n[3]!==e||n[4]!==i?(a={mutationFn:e,onSuccess:i,onError:Rs},n[3]=e,n[4]=i,n[5]=a):a=n[5],Dt(a)}function Rs(e){return Ko(`fehler`,e.message)}var zs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:zc,neuLaden:[`start`]},e[0]=t):t=e[0],Ls(Rc,t)},Bs={alle:`/api/maintenance/update-all`,pruefen:`/api/maintenance/check-updates`,os:`/api/maintenance/os-update`,engine:`/api/maintenance/engine-update`,swap:`/api/maintenance/swap-update`,hermes:`/api/maintenance/hermes-update`},Vs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Vc,neuLaden:[`jobs`,`start`]},e[0]=t):t=e[0],Ls(Bc,t)},Hs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Uc,fehler:Wc,neuLaden:[`jobs`]},e[0]=t):t=e[0],Ls(Hc,t)},Us=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Kc,neuLaden:[`jobs`]},e[0]=t):t=e[0],Ls(Gc,t)},Ws=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Jc,neuLaden:[`jobs`,`models`]},e[0]=t):t=e[0],Ls(qc,t)},Gs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`aufraeumen`],queryFn:Yc,staleTime:6e4},e[0]=t):t=e[0],F(t)},Ks=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Zc,neuLaden:[`aufraeumen`,`models`,`start`]},e[0]=t):t=e[0],Ls(Xc,t)},qs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:$c,neuLaden:[`start`]},e[0]=t):t=e[0],Ls(Qc,t)},Js=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:tl,fehler:nl,neuLaden:[`sicherungen`,`start`]},e[0]=t):t=e[0],Ls(el,t)},Ys=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:il,neuLaden:[`sicherungen`]},e[0]=t):t=e[0],Ls(rl,t)},Xs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ol,neuLaden:[`models`,`start`]},e[0]=t):t=e[0],Ls(al,t)},Zs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:cl,neuLaden:[`radar`,`models`,`start`]},e[0]=t):t=e[0],Ls(sl,t)},Qs=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:ul,neuLaden:[`radar`,`jobs`]},e[0]=t):t=e[0],Ls(ll,t)},$s=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:fl,neuLaden:[`jobs`]},e[0]=t):t=e[0],Ls(dl,t)},ec=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`instanz`],queryFn:pl,staleTime:1/0},e[0]=t):t=e[0],F(t)},tc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`partner`],queryFn:ml,refetchInterval:3e4},e[0]=t):t=e[0],F(t)},nc=()=>{let e=(0,z.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[`ziele-box`],e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={queryKey:t,queryFn:hl,refetchInterval:Ts(3e4)},e[1]=n):n=e[1],F(n)},rc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:gl,enabled:e,refetchInterval:3e4},t[1]=e,t[2]=r),F(r)},ic=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-laeufe`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:_l,enabled:e,refetchInterval:U},t[1]=e,t[2]=r),F(r)},ac=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:bl,neuLaden:[`homelab`,`homelab-laeufe`,`ziele-box`,`jobs`,`start`]},e[0]=t):t=e[0],Ls(yl,t)},oc=e=>{let t=(0,z.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-hinweise`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Ts(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:xl,enabled:e,refetchInterval:r},t[2]=e,t[3]=i),F(i)},sc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`einstellungen`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Sl,enabled:e,retry:!1},t[1]=e,t[2]=r),F(r)},cc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:wl,neuLaden:[`einstellungen`,`start`]},e[0]=t):t=e[0],Ls(Cl,t)},lc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:El,neuLaden:[`einstellungen`,`start`,`radar`]},e[0]=t):t=e[0],Ls(Tl,t)},uc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Ol,neuLaden:[]},e[0]=t):t=e[0],Ls(Dl,t)},dc=(e,t)=>{let n=(0,z.c)(9),r;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[`stand`,`hier`],n[0]=r):r=n[0];let i;n[1]===e?i=n[2]:(i={queryKey:r,queryFn:kl,enabled:e},n[1]=e,n[2]=i);let a;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=[`stand`,`partner`],n[3]=a):a=n[3];let o=e&&t,s;n[4]===o?s=n[5]:(s={queryKey:a,queryFn:Al,enabled:o,retry:!1},n[4]=o,n[5]=s);let c;return n[6]!==i||n[7]!==s?(c={queries:[i,s]},n[6]=i,n[7]=s,n[8]=c):c=n[8],Tt(c)},fc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:[`altreste`],queryFn:jl,staleTime:6e4},e[0]=t):t=e[0],F(t)},pc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Nl,neuLaden:[`altreste`,`start`]},e[0]=t):t=e[0],Ls(Ml,t)},mc={"1h":6e4,"24h":3e5,"7d":9e5},hc=(e,t)=>{let n=(0,z.c)(8),r=t===void 0||t,i,a;n[0]===e?(i=n[1],a=n[2]):(i=[`messwerte`,`box`,e],a=()=>B(`/api/messwerte?zeitraum=${e}`),n[0]=e,n[1]=i,n[2]=a);let o=mc[e],s;return n[3]!==r||n[4]!==i||n[5]!==a||n[6]!==o?(s={queryKey:i,queryFn:a,enabled:r,refetchInterval:o,placeholderData:Pl,retry:!1},n[3]=r,n[4]=i,n[5]=a,n[6]=o,n[7]=s):s=n[7],F(s)},gc=(e,t)=>{let n=(0,z.c)(8),r,i;n[0]===e?(r=n[1],i=n[2]):(r=[`messwerte`,`homelab`,e],i=()=>B(`/api/homelab/messwerte?zeitraum=${e}`),n[0]=e,n[1]=r,n[2]=i);let a=mc[e],o;return n[3]!==t||n[4]!==r||n[5]!==i||n[6]!==a?(o={queryKey:r,queryFn:i,enabled:t,refetchInterval:a,placeholderData:Fl,retry:!1},n[3]=t,n[4]=r,n[5]=i,n[6]=a,n[7]=o):o=n[7],F(o)},_c=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-sammelplan`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Il,enabled:e,retry:!1},t[1]=e,t[2]=r),F(r)},vc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-sammellauf`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Ll,enabled:e,refetchInterval:Rl,retry:!1},t[1]=e,t[2]=r),F(r)},yc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Bl,neuLaden:[`homelab-sammellauf`,`homelab-laeufe`,`homelab`]},e[0]=t):t=e[0],Ls(zl,t)},bc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Hl,neuLaden:[`homelab-sammellauf`]},e[0]=t):t=e[0],Ls(Vl,t)},xc=(e,t)=>{let n=(0,z.c)(8),r,i;n[0]===t?(r=n[1],i=n[2]):(r=[`homelab-protokoll`,t],i=()=>B(`/api/homelab/protokoll?grenze=300&berichte=${+!!t}`),n[0]=t,n[1]=r,n[2]=i);let a;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=Ts(3e4),n[3]=a):a=n[3];let o;return n[4]!==e||n[5]!==r||n[6]!==i?(o={queryKey:r,queryFn:i,enabled:e,refetchInterval:a,retry:!1},n[4]=e,n[5]=r,n[6]=i,n[7]=o):o=n[7],F(o)},Sc=e=>{let t=(0,z.c)(4),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-speicher`],t[0]=n):n=t[0];let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=Ts(6e4),t[1]=r):r=t[1];let i;return t[2]===e?i=t[3]:(i={queryKey:n,queryFn:Ul,enabled:e,refetchInterval:r,retry:!1},t[2]=e,t[3]=i),F(i)},Cc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab`,`snapshots`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Wl,enabled:e,refetchInterval:Kl,retry:!1},t[1]=e,t[2]=r),F(r)},wc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Jl,neuLaden:[`homelab`,`homelab-laeufe`]},e[0]=t):t=e[0],Ls(ql,t)},Tc=e=>{let t=(0,z.c)(3),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[`homelab-einstellungen`],t[0]=n):n=t[0];let r;return t[1]===e?r=t[2]:(r={queryKey:n,queryFn:Yl,enabled:e,retry:!1},t[1]=e,t[2]=r),F(r)},Ec=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:Zl,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],Ls(Xl,t)},Dc=()=>{let e=(0,z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={erfolg:$l,neuLaden:[`homelab-einstellungen`,`homelab`]},e[0]=t):t=e[0],Ls(Ql,t)};function Oc(){return B(`/api/start`)}function kc(e){return e.state.data&&!e.state.data.updates.gelesen?4e3:Ts(2e4)()}function Ac(){return B(`/api/models`)}function jc(){return B(`/api/modelle/nutzung`)}function Mc(){return B(`/api/radar`)}function Nc(e){return e.state.data?.jobs.some(Bo)?2e3:Ts(3e4)()}function Pc(){return B(`/api/zeitmaschine`)}function Fc(e){return{queryKey:[`update-details`,e],queryFn:()=>B(`/api/maintenance/update-details?kind=${encodeURIComponent(e)}`),staleTime:6e5}}function Ic(){return B(`/api/updates/verlauf`)}function Lc(){return B(`/api/system/services`)}function Rc(e){let{hinweis:t,aktion:n}=e;return Do(`/api/hinweise/${encodeURIComponent(t)}/aktion/${n}`)}function zc(e,t){return e.aktion===`freigeben`&&t.text?t.text:`${e.label}: erledigt. Der Wächter prüft in einer Minute nach.`}function Bc(e){return Do(Bs[e])}function Vc(e){return e===`pruefen`?`Die Suche nach Neuem läuft. Den Fortschritt siehst du unten bei den Aufträgen.`:`Das Update läuft. Den Fortschritt siehst du unten bei den Aufträgen.`}function Hc(e){let{id:t}=e;return Do(`/api/jobs/${encodeURIComponent(t)}/cancel`)}function Uc(e){return`${e.titel}: wird abgebrochen.`}function Wc(e){return`${e.titel} lief schon nicht mehr.`}function Gc(e){return Do(`/api/jobs/${encodeURIComponent(e)}/quittieren`)}function Kc(){return``}function qc(e){let{repo:t,quant:n,rolle:r}=e;return Do(`/api/models/install`,{repo:t,quant:n,role:r})}function Jc(e,t){return`${e.repo} (${e.quant}) wird heruntergeladen${t.total_bytes?`, ${Cs(t.total_bytes,1)}`:``}. Den Fortschritt siehst du unter Aufträge.`}function Yc(){return B(`/api/modelle/aufraeumen`)}function Xc(e){return Do(`/api/modelle/aufraeumen/loeschen`,{art:e.art,name:e.name})}function Zc(e,t){return t.text??`Gelöscht.`}function Qc(e){return Do(`/api/updates/festgehalten/${encodeURIComponent(e)}/freigeben`)}function $c(e,t){return t.text??`Freigegeben.`}function el(){return Do(`/api/system/backup`)}function tl(e,t){return t.size_mb==null?`Sicherung erstellt.`:`Sicherung erstellt (${t.size_mb.toLocaleString(`de-DE`)} MB).`}function nl(e,t){return`Die Sicherung ging nicht: ${zo(t)}`}function rl(e){return Do(`/api/zeitmaschine/restore`,{file:e})}function il(){return`Zurückspielen läuft. Die Dienste starten gleich neu.`}function al(e){return Do(`/api/models/${encodeURIComponent(e)}/load`)}function ol(e){return`${e} wird geladen.`}function sl(e){let{id:t,aktion:n}=e;return Do(`/api/radar/${encodeURIComponent(t)}/${n}`)}function cl(e){return e.aktion===`uebernehmen`?`${e.name} übernommen.`:`${e.name} verworfen.`}function ll(e){let{id:t}=e;return Do(`/api/radar/${encodeURIComponent(t)}/testen`)}function ul(e,t){return t.text??`Der Test von ${e.name} läuft.`}function dl(){return Do(`/api/radar/suche`)}function fl(e,t){return t.text??`Das Radar sucht jetzt nach neuen Modellen.`}function pl(){return B(`/api/instanz`)}function ml(){return B(`/api/partner`)}function hl(){return B(`/api/ziele`)}function gl(){return B(`/api/homelab/ziele`)}function _l(){return B(`/api/homelab/laeufe`)}function vl(e){return e.status===`laeuft`}function U(e){return e.state.data?.laeufe.some(vl)?3e3:3e4}function yl(e){return B(e.pfad,{method:e.methode})}function bl(e){return`${e.label}: gestartet. Das Ergebnis kommt als Meldung.`}function xl(){return B(`/api/homelab/hinweise`)}function Sl(){return B(`/api/einstellungen`)}function Cl(e){return Do(`/api/einstellungen/update-fenster`,e)}function wl(e,t){return t.text??`Gespeichert.`}function Tl(e){return Do(`/api/einstellungen/radar`,{an:e})}function El(e,t){return t.text??`Geschaltet.`}function Dl(e){return Do(e===`homelab`?`/api/homelab/einstellungen/telegram-test`:`/api/einstellungen/telegram-test`)}function Ol(e,t){return t.text??`Die Testmeldung ist raus.`}function kl(){return B(`/api/instanz`)}function Al(){return B(`/api/partner/instanz`)}function jl(){return B(`/api/aufraeumen/altreste`)}function Ml(e){return Do(`/api/aufraeumen/altreste/loeschen`,{id:e.id})}function Nl(e,t){return t.text??`Gelöscht.`}function Pl(e){return e}function Fl(e){return e}function Il(){return B(`/api/homelab/alle/plan`)}function Ll(){return B(`/api/homelab/sammellauf`)}function Rl(e){return e.state.data?.sammellauf?.status===`laeuft`?5e3:6e4}function zl(){return Do(`/api/homelab/alle`)}function Bl(){return`Alle aktualisieren: gestartet. Die Schritte laufen nacheinander; das Ergebnis kommt als Meldung.`}function Vl(e){return Do(`/api/homelab/sammellauf/${encodeURIComponent(e)}/quittieren`)}function Hl(){return``}function Ul(){return B(`/api/homelab/speicher`)}function Wl(){return B(`/api/homelab/snapshots`)}function Gl(e){return e.laeuft}function Kl(e){return e.state.data?.geraete.some(Gl)?3e3:3e4}function ql(e){return B(e.pfad,{method:e.methode})}function Jl(e){return`${e.label}: gestartet. Das Ergebnis steht gleich beim Gerät.`}function Yl(){return B(`/api/homelab/einstellungen`)}function Xl(e){return e===null?B(`/api/homelab/einstellungen/arcane-schluessel`,{method:`DELETE`}):Do(`/api/homelab/einstellungen/arcane-schluessel`,{schluessel:e})}function Zl(e,t){return t.text??(e===null?`Arcane-Schlüssel entfernt.`:`Arcane-Schlüssel gespeichert.`)}function Ql(e){return Do(`/api/homelab/einstellungen/arcane-echt`,{an:e})}function $l(e){return e?`Docker-Updates über Arcane laufen jetzt echt.`:`Docker-Updates über Arcane sind wieder nur ein Probelauf.`}var eu={"ki-box":`KI-Box`,"proxmox-host":`Proxmox-Host`,container:`Container`,vm:`VM`};function tu(e){let t=e.id.match(/-(\d+)$/)?.[1],n=eu[e.art]??e.art;return t?`${n} ${t}`:n}var nu={"Proxmox-Host":`Proxmox`,"AdGuard Home":`AdGuard`,"PVE Scripts Local":`PVE Scripts`,"Proxmox Backup Server":`PBS`,"Arcane (Docker)":`Arcane`},ru=e=>nu[e.name]??e.name,iu=new Set([`app`,`arcane`]),au=e=>e.bausteine.find(e=>iu.has(e.id))??null,W=e=>e.bausteine.find(e=>!iu.has(e.id))??null;function ou(e){let t=e.flatMap(e=>e.bausteine.filter(e=>e.zustand===`neu`).map(t=>({ziel:e,baustein:t})));return[...t.filter(e=>e.baustein.aktion),...t.filter(e=>!e.baustein.aktion)]}function su(e){let t=e.bausteine.filter(e=>e.zustand===`neu`);return t.some(e=>e.aktion)?0:t.length>0?1:e.bausteine.some(e=>e.zustand===`unbekannt`)?2:3}function cu(e){let t=e.rueckweg_art??lu(e.rueckweg);return t===`snapshot`?`Snapshot vorher, bei Rot zurück`:t===`sicherung`?`Sicherung vorher, bei Rot zurück`:e.art===`proxmox-host`?`Kein Rückweg, Neustart getrennt`:`Kein automatischer Rückweg`}function lu(e){let t=(e??``).toLowerCase();return t.startsWith(`snapshot vor`)?`snapshot`:t.startsWith(`sicherung`)?`sicherung`:`keiner`}var uu=e=>iu.has(e.id),du=e=>e.replace(/^Image vom /,``);function fu(e){return uu(e)&&e.verfuegbar?e.verfuegbar:e.kurz||e.verfuegbar||`neu`}function pu(e){let t=e.platte;return t&&t.gesamt>0?t.belegt/t.gesamt:null}function mu(e,t){let n=ru(e),r=pu(e);if(e.erreichbar===!1)return{id:e.id,label:n,zustand:`fehler`,wert:`antwortet nicht`};if(r!==null&&r>=.9)return{id:e.id,label:n,zustand:`fehler`,wert:`Platte voll`};if(t)return{id:e.id,label:n,zustand:`info`,wert:`Update läuft`};if(r!==null&&r>=.8)return{id:e.id,label:n,zustand:`warn`,wert:`Platte ${Math.round(r*100)} %`};let i=e.bausteine.filter(e=>e.zustand===`neu`);if(i.length>0){let t=i.find(e=>iu.has(e.id))??i[0];return{id:e.id,label:n,zustand:`info`,wert:iu.has(t.id)&&t.verfuegbar?`→ ${t.verfuegbar}`:fu(t)}}let a=au(e);return{id:e.id,label:n,zustand:`ok`,wert:a?.installiert?du(a.installiert):`aktuell`}}var hu=e=>`${e} HINWEIS${e===1?``:`E`}`;function gu(e,t,n,r){let i=e.ziele.filter(e=>e.erreichbar===!1);if(i.length>0)return{art:`rot`,oben:`Störung`,mitte:i.length===1?`1 GERÄT STUMM`:`${i.length} GERÄTE STUMM`,unten:i.map(ru).join(`, `),ziel:`geraete`};if(t.some(e=>e.stufe===`rot`))return{art:`rot`,oben:`Störung`,mitte:hu(t.length),unten:`Drücken zum Ansehen`,ziel:`hinweise`};if(!e.ausfuehrer.verbunden)return{art:`gelb`,oben:`Achtung`,mitte:`AUSFÜHRER STUMM`,unten:`Die Geräte zeigen den letzten Stand`,ziel:null};if(t.length>0)return{art:`gelb`,oben:`Achtung`,mitte:hu(t.length),unten:`Drücken zum Ansehen`,ziel:`hinweise`};if(n>0)return{art:`info`,oben:`Wartung`,mitte:`UPDATE LÄUFT`,unten:`Das Ergebnis kommt als Meldung`,ziel:`updates`};let a=ou(e.ziele).filter(e=>e.baustein.aktion).length;return a>0?{art:`info`,oben:`Homelab`,mitte:`${a} UPDATE${a===1?``:`S`}`,unten:`Drücken zum Ansehen`,ziel:`updates`}:{art:`ok`,oben:`Homelab`,mitte:`ALLES AKTUELL`,unten:r?`Stand ${r}`:`Keine offenen Updates`,ziel:null}}function _u(e){return e?.match(/vom (\d{2}\.\d{2}\.\d{4})/)?.[1]??null}var vu=[{id:`box`,name:`KI-Box`},{id:`homelab`,name:`Homelab`}],yu=[{to:`/`,label:`Übersicht`,Icon:ao,ort:`uebersicht`},{to:`/box`,label:`Cockpit`,Icon:ro,ort:`box`},{to:`/box/updates`,label:`Updates`,Icon:lo,ort:`box`,zaehlt:!0},{to:`/box/modelle`,label:`Modelle`,Icon:$a,ort:`box`},{to:`/box/monitoring`,label:`Monitoring`,Icon:Ga,ort:`box`},{to:`/box/dienste`,label:`Dienste und Protokolle`,Icon:mo,ort:`box`},{to:`/homelab`,label:`Cockpit`,Icon:ro,ort:`homelab`},{to:`/homelab/updates`,label:`Updates`,Icon:lo,ort:`homelab`,zaehlt:!0},{to:`/homelab/snapshots`,label:`Snapshots`,Icon:fo,ort:`homelab`},{to:`/homelab/monitoring`,label:`Monitoring`,Icon:Ga,ort:`homelab`},{to:`/homelab/protokoll`,label:`Protokoll`,Icon:mo,ort:`homelab`},{to:`/einstellungen`,label:`Einstellungen`,Icon:go,ort:`system`}],bu={uebersicht:`Auf einen Blick`,box:`KI-Box`,homelab:`Homelab`,system:`Beide Instanzen`};function xu(){let e=(0,z.c)(2),t=Ea({select:Su}).replace(/\/+$/,``)||`/`,n;return e[0]===t?n=e[1]:(n=yu.find(e=>e.to===t)??yu[0],e[0]=t,e[1]=n),n}function Su(e){return e.location.pathname}function Cu(){let e=(0,z.c)(19),t=ec(),n=tc(),r=os(),i=t.data?.rolle===`homelab`?`homelab`:`box`,a=r===`live`?`online`:r,o=n.data,s=o?o.eingerichtet?o.erreichbar?`online`:`getrennt`:`fehlt`:`verbinde`,c;e[0]!==a||e[1]!==s||e[2]!==i?(c=i===`box`?{box:a,homelab:s}:{box:s,homelab:a},e[0]=a,e[1]=s,e[2]=i,e[3]=c):c=e[3];let l=c,u=nc(),d=rc(l.homelab===`online`),f;e[4]===u.data?.ziele?f=e[5]:(f=u.data?.ziele??[],e[4]=u.data?.ziele,e[5]=f);let p;e[6]===f?p=e[7]:(p=f.reduce(Tu,0),e[6]=f,e[7]=p);let m=p,h;e[8]===d.data?.ziele?h=e[9]:(h=ou(d.data?.ziele??[]).filter(wu),e[8]=d.data?.ziele,e[9]=h);let g=h.length,_;e[10]!==m||e[11]!==l.box?(_={verbindung:l.box,updates:m},e[10]=m,e[11]=l.box,e[12]=_):_=e[12];let v;e[13]!==g||e[14]!==l.homelab?(v={verbindung:l.homelab,updates:g},e[13]=g,e[14]=l.homelab,e[15]=v):v=e[15];let y;return e[16]!==_||e[17]!==v?(y={box:_,homelab:v},e[16]=_,e[17]=v,e[18]=y):y=e[18],y}function wu(e){return e.baustein.aktion}function Tu(e,t){return e+t.bausteine.filter(Eu).length}function Eu(e){return e.zustand===`neu`&&e.aktion}var Du={erfolg:`border-gruen-rand bg-gruen-grund text-gruen-text`,fehler:`border-rot-rand bg-rot-grund text-rot-text`,info:`border-cyan-rand bg-cyan-grund text-cyan-text`};function Ou(){let e=(0,z.c)(4),t=Jo(),n;e[0]===t?n=e[1]:(n=t.map(ku),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,A.jsx)(`div`,{"aria-live":`polite`,className:`pointer-events-none fixed right-4 bottom-24 left-4 z-50 flex flex-col items-end gap-2 md:left-auto md:w-[420px] lg:bottom-6`,children:n}),e[2]=n,e[3]=r),r}function ku(e){return(0,A.jsxs)(`div`,{role:e.art===`fehler`?`alert`:`status`,className:a(`pointer-events-auto flex w-full items-start gap-3 rounded-xl border px-4 py-3 text-[15px] shadow-lg`,Du[e.art]),children:[(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:e.text}),(0,A.jsx)(`button`,{type:`button`,onClick:()=>qo(e.id),"aria-label":`Meldung schließen`,className:`-m-2 p-2 opacity-70 hover:opacity-100`,children:(0,A.jsx)(vo,{className:`size-4`})})]},e.id)}var Au={online:{punkt:`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`,text:`online`},verbinde:{punkt:`bg-bernstein`,text:`verbinde`},getrennt:{punkt:`bg-rot`,text:`getrennt`},fehlt:{punkt:`bg-text-3`,text:`nicht eingerichtet`}},ju={uebersicht:{aktiv:`!border-bernstein bg-bernstein-grund`,symbol:`group-data-[status=active]:text-bernstein`},box:{aktiv:`!border-box bg-box-grund`,symbol:`group-data-[status=active]:text-box`},homelab:{aktiv:`!border-lab bg-lab-grund`,symbol:`group-data-[status=active]:text-lab`},system:{aktiv:`!border-text-2 bg-erhaben`,symbol:`group-data-[status=active]:text-foreground`}},Mu={box:{text:`text-box-text`,balken:`bg-box`},homelab:{text:`text-lab-text`,balken:`bg-lab`}},Nu=`group flex h-11 items-center gap-3 rounded-lg border-l-2 border-transparent pr-3 pl-3 text-[15px] text-text-2 hover:bg-erhaben hover:text-foreground`;function Pu(){let e=(0,z.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(`img`,{src:`/favicon.svg`,alt:``,width:36,height:36,className:`size-9 shrink-0`}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,A.jsxs)(`div`,{className:`flex items-center gap-3 px-1`,children:[t,(0,A.jsxs)(`span`,{className:`flex flex-col leading-none`,children:[(0,A.jsx)(`span`,{className:`font-anzeige text-[22px] font-bold tracking-[0.06em]`,children:`Homelab`}),(0,A.jsx)(`span`,{className:`schild text-[13px] tracking-[0.22em] text-text-3`,children:`Orchestrator`})]})]}),e[1]=n):n=e[1],n}function Fu(e){let t=(0,z.c)(21),{s:n,zahl:r,onGewaehlt:i}=e,o=ju[n.ort],s=n.to,c;t[0]===o.aktiv?c=t[1]:(c=a(o.aktiv,`!text-foreground`),t[0]=o.aktiv,t[1]=c);let l;t[2]===c?l=t[3]:(l={className:c},t[2]=c,t[3]=l);let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u={exact:!0},t[4]=u):u=t[4];let d=n.Icon,f;t[5]===o.symbol?f=t[6]:(f=a(`size-[18px] shrink-0 text-text-3 group-hover:text-text-2`,o.symbol),t[5]=o.symbol,t[6]=f);let p;t[7]!==n.Icon||t[8]!==f?(p=(0,A.jsx)(d,{className:f,"aria-hidden":!0}),t[7]=n.Icon,t[8]=f,t[9]=p):p=t[9];let m;t[10]===n.label?m=t[11]:(m=(0,A.jsx)(`span`,{className:`flex-1`,children:n.label}),t[10]=n.label,t[11]=m);let h;t[12]===r?h=t[13]:(h=!!r&&(0,A.jsxs)(`span`,{className:`ziffern rounded-full border border-cyan-rand bg-cyan-grund px-2 text-xs leading-5 text-cyan`,children:[r,(0,A.jsxs)(`span`,{className:`sr-only`,children:[` `,r===1?`Update`:`Updates`,` bereit`]})]}),t[12]=r,t[13]=h);let g;return t[14]!==i||t[15]!==n.to||t[16]!==l||t[17]!==p||t[18]!==m||t[19]!==h?(g=(0,A.jsxs)(ta,{to:s,onClick:i,className:Nu,activeProps:l,activeOptions:u,children:[p,m,h]}),t[14]=i,t[15]=n.to,t[16]=l,t[17]=p,t[18]=m,t[19]=h,t[20]=g):g=t[20],g}function Iu(e){let t=(0,z.c)(14),{onGewaehlt:n}=e,r=Cu(),i=ec().data?.rolle!==`homelab`,o=Lu,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=o(`/`),t[0]=s):s=t[0];let c;t[1]===n?c=t[2]:(c=(0,A.jsx)(Fu,{s,onGewaehlt:n}),t[1]=n,t[2]=c);let l;t[3]!==i||t[4]!==n||t[5]!==r?(l=vu.map(e=>{let t=Au[r[e.id].verbindung],o=Mu[e.id];return(0,A.jsxs)(`section`,{"aria-label":e.name,className:`flex flex-col gap-1`,children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pr-3 pb-1.5`,children:[(0,A.jsxs)(`h2`,{className:a(`schild flex items-center gap-2.5 text-sm font-bold tracking-[0.24em]`,o.text),children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:a(`h-4 w-1 rounded-full`,o.balken)}),e.name]}),(0,A.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-text-3`,children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:a(`size-2 rounded-full`,t.punkt)}),t.text]})]}),yu.filter(t=>t.ort===e.id).map(t=>(0,A.jsx)(Fu,{s:t,zahl:t.zaehlt?r[e.id].updates:0,onGewaehlt:n},t.to)),e.id===`box`&&i&&(0,A.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:Nu,children:[(0,A.jsx)(to,{className:`size-[18px] shrink-0 text-text-3`,"aria-hidden":!0}),`Hermes-Dashboard`]})]},e.id)}),t[3]=i,t[4]=n,t[5]=r,t[6]=l):l=t[6];let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=o(`/einstellungen`),t[7]=u):u=t[7];let d;t[8]===n?d=t[9]:(d=(0,A.jsx)(`div`,{className:`mt-auto border-t border-linie pt-4`,children:(0,A.jsx)(Fu,{s:u,onGewaehlt:n})}),t[8]=n,t[9]=d);let f;return t[10]!==c||t[11]!==l||t[12]!==d?(f=(0,A.jsxs)(`nav`,{"aria-label":`Hauptnavigation`,className:`flex flex-1 flex-col gap-6`,children:[c,l,d]}),t[10]=c,t[11]=l,t[12]=d,t[13]=f):f=t[13],f}function Lu(e){return yu.find(t=>t.to===e)}var Ru=`modulepreload`,zu=function(e){return`/`+e},Bu={},Vu=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=zu(t,n),t=s(t),t in Bu)return;Bu[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Ru,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Hu=(0,k.lazy)(()=>Vu(()=>import(`./MenueSchublade-B0vlMk4k.js`).then(e=>({default:e.MenueSchublade})),__vite__mapDeps([0,1,2,3,4]))),Uu=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),Wu=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,day:`2-digit`,month:`2-digit`,timeZone:`Europe/Berlin`});function Gu(){let e=(0,z.c)(13),[t,n]=(0,k.useState)(Ku),r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=window.setInterval(()=>n(new Date),2e4);return()=>window.clearInterval(e)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,k.useEffect)(r,i);let a;e[2]===t?a=e[3]:(a=Uu.format(t),e[2]=t,e[3]=a);let o;e[4]===a?o=e[5]:(o=(0,A.jsx)(`span`,{className:`ziffern text-2xl font-medium`,children:a}),e[4]=a,e[5]=o);let s;e[6]===t?s=e[7]:(s=Wu.format(t).replace(`,`,``),e[6]=t,e[7]=s);let c;e[8]===s?c=e[9]:(c=(0,A.jsx)(`span`,{className:`schild text-[13px] text-text-3`,children:s}),e[8]=s,e[9]=c);let l;return e[10]!==o||e[11]!==c?(l=(0,A.jsxs)(`div`,{className:`flex flex-col items-end leading-tight`,children:[o,c]}),e[10]=o,e[11]=c,e[12]=l):l=e[12],l}function Ku(){return new Date}function qu(){let e=(0,z.c)(14),t=os(),n=t===`live`,r=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,i=n?`text-text-3`:`text-bernstein`,o;e[0]===i?o=e[1]:(o=a(`schild flex items-center gap-1.5 text-[13px]`,i),e[0]=i,e[1]=o);let s=n?`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`:`bg-bernstein`,c;e[2]===s?c=e[3]:(c=a(`size-2 rounded-full`,s),e[2]=s,e[3]=c);let l;e[4]===c?l=e[5]:(l=(0,A.jsx)(`span`,{"aria-hidden":!0,className:c}),e[4]=c,e[5]=l);let u=n?`sr-only`:void 0,d=n?`Verbunden`:t===`verbinde`?`Verbinde`:`Getrennt`,f;e[6]!==u||e[7]!==d?(f=(0,A.jsx)(`span`,{className:u,children:d}),e[6]=u,e[7]=d,e[8]=f):f=e[8];let p;return e[9]!==r||e[10]!==o||e[11]!==l||e[12]!==f?(p=(0,A.jsxs)(`span`,{role:`status`,title:r,className:o,children:[l,f]}),e[9]=r,e[10]=o,e[11]=l,e[12]=f,e[13]=p):p=e[13],p}var Ju={uebersicht:`text-bernstein`,box:`text-box-text`,homelab:`text-lab-text`,system:`text-text-3`};function Yu(){let e=(0,z.c)(27);ls();let[t,n]=(0,k.useState)(!1),r=xu(),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,A.jsxs)(`aside`,{className:`sticky top-0 hidden h-dvh flex-col gap-8 overflow-y-auto border-r border-linie bg-[#0c0f12] px-4 py-7 lg:flex`,children:[(0,A.jsx)(Pu,{}),(0,A.jsx)(Iu,{})]}),e[0]=i):i=e[0];let o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>n(!0),e[1]=o):o=e[1];let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,A.jsx)(`button`,{type:`button`,onClick:o,className:`-ml-2 flex size-11 shrink-0 items-center justify-center rounded-lg text-text-2 hover:bg-erhaben hover:text-foreground lg:hidden`,"aria-label":`Menü öffnen`,children:(0,A.jsx)(so,{className:`size-6`})}),e[2]=s):s=e[2];let c=Ju[r.ort],l;e[3]===c?l=e[4]:(l=a(`schild text-[13px] tracking-[0.24em]`,c),e[3]=c,e[4]=l);let u=bu[r.ort],d;e[5]!==l||e[6]!==u?(d=(0,A.jsx)(`span`,{className:l,children:u}),e[5]=l,e[6]=u,e[7]=d):d=e[7];let f;e[8]===r.label?f=e[9]:(f=(0,A.jsx)(`h1`,{className:`font-anzeige text-[26px] leading-none font-bold tracking-[0.04em]`,children:r.label}),e[8]=r.label,e[9]=f);let p;e[10]!==d||e[11]!==f?(p=(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[s,(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col leading-tight`,children:[d,f]})]}),e[10]=d,e[11]=f,e[12]=p):p=e[12];let m;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,A.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,A.jsx)(`span`,{className:`lg:hidden`,children:(0,A.jsx)(qu,{})}),(0,A.jsx)(Gu,{})]}),e[13]=m):m=e[13];let h;e[14]===p?h=e[15]:(h=(0,A.jsxs)(`header`,{className:`flex items-center justify-between gap-4`,children:[p,m]}),e[14]=p,e[15]=h);let g;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,A.jsx)(`main`,{className:`flex min-w-0 flex-col gap-5 md:gap-6`,children:(0,A.jsx)(ga,{})}),e[16]=g):g=e[16];let _;e[17]===h?_=e[18]:(_=(0,A.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1320px] min-w-0 flex-col gap-5 px-4 pt-4 pb-10 sm:px-6 md:gap-6 md:px-10 md:pt-8`,children:[h,g]}),e[17]=h,e[18]=_);let v;e[19]===t?v=e[20]:(v=t&&(0,A.jsx)(Hu,{onSchliessen:()=>n(!1)}),e[19]=t,e[20]=v);let y;e[21]===v?y=e[22]:(y=(0,A.jsx)(k.Suspense,{fallback:null,children:v}),e[21]=v,e[22]=y);let b;e[23]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,A.jsx)(Ou,{}),e[23]=b):b=e[23];let x;return e[24]!==_||e[25]!==y?(x=(0,A.jsxs)(`div`,{className:`min-h-dvh lg:grid lg:grid-cols-[272px_minmax(0,1fr)]`,children:[i,_,y,b]}),e[24]=_,e[25]=y,e[26]=x):x=e[26],x}var Xu={gruen:`border-gruen-rand bg-gruen-grund text-gruen`,bernstein:`border-bernstein/60 bg-bernstein-grund text-bernstein`,cyan:`border-cyan-rand bg-cyan-grund text-cyan`,rot:`border-rot-rand bg-rot-grund text-rot-text`,grau:`border-linie bg-erhaben text-text-2`};function Zu(e){let t=(0,z.c)(5),{art:n,children:r}=e,i=Xu[n===void 0?`grau`:n],o;t[0]===i?o=t[1]:(o=a(`schild inline-flex h-7 items-center rounded-full border px-2.5 text-xs whitespace-nowrap`,i),t[0]=i,t[1]=o);let s;return t[2]!==r||t[3]!==o?(s=(0,A.jsx)(`span`,{className:o,children:r}),t[2]=r,t[3]=o,t[4]=s):s=t[4],s}function Qu(e){let t=(0,z.c)(6),{fehler:n,text:r}=e,i=n?`alert`:`status`,o=n?`border-rot-rand bg-rot-grund text-rot-text`:`border-linie bg-panel text-text-2`,s;t[0]===o?s=t[1]:(s=a(`rounded-2xl border px-5 py-8 text-center text-[15px]`,o),t[0]=o,t[1]=s);let c;return t[2]!==i||t[3]!==s||t[4]!==r?(c=(0,A.jsx)(`div`,{role:i,className:s,children:r}),t[2]=i,t[3]=s,t[4]=r,t[5]=c):c=t[5],c}var $u={erledigt:{text:`Erledigt`,farbe:`text-gruen`},fehler:{text:`Fehler`,farbe:`text-rot`},geplant:{text:`Geplant`,farbe:`text-text-3`}};function ed(e){let t=(0,z.c)(18),{e:n}=e,r=$u[n.status]??$u.geplant,i=n.status===`geplant`&&/update/i.test(n.titel)?`text-cyan`:r.farbe,o;t[0]===n.zeit?o=t[1]:(o=vs(n.zeit),t[0]=n.zeit,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,A.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:o}),t[2]=o,t[3]=s);let c;t[4]===n.text?c=t[5]:(c=n.text&&(0,A.jsxs)(`span`,{className:`text-text-3`,children:[`, `,n.text]}),t[4]=n.text,t[5]=c);let l;t[6]!==n.titel||t[7]!==c?(l=(0,A.jsxs)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-base break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:[n.titel,c]}),t[6]=n.titel,t[7]=c,t[8]=l):l=t[8];let u;t[9]===i?u=t[10]:(u=a(`schild col-start-2 row-start-1 justify-self-end text-[13px] @sm:col-start-3`,i),t[9]=i,t[10]=u);let d;t[11]!==r.text||t[12]!==u?(d=(0,A.jsx)(`span`,{className:u,children:r.text}),t[11]=r.text,t[12]=u,t[13]=d):d=t[13];let f;return t[14]!==s||t[15]!==l||t[16]!==d?(f=(0,A.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-linie py-2.5 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[s,l,d]}),t[14]=s,t[15]=l,t[16]=d,t[17]=f):f=t[17],f}function G(e){let t=(0,z.c)(6),{gelaufen:n,geplant:r}=e,i;t[0]!==n||t[1]!==r?(i=[...n,...r.slice(0,5)],t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=i;if(a.length===0){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,A.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Heute ist noch nichts gelaufen, und nichts ist geplant.`}),t[3]=e):e=t[3],e}let o;return t[4]===a?o=t[5]:(o=(0,A.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:a.map(K)}),t[4]=a,t[5]=o),o}function K(e){return(0,A.jsx)(ed,{e},`${e.titel}-${e.zeit}`)}function q(e){let t=(0,z.c)(11),{titel:n,rechts:r,children:i,className:o,id:s}=e,c;t[0]===o?c=t[1]:(c=a(`flex min-w-0 flex-col gap-4 rounded-2xl border border-linie bg-panel p-5 sm:p-6`,o),t[0]=o,t[1]=c);let l;t[2]!==r||t[3]!==n?(l=(n||r)&&(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[n&&(0,A.jsx)(`h2`,{className:`schild text-lg font-bold tracking-[0.22em] text-foreground`,children:n}),r]}),t[2]=r,t[3]=n,t[4]=l):l=t[4];let u;return t[5]!==i||t[6]!==s||t[7]!==c||t[8]!==l||t[9]!==n?(u=(0,A.jsxs)(`section`,{id:s,"aria-label":n,className:c,children:[l,i]}),t[5]=i,t[6]=s,t[7]=c,t[8]=l,t[9]=n,t[10]=u):u=t[10],u}var J=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:1}),Y=new Intl.NumberFormat(`de-DE`,{maximumFractionDigits:0});function td(e){return e<1e3?`${Y.format(e)} B/s`:e<1e6?`${J.format(e/1e3)} KB/s`:e<1e9?`${J.format(e/1e6)} MB/s`:`${J.format(e/1e9)} GB/s`}function nd(e,t){return e==null||Number.isNaN(e)?`–`:t===`prozent`?`${Y.format(e)} %`:t===`grad`?`${Y.format(e)} °C`:t===`bytes_s`?td(e):Y.format(e)}function rd(e){if(!e)return null;for(let t=e.length-1;t>=0;t--){let n=e[t][1];if(n!==null)return n}return null}function id(e,t){if(t===`prozent`)return 100;let n=0;for(let t of e)for(let[,e]of t??[])e!==null&&e>n&&(n=e);if(t===`grad`)return Math.max(60,Math.ceil((n+5)/10)*10);if(n<=0)return 1;let r=10**Math.floor(Math.log10(n));for(let e of[1,2,2.5,5,10])if(e*r>=n)return e*r;return 10*r}function ad(e,t,n){return e===null?`ruhig`:e>=n?`rot`:e>=t?`gelb`:`ruhig`}var od=new Intl.DateTimeFormat(`de-DE`,{hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`}),sd=new Intl.DateTimeFormat(`de-DE`,{weekday:`short`,hour:`2-digit`,minute:`2-digit`,timeZone:`Europe/Berlin`});function cd(e,t){let n=new Date(e*1e3);return(t?sd:od).format(n).replace(`,`,``)}function ld(e){if(!e||e<0)return`–`;let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t} T ${n} h`:n>0?`${n} h ${r} min`:`${r} min`}function ud(e,t,n){let r=``,i=!1;for(let[a,o]of e){if(o===null){i=!1;continue}r+=`${i?`L`:`M`}${t(a).toFixed(1)},${n(o).toFixed(1)}`,i=!0}return r}function dd(e,t,n,r){let i=``,a=[],o=()=>{a.length>1&&(i+=`M${a[0][0].toFixed(1)},${r}`+a.map(([e,t])=>`L${e.toFixed(1)},${t.toFixed(1)}`).join(``)+`L${a[a.length-1][0].toFixed(1)},${r}Z`),a=[]};for(let[r,i]of e)i===null?o():a.push([t(r),n(i)]);return o(),i}function fd(e){if(!Number.isFinite(e)||e<=0)return[0,1];for(let t=0;;t++)for(let n of[1,2,2.5,5]){let r=n*10**t;if(!Number.isInteger(r))continue;let i=Math.ceil(e/r);if(i<=4)return Array.from({length:i+1},(e,t)=>t*r)}}var X=e=>Number(e.toFixed(1));function pd(e,t,n,r,i=4){let a=Math.max(0,Math.min(i,n/2,r));return`M${X(e)},${X(t+r)}V${X(t+a)}Q${X(e)},${X(t)} ${X(e+a)},${X(t)}H${X(e+n-a)}Q${X(e+n)},${X(t)} ${X(e+n)},${X(t+a)}V${X(t+r)}Z`}function md(e,t,n=2){let r=[],i=0;e.forEach((e,a)=>{if(!(e>0))return;let o=t(i);i+=e;let s=t(i);r.push({index:a,y:s,hoehe:Math.max(0,o-s-(r.length?n:0)),oben:!1})});let a=r.filter(e=>e.hoehe>=1).at(-1);return a&&(a.oben=!0),r}function hd(e){let t=(0,z.c)(22),{punkte:n,max:r,farbe:i,hoehe:a,beschriftung:o}=e,s=i===void 0?`var(--reihe-1)`:i,c=a===void 0?36:a,l=n[0]?.[0]??0,u=n[n.length-1]?.[0]??1,d;t[0]!==l||t[1]!==u?(d=e=>u>l?(e-l)/(u-l)*100:0,t[0]=l,t[1]=u,t[2]=d):d=t[2];let f=d,p;t[3]!==c||t[4]!==r?(p=e=>c-2-Math.min(e,r)/(r||1)*(c-4),t[3]=c,t[4]=r,t[5]=p):p=t[5];let m=p,h;t[6]===n?h=t[7]:(h=n.some(gd),t[6]=n,t[7]=h);let g=h,_=`0 0 100 ${c}`,v;t[8]===c?v=t[9]:(v={height:c},t[8]=c,t[9]=v);let y;t[10]!==s||t[11]!==g||t[12]!==c||t[13]!==n||t[14]!==f||t[15]!==m?(y=g&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{d:dd(n,f,m,c),fill:s,opacity:.12}),(0,A.jsx)(`path`,{d:ud(n,f,m),fill:`none`,stroke:s,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`})]}),t[10]=s,t[11]=g,t[12]=c,t[13]=n,t[14]=f,t[15]=m,t[16]=y):y=t[16];let b;return t[17]!==o||t[18]!==_||t[19]!==v||t[20]!==y?(b=(0,A.jsx)(`svg`,{role:`img`,"aria-label":o,viewBox:_,preserveAspectRatio:`none`,className:`block w-full`,style:v,children:y}),t[17]=o,t[18]=_,t[19]=v,t[20]=y,t[21]=b):b=t[21],b}function gd(e){let[,t]=e;return t!==null}var _d={ruhig:{wert:`text-foreground`,marke:null},gelb:{wert:`text-bernstein`,marke:`hoch`},rot:{wert:`text-rot-text`,marke:`kritisch`}};function vd(e){let t=(0,z.c)(29),{label:n,wert:r,einheit:i,punkte:o,max:s,zustand:c,farbe:l,zeitraumText:u}=e,d=_d[c===void 0?`ruhig`:c],f;t[0]===n?f=t[1]:(f=(0,A.jsx)(`span`,{className:`schild text-xs tracking-[0.18em] text-text-3`,children:n}),t[0]=n,t[1]=f);let p;t[2]===d.wert?p=t[3]:(p=a(`font-anzeige text-[28px] leading-none font-bold`,d.wert),t[2]=d.wert,t[3]=p);let m;t[4]!==i||t[5]!==r?(m=nd(r,i),t[4]=i,t[5]=r,t[6]=m):m=t[6];let h;t[7]!==p||t[8]!==m?(h=(0,A.jsx)(`span`,{className:p,children:m}),t[7]=p,t[8]=m,t[9]=h):h=t[9];let g;t[10]!==d.marke||t[11]!==d.wert?(g=d.marke&&(0,A.jsx)(`span`,{className:a(`schild text-[11px]`,d.wert),children:d.marke}),t[10]=d.marke,t[11]=d.wert,t[12]=g):g=t[12];let _;t[13]!==h||t[14]!==g?(_=(0,A.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[h,g]}),t[13]=h,t[14]=g,t[15]=_):_=t[15];let v;t[16]!==l||t[17]!==n||t[18]!==s||t[19]!==o||t[20]!==u?(v=o&&o.length>1&&(0,A.jsx)(hd,{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]=v):v=t[21];let y;t[22]===o?y=t[23]:(y=o&&o.length<=1&&(0,A.jsx)(`span`,{className:`h-9`,"aria-hidden":!0}),t[22]=o,t[23]=y);let b;return t[24]!==f||t[25]!==_||t[26]!==v||t[27]!==y?(b=(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5 rounded-xl border border-linie bg-erhaben/50 px-3.5 pt-3 pb-2`,children:[f,_,v,y]}),t[24]=f,t[25]=_,t[26]=v,t[27]=y,t[28]=b):b=t[28],b}var yd=new Set([`snapshot-anlegen`,`snapshot-loeschen`,`snapshot-zurueck`,`sicherung-loeschen`]),bd=e=>yd.has(e.baustein),xd={update:{chip:`vor Update`,text:`Rückweg vor einem Update`},knopf:{chip:`per Knopf`,text:`Hier per Knopf angelegt`},proxmox:{chip:`von Hand`,text:`Von Hand in Proxmox angelegt`}};function Sd(e,t){return e===null?`Zeitpunkt unbekannt`:vs(new Date(e*1e3).toISOString(),new Date(t*1e3))}function Cd(e,t){return e===null?``:bs(e,t*1e3)}function wd(e){return e===null||e<=0?null:e<1e9?`${Math.round(e/1e6)} MB`:`${(e/1e9).toFixed(1).replace(`.`,`,`)} GB`}function Td(e,t){let n=e.startsWith(`${t}: `)?e.slice(t.length+2):e;return n.charAt(0).toUpperCase()+n.slice(1)}function Ed(e){let t=[`${e.snapshots} ${e.snapshots===1?`Snapshot`:`Snapshots`}`];return e.sicherungen>0&&t.push(`${e.sicherungen} ${e.sicherungen===1?`Sicherung`:`Sicherungen`}`),t.join(` · `)}function Dd(e){if(e.aktion)return null;let t=e.grund??``,n=t.match(/erst ab (\d{2}\.\d{2}\.(?:\d{4})? ?\d{2}:\d{2})/)?.[1];return n?`ab ${n}`:/eigene Oberfläche|eigenen Oberfläche|eigenes Update/i.test(t)?`über die App`:null}function Od(e){let t=e.bausteine.filter(e=>e.zustand===`neu`);if(t.length===0)return null;let n=[],r=au(e);if(r?.zustand===`neu`){let e=Dd(r);n.push(`App → ${r.verfuegbar??`neu`}${e?` (${e})`:``}`)}let i=W(e);i?.zustand===`neu`&&n.push(i.kurz||(i.id===`docker`?`Images`:`Pakete`));for(let e of t)e!==r&&e!==i&&n.push(`${e.name}${e.kurz?` · ${e.kurz}`:``}`);return{id:e.id,name:e.name,teile:n,knopf:t.some(e=>!!e.aktion)}}function kd(e){return e.bausteine.filter(e=>e.zustand===`neu`).map(t=>({id:`${e.id}-${t.id}`,name:t.name,teile:[t.kurz||t.verfuegbar||`neu`],knopf:!!t.aktion}))}function Ad(e){let t=e.flatMap(e=>e.art===`ki-box`?kd(e):[Od(e)]).filter(e=>e!==null);return[...t.filter(e=>e.knopf),...t.filter(e=>!e.knopf)]}function jd(e){return e.getrennt.length>0?{stufe:`rot`,titel:`Verbindung weg`,text:`${e.getrennt.join(` und `)} antwortet nicht.`}:e.stumm.length>0||e.hinweiseRot>0?{stufe:`rot`,titel:`Störung`,text:`${e.stumm.length>0?`${e.stumm.join(`, `)} antwortet nicht`:`Ein roter Hinweis wartet`}.`}:e.hinweise>0?{stufe:`gelb`,titel:e.hinweise===1?`1 Hinweis`:`${e.hinweise} Hinweise`,text:`Bei Gelegenheit ansehen.`}:e.updates>0?{stufe:`info`,titel:`Alles läuft`,text:`${e.updates} ${e.updates===1?`Update steht`:`Updates stehen`} bereit.`}:{stufe:`ok`,titel:`Alles läuft`,text:`Keine Hinweise, keine offenen Updates.`}}var Md={ok:{rahmen:`border-gruen-rand bg-gruen-grund`,titel:`text-gruen`,Symbol:Za},info:{rahmen:`border-cyan-rand bg-cyan-grund`,titel:`text-cyan`,Symbol:lo},gelb:{rahmen:`border-bernstein/70 bg-bernstein-grund`,titel:`text-bernstein`,Symbol:Ya},rot:{rahmen:`border-rot bg-rot-grund`,titel:`text-rot`,Symbol:Ya}};function Nd(e){let t=(0,z.c)(17),{label:n,wert:r,zusatz:i,art:o}=e,s,c,l;t[0]!==o||t[1]!==n?(c=`flex min-w-0 flex-col gap-1 rounded-xl border border-linie bg-panel/70 px-4 py-3`,t[5]===n?l=t[6]:(l=(0,A.jsx)(`span`,{className:`schild text-xs tracking-[0.18em] text-text-3`,children:n}),t[5]=n,t[6]=l),s=a(`font-anzeige text-[32px] leading-none font-bold`,{gruen:`text-gruen`,bernstein:`text-bernstein`,cyan:`text-cyan`,rot:`text-rot-text`,grau:`text-foreground`}[o]),t[0]=o,t[1]=n,t[2]=s,t[3]=c,t[4]=l):(s=t[2],c=t[3],l=t[4]);let u;t[7]!==s||t[8]!==r?(u=(0,A.jsx)(`span`,{className:s,children:r}),t[7]=s,t[8]=r,t[9]=u):u=t[9];let d;t[10]===i?d=t[11]:(d=i&&(0,A.jsx)(`span`,{className:`truncate text-xs text-text-3`,children:i}),t[10]=i,t[11]=d);let f;return t[12]!==c||t[13]!==l||t[14]!==u||t[15]!==d?(f=(0,A.jsxs)(`div`,{className:c,children:[l,u,d]}),t[12]=c,t[13]=l,t[14]=u,t[15]=d,t[16]=f):f=t[16],f}var Pd={online:`bg-gruen shadow-[0_0_8px_rgba(61,220,138,0.7)]`,verbinde:`bg-bernstein`,getrennt:`bg-rot`,fehlt:`bg-text-3`},Fd={online:`online`,verbinde:`verbinde`,getrennt:`getrennt`,fehlt:`nicht eingerichtet`};function Id(e){let t=(0,z.c)(43),{bereich:n,name:r,verbindung:i,cockpit:o,children:s}=e,c,l,u,d,f,p,m,h,g;if(t[0]!==n||t[1]!==o||t[2]!==r){let e=n===`box`?{rand:`border-box-rand`,kopf:`from-box-grund`,text:`text-box-text`,balken:`bg-box`}:{rand:`border-lab-rand`,kopf:`from-lab-grund`,text:`text-lab-text`,balken:`bg-lab`};h=r,g=a(`flex min-w-0 flex-col overflow-hidden rounded-2xl border bg-panel`,e.rand),c=ta,p=o,m=a(`group flex items-center justify-between gap-3 bg-gradient-to-r to-transparent px-5 py-4 sm:px-6`,e.kopf),d=`flex items-center gap-3`,f=(0,A.jsx)(`span`,{"aria-hidden":!0,className:a(`h-7 w-1.5 rounded-full`,e.balken)}),u=`flex flex-col leading-tight`,l=a(`schild text-lg font-bold tracking-[0.22em]`,e.text),t[0]=n,t[1]=o,t[2]=r,t[3]=c,t[4]=l,t[5]=u,t[6]=d,t[7]=f,t[8]=p,t[9]=m,t[10]=h,t[11]=g}else c=t[3],l=t[4],u=t[5],d=t[6],f=t[7],p=t[8],m=t[9],h=t[10],g=t[11];let _;t[12]!==r||t[13]!==l?(_=(0,A.jsx)(`span`,{className:l,children:r}),t[12]=r,t[13]=l,t[14]=_):_=t[14];let v=Pd[i],y;t[15]===v?y=t[16]:(y=a(`size-2 rounded-full`,v),t[15]=v,t[16]=y);let b;t[17]===y?b=t[18]:(b=(0,A.jsx)(`span`,{"aria-hidden":!0,className:y}),t[17]=y,t[18]=b);let x=Fd[i],S;t[19]!==b||t[20]!==x?(S=(0,A.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-text-3`,children:[b,x]}),t[19]=b,t[20]=x,t[21]=S):S=t[21];let C;t[22]!==S||t[23]!==u||t[24]!==_?(C=(0,A.jsxs)(`span`,{className:u,children:[_,S]}),t[22]=S,t[23]=u,t[24]=_,t[25]=C):C=t[25];let w;t[26]!==C||t[27]!==d||t[28]!==f?(w=(0,A.jsxs)(`span`,{className:d,children:[f,C]}),t[26]=C,t[27]=d,t[28]=f,t[29]=w):w=t[29];let T;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,A.jsxs)(`span`,{className:`flex items-center gap-1.5 text-sm text-text-2 group-hover:text-foreground`,children:[`Cockpit `,(0,A.jsx)(qa,{className:`size-4 transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0})]}),t[30]=T):T=t[30];let E;t[31]!==c||t[32]!==w||t[33]!==p||t[34]!==m?(E=(0,A.jsxs)(c,{to:p,className:m,children:[w,T]}),t[31]=c,t[32]=w,t[33]=p,t[34]=m,t[35]=E):E=t[35];let D;t[36]===s?D=t[37]:(D=(0,A.jsx)(`div`,{className:`flex flex-col gap-5 px-5 pt-1 pb-5 sm:px-6`,children:s}),t[36]=s,t[37]=D);let O;return t[38]!==E||t[39]!==D||t[40]!==h||t[41]!==g?(O=(0,A.jsxs)(`section`,{"aria-label":h,className:g,children:[E,D]}),t[38]=E,t[39]=D,t[40]=h,t[41]=g,t[42]=O):O=t[42],O}function Ld(e){let t=(0,z.c)(5),{titel:n,rechts:r}=e,i;t[0]===n?i=t[1]:(i=(0,A.jsx)(`h3`,{className:`schild text-sm tracking-[0.2em] text-text-2`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a}function Rd(e){let t=(0,z.c)(13),{zeilen:n,ziel:r,laedt:i,alleAktuell:o}=e,s;t[0]===n?s=t[1]:(s=n.filter(zd),t[0]=n,t[1]=s);let c=s.length,l;t[2]!==c||t[3]!==n.length?(l=(0,A.jsx)(Ld,{titel:`Updates`,rechts:c>0?(0,A.jsxs)(Zu,{art:`cyan`,children:[c,` bereit`]}):n.length>0?(0,A.jsx)(Zu,{children:`wartet`}):(0,A.jsx)(Zu,{art:`gruen`,children:`aktuell`})}),t[2]=c,t[3]=n.length,t[4]=l):l=t[4];let u;t[5]!==o||t[6]!==i||t[7]!==n||t[8]!==r?(u=i?(0,A.jsx)(`p`,{className:`text-sm text-text-3`,children:`Wird gelesen …`}):n.length===0?(0,A.jsxs)(`p`,{className:`flex items-center gap-2 text-sm text-gruen-text`,children:[(0,A.jsx)(Za,{className:`size-4`,"aria-hidden":!0}),o]}):(0,A.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:n.map(e=>(0,A.jsx)(`li`,{children:(0,A.jsxs)(ta,{to:r,className:`group -mx-2 grid grid-cols-[minmax(0,9rem)_minmax(0,1fr)_auto] items-baseline gap-3 rounded-lg px-2 py-1.5 hover:bg-erhaben`,children:[(0,A.jsx)(`span`,{className:`truncate text-[15px] font-medium`,children:e.name}),(0,A.jsx)(`span`,{className:a(`min-w-0 text-sm`,e.knopf?`text-cyan`:`text-text-3`),children:e.teile.join(` · `)}),(0,A.jsx)(qa,{className:`size-3.5 self-center text-text-3 opacity-0 group-hover:opacity-100`,"aria-hidden":!0})]})},e.id))}),t[5]=o,t[6]=i,t[7]=n,t[8]=r,t[9]=u):u=t[9];let d;return t[10]!==l||t[11]!==u?(d=(0,A.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12],d}function zd(e){return e.knopf}function Bd(e){let t=(0,z.c)(18),{hinweise:n,ziel:r}=e;if(n.length===0)return null;let i,o,s,c;if(t[0]!==n||t[1]!==r){let e=[...n].sort(Hd);s=`flex flex-col gap-2`;let l=n.some(Vd)?`rot`:`bernstein`;t[6]!==n.length||t[7]!==l?(c=(0,A.jsx)(Ld,{titel:`Hinweise`,rechts:(0,A.jsx)(Zu,{art:l,children:n.length})}),t[6]=n.length,t[7]=l,t[8]=c):c=t[8],i=`m-0 flex list-none flex-col gap-1 p-0`;let u;t[9]===r?u=t[10]:(u=e=>(0,A.jsx)(`li`,{children:(0,A.jsxs)(ta,{to:r,className:`-mx-2 flex items-start gap-2 rounded-lg px-2 py-1.5 hover:bg-erhaben`,children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:a(`mt-1.5 size-2 shrink-0 rounded-full`,e.stufe===`rot`?`bg-rot`:`bg-bernstein`)}),(0,A.jsx)(`span`,{className:a(`text-sm`,e.stufe===`rot`?`text-rot-text`:`text-bernstein`),children:e.titel})]})},e.id),t[9]=r,t[10]=u),o=e.slice(0,3).map(u),t[0]=n,t[1]=r,t[2]=i,t[3]=o,t[4]=s,t[5]=c}else i=t[2],o=t[3],s=t[4],c=t[5];let l;t[11]!==i||t[12]!==o?(l=(0,A.jsx)(`ul`,{className:i,children:o}),t[11]=i,t[12]=o,t[13]=l):l=t[13];let u;return t[14]!==s||t[15]!==c||t[16]!==l?(u=(0,A.jsxs)(`div`,{className:s,children:[c,l]}),t[14]=s,t[15]=c,t[16]=l,t[17]=u):u=t[17],u}function Vd(e){return e.stufe===`rot`}function Hd(e,t){return Number(t.stufe===`rot`)-Number(e.stufe===`rot`)}function Ud(e){let t=(0,z.c)(4),{werte:n}=e,r;t[0]===n?r=t[1]:(r=n.map(Wd),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,A.jsx)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4 xl:grid-cols-2 2xl:grid-cols-4`,children:r}),t[2]=r,t[3]=i),i}function Wd(e){return(0,A.jsx)(vd,{label:e.label,wert:e.wert,einheit:e.einheit,punkte:e.punkte,max:(e.einheit,100),zustand:ad(e.wert??null,e.gelb,e.rot),zeitraumText:`letzte Stunde`},e.label)}function Gd(e){let t=(0,z.c)(33),{verbindung:n}=e,r=Ds(),i=nc(),a=hc(`1h`),o=ss(),s=a.data?.reihen,c=r.data?.box,l=o?.ram??(c?.ram_used&&c.ram_total?c.ram_used/c.ram_total*100:null),u=o?.cpu??a.data?.aktuell.cpu,d=s?.cpu,f;t[0]!==u||t[1]!==d?(f={label:`CPU`,wert:u,einheit:`prozent`,punkte:d,gelb:85,rot:95},t[0]=u,t[1]=d,t[2]=f):f=t[2];let p=s?.ram,m;t[3]!==l||t[4]!==p?(m={label:`Speicher`,wert:l,einheit:`prozent`,punkte:p,gelb:85,rot:95},t[3]=l,t[4]=p,t[5]=m):m=t[5];let h=o?.temp_cpu??c?.temp_cpu,g=s?.temp_cpu,_;t[6]!==h||t[7]!==g?(_={label:`Temperatur`,wert:h,einheit:`grad`,punkte:g,gelb:80,rot:90},t[6]=h,t[7]=g,t[8]=_):_=t[8];let v=o?.disk??c?.platte?.percent,y=s?.platte,b;t[9]!==y||t[10]!==v?(b={label:`Platte`,wert:v,einheit:`prozent`,punkte:y,gelb:80,rot:90},t[9]=y,t[10]=v,t[11]=b):b=t[11];let x;t[12]!==b||t[13]!==f||t[14]!==m||t[15]!==_?(x=(0,A.jsx)(Ud,{werte:[f,m,_,b]}),t[12]=b,t[13]=f,t[14]=m,t[15]=_,t[16]=x):x=t[16];let S;t[17]===i.data?.ziele?S=t[18]:(S=i.data?.ziele??[],t[17]=i.data?.ziele,t[18]=S);let C;t[19]===S?C=t[20]:(C=Ad(S),t[19]=S,t[20]=C);let w;t[21]!==C||t[22]!==i.isPending?(w=(0,A.jsx)(Rd,{zeilen:C,ziel:`/box/updates`,laedt:i.isPending,alleAktuell:`Betriebssystem, Motor, llama-swap und Hermes sind aktuell.`}),t[21]=C,t[22]=i.isPending,t[23]=w):w=t[23];let T;t[24]===r.data?.hinweise?T=t[25]:(T=r.data?.hinweise??[],t[24]=r.data?.hinweise,t[25]=T);let E;t[26]===T?E=t[27]:(E=(0,A.jsx)(Bd,{hinweise:T,ziel:`/box`}),t[26]=T,t[27]=E);let D;return t[28]!==x||t[29]!==w||t[30]!==E||t[31]!==n?(D=(0,A.jsxs)(Id,{bereich:`box`,name:`KI-Box`,verbindung:n,cockpit:`/box`,children:[x,w,E]}),t[28]=x,t[29]=w,t[30]=E,t[31]=n,t[32]=D):D=t[32],D}function Kd(e){let t=(0,z.c)(14),{verbindung:n}=e,r=n===`online`,i=rc(r),a=oc(r),o=gc(`1h`,r),s;t[0]===o.data?.geraete?s=t[1]:(s=o.data?.geraete.find(qd),t[0]=o.data?.geraete,t[1]=s);let c=s,l;t[2]===i.data?.ziele?l=t[3]:(l=i.data?.ziele??[],t[2]=i.data?.ziele,t[3]=l);let u=l,d;t[4]!==r||t[5]!==a||t[6]!==i.isPending||t[7]!==c?.aktuell||t[8]!==c?.reihen||t[9]!==u?(d=r?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,A.jsx)(Ld,{titel:`Proxmox-Host`}),(0,A.jsx)(Ud,{werte:[{label:`CPU`,wert:c?.aktuell.cpu,einheit:`prozent`,punkte:c?.reihen.cpu,gelb:85,rot:95},{label:`Speicher`,wert:c?.aktuell.ram,einheit:`prozent`,punkte:c?.reihen.ram,gelb:90,rot:95},{label:`Temperatur`,wert:c?.aktuell.temp_cpu,einheit:`grad`,punkte:c?.reihen.temp_cpu,gelb:80,rot:90},{label:`Platte`,wert:c?.aktuell.platte,einheit:`prozent`,punkte:c?.reihen.platte,gelb:80,rot:90}]})]}),(0,A.jsx)(Rd,{zeilen:Ad(u),ziel:`/homelab/updates`,laedt:i.isPending,alleAktuell:`Alle Geräte sind aktuell.`}),(0,A.jsx)(Bd,{hinweise:a.data?.hinweise??[],ziel:`/homelab`})]}):(0,A.jsx)(`p`,{className:`text-sm text-text-2`,children:`Der Homelab-Teil antwortet gerade nicht; die Karte zeigt nichts Veraltetes.`}),t[4]=r,t[5]=a,t[6]=i.isPending,t[7]=c?.aktuell,t[8]=c?.reihen,t[9]=u,t[10]=d):d=t[10];let f;return t[11]!==d||t[12]!==n?(f=(0,A.jsx)(Id,{bereich:`homelab`,name:`Homelab`,verbindung:n,cockpit:`/homelab`,children:d}),t[11]=d,t[12]=n,t[13]=f):f=t[13],f}function qd(e){return e.art===`proxmox-host`}var Jd={eingespielt:`gruen`,gruen:`gruen`,zurueckgerollt:`bernstein`,gelb:`bernstein`,fehler:`rot`,rot:`rot`,neustart:`cyan`,info:`cyan`,aufgeraeumt:`gruen`};function Yd(e){let t=(0,z.c)(9),{homelabAktiv:n}=e,r=Ps(),i=ic(n),a,o,s;if(t[0]!==r.data?.laeufe||t[1]!==i.data?.laeufe){s=Symbol.for(`react.early_return_sentinel`);bb0:{let e=[...(r.data?.laeufe??[]).slice(0,6).map(ef),...(i.data?.laeufe??[]).filter($d).slice(0,6).map(Qd)].sort(Zd).slice(0,6);if(e.length===0){let e;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,A.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Noch keine Updates aufgezeichnet.`}),t[5]=e):e=t[5],s=e;break bb0}a=`@container m-0 flex list-none flex-col p-0`,o=e.map(Xd)}t[0]=r.data?.laeufe,t[1]=i.data?.laeufe,t[2]=a,t[3]=o,t[4]=s}else a=t[2],o=t[3],s=t[4];if(s!==Symbol.for(`react.early_return_sentinel`))return s;let c;return t[6]!==a||t[7]!==o?(c=(0,A.jsx)(`ol`,{className:a,children:o}),t[6]=a,t[7]=o,t[8]=c):c=t[8],c}function Xd(e){return(0,A.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-linie py-2.5 first:border-t-0 @md:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[(0,A.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:vs(new Date(e.zeit).toISOString())}),(0,A.jsxs)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-[15px] @md:col-span-1 @md:col-start-2 @md:row-start-1`,children:[(0,A.jsx)(`span`,{className:a(`schild mr-2 text-[11px]`,e.bereich===`KI-Box`?`text-box-text`:`text-lab-text`),children:e.bereich}),e.titel]}),(0,A.jsx)(`span`,{className:`col-start-2 row-start-1 justify-self-end @md:col-start-3`,children:(0,A.jsx)(Zu,{art:e.art,children:e.chip})})]},`${e.bereich}-${e.zeit}-${e.titel}`)}function Zd(e,t){return t.zeit-e.zeit}function Qd(e){return{zeit:e.start*1e3,bereich:`Homelab`,titel:e.name,chip:e.ergebnis??`unterbrochen`,art:(e.ergebnis?Jd[e.ergebnis]:`grau`)??`grau`}}function $d(e){return e.status!==`laeuft`&&!bd(e)&&e.baustein!==`probe`}function ef(e){return{zeit:new Date(e.start).getTime(),bereich:`KI-Box`,titel:e.anlass,chip:e.titel,art:Jd[e.stufe]??`grau`}}function tf(){let e=(0,z.c)(92),t=Cu(),n=Ds(),r=t.homelab.verbindung===`online`,i=rc(r),o=oc(r);if(n.isPending&&!n.data){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsx)(Qu,{text:`Die Übersicht sammelt sich gleich …`}),e[0]=t):t=e[0],t}let s,c,l;if(e[1]!==i.data?.ziele||e[2]!==o.data?.hinweise||e[3]!==t.box.updates||e[4]!==t.box.verbindung||e[5]!==t.homelab.updates||e[6]!==t.homelab.verbindung||e[7]!==n.data?.hinweise||e[8]!==n.isError){let r=[...t.box.verbindung===`getrennt`&&n.isError?[`Die KI-Box`]:[],...t.homelab.verbindung===`getrennt`?[`Der Homelab-Teil`]:[]],a=(i.data?.ziele??[]).filter(sf).map(of),u;e[12]===n.data?.hinweise?u=e[13]:(u=n.data?.hinweise??[],e[12]=n.data?.hinweise,e[13]=u);let d;e[14]===o.data?.hinweise?d=e[15]:(d=o.data?.hinweise??[],e[14]=o.data?.hinweise,e[15]=d);let f;e[16]!==u||e[17]!==d?(f=[...u,...d],e[16]=u,e[17]=d,e[18]=f):f=e[18],s=f,l=t.box.updates+t.homelab.updates;let p;e[19]===s?p=e[20]:(p=s.filter(af),e[19]=s,e[20]=p),c=jd({getrennt:r,stumm:a,hinweiseRot:p.length,hinweise:s.length,updates:l}),e[1]=i.data?.ziele,e[2]=o.data?.hinweise,e[3]=t.box.updates,e[4]=t.box.verbindung,e[5]=t.homelab.updates,e[6]=t.homelab.verbindung,e[7]=n.data?.hinweise,e[8]=n.isError,e[9]=s,e[10]=c,e[11]=l}else s=e[9],c=e[10],l=e[11];let u=c,d=Md[u.stufe],f;e[21]===i.data?.ziele?f=e[22]:(f=i.data?.ziele??[],e[21]=i.data?.ziele,e[22]=f);let p=f,m;e[23]===p?m=e[24]:(m=p.filter(rf),e[23]=p,e[24]=m);let h=m.length+ +(t.box.verbindung===`online`),g=p.length+1,_=n.data?.flugplan.geplant[0],v;e[25]===d.rahmen?v=e[26]:(v=a(`grid gap-4 rounded-2xl border p-4 sm:p-5 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.6fr)] lg:items-center`,d.rahmen),e[25]=d.rahmen,e[26]=v);let y=d.Symbol,b;e[27]===d.titel?b=e[28]:(b=a(`size-10 shrink-0`,d.titel),e[27]=d.titel,e[28]=b);let x;e[29]!==d.Symbol||e[30]!==b?(x=(0,A.jsx)(y,{className:b,"aria-hidden":!0}),e[29]=d.Symbol,e[30]=b,e[31]=x):x=e[31];let S;e[32]===d.titel?S=e[33]:(S=a(`font-anzeige text-[34px] leading-none font-bold tracking-[0.02em]`,d.titel),e[32]=d.titel,e[33]=S);let C;e[34]!==u.titel||e[35]!==S?(C=(0,A.jsx)(`span`,{className:S,children:u.titel}),e[34]=u.titel,e[35]=S,e[36]=C):C=e[36];let w;e[37]===u.text?w=e[38]:(w=(0,A.jsx)(`span`,{className:`text-[15px] text-text-2`,children:u.text}),e[37]=u.text,e[38]=w);let T;e[39]!==C||e[40]!==w?(T=(0,A.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[C,w]}),e[39]=C,e[40]=w,e[41]=T):T=e[41];let E;e[42]!==x||e[43]!==T?(E=(0,A.jsxs)(`div`,{className:`flex items-center gap-4 px-1`,children:[x,T]}),e[42]=x,e[43]=T,e[44]=E):E=e[44];let D=String(l),O=l?`cyan`:`gruen`,ee=`KI-Box ${t.box.updates} · Homelab ${t.homelab.updates}`,te;e[45]!==D||e[46]!==O||e[47]!==ee?(te=(0,A.jsx)(Nd,{label:`Updates bereit`,wert:D,art:O,zusatz:ee}),e[45]=D,e[46]=O,e[47]=ee,e[48]=te):te=e[48];let ne=String(s.length),re=s.some(nf)?`rot`:s.length?`bernstein`:`gruen`,ie;e[49]!==ne||e[50]!==re?(ie=(0,A.jsx)(Nd,{label:`Hinweise`,wert:ne,art:re}),e[49]=ne,e[50]=re,e[51]=ie):ie=e[51];let ae=`${h}/${g}`,k=h(0,A.jsx)(Ri,{to:`/`})}),lf=ia({getParentRoute:()=>cf,path:`/`,component:tf}),uf=ia({getParentRoute:()=>cf,path:`/box`,component:L(()=>Vu(()=>import(`./Start-BEW_FGcW.js`),__vite__mapDeps([5,1,3,6])),`StartSeite`)}),df=ia({getParentRoute:()=>cf,path:`/box/updates`,component:L(()=>Vu(()=>import(`./Updates-DZ25Ri0a.js`),__vite__mapDeps([7,1,8,3,9,4,10])),`UpdatesSeite`)}),ff=ia({getParentRoute:()=>cf,path:`/box/modelle`,component:L(()=>Vu(()=>import(`./Modelle-CpXbVZza.js`),__vite__mapDeps([11,1,12,13,8,14,3,2,4,9,10,15])),`ModelleSeite`)}),pf=ia({getParentRoute:()=>cf,path:`/box/monitoring`,component:L(()=>Vu(()=>import(`./Monitoring-Cx9bpZ97.js`),__vite__mapDeps([16,1,15])),`BoxMonitoringSeite`)}),Z=ia({getParentRoute:()=>cf,path:`/box/dienste`,component:L(()=>Vu(()=>import(`./Dienste-Btw1nQIy.js`),__vite__mapDeps([17,1,3,9,4])),`DiensteSeite`)}),mf=ia({getParentRoute:()=>cf,path:`/homelab`,component:L(()=>Vu(()=>import(`./Homelab-D7JGlciA.js`),__vite__mapDeps([18,1,8,19,14,3,9,4,6])),`HomelabSeite`)}),hf=ia({getParentRoute:()=>cf,path:`/homelab/updates`,component:L(()=>Vu(()=>import(`./Homelab-D7JGlciA.js`),__vite__mapDeps([18,1,8,19,14,3,9,4,6])),`HomelabUpdatesSeite`)}),gf=ia({getParentRoute:()=>cf,path:`/homelab/snapshots`,component:L(()=>Vu(()=>import(`./HomelabSnapshots-BJnRrB1s.js`),__vite__mapDeps([20,1,19,3,9,4])),`HomelabSnapshotsSeite`)}),_f=ia({getParentRoute:()=>cf,path:`/homelab/monitoring`,component:L(()=>Vu(()=>import(`./Monitoring-Cx9bpZ97.js`),__vite__mapDeps([16,1,15])),`HomelabMonitoringSeite`)}),vf=ia({getParentRoute:()=>cf,path:`/homelab/protokoll`,component:L(()=>Vu(()=>import(`./HomelabProtokoll-Bn-4pxRM.js`),__vite__mapDeps([21,1,8,14])),`HomelabProtokollSeite`)}),yf=ia({getParentRoute:()=>cf,path:`/einstellungen`,component:L(()=>Vu(()=>import(`./Einstellungen-B9lWkZF-.js`),__vite__mapDeps([22,1,3,9,4])),`EinstellungenSeite`)}),bf=ia({getParentRoute:()=>cf,path:`/updates`,beforeLoad:()=>{throw un({to:`/box/updates`})}}),xf=ia({getParentRoute:()=>cf,path:`/modelle`,beforeLoad:({location:e})=>{throw un({to:`/box/modelle`,hash:e.hash||void 0})}}),Sf=Sa({routeTree:cf.addChildren([lf,uf,df,ff,pf,Z,mf,hf,_f,vf,yf,bf,xf,gf]),defaultPreload:`intent`,defaultErrorComponent:Oa}),Cf=`mc_neuladen_wegen_version`;function wf(){window.addEventListener(`vite:preloadError`,e=>{sessionStorage.getItem(Cf)||(e.preventDefault(),sessionStorage.setItem(Cf,`1`),window.location.reload())}),window.addEventListener(`load`,()=>{window.setTimeout(()=>sessionStorage.removeItem(Cf),5e3)})}wf();var Tf=new pt({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1,staleTime:5e3}}});(0,Da.createRoot)(document.getElementById(`root`)).render((0,A.jsx)(k.StrictMode,{children:(0,A.jsx)(ce,{client:Tf,children:(0,A.jsx)(Ta,{router:Sf})})}));export{ic as $,wo as $t,mu as A,Vs as At,fc as B,ws as Bt,Qu as C,Ms as Ct,au as D,uc as Dt,Iu as E,Ds as Et,W as F,Ss as Ft,hc as G,Po as Gt,Ec as H,Ko as Ht,su as I,Cs as It,qs as J,Ro as Jt,Is as K,zo as Kt,du as L,xs as Lt,ou as M,ac as Mt,pu as N,Ys as Nt,tu as O,Ns as Ot,cu as P,vs as Pt,oc as Q,Fo as Qt,yc as R,ys as Rt,Zu as S,bc as St,Pu as T,dc as Tt,Gs as U,Io as Ut,Dc as V,ss as Vt,Ks as W,Ho as Wt,rc as X,V as Xt,zs as Y,Bo as Yt,Tc as Z,Vo as Zt,nd as _,lc as _t,Ed as a,to as an,ec as at,q as b,_c as bt,vd as c,Ua as cn,Us as ct,pd as d,Li as dn,Os as dt,B as en,gc as et,md as f,F as fn,ks as ft,id as g,Zs as gt,rd as h,As as ht,bd as i,lo as in,Ws as it,_u as j,Ps as jt,gu as k,cc as kt,dd as l,Ea as ln,js as lt,ld as m,re as mn,Fs as mt,Cd as n,vo as nn,Cc as nt,Sd as o,Za as on,Js as ot,fd as p,se as pn,tc as pt,sc as q,Lo as qt,wd as r,fo as rn,Sc as rt,Td as s,qa as sn,Hs as st,xd as t,Do as tn,xc as tt,ud as u,ta as un,Xs as ut,cd as v,$s as vt,Vu as w,wc as wt,G as x,vc as xt,ad as y,Qs as yt,pc as z,bs as zt}; \ No newline at end of file diff --git a/frontend/dist/assets/search-hyFAofkN.js b/frontend/dist/assets/search-DDxMRsny.js similarity index 68% rename from frontend/dist/assets/search-hyFAofkN.js rename to frontend/dist/assets/search-DDxMRsny.js index 5b3474a..9940da4 100644 --- a/frontend/dist/assets/search-hyFAofkN.js +++ b/frontend/dist/assets/search-DDxMRsny.js @@ -1 +1 @@ -import{cn as e}from"./index-CIOHqG23.js";var t={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};t.node;var n=e(t);export{n as t}; \ No newline at end of file +import{cn as e}from"./index-CKWhFN2A.js";var t={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};t.node;var n=e(t);export{n as t}; \ No newline at end of file diff --git a/frontend/dist/assets/sheet-DU78qfp_.js b/frontend/dist/assets/sheet-CHZtsS6E.js similarity index 96% rename from frontend/dist/assets/sheet-DU78qfp_.js rename to frontend/dist/assets/sheet-CHZtsS6E.js index 59abc0d..42128f5 100644 --- a/frontend/dist/assets/sheet-DU78qfp_.js +++ b/frontend/dist/assets/sheet-CHZtsS6E.js @@ -1 +1 @@ -import{i as e,n as t,r as n,t as r}from"./dist-D4CVSex9.js";import{nn as i}from"./index-CIOHqG23.js";import{t as a}from"./button-D8rvET0Z.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./dist-B2n2wafq.js";var p=t();e();var m=n();function h(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(f,{"data-slot":`sheet`,...n}),t[2]=n,t[3]=r),r}function g(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(l,{"data-slot":`sheet-portal`,...n}),t[2]=n,t[3]=r),r}function _(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,n),t[3]=n,t[4]=a);let s;return t[5]!==i||t[6]!==a?(s=(0,m.jsx)(o,{"data-slot":`sheet-overlay`,className:a,...i}),t[5]=i,t[6]=a,t[7]=s):s=t[7],s}function v(e){let t=(0,p.c)(17),n,o,s,l,d;t[0]===e?(n=t[1],o=t[2],s=t[3],l=t[4],d=t[5]):({className:o,children:n,side:l,showCloseButton:d,...s}=e,t[0]=e,t[1]=n,t[2]=o,t[3]=s,t[4]=l,t[5]=d);let f=l===void 0?`right`:l,h=d===void 0||d,v;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,m.jsx)(_,{}),t[6]=v):v=t[6];let y;t[7]===o?y=t[8]:(y=r(`fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10`,o),t[7]=o,t[8]=y);let b;t[9]===h?b=t[10]:(b=h&&(0,m.jsx)(c,{"data-slot":`sheet-close`,asChild:!0,children:(0,m.jsxs)(a,{variant:`ghost`,className:`absolute top-3 right-3`,size:`icon-sm`,children:[(0,m.jsx)(i,{}),(0,m.jsx)(`span`,{className:`sr-only`,children:`Schließen`})]})}),t[9]=h,t[10]=b);let x;return t[11]!==n||t[12]!==s||t[13]!==f||t[14]!==y||t[15]!==b?(x=(0,m.jsxs)(g,{children:[v,(0,m.jsxs)(u,{"data-slot":`sheet-content`,"data-side":f,className:y,...s,children:[n,b]})]}),t[11]=n,t[12]=s,t[13]=f,t[14]=y,t[15]=b,t[16]=x):x=t[16],x}function y(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`flex flex-col gap-0.5 p-4`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(`div`,{"data-slot":`sheet-header`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function b(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`font-heading text-base font-medium text-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(d,{"data-slot":`sheet-title`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function x(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`text-sm text-muted-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(s,{"data-slot":`sheet-description`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}export{b as a,y as i,v as n,x as r,h as t}; \ No newline at end of file +import{i as e,n as t,r as n,t as r}from"./dist-D4CVSex9.js";import{nn as i}from"./index-CKWhFN2A.js";import{t as a}from"./button-D8rvET0Z.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./dist-VQuEcoq-.js";var p=t();e();var m=n();function h(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(f,{"data-slot":`sheet`,...n}),t[2]=n,t[3]=r),r}function g(e){let t=(0,p.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,m.jsx)(l,{"data-slot":`sheet-portal`,...n}),t[2]=n,t[3]=r),r}function _(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,n),t[3]=n,t[4]=a);let s;return t[5]!==i||t[6]!==a?(s=(0,m.jsx)(o,{"data-slot":`sheet-overlay`,className:a,...i}),t[5]=i,t[6]=a,t[7]=s):s=t[7],s}function v(e){let t=(0,p.c)(17),n,o,s,l,d;t[0]===e?(n=t[1],o=t[2],s=t[3],l=t[4],d=t[5]):({className:o,children:n,side:l,showCloseButton:d,...s}=e,t[0]=e,t[1]=n,t[2]=o,t[3]=s,t[4]=l,t[5]=d);let f=l===void 0?`right`:l,h=d===void 0||d,v;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,m.jsx)(_,{}),t[6]=v):v=t[6];let y;t[7]===o?y=t[8]:(y=r(`fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10`,o),t[7]=o,t[8]=y);let b;t[9]===h?b=t[10]:(b=h&&(0,m.jsx)(c,{"data-slot":`sheet-close`,asChild:!0,children:(0,m.jsxs)(a,{variant:`ghost`,className:`absolute top-3 right-3`,size:`icon-sm`,children:[(0,m.jsx)(i,{}),(0,m.jsx)(`span`,{className:`sr-only`,children:`Schließen`})]})}),t[9]=h,t[10]=b);let x;return t[11]!==n||t[12]!==s||t[13]!==f||t[14]!==y||t[15]!==b?(x=(0,m.jsxs)(g,{children:[v,(0,m.jsxs)(u,{"data-slot":`sheet-content`,"data-side":f,className:y,...s,children:[n,b]})]}),t[11]=n,t[12]=s,t[13]=f,t[14]=y,t[15]=b,t[16]=x):x=t[16],x}function y(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`flex flex-col gap-0.5 p-4`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(`div`,{"data-slot":`sheet-header`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function b(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`font-heading text-base font-medium text-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(d,{"data-slot":`sheet-title`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function x(e){let t=(0,p.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`text-sm text-muted-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,m.jsx)(s,{"data-slot":`sheet-description`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}export{b as a,y as i,v as n,x as r,h as t}; \ No newline at end of file diff --git a/frontend/dist/assets/undo-2-DvQmwdhu.js b/frontend/dist/assets/undo-2-CJEVZ3Al.js similarity index 85% rename from frontend/dist/assets/undo-2-DvQmwdhu.js rename to frontend/dist/assets/undo-2-CJEVZ3Al.js index 8cd62fe..62d7dbe 100644 --- a/frontend/dist/assets/undo-2-DvQmwdhu.js +++ b/frontend/dist/assets/undo-2-CJEVZ3Al.js @@ -1 +1 @@ -import{cn as e}from"./index-CIOHqG23.js";var t={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`]};t.node;var n=e(t),r={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`}]]};r.node;var i=e(r);export{n,i as t}; \ No newline at end of file +import{cn as e}from"./index-CKWhFN2A.js";var t={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`]};t.node;var n=e(t),r={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`}]]};r.node;var i=e(r);export{n,i as t}; \ No newline at end of file diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 8656fa7..812f336 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -9,7 +9,7 @@ Homelab Orchestrator - + From 18fb446aa91c276328eeefee12104bfdf0b5425d Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Fri, 25 Sep 2026 15:12:31 +0200 Subject: [PATCH 3/4] =?UTF-8?q?wartung:=20Dashboard-Token=20weg,=20alte=20?= =?UTF-8?q?Hermes-Umgebung=20abl=C3=B6sbar,=20Box-Units=20als=20Kopie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Hermes-Dashboard: festes Session-Token der früheren Desktop-Anbindung wird nicht mehr gesichert oder zurückgespielt (liegt im Archiv auf der Box). Es bindet weiter an 0.0.0.0, weil Hermes seine Anmeldung auf 127.0.0.1 abschaltet; ufw hält 9119 zu (Kommentar in config.py nachgezogen). - Selbstreparatur und PC-Pfad-Skill nutzen das System-Python (hat PyYAML) statt der alten Hermes-venv; die steht jetzt samt Sicherung als Altrest im Aufräumen-Panel (Löschen per Klick, empfohlen nach dem Sonntagslauf). - deploy/nur-box/: Kopien der Units, die nur auf der Box leben (Hermes-Dashboard, llama-swap samt Drop-ins) — werden nicht ausgespielt. - Offene Fäden nachgezogen: Discard VM 106, Rückweg-Probe, AdGuard, Ausbauplan-Entscheide der Klärungsrunde. Co-Authored-By: Claude Opus 5.5 --- backend/config.py | 9 ++-- backend/services/aufraeumen.py | 5 ++ deploy/backup.sh | 5 +- deploy/nur-box/README.md | 21 ++++++++ deploy/nur-box/hermes-builtin-ui.service | 19 +++++++ .../hermes-builtin-ui.service.d-override.conf | 9 ++++ deploy/nur-box/llama-swap.service | 16 ++++++ .../nur-box/llama-swap.service.d-vulkan.conf | 2 + .../nur-box/llama-swap.service.d-warmset.conf | 8 +++ .../nur-box/llama-swap.service.d-warmup.conf | 2 + deploy/restore.sh | 5 +- deploy/self-repair.sh | 5 +- deploy/skills/pc-pfad-cache/pc_path_lookup.sh | 4 +- docs/wissen/OFFENE-FAEDEN.md | 54 ++++++++++--------- 14 files changed, 127 insertions(+), 37 deletions(-) create mode 100644 deploy/nur-box/README.md create mode 100644 deploy/nur-box/hermes-builtin-ui.service create mode 100644 deploy/nur-box/hermes-builtin-ui.service.d-override.conf create mode 100644 deploy/nur-box/llama-swap.service create mode 100644 deploy/nur-box/llama-swap.service.d-vulkan.conf create mode 100644 deploy/nur-box/llama-swap.service.d-warmset.conf create mode 100644 deploy/nur-box/llama-swap.service.d-warmup.conf diff --git a/backend/config.py b/backend/config.py index 7c83140..466417c 100644 --- a/backend/config.py +++ b/backend/config.py @@ -103,10 +103,11 @@ VOICE_SERVICE_URL = os.environ.get("MC_VOICE_SERVICE_URL", "http://127.0.0.1:865 LUCY_STIMME_URL = os.environ.get("MC_LUCY_STIMME_URL", "http://127.0.0.1:8021").rstrip("/") # Eingebaute Hermes-Web-GUI (`hermes serve`/`dashboard` — die richtige Agent-Oberfläche mit # Threads/Tool-Calls, die auch die Electron-Desktop-App umhüllt). ‼️ Sie bindet NICHT auf Loopback: -# ein systemd-Drop-in überschreibt `--host 127.0.0.1` mit `0.0.0.0` und setzt dafür ein -# Session-Token. Dass sie trotzdem nicht im LAN hängt, liegt allein an ufw (9119 ist nicht -# freigegeben — am 27.08.2026 von einem zweiten Rechner aus gegengeprüft). Wer die Firewall -# anfasst, öffnet damit auch diese Oberfläche. MC2 erreicht sie über Loopback und reicht sie +# ein systemd-Drop-in überschreibt `--host 127.0.0.1` mit `0.0.0.0`, weil Hermes seine Anmeldung auf +# Loopback abschaltet (dann wäre /hermes-ui/ ohne Login offen). Dass sie trotzdem nicht im LAN hängt, +# liegt allein an ufw (9119 ist nicht freigegeben — 27.08. und 25.09.2026 vom PC aus gegengeprüft). +# Wer die Firewall anfasst, öffnet damit auch diese Oberfläche. Das feste Session-Token der früheren +# Desktop-Anbindung ist seit 25.09.2026 weg. MC2 erreicht sie über Loopback und reicht sie # same-origin unter # /hermes-ui/ durchgereicht (routers/hermes_ui.py). Anders als das ttyd-Terminal ist es eine volle # SPA → das Bundle wird mit Vite-base=/hermes-ui/ gebaut, damit Assets/API/WS unter dem Präfix diff --git a/backend/services/aufraeumen.py b/backend/services/aufraeumen.py index b6795c7..296d360 100644 --- a/backend/services/aufraeumen.py +++ b/backend/services/aufraeumen.py @@ -227,6 +227,11 @@ ALTRESTE: tuple[Altrest, ...] = ( "selbstkritik-feed.sh", "venv-audit.sh", "worker.sh")), "Skripte früherer Cron-Jobs (Werkstatt, Ampel, alte Radare). Kein Job, kein Cron und kein aktiver " "Skill ruft sie auf; deploy.sh legt nur die heutigen Skripte dorthin."), + Altrest("hermes-alt-umgebung", "Alte Hermes-Umgebung (Python 3.11)", + ("~/.hermes/hermes-agent/venv", "~/.hermes/hermes-agent/venv.bak-20260925-vor-pm"), + "Hermes' Umgebung von vor dem eigenen Paketmanager (hermes pm, 25.09.) und ihre Sicherung. Seit 25.09. " + "starten Gateway und Dashboard aus der neuen Umgebung; Selbstreparatur und PC-Pfad-Skill nutzen das " + "System-Python. Empfohlen: erst nach einem grünen Sonntagslauf (27.09.) löschen."), Altrest("mc2-memory", "Plugin mc2-memory", ("~/.hermes/plugins/mc2-memory",), "Gedächtnis-Plugin aus der mem0-Zeit, in Hermes nicht aktiviert und nicht mehr im Repo."), Altrest("pinned-version", "Veraltete PINNED_VERSION", ("~/.hermes/PINNED_VERSION",), diff --git a/deploy/backup.sh b/deploy/backup.sh index 4ecc8fa..9bd6325 100644 --- a/deploy/backup.sh +++ b/deploy/backup.sh @@ -40,10 +40,9 @@ mkdir -p "$STAGE/hermes" "$STAGE/llama-swap" # Desktop-Verbindung und die pre_verify-Gates STILL (config.yaml referenziert die Hooks): [ -d "$HERMES/agent-hooks" ] && cp -a "$HERMES/agent-hooks" "$STAGE/hermes/agent-hooks" || true [ -f "$HERMES/shell-hooks-allowlist.json" ] && cp -a "$HERMES/shell-hooks-allowlist.json" "$STAGE/hermes/" || true -[ -f "$HERMES/desktop-gateway-token" ] && cp -a "$HERMES/desktop-gateway-token" "$STAGE/hermes/" || true [ -f "$HERMES/pc-paths.yaml" ] && cp -a "$HERMES/pc-paths.yaml" "$STAGE/hermes/" || true -_TOKDROPIN="$HOME/.config/systemd/user/hermes-builtin-ui.service.d/session-token.conf" -[ -f "$_TOKDROPIN" ] && { mkdir -p "$STAGE/hermes/systemd-dropins"; cp -a "$_TOKDROPIN" "$STAGE/hermes/systemd-dropins/"; } || true +# Das feste Dashboard-Token der früheren Desktop-Anbindung (desktop-gateway-token, session-token.conf) gibt es seit +# 25.09.2026 nicht mehr — es wird nicht mehr gesichert (liegt nur noch im Archiv ~/.hermes/archiv-20260925-dashboard). # Cron-Jobs + Radar-State (10.07.2026) — jobs.json liegt AUSSERHALB des Repos; ohne diese # Zeilen verliert ein Restore ALLE Hermes-Crons (traum/Briefing/Monats-Review/Chef-Gutachter/ # Release-Radar) still: diff --git a/deploy/nur-box/README.md b/deploy/nur-box/README.md new file mode 100644 index 0000000..42d98bf --- /dev/null +++ b/deploy/nur-box/README.md @@ -0,0 +1,21 @@ +# Units, die nur auf der Box leben — Kopien zum Nachlesen + +Stand 25.09.2026, abgezogen von der KI-Box. **`deploy.sh` spielt diese Dateien nicht aus**; die Wahrheit ist die Box. +Sie stehen hier, damit man ohne SSH sieht, wie Hermes-Dashboard und llama-swap gestartet werden, und damit ein +Wiederaufbau eine Vorlage hat. Jede Sicherung (`deploy/backup.sh`) nimmt die echten Dateien ohnehin mit. + +| Datei hier | Ort auf der Box | +|---|---| +| `hermes-builtin-ui.service` | `~/.config/systemd/user/hermes-builtin-ui.service` | +| `hermes-builtin-ui.service.d-override.conf` | `~/.config/systemd/user/hermes-builtin-ui.service.d/override.conf` | +| `llama-swap.service` | `/etc/systemd/system/llama-swap.service` | +| `llama-swap.service.d-vulkan.conf` | `/etc/systemd/system/llama-swap.service.d/vulkan.conf` | +| `llama-swap.service.d-warmset.conf` | `/etc/systemd/system/llama-swap.service.d/warmset.conf` | +| `llama-swap.service.d-warmup.conf` | `/etc/systemd/system/llama-swap.service.d/warmup.conf` (ruft `/usr/local/bin/llama-swap-warmup.sh`, Vorlage `deploy/warmup.sh`) | + +Beim Hermes-Dashboard gilt der Drop-in, nicht die Kommentare der Basis-Unit: Es bindet an `0.0.0.0:9119`, weil Hermes +seine Anmeldung auf `127.0.0.1` abschaltet; ufw hält den Port zu, erreichbar ist es nur über `/hermes-ui/` im +Orchestrator. Seit 25.09.2026 startet es über den Starter der neuen Hermes-Umgebung (`hermes pm`), und das feste +Session-Token der früheren Desktop-Anbindung ist weg. + +Die alte Unit `hermes-dashboard.service` (abgeschaltet, alte Umgebung) steht als Altrest im Aufräumen-Panel. diff --git a/deploy/nur-box/hermes-builtin-ui.service b/deploy/nur-box/hermes-builtin-ui.service new file mode 100644 index 0000000..d7ea94d --- /dev/null +++ b/deploy/nur-box/hermes-builtin-ui.service @@ -0,0 +1,19 @@ +[Unit] +Description=Hermes Built-in Web UI (hermes dashboard — Agent-Dashboard/Chat, nur ueber MC2 /hermes-ui/) +After=network-online.target +Wants=network-online.target + +[Service] +# Serviert die EINGEBAUTE Hermes-Web-GUI (die reiche Agent-Oberflaeche mit Threads/Tool-Calls) headless. +# Erreichbar nur ueber den MC2-Reverse-Proxy (routers/hermes_ui.py → same-origin /hermes-ui/ auf Port 9001). +# Der Drop-in override.conf bindet an 0.0.0.0, damit Hermes' Anmeldung greift (auf 127.0.0.1 schaltet Hermes +# sie ab); ufw haelt 9119 zu. --skip-build nutzt das von deploy.sh mit Vite-base=/hermes-ui/ vorgebaute web_dist. +# Seit 25.09.2026 ueber den Starter der neuen Hermes-Umgebung (hermes pm) statt der alten venv (3.11). +Type=simple +Environment=HERMES_HOME=%h/.hermes +ExecStart=%h/.hermes/hermes-agent/.hermes/bin/hermes dashboard --no-open --skip-build --host 127.0.0.1 --port 9119 +Restart=always +RestartSec=3 + +[Install] +WantedBy=default.target diff --git a/deploy/nur-box/hermes-builtin-ui.service.d-override.conf b/deploy/nur-box/hermes-builtin-ui.service.d-override.conf new file mode 100644 index 0000000..a2d1468 --- /dev/null +++ b/deploy/nur-box/hermes-builtin-ui.service.d-override.conf @@ -0,0 +1,9 @@ +# Stufe 1 (20.08.2026), bereinigt 21.08. und 25.09.2026: Das Dashboard bindet nach aussen, damit +# seine Anmeldung greift — auf 127.0.0.1 schaltet Hermes sie ab (hermes_cli/dashboard_auth: „no-op +# on loopback“), dann waere es ueber MC2s /hermes-ui-Proxy ohne Login offen. Port 9119 ist in ufw ZU — +# erreichbar nur ueber MC2 auf 9001. Zugangsdaten stehen NUR in config.yaml (dashboard.basic_auth). +# Seit 25.09.2026 ueber den Starter der neuen Hermes-Umgebung (hermes pm, Python 3.14) statt des alten +# venv (3.11); das feste Session-Token der frueheren Desktop-Anbindung ist weg (liegt im Archiv). +[Service] +ExecStart= +ExecStart=%h/.hermes/hermes-agent/.hermes/bin/hermes dashboard --no-open --skip-build --host 0.0.0.0 --port 9119 diff --git a/deploy/nur-box/llama-swap.service b/deploy/nur-box/llama-swap.service new file mode 100644 index 0000000..c5f8994 --- /dev/null +++ b/deploy/nur-box/llama-swap.service @@ -0,0 +1,16 @@ +[Unit] +Description=llama-swap (lokaler LLM Router) +After=network-online.target +Wants=network-online.target + +[Service] +Type=simple +User=hitonabi +Environment=HSA_OVERRIDE_GFX_VERSION=11.5.1 +Environment=PATH=/usr/local/bin:/usr/bin:/bin +ExecStart=/usr/local/bin/llama-swap --config /etc/llama-swap/config.yaml --listen 0.0.0.0:8080 --watch-config +Restart=on-failure +RestartSec=3 + +[Install] +WantedBy=multi-user.target diff --git a/deploy/nur-box/llama-swap.service.d-vulkan.conf b/deploy/nur-box/llama-swap.service.d-vulkan.conf new file mode 100644 index 0000000..f7fdda7 --- /dev/null +++ b/deploy/nur-box/llama-swap.service.d-vulkan.conf @@ -0,0 +1,2 @@ +[Service] +Environment=LD_LIBRARY_PATH=/opt/llamacpp-vulkan diff --git a/deploy/nur-box/llama-swap.service.d-warmset.conf b/deploy/nur-box/llama-swap.service.d-warmset.conf new file mode 100644 index 0000000..4225599 --- /dev/null +++ b/deploy/nur-box/llama-swap.service.d-warmset.conf @@ -0,0 +1,8 @@ +[Service] +# 25.07.2026 — KORREKTUR. Hier standen kurzzeitig "fast coder kritiker": das schob +# ~35 s Modell-Laden VOR das Vorkauen von Hermes' Agenten-Prompt (warmup.sh warmt erst +# alle Chat-Modelle, dann Embeddings, DANN den Agenten-Prompt). Der Tool-Smoke im +# hermes-postcheck hat 90 s Limit und lief dadurch in die Zeitueberschreitung. +# Der Coder waermt sich beim ersten Auftrag selbst (23 s einmalig, dann 90 min warm) — +# Lucys Hirn und der Agenten-Prompt haben Vorrang. +Environment=MC_WARMUP_MODELS=fast diff --git a/deploy/nur-box/llama-swap.service.d-warmup.conf b/deploy/nur-box/llama-swap.service.d-warmup.conf new file mode 100644 index 0000000..6fb6c80 --- /dev/null +++ b/deploy/nur-box/llama-swap.service.d-warmup.conf @@ -0,0 +1,2 @@ +[Service] +ExecStartPost=-/usr/local/bin/llama-swap-warmup.sh diff --git a/deploy/restore.sh b/deploy/restore.sh index 1e814c5..f7eeba7 100644 --- a/deploy/restore.sh +++ b/deploy/restore.sh @@ -137,9 +137,10 @@ systemctl --user stop $SERVICES 2>/dev/null || true # Hermes-Desktop-/Gate-Infrastruktur (Gegenstück zu backup.sh, 09.07.2026): [ -d "$STAGE/hermes/agent-hooks" ] && { mkdir -p "$HERMES/agent-hooks"; cp -a "$STAGE/hermes/agent-hooks/." "$HERMES/agent-hooks/"; chmod +x "$HERMES/agent-hooks/"*.sh 2>/dev/null || true; } [ -f "$STAGE/hermes/shell-hooks-allowlist.json" ] && cp -a "$STAGE/hermes/shell-hooks-allowlist.json" "$HERMES/" -[ -f "$STAGE/hermes/desktop-gateway-token" ] && { cp -a "$STAGE/hermes/desktop-gateway-token" "$HERMES/"; chmod 600 "$HERMES/desktop-gateway-token"; } [ -f "$STAGE/hermes/pc-paths.yaml" ] && cp -a "$STAGE/hermes/pc-paths.yaml" "$HERMES/" -[ -f "$STAGE/hermes/systemd-dropins/session-token.conf" ] && { mkdir -p "$HOME/.config/systemd/user/hermes-builtin-ui.service.d"; cp -a "$STAGE/hermes/systemd-dropins/session-token.conf" "$HOME/.config/systemd/user/hermes-builtin-ui.service.d/"; chmod 600 "$HOME/.config/systemd/user/hermes-builtin-ui.service.d/session-token.conf"; systemctl --user daemon-reload 2>/dev/null || true; } +# Ältere Sicherungen enthalten noch das feste Dashboard-Token der früheren Desktop-Anbindung (desktop-gateway-token, +# systemd-dropins/session-token.conf). Seit 25.09.2026 wird es bewusst NICHT zurückgespielt: Ohne festes Token würfelt +# das Dashboard pro Start ein neues. # Cron-Jobs + Radar-State (Gegenstück zu backup.sh, 10.07.2026) — der Gateway-Neustart unten # lädt die wiederhergestellten Jobs: [ -d "$STAGE/hermes/cron" ] && { mkdir -p "$HERMES/cron"; cp -a "$STAGE/hermes/cron/." "$HERMES/cron/"; } diff --git a/deploy/self-repair.sh b/deploy/self-repair.sh index 9299b5f..062f6a4 100644 --- a/deploy/self-repair.sh +++ b/deploy/self-repair.sh @@ -19,7 +19,8 @@ HERMES="${HERMES_HOME:-$HOME/.hermes}" CFG="$HERMES/config.yaml" WARN_FILE="${HERMES_CONFIG_WARNINGS:-/tmp/hermes-config-warnings.txt}" LLAMA="${LLAMA_SWAP_URL:-http://127.0.0.1:8080}" -VENV_PY="$HERMES/hermes-agent/venv/bin/python" +# System-Python (hat PyYAML) statt der alten Hermes-venv, die seit dem Umstieg auf `hermes pm` (25.09.2026) wegfällt. +YAML_PY="$(command -v python3)" export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" say(){ echo "[self-repair] $*"; } @@ -78,7 +79,7 @@ if [ -z "$CHANGED" ]; then fi # ── 3) YAML noch gültig? ────────────────────────────────────────────────────── -if [ -x "$VENV_PY" ] && ! "$VENV_PY" -c "import yaml; yaml.safe_load(open('$CFG'))" 2>/dev/null; then +if [ -x "$YAML_PY" ] && ! "$YAML_PY" -c "import yaml; yaml.safe_load(open('$CFG'))" 2>/dev/null; then say "YAML nach Fix ungültig → zurück zum Backup." cp -a "$BAK" "$CFG"; echo "SELFREPAIR_SUGGESTION=$SUGG"; exit 2 fi diff --git a/deploy/skills/pc-pfad-cache/pc_path_lookup.sh b/deploy/skills/pc-pfad-cache/pc_path_lookup.sh index 36ffadd..c662c2b 100644 --- a/deploy/skills/pc-pfad-cache/pc_path_lookup.sh +++ b/deploy/skills/pc-pfad-cache/pc_path_lookup.sh @@ -14,8 +14,8 @@ set -euo pipefail MODUS="${1:?FEHLT: lookup|merken|liste}" YAML_FILE="$HOME/.hermes/pc-paths.yaml" -PY="$HOME/.hermes/hermes-agent/venv/bin/python" -[ -x "$PY" ] || PY=python3 +# System-Python hat PyYAML; die alte Hermes-venv fällt seit dem Umstieg auf `hermes pm` (25.09.2026) weg. +PY=python3 normalize() { # Umlaute ZUERST ausschreiben (beide Fälle — tr lowercased kein Ä/Ö/Ü), dann klein, diff --git a/docs/wissen/OFFENE-FAEDEN.md b/docs/wissen/OFFENE-FAEDEN.md index be75ec2..4eeb482 100644 --- a/docs/wissen/OFFENE-FAEDEN.md +++ b/docs/wissen/OFFENE-FAEDEN.md @@ -1,6 +1,6 @@ # Offene Fäden — die eine Liste -_Stand 25.09.2026 vormittags. Neues hier rein, Erledigtes raus (die Git-Historie behält es). Entschiedenes steht in +_Stand 25.09.2026 nachmittags. Neues hier rein, Erledigtes raus (die Git-Historie behält es). Entschiedenes steht in [VERDIKTE.md](VERDIKTE.md), nicht hier. Die Liste bis 04.09.2026, samt den Lucy-Fäden, liegt im Archiv: [2026-09-04-offene-faeden-alt.md](../archiv/2026-09-04-offene-faeden-alt.md)._ @@ -24,22 +24,27 @@ zwei Minuten, Meldung auf Telegram, der Snapshot bleibt als Rückweg liegen. Dan Technik: [ARCHITEKTUR.md](../ARCHITEKTUR.md), Abschnitt „Der Homelab-Teil“; Einrichtung und Betrieb: [BETRIEB.md](../BETRIEB.md). +## Ausbauplan (Klärungsrunde 25.09.2026) + +Der User hat alle Wellen des Feature-Ausbauplans freigegeben (Plan-Dokument, Abschnitt „Feature-Ausbauplan“, jede +Zeile mit Entscheid): erst Design v5 auf alle Seiten, dann Welle 1, 2, 3 und „Später“ nacheinander. Punkt 4 (Wartezeit +für frische Versionen) entfällt; die Android-App (Phase 5) wird danach gemeinsam geplant. Festgelegt: Lucy mit mehr +Freiheit (Sicherheitsupdates und Rückweg bei Rot selbst, Meldung danach; sonst nach Ja), Wartungsfenster So +03:00–04:15 mit anfangs nur Sicherheitsupdates automatisch, ein „ja“ in Telegram löst genau die gefragte Aktion aus, +„Übernehmen“ bei neuen Geräten setzt das Etikett, Konfig-Sicherung geschwärzt in ein privates Gitea-Repo, kein +Web-Push (Telegram bleibt), Arcane-Lücken-Scan sonntags 02:00, NAS-Platten über SNMP. + ## Offene Einzelpunkte (Homelab) -0. **AdGuard (Container 100): Aufbewahrung des Abfrageprotokolls auf 14 Tage (User, 25.09. angesagt).** Am 24.09. war - die 2-GB-Platte voll (Abfrageprotokoll, eingestellt: 90 Tage). Mit User-Ja wurde die alte Datei `querylog.json.1` - vom 09.08. (539 MB) gepackt auf den Proxmox-Host gelegt (`/root/mc2-archiv/adguard-querylog-bis-2026-08-09.json.zst`, - 44 MB) und aus dem Container genommen. Seit dem Abend schreibt AdGuard wieder (25.09.: 485 MB seit 09.08., gut - 10 MB am Tag, Platte 72 %). Weg in AdGuard: Einstellungen → Allgemeine Einstellungen → Konfiguration der - Protokolle → Rotation der Abfrageprotokolle → Benutzerdefiniert, 336 Stunden → Speichern. AdGuard behält die - laufende und die vorige Datei; die jetzige (ab 09.08.) wird beim ersten Rotieren zur vorigen und fällt 14 Tage - später weg. Danach bleiben rund 300 MB. Volle Gastplatten meldet seit 24.09. der Wächter. +- **Zugang von außen:** Der Eintrag `mc.tobisniceshomelab.ddnsfree.com` in NPMplus (Proxy-Host 14 → Box :9001) hatte + keine Zugangsliste. Der User hängt die vorhandene Liste (die an nginx., pvescriptslocal. und rippy.) auch an mc. + (User, 25.09. zugesagt). Prüfen: `pct exec 101 -- grep -c auth_basic_user_file /opt/npmplus/nginx/proxy_host/14.conf`. +- **NAS-Platten (SNMP):** Der User schaltet am QNAP SNMP v1/v2 ein; den Zugangsnamen trägt er in den Einstellungen ein. -1. **Arcane-VM (106): Discard einschalten (User).** Ihre Platte belegt im Speicherpool 161 GB, genutzt sind darin - 35 GB (25.09.): Discard ist aus, freigegebener Platz kommt nie im Pool an. In Proxmox: VM 106 → Hardware → - Festplatte → „Discard“ anhaken, VM einmal neu starten (Docker-Dienste kurz weg); danach gibt Ubuntu freien Platz - wöchentlich zurück. Steht als Empfehlung in der Karte „Speicher und Sicherungen“; nötig erst, wenn der Pool knapp - wird (heute 49 %). +Erledigt am 25.09. nachmittags: AdGuard-Abfrageprotokoll auf 7 Tage (User); Discard für die Arcane-VM 106 an +(`discard=on,ssd=1`, einmal `fstrim`: 122 GB zurück, Speicherpool 50 % → 17 %, Ubuntu trimmt ab jetzt wöchentlich); +**Rückweg-Probe** gebaut und mit PVE Scripts echt bewiesen (Snapshot → absichtlich rot → zurück → läuft und antwortet, +gut 3 Minuten). Erledigt am 25.09.: Arcane-API-Schlüssel (vom User eingetragen, Docker-Updates echt), feste IP 192.168.178.31 für Container 107 (Fritzbox, User), Etikett `watcher` für die Arcane-VM 106 (User-Ja; der Ausführer legt vor echten @@ -49,11 +54,12 @@ Docker-Updates einen Snapshot an und geht bei Rot zurück). OS-Updates der VM ü ## Offene Einzelpunkte (Box-Wart) -1. **Session-Token des Hermes-Dashboards (nur mit User-Ja).** Das Drop-in - `hermes-builtin-ui.service.d/session-token.conf` aus der früheren Desktop-Anbindung ist weiter gesetzt; `backup.sh` - und `restore.sh` sichern es samt Kopie `desktop-gateway-token`. Entfernen ist Security-Config. -2. **Units nur auf der Box:** `hermes-builtin-ui.service` samt Drop-ins und die llama-swap-Drop-ins (darunter - `warmset.conf`) liegen nicht im Repo; seit 24.09. stehen sie als Kopie in jeder Sicherung. +Erledigt am 25.09.: Das feste Session-Token des Hermes-Dashboards (Drop-in `session-token.conf` und +`desktop-gateway-token` der früheren Desktop-Anbindung) liegt im Archiv `~/.hermes/archiv-20260925-dashboard`, wird +weder gesichert noch zurückgespielt. Das Dashboard startet über den Starter der neuen Hermes-Umgebung und bindet +weiter an 0.0.0.0 — auf 127.0.0.1 schaltet Hermes seine Anmeldung ab; ufw hält 9119 zu (vom PC gegengeprüft). Die +Units, die nur auf der Box leben, stehen als Kopie in `deploy/nur-box/`. Die tote Cron-Zeile für +`curator-idle-watchdog.sh` ist raus (alte crontab im selben Archiv). ## Aufräumen auf der Box (nur per User-Klick) @@ -69,13 +75,13 @@ Docker-Updates einen Snapshot an und geht bei Rot zurück). OS-Updates der VM ü sie), die Archive `profiles-archive-20260819.tar.gz`, `~/archiv-aufraeumen-20260820`, `~/wissens-vault`, `~/.hermes/state-snapshots`, der PBS-Weg, `ampel-waechter.sh`, `night-cron-wrapper.sh` und `pc_path_lookup.*` (aktive Skills nennen sie). -- Die crontab ruft sonntags `~/.hermes/scripts/curator-idle-watchdog.sh` auf; das Skript gibt es nicht mehr. +- Neu im Panel „Altreste“ (25.09.): die alte Hermes-Umgebung (Python 3.11) samt Sicherung, zusammen ~11 GB — + empfohlen erst nach einem grünen Sonntagslauf (27.09.) löschen. Modelle ohne Rolle (gpt-oss-120b, Qwen3-VL-30B) + hat der User zum Löschen freigegeben; er klickt es selbst (endgültiges Löschen macht Claude nicht). ## Beobachten -- **25.09. 00:30:** Radar-Neutest Ornith-1.5-35B-A3B (Hirn), jetzt mit Draft-Varianten. **01.10.:** Qwen3.8-Flash-Next - (Coder, passt nur knapp). +- **01.10.:** Radar-Test Qwen3.8-Flash-Next (Coder, passt nur knapp). Ornith-1.5-35B-A3B (Hirn) fiel am 25.09. durch. - **So 27.09. 04:30:** erster regulärer Sonntagslauf über den Timer; der Bericht kommt mit der Morgenmeldung um 07:00, der Verlauf steht auf der Updates-Seite. Wird das Zeitfenster vorher in den Einstellungen verschoben, gilt das neue. -- **Daily News 07:00:** Die `web_extract`-Werkzeugfehler sollten mit dem Plugin `mc2-web-lesen` verschwunden sein - (Hermes am 24.09. neu gestartet). +- **Daily News 07:00:** Am 25.09. lief sie ohne `web_extract`-Fehler (Plugin `mc2-web-lesen`); weiter beobachten. From e443c52d8e7736735fb07c0f3d50b437d1f81dbc Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Fri, 25 Sep 2026 15:14:28 +0200 Subject: [PATCH 4/4] skill pc-pfad-cache: eigenes Skript im Skill-Ordner aufrufen (die Kopie in ~/.hermes/scripts pflegte kein Deploy) Co-Authored-By: Claude Opus 5.5 --- deploy/skills/pc-pfad-cache/SKILL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/skills/pc-pfad-cache/SKILL.md b/deploy/skills/pc-pfad-cache/SKILL.md index 3fe1f7e..ba555f4 100644 --- a/deploy/skills/pc-pfad-cache/SKILL.md +++ b/deploy/skills/pc-pfad-cache/SKILL.md @@ -21,14 +21,14 @@ dem PC suchen — und den Fund sofort merken, damit die nächste Frage in <1 s b - Tobi will einen Pfad im Cache ergänzen/korrigieren („merk dir: X liegt unter Y"). ## Schritte -1. **Cache zuerst:** `~/.hermes/scripts/pc_path_lookup.sh lookup ""` — +1. **Cache zuerst:** `~/.hermes/skills/pc-pfad-cache/pc_path_lookup.sh lookup ""` — Treffer (exit 0) → Pfad direkt liefern, FERTIG. (Das Skript normalisiert selbst: klein, Umlaute ausgeschrieben, Leerzeichen→Bindestrich.) 2. **Nur bei Cache-Miss (exit 3):** selbst auf dem PC suchen — mit deinem **`pc_shell`-Tool** (NICHT als Shell-Befehl — `pc_shell` existiert nur als Tool), z. B. `where ` oder eine gezielte PowerShell-Suche in den üblichen Orten (`%ProgramFiles%`, `%LOCALAPPDATA%\Programs`, Desktop, F:\). -3. **Fund merken:** `~/.hermes/scripts/pc_path_lookup.sh merken "" ""` — +3. **Fund merken:** `~/.hermes/skills/pc-pfad-cache/pc_path_lookup.sh merken "" ""` — dann den Pfad liefern. 4. **Pflege:** `pc_path_lookup.sh liste` zeigt alle Einträge; „merken" überschreibt.