commit 147ec1f0391d05e6eb1a0fdd62d7cda97f734a57
Author: Jens Kristoffersson <jens.kristoffersson.se@gmail.com>
AuthorDate: Fri Sep 4 14:12:27 2026 +0200
Commit: Jens Kristoffersson <jens.kristoffersson.se@gmail.com>
CommitDate: Fri Sep 4 14:12:27 2026 +0200
UI: paletten med drag-and-drop, block-bibliotek, ⚙-meny, fönster-inspektör
Header:
- bantad till [flödesväljare] [Spara] [Kör] [⚙]
- ⚙-dropdownmeny (Menu.tsx): Nytt/Ta bort flöde, Export, close-mode,
körningsinställningar, språk, Inspektera fönster, Wiki
Palett (Palette.tsx, vänsterkolumn):
- fliken Steg: stegtyper grupperade per kategori, sökbara, dras till canvasen
eller ovanpå en loop/if-nods kropp (stepops.appendToContainer + data-container-id)
- fliken Block: dra/infoga; "Spara markering som block"
- typ-dropdownen i noden behålls (kompakt) för att byta typ pa plats
Fönster-inspektör (InspectDialog.tsx):
- rpa/desktop_inspect.py refaktorerad: list_windows() + inspect_window()
- /api/desktop/windows|inspect ; per rad "Nytt desktop_click"/"desktop_type"
som fyller i by/value/control_type
Block-bibliotek:
- rpa/blocks.py (spegel av flows.py); data/blocks/ (anvandarens) + blocks/
(medfoljande, 2 exempel); /api/blocks* ; MCP list_blocks/get_block
Tester: +9 pytest, +7 vitest (stepops.appendToContainer/newStep)
---
README.md | 15 ++-
TODO.md | 6 +
blocks/login-bankid.json | 9 ++
blocks/loop-lista-till-csv.json | 20 +++
rpa/blocks.py | 102 +++++++++++++++
rpa/config.py | 4 +-
rpa/desktop_inspect.py | 109 ++++++++++++----
rpa/mcp_server.py | 19 ++-
tests/test_blocks.py | 73 +++++++++++
tests/test_desktop.py | 13 ++
webui/app.py | 73 ++++++++++-
webui/frontend/src/App.tsx | 59 ++++++++-
webui/frontend/src/components/Canvas.tsx | 84 +++++++++++--
webui/frontend/src/components/Header.tsx | 47 +++----
webui/frontend/src/components/InspectDialog.tsx | 119 ++++++++++++++++++
webui/frontend/src/components/Menu.tsx | 99 +++++++++++++++
webui/frontend/src/components/Palette.tsx | 137 +++++++++++++++++++++
webui/frontend/src/components/StepBody.tsx | 6 +-
webui/frontend/src/lib/api.ts | 39 ++++++
webui/frontend/src/lib/i18n.ts | 56 +++++++++
webui/frontend/src/lib/stepops.test.ts | 69 +++++++++++
webui/frontend/src/lib/stepops.ts | 64 ++++++++++
webui/frontend/src/styles.css | 63 +++++++++-
.../{index-CNuIJsnv.css => index-CQM7tpR0.css} | 2 +-
webui/static/assets/index-DlBNeXUj.js | 65 ++++++++++
webui/static/assets/index-kqrfGhqD.js | 65 ----------
webui/static/index.html | 4 +-
27 files changed, 1276 insertions(+), 145 deletions(-)
diff --git a/README.md b/README.md
index 5dc4918..a63796b 100644
--- a/README.md
+++ b/README.md
@@ -67,6 +67,17 @@ ordningen, `loop`/`if` expanderas inuti sin nod. Dra en nod för att flytta den
(positionen sparas med flödet), eller använd ↑/↓ på noden. "Autoplacera"
återställer layouten.
+- **Vänsterpalett** – dra en stegtyp till canvasen för att lägga till den; dra
+ den ovanpå en loop/if-nods kropp för att lägga den där. Typ-dropdownen i noden
+ finns kvar för att byta typ på plats. Fliken **Block** = återanvändbara
+ flödesdelar (se nedan).
+- **⚙-menyn** (uppe till höger) – Nytt/Ta bort flöde, Exportera, close-mode,
+ körningsinställningar (headless/skip_browser/viewport…), språk, **Inspektera
+ fönster**, Wiki.
+- **Block** – markera noder på canvasen → "💾 Spara markering som block" → de
+ dyker upp i palettens Block-flik och kan dras in i andra flöden. Sparas i
+ `data/blocks/`. Medföljande exempel ligger i repo-mappen `blocks/`.
+
## Desktop-automation (Windows)
Utöver webbläsaren kan flöden styra **Windows-appar** – både vanliga appar via
@@ -103,7 +114,9 @@ webbläsare** – det upptäcks automatiskt. Vill du tvinga bort den (t.ex. unde
utveckling) finns "Starta ingen webbläsare" i ⚙ Inställningar (`skip_browser`);
ett webbläsarsteg med den påslagen ger då ett tydligt fel.
-Hitta rätt selectors med inspektionsverktyget:
+Hitta rätt selectors: **⚙ → Inspektera fönster** i webui:t (välj ett körande
+fönster → lista dess kontroller → "Nytt `desktop_click`" fyller i `by`/`value`
+åt dig). Eller från terminalen:
```powershell
python -m rpa.desktop_inspect # listar synliga toppfönster
diff --git a/TODO.md b/TODO.md
index c56e62a..1530340 100644
--- a/TODO.md
+++ b/TODO.md
@@ -29,6 +29,12 @@
- **~~Bild-verktyg för desktop~~ – klart.** `rpa/desktop_capture.py` (tkinter-
overlay + PIL ImageGrab) + 📷 Fånga-knapp i `desktop_*_image`-stegen
(endpoints `/api/desktop-images*`, `ImageField`-komponenten).
+- **~~UI: ⚙-meny, fönster-inspektör, palett med drag-and-drop, block-bibliotek~~
+ – klart.** Headern bantad; `Menu`/`Palette`/`InspectDialog`-komponenter;
+ `rpa/blocks.py` (+ `blocks/`-exempel, `/api/blocks*`, MCP `list_blocks`/
+ `get_block`); `rpa/desktop_inspect.py` refaktorerad till `list_windows()`/
+ `inspect_window()` (+ `/api/desktop/windows|inspect`); dra steg till canvasen
+ eller in i loop/if-kropp (`stepops.appendToContainer`).
- **Äkta grafmotor / fri kabeldragning i UI:t** – sömmen finns i
`webui/frontend/src/lib/graph.ts` (se kommentaren där).
- **Fler desktop-steg vid behov** – t.ex. `desktop_drag`, `desktop_menu_select`,
diff --git a/blocks/login-bankid.json b/blocks/login-bankid.json
new file mode 100644
index 0000000..b101c23
--- /dev/null
+++ b/blocks/login-bankid.json
@@ -0,0 +1,9 @@
+{
+ "name": "login-bankid",
+ "description": "Gå till en sida och vänta ut manuell BankID-inloggning.",
+ "steps": [
+ { "type": "goto", "url": "https://www.1177.se/" },
+ { "type": "wait_for_login", "timeout": 180, "indicators": "Logga ut, Mina vårdkontakter" }
+ ],
+ "settings": {}
+}
diff --git a/blocks/loop-lista-till-csv.json b/blocks/loop-lista-till-csv.json
new file mode 100644
index 0000000..2ff47bf
--- /dev/null
+++ b/blocks/loop-lista-till-csv.json
@@ -0,0 +1,20 @@
+{
+ "name": "loop-lista-till-csv",
+ "description": "Lista poster med en CSS-selector, loopa dem och spara textinnehållet som CSV.",
+ "steps": [
+ { "type": "list", "value": "li, tr, .item", "var": "poster" },
+ {
+ "type": "loop",
+ "over": "poster",
+ "item_var": "item",
+ "index_var": "index",
+ "steps": [
+ { "type": "extract_row", "var": "rader", "scope": "item", "fields": [
+ { "name": "text", "by": "css", "value": ":scope" }
+ ] }
+ ]
+ },
+ { "type": "save_var", "var": "rader", "filename": "poster.csv", "format": "csv", "mode": "overwrite" }
+ ],
+ "settings": {}
+}
diff --git a/rpa/blocks.py b/rpa/blocks.py
new file mode 100644
index 0000000..323bc30
--- /dev/null
+++ b/rpa/blocks.py
@@ -0,0 +1,102 @@
+"""Block-bibliotek: återanvändbara flödesdelar (`{name, description, steps,
+settings?}`). Medföljande block ligger i repo-mappen `blocks/` (läs-bara),
+användarens egna i `data/blocks/`. Spegel av rpa/flows.py.
+"""
+
+from __future__ import annotations
+
+import json
+import re
+from pathlib import Path
+
+from . import config
+from .schema import validate_flow
+
+NAME_RE = re.compile(r"^[a-zA-Z0-9_\-åäöÅÄÖ ]{1,80}$")
+
+
+class InvalidBlockName(ValueError):
+ pass
+
+
+class BlockNotFound(FileNotFoundError):
+ pass
+
+
+class InvalidBlock(ValueError):
+ def __init__(self, errors: list[str]):
+ self.errors = errors
+ super().__init__("Ogiltigt block:\n- " + "\n- ".join(errors))
+
+
+def _check_name(name: str) -> str:
+ if not NAME_RE.match(name or ""):
+ raise InvalidBlockName(f"Ogiltigt blocknamn: {name!r}")
+ return name
+
+
+def _read(path: Path, builtin: bool) -> dict:
+ data = json.loads(path.read_text(encoding="utf-8"))
+ return {
+ "name": data.get("name") or path.stem,
+ "description": data.get("description", ""),
+ "steps": data.get("steps", []),
+ "settings": data.get("settings", {}),
+ "builtin": builtin,
+ }
+
+
+def list_blocks() -> list[dict]:
+ """Metadata för alla block (medföljande + användarens; användarens vinner vid
+ namnkrock)."""
+ out: dict[str, dict] = {}
+ for d, builtin in ((config.BUILTIN_BLOCKS_DIR, True), (config.BLOCKS_DIR, False)):
+ if not d.exists():
+ continue
+ for p in sorted(d.glob("*.json")):
+ try:
+ b = _read(p, builtin)
+ except (json.JSONDecodeError, OSError):
+ continue
+ out[b["name"]] = {
+ "name": b["name"],
+ "description": b["description"],
+ "step_count": len(b["steps"]),
+ "builtin": builtin,
+ }
+ return sorted(out.values(), key=lambda b: b["name"].lower())
+
+
+def load_block(name: str) -> dict:
+ _check_name(name)
+ for d, builtin in ((config.BLOCKS_DIR, False), (config.BUILTIN_BLOCKS_DIR, True)):
+ p = d / f"{name}.json"
+ if p.exists():
+ return _read(p, builtin)
+ raise BlockNotFound(f"Blocket finns inte: {name}")
+
+
+def save_block(name: str, block: dict) -> None:
+ _check_name(name)
+ normalized = {
+ "name": name,
+ "description": str(block.get("description", "")),
+ "steps": block.get("steps", []),
+ "settings": block.get("settings", {}),
+ }
+ errors = validate_flow({"steps": normalized["steps"], "settings": normalized["settings"]}, strict=False)
+ if errors:
+ raise InvalidBlock(errors)
+ config.BLOCKS_DIR.mkdir(parents=True, exist_ok=True)
+ (config.BLOCKS_DIR / f"{name}.json").write_text(
+ json.dumps(normalized, ensure_ascii=False, indent=2), encoding="utf-8"
+ )
+
+
+def delete_block(name: str) -> bool:
+ _check_name(name)
+ p = config.BLOCKS_DIR / f"{name}.json"
+ if p.exists():
+ p.unlink()
+ return True
+ return False
diff --git a/rpa/config.py b/rpa/config.py
index 1289b4d..8fe9165 100644
--- a/rpa/config.py
+++ b/rpa/config.py
@@ -10,6 +10,8 @@ SCREENSHOT_DIR = DATA_DIR / "screenshots"
TRACE_DIR = DATA_DIR / "traces"
EXPORT_DIR = DATA_DIR / "exports"
DESKTOP_IMAGE_DIR = DATA_DIR / "desktop_images"
+BLOCKS_DIR = DATA_DIR / "blocks"
+BUILTIN_BLOCKS_DIR = ROOT_DIR / "blocks"
STATE_FILE = DATA_DIR / "state.json"
START_URL = "https://www.changeme.com/"
@@ -23,5 +25,5 @@ LOGGED_IN_INDICATORS = [
"Min profil",
]
-for d in (DATA_DIR, BROWSER_PROFILE_DIR, DOWNLOAD_DIR, DISCOVER_DIR, FLOWS_DIR, SCREENSHOT_DIR, TRACE_DIR, EXPORT_DIR, DESKTOP_IMAGE_DIR):
+for d in (DATA_DIR, BROWSER_PROFILE_DIR, DOWNLOAD_DIR, DISCOVER_DIR, FLOWS_DIR, SCREENSHOT_DIR, TRACE_DIR, EXPORT_DIR, DESKTOP_IMAGE_DIR, BLOCKS_DIR):
d.mkdir(parents=True, exist_ok=True)
diff --git a/rpa/desktop_inspect.py b/rpa/desktop_inspect.py
index 318c325..85100c9 100644
--- a/rpa/desktop_inspect.py
+++ b/rpa/desktop_inspect.py
@@ -5,36 +5,101 @@
python -m rpa.desktop_inspect "Anteckningar" # dumpar kontroll-identifierare
Kör på Windows-maskinen med målappen igång. Använd 'name'/'auto_id'/
-'control_type' från utskriften i webui:ts desktop-steg.
+'control_type' från utskriften i webui:ts desktop-steg (webui:t har samma
+funktion under ⚙ → Inspektera fönster).
"""
+from __future__ import annotations
+
import sys
-def main() -> None:
+class InspectUnavailable(RuntimeError):
+ """pywinauto kunde inte laddas (icke-Windows?)."""
+
+
+def _desktop():
try:
from pywinauto import Desktop
except Exception as exc: # noqa: BLE001
- sys.exit(f"pywinauto kunde inte laddas (Windows-only): {exc}")
-
- desktop = Desktop(backend="uia")
-
- if len(sys.argv) < 2:
- print("Synliga toppfönster:\n")
- for w in desktop.windows():
- try:
- if w.is_visible() and w.window_text():
- print(f" {w.window_text()!r} [{w.class_name()}]")
- except Exception: # noqa: BLE001
- continue
- print('\nKör igen med en titel (regex) för att dumpa kontroller, t.ex.:\n python -m rpa.desktop_inspect "Anteckningar"')
- return
-
- title = sys.argv[1]
- win = desktop.window(title_re=title)
- win.wait("exists ready", timeout=10)
- print(f"Kontroll-identifierare för fönster som matchar {title!r}:\n")
- win.print_control_identifiers()
+ raise InspectUnavailable(
+ f"pywinauto kunde inte laddas (Windows-only): {exc}"
+ ) from exc
+ return Desktop(backend="uia")
+
+
+def list_windows() -> list[str]:
+ """Titlarna på alla synliga toppfönster."""
+ out: list[str] = []
+ for w in _desktop().windows():
+ try:
+ if w.is_visible() and w.window_text():
+ out.append(w.window_text())
+ except Exception: # noqa: BLE001
+ continue
+ # unika, i ordning
+ seen: set[str] = set()
+ return [t for t in out if not (t in seen or seen.add(t))]
+
+
+def inspect_window(title: str, max_depth: int = 6, limit: int = 800) -> list[dict]:
+ """Plattad lista över kontrollerna i första fönstret vars titel matchar
+ `title` (regex). Varje rad: {depth, control_type, name, auto_id, class_name}."""
+ desktop = _desktop()
+ matches = desktop.windows(title_re=title, visible_only=True)
+ if not matches:
+ raise ValueError(f"Hittade inget synligt fönster med titel som matchar {title!r}")
+ win = desktop.window(handle=matches[0].handle)
+ win.wait("exists", timeout=10)
+
+ rows: list[dict] = []
+
+ def walk(ctrl, depth: int) -> None:
+ if len(rows) >= limit or depth > max_depth:
+ return
+ try:
+ info = ctrl.element_info
+ rows.append({
+ "depth": depth,
+ "control_type": getattr(info, "control_type", "") or "",
+ "name": (ctrl.window_text() or "").strip(),
+ "auto_id": getattr(info, "automation_id", "") or "",
+ "class_name": getattr(info, "class_name", "") or "",
+ })
+ except Exception: # noqa: BLE001
+ return
+ try:
+ for child in ctrl.children():
+ walk(child, depth + 1)
+ except Exception: # noqa: BLE001
+ pass
+
+ walk(win, 0)
+ return rows
+
+
+def main() -> None:
+ try:
+ if len(sys.argv) < 2:
+ wins = list_windows()
+ print("Synliga toppfönster:\n")
+ for t in wins:
+ print(f" {t!r}")
+ print('\nKör igen med en titel (regex), t.ex.:\n python -m rpa.desktop_inspect "Anteckningar"')
+ return
+
+ for row in inspect_window(sys.argv[1]):
+ indent = " " * row["depth"]
+ bits = [f'{indent}{row["control_type"] or "?"}']
+ if row["name"]:
+ bits.append(f'name={row["name"]!r}')
+ if row["auto_id"]:
+ bits.append(f'auto_id={row["auto_id"]!r}')
+ if row["class_name"]:
+ bits.append(f'class={row["class_name"]!r}')
+ print(" ".join(bits))
+ except (InspectUnavailable, ValueError) as exc:
+ sys.exit(str(exc))
if __name__ == "__main__":
diff --git a/rpa/mcp_server.py b/rpa/mcp_server.py
index fd628ce..37f0085 100644
--- a/rpa/mcp_server.py
+++ b/rpa/mcp_server.py
@@ -23,7 +23,7 @@ import sys
from mcp.server import MCPServer
-from . import flows, runs, schema
+from . import blocks, flows, runs, schema
from .flows import FlowNotFound, InvalidFlow, InvalidFlowName
logging.basicConfig(level=logging.INFO, stream=sys.stderr)
@@ -125,6 +125,23 @@ def validate_flow(steps: list, settings: dict | None = None) -> dict:
return {"valid": not errors, "errors": errors}
+@mcp.tool()
+def list_blocks() -> list[dict]:
+ """Återanvändbara flödesdelar (namn, beskrivning, antal steg)."""
+ return blocks.list_blocks()
+
+
+@mcp.tool()
+def get_block(name: str) -> dict:
+ """Hämtar ett blocks steg - klistra in dem i ett flöde med save_flow."""
+ try:
+ return blocks.load_block(name)
+ except blocks.BlockNotFound:
+ return {"error": f"Blocket '{name}' finns inte. Tillgängliga: {[b['name'] for b in blocks.list_blocks()]}"}
+ except blocks.InvalidBlockName as exc:
+ return {"error": str(exc)}
+
+
# --------------------------------------------------------------------------
# Körning
# --------------------------------------------------------------------------
diff --git a/tests/test_blocks.py b/tests/test_blocks.py
new file mode 100644
index 0000000..43ba088
--- /dev/null
+++ b/tests/test_blocks.py
@@ -0,0 +1,73 @@
+import pytest
+
+from rpa import blocks, config
+
+
+@pytest.fixture(autouse=True)
+def tmp_dirs(tmp_path, monkeypatch):
+ user = tmp_path / "user"
+ builtin = tmp_path / "builtin"
+ user.mkdir()
+ builtin.mkdir()
+ monkeypatch.setattr(config, "BLOCKS_DIR", user)
+ monkeypatch.setattr(config, "BUILTIN_BLOCKS_DIR", builtin)
+ return user, builtin
+
+
+def test_crud_round_trip():
+ assert blocks.list_blocks() == []
+ blocks.save_block("mitt block", {
+ "description": "test",
+ "steps": [{"type": "goto", "url": "https://x.se"}],
+ })
+ meta = blocks.list_blocks()
+ assert meta == [{"name": "mitt block", "description": "test", "step_count": 1, "builtin": False}]
+
+ b = blocks.load_block("mitt block")
+ assert b["steps"][0]["url"] == "https://x.se"
+ assert b["builtin"] is False
+
+ assert blocks.delete_block("mitt block") is True
+ assert blocks.list_blocks() == []
+
+
+def test_builtin_and_user_union(tmp_dirs):
+ _user, builtin = tmp_dirs
+ import json
+
+ (builtin / "shipped.json").write_text(
+ json.dumps({"name": "shipped", "description": "b", "steps": [{"type": "wait", "seconds": 1}]}),
+ encoding="utf-8",
+ )
+ blocks.save_block("egen", {"steps": [{"type": "wait", "seconds": 2}]})
+ names = {b["name"]: b["builtin"] for b in blocks.list_blocks()}
+ assert names == {"shipped": True, "egen": False}
+
+
+def test_user_block_shadows_builtin(tmp_dirs):
+ _user, builtin = tmp_dirs
+ import json
+
+ (builtin / "x.json").write_text(json.dumps({"name": "x", "steps": [{"type": "wait", "seconds": 1}]}), encoding="utf-8")
+ blocks.save_block("x", {"steps": [{"type": "wait", "seconds": 9}]})
+ assert blocks.load_block("x")["steps"][0]["seconds"] == 9
+ assert blocks.load_block("x")["builtin"] is False
+
+
+def test_invalid_block_rejected():
+ with pytest.raises(blocks.InvalidBlock):
+ blocks.save_block("bad", {"steps": [{"type": "nonesuch"}]})
+ with pytest.raises(blocks.InvalidBlockName):
+ blocks.load_block("../secret")
+
+
+def test_shipped_example_blocks_are_valid():
+ """De medföljande blocken i repo-mappen blocks/ ska validera."""
+ from rpa import config as real_config
+ from rpa.schema import validate_flow
+
+ for p in (real_config.ROOT_DIR / "blocks").glob("*.json"):
+ import json
+
+ data = json.loads(p.read_text(encoding="utf-8"))
+ assert validate_flow({"steps": data["steps"], "settings": data.get("settings", {})}, strict=False) == [], p.name
diff --git a/tests/test_desktop.py b/tests/test_desktop.py
index fa09316..ce408d7 100644
--- a/tests/test_desktop.py
+++ b/tests/test_desktop.py
@@ -54,3 +54,16 @@ def test_all_engine_desktop_steps_are_in_schema():
import rpa.flow_engine as fe
assert fe._DESKTOP_STEPS == {s["type"] for s in schema.STEP_TYPES if s["type"].startswith("desktop_")}
+
+
+def test_inspect_raises_cleanly_without_pywinauto(monkeypatch):
+ from rpa import desktop_inspect
+
+ def unavailable():
+ raise desktop_inspect.InspectUnavailable("pywinauto saknas")
+
+ monkeypatch.setattr(desktop_inspect, "_desktop", unavailable)
+ with pytest.raises(desktop_inspect.InspectUnavailable):
+ desktop_inspect.list_windows()
+ with pytest.raises(desktop_inspect.InspectUnavailable):
+ desktop_inspect.inspect_window("x")
diff --git a/webui/app.py b/webui/app.py
index 5951565..6accb38 100644
--- a/webui/app.py
+++ b/webui/app.py
@@ -9,7 +9,8 @@ from fastapi.responses import FileResponse, HTMLResponse, PlainTextResponse
from fastapi.staticfiles import StaticFiles
from pydantic import BaseModel
-from rpa import assist, config, flows, schema
+from rpa import assist, blocks, config, flows, schema
+from rpa.blocks import BlockNotFound, InvalidBlock, InvalidBlockName
from rpa.export import generate_standalone_script
from rpa.flows import FlowNotFound, InvalidFlow, InvalidFlowName
from rpa.runs import close_browser, get_run, get_trace_path, start_run
@@ -100,6 +101,32 @@ def delete_desktop_image(name: str) -> dict:
return {"ok": True}
+class InspectRequest(BaseModel):
+ title: str
+
+
+@app.get("/api/desktop/windows")
+def desktop_windows() -> list[str]:
+ from rpa import desktop_inspect
+
+ try:
+ return desktop_inspect.list_windows()
+ except desktop_inspect.InspectUnavailable as exc:
+ raise HTTPException(501, str(exc)) from exc
+
+
+@app.post("/api/desktop/inspect")
+def desktop_inspect_window(req: InspectRequest) -> list[dict]:
+ from rpa import desktop_inspect
+
+ try:
+ return desktop_inspect.inspect_window(req.title)
+ except desktop_inspect.InspectUnavailable as exc:
+ raise HTTPException(501, str(exc)) from exc
+ except ValueError as exc:
+ raise HTTPException(404, str(exc)) from exc
+
+
@app.post("/api/desktop-images/capture")
def capture_desktop_image(req: CaptureRequest) -> dict:
"""Kör rpa/desktop_capture i en egen process (öppnar ett overlay-fönster på
@@ -124,6 +151,50 @@ def capture_desktop_image(req: CaptureRequest) -> dict:
return result
+# --- Block-bibliotek (återanvändbara flödesdelar) ---
+
+class BlockBody(BaseModel):
+ name: str = ""
+ description: str = ""
+ steps: list = []
+ settings: dict = {}
+
+
+@app.get("/api/blocks")
+def list_blocks() -> list[dict]:
+ return blocks.list_blocks()
+
+
+@app.get("/api/blocks/{name}")
+def get_block(name: str) -> dict:
+ try:
+ return blocks.load_block(name)
+ except BlockNotFound as exc:
+ raise HTTPException(404, "Blocket finns inte") from exc
+ except InvalidBlockName as exc:
+ raise HTTPException(400, str(exc)) from exc
+
+
+@app.put("/api/blocks/{name}")
+def save_block(name: str, body: BlockBody) -> dict:
+ try:
+ blocks.save_block(name, body.model_dump())
+ except InvalidBlockName as exc:
+ raise HTTPException(400, str(exc)) from exc
+ except InvalidBlock as exc:
+ raise HTTPException(422, {"errors": exc.errors}) from exc
+ return {"ok": True}
+
+
+@app.delete("/api/blocks/{name}")
+def delete_block(name: str) -> dict:
+ try:
+ blocks.delete_block(name)
+ except InvalidBlockName as exc:
+ raise HTTPException(400, str(exc)) from exc
+ return {"ok": True}
+
+
@app.get("/api/flows")
def list_flows() -> list[str]:
return flows.list_flows()
diff --git a/webui/frontend/src/App.tsx b/webui/frontend/src/App.tsx
index b64aa4d..5e94cc1 100644
--- a/webui/frontend/src/App.tsx
+++ b/webui/frontend/src/App.tsx
@@ -6,10 +6,12 @@ import { ensureIds, flowToGraph } from "./lib/graph";
import { newStep } from "./lib/stepops";
import { Header } from "./components/Header";
import { Canvas } from "./components/Canvas";
+import { Palette } from "./components/Palette";
import { RunPanel } from "./components/RunPanel";
import { VarsPanel } from "./components/VarsPanel";
import { AssistPanel } from "./components/AssistPanel";
import { SettingsDialog } from "./components/SettingsDialog";
+import { InspectDialog } from "./components/InspectDialog";
const EMPTY: Flow = { steps: [], settings: {}, layout: {} };
@@ -23,6 +25,9 @@ export default function App() {
const [dirty, setDirty] = useState(false);
const [reloadToken, setReloadToken] = useState(0);
const [settingsOpen, setSettingsOpen] = useState(false);
+ const [inspectOpen, setInspectOpen] = useState(false);
+ const [selectedIds, setSelectedIds] = useState<string[]>([]);
+ const [blocksRefreshKey, setBlocksRefreshKey] = useState(0);
const [toast, setToast] = useState<string | null>(null);
const [runId, setRunId] = useState<string | null>(null);
@@ -80,6 +85,31 @@ export default function App() {
[],
);
+ const addStep = useCallback((step: Step) => {
+ setFlow((prev) => ({ ...prev, steps: [...prev.steps, ensureIds({ ...step })] }));
+ setDirty(true);
+ setReloadToken((n) => n + 1);
+ }, []);
+
+ async function saveSelectionAsBlock() {
+ const chosen = flow.steps.filter((s) => selectedIds.includes(s.id!));
+ if (chosen.length === 0) {
+ setToast(t("block_select_first"));
+ return;
+ }
+ const name = prompt(t("block_name_prompt"));
+ if (!name) return;
+ const description = prompt(t("block_desc_prompt")) || "";
+ try {
+ await api.saveBlock(name, { name, description, steps: chosen, settings: {} });
+ setBlocksRefreshKey((n) => n + 1);
+ setToast(t("block_saved"));
+ } catch (e) {
+ const detail = e instanceof ApiError ? JSON.stringify(e.detail) : String(e);
+ setToast(t("save_failed", { msg: detail }));
+ }
+ }
+
const save = useCallback(async (): Promise<boolean> => {
if (!currentName) return false;
try {
@@ -159,7 +189,6 @@ export default function App() {
t={t}
lang={lang}
setLang={setLang}
- schema={schema}
flowNames={flowNames}
currentName={currentName}
onSelect={loadFlow}
@@ -172,10 +201,26 @@ export default function App() {
closeMode={closeMode}
setCloseMode={setCloseMode}
onOpenSettings={() => setSettingsOpen(true)}
+ onOpenInspect={() => setInspectOpen(true)}
/>
<main>
- <Canvas key={reloadToken} flow={flow} schema={schema} lang={lang} t={t} onChange={onCanvasChange} />
+ <Palette
+ schema={schema}
+ lang={lang}
+ t={t}
+ blocksRefreshKey={blocksRefreshKey}
+ onSaveSelectionAsBlock={saveSelectionAsBlock}
+ />
+ <Canvas
+ key={reloadToken}
+ flow={flow}
+ schema={schema}
+ lang={lang}
+ t={t}
+ onChange={onCanvasChange}
+ onSelectionChange={setSelectedIds}
+ />
<aside className="side">
<AssistPanel
t={t}
@@ -210,6 +255,16 @@ export default function App() {
}}
/>
+ <InspectDialog
+ open={inspectOpen}
+ t={t}
+ onClose={() => setInspectOpen(false)}
+ onCreateStep={(s) => {
+ addStep(s);
+ setInspectOpen(false);
+ }}
+ />
+
{toast && (
<div className="toast" onClick={() => setToast(null)}>
{toast}
diff --git a/webui/frontend/src/components/Canvas.tsx b/webui/frontend/src/components/Canvas.tsx
index 2cb1d89..6482087 100644
--- a/webui/frontend/src/components/Canvas.tsx
+++ b/webui/frontend/src/components/Canvas.tsx
@@ -1,23 +1,26 @@
-import { useCallback, useEffect, useMemo, useRef, useState } from "react";
+import { useCallback, useEffect, useMemo, useRef, useState, type DragEvent } from "react";
import {
Background,
Controls,
MiniMap,
Panel,
ReactFlow,
+ ReactFlowProvider,
+ useReactFlow,
type Edge,
type Node,
type NodeChange,
} from "@xyflow/react";
import "@xyflow/react/dist/style.css";
-import type { Flow, Step } from "../lib/api";
+import { api, type Flow, type Step } from "../lib/api";
import type { Schema } from "../lib/schema";
import type { Lang, T } from "../lib/i18n";
-import { flowToGraph } from "../lib/graph";
+import { ensureIds, flowToGraph } from "../lib/graph";
import { stackLayout, type Measured } from "../lib/layout";
-import { insertAt, move, newStep, removeAt } from "../lib/stepops";
+import { appendToContainer, insertAt, move, newStep, removeAt } from "../lib/stepops";
import { StepNode } from "./StepNode";
+import { DND_BLOCK, DND_STEP } from "./Palette";
const nodeTypes = { step: StepNode };
@@ -26,8 +29,8 @@ interface Props {
schema: Schema;
lang: Lang;
t: T;
- /** Emitteras vid varje ändring av steg eller layout. Inställningar ägs av App. */
onChange: (partial: { steps: Step[]; layout: Record<string, { x: number; y: number }> }) => void;
+ onSelectionChange: (ids: string[]) => void;
}
function estimateHeight(step: Step): number {
@@ -41,14 +44,22 @@ function estimateHeight(step: Step): number {
return h;
}
-export function Canvas({ flow, schema, lang, t, onChange }: Props) {
+export function Canvas(props: Props) {
+ return (
+ <ReactFlowProvider>
+ <CanvasInner {...props} />
+ </ReactFlowProvider>
+ );
+}
+
+function CanvasInner({ flow, schema, lang, t, onChange, onSelectionChange }: Props) {
+ const rf = useReactFlow();
+ const wrapRef = useRef<HTMLDivElement>(null);
const [steps, setSteps] = useState<Step[]>(() => flowToGraph(flow).nodes.map((n) => n.step));
- // "pinned" = positioner användaren dragit; övriga auto-staplas.
const [pinned, setPinned] = useState<Record<string, { x: number; y: number }>>(() => ({ ...(flow.layout ?? {}) }));
const measured = useRef<Map<string, Measured>>(new Map());
const firstEmit = useRef(true);
- // Positioner: pinnade respekteras, resten staplas efter uppskattad höjd.
const positions = useMemo(() => {
const m = new Map<string, Measured>();
for (const s of steps) m.set(s.id!, measured.current.get(s.id!) ?? { width: 340, height: estimateHeight(s) });
@@ -105,7 +116,7 @@ export function Canvas({ flow, schema, lang, t, onChange }: Props) {
const edges: Edge[] = useMemo(() => {
const es: Edge[] = [];
for (let i = 0; i < steps.length - 1; i++) {
- es.push({ id: `seq-${steps[i].id}-${steps[i + 1].id}`, source: steps[i].id!, target: steps[i + 1].id!, animated: false });
+ es.push({ id: `seq-${steps[i].id}-${steps[i + 1].id}`, source: steps[i].id!, target: steps[i + 1].id! });
}
const byLabel = new Map<string, string>();
for (const s of steps) if (s.label) byLabel.set(s.label, s.id!);
@@ -129,7 +140,6 @@ export function Canvas({ flow, schema, lang, t, onChange }: Props) {
measured.current.set(c.id, { width: c.dimensions.width, height: c.dimensions.height });
}
}
- // Fånga drag: uppdatera pinnad position
setPinned((prev) => {
let next = prev;
for (const c of changes) {
@@ -143,18 +153,68 @@ export function Canvas({ flow, schema, lang, t, onChange }: Props) {
}, []);
const onNodeDragStop = useCallback(() => {
- // Ordna om stegen efter visuell y-position.
setSteps((prev) => [...prev].sort((a, b) => (positions[a.id!]?.y ?? 0) - (positions[b.id!]?.y ?? 0)));
}, [positions]);
+ // --- drag & drop från paletten ---
+
+ const onDragOver = useCallback((e: DragEvent) => {
+ if (e.dataTransfer.types.includes(DND_STEP) || e.dataTransfer.types.includes(DND_BLOCK)) {
+ e.preventDefault();
+ e.dataTransfer.dropEffect = "copy";
+ const c = (e.target as HTMLElement).closest?.("[data-container-id]");
+ document.querySelectorAll(".drop-hover").forEach((el) => el !== c && el.classList.remove("drop-hover"));
+ c?.classList.add("drop-hover");
+ }
+ }, []);
+
+ const clearHover = () =>
+ document.querySelectorAll(".drop-hover").forEach((el) => el.classList.remove("drop-hover"));
+
+ const onDrop = useCallback(
+ async (e: DragEvent) => {
+ e.preventDefault();
+ clearHover();
+ const stepType = e.dataTransfer.getData(DND_STEP);
+ const blockName = e.dataTransfer.getData(DND_BLOCK);
+ const containerEl = (e.target as HTMLElement).closest?.("[data-container-id]") as HTMLElement | null;
+
+ if (stepType) {
+ const fresh = newStep(schema, stepType);
+ if (containerEl) {
+ const cid = containerEl.getAttribute("data-container-id")!;
+ const branch = containerEl.getAttribute("data-branch");
+ setSteps((prev) => appendToContainer(prev, cid, branch, fresh) ?? [...prev, fresh]);
+ } else {
+ const pos = rf.screenToFlowPosition({ x: e.clientX, y: e.clientY });
+ setPinned((p) => ({ ...p, [fresh.id!]: { x: Math.round(pos.x), y: Math.round(pos.y) } }));
+ setSteps((prev) => [...prev, fresh]);
+ }
+ return;
+ }
+
+ if (blockName) {
+ try {
+ const block = await api.getBlock(blockName);
+ const blkSteps = (block.steps ?? []).map((s) => ensureIds({ ...s }));
+ setSteps((prev) => [...prev, ...blkSteps]);
+ } catch {
+ /* ignore */
+ }
+ }
+ },
+ [schema, rf],
+ );
+
return (
- <div className="canvas">
+ <div className="canvas" ref={wrapRef} onDragOver={onDragOver} onDrop={onDrop} onDragLeave={clearHover}>
<ReactFlow
nodes={nodes}
edges={edges}
nodeTypes={nodeTypes}
onNodesChange={onNodesChange}
onNodeDragStop={onNodeDragStop}
+ onSelectionChange={({ nodes: sel }) => onSelectionChange(sel.map((n) => n.id))}
nodesConnectable={false}
fitView
minZoom={0.2}
diff --git a/webui/frontend/src/components/Header.tsx b/webui/frontend/src/components/Header.tsx
index ea9e5ad..b4665aa 100644
--- a/webui/frontend/src/components/Header.tsx
+++ b/webui/frontend/src/components/Header.tsx
@@ -1,12 +1,10 @@
-import { api } from "../lib/api";
-import type { Schema } from "../lib/schema";
import type { Lang, T } from "../lib/i18n";
+import { Menu } from "./Menu";
interface Props {
t: T;
lang: Lang;
setLang: (l: Lang) => void;
- schema: Schema;
flowNames: string[];
currentName: string | null;
onSelect: (name: string) => void;
@@ -19,6 +17,7 @@ interface Props {
closeMode: string;
setCloseMode: (m: string) => void;
onOpenSettings: () => void;
+ onOpenInspect: () => void;
}
export function Header(p: Props) {
@@ -26,10 +25,6 @@ export function Header(p: Props) {
return (
<header>
<h1>{t("app_title")}</h1>
- <select value={p.lang} onChange={(e) => p.setLang(e.target.value as Lang)}>
- <option value="en">English</option>
- <option value="sv">Svenska</option>
- </select>
<select value={p.currentName ?? ""} onChange={(e) => p.onSelect(e.target.value)}>
{p.flowNames.map((n) => (
@@ -38,42 +33,28 @@ export function Header(p: Props) {
</option>
))}
</select>
- <button className="secondary" onClick={p.onNew}>
- {t("new_flow")}
- </button>
- <button className="danger" onClick={p.onDelete} disabled={!p.currentName}>
- {t("delete_flow")}
- </button>
-
- <a className="secondary" href="/wiki" target="_blank" rel="noopener">
- {t("wiki")}
- </a>
- <button className="secondary" onClick={p.onOpenSettings}>
- {t("settings")}
- </button>
- <a
- className="secondary"
- href={p.currentName ? api.exportUrl(p.currentName) : "#"}
- target="_blank"
- rel="noopener"
- >
- {t("export")}
- </a>
<span className="spacer" />
<span className={"dirty-dot " + (p.dirty ? "on" : "")} title={p.dirty ? t("unsaved") : t("saved")} />
- <select value={p.closeMode} onChange={(e) => p.setCloseMode(e.target.value)}>
- <option value="always">{t("close_always")}</option>
- <option value="on_success">{t("close_on_success")}</option>
- <option value="never">{t("close_never")}</option>
- </select>
<button className="secondary" onClick={p.onSave}>
{t("save")}
</button>
<button onClick={p.onRun} disabled={p.running || !p.currentName}>
{t("run")}
</button>
+ <Menu
+ t={t}
+ lang={p.lang}
+ setLang={p.setLang}
+ closeMode={p.closeMode}
+ setCloseMode={p.setCloseMode}
+ currentName={p.currentName}
+ onNew={p.onNew}
+ onDelete={p.onDelete}
+ onOpenSettings={p.onOpenSettings}
+ onOpenInspect={p.onOpenInspect}
+ />
</header>
);
}
diff --git a/webui/frontend/src/components/InspectDialog.tsx b/webui/frontend/src/components/InspectDialog.tsx
new file mode 100644
index 0000000..30f75ec
--- /dev/null
+++ b/webui/frontend/src/components/InspectDialog.tsx
@@ -0,0 +1,119 @@
+import { useEffect, useRef, useState } from "react";
+import { ApiError, api, type InspectRow, type Step } from "../lib/api";
+import type { T } from "../lib/i18n";
+import { uid } from "../lib/ids";
+
+interface Props {
+ open: boolean;
+ t: T;
+ onClose: () => void;
+ onCreateStep: (step: Step) => void;
+}
+
+export function InspectDialog({ open, t, onClose, onCreateStep }: Props) {
+ const ref = useRef<HTMLDialogElement>(null);
+ const [windows, setWindows] = useState<string[]>([]);
+ const [title, setTitle] = useState("");
+ const [rows, setRows] = useState<InspectRow[]>([]);
+ const [err, setErr] = useState<string | null>(null);
+ const [busy, setBusy] = useState(false);
+
+ useEffect(() => {
+ const d = ref.current;
+ if (!d) return;
+ if (open && !d.open) {
+ d.showModal();
+ setErr(null);
+ setRows([]);
+ api
+ .desktopWindows()
+ .then((w) => {
+ setWindows(w);
+ if (w.length) setTitle(w[0]);
+ })
+ .catch((e) => setErr(e instanceof ApiError && e.status === 501 ? t("inspect_unavailable") : String(e)));
+ }
+ if (!open && d.open) d.close();
+ }, [open, t]);
+
+ async function load() {
+ if (!title) return;
+ setBusy(true);
+ setErr(null);
+ try {
+ setRows(await api.inspectWindow(title));
+ } catch (e) {
+ setErr(e instanceof ApiError ? String(e.detail) : String(e));
+ } finally {
+ setBusy(false);
+ }
+ }
+
+ function selectorFor(row: InspectRow): { by: string; value: string } {
+ if (row.auto_id) return { by: "auto_id", value: row.auto_id };
+ if (row.name) return { by: "name", value: row.name };
+ if (row.class_name) return { by: "class_name", value: row.class_name };
+ return { by: "name", value: "" };
+ }
+
+ function makeStep(row: InspectRow, type: "desktop_click" | "desktop_type") {
+ const sel = selectorFor(row);
+ const step: Step = { type, id: uid(), by: sel.by, value: sel.value };
+ if (row.control_type) step.control_type = row.control_type;
+ if (type === "desktop_type") step.text = "";
+ onCreateStep(step);
+ }
+
+ return (
+ <dialog ref={ref} onClose={onClose} className="inspect-dialog">
+ <h2>{t("inspect_window")}</h2>
+ <p className="hint">{t("inspect_hint")}</p>
+ <div className="inspect-controls">
+ <select value={title} onChange={(e) => setTitle(e.target.value)}>
+ {windows.length === 0 && <option value="">{t("inspect_none")}</option>}
+ {windows.map((w) => (
+ <option key={w} value={w}>
+ {w}
+ </option>
+ ))}
+ </select>
+ <button onClick={load} disabled={busy || !title}>
+ {busy ? "…" : t("inspect_load")}
+ </button>
+ <span className="spacer" />
+ <button type="button" className="secondary" onClick={onClose}>
+ {t("cancel")}
+ </button>
+ </div>
+ {err && <p className="assist-msg error">{err}</p>}
+ {rows.length > 0 && (
+ <div className="inspect-table">
+ {rows.map((row, i) => {
+ const sel = selectorFor(row);
+ return (
+ <div className="inspect-row" key={i} style={{ paddingLeft: 8 + row.depth * 14 }}>
+ <code className="inspect-ct">{row.control_type || "?"}</code>
+ <span className="inspect-name">{row.name || <em>—</em>}</span>
+ {row.auto_id && <code className="inspect-aid">#{row.auto_id}</code>}
+ <span className="spacer" />
+ <button
+ className="secondary tiny"
+ title={`${sel.by}=${sel.value}`}
+ onClick={() => navigator.clipboard?.writeText(`${sel.by}=${sel.value}`)}
+ >
+ {t("inspect_copy")}
+ </button>
+ <button className="secondary tiny" onClick={() => makeStep(row, "desktop_click")}>
+ {t("inspect_make_click")}
+ </button>
+ <button className="secondary tiny" onClick={() => makeStep(row, "desktop_type")}>
+ {t("inspect_make_type")}
+ </button>
+ </div>
+ );
+ })}
+ </div>
+ )}
+ </dialog>
+ );
+}
diff --git a/webui/frontend/src/components/Menu.tsx b/webui/frontend/src/components/Menu.tsx
new file mode 100644
index 0000000..699e889
--- /dev/null
+++ b/webui/frontend/src/components/Menu.tsx
@@ -0,0 +1,99 @@
+import { useEffect, useRef, useState } from "react";
+import { api } from "../lib/api";
+import type { Lang, T } from "../lib/i18n";
+
+interface Props {
+ t: T;
+ lang: Lang;
+ setLang: (l: Lang) => void;
+ closeMode: string;
+ setCloseMode: (m: string) => void;
+ currentName: string | null;
+ onNew: () => void;
+ onDelete: () => void;
+ onOpenSettings: () => void;
+ onOpenInspect: () => void;
+}
+
+export function Menu(p: Props) {
+ const { t } = p;
+ const [open, setOpen] = useState(false);
+ const ref = useRef<HTMLDivElement>(null);
+
+ useEffect(() => {
+ if (!open) return;
+ const onClick = (e: MouseEvent) => {
+ if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);
+ };
+ const onKey = (e: KeyboardEvent) => e.key === "Escape" && setOpen(false);
+ document.addEventListener("mousedown", onClick);
+ document.addEventListener("keydown", onKey);
+ return () => {
+ document.removeEventListener("mousedown", onClick);
+ document.removeEventListener("keydown", onKey);
+ };
+ }, [open]);
+
+ const act = (fn: () => void) => () => {
+ setOpen(false);
+ fn();
+ };
+
+ return (
+ <div className="menu-wrap" ref={ref}>
+ <button className="secondary" title={t("menu")} onClick={() => setOpen((o) => !o)}>
+ ⚙
+ </button>
+ {open && (
+ <div className="menu-popover">
+ <div className="menu-section">{t("menu_flow")}</div>
+ <button className="menu-item" onClick={act(p.onNew)}>
+ {t("new_flow")}
+ </button>
+ <button className="menu-item" onClick={act(p.onDelete)} disabled={!p.currentName}>
+ {t("delete_flow")}
+ </button>
+ <a
+ className="menu-item"
+ href={p.currentName ? api.exportUrl(p.currentName) : undefined}
+ target="_blank"
+ rel="noopener"
+ onClick={() => setOpen(false)}
+ >
+ {t("export")}
+ </a>
+
+ <div className="menu-section">{t("menu_run")}</div>
+ <label className="menu-item menu-field">
+ <span>{t("menu_run")}</span>
+ <select value={p.closeMode} onChange={(e) => p.setCloseMode(e.target.value)}>
+ <option value="always">{t("close_always")}</option>
+ <option value="on_success">{t("close_on_success")}</option>
+ <option value="never">{t("close_never")}</option>
+ </select>
+ </label>
+ <button className="menu-item" onClick={act(p.onOpenSettings)}>
+ {t("run_settings")}
+ </button>
+
+ <div className="menu-section">{t("menu_view")}</div>
+ <label className="menu-item menu-field">
+ <span>{t("language")}</span>
+ <select value={p.lang} onChange={(e) => p.setLang(e.target.value as Lang)}>
+ <option value="en">English</option>
+ <option value="sv">Svenska</option>
+ </select>
+ </label>
+
+ <div className="menu-section">{t("menu_tools")}</div>
+ <button className="menu-item" onClick={act(p.onOpenInspect)}>
+ {t("inspect_window")}
+ </button>
+ <a className="menu-item" href="/wiki" target="_blank" rel="noopener" onClick={() => setOpen(false)}>
+ {t("wiki")}
+ </a>
+ </div>
+ )}
+ </div>
+ );
+}
diff --git a/webui/frontend/src/components/Palette.tsx b/webui/frontend/src/components/Palette.tsx
new file mode 100644
index 0000000..44e87c2
--- /dev/null
+++ b/webui/frontend/src/components/Palette.tsx
@@ -0,0 +1,137 @@
+import { useEffect, useMemo, useState } from "react";
+import { api, type BlockMeta } from "../lib/api";
+import type { Schema } from "../lib/schema";
+import { fieldLabel } from "../lib/schema";
+import type { Lang, T } from "../lib/i18n";
+
+export const DND_STEP = "application/rpa-step";
+export const DND_BLOCK = "application/rpa-block";
+
+interface Props {
+ schema: Schema;
+ lang: Lang;
+ t: T;
+ blocksRefreshKey: number;
+ onSaveSelectionAsBlock: () => void;
+}
+
+const CAT_ORDER = ["navigation", "interaction", "data", "control", "files", "desktop"];
+const CAT_LABEL: Record<string, { sv: string; en: string }> = {
+ navigation: { sv: "Navigering", en: "Navigation" },
+ interaction: { sv: "Interaktion", en: "Interaction" },
+ data: { sv: "Data / variabler", en: "Data / variables" },
+ control: { sv: "Kontrollflöde", en: "Control flow" },
+ files: { sv: "Filer", en: "Files" },
+ desktop: { sv: "Desktop (Windows)", en: "Desktop (Windows)" },
+};
+
+export function Palette({ schema, lang, t, blocksRefreshKey, onSaveSelectionAsBlock }: Props) {
+ const [tab, setTab] = useState<"steps" | "blocks">("steps");
+ const [q, setQ] = useState("");
+ const [collapsed, setCollapsed] = useState<Set<string>>(new Set());
+ const [blocks, setBlocks] = useState<BlockMeta[]>([]);
+
+ useEffect(() => {
+ api.listBlocks().then(setBlocks).catch(() => setBlocks([]));
+ }, [blocksRefreshKey]);
+
+ const groups = useMemo(() => {
+ const ql = q.trim().toLowerCase();
+ const by: Record<string, typeof schema.step_types> = {};
+ for (const s of schema.step_types) {
+ const label = fieldLabel(s, lang).toLowerCase();
+ if (ql && !label.includes(ql) && !s.type.includes(ql)) continue;
+ (by[s.category] ??= []).push(s);
+ }
+ return CAT_ORDER.filter((c) => by[c]?.length).map((c) => ({ cat: c, steps: by[c] }));
+ }, [schema, lang, q]);
+
+ return (
+ <div className="palette">
+ <div className="palette-tabs">
+ <button className={tab === "steps" ? "on" : ""} onClick={() => setTab("steps")}>
+ {t("palette")}
+ </button>
+ <button className={tab === "blocks" ? "on" : ""} onClick={() => setTab("blocks")}>
+ {t("palette_blocks")}
+ </button>
+ </div>
+
+ {tab === "steps" && (
+ <>
+ <input
+ className="palette-search"
+ placeholder={t("palette_search")}
+ value={q}
+ onChange={(e) => setQ(e.target.value)}
+ />
+ <div className="palette-scroll">
+ {groups.map(({ cat, steps }) => {
+ const isCollapsed = collapsed.has(cat) && !q;
+ return (
+ <div className="palette-group" key={cat}>
+ <button
+ className="palette-group-head"
+ onClick={() =>
+ setCollapsed((prev) => {
+ const n = new Set(prev);
+ if (n.has(cat)) n.delete(cat);
+ else n.add(cat);
+ return n;
+ })
+ }
+ >
+ {isCollapsed ? "▸" : "▾"} {(CAT_LABEL[cat]?.[lang] ?? cat)}
+ </button>
+ {!isCollapsed &&
+ steps.map((s) => (
+ <div
+ key={s.type}
+ className={"palette-item cat-" + s.category}
+ draggable
+ title={s.help}
+ onDragStart={(e) => {
+ e.dataTransfer.setData(DND_STEP, s.type);
+ e.dataTransfer.effectAllowed = "copy";
+ }}
+ >
+ {fieldLabel(s, lang)}
+ </div>
+ ))}
+ </div>
+ );
+ })}
+ </div>
+ </>
+ )}
+
+ {tab === "blocks" && (
+ <div className="palette-scroll">
+ <button className="secondary palette-save-block" onClick={onSaveSelectionAsBlock}>
+ {t("block_save_selection")}
+ </button>
+ {blocks.length === 0 && <p className="hint">{t("block_none")}</p>}
+ {blocks.map((b) => (
+ <div
+ key={b.name}
+ className="palette-block"
+ draggable
+ title={b.description}
+ onDragStart={(e) => {
+ e.dataTransfer.setData(DND_BLOCK, b.name);
+ e.dataTransfer.effectAllowed = "copy";
+ }}
+ >
+ <div className="palette-block-name">
+ {b.name} {b.builtin && <span className="hint">·</span>}
+ </div>
+ <div className="hint">
+ {b.description || `${b.step_count} steg`}
+ </div>
+ </div>
+ ))}
+ </div>
+ )}
+ </div>
+ );
+}
diff --git a/webui/frontend/src/components/StepBody.tsx b/webui/frontend/src/components/StepBody.tsx
index 359d1cd..05ea065 100644
--- a/webui/frontend/src/components/StepBody.tsx
+++ b/webui/frontend/src/components/StepBody.tsx
@@ -46,7 +46,7 @@ export function StepBody({ step, schema, lang, t, inLoop, onChange }: Props) {
)}
{step.type === "loop" && (
- <div className="nested">
+ <div className="nested" data-container-id={step.id}>
<NestedSteps
steps={step.steps ?? []}
schema={schema}
@@ -73,7 +73,7 @@ function IfBranches({ step, schema, lang, t, inLoop, onChange }: Props) {
return (
<div className="nested">
{branches.map((b, i) => (
- <div className="branch" key={i}>
+ <div className="branch" key={i} data-container-id={step.id} data-branch={i}>
<div className="branch-head">
<strong>{i === 0 ? t("branch_if") : t("branch_else_if")}</strong>
{i > 0 && (
@@ -116,7 +116,7 @@ function IfBranches({ step, schema, lang, t, inLoop, onChange }: Props) {
<span>{t("else_toggle")}</span>
</label>
{Array.isArray(step.else) && (
- <div className="branch">
+ <div className="branch" data-container-id={step.id} data-branch="else">
<NestedSteps
steps={step.else}
schema={schema}
diff --git a/webui/frontend/src/lib/api.ts b/webui/frontend/src/lib/api.ts
index 611d69d..b073872 100644
--- a/webui/frontend/src/lib/api.ts
+++ b/webui/frontend/src/lib/api.ts
@@ -50,6 +50,28 @@ export interface AssistResult {
explanation?: string;
}
+export interface InspectRow {
+ depth: number;
+ control_type: string;
+ name: string;
+ auto_id: string;
+ class_name: string;
+}
+
+export interface BlockMeta {
+ name: string;
+ description: string;
+ step_count: number;
+ builtin: boolean;
+}
+
+export interface Block {
+ name: string;
+ description: string;
+ steps: Step[];
+ settings?: Record<string, unknown>;
+}
+
async function j<T>(res: Response): Promise<T> {
if (!res.ok) {
let detail: unknown;
@@ -93,6 +115,23 @@ export const api = {
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ instruction, steps: flow.steps, settings: flow.settings }),
}).then((r) => j<AssistResult>(r)),
+ desktopWindows: () => fetch("/api/desktop/windows").then((r) => j<string[]>(r)),
+ inspectWindow: (title: string) =>
+ fetch("/api/desktop/inspect", {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ title }),
+ }).then((r) => j<InspectRow[]>(r)),
+ listBlocks: () => fetch("/api/blocks").then((r) => j<BlockMeta[]>(r)),
+ getBlock: (name: string) => fetch(`/api/blocks/${encodeURIComponent(name)}`).then((r) => j<Block>(r)),
+ saveBlock: (name: string, block: Block) =>
+ fetch(`/api/blocks/${encodeURIComponent(name)}`, {
+ method: "PUT",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify(block),
+ }).then((r) => j<{ ok: boolean }>(r)),
+ deleteBlock: (name: string) =>
+ fetch(`/api/blocks/${encodeURIComponent(name)}`, { method: "DELETE" }).then((r) => j<{ ok: boolean }>(r)),
listDesktopImages: () => fetch("/api/desktop-images").then((r) => j<string[]>(r)),
captureDesktopImage: (name: string) =>
fetch("/api/desktop-images/capture", {
diff --git a/webui/frontend/src/lib/i18n.ts b/webui/frontend/src/lib/i18n.ts
index 64a71b8..9cc540e 100644
--- a/webui/frontend/src/lib/i18n.ts
+++ b/webui/frontend/src/lib/i18n.ts
@@ -65,6 +65,34 @@ const STRINGS = {
var_object: "object",
var_text: "text, {n} chars",
save_failed: "Save failed: {msg}",
+ menu: "Menu",
+ menu_flow: "Flow",
+ menu_view: "View",
+ menu_run: "Run",
+ menu_tools: "Tools",
+ language: "Language",
+ run_settings: "Run settings…",
+ inspect_window: "Inspect window",
+ inspect_hint: "Pick a running window to list its controls — use name / auto_id / control_type in the desktop steps.",
+ inspect_pick: "Window",
+ inspect_load: "Load controls",
+ inspect_unavailable: "Windows only — pywinauto could not be loaded.",
+ inspect_make_click: "New desktop_click",
+ inspect_make_type: "New desktop_type",
+ inspect_copy: "Copy selector",
+ inspect_none: "No windows found.",
+ palette: "Steps",
+ palette_search: "Search…",
+ palette_blocks: "Blocks",
+ palette_toggle: "Show/hide the step palette",
+ block_save_selection: "💾 Save selection as block",
+ block_insert: "Insert",
+ block_none: "No blocks yet. Select nodes on the canvas and save them as a block.",
+ block_name_prompt: "Block name:",
+ block_desc_prompt: "Short description (optional):",
+ block_saved: "Block saved.",
+ block_select_first: "Select one or more nodes on the canvas first.",
+ change_type: "Change step type",
},
sv: {
app_title: "RPA-verktyg",
@@ -127,6 +155,34 @@ const STRINGS = {
var_object: "objekt",
var_text: "text, {n} tecken",
save_failed: "Kunde inte spara: {msg}",
+ menu: "Meny",
+ menu_flow: "Flöde",
+ menu_view: "Visning",
+ menu_run: "Körning",
+ menu_tools: "Verktyg",
+ language: "Språk",
+ run_settings: "Körningsinställningar…",
+ inspect_window: "Inspektera fönster",
+ inspect_hint: "Välj ett körande fönster för att lista dess kontroller — använd name / auto_id / control_type i desktop-stegen.",
+ inspect_pick: "Fönster",
+ inspect_load: "Hämta kontroller",
+ inspect_unavailable: "Bara Windows — pywinauto kunde inte laddas.",
+ inspect_make_click: "Nytt desktop_click",
+ inspect_make_type: "Nytt desktop_type",
+ inspect_copy: "Kopiera selector",
+ inspect_none: "Inga fönster hittades.",
+ palette: "Steg",
+ palette_search: "Sök…",
+ palette_blocks: "Block",
+ palette_toggle: "Visa/dölj steg-paletten",
+ block_save_selection: "💾 Spara markering som block",
+ block_insert: "Infoga",
+ block_none: "Inga block än. Markera noder på canvasen och spara dem som ett block.",
+ block_name_prompt: "Blockets namn:",
+ block_desc_prompt: "Kort beskrivning (valfri):",
+ block_saved: "Blocket sparat.",
+ block_select_first: "Markera en eller flera noder på canvasen först.",
+ change_type: "Byt stegtyp",
},
} as const;
diff --git a/webui/frontend/src/lib/stepops.test.ts b/webui/frontend/src/lib/stepops.test.ts
new file mode 100644
index 0000000..43dabc1
--- /dev/null
+++ b/webui/frontend/src/lib/stepops.test.ts
@@ -0,0 +1,69 @@
+import { describe, expect, it } from "vitest";
+import type { Step } from "./api";
+import { appendToContainer, newStep } from "./stepops";
+import type { Schema } from "./schema";
+
+const SCHEMA = {
+ step_types: [
+ { type: "click", category: "interaction", label_sv: "", label_en: "", fields: [
+ { key: "by", kind: "select", options: ["text", "css", "role"], default: "text", label_sv: "", label_en: "" },
+ { key: "nth", kind: "number", default: 0, label_sv: "", label_en: "" },
+ ] },
+ { type: "loop", category: "control", label_sv: "", label_en: "", container: "steps", fields: [] },
+ { type: "desktop_click", category: "desktop", label_sv: "", label_en: "", fields: [] },
+ ],
+ condition_kinds: [],
+ settings: [],
+ close_modes: [],
+} as unknown as Schema;
+
+const add: Step = { type: "desktop_click", id: "new1" };
+
+describe("appendToContainer", () => {
+ it("appends into a loop body", () => {
+ const steps: Step[] = [{ type: "loop", id: "L", steps: [{ type: "click", id: "a" }] }];
+ const out = appendToContainer(steps, "L", null, add)!;
+ expect(out[0].steps!.map((s) => s.id)).toEqual(["a", "new1"]);
+ expect(steps[0].steps!.length).toBe(1); // original untouched
+ });
+
+ it("appends into a specific if-branch", () => {
+ const steps: Step[] = [
+ { type: "if", id: "F", branches: [
+ { condition: { kind: "element_exists" }, steps: [] },
+ { condition: { kind: "element_exists" }, steps: [{ type: "click", id: "x" }] },
+ ] },
+ ];
+ const out = appendToContainer(steps, "F", "1", add)!;
+ expect(out[0].branches![1].steps.map((s) => s.id)).toEqual(["x", "new1"]);
+ expect(out[0].branches![0].steps).toEqual([]);
+ });
+
+ it("appends into the else branch", () => {
+ const steps: Step[] = [{ type: "if", id: "F", branches: [{ condition: { kind: "element_exists" }, steps: [] }], else: [] }];
+ const out = appendToContainer(steps, "F", "else", add)!;
+ expect(out[0].else!.map((s) => s.id)).toEqual(["new1"]);
+ });
+
+ it("finds a container nested inside another loop", () => {
+ const steps: Step[] = [{ type: "loop", id: "outer", steps: [{ type: "loop", id: "inner", steps: [] }] }];
+ const out = appendToContainer(steps, "inner", null, add)!;
+ expect(out[0].steps![0].steps!.map((s) => s.id)).toEqual(["new1"]);
+ });
+
+ it("returns null when the container id is not found", () => {
+ expect(appendToContainer([{ type: "click", id: "a" }], "nope", null, add)).toBeNull();
+ });
+});
+
+describe("newStep", () => {
+ it("applies schema defaults and generates an id", () => {
+ const s = newStep(SCHEMA, "click");
+ expect(s.type).toBe("click");
+ expect(s.by).toBe("text");
+ expect(typeof s.id).toBe("string");
+ });
+ it("gives loop an empty steps array", () => {
+ expect(newStep(SCHEMA, "loop").steps).toEqual([]);
+ });
+});
diff --git a/webui/frontend/src/lib/stepops.ts b/webui/frontend/src/lib/stepops.ts
index e9e0757..19e1017 100644
--- a/webui/frontend/src/lib/stepops.ts
+++ b/webui/frontend/src/lib/stepops.ts
@@ -60,3 +60,67 @@ export function replaceAt(list: Step[], index: number, step: Step): Step[] {
export function newBranch(): Branch {
return { condition: { kind: "element_exists" }, steps: [] };
}
+
+/** Lägger `add` sist i behållarsteget med id `containerId` (rekursivt). `branch`:
+ * null = loop-kropp, "0".."n" = if-gren, "else" = else-grenen. Returnerar en ny
+ * steglista om behållaren hittades, annars null. */
+export function appendToContainer(
+ steps: Step[],
+ containerId: string,
+ branch: string | null,
+ add: Step,
+): Step[] | null {
+ let changed = false;
+
+ const out = steps.map((step) => {
+ if (step.id === containerId) {
+ changed = true;
+ if (step.type === "loop") return { ...step, steps: [...(step.steps ?? []), add] };
+ if (step.type === "if") {
+ if (branch === "else") return { ...step, else: [...(step.else ?? []), add] };
+ const bi = Number(branch ?? 0);
+ return {
+ ...step,
+ branches: (step.branches ?? []).map((b, i) =>
+ i === bi ? { ...b, steps: [...b.steps, add] } : b,
+ ),
+ };
+ }
+ return step;
+ }
+
+ let next = step;
+ if (step.steps) {
+ const r = appendToContainer(step.steps, containerId, branch, add);
+ if (r) {
+ changed = true;
+ next = { ...next, steps: r };
+ }
+ }
+ if (step.branches) {
+ let bChanged = false;
+ const nb = step.branches.map((b) => {
+ const r = appendToContainer(b.steps, containerId, branch, add);
+ if (r) {
+ bChanged = true;
+ return { ...b, steps: r };
+ }
+ return b;
+ });
+ if (bChanged) {
+ changed = true;
+ next = { ...next, branches: nb };
+ }
+ }
+ if (step.else) {
+ const r = appendToContainer(step.else, containerId, branch, add);
+ if (r) {
+ changed = true;
+ next = { ...next, else: r };
+ }
+ }
+ return next;
+ });
+
+ return changed ? out : null;
+}
diff --git a/webui/frontend/src/styles.css b/webui/frontend/src/styles.css
index 821fef2..a90bf3e 100644
--- a/webui/frontend/src/styles.css
+++ b/webui/frontend/src/styles.css
@@ -58,10 +58,71 @@ header h1 { font-size: 15px; margin: 0 10px 0 0; white-space: nowrap; }
.dirty-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--border); }
.dirty-dot.on { background: #f5b942; }
-main { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) 360px; min-height: 0; }
+main { flex: 1; display: grid; grid-template-columns: 210px minmax(0, 1fr) 360px; min-height: 0; }
.canvas { position: relative; min-width: 0; }
.side { border-left: 1px solid var(--border); background: var(--bg); overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 12px; }
+/* --- ⚙-meny --- */
+.menu-wrap { position: relative; }
+.menu-popover {
+ position: absolute; right: 0; top: calc(100% + 6px); z-index: 50;
+ background: var(--panel); border: 1px solid var(--border); border-radius: 10px;
+ box-shadow: 0 6px 24px rgba(0,0,0,0.18); padding: 6px; min-width: 220px;
+ display: flex; flex-direction: column; gap: 2px;
+}
+.menu-section { font-size: 11px; color: var(--muted); padding: 6px 8px 2px; text-transform: uppercase; letter-spacing: 0.04em; }
+.menu-item {
+ display: flex; align-items: center; justify-content: space-between; gap: 8px;
+ background: transparent; color: var(--text); border: none; text-align: left;
+ padding: 7px 8px; border-radius: 6px; font: inherit; text-decoration: none;
+}
+.menu-item:hover:not(:disabled) { background: var(--nest); }
+.menu-field select { padding: 3px 6px; }
+
+/* --- Vänsterpalett --- */
+.palette {
+ border-right: 1px solid var(--border); background: var(--panel);
+ display: flex; flex-direction: column; min-height: 0;
+}
+.palette-tabs { display: flex; border-bottom: 1px solid var(--border); }
+.palette-tabs button {
+ flex: 1; background: transparent; color: var(--muted); border: none;
+ border-bottom: 2px solid transparent; padding: 8px 6px; font: inherit; border-radius: 0;
+}
+.palette-tabs button.on { color: var(--text); border-bottom-color: var(--accent); }
+.palette-search { margin: 8px; }
+.palette-scroll { overflow-y: auto; padding: 0 8px 12px; flex: 1; }
+.palette-group-head {
+ width: 100%; text-align: left; background: transparent; color: var(--muted);
+ border: none; padding: 8px 2px 4px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em;
+}
+.palette-item, .palette-block {
+ border: 1px solid var(--border); border-radius: 6px; padding: 6px 8px; margin-bottom: 4px;
+ background: var(--bg); font-size: 12px; cursor: grab;
+}
+.palette-item:hover, .palette-block:hover { border-color: var(--accent); }
+.palette-item.cat-control { border-left: 3px solid #8a63d2; }
+.palette-item.cat-files { border-left: 3px solid #3aa757; }
+.palette-item.cat-desktop { border-left: 3px solid #d98a2b; }
+.palette-block-name { font-weight: 600; }
+.palette-save-block { width: 100%; margin: 8px 0; }
+
+.step-node select.type-select { max-width: 150px; font-size: 12px; padding: 3px 6px; }
+
+/* drop-zon-highlight när man drar ett steg över en loop/if-kropp */
+.drop-hover { outline: 2px dashed var(--accent); outline-offset: 2px; border-radius: 6px; }
+
+/* --- Inspektera fönster --- */
+.inspect-dialog { width: min(760px, 94vw); }
+.inspect-controls { display: flex; gap: 8px; align-items: center; margin: 8px 0; }
+.inspect-controls select { flex: 1; }
+.inspect-table { max-height: 50vh; overflow: auto; border: 1px solid var(--border); border-radius: 6px; }
+.inspect-row { display: flex; align-items: center; gap: 8px; padding: 4px 8px; border-bottom: 1px solid var(--border); font-size: 12px; }
+.inspect-row:hover { background: var(--nest); }
+.inspect-ct { color: var(--accent); }
+.inspect-name { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+.inspect-aid { color: var(--muted); }
+
.panel { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 12px; }
.panel-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.hint { color: var(--muted); font-size: 12px; margin: 4px 0; }
diff --git a/webui/static/assets/index-CNuIJsnv.css b/webui/static/assets/index-CQM7tpR0.css
similarity index 72%
rename from webui/static/assets/index-CNuIJsnv.css
rename to webui/static/assets/index-CQM7tpR0.css
index 5fa4b33..2fc94a9 100644
--- a/webui/static/assets/index-CNuIJsnv.css
+++ b/webui/static/assets/index-CQM7tpR0.css
@@ -1 +1 @@
-.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{color-scheme:light dark;--bg: #f5f5f7;--panel: #ffffff;--border: #d8d8dd;--text: #1c1c1e;--muted: #6b6b70;--accent: #2f6fed;--accent-text: #ffffff;--danger: #d1453b;--nest: #eef2fb}@media(prefers-color-scheme:dark){:root{--bg: #1c1c1e;--panel: #2a2a2d;--border: #444448;--text: #f2f2f3;--muted: #9a9a9e;--nest: #232b3d}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100%}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}select,input,button,textarea,a.secondary{font:inherit;padding:6px 9px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text)}textarea{width:100%;resize:vertical}button{cursor:pointer;background:var(--accent);color:var(--accent-text);border:none}button.secondary,a.secondary{background:transparent;color:var(--text);border:1px solid var(--border);text-decoration:none;display:inline-flex;align-items:center}button.danger{background:var(--danger);color:#fff}button.icon{padding:2px 7px;background:transparent;color:var(--text);border:1px solid var(--border)}button.tiny{padding:1px 8px;font-size:12px}button:disabled{opacity:.4;cursor:not-allowed}header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--border)}header h1{font-size:15px;margin:0 10px 0 0;white-space:nowrap}.spacer{flex:1}.dirty-dot{width:9px;height:9px;border-radius:50%;background:var(--border)}.dirty-dot.on{background:#f5b942}main{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 360px;min-height:0}.canvas{position:relative;min-width:0}.side{border-left:1px solid var(--border);background:var(--bg);overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px}.panel-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.hint{color:var(--muted);font-size:12px;margin:4px 0}.canvas-panel{display:flex;gap:6px}.step-node{width:340px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px;box-shadow:0 1px 3px #00000014}.step-node.disabled{opacity:.5}.step-node.cat-control{border-color:#8a63d2}.step-node.cat-files{border-color:#3aa757}.step-node.cat-desktop{border-color:#d98a2b}.node-head,.node-subhead,.mini-head{display:flex;align-items:center;gap:6px}.node-subhead{margin-top:6px}.node-body{margin-top:8px}.type-select{font-weight:600}.label-input{width:110px}.add-after{position:absolute;left:50%;bottom:-12px;transform:translate(-50%);width:22px;height:22px;border-radius:50%;padding:0;line-height:1;background:var(--panel);color:var(--accent);border:1px solid var(--accent)}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-top:6px}.field{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}.field span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field input,.field select{width:100%;color:var(--text)}.field-bool{flex-direction:row;align-items:center}.field-bool input{width:auto}.nested{margin-top:8px;padding:8px;border-left:3px solid var(--accent);border-radius:6px;background:var(--nest)}.nested-steps{display:flex;flex-direction:column;gap:6px}.mini-card{border:1px solid var(--border);border-radius:6px;padding:6px;background:var(--panel)}.mini-card.disabled{opacity:.5}.branch{border:1px dashed var(--border);border-radius:6px;padding:6px;margin-bottom:6px}.branch-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}.else-toggle{display:flex;flex-direction:row;align-items:center;gap:6px;border-style:solid}.condition{margin:4px 0}.row-field{border:1px dashed var(--border);border-radius:6px;padding:6px;margin-bottom:6px}.row-field-head{display:flex;gap:6px;margin-bottom:4px}.badge{padding:2px 8px;border-radius:999px;font-size:12px}.badge-running{background:#f5b942;color:#222}.badge-done{background:#3aa757;color:#fff}.badge-error{background:var(--danger);color:#fff}.log{background:#111114;color:#d6d6d8;border-radius:8px;padding:10px;font-family:ui-monospace,Consolas,monospace;font-size:12px;height:320px;overflow-y:auto;white-space:pre-wrap;margin:0}.var-row{border:1px solid var(--border);border-radius:6px;margin-bottom:6px;overflow:hidden}.var-head{padding:6px 9px;cursor:pointer;font-family:ui-monospace,Consolas,monospace;font-size:12px;background:var(--bg)}.var-head:hover{background:var(--nest)}.var-value{margin:0;padding:8px 9px;background:#111114;color:#d6d6d8;font-family:ui-monospace,Consolas,monospace;font-size:12px;max-height:240px;overflow:auto;white-space:pre-wrap}.assist-msg{font-size:12px;white-space:pre-wrap;margin-top:6px}.assist-msg.error{color:var(--danger)}.image-field{grid-column:1 / -1}.image-field-row{display:flex;gap:6px;align-items:center}.image-field-row input{flex:1}.image-field-preview{margin-top:4px;max-height:120px;border:1px solid var(--border);border-radius:4px;background:#fff}dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:20px;width:min(520px,92vw)}dialog::backdrop{background:#0006}dialog h2{margin:0 0 4px;font-size:16px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.toast{position:fixed;bottom:16px;left:50%;transform:translate(-50%);background:var(--danger);color:#fff;padding:10px 16px;border-radius:8px;cursor:pointer;max-width:80vw;font-size:13px}.react-flow__attribution{display:none}
+.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{color-scheme:light dark;--bg: #f5f5f7;--panel: #ffffff;--border: #d8d8dd;--text: #1c1c1e;--muted: #6b6b70;--accent: #2f6fed;--accent-text: #ffffff;--danger: #d1453b;--nest: #eef2fb}@media(prefers-color-scheme:dark){:root{--bg: #1c1c1e;--panel: #2a2a2d;--border: #444448;--text: #f2f2f3;--muted: #9a9a9e;--nest: #232b3d}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100%}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}select,input,button,textarea,a.secondary{font:inherit;padding:6px 9px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text)}textarea{width:100%;resize:vertical}button{cursor:pointer;background:var(--accent);color:var(--accent-text);border:none}button.secondary,a.secondary{background:transparent;color:var(--text);border:1px solid var(--border);text-decoration:none;display:inline-flex;align-items:center}button.danger{background:var(--danger);color:#fff}button.icon{padding:2px 7px;background:transparent;color:var(--text);border:1px solid var(--border)}button.tiny{padding:1px 8px;font-size:12px}button:disabled{opacity:.4;cursor:not-allowed}header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--border)}header h1{font-size:15px;margin:0 10px 0 0;white-space:nowrap}.spacer{flex:1}.dirty-dot{width:9px;height:9px;border-radius:50%;background:var(--border)}.dirty-dot.on{background:#f5b942}main{flex:1;display:grid;grid-template-columns:210px minmax(0,1fr) 360px;min-height:0}.canvas{position:relative;min-width:0}.side{border-left:1px solid var(--border);background:var(--bg);overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.menu-wrap{position:relative}.menu-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #0000002e;padding:6px;min-width:220px;display:flex;flex-direction:column;gap:2px}.menu-section{font-size:11px;color:var(--muted);padding:6px 8px 2px;text-transform:uppercase;letter-spacing:.04em}.menu-item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;color:var(--text);border:none;text-align:left;padding:7px 8px;border-radius:6px;font:inherit;text-decoration:none}.menu-item:hover:not(:disabled){background:var(--nest)}.menu-field select{padding:3px 6px}.palette{border-right:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}.palette-tabs{display:flex;border-bottom:1px solid var(--border)}.palette-tabs button{flex:1;background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;padding:8px 6px;font:inherit;border-radius:0}.palette-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.palette-search{margin:8px}.palette-scroll{overflow-y:auto;padding:0 8px 12px;flex:1}.palette-group-head{width:100%;text-align:left;background:transparent;color:var(--muted);border:none;padding:8px 2px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.palette-item,.palette-block{border:1px solid var(--border);border-radius:6px;padding:6px 8px;margin-bottom:4px;background:var(--bg);font-size:12px;cursor:grab}.palette-item:hover,.palette-block:hover{border-color:var(--accent)}.palette-item.cat-control{border-left:3px solid #8a63d2}.palette-item.cat-files{border-left:3px solid #3aa757}.palette-item.cat-desktop{border-left:3px solid #d98a2b}.palette-block-name{font-weight:600}.palette-save-block{width:100%;margin:8px 0}.step-node select.type-select{max-width:150px;font-size:12px;padding:3px 6px}.drop-hover{outline:2px dashed var(--accent);outline-offset:2px;border-radius:6px}.inspect-dialog{width:min(760px,94vw)}.inspect-controls{display:flex;gap:8px;align-items:center;margin:8px 0}.inspect-controls select{flex:1}.inspect-table{max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:6px}.inspect-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--border);font-size:12px}.inspect-row:hover{background:var(--nest)}.inspect-ct{color:var(--accent)}.inspect-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspect-aid{color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px}.panel-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.hint{color:var(--muted);font-size:12px;margin:4px 0}.canvas-panel{display:flex;gap:6px}.step-node{width:340px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px;box-shadow:0 1px 3px #00000014}.step-node.disabled{opacity:.5}.step-node.cat-control{border-color:#8a63d2}.step-node.cat-files{border-color:#3aa757}.step-node.cat-desktop{border-color:#d98a2b}.node-head,.node-subhead,.mini-head{display:flex;align-items:center;gap:6px}.node-subhead{margin-top:6px}.node-body{margin-top:8px}.type-select{font-weight:600}.label-input{width:110px}.add-after{position:absolute;left:50%;bottom:-12px;transform:translate(-50%);width:22px;height:22px;border-radius:50%;padding:0;line-height:1;background:var(--panel);color:var(--accent);border:1px solid var(--accent)}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-top:6px}.field{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}.field span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field input,.field select{width:100%;color:var(--text)}.field-bool{flex-direction:row;align-items:center}.field-bool input{width:auto}.nested{margin-top:8px;padding:8px;border-left:3px solid var(--accent);border-radius:6px;background:var(--nest)}.nested-steps{display:flex;flex-direction:column;gap:6px}.mini-card{border:1px solid var(--border);border-radius:6px;padding:6px;background:var(--panel)}.mini-card.disabled{opacity:.5}.branch{border:1px dashed var(--border);border-radius:6px;padding:6px;margin-bottom:6px}.branch-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}.else-toggle{display:flex;flex-direction:row;align-items:center;gap:6px;border-style:solid}.condition{margin:4px 0}.row-field{border:1px dashed var(--border);border-radius:6px;padding:6px;margin-bottom:6px}.row-field-head{display:flex;gap:6px;margin-bottom:4px}.badge{padding:2px 8px;border-radius:999px;font-size:12px}.badge-running{background:#f5b942;color:#222}.badge-done{background:#3aa757;color:#fff}.badge-error{background:var(--danger);color:#fff}.log{background:#111114;color:#d6d6d8;border-radius:8px;padding:10px;font-family:ui-monospace,Consolas,monospace;font-size:12px;height:320px;overflow-y:auto;white-space:pre-wrap;margin:0}.var-row{border:1px solid var(--border);border-radius:6px;margin-bottom:6px;overflow:hidden}.var-head{padding:6px 9px;cursor:pointer;font-family:ui-monospace,Consolas,monospace;font-size:12px;background:var(--bg)}.var-head:hover{background:var(--nest)}.var-value{margin:0;padding:8px 9px;background:#111114;color:#d6d6d8;font-family:ui-monospace,Consolas,monospace;font-size:12px;max-height:240px;overflow:auto;white-space:pre-wrap}.assist-msg{font-size:12px;white-space:pre-wrap;margin-top:6px}.assist-msg.error{color:var(--danger)}.image-field{grid-column:1 / -1}.image-field-row{display:flex;gap:6px;align-items:center}.image-field-row input{flex:1}.image-field-preview{margin-top:4px;max-height:120px;border:1px solid var(--border);border-radius:4px;background:#fff}dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:20px;width:min(520px,92vw)}dialog::backdrop{background:#0006}dialog h2{margin:0 0 4px;font-size:16px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.toast{position:fixed;bottom:16px;left:50%;transform:translate(-50%);background:var(--danger);color:#fff;padding:10px 16px;border-radius:8px;cursor:pointer;max-width:80vw;font-size:13px}.react-flow__attribution{display:none}
diff --git a/webui/static/assets/index-DlBNeXUj.js b/webui/static/assets/index-DlBNeXUj.js
new file mode 100644
index 0000000..fb3fff3
--- /dev/null
+++ b/webui/static/assets/index-DlBNeXUj.js
@@ -0,0 +1,65 @@
+(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))l(a);new MutationObserver(a=>{for(const u of a)if(u.type==="childList")for(const c of u.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&l(c)}).observe(document,{childList:!0,subtree:!0});function i(a){const u={};return a.integrity&&(u.integrity=a.integrity),a.referrerPolicy&&(u.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?u.credentials="include":a.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function l(a){if(a.ep)return;a.ep=!0;const u=i(a);fetch(a.href,u)}})();function dp(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var wu={exports:{}},ti={},_u={exports:{}},Ce={};/**
+ * @license React
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Ud;function H0(){if(Ud)return Ce;Ud=1;var t=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),y=Symbol.iterator;function m(P){return P===null||typeof P!="object"?null:(P=y&&P[y]||P["@@iterator"],typeof P=="function"?P:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,C={};function N(P,L,re){this.props=P,this.context=L,this.refs=C,this.updater=re||w}N.prototype.isReactComponent={},N.prototype.setState=function(P,L){if(typeof P!="object"&&typeof P!="function"&&P!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,P,L,"setState")},N.prototype.forceUpdate=function(P){this.updater.enqueueForceUpdate(this,P,"forceUpdate")};function E(){}E.prototype=N.prototype;function j(P,L,re){this.props=P,this.context=L,this.refs=C,this.updater=re||w}var k=j.prototype=new E;k.constructor=j,_(k,N.prototype),k.isPureReactComponent=!0;var T=Array.isArray,U=Object.prototype.hasOwnProperty,O={current:null},z={key:!0,ref:!0,__self:!0,__source:!0};function V(P,L,re){var ie,ce={},te=null,ne=null;if(L!=null)for(ie in L.ref!==void 0&&(ne=L.ref),L.key!==void 0&&(te=""+L.key),L)U.call(L,ie)&&!z.hasOwnProperty(ie)&&(ce[ie]=L[ie]);var Q=arguments.length-2;if(Q===1)ce.children=re;else if(1<Q){for(var oe=Array(Q),he=0;he<Q;he++)oe[he]=arguments[he+2];ce.children=oe}if(P&&P.defaultProps)for(ie in Q=P.defaultProps,Q)ce[ie]===void 0&&(ce[ie]=Q[ie]);return{$$typeof:t,type:P,key:te,ref:ne,props:ce,_owner:O.current}}function b(P,L){return{$$typeof:t,type:P.type,key:L,ref:P.ref,props:P.props,_owner:P._owner}}function J(P){return typeof P=="object"&&P!==null&&P.$$typeof===t}function G(P){var L={"=":"=0",":":"=2"};return"$"+P.replace(/[=:]/g,function(re){return L[re]})}var ee=/\/+/g;function Z(P,L){return typeof P=="object"&&P!==null&&P.key!=null?G(""+P.key):L.toString(36)}function M(P,L,re,ie,ce){var te=typeof P;(te==="undefined"||te==="boolean")&&(P=null);var ne=!1;if(P===null)ne=!0;else switch(te){case"string":case"number":ne=!0;break;case"object":switch(P.$$typeof){case t:case r:ne=!0}}if(ne)return ne=P,ce=ce(ne),P=ie===""?"."+Z(ne,0):ie,T(ce)?(re="",P!=null&&(re=P.replace(ee,"$&/")+"/"),M(ce,L,re,"",function(he){return he})):ce!=null&&(J(ce)&&(ce=b(ce,re+(!ce.key||ne&&ne.key===ce.key?"":(""+ce.key).replace(ee,"$&/")+"/")+P)),L.push(ce)),1;if(ne=0,ie=ie===""?".":ie+":",T(P))for(var Q=0;Q<P.length;Q++){te=P[Q];var oe=ie+Z(te,Q);ne+=M(te,L,re,oe,ce)}else if(oe=m(P),typeof oe=="function")for(P=oe.call(P),Q=0;!(te=P.next()).done;)te=te.value,oe=ie+Z(te,Q++),ne+=M(te,L,re,oe,ce);else if(te==="object")throw L=String(P),Error("Objects are not valid as a React child (found: "+(L==="[object Object]"?"object with keys {"+Object.keys(P).join(", ")+"}":L)+"). If you meant to render a collection of children, use an array instead.");return ne}function $(P,L,re){if(P==null)return P;var ie=[],ce=0;return M(P,ie,"","",function(te){return L.call(re,te,ce++)}),ie}function W(P){if(P._status===-1){var L=P._result;L=L(),L.then(function(re){(P._status===0||P._status===-1)&&(P._status=1,P._result=re)},function(re){(P._status===0||P._status===-1)&&(P._status=2,P._result=re)}),P._status===-1&&(P._status=0,P._result=L)}if(P._status===1)return P._result.default;throw P._result}var Y={current:null},D={transition:null},A={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:D,ReactCurrentOwner:O};function B(){throw Error("act(...) is not supported in production builds of React.")}return Ce.Children={map:$,forEach:function(P,L,re){$(P,function(){L.apply(this,arguments)},re)},count:function(P){var L=0;return $(P,function(){L++}),L},toArray:function(P){return $(P,function(L){return L})||[]},only:function(P){if(!J(P))throw Error("React.Children.only expected to receive a single React element child.");return P}},Ce.Component=N,Ce.Fragment=i,Ce.Profiler=a,Ce.PureComponent=j,Ce.StrictMode=l,Ce.Suspense=p,Ce.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=A,Ce.act=B,Ce.cloneElement=function(P,L,re){if(P==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+P+".");var ie=_({},P.props),ce=P.key,te=P.ref,ne=P._owner;if(L!=null){if(L.ref!==void 0&&(te=L.ref,ne=O.current),L.key!==void 0&&(ce=""+L.key),P.type&&P.type.defaultProps)var Q=P.type.defaultProps;for(oe in L)U.call(L,oe)&&!z.hasOwnProperty(oe)&&(ie[oe]=L[oe]===void 0&&Q!==void 0?Q[oe]:L[oe])}var oe=arguments.length-2;if(oe===1)ie.children=re;else if(1<oe){Q=Array(oe);for(var he=0;he<oe;he++)Q[he]=arguments[he+2];ie.children=Q}return{$$typeof:t,type:P.type,key:ce,ref:te,props:ie,_owner:ne}},Ce.createContext=function(P){return P={$$typeof:c,_currentValue:P,_currentValue2:P,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},P.Provider={$$typeof:u,_context:P},P.Consumer=P},Ce.createElement=V,Ce.createFactory=function(P){var L=V.bind(null,P);return L.type=P,L},Ce.createRef=function(){return{current:null}},Ce.forwardRef=function(P){return{$$typeof:d,render:P}},Ce.isValidElement=J,Ce.lazy=function(P){return{$$typeof:v,_payload:{_status:-1,_result:P},_init:W}},Ce.memo=function(P,L){return{$$typeof:g,type:P,compare:L===void 0?null:L}},Ce.startTransition=function(P){var L=D.transition;D.transition={};try{P()}finally{D.transition=L}},Ce.unstable_act=B,Ce.useCallback=function(P,L){return Y.current.useCallback(P,L)},Ce.useContext=function(P){return Y.current.useContext(P)},Ce.useDebugValue=function(){},Ce.useDeferredValue=function(P){return Y.current.useDeferredValue(P)},Ce.useEffect=function(P,L){return Y.current.useEffect(P,L)},Ce.useId=function(){return Y.current.useId()},Ce.useImperativeHandle=function(P,L,re){return Y.current.useImperativeHandle(P,L,re)},Ce.useInsertionEffect=function(P,L){return Y.current.useInsertionEffect(P,L)},Ce.useLayoutEffect=function(P,L){return Y.current.useLayoutEffect(P,L)},Ce.useMemo=function(P,L){return Y.current.useMemo(P,L)},Ce.useReducer=function(P,L,re){return Y.current.useReducer(P,L,re)},Ce.useRef=function(P){return Y.current.useRef(P)},Ce.useState=function(P){return Y.current.useState(P)},Ce.useSyncExternalStore=function(P,L,re){return Y.current.useSyncExternalStore(P,L,re)},Ce.useTransition=function(){return Y.current.useTransition()},Ce.version="18.3.1",Ce}var Wd;function vi(){return Wd||(Wd=1,_u.exports=H0()),_u.exports}/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Yd;function B0(){if(Yd)return ti;Yd=1;var t=vi(),r=Symbol.for("react.element"),i=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};function c(d,p,g){var v,y={},m=null,w=null;g!==void 0&&(m=""+g),p.key!==void 0&&(m=""+p.key),p.ref!==void 0&&(w=p.ref);for(v in p)l.call(p,v)&&!u.hasOwnProperty(v)&&(y[v]=p[v]);if(d&&d.defaultProps)for(v in p=d.defaultProps,p)y[v]===void 0&&(y[v]=p[v]);return{$$typeof:r,type:d,key:m,ref:w,props:y,_owner:a.current}}return ti.Fragment=i,ti.jsx=c,ti.jsxs=c,ti}var Xd;function V0(){return Xd||(Xd=1,wu.exports=B0()),wu.exports}var S=V0(),F=vi();const hp=dp(F);var Vs={},Su={exports:{}},yt={},ku={exports:{}},Eu={};/**
+ * @license React
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Kd;function U0(){return Kd||(Kd=1,(function(t){function r(D,A){var B=D.length;D.push(A);e:for(;0<B;){var P=B-1>>>1,L=D[P];if(0<a(L,A))D[P]=A,D[B]=L,B=P;else break e}}function i(D){return D.length===0?null:D[0]}function l(D){if(D.length===0)return null;var A=D[0],B=D.pop();if(B!==A){D[0]=B;e:for(var P=0,L=D.length,re=L>>>1;P<re;){var ie=2*(P+1)-1,ce=D[ie],te=ie+1,ne=D[te];if(0>a(ce,B))te<L&&0>a(ne,ce)?(D[P]=ne,D[te]=B,P=te):(D[P]=ce,D[ie]=B,P=ie);else if(te<L&&0>a(ne,B))D[P]=ne,D[te]=B,P=te;else break e}}return A}function a(D,A){var B=D.sortIndex-A.sortIndex;return B!==0?B:D.id-A.id}if(typeof performance=="object"&&typeof performance.now=="function"){var u=performance;t.unstable_now=function(){return u.now()}}else{var c=Date,d=c.now();t.unstable_now=function(){return c.now()-d}}var p=[],g=[],v=1,y=null,m=3,w=!1,_=!1,C=!1,N=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(D){for(var A=i(g);A!==null;){if(A.callback===null)l(g);else if(A.startTime<=D)l(g),A.sortIndex=A.expirationTime,r(p,A);else break;A=i(g)}}function T(D){if(C=!1,k(D),!_)if(i(p)!==null)_=!0,W(U);else{var A=i(g);A!==null&&Y(T,A.startTime-D)}}function U(D,A){_=!1,C&&(C=!1,E(V),V=-1),w=!0;var B=m;try{for(k(A),y=i(p);y!==null&&(!(y.expirationTime>A)||D&&!G());){var P=y.callback;if(typeof P=="function"){y.callback=null,m=y.priorityLevel;var L=P(y.expirationTime<=A);A=t.unstable_now(),typeof L=="function"?y.callback=L:y===i(p)&&l(p),k(A)}else l(p);y=i(p)}if(y!==null)var re=!0;else{var ie=i(g);ie!==null&&Y(T,ie.startTime-A),re=!1}return re}finally{y=null,m=B,w=!1}}var O=!1,z=null,V=-1,b=5,J=-1;function G(){return!(t.unstable_now()-J<b)}function ee(){if(z!==null){var D=t.unstable_now();J=D;var A=!0;try{A=z(!0,D)}finally{A?Z():(O=!1,z=null)}}else O=!1}var Z;if(typeof j=="function")Z=function(){j(ee)};else if(typeof MessageChannel<"u"){var M=new MessageChannel,$=M.port2;M.port1.onmessage=ee,Z=function(){$.postMessage(null)}}else Z=function(){N(ee,0)};function W(D){z=D,O||(O=!0,Z())}function Y(D,A){V=N(function(){D(t.unstable_now())},A)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(D){D.callback=null},t.unstable_continueExecution=function(){_||w||(_=!0,W(U))},t.unstable_forceFrameRate=function(D){0>D||125<D?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<D?Math.floor(1e3/D):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_getFirstCallbackNode=function(){return i(p)},t.unstable_next=function(D){switch(m){case 1:case 2:case 3:var A=3;break;default:A=m}var B=m;m=A;try{return D()}finally{m=B}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(D,A){switch(D){case 1:case 2:case 3:case 4:case 5:break;default:D=3}var B=m;m=D;try{return A()}finally{m=B}},t.unstable_scheduleCallback=function(D,A,B){var P=t.unstable_now();switch(typeof B=="object"&&B!==null?(B=B.delay,B=typeof B=="number"&&0<B?P+B:P):B=P,D){case 1:var L=-1;break;case 2:L=250;break;case 5:L=1073741823;break;case 4:L=1e4;break;default:L=5e3}return L=B+L,D={id:v++,callback:A,priorityLevel:D,startTime:B,expirationTime:L,sortIndex:-1},B>P?(D.sortIndex=B,r(g,D),i(p)===null&&D===i(g)&&(C?(E(V),V=-1):C=!0,Y(T,B-P))):(D.sortIndex=L,r(p,D),_||w||(_=!0,W(U))),D},t.unstable_shouldYield=G,t.unstable_wrapCallback=function(D){var A=m;return function(){var B=m;m=A;try{return D.apply(this,arguments)}finally{m=B}}}})(Eu)),Eu}var Qd;function W0(){return Qd||(Qd=1,ku.exports=U0()),ku.exports}/**
+ * @license React
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Gd;function Y0(){if(Gd)return yt;Gd=1;var t=vi(),r=W0();function i(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o<arguments.length;o++)n+="&args[]="+encodeURIComponent(arguments[o]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var l=new Set,a={};function u(e,n){c(e,n),c(e+"Capture",n)}function c(e,n){for(a[e]=n,e=0;e<n.length;e++)l.add(n[e])}var d=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),p=Object.prototype.hasOwnProperty,g=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,v={},y={};function m(e){return p.call(y,e)?!0:p.call(v,e)?!1:g.test(e)?y[e]=!0:(v[e]=!0,!1)}function w(e,n,o,s){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return s?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function _(e,n,o,s){if(n===null||typeof n>"u"||w(e,n,o,s))return!0;if(s)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function C(e,n,o,s,f,h,x){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=s,this.attributeNamespace=f,this.mustUseProperty=o,this.propertyName=e,this.type=n,this.sanitizeURL=h,this.removeEmptyString=x}var N={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){N[e]=new C(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];N[n]=new C(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){N[e]=new C(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){N[e]=new C(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){N[e]=new C(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){N[e]=new C(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){N[e]=new C(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){N[e]=new C(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){N[e]=new C(e,5,!1,e.toLowerCase(),null,!1,!1)});var E=/[\-:]([a-z])/g;function j(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(E,j);N[n]=new C(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(E,j);N[n]=new C(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(E,j);N[n]=new C(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){N[e]=new C(e,1,!1,e.toLowerCase(),null,!1,!1)}),N.xlinkHref=new C("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){N[e]=new C(e,1,!1,e.toLowerCase(),null,!0,!0)});function k(e,n,o,s){var f=N.hasOwnProperty(n)?N[n]:null;(f!==null?f.type!==0:s||!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(_(n,o,f,s)&&(o=null),s||f===null?m(n)&&(o===null?e.removeAttribute(n):e.setAttribute(n,""+o)):f.mustUseProperty?e[f.propertyName]=o===null?f.type===3?!1:"":o:(n=f.attributeName,s=f.attributeNamespace,o===null?e.removeAttribute(n):(f=f.type,o=f===3||f===4&&o===!0?"":""+o,s?e.setAttributeNS(s,n,o):e.setAttribute(n,o))))}var T=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,U=Symbol.for("react.element"),O=Symbol.for("react.portal"),z=Symbol.for("react.fragment"),V=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),J=Symbol.for("react.provider"),G=Symbol.for("react.context"),ee=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),$=Symbol.for("react.memo"),W=Symbol.for("react.lazy"),Y=Symbol.for("react.offscreen"),D=Symbol.iterator;function A(e){return e===null||typeof e!="object"?null:(e=D&&e[D]||e["@@iterator"],typeof e=="function"?e:null)}var B=Object.assign,P;function L(e){if(P===void 0)try{throw Error()}catch(o){var n=o.stack.trim().match(/\n( *(at )?)/);P=n&&n[1]||""}return`
+`+P+e}var re=!1;function ie(e,n){if(!e||re)return"";re=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(n,[])}catch(q){var s=q}Reflect.construct(e,[],n)}else{try{n.call()}catch(q){s=q}e.call(n.prototype)}else{try{throw Error()}catch(q){s=q}e()}}catch(q){if(q&&s&&typeof q.stack=="string"){for(var f=q.stack.split(`
+`),h=s.stack.split(`
+`),x=f.length-1,I=h.length-1;1<=x&&0<=I&&f[x]!==h[I];)I--;for(;1<=x&&0<=I;x--,I--)if(f[x]!==h[I]){if(x!==1||I!==1)do if(x--,I--,0>I||f[x]!==h[I]){var R=`
+`+f[x].replace(" at new "," at ");return e.displayName&&R.includes("<anonymous>")&&(R=R.replace("<anonymous>",e.displayName)),R}while(1<=x&&0<=I);break}}}finally{re=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?L(e):""}function ce(e){switch(e.tag){case 5:return L(e.type);case 16:return L("Lazy");case 13:return L("Suspense");case 19:return L("SuspenseList");case 0:case 2:case 15:return e=ie(e.type,!1),e;case 11:return e=ie(e.type.render,!1),e;case 1:return e=ie(e.type,!0),e;default:return""}}function te(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case z:return"Fragment";case O:return"Portal";case b:return"Profiler";case V:return"StrictMode";case Z:return"Suspense";case M:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case G:return(e.displayName||"Context")+".Consumer";case J:return(e._context.displayName||"Context")+".Provider";case ee:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case $:return n=e.displayName||null,n!==null?n:te(e.type)||"Memo";case W:n=e._payload,e=e._init;try{return te(e(n))}catch{}}return null}function ne(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return te(n);case 8:return n===V?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function oe(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function he(e){var n=oe(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),s=""+e[n];if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var f=o.get,h=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return f.call(this)},set:function(x){s=""+x,h.call(this,x)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return s},setValue:function(x){s=""+x},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function xe(e){e._valueTracker||(e._valueTracker=he(e))}function ye(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var o=n.getValue(),s="";return e&&(s=oe(e)?e.checked?"true":"false":e.value),e=s,e!==o?(n.setValue(e),!0):!1}function we(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ke(e,n){var o=n.checked;return B({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function Ne(e,n){var o=n.defaultValue==null?"":n.defaultValue,s=n.checked!=null?n.checked:n.defaultChecked;o=Q(n.value!=null?n.value:o),e._wrapperState={initialChecked:s,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Me(e,n){n=n.checked,n!=null&&k(e,"checked",n,!1)}function Ie(e,n){Me(e,n);var o=Q(n.value),s=n.type;if(o!=null)s==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?ct(e,n.type,o):n.hasOwnProperty("defaultValue")&&ct(e,n.type,Q(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function lt(e,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var s=n.type;if(!(s!=="submit"&&s!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,o||n===e.value||(e.value=n),e.defaultValue=n}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function ct(e,n,o){(n!=="number"||we(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var tt=Array.isArray;function nt(e,n,o,s){if(e=e.options,n){n={};for(var f=0;f<o.length;f++)n["$"+o[f]]=!0;for(o=0;o<e.length;o++)f=n.hasOwnProperty("$"+e[o].value),e[o].selected!==f&&(e[o].selected=f),f&&s&&(e[o].defaultSelected=!0)}else{for(o=""+Q(o),n=null,f=0;f<e.length;f++){if(e[f].value===o){e[f].selected=!0,s&&(e[f].defaultSelected=!0);return}n!==null||e[f].disabled||(n=e[f])}n!==null&&(n.selected=!0)}}function ln(e,n){if(n.dangerouslySetInnerHTML!=null)throw Error(i(91));return B({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Qt(e,n){var o=n.value;if(o==null){if(o=n.children,n=n.defaultValue,o!=null){if(n!=null)throw Error(i(92));if(tt(o)){if(1<o.length)throw Error(i(93));o=o[0]}n=o}n==null&&(n=""),o=n}e._wrapperState={initialValue:Q(o)}}function Gt(e,n){var o=Q(n.value),s=Q(n.defaultValue);o!=null&&(o=""+o,o!==e.value&&(e.value=o),n.defaultValue==null&&e.defaultValue!==o&&(e.defaultValue=o)),s!=null&&(e.defaultValue=""+s)}function ft(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}function Pt(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function xt(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?Pt(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var jt,Er=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(n,o,s,f){MSApp.execUnsafeLocalFunction(function(){return e(n,o,s,f)})}:e})(function(e,n){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=n;else{for(jt=jt||document.createElement("div"),jt.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=jt.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function an(e,n){if(n){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=n;return}}e.textContent=n}var Qn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Pl=["Webkit","ms","Moz","O"];Object.keys(Qn).forEach(function(e){Pl.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Qn[n]=Qn[e]})});function Ci(e,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||Qn.hasOwnProperty(e)&&Qn[e]?(""+n).trim():n+"px"}function Mi(e,n){e=e.style;for(var o in n)if(n.hasOwnProperty(o)){var s=o.indexOf("--")===0,f=Ci(o,n[o],s);o==="float"&&(o="cssFloat"),s?e.setProperty(o,f):e[o]=f}}var jl=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fo(e,n){if(n){if(jl[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(i(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(i(61))}if(n.style!=null&&typeof n.style!="object")throw Error(i(62))}}function ho(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var po=null;function go(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var mo=null,_n=null,Sn=null;function Pi(e){if(e=Fo(e)){if(typeof mo!="function")throw Error(i(280));var n=e.stateNode;n&&(n=os(n),mo(e.stateNode,e.type,n))}}function ji(e){_n?Sn?Sn.push(e):Sn=[e]:_n=e}function Ti(){if(_n){var e=_n,n=Sn;if(Sn=_n=null,Pi(e),n)for(e=0;e<n.length;e++)Pi(n[e])}}function Ii(e,n){return e(n)}function zi(){}var yo=!1;function Li(e,n,o){if(yo)return e(n,o);yo=!0;try{return Ii(e,n,o)}finally{yo=!1,(_n!==null||Sn!==null)&&(zi(),Ti())}}function Gn(e,n){var o=e.stateNode;if(o===null)return null;var s=os(o);if(s===null)return null;o=s[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(s=!s.disabled)||(e=e.type,s=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!s;break e;default:e=!1}if(e)return null;if(o&&typeof o!="function")throw Error(i(231,n,typeof o));return o}var vo=!1;if(d)try{var qn={};Object.defineProperty(qn,"passive",{get:function(){vo=!0}}),window.addEventListener("test",qn,qn),window.removeEventListener("test",qn,qn)}catch{vo=!1}function Tl(e,n,o,s,f,h,x,I,R){var q=Array.prototype.slice.call(arguments,3);try{n.apply(o,q)}catch(le){this.onError(le)}}var Zn=!1,Nr=null,Cr=!1,xo=null,Il={onError:function(e){Zn=!0,Nr=e}};function zl(e,n,o,s,f,h,x,I,R){Zn=!1,Nr=null,Tl.apply(Il,arguments)}function Ll(e,n,o,s,f,h,x,I,R){if(zl.apply(this,arguments),Zn){if(Zn){var q=Nr;Zn=!1,Nr=null}else throw Error(i(198));Cr||(Cr=!0,xo=q)}}function qt(e){var n=e,o=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(o=n.return),e=n.return;while(e)}return n.tag===3?o:null}function wo(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function _o(e){if(qt(e)!==e)throw Error(i(188))}function Rl(e){var n=e.alternate;if(!n){if(n=qt(e),n===null)throw Error(i(188));return n!==e?null:e}for(var o=e,s=n;;){var f=o.return;if(f===null)break;var h=f.alternate;if(h===null){if(s=f.return,s!==null){o=s;continue}break}if(f.child===h.child){for(h=f.child;h;){if(h===o)return _o(f),e;if(h===s)return _o(f),n;h=h.sibling}throw Error(i(188))}if(o.return!==s.return)o=f,s=h;else{for(var x=!1,I=f.child;I;){if(I===o){x=!0,o=f,s=h;break}if(I===s){x=!0,s=f,o=h;break}I=I.sibling}if(!x){for(I=h.child;I;){if(I===o){x=!0,o=h,s=f;break}if(I===s){x=!0,s=h,o=f;break}I=I.sibling}if(!x)throw Error(i(189))}}if(o.alternate!==s)throw Error(i(190))}if(o.tag!==3)throw Error(i(188));return o.stateNode.current===o?e:n}function Ri(e){return e=Rl(e),e!==null?Ai(e):null}function Ai(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var n=Ai(e);if(n!==null)return n;e=e.sibling}return null}var Di=r.unstable_scheduleCallback,$i=r.unstable_cancelCallback,Al=r.unstable_shouldYield,bi=r.unstable_requestPaint,be=r.unstable_now,Dl=r.unstable_getCurrentPriorityLevel,So=r.unstable_ImmediatePriority,Oi=r.unstable_UserBlockingPriority,Mr=r.unstable_NormalPriority,$l=r.unstable_LowPriority,Fi=r.unstable_IdlePriority,Pr=null,wt=null;function bl(e){if(wt&&typeof wt.onCommitFiberRoot=="function")try{wt.onCommitFiberRoot(Pr,e,void 0,(e.current.flags&128)===128)}catch{}}var _t=Math.clz32?Math.clz32:Hl,Ol=Math.log,Fl=Math.LN2;function Hl(e){return e>>>=0,e===0?32:31-(Ol(e)/Fl|0)|0}var jr=64,Tr=4194304;function Jn(e){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:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function un(e,n){var o=e.pendingLanes;if(o===0)return 0;var s=0,f=e.suspendedLanes,h=e.pingedLanes,x=o&268435455;if(x!==0){var I=x&~f;I!==0?s=Jn(I):(h&=x,h!==0&&(s=Jn(h)))}else x=o&~f,x!==0?s=Jn(x):h!==0&&(s=Jn(h));if(s===0)return 0;if(n!==0&&n!==s&&(n&f)===0&&(f=s&-s,h=n&-n,f>=h||f===16&&(h&4194240)!==0))return n;if((s&4)!==0&&(s|=o&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=s;0<n;)o=31-_t(n),f=1<<o,s|=e[o],n&=~f;return s}function Bl(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Hi(e,n){for(var o=e.suspendedLanes,s=e.pingedLanes,f=e.expirationTimes,h=e.pendingLanes;0<h;){var x=31-_t(h),I=1<<x,R=f[x];R===-1?((I&o)===0||(I&s)!==0)&&(f[x]=Bl(I,n)):R<=n&&(e.expiredLanes|=I),h&=~I}}function ko(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Bi(){var e=jr;return jr<<=1,(jr&4194240)===0&&(jr=64),e}function er(e){for(var n=[],o=0;31>o;o++)n.push(e);return n}function tr(e,n,o){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-_t(n),e[n]=o}function Vl(e,n){var o=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<o;){var f=31-_t(o),h=1<<f;n[f]=0,s[f]=-1,e[f]=-1,o&=~h}}function Ir(e,n){var o=e.entangledLanes|=n;for(e=e.entanglements;o;){var s=31-_t(o),f=1<<s;f&n|e[s]&n&&(e[s]|=n),o&=~f}}var ze=0;function _c(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var Sc,Ul,kc,Ec,Nc,Wl=!1,Vi=[],kn=null,En=null,Nn=null,Eo=new Map,No=new Map,Cn=[],um="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Cc(e,n){switch(e){case"focusin":case"focusout":kn=null;break;case"dragenter":case"dragleave":En=null;break;case"mouseover":case"mouseout":Nn=null;break;case"pointerover":case"pointerout":Eo.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":No.delete(n.pointerId)}}function Co(e,n,o,s,f,h){return e===null||e.nativeEvent!==h?(e={blockedOn:n,domEventName:o,eventSystemFlags:s,nativeEvent:h,targetContainers:[f]},n!==null&&(n=Fo(n),n!==null&&Ul(n)),e):(e.eventSystemFlags|=s,n=e.targetContainers,f!==null&&n.indexOf(f)===-1&&n.push(f),e)}function cm(e,n,o,s,f){switch(n){case"focusin":return kn=Co(kn,e,n,o,s,f),!0;case"dragenter":return En=Co(En,e,n,o,s,f),!0;case"mouseover":return Nn=Co(Nn,e,n,o,s,f),!0;case"pointerover":var h=f.pointerId;return Eo.set(h,Co(Eo.get(h)||null,e,n,o,s,f)),!0;case"gotpointercapture":return h=f.pointerId,No.set(h,Co(No.get(h)||null,e,n,o,s,f)),!0}return!1}function Mc(e){var n=nr(e.target);if(n!==null){var o=qt(n);if(o!==null){if(n=o.tag,n===13){if(n=wo(o),n!==null){e.blockedOn=n,Nc(e.priority,function(){kc(o)});return}}else if(n===3&&o.stateNode.current.memoizedState.isDehydrated){e.blockedOn=o.tag===3?o.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ui(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var o=Xl(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(o===null){o=e.nativeEvent;var s=new o.constructor(o.type,o);po=s,o.target.dispatchEvent(s),po=null}else return n=Fo(o),n!==null&&Ul(n),e.blockedOn=o,!1;n.shift()}return!0}function Pc(e,n,o){Ui(e)&&o.delete(n)}function fm(){Wl=!1,kn!==null&&Ui(kn)&&(kn=null),En!==null&&Ui(En)&&(En=null),Nn!==null&&Ui(Nn)&&(Nn=null),Eo.forEach(Pc),No.forEach(Pc)}function Mo(e,n){e.blockedOn===n&&(e.blockedOn=null,Wl||(Wl=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,fm)))}function Po(e){function n(f){return Mo(f,e)}if(0<Vi.length){Mo(Vi[0],e);for(var o=1;o<Vi.length;o++){var s=Vi[o];s.blockedOn===e&&(s.blockedOn=null)}}for(kn!==null&&Mo(kn,e),En!==null&&Mo(En,e),Nn!==null&&Mo(Nn,e),Eo.forEach(n),No.forEach(n),o=0;o<Cn.length;o++)s=Cn[o],s.blockedOn===e&&(s.blockedOn=null);for(;0<Cn.length&&(o=Cn[0],o.blockedOn===null);)Mc(o),o.blockedOn===null&&Cn.shift()}var zr=T.ReactCurrentBatchConfig,Wi=!0;function dm(e,n,o,s){var f=ze,h=zr.transition;zr.transition=null;try{ze=1,Yl(e,n,o,s)}finally{ze=f,zr.transition=h}}function hm(e,n,o,s){var f=ze,h=zr.transition;zr.transition=null;try{ze=4,Yl(e,n,o,s)}finally{ze=f,zr.transition=h}}function Yl(e,n,o,s){if(Wi){var f=Xl(e,n,o,s);if(f===null)ca(e,n,s,Yi,o),Cc(e,s);else if(cm(f,e,n,o,s))s.stopPropagation();else if(Cc(e,s),n&4&&-1<um.indexOf(e)){for(;f!==null;){var h=Fo(f);if(h!==null&&Sc(h),h=Xl(e,n,o,s),h===null&&ca(e,n,s,Yi,o),h===f)break;f=h}f!==null&&s.stopPropagation()}else ca(e,n,s,null,o)}}var Yi=null;function Xl(e,n,o,s){if(Yi=null,e=go(s),e=nr(e),e!==null)if(n=qt(e),n===null)e=null;else if(o=n.tag,o===13){if(e=wo(n),e!==null)return e;e=null}else if(o===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Yi=e,null}function jc(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Dl()){case So:return 1;case Oi:return 4;case Mr:case $l:return 16;case Fi:return 536870912;default:return 16}default:return 16}}var Mn=null,Kl=null,Xi=null;function Tc(){if(Xi)return Xi;var e,n=Kl,o=n.length,s,f="value"in Mn?Mn.value:Mn.textContent,h=f.length;for(e=0;e<o&&n[e]===f[e];e++);var x=o-e;for(s=1;s<=x&&n[o-s]===f[h-s];s++);return Xi=f.slice(e,1<s?1-s:void 0)}function Ki(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function Qi(){return!0}function Ic(){return!1}function St(e){function n(o,s,f,h,x){this._reactName=o,this._targetInst=f,this.type=s,this.nativeEvent=h,this.target=x,this.currentTarget=null;for(var I in e)e.hasOwnProperty(I)&&(o=e[I],this[I]=o?o(h):h[I]);return this.isDefaultPrevented=(h.defaultPrevented!=null?h.defaultPrevented:h.returnValue===!1)?Qi:Ic,this.isPropagationStopped=Ic,this}return B(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var o=this.nativeEvent;o&&(o.preventDefault?o.preventDefault():typeof o.returnValue!="unknown"&&(o.returnValue=!1),this.isDefaultPrevented=Qi)},stopPropagation:function(){var o=this.nativeEvent;o&&(o.stopPropagation?o.stopPropagation():typeof o.cancelBubble!="unknown"&&(o.cancelBubble=!0),this.isPropagationStopped=Qi)},persist:function(){},isPersistent:Qi}),n}var Lr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Ql=St(Lr),jo=B({},Lr,{view:0,detail:0}),pm=St(jo),Gl,ql,To,Gi=B({},jo,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Jl,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==To&&(To&&e.type==="mousemove"?(Gl=e.screenX-To.screenX,ql=e.screenY-To.screenY):ql=Gl=0,To=e),Gl)},movementY:function(e){return"movementY"in e?e.movementY:ql}}),zc=St(Gi),gm=B({},Gi,{dataTransfer:0}),mm=St(gm),ym=B({},jo,{relatedTarget:0}),Zl=St(ym),vm=B({},Lr,{animationName:0,elapsedTime:0,pseudoElement:0}),xm=St(vm),wm=B({},Lr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),_m=St(wm),Sm=B({},Lr,{data:0}),Lc=St(Sm),km={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Em={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Nm={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cm(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=Nm[e])?!!n[e]:!1}function Jl(){return Cm}var Mm=B({},jo,{key:function(e){if(e.key){var n=km[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=Ki(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Em[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Jl,charCode:function(e){return e.type==="keypress"?Ki(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Ki(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Pm=St(Mm),jm=B({},Gi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Rc=St(jm),Tm=B({},jo,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Jl}),Im=St(Tm),zm=B({},Lr,{propertyName:0,elapsedTime:0,pseudoElement:0}),Lm=St(zm),Rm=B({},Gi,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Am=St(Rm),Dm=[9,13,27,32],ea=d&&"CompositionEvent"in window,Io=null;d&&"documentMode"in document&&(Io=document.documentMode);var $m=d&&"TextEvent"in window&&!Io,Ac=d&&(!ea||Io&&8<Io&&11>=Io),Dc=" ",$c=!1;function bc(e,n){switch(e){case"keyup":return Dm.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Oc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Rr=!1;function bm(e,n){switch(e){case"compositionend":return Oc(n);case"keypress":return n.which!==32?null:($c=!0,Dc);case"textInput":return e=n.data,e===Dc&&$c?null:e;default:return null}}function Om(e,n){if(Rr)return e==="compositionend"||!ea&&bc(e,n)?(e=Tc(),Xi=Kl=Mn=null,Rr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return Ac&&n.locale!=="ko"?null:n.data;default:return null}}var Fm={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Fc(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!Fm[e.type]:n==="textarea"}function Hc(e,n,o,s){ji(s),n=ts(n,"onChange"),0<n.length&&(o=new Ql("onChange","change",null,o,s),e.push({event:o,listeners:n}))}var zo=null,Lo=null;function Hm(e){sf(e,0)}function qi(e){var n=Or(e);if(ye(n))return e}function Bm(e,n){if(e==="change")return n}var Bc=!1;if(d){var ta;if(d){var na="oninput"in document;if(!na){var Vc=document.createElement("div");Vc.setAttribute("oninput","return;"),na=typeof Vc.oninput=="function"}ta=na}else ta=!1;Bc=ta&&(!document.documentMode||9<document.documentMode)}function Uc(){zo&&(zo.detachEvent("onpropertychange",Wc),Lo=zo=null)}function Wc(e){if(e.propertyName==="value"&&qi(Lo)){var n=[];Hc(n,Lo,e,go(e)),Li(Hm,n)}}function Vm(e,n,o){e==="focusin"?(Uc(),zo=n,Lo=o,zo.attachEvent("onpropertychange",Wc)):e==="focusout"&&Uc()}function Um(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return qi(Lo)}function Wm(e,n){if(e==="click")return qi(n)}function Ym(e,n){if(e==="input"||e==="change")return qi(n)}function Xm(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Dt=typeof Object.is=="function"?Object.is:Xm;function Ro(e,n){if(Dt(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var o=Object.keys(e),s=Object.keys(n);if(o.length!==s.length)return!1;for(s=0;s<o.length;s++){var f=o[s];if(!p.call(n,f)||!Dt(e[f],n[f]))return!1}return!0}function Yc(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Xc(e,n){var o=Yc(e);e=0;for(var s;o;){if(o.nodeType===3){if(s=e+o.textContent.length,e<=n&&s>=n)return{node:o,offset:n-e};e=s}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=Yc(o)}}function Kc(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Kc(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Qc(){for(var e=window,n=we();n instanceof e.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)e=n.contentWindow;else break;n=we(e.document)}return n}function ra(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Km(e){var n=Qc(),o=e.focusedElem,s=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&Kc(o.ownerDocument.documentElement,o)){if(s!==null&&ra(o)){if(n=s.start,e=s.end,e===void 0&&(e=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(e,o.value.length);else if(e=(n=o.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var f=o.textContent.length,h=Math.min(s.start,f);s=s.end===void 0?h:Math.min(s.end,f),!e.extend&&h>s&&(f=s,s=h,h=f),f=Xc(o,h);var x=Xc(o,s);f&&x&&(e.rangeCount!==1||e.anchorNode!==f.node||e.anchorOffset!==f.offset||e.focusNode!==x.node||e.focusOffset!==x.offset)&&(n=n.createRange(),n.setStart(f.node,f.offset),e.removeAllRanges(),h>s?(e.addRange(n),e.extend(x.node,x.offset)):(n.setEnd(x.node,x.offset),e.addRange(n)))}}for(n=[],e=o;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o<n.length;o++)e=n[o],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Qm=d&&"documentMode"in document&&11>=document.documentMode,Ar=null,oa=null,Ao=null,ia=!1;function Gc(e,n,o){var s=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;ia||Ar==null||Ar!==we(s)||(s=Ar,"selectionStart"in s&&ra(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Ao&&Ro(Ao,s)||(Ao=s,s=ts(oa,"onSelect"),0<s.length&&(n=new Ql("onSelect","select",null,n,o),e.push({event:n,listeners:s}),n.target=Ar)))}function Zi(e,n){var o={};return o[e.toLowerCase()]=n.toLowerCase(),o["Webkit"+e]="webkit"+n,o["Moz"+e]="moz"+n,o}var Dr={animationend:Zi("Animation","AnimationEnd"),animationiteration:Zi("Animation","AnimationIteration"),animationstart:Zi("Animation","AnimationStart"),transitionend:Zi("Transition","TransitionEnd")},sa={},qc={};d&&(qc=document.createElement("div").style,"AnimationEvent"in window||(delete Dr.animationend.animation,delete Dr.animationiteration.animation,delete Dr.animationstart.animation),"TransitionEvent"in window||delete Dr.transitionend.transition);function Ji(e){if(sa[e])return sa[e];if(!Dr[e])return e;var n=Dr[e],o;for(o in n)if(n.hasOwnProperty(o)&&o in qc)return sa[e]=n[o];return e}var Zc=Ji("animationend"),Jc=Ji("animationiteration"),ef=Ji("animationstart"),tf=Ji("transitionend"),nf=new Map,rf="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Pn(e,n){nf.set(e,n),u(n,[e])}for(var la=0;la<rf.length;la++){var aa=rf[la],Gm=aa.toLowerCase(),qm=aa[0].toUpperCase()+aa.slice(1);Pn(Gm,"on"+qm)}Pn(Zc,"onAnimationEnd"),Pn(Jc,"onAnimationIteration"),Pn(ef,"onAnimationStart"),Pn("dblclick","onDoubleClick"),Pn("focusin","onFocus"),Pn("focusout","onBlur"),Pn(tf,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Do="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Zm=new Set("cancel close invalid load scroll toggle".split(" ").concat(Do));function of(e,n,o){var s=e.type||"unknown-event";e.currentTarget=o,Ll(s,n,void 0,e),e.currentTarget=null}function sf(e,n){n=(n&4)!==0;for(var o=0;o<e.length;o++){var s=e[o],f=s.event;s=s.listeners;e:{var h=void 0;if(n)for(var x=s.length-1;0<=x;x--){var I=s[x],R=I.instance,q=I.currentTarget;if(I=I.listener,R!==h&&f.isPropagationStopped())break e;of(f,I,q),h=R}else for(x=0;x<s.length;x++){if(I=s[x],R=I.instance,q=I.currentTarget,I=I.listener,R!==h&&f.isPropagationStopped())break e;of(f,I,q),h=R}}}if(Cr)throw e=xo,Cr=!1,xo=null,e}function Re(e,n){var o=n[ma];o===void 0&&(o=n[ma]=new Set);var s=e+"__bubble";o.has(s)||(lf(n,e,2,!1),o.add(s))}function ua(e,n,o){var s=0;n&&(s|=4),lf(o,e,s,n)}var es="_reactListening"+Math.random().toString(36).slice(2);function $o(e){if(!e[es]){e[es]=!0,l.forEach(function(o){o!=="selectionchange"&&(Zm.has(o)||ua(o,!1,e),ua(o,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[es]||(n[es]=!0,ua("selectionchange",!1,n))}}function lf(e,n,o,s){switch(jc(n)){case 1:var f=dm;break;case 4:f=hm;break;default:f=Yl}o=f.bind(null,n,o,e),f=void 0,!vo||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(f=!0),s?f!==void 0?e.addEventListener(n,o,{capture:!0,passive:f}):e.addEventListener(n,o,!0):f!==void 0?e.addEventListener(n,o,{passive:f}):e.addEventListener(n,o,!1)}function ca(e,n,o,s,f){var h=s;if((n&1)===0&&(n&2)===0&&s!==null)e:for(;;){if(s===null)return;var x=s.tag;if(x===3||x===4){var I=s.stateNode.containerInfo;if(I===f||I.nodeType===8&&I.parentNode===f)break;if(x===4)for(x=s.return;x!==null;){var R=x.tag;if((R===3||R===4)&&(R=x.stateNode.containerInfo,R===f||R.nodeType===8&&R.parentNode===f))return;x=x.return}for(;I!==null;){if(x=nr(I),x===null)return;if(R=x.tag,R===5||R===6){s=h=x;continue e}I=I.parentNode}}s=s.return}Li(function(){var q=h,le=go(o),ae=[];e:{var se=nf.get(e);if(se!==void 0){var fe=Ql,pe=e;switch(e){case"keypress":if(Ki(o)===0)break e;case"keydown":case"keyup":fe=Pm;break;case"focusin":pe="focus",fe=Zl;break;case"focusout":pe="blur",fe=Zl;break;case"beforeblur":case"afterblur":fe=Zl;break;case"click":if(o.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":fe=zc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":fe=mm;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":fe=Im;break;case Zc:case Jc:case ef:fe=xm;break;case tf:fe=Lm;break;case"scroll":fe=pm;break;case"wheel":fe=Am;break;case"copy":case"cut":case"paste":fe=_m;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":fe=Rc}var ge=(n&4)!==0,Ue=!ge&&e==="scroll",X=ge?se!==null?se+"Capture":null:se;ge=[];for(var H=q,K;H!==null;){K=H;var ue=K.stateNode;if(K.tag===5&&ue!==null&&(K=ue,X!==null&&(ue=Gn(H,X),ue!=null&&ge.push(bo(H,ue,K)))),Ue)break;H=H.return}0<ge.length&&(se=new fe(se,pe,null,o,le),ae.push({event:se,listeners:ge}))}}if((n&7)===0){e:{if(se=e==="mouseover"||e==="pointerover",fe=e==="mouseout"||e==="pointerout",se&&o!==po&&(pe=o.relatedTarget||o.fromElement)&&(nr(pe)||pe[cn]))break e;if((fe||se)&&(se=le.window===le?le:(se=le.ownerDocument)?se.defaultView||se.parentWindow:window,fe?(pe=o.relatedTarget||o.toElement,fe=q,pe=pe?nr(pe):null,pe!==null&&(Ue=qt(pe),pe!==Ue||pe.tag!==5&&pe.tag!==6)&&(pe=null)):(fe=null,pe=q),fe!==pe)){if(ge=zc,ue="onMouseLeave",X="onMouseEnter",H="mouse",(e==="pointerout"||e==="pointerover")&&(ge=Rc,ue="onPointerLeave",X="onPointerEnter",H="pointer"),Ue=fe==null?se:Or(fe),K=pe==null?se:Or(pe),se=new ge(ue,H+"leave",fe,o,le),se.target=Ue,se.relatedTarget=K,ue=null,nr(le)===q&&(ge=new ge(X,H+"enter",pe,o,le),ge.target=K,ge.relatedTarget=Ue,ue=ge),Ue=ue,fe&&pe)t:{for(ge=fe,X=pe,H=0,K=ge;K;K=$r(K))H++;for(K=0,ue=X;ue;ue=$r(ue))K++;for(;0<H-K;)ge=$r(ge),H--;for(;0<K-H;)X=$r(X),K--;for(;H--;){if(ge===X||X!==null&&ge===X.alternate)break t;ge=$r(ge),X=$r(X)}ge=null}else ge=null;fe!==null&&af(ae,se,fe,ge,!1),pe!==null&&Ue!==null&&af(ae,Ue,pe,ge,!0)}}e:{if(se=q?Or(q):window,fe=se.nodeName&&se.nodeName.toLowerCase(),fe==="select"||fe==="input"&&se.type==="file")var me=Bm;else if(Fc(se))if(Bc)me=Ym;else{me=Um;var _e=Vm}else(fe=se.nodeName)&&fe.toLowerCase()==="input"&&(se.type==="checkbox"||se.type==="radio")&&(me=Wm);if(me&&(me=me(e,q))){Hc(ae,me,o,le);break e}_e&&_e(e,se,q),e==="focusout"&&(_e=se._wrapperState)&&_e.controlled&&se.type==="number"&&ct(se,"number",se.value)}switch(_e=q?Or(q):window,e){case"focusin":(Fc(_e)||_e.contentEditable==="true")&&(Ar=_e,oa=q,Ao=null);break;case"focusout":Ao=oa=Ar=null;break;case"mousedown":ia=!0;break;case"contextmenu":case"mouseup":case"dragend":ia=!1,Gc(ae,o,le);break;case"selectionchange":if(Qm)break;case"keydown":case"keyup":Gc(ae,o,le)}var Se;if(ea)e:{switch(e){case"compositionstart":var Ee="onCompositionStart";break e;case"compositionend":Ee="onCompositionEnd";break e;case"compositionupdate":Ee="onCompositionUpdate";break e}Ee=void 0}else Rr?bc(e,o)&&(Ee="onCompositionEnd"):e==="keydown"&&o.keyCode===229&&(Ee="onCompositionStart");Ee&&(Ac&&o.locale!=="ko"&&(Rr||Ee!=="onCompositionStart"?Ee==="onCompositionEnd"&&Rr&&(Se=Tc()):(Mn=le,Kl="value"in Mn?Mn.value:Mn.textContent,Rr=!0)),_e=ts(q,Ee),0<_e.length&&(Ee=new Lc(Ee,e,null,o,le),ae.push({event:Ee,listeners:_e}),Se?Ee.data=Se:(Se=Oc(o),Se!==null&&(Ee.data=Se)))),(Se=$m?bm(e,o):Om(e,o))&&(q=ts(q,"onBeforeInput"),0<q.length&&(le=new Lc("onBeforeInput","beforeinput",null,o,le),ae.push({event:le,listeners:q}),le.data=Se))}sf(ae,n)})}function bo(e,n,o){return{instance:e,listener:n,currentTarget:o}}function ts(e,n){for(var o=n+"Capture",s=[];e!==null;){var f=e,h=f.stateNode;f.tag===5&&h!==null&&(f=h,h=Gn(e,o),h!=null&&s.unshift(bo(e,h,f)),h=Gn(e,n),h!=null&&s.push(bo(e,h,f))),e=e.return}return s}function $r(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function af(e,n,o,s,f){for(var h=n._reactName,x=[];o!==null&&o!==s;){var I=o,R=I.alternate,q=I.stateNode;if(R!==null&&R===s)break;I.tag===5&&q!==null&&(I=q,f?(R=Gn(o,h),R!=null&&x.unshift(bo(o,R,I))):f||(R=Gn(o,h),R!=null&&x.push(bo(o,R,I)))),o=o.return}x.length!==0&&e.push({event:n,listeners:x})}var Jm=/\r\n?/g,e0=/\u0000|\uFFFD/g;function uf(e){return(typeof e=="string"?e:""+e).replace(Jm,`
+`).replace(e0,"")}function ns(e,n,o){if(n=uf(n),uf(e)!==n&&o)throw Error(i(425))}function rs(){}var fa=null,da=null;function ha(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var pa=typeof setTimeout=="function"?setTimeout:void 0,t0=typeof clearTimeout=="function"?clearTimeout:void 0,cf=typeof Promise=="function"?Promise:void 0,n0=typeof queueMicrotask=="function"?queueMicrotask:typeof cf<"u"?function(e){return cf.resolve(null).then(e).catch(r0)}:pa;function r0(e){setTimeout(function(){throw e})}function ga(e,n){var o=n,s=0;do{var f=o.nextSibling;if(e.removeChild(o),f&&f.nodeType===8)if(o=f.data,o==="/$"){if(s===0){e.removeChild(f),Po(n);return}s--}else o!=="$"&&o!=="$?"&&o!=="$!"||s++;o=f}while(o);Po(n)}function jn(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?")break;if(n==="/$")return null}}return e}function ff(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var o=e.data;if(o==="$"||o==="$!"||o==="$?"){if(n===0)return e;n--}else o==="/$"&&n++}e=e.previousSibling}return null}var br=Math.random().toString(36).slice(2),Zt="__reactFiber$"+br,Oo="__reactProps$"+br,cn="__reactContainer$"+br,ma="__reactEvents$"+br,o0="__reactListeners$"+br,i0="__reactHandles$"+br;function nr(e){var n=e[Zt];if(n)return n;for(var o=e.parentNode;o;){if(n=o[cn]||o[Zt]){if(o=n.alternate,n.child!==null||o!==null&&o.child!==null)for(e=ff(e);e!==null;){if(o=e[Zt])return o;e=ff(e)}return n}e=o,o=e.parentNode}return null}function Fo(e){return e=e[Zt]||e[cn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Or(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(i(33))}function os(e){return e[Oo]||null}var ya=[],Fr=-1;function Tn(e){return{current:e}}function Ae(e){0>Fr||(e.current=ya[Fr],ya[Fr]=null,Fr--)}function Le(e,n){Fr++,ya[Fr]=e.current,e.current=n}var In={},rt=Tn(In),dt=Tn(!1),rr=In;function Hr(e,n){var o=e.type.contextTypes;if(!o)return In;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===n)return s.__reactInternalMemoizedMaskedChildContext;var f={},h;for(h in o)f[h]=n[h];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=f),f}function ht(e){return e=e.childContextTypes,e!=null}function is(){Ae(dt),Ae(rt)}function df(e,n,o){if(rt.current!==In)throw Error(i(168));Le(rt,n),Le(dt,o)}function hf(e,n,o){var s=e.stateNode;if(n=n.childContextTypes,typeof s.getChildContext!="function")return o;s=s.getChildContext();for(var f in s)if(!(f in n))throw Error(i(108,ne(e)||"Unknown",f));return B({},o,s)}function ss(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||In,rr=rt.current,Le(rt,e),Le(dt,dt.current),!0}function pf(e,n,o){var s=e.stateNode;if(!s)throw Error(i(169));o?(e=hf(e,n,rr),s.__reactInternalMemoizedMergedChildContext=e,Ae(dt),Ae(rt),Le(rt,e)):Ae(dt),Le(dt,o)}var fn=null,ls=!1,va=!1;function gf(e){fn===null?fn=[e]:fn.push(e)}function s0(e){ls=!0,gf(e)}function zn(){if(!va&&fn!==null){va=!0;var e=0,n=ze;try{var o=fn;for(ze=1;e<o.length;e++){var s=o[e];do s=s(!0);while(s!==null)}fn=null,ls=!1}catch(f){throw fn!==null&&(fn=fn.slice(e+1)),Di(So,zn),f}finally{ze=n,va=!1}}return null}var Br=[],Vr=0,as=null,us=0,Tt=[],It=0,or=null,dn=1,hn="";function ir(e,n){Br[Vr++]=us,Br[Vr++]=as,as=e,us=n}function mf(e,n,o){Tt[It++]=dn,Tt[It++]=hn,Tt[It++]=or,or=e;var s=dn;e=hn;var f=32-_t(s)-1;s&=~(1<<f),o+=1;var h=32-_t(n)+f;if(30<h){var x=f-f%5;h=(s&(1<<x)-1).toString(32),s>>=x,f-=x,dn=1<<32-_t(n)+f|o<<f|s,hn=h+e}else dn=1<<h|o<<f|s,hn=e}function xa(e){e.return!==null&&(ir(e,1),mf(e,1,0))}function wa(e){for(;e===as;)as=Br[--Vr],Br[Vr]=null,us=Br[--Vr],Br[Vr]=null;for(;e===or;)or=Tt[--It],Tt[It]=null,hn=Tt[--It],Tt[It]=null,dn=Tt[--It],Tt[It]=null}var kt=null,Et=null,$e=!1,$t=null;function yf(e,n){var o=At(5,null,null,0);o.elementType="DELETED",o.stateNode=n,o.return=e,n=e.deletions,n===null?(e.deletions=[o],e.flags|=16):n.push(o)}function vf(e,n){switch(e.tag){case 5:var o=e.type;return n=n.nodeType!==1||o.toLowerCase()!==n.nodeName.toLowerCase()?null:n,n!==null?(e.stateNode=n,kt=e,Et=jn(n.firstChild),!0):!1;case 6:return n=e.pendingProps===""||n.nodeType!==3?null:n,n!==null?(e.stateNode=n,kt=e,Et=null,!0):!1;case 13:return n=n.nodeType!==8?null:n,n!==null?(o=or!==null?{id:dn,overflow:hn}:null,e.memoizedState={dehydrated:n,treeContext:o,retryLane:1073741824},o=At(18,null,null,0),o.stateNode=n,o.return=e,e.child=o,kt=e,Et=null,!0):!1;default:return!1}}function _a(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Sa(e){if($e){var n=Et;if(n){var o=n;if(!vf(e,n)){if(_a(e))throw Error(i(418));n=jn(o.nextSibling);var s=kt;n&&vf(e,n)?yf(s,o):(e.flags=e.flags&-4097|2,$e=!1,kt=e)}}else{if(_a(e))throw Error(i(418));e.flags=e.flags&-4097|2,$e=!1,kt=e}}}function xf(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;kt=e}function cs(e){if(e!==kt)return!1;if(!$e)return xf(e),$e=!0,!1;var n;if((n=e.tag!==3)&&!(n=e.tag!==5)&&(n=e.type,n=n!=="head"&&n!=="body"&&!ha(e.type,e.memoizedProps)),n&&(n=Et)){if(_a(e))throw wf(),Error(i(418));for(;n;)yf(e,n),n=jn(n.nextSibling)}if(xf(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));e:{for(e=e.nextSibling,n=0;e;){if(e.nodeType===8){var o=e.data;if(o==="/$"){if(n===0){Et=jn(e.nextSibling);break e}n--}else o!=="$"&&o!=="$!"&&o!=="$?"||n++}e=e.nextSibling}Et=null}}else Et=kt?jn(e.stateNode.nextSibling):null;return!0}function wf(){for(var e=Et;e;)e=jn(e.nextSibling)}function Ur(){Et=kt=null,$e=!1}function ka(e){$t===null?$t=[e]:$t.push(e)}var l0=T.ReactCurrentBatchConfig;function Ho(e,n,o){if(e=o.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(o._owner){if(o=o._owner,o){if(o.tag!==1)throw Error(i(309));var s=o.stateNode}if(!s)throw Error(i(147,e));var f=s,h=""+e;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===h?n.ref:(n=function(x){var I=f.refs;x===null?delete I[h]:I[h]=x},n._stringRef=h,n)}if(typeof e!="string")throw Error(i(284));if(!o._owner)throw Error(i(290,e))}return e}function fs(e,n){throw e=Object.prototype.toString.call(n),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function _f(e){var n=e._init;return n(e._payload)}function Sf(e){function n(X,H){if(e){var K=X.deletions;K===null?(X.deletions=[H],X.flags|=16):K.push(H)}}function o(X,H){if(!e)return null;for(;H!==null;)n(X,H),H=H.sibling;return null}function s(X,H){for(X=new Map;H!==null;)H.key!==null?X.set(H.key,H):X.set(H.index,H),H=H.sibling;return X}function f(X,H){return X=Fn(X,H),X.index=0,X.sibling=null,X}function h(X,H,K){return X.index=K,e?(K=X.alternate,K!==null?(K=K.index,K<H?(X.flags|=2,H):K):(X.flags|=2,H)):(X.flags|=1048576,H)}function x(X){return e&&X.alternate===null&&(X.flags|=2),X}function I(X,H,K,ue){return H===null||H.tag!==6?(H=pu(K,X.mode,ue),H.return=X,H):(H=f(H,K),H.return=X,H)}function R(X,H,K,ue){var me=K.type;return me===z?le(X,H,K.props.children,ue,K.key):H!==null&&(H.elementType===me||typeof me=="object"&&me!==null&&me.$$typeof===W&&_f(me)===H.type)?(ue=f(H,K.props),ue.ref=Ho(X,H,K),ue.return=X,ue):(ue=As(K.type,K.key,K.props,null,X.mode,ue),ue.ref=Ho(X,H,K),ue.return=X,ue)}function q(X,H,K,ue){return H===null||H.tag!==4||H.stateNode.containerInfo!==K.containerInfo||H.stateNode.implementation!==K.implementation?(H=gu(K,X.mode,ue),H.return=X,H):(H=f(H,K.children||[]),H.return=X,H)}function le(X,H,K,ue,me){return H===null||H.tag!==7?(H=hr(K,X.mode,ue,me),H.return=X,H):(H=f(H,K),H.return=X,H)}function ae(X,H,K){if(typeof H=="string"&&H!==""||typeof H=="number")return H=pu(""+H,X.mode,K),H.return=X,H;if(typeof H=="object"&&H!==null){switch(H.$$typeof){case U:return K=As(H.type,H.key,H.props,null,X.mode,K),K.ref=Ho(X,null,H),K.return=X,K;case O:return H=gu(H,X.mode,K),H.return=X,H;case W:var ue=H._init;return ae(X,ue(H._payload),K)}if(tt(H)||A(H))return H=hr(H,X.mode,K,null),H.return=X,H;fs(X,H)}return null}function se(X,H,K,ue){var me=H!==null?H.key:null;if(typeof K=="string"&&K!==""||typeof K=="number")return me!==null?null:I(X,H,""+K,ue);if(typeof K=="object"&&K!==null){switch(K.$$typeof){case U:return K.key===me?R(X,H,K,ue):null;case O:return K.key===me?q(X,H,K,ue):null;case W:return me=K._init,se(X,H,me(K._payload),ue)}if(tt(K)||A(K))return me!==null?null:le(X,H,K,ue,null);fs(X,K)}return null}function fe(X,H,K,ue,me){if(typeof ue=="string"&&ue!==""||typeof ue=="number")return X=X.get(K)||null,I(H,X,""+ue,me);if(typeof ue=="object"&&ue!==null){switch(ue.$$typeof){case U:return X=X.get(ue.key===null?K:ue.key)||null,R(H,X,ue,me);case O:return X=X.get(ue.key===null?K:ue.key)||null,q(H,X,ue,me);case W:var _e=ue._init;return fe(X,H,K,_e(ue._payload),me)}if(tt(ue)||A(ue))return X=X.get(K)||null,le(H,X,ue,me,null);fs(H,ue)}return null}function pe(X,H,K,ue){for(var me=null,_e=null,Se=H,Ee=H=0,Ze=null;Se!==null&&Ee<K.length;Ee++){Se.index>Ee?(Ze=Se,Se=null):Ze=Se.sibling;var Te=se(X,Se,K[Ee],ue);if(Te===null){Se===null&&(Se=Ze);break}e&&Se&&Te.alternate===null&&n(X,Se),H=h(Te,H,Ee),_e===null?me=Te:_e.sibling=Te,_e=Te,Se=Ze}if(Ee===K.length)return o(X,Se),$e&&ir(X,Ee),me;if(Se===null){for(;Ee<K.length;Ee++)Se=ae(X,K[Ee],ue),Se!==null&&(H=h(Se,H,Ee),_e===null?me=Se:_e.sibling=Se,_e=Se);return $e&&ir(X,Ee),me}for(Se=s(X,Se);Ee<K.length;Ee++)Ze=fe(Se,X,Ee,K[Ee],ue),Ze!==null&&(e&&Ze.alternate!==null&&Se.delete(Ze.key===null?Ee:Ze.key),H=h(Ze,H,Ee),_e===null?me=Ze:_e.sibling=Ze,_e=Ze);return e&&Se.forEach(function(Hn){return n(X,Hn)}),$e&&ir(X,Ee),me}function ge(X,H,K,ue){var me=A(K);if(typeof me!="function")throw Error(i(150));if(K=me.call(K),K==null)throw Error(i(151));for(var _e=me=null,Se=H,Ee=H=0,Ze=null,Te=K.next();Se!==null&&!Te.done;Ee++,Te=K.next()){Se.index>Ee?(Ze=Se,Se=null):Ze=Se.sibling;var Hn=se(X,Se,Te.value,ue);if(Hn===null){Se===null&&(Se=Ze);break}e&&Se&&Hn.alternate===null&&n(X,Se),H=h(Hn,H,Ee),_e===null?me=Hn:_e.sibling=Hn,_e=Hn,Se=Ze}if(Te.done)return o(X,Se),$e&&ir(X,Ee),me;if(Se===null){for(;!Te.done;Ee++,Te=K.next())Te=ae(X,Te.value,ue),Te!==null&&(H=h(Te,H,Ee),_e===null?me=Te:_e.sibling=Te,_e=Te);return $e&&ir(X,Ee),me}for(Se=s(X,Se);!Te.done;Ee++,Te=K.next())Te=fe(Se,X,Ee,Te.value,ue),Te!==null&&(e&&Te.alternate!==null&&Se.delete(Te.key===null?Ee:Te.key),H=h(Te,H,Ee),_e===null?me=Te:_e.sibling=Te,_e=Te);return e&&Se.forEach(function(F0){return n(X,F0)}),$e&&ir(X,Ee),me}function Ue(X,H,K,ue){if(typeof K=="object"&&K!==null&&K.type===z&&K.key===null&&(K=K.props.children),typeof K=="object"&&K!==null){switch(K.$$typeof){case U:e:{for(var me=K.key,_e=H;_e!==null;){if(_e.key===me){if(me=K.type,me===z){if(_e.tag===7){o(X,_e.sibling),H=f(_e,K.props.children),H.return=X,X=H;break e}}else if(_e.elementType===me||typeof me=="object"&&me!==null&&me.$$typeof===W&&_f(me)===_e.type){o(X,_e.sibling),H=f(_e,K.props),H.ref=Ho(X,_e,K),H.return=X,X=H;break e}o(X,_e);break}else n(X,_e);_e=_e.sibling}K.type===z?(H=hr(K.props.children,X.mode,ue,K.key),H.return=X,X=H):(ue=As(K.type,K.key,K.props,null,X.mode,ue),ue.ref=Ho(X,H,K),ue.return=X,X=ue)}return x(X);case O:e:{for(_e=K.key;H!==null;){if(H.key===_e)if(H.tag===4&&H.stateNode.containerInfo===K.containerInfo&&H.stateNode.implementation===K.implementation){o(X,H.sibling),H=f(H,K.children||[]),H.return=X,X=H;break e}else{o(X,H);break}else n(X,H);H=H.sibling}H=gu(K,X.mode,ue),H.return=X,X=H}return x(X);case W:return _e=K._init,Ue(X,H,_e(K._payload),ue)}if(tt(K))return pe(X,H,K,ue);if(A(K))return ge(X,H,K,ue);fs(X,K)}return typeof K=="string"&&K!==""||typeof K=="number"?(K=""+K,H!==null&&H.tag===6?(o(X,H.sibling),H=f(H,K),H.return=X,X=H):(o(X,H),H=pu(K,X.mode,ue),H.return=X,X=H),x(X)):o(X,H)}return Ue}var Wr=Sf(!0),kf=Sf(!1),ds=Tn(null),hs=null,Yr=null,Ea=null;function Na(){Ea=Yr=hs=null}function Ca(e){var n=ds.current;Ae(ds),e._currentValue=n}function Ma(e,n,o){for(;e!==null;){var s=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,s!==null&&(s.childLanes|=n)):s!==null&&(s.childLanes&n)!==n&&(s.childLanes|=n),e===o)break;e=e.return}}function Xr(e,n){hs=e,Ea=Yr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(pt=!0),e.firstContext=null)}function zt(e){var n=e._currentValue;if(Ea!==e)if(e={context:e,memoizedValue:n,next:null},Yr===null){if(hs===null)throw Error(i(308));Yr=e,hs.dependencies={lanes:0,firstContext:e}}else Yr=Yr.next=e;return n}var sr=null;function Pa(e){sr===null?sr=[e]:sr.push(e)}function Ef(e,n,o,s){var f=n.interleaved;return f===null?(o.next=o,Pa(n)):(o.next=f.next,f.next=o),n.interleaved=o,pn(e,s)}function pn(e,n){e.lanes|=n;var o=e.alternate;for(o!==null&&(o.lanes|=n),o=e,e=e.return;e!==null;)e.childLanes|=n,o=e.alternate,o!==null&&(o.childLanes|=n),o=e,e=e.return;return o.tag===3?o.stateNode:null}var Ln=!1;function ja(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Nf(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function gn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Rn(e,n,o){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(Pe&2)!==0){var f=s.pending;return f===null?n.next=n:(n.next=f.next,f.next=n),s.pending=n,pn(e,o)}return f=s.interleaved,f===null?(n.next=n,Pa(s)):(n.next=f.next,f.next=n),s.interleaved=n,pn(e,o)}function ps(e,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var s=n.lanes;s&=e.pendingLanes,o|=s,n.lanes=o,Ir(e,o)}}function Cf(e,n){var o=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,o===s)){var f=null,h=null;if(o=o.firstBaseUpdate,o!==null){do{var x={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};h===null?f=h=x:h=h.next=x,o=o.next}while(o!==null);h===null?f=h=n:h=h.next=n}else f=h=n;o={baseState:s.baseState,firstBaseUpdate:f,lastBaseUpdate:h,shared:s.shared,effects:s.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=n:e.next=n,o.lastBaseUpdate=n}function gs(e,n,o,s){var f=e.updateQueue;Ln=!1;var h=f.firstBaseUpdate,x=f.lastBaseUpdate,I=f.shared.pending;if(I!==null){f.shared.pending=null;var R=I,q=R.next;R.next=null,x===null?h=q:x.next=q,x=R;var le=e.alternate;le!==null&&(le=le.updateQueue,I=le.lastBaseUpdate,I!==x&&(I===null?le.firstBaseUpdate=q:I.next=q,le.lastBaseUpdate=R))}if(h!==null){var ae=f.baseState;x=0,le=q=R=null,I=h;do{var se=I.lane,fe=I.eventTime;if((s&se)===se){le!==null&&(le=le.next={eventTime:fe,lane:0,tag:I.tag,payload:I.payload,callback:I.callback,next:null});e:{var pe=e,ge=I;switch(se=n,fe=o,ge.tag){case 1:if(pe=ge.payload,typeof pe=="function"){ae=pe.call(fe,ae,se);break e}ae=pe;break e;case 3:pe.flags=pe.flags&-65537|128;case 0:if(pe=ge.payload,se=typeof pe=="function"?pe.call(fe,ae,se):pe,se==null)break e;ae=B({},ae,se);break e;case 2:Ln=!0}}I.callback!==null&&I.lane!==0&&(e.flags|=64,se=f.effects,se===null?f.effects=[I]:se.push(I))}else fe={eventTime:fe,lane:se,tag:I.tag,payload:I.payload,callback:I.callback,next:null},le===null?(q=le=fe,R=ae):le=le.next=fe,x|=se;if(I=I.next,I===null){if(I=f.shared.pending,I===null)break;se=I,I=se.next,se.next=null,f.lastBaseUpdate=se,f.shared.pending=null}}while(!0);if(le===null&&(R=ae),f.baseState=R,f.firstBaseUpdate=q,f.lastBaseUpdate=le,n=f.shared.interleaved,n!==null){f=n;do x|=f.lane,f=f.next;while(f!==n)}else h===null&&(f.shared.lanes=0);ur|=x,e.lanes=x,e.memoizedState=ae}}function Mf(e,n,o){if(e=n.effects,n.effects=null,e!==null)for(n=0;n<e.length;n++){var s=e[n],f=s.callback;if(f!==null){if(s.callback=null,s=o,typeof f!="function")throw Error(i(191,f));f.call(s)}}}var Bo={},Jt=Tn(Bo),Vo=Tn(Bo),Uo=Tn(Bo);function lr(e){if(e===Bo)throw Error(i(174));return e}function Ta(e,n){switch(Le(Uo,n),Le(Vo,e),Le(Jt,Bo),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:xt(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=xt(n,e)}Ae(Jt),Le(Jt,n)}function Kr(){Ae(Jt),Ae(Vo),Ae(Uo)}function Pf(e){lr(Uo.current);var n=lr(Jt.current),o=xt(n,e.type);n!==o&&(Le(Vo,e),Le(Jt,o))}function Ia(e){Vo.current===e&&(Ae(Jt),Ae(Vo))}var Oe=Tn(0);function ms(e){for(var n=e;n!==null;){if(n.tag===13){var o=n.memoizedState;if(o!==null&&(o=o.dehydrated,o===null||o.data==="$?"||o.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var za=[];function La(){for(var e=0;e<za.length;e++)za[e]._workInProgressVersionPrimary=null;za.length=0}var ys=T.ReactCurrentDispatcher,Ra=T.ReactCurrentBatchConfig,ar=0,Fe=null,Xe=null,Ge=null,vs=!1,Wo=!1,Yo=0,a0=0;function ot(){throw Error(i(321))}function Aa(e,n){if(n===null)return!1;for(var o=0;o<n.length&&o<e.length;o++)if(!Dt(e[o],n[o]))return!1;return!0}function Da(e,n,o,s,f,h){if(ar=h,Fe=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,ys.current=e===null||e.memoizedState===null?d0:h0,e=o(s,f),Wo){h=0;do{if(Wo=!1,Yo=0,25<=h)throw Error(i(301));h+=1,Ge=Xe=null,n.updateQueue=null,ys.current=p0,e=o(s,f)}while(Wo)}if(ys.current=_s,n=Xe!==null&&Xe.next!==null,ar=0,Ge=Xe=Fe=null,vs=!1,n)throw Error(i(300));return e}function $a(){var e=Yo!==0;return Yo=0,e}function en(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ge===null?Fe.memoizedState=Ge=e:Ge=Ge.next=e,Ge}function Lt(){if(Xe===null){var e=Fe.alternate;e=e!==null?e.memoizedState:null}else e=Xe.next;var n=Ge===null?Fe.memoizedState:Ge.next;if(n!==null)Ge=n,Xe=e;else{if(e===null)throw Error(i(310));Xe=e,e={memoizedState:Xe.memoizedState,baseState:Xe.baseState,baseQueue:Xe.baseQueue,queue:Xe.queue,next:null},Ge===null?Fe.memoizedState=Ge=e:Ge=Ge.next=e}return Ge}function Xo(e,n){return typeof n=="function"?n(e):n}function ba(e){var n=Lt(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=Xe,f=s.baseQueue,h=o.pending;if(h!==null){if(f!==null){var x=f.next;f.next=h.next,h.next=x}s.baseQueue=f=h,o.pending=null}if(f!==null){h=f.next,s=s.baseState;var I=x=null,R=null,q=h;do{var le=q.lane;if((ar&le)===le)R!==null&&(R=R.next={lane:0,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null}),s=q.hasEagerState?q.eagerState:e(s,q.action);else{var ae={lane:le,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null};R===null?(I=R=ae,x=s):R=R.next=ae,Fe.lanes|=le,ur|=le}q=q.next}while(q!==null&&q!==h);R===null?x=s:R.next=I,Dt(s,n.memoizedState)||(pt=!0),n.memoizedState=s,n.baseState=x,n.baseQueue=R,o.lastRenderedState=s}if(e=o.interleaved,e!==null){f=e;do h=f.lane,Fe.lanes|=h,ur|=h,f=f.next;while(f!==e)}else f===null&&(o.lanes=0);return[n.memoizedState,o.dispatch]}function Oa(e){var n=Lt(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=o.dispatch,f=o.pending,h=n.memoizedState;if(f!==null){o.pending=null;var x=f=f.next;do h=e(h,x.action),x=x.next;while(x!==f);Dt(h,n.memoizedState)||(pt=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),o.lastRenderedState=h}return[h,s]}function jf(){}function Tf(e,n){var o=Fe,s=Lt(),f=n(),h=!Dt(s.memoizedState,f);if(h&&(s.memoizedState=f,pt=!0),s=s.queue,Fa(Lf.bind(null,o,s,e),[e]),s.getSnapshot!==n||h||Ge!==null&&Ge.memoizedState.tag&1){if(o.flags|=2048,Ko(9,zf.bind(null,o,s,f,n),void 0,null),qe===null)throw Error(i(349));(ar&30)!==0||If(o,n,f)}return f}function If(e,n,o){e.flags|=16384,e={getSnapshot:n,value:o},n=Fe.updateQueue,n===null?(n={lastEffect:null,stores:null},Fe.updateQueue=n,n.stores=[e]):(o=n.stores,o===null?n.stores=[e]:o.push(e))}function zf(e,n,o,s){n.value=o,n.getSnapshot=s,Rf(n)&&Af(e)}function Lf(e,n,o){return o(function(){Rf(n)&&Af(e)})}function Rf(e){var n=e.getSnapshot;e=e.value;try{var o=n();return!Dt(e,o)}catch{return!0}}function Af(e){var n=pn(e,1);n!==null&&Ht(n,e,1,-1)}function Df(e){var n=en();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Xo,lastRenderedState:e},n.queue=e,e=e.dispatch=f0.bind(null,Fe,e),[n.memoizedState,e]}function Ko(e,n,o,s){return e={tag:e,create:n,destroy:o,deps:s,next:null},n=Fe.updateQueue,n===null?(n={lastEffect:null,stores:null},Fe.updateQueue=n,n.lastEffect=e.next=e):(o=n.lastEffect,o===null?n.lastEffect=e.next=e:(s=o.next,o.next=e,e.next=s,n.lastEffect=e)),e}function $f(){return Lt().memoizedState}function xs(e,n,o,s){var f=en();Fe.flags|=e,f.memoizedState=Ko(1|n,o,void 0,s===void 0?null:s)}function ws(e,n,o,s){var f=Lt();s=s===void 0?null:s;var h=void 0;if(Xe!==null){var x=Xe.memoizedState;if(h=x.destroy,s!==null&&Aa(s,x.deps)){f.memoizedState=Ko(n,o,h,s);return}}Fe.flags|=e,f.memoizedState=Ko(1|n,o,h,s)}function bf(e,n){return xs(8390656,8,e,n)}function Fa(e,n){return ws(2048,8,e,n)}function Of(e,n){return ws(4,2,e,n)}function Ff(e,n){return ws(4,4,e,n)}function Hf(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function Bf(e,n,o){return o=o!=null?o.concat([e]):null,ws(4,4,Hf.bind(null,n,e),o)}function Ha(){}function Vf(e,n){var o=Lt();n=n===void 0?null:n;var s=o.memoizedState;return s!==null&&n!==null&&Aa(n,s[1])?s[0]:(o.memoizedState=[e,n],e)}function Uf(e,n){var o=Lt();n=n===void 0?null:n;var s=o.memoizedState;return s!==null&&n!==null&&Aa(n,s[1])?s[0]:(e=e(),o.memoizedState=[e,n],e)}function Wf(e,n,o){return(ar&21)===0?(e.baseState&&(e.baseState=!1,pt=!0),e.memoizedState=o):(Dt(o,n)||(o=Bi(),Fe.lanes|=o,ur|=o,e.baseState=!0),n)}function u0(e,n){var o=ze;ze=o!==0&&4>o?o:4,e(!0);var s=Ra.transition;Ra.transition={};try{e(!1),n()}finally{ze=o,Ra.transition=s}}function Yf(){return Lt().memoizedState}function c0(e,n,o){var s=bn(e);if(o={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null},Xf(e))Kf(n,o);else if(o=Ef(e,n,o,s),o!==null){var f=ut();Ht(o,e,s,f),Qf(o,n,s)}}function f0(e,n,o){var s=bn(e),f={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null};if(Xf(e))Kf(n,f);else{var h=e.alternate;if(e.lanes===0&&(h===null||h.lanes===0)&&(h=n.lastRenderedReducer,h!==null))try{var x=n.lastRenderedState,I=h(x,o);if(f.hasEagerState=!0,f.eagerState=I,Dt(I,x)){var R=n.interleaved;R===null?(f.next=f,Pa(n)):(f.next=R.next,R.next=f),n.interleaved=f;return}}catch{}finally{}o=Ef(e,n,f,s),o!==null&&(f=ut(),Ht(o,e,s,f),Qf(o,n,s))}}function Xf(e){var n=e.alternate;return e===Fe||n!==null&&n===Fe}function Kf(e,n){Wo=vs=!0;var o=e.pending;o===null?n.next=n:(n.next=o.next,o.next=n),e.pending=n}function Qf(e,n,o){if((o&4194240)!==0){var s=n.lanes;s&=e.pendingLanes,o|=s,n.lanes=o,Ir(e,o)}}var _s={readContext:zt,useCallback:ot,useContext:ot,useEffect:ot,useImperativeHandle:ot,useInsertionEffect:ot,useLayoutEffect:ot,useMemo:ot,useReducer:ot,useRef:ot,useState:ot,useDebugValue:ot,useDeferredValue:ot,useTransition:ot,useMutableSource:ot,useSyncExternalStore:ot,useId:ot,unstable_isNewReconciler:!1},d0={readContext:zt,useCallback:function(e,n){return en().memoizedState=[e,n===void 0?null:n],e},useContext:zt,useEffect:bf,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,xs(4194308,4,Hf.bind(null,n,e),o)},useLayoutEffect:function(e,n){return xs(4194308,4,e,n)},useInsertionEffect:function(e,n){return xs(4,2,e,n)},useMemo:function(e,n){var o=en();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var s=en();return n=o!==void 0?o(n):n,s.memoizedState=s.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},s.queue=e,e=e.dispatch=c0.bind(null,Fe,e),[s.memoizedState,e]},useRef:function(e){var n=en();return e={current:e},n.memoizedState=e},useState:Df,useDebugValue:Ha,useDeferredValue:function(e){return en().memoizedState=e},useTransition:function(){var e=Df(!1),n=e[0];return e=u0.bind(null,e[1]),en().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var s=Fe,f=en();if($e){if(o===void 0)throw Error(i(407));o=o()}else{if(o=n(),qe===null)throw Error(i(349));(ar&30)!==0||If(s,n,o)}f.memoizedState=o;var h={value:o,getSnapshot:n};return f.queue=h,bf(Lf.bind(null,s,h,e),[e]),s.flags|=2048,Ko(9,zf.bind(null,s,h,o,n),void 0,null),o},useId:function(){var e=en(),n=qe.identifierPrefix;if($e){var o=hn,s=dn;o=(s&~(1<<32-_t(s)-1)).toString(32)+o,n=":"+n+"R"+o,o=Yo++,0<o&&(n+="H"+o.toString(32)),n+=":"}else o=a0++,n=":"+n+"r"+o.toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},h0={readContext:zt,useCallback:Vf,useContext:zt,useEffect:Fa,useImperativeHandle:Bf,useInsertionEffect:Of,useLayoutEffect:Ff,useMemo:Uf,useReducer:ba,useRef:$f,useState:function(){return ba(Xo)},useDebugValue:Ha,useDeferredValue:function(e){var n=Lt();return Wf(n,Xe.memoizedState,e)},useTransition:function(){var e=ba(Xo)[0],n=Lt().memoizedState;return[e,n]},useMutableSource:jf,useSyncExternalStore:Tf,useId:Yf,unstable_isNewReconciler:!1},p0={readContext:zt,useCallback:Vf,useContext:zt,useEffect:Fa,useImperativeHandle:Bf,useInsertionEffect:Of,useLayoutEffect:Ff,useMemo:Uf,useReducer:Oa,useRef:$f,useState:function(){return Oa(Xo)},useDebugValue:Ha,useDeferredValue:function(e){var n=Lt();return Xe===null?n.memoizedState=e:Wf(n,Xe.memoizedState,e)},useTransition:function(){var e=Oa(Xo)[0],n=Lt().memoizedState;return[e,n]},useMutableSource:jf,useSyncExternalStore:Tf,useId:Yf,unstable_isNewReconciler:!1};function bt(e,n){if(e&&e.defaultProps){n=B({},n),e=e.defaultProps;for(var o in e)n[o]===void 0&&(n[o]=e[o]);return n}return n}function Ba(e,n,o,s){n=e.memoizedState,o=o(s,n),o=o==null?n:B({},n,o),e.memoizedState=o,e.lanes===0&&(e.updateQueue.baseState=o)}var Ss={isMounted:function(e){return(e=e._reactInternals)?qt(e)===e:!1},enqueueSetState:function(e,n,o){e=e._reactInternals;var s=ut(),f=bn(e),h=gn(s,f);h.payload=n,o!=null&&(h.callback=o),n=Rn(e,h,f),n!==null&&(Ht(n,e,f,s),ps(n,e,f))},enqueueReplaceState:function(e,n,o){e=e._reactInternals;var s=ut(),f=bn(e),h=gn(s,f);h.tag=1,h.payload=n,o!=null&&(h.callback=o),n=Rn(e,h,f),n!==null&&(Ht(n,e,f,s),ps(n,e,f))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var o=ut(),s=bn(e),f=gn(o,s);f.tag=2,n!=null&&(f.callback=n),n=Rn(e,f,s),n!==null&&(Ht(n,e,s,o),ps(n,e,s))}};function Gf(e,n,o,s,f,h,x){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,h,x):n.prototype&&n.prototype.isPureReactComponent?!Ro(o,s)||!Ro(f,h):!0}function qf(e,n,o){var s=!1,f=In,h=n.contextType;return typeof h=="object"&&h!==null?h=zt(h):(f=ht(n)?rr:rt.current,s=n.contextTypes,h=(s=s!=null)?Hr(e,f):In),n=new n(o,h),e.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=Ss,e.stateNode=n,n._reactInternals=e,s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=f,e.__reactInternalMemoizedMaskedChildContext=h),n}function Zf(e,n,o,s){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(o,s),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(o,s),n.state!==e&&Ss.enqueueReplaceState(n,n.state,null)}function Va(e,n,o,s){var f=e.stateNode;f.props=o,f.state=e.memoizedState,f.refs={},ja(e);var h=n.contextType;typeof h=="object"&&h!==null?f.context=zt(h):(h=ht(n)?rr:rt.current,f.context=Hr(e,h)),f.state=e.memoizedState,h=n.getDerivedStateFromProps,typeof h=="function"&&(Ba(e,n,h,o),f.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof f.getSnapshotBeforeUpdate=="function"||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(n=f.state,typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount(),n!==f.state&&Ss.enqueueReplaceState(f,f.state,null),gs(e,o,f,s),f.state=e.memoizedState),typeof f.componentDidMount=="function"&&(e.flags|=4194308)}function Qr(e,n){try{var o="",s=n;do o+=ce(s),s=s.return;while(s);var f=o}catch(h){f=`
+Error generating stack: `+h.message+`
+`+h.stack}return{value:e,source:n,stack:f,digest:null}}function Ua(e,n,o){return{value:e,source:null,stack:o??null,digest:n??null}}function Wa(e,n){try{console.error(n.value)}catch(o){setTimeout(function(){throw o})}}var g0=typeof WeakMap=="function"?WeakMap:Map;function Jf(e,n,o){o=gn(-1,o),o.tag=3,o.payload={element:null};var s=n.value;return o.callback=function(){js||(js=!0,su=s),Wa(e,n)},o}function ed(e,n,o){o=gn(-1,o),o.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var f=n.value;o.payload=function(){return s(f)},o.callback=function(){Wa(e,n)}}var h=e.stateNode;return h!==null&&typeof h.componentDidCatch=="function"&&(o.callback=function(){Wa(e,n),typeof s!="function"&&(Dn===null?Dn=new Set([this]):Dn.add(this));var x=n.stack;this.componentDidCatch(n.value,{componentStack:x!==null?x:""})}),o}function td(e,n,o){var s=e.pingCache;if(s===null){s=e.pingCache=new g0;var f=new Set;s.set(n,f)}else f=s.get(n),f===void 0&&(f=new Set,s.set(n,f));f.has(o)||(f.add(o),e=j0.bind(null,e,n,o),n.then(e,e))}function nd(e){do{var n;if((n=e.tag===13)&&(n=e.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return e;e=e.return}while(e!==null);return null}function rd(e,n,o,s,f){return(e.mode&1)===0?(e===n?e.flags|=65536:(e.flags|=128,o.flags|=131072,o.flags&=-52805,o.tag===1&&(o.alternate===null?o.tag=17:(n=gn(-1,1),n.tag=2,Rn(o,n,1))),o.lanes|=1),e):(e.flags|=65536,e.lanes=f,e)}var m0=T.ReactCurrentOwner,pt=!1;function at(e,n,o,s){n.child=e===null?kf(n,null,o,s):Wr(n,e.child,o,s)}function od(e,n,o,s,f){o=o.render;var h=n.ref;return Xr(n,f),s=Da(e,n,o,s,h,f),o=$a(),e!==null&&!pt?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,mn(e,n,f)):($e&&o&&xa(n),n.flags|=1,at(e,n,s,f),n.child)}function id(e,n,o,s,f){if(e===null){var h=o.type;return typeof h=="function"&&!hu(h)&&h.defaultProps===void 0&&o.compare===null&&o.defaultProps===void 0?(n.tag=15,n.type=h,sd(e,n,h,s,f)):(e=As(o.type,null,s,n,n.mode,f),e.ref=n.ref,e.return=n,n.child=e)}if(h=e.child,(e.lanes&f)===0){var x=h.memoizedProps;if(o=o.compare,o=o!==null?o:Ro,o(x,s)&&e.ref===n.ref)return mn(e,n,f)}return n.flags|=1,e=Fn(h,s),e.ref=n.ref,e.return=n,n.child=e}function sd(e,n,o,s,f){if(e!==null){var h=e.memoizedProps;if(Ro(h,s)&&e.ref===n.ref)if(pt=!1,n.pendingProps=s=h,(e.lanes&f)!==0)(e.flags&131072)!==0&&(pt=!0);else return n.lanes=e.lanes,mn(e,n,f)}return Ya(e,n,o,s,f)}function ld(e,n,o){var s=n.pendingProps,f=s.children,h=e!==null?e.memoizedState:null;if(s.mode==="hidden")if((n.mode&1)===0)n.memoizedState={baseLanes:0,cachePool:null,transitions:null},Le(qr,Nt),Nt|=o;else{if((o&1073741824)===0)return e=h!==null?h.baseLanes|o:o,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,Le(qr,Nt),Nt|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=h!==null?h.baseLanes:o,Le(qr,Nt),Nt|=s}else h!==null?(s=h.baseLanes|o,n.memoizedState=null):s=o,Le(qr,Nt),Nt|=s;return at(e,n,f,o),n.child}function ad(e,n){var o=n.ref;(e===null&&o!==null||e!==null&&e.ref!==o)&&(n.flags|=512,n.flags|=2097152)}function Ya(e,n,o,s,f){var h=ht(o)?rr:rt.current;return h=Hr(n,h),Xr(n,f),o=Da(e,n,o,s,h,f),s=$a(),e!==null&&!pt?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,mn(e,n,f)):($e&&s&&xa(n),n.flags|=1,at(e,n,o,f),n.child)}function ud(e,n,o,s,f){if(ht(o)){var h=!0;ss(n)}else h=!1;if(Xr(n,f),n.stateNode===null)Es(e,n),qf(n,o,s),Va(n,o,s,f),s=!0;else if(e===null){var x=n.stateNode,I=n.memoizedProps;x.props=I;var R=x.context,q=o.contextType;typeof q=="object"&&q!==null?q=zt(q):(q=ht(o)?rr:rt.current,q=Hr(n,q));var le=o.getDerivedStateFromProps,ae=typeof le=="function"||typeof x.getSnapshotBeforeUpdate=="function";ae||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(I!==s||R!==q)&&Zf(n,x,s,q),Ln=!1;var se=n.memoizedState;x.state=se,gs(n,s,x,f),R=n.memoizedState,I!==s||se!==R||dt.current||Ln?(typeof le=="function"&&(Ba(n,o,le,s),R=n.memoizedState),(I=Ln||Gf(n,o,I,s,se,R,q))?(ae||typeof x.UNSAFE_componentWillMount!="function"&&typeof x.componentWillMount!="function"||(typeof x.componentWillMount=="function"&&x.componentWillMount(),typeof x.UNSAFE_componentWillMount=="function"&&x.UNSAFE_componentWillMount()),typeof x.componentDidMount=="function"&&(n.flags|=4194308)):(typeof x.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=s,n.memoizedState=R),x.props=s,x.state=R,x.context=q,s=I):(typeof x.componentDidMount=="function"&&(n.flags|=4194308),s=!1)}else{x=n.stateNode,Nf(e,n),I=n.memoizedProps,q=n.type===n.elementType?I:bt(n.type,I),x.props=q,ae=n.pendingProps,se=x.context,R=o.contextType,typeof R=="object"&&R!==null?R=zt(R):(R=ht(o)?rr:rt.current,R=Hr(n,R));var fe=o.getDerivedStateFromProps;(le=typeof fe=="function"||typeof x.getSnapshotBeforeUpdate=="function")||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(I!==ae||se!==R)&&Zf(n,x,s,R),Ln=!1,se=n.memoizedState,x.state=se,gs(n,s,x,f);var pe=n.memoizedState;I!==ae||se!==pe||dt.current||Ln?(typeof fe=="function"&&(Ba(n,o,fe,s),pe=n.memoizedState),(q=Ln||Gf(n,o,q,s,se,pe,R)||!1)?(le||typeof x.UNSAFE_componentWillUpdate!="function"&&typeof x.componentWillUpdate!="function"||(typeof x.componentWillUpdate=="function"&&x.componentWillUpdate(s,pe,R),typeof x.UNSAFE_componentWillUpdate=="function"&&x.UNSAFE_componentWillUpdate(s,pe,R)),typeof x.componentDidUpdate=="function"&&(n.flags|=4),typeof x.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof x.componentDidUpdate!="function"||I===e.memoizedProps&&se===e.memoizedState||(n.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||I===e.memoizedProps&&se===e.memoizedState||(n.flags|=1024),n.memoizedProps=s,n.memoizedState=pe),x.props=s,x.state=pe,x.context=R,s=q):(typeof x.componentDidUpdate!="function"||I===e.memoizedProps&&se===e.memoizedState||(n.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||I===e.memoizedProps&&se===e.memoizedState||(n.flags|=1024),s=!1)}return Xa(e,n,o,s,h,f)}function Xa(e,n,o,s,f,h){ad(e,n);var x=(n.flags&128)!==0;if(!s&&!x)return f&&pf(n,o,!1),mn(e,n,h);s=n.stateNode,m0.current=n;var I=x&&typeof o.getDerivedStateFromError!="function"?null:s.render();return n.flags|=1,e!==null&&x?(n.child=Wr(n,e.child,null,h),n.child=Wr(n,null,I,h)):at(e,n,I,h),n.memoizedState=s.state,f&&pf(n,o,!0),n.child}function cd(e){var n=e.stateNode;n.pendingContext?df(e,n.pendingContext,n.pendingContext!==n.context):n.context&&df(e,n.context,!1),Ta(e,n.containerInfo)}function fd(e,n,o,s,f){return Ur(),ka(f),n.flags|=256,at(e,n,o,s),n.child}var Ka={dehydrated:null,treeContext:null,retryLane:0};function Qa(e){return{baseLanes:e,cachePool:null,transitions:null}}function dd(e,n,o){var s=n.pendingProps,f=Oe.current,h=!1,x=(n.flags&128)!==0,I;if((I=x)||(I=e!==null&&e.memoizedState===null?!1:(f&2)!==0),I?(h=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(f|=1),Le(Oe,f&1),e===null)return Sa(n),e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((n.mode&1)===0?n.lanes=1:e.data==="$!"?n.lanes=8:n.lanes=1073741824,null):(x=s.children,e=s.fallback,h?(s=n.mode,h=n.child,x={mode:"hidden",children:x},(s&1)===0&&h!==null?(h.childLanes=0,h.pendingProps=x):h=Ds(x,s,0,null),e=hr(e,s,o,null),h.return=n,e.return=n,h.sibling=e,n.child=h,n.child.memoizedState=Qa(o),n.memoizedState=Ka,e):Ga(n,x));if(f=e.memoizedState,f!==null&&(I=f.dehydrated,I!==null))return y0(e,n,x,s,I,f,o);if(h){h=s.fallback,x=n.mode,f=e.child,I=f.sibling;var R={mode:"hidden",children:s.children};return(x&1)===0&&n.child!==f?(s=n.child,s.childLanes=0,s.pendingProps=R,n.deletions=null):(s=Fn(f,R),s.subtreeFlags=f.subtreeFlags&14680064),I!==null?h=Fn(I,h):(h=hr(h,x,o,null),h.flags|=2),h.return=n,s.return=n,s.sibling=h,n.child=s,s=h,h=n.child,x=e.child.memoizedState,x=x===null?Qa(o):{baseLanes:x.baseLanes|o,cachePool:null,transitions:x.transitions},h.memoizedState=x,h.childLanes=e.childLanes&~o,n.memoizedState=Ka,s}return h=e.child,e=h.sibling,s=Fn(h,{mode:"visible",children:s.children}),(n.mode&1)===0&&(s.lanes=o),s.return=n,s.sibling=null,e!==null&&(o=n.deletions,o===null?(n.deletions=[e],n.flags|=16):o.push(e)),n.child=s,n.memoizedState=null,s}function Ga(e,n){return n=Ds({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function ks(e,n,o,s){return s!==null&&ka(s),Wr(n,e.child,null,o),e=Ga(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function y0(e,n,o,s,f,h,x){if(o)return n.flags&256?(n.flags&=-257,s=Ua(Error(i(422))),ks(e,n,x,s)):n.memoizedState!==null?(n.child=e.child,n.flags|=128,null):(h=s.fallback,f=n.mode,s=Ds({mode:"visible",children:s.children},f,0,null),h=hr(h,f,x,null),h.flags|=2,s.return=n,h.return=n,s.sibling=h,n.child=s,(n.mode&1)!==0&&Wr(n,e.child,null,x),n.child.memoizedState=Qa(x),n.memoizedState=Ka,h);if((n.mode&1)===0)return ks(e,n,x,null);if(f.data==="$!"){if(s=f.nextSibling&&f.nextSibling.dataset,s)var I=s.dgst;return s=I,h=Error(i(419)),s=Ua(h,s,void 0),ks(e,n,x,s)}if(I=(x&e.childLanes)!==0,pt||I){if(s=qe,s!==null){switch(x&-x){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=268435456;break;default:f=0}f=(f&(s.suspendedLanes|x))!==0?0:f,f!==0&&f!==h.retryLane&&(h.retryLane=f,pn(e,f),Ht(s,e,f,-1))}return du(),s=Ua(Error(i(421))),ks(e,n,x,s)}return f.data==="$?"?(n.flags|=128,n.child=e.child,n=T0.bind(null,e),f._reactRetry=n,null):(e=h.treeContext,Et=jn(f.nextSibling),kt=n,$e=!0,$t=null,e!==null&&(Tt[It++]=dn,Tt[It++]=hn,Tt[It++]=or,dn=e.id,hn=e.overflow,or=n),n=Ga(n,s.children),n.flags|=4096,n)}function hd(e,n,o){e.lanes|=n;var s=e.alternate;s!==null&&(s.lanes|=n),Ma(e.return,n,o)}function qa(e,n,o,s,f){var h=e.memoizedState;h===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:s,tail:o,tailMode:f}:(h.isBackwards=n,h.rendering=null,h.renderingStartTime=0,h.last=s,h.tail=o,h.tailMode=f)}function pd(e,n,o){var s=n.pendingProps,f=s.revealOrder,h=s.tail;if(at(e,n,s.children,o),s=Oe.current,(s&2)!==0)s=s&1|2,n.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&hd(e,o,n);else if(e.tag===19)hd(e,o,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(Le(Oe,s),(n.mode&1)===0)n.memoizedState=null;else switch(f){case"forwards":for(o=n.child,f=null;o!==null;)e=o.alternate,e!==null&&ms(e)===null&&(f=o),o=o.sibling;o=f,o===null?(f=n.child,n.child=null):(f=o.sibling,o.sibling=null),qa(n,!1,f,o,h);break;case"backwards":for(o=null,f=n.child,n.child=null;f!==null;){if(e=f.alternate,e!==null&&ms(e)===null){n.child=f;break}e=f.sibling,f.sibling=o,o=f,f=e}qa(n,!0,o,null,h);break;case"together":qa(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Es(e,n){(n.mode&1)===0&&e!==null&&(e.alternate=null,n.alternate=null,n.flags|=2)}function mn(e,n,o){if(e!==null&&(n.dependencies=e.dependencies),ur|=n.lanes,(o&n.childLanes)===0)return null;if(e!==null&&n.child!==e.child)throw Error(i(153));if(n.child!==null){for(e=n.child,o=Fn(e,e.pendingProps),n.child=o,o.return=n;e.sibling!==null;)e=e.sibling,o=o.sibling=Fn(e,e.pendingProps),o.return=n;o.sibling=null}return n.child}function v0(e,n,o){switch(n.tag){case 3:cd(n),Ur();break;case 5:Pf(n);break;case 1:ht(n.type)&&ss(n);break;case 4:Ta(n,n.stateNode.containerInfo);break;case 10:var s=n.type._context,f=n.memoizedProps.value;Le(ds,s._currentValue),s._currentValue=f;break;case 13:if(s=n.memoizedState,s!==null)return s.dehydrated!==null?(Le(Oe,Oe.current&1),n.flags|=128,null):(o&n.child.childLanes)!==0?dd(e,n,o):(Le(Oe,Oe.current&1),e=mn(e,n,o),e!==null?e.sibling:null);Le(Oe,Oe.current&1);break;case 19:if(s=(o&n.childLanes)!==0,(e.flags&128)!==0){if(s)return pd(e,n,o);n.flags|=128}if(f=n.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),Le(Oe,Oe.current),s)break;return null;case 22:case 23:return n.lanes=0,ld(e,n,o)}return mn(e,n,o)}var gd,Za,md,yd;gd=function(e,n){for(var o=n.child;o!==null;){if(o.tag===5||o.tag===6)e.appendChild(o.stateNode);else if(o.tag!==4&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===n)break;for(;o.sibling===null;){if(o.return===null||o.return===n)return;o=o.return}o.sibling.return=o.return,o=o.sibling}},Za=function(){},md=function(e,n,o,s){var f=e.memoizedProps;if(f!==s){e=n.stateNode,lr(Jt.current);var h=null;switch(o){case"input":f=ke(e,f),s=ke(e,s),h=[];break;case"select":f=B({},f,{value:void 0}),s=B({},s,{value:void 0}),h=[];break;case"textarea":f=ln(e,f),s=ln(e,s),h=[];break;default:typeof f.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=rs)}fo(o,s);var x;o=null;for(q in f)if(!s.hasOwnProperty(q)&&f.hasOwnProperty(q)&&f[q]!=null)if(q==="style"){var I=f[q];for(x in I)I.hasOwnProperty(x)&&(o||(o={}),o[x]="")}else q!=="dangerouslySetInnerHTML"&&q!=="children"&&q!=="suppressContentEditableWarning"&&q!=="suppressHydrationWarning"&&q!=="autoFocus"&&(a.hasOwnProperty(q)?h||(h=[]):(h=h||[]).push(q,null));for(q in s){var R=s[q];if(I=f!=null?f[q]:void 0,s.hasOwnProperty(q)&&R!==I&&(R!=null||I!=null))if(q==="style")if(I){for(x in I)!I.hasOwnProperty(x)||R&&R.hasOwnProperty(x)||(o||(o={}),o[x]="");for(x in R)R.hasOwnProperty(x)&&I[x]!==R[x]&&(o||(o={}),o[x]=R[x])}else o||(h||(h=[]),h.push(q,o)),o=R;else q==="dangerouslySetInnerHTML"?(R=R?R.__html:void 0,I=I?I.__html:void 0,R!=null&&I!==R&&(h=h||[]).push(q,R)):q==="children"?typeof R!="string"&&typeof R!="number"||(h=h||[]).push(q,""+R):q!=="suppressContentEditableWarning"&&q!=="suppressHydrationWarning"&&(a.hasOwnProperty(q)?(R!=null&&q==="onScroll"&&Re("scroll",e),h||I===R||(h=[])):(h=h||[]).push(q,R))}o&&(h=h||[]).push("style",o);var q=h;(n.updateQueue=q)&&(n.flags|=4)}},yd=function(e,n,o,s){o!==s&&(n.flags|=4)};function Qo(e,n){if(!$e)switch(e.tailMode){case"hidden":n=e.tail;for(var o=null;n!==null;)n.alternate!==null&&(o=n),n=n.sibling;o===null?e.tail=null:o.sibling=null;break;case"collapsed":o=e.tail;for(var s=null;o!==null;)o.alternate!==null&&(s=o),o=o.sibling;s===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function it(e){var n=e.alternate!==null&&e.alternate.child===e.child,o=0,s=0;if(n)for(var f=e.child;f!==null;)o|=f.lanes|f.childLanes,s|=f.subtreeFlags&14680064,s|=f.flags&14680064,f.return=e,f=f.sibling;else for(f=e.child;f!==null;)o|=f.lanes|f.childLanes,s|=f.subtreeFlags,s|=f.flags,f.return=e,f=f.sibling;return e.subtreeFlags|=s,e.childLanes=o,n}function x0(e,n,o){var s=n.pendingProps;switch(wa(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return it(n),null;case 1:return ht(n.type)&&is(),it(n),null;case 3:return s=n.stateNode,Kr(),Ae(dt),Ae(rt),La(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(cs(n)?n.flags|=4:e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,$t!==null&&(uu($t),$t=null))),Za(e,n),it(n),null;case 5:Ia(n);var f=lr(Uo.current);if(o=n.type,e!==null&&n.stateNode!=null)md(e,n,o,s,f),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!s){if(n.stateNode===null)throw Error(i(166));return it(n),null}if(e=lr(Jt.current),cs(n)){s=n.stateNode,o=n.type;var h=n.memoizedProps;switch(s[Zt]=n,s[Oo]=h,e=(n.mode&1)!==0,o){case"dialog":Re("cancel",s),Re("close",s);break;case"iframe":case"object":case"embed":Re("load",s);break;case"video":case"audio":for(f=0;f<Do.length;f++)Re(Do[f],s);break;case"source":Re("error",s);break;case"img":case"image":case"link":Re("error",s),Re("load",s);break;case"details":Re("toggle",s);break;case"input":Ne(s,h),Re("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!h.multiple},Re("invalid",s);break;case"textarea":Qt(s,h),Re("invalid",s)}fo(o,h),f=null;for(var x in h)if(h.hasOwnProperty(x)){var I=h[x];x==="children"?typeof I=="string"?s.textContent!==I&&(h.suppressHydrationWarning!==!0&&ns(s.textContent,I,e),f=["children",I]):typeof I=="number"&&s.textContent!==""+I&&(h.suppressHydrationWarning!==!0&&ns(s.textContent,I,e),f=["children",""+I]):a.hasOwnProperty(x)&&I!=null&&x==="onScroll"&&Re("scroll",s)}switch(o){case"input":xe(s),lt(s,h,!0);break;case"textarea":xe(s),ft(s);break;case"select":case"option":break;default:typeof h.onClick=="function"&&(s.onclick=rs)}s=f,n.updateQueue=s,s!==null&&(n.flags|=4)}else{x=f.nodeType===9?f:f.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Pt(o)),e==="http://www.w3.org/1999/xhtml"?o==="script"?(e=x.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=x.createElement(o,{is:s.is}):(e=x.createElement(o),o==="select"&&(x=e,s.multiple?x.multiple=!0:s.size&&(x.size=s.size))):e=x.createElementNS(e,o),e[Zt]=n,e[Oo]=s,gd(e,n,!1,!1),n.stateNode=e;e:{switch(x=ho(o,s),o){case"dialog":Re("cancel",e),Re("close",e),f=s;break;case"iframe":case"object":case"embed":Re("load",e),f=s;break;case"video":case"audio":for(f=0;f<Do.length;f++)Re(Do[f],e);f=s;break;case"source":Re("error",e),f=s;break;case"img":case"image":case"link":Re("error",e),Re("load",e),f=s;break;case"details":Re("toggle",e),f=s;break;case"input":Ne(e,s),f=ke(e,s),Re("invalid",e);break;case"option":f=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},f=B({},s,{value:void 0}),Re("invalid",e);break;case"textarea":Qt(e,s),f=ln(e,s),Re("invalid",e);break;default:f=s}fo(o,f),I=f;for(h in I)if(I.hasOwnProperty(h)){var R=I[h];h==="style"?Mi(e,R):h==="dangerouslySetInnerHTML"?(R=R?R.__html:void 0,R!=null&&Er(e,R)):h==="children"?typeof R=="string"?(o!=="textarea"||R!=="")&&an(e,R):typeof R=="number"&&an(e,""+R):h!=="suppressContentEditableWarning"&&h!=="suppressHydrationWarning"&&h!=="autoFocus"&&(a.hasOwnProperty(h)?R!=null&&h==="onScroll"&&Re("scroll",e):R!=null&&k(e,h,R,x))}switch(o){case"input":xe(e),lt(e,s,!1);break;case"textarea":xe(e),ft(e);break;case"option":s.value!=null&&e.setAttribute("value",""+Q(s.value));break;case"select":e.multiple=!!s.multiple,h=s.value,h!=null?nt(e,!!s.multiple,h,!1):s.defaultValue!=null&&nt(e,!!s.multiple,s.defaultValue,!0);break;default:typeof f.onClick=="function"&&(e.onclick=rs)}switch(o){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return it(n),null;case 6:if(e&&n.stateNode!=null)yd(e,n,e.memoizedProps,s);else{if(typeof s!="string"&&n.stateNode===null)throw Error(i(166));if(o=lr(Uo.current),lr(Jt.current),cs(n)){if(s=n.stateNode,o=n.memoizedProps,s[Zt]=n,(h=s.nodeValue!==o)&&(e=kt,e!==null))switch(e.tag){case 3:ns(s.nodeValue,o,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&ns(s.nodeValue,o,(e.mode&1)!==0)}h&&(n.flags|=4)}else s=(o.nodeType===9?o:o.ownerDocument).createTextNode(s),s[Zt]=n,n.stateNode=s}return it(n),null;case 13:if(Ae(Oe),s=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if($e&&Et!==null&&(n.mode&1)!==0&&(n.flags&128)===0)wf(),Ur(),n.flags|=98560,h=!1;else if(h=cs(n),s!==null&&s.dehydrated!==null){if(e===null){if(!h)throw Error(i(318));if(h=n.memoizedState,h=h!==null?h.dehydrated:null,!h)throw Error(i(317));h[Zt]=n}else Ur(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;it(n),h=!1}else $t!==null&&(uu($t),$t=null),h=!0;if(!h)return n.flags&65536?n:null}return(n.flags&128)!==0?(n.lanes=o,n):(s=s!==null,s!==(e!==null&&e.memoizedState!==null)&&s&&(n.child.flags|=8192,(n.mode&1)!==0&&(e===null||(Oe.current&1)!==0?Ke===0&&(Ke=3):du())),n.updateQueue!==null&&(n.flags|=4),it(n),null);case 4:return Kr(),Za(e,n),e===null&&$o(n.stateNode.containerInfo),it(n),null;case 10:return Ca(n.type._context),it(n),null;case 17:return ht(n.type)&&is(),it(n),null;case 19:if(Ae(Oe),h=n.memoizedState,h===null)return it(n),null;if(s=(n.flags&128)!==0,x=h.rendering,x===null)if(s)Qo(h,!1);else{if(Ke!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(x=ms(e),x!==null){for(n.flags|=128,Qo(h,!1),s=x.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),n.subtreeFlags=0,s=o,o=n.child;o!==null;)h=o,e=s,h.flags&=14680066,x=h.alternate,x===null?(h.childLanes=0,h.lanes=e,h.child=null,h.subtreeFlags=0,h.memoizedProps=null,h.memoizedState=null,h.updateQueue=null,h.dependencies=null,h.stateNode=null):(h.childLanes=x.childLanes,h.lanes=x.lanes,h.child=x.child,h.subtreeFlags=0,h.deletions=null,h.memoizedProps=x.memoizedProps,h.memoizedState=x.memoizedState,h.updateQueue=x.updateQueue,h.type=x.type,e=x.dependencies,h.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),o=o.sibling;return Le(Oe,Oe.current&1|2),n.child}e=e.sibling}h.tail!==null&&be()>Zr&&(n.flags|=128,s=!0,Qo(h,!1),n.lanes=4194304)}else{if(!s)if(e=ms(x),e!==null){if(n.flags|=128,s=!0,o=e.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),Qo(h,!0),h.tail===null&&h.tailMode==="hidden"&&!x.alternate&&!$e)return it(n),null}else 2*be()-h.renderingStartTime>Zr&&o!==1073741824&&(n.flags|=128,s=!0,Qo(h,!1),n.lanes=4194304);h.isBackwards?(x.sibling=n.child,n.child=x):(o=h.last,o!==null?o.sibling=x:n.child=x,h.last=x)}return h.tail!==null?(n=h.tail,h.rendering=n,h.tail=n.sibling,h.renderingStartTime=be(),n.sibling=null,o=Oe.current,Le(Oe,s?o&1|2:o&1),n):(it(n),null);case 22:case 23:return fu(),s=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(n.flags|=8192),s&&(n.mode&1)!==0?(Nt&1073741824)!==0&&(it(n),n.subtreeFlags&6&&(n.flags|=8192)):it(n),null;case 24:return null;case 25:return null}throw Error(i(156,n.tag))}function w0(e,n){switch(wa(n),n.tag){case 1:return ht(n.type)&&is(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Kr(),Ae(dt),Ae(rt),La(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return Ia(n),null;case 13:if(Ae(Oe),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(i(340));Ur()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return Ae(Oe),null;case 4:return Kr(),null;case 10:return Ca(n.type._context),null;case 22:case 23:return fu(),null;case 24:return null;default:return null}}var Ns=!1,st=!1,_0=typeof WeakSet=="function"?WeakSet:Set,de=null;function Gr(e,n){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(s){Ve(e,n,s)}else o.current=null}function Ja(e,n,o){try{o()}catch(s){Ve(e,n,s)}}var vd=!1;function S0(e,n){if(fa=Wi,e=Qc(),ra(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var s=o.getSelection&&o.getSelection();if(s&&s.rangeCount!==0){o=s.anchorNode;var f=s.anchorOffset,h=s.focusNode;s=s.focusOffset;try{o.nodeType,h.nodeType}catch{o=null;break e}var x=0,I=-1,R=-1,q=0,le=0,ae=e,se=null;t:for(;;){for(var fe;ae!==o||f!==0&&ae.nodeType!==3||(I=x+f),ae!==h||s!==0&&ae.nodeType!==3||(R=x+s),ae.nodeType===3&&(x+=ae.nodeValue.length),(fe=ae.firstChild)!==null;)se=ae,ae=fe;for(;;){if(ae===e)break t;if(se===o&&++q===f&&(I=x),se===h&&++le===s&&(R=x),(fe=ae.nextSibling)!==null)break;ae=se,se=ae.parentNode}ae=fe}o=I===-1||R===-1?null:{start:I,end:R}}else o=null}o=o||{start:0,end:0}}else o=null;for(da={focusedElem:e,selectionRange:o},Wi=!1,de=n;de!==null;)if(n=de,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,de=e;else for(;de!==null;){n=de;try{var pe=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(pe!==null){var ge=pe.memoizedProps,Ue=pe.memoizedState,X=n.stateNode,H=X.getSnapshotBeforeUpdate(n.elementType===n.type?ge:bt(n.type,ge),Ue);X.__reactInternalSnapshotBeforeUpdate=H}break;case 3:var K=n.stateNode.containerInfo;K.nodeType===1?K.textContent="":K.nodeType===9&&K.documentElement&&K.removeChild(K.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(ue){Ve(n,n.return,ue)}if(e=n.sibling,e!==null){e.return=n.return,de=e;break}de=n.return}return pe=vd,vd=!1,pe}function Go(e,n,o){var s=n.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var f=s=s.next;do{if((f.tag&e)===e){var h=f.destroy;f.destroy=void 0,h!==void 0&&Ja(n,o,h)}f=f.next}while(f!==s)}}function Cs(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var s=o.create;o.destroy=s()}o=o.next}while(o!==n)}}function eu(e){var n=e.ref;if(n!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof n=="function"?n(e):n.current=e}}function xd(e){var n=e.alternate;n!==null&&(e.alternate=null,xd(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Zt],delete n[Oo],delete n[ma],delete n[o0],delete n[i0])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function wd(e){return e.tag===5||e.tag===3||e.tag===4}function _d(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||wd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function tu(e,n,o){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(e,n):o.insertBefore(e,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(e,o)):(n=o,n.appendChild(e)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=rs));else if(s!==4&&(e=e.child,e!==null))for(tu(e,n,o),e=e.sibling;e!==null;)tu(e,n,o),e=e.sibling}function nu(e,n,o){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?o.insertBefore(e,n):o.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(nu(e,n,o),e=e.sibling;e!==null;)nu(e,n,o),e=e.sibling}var Je=null,Ot=!1;function An(e,n,o){for(o=o.child;o!==null;)Sd(e,n,o),o=o.sibling}function Sd(e,n,o){if(wt&&typeof wt.onCommitFiberUnmount=="function")try{wt.onCommitFiberUnmount(Pr,o)}catch{}switch(o.tag){case 5:st||Gr(o,n);case 6:var s=Je,f=Ot;Je=null,An(e,n,o),Je=s,Ot=f,Je!==null&&(Ot?(e=Je,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):Je.removeChild(o.stateNode));break;case 18:Je!==null&&(Ot?(e=Je,o=o.stateNode,e.nodeType===8?ga(e.parentNode,o):e.nodeType===1&&ga(e,o),Po(e)):ga(Je,o.stateNode));break;case 4:s=Je,f=Ot,Je=o.stateNode.containerInfo,Ot=!0,An(e,n,o),Je=s,Ot=f;break;case 0:case 11:case 14:case 15:if(!st&&(s=o.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){f=s=s.next;do{var h=f,x=h.destroy;h=h.tag,x!==void 0&&((h&2)!==0||(h&4)!==0)&&Ja(o,n,x),f=f.next}while(f!==s)}An(e,n,o);break;case 1:if(!st&&(Gr(o,n),s=o.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=o.memoizedProps,s.state=o.memoizedState,s.componentWillUnmount()}catch(I){Ve(o,n,I)}An(e,n,o);break;case 21:An(e,n,o);break;case 22:o.mode&1?(st=(s=st)||o.memoizedState!==null,An(e,n,o),st=s):An(e,n,o);break;default:An(e,n,o)}}function kd(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new _0),n.forEach(function(s){var f=I0.bind(null,e,s);o.has(s)||(o.add(s),s.then(f,f))})}}function Ft(e,n){var o=n.deletions;if(o!==null)for(var s=0;s<o.length;s++){var f=o[s];try{var h=e,x=n,I=x;e:for(;I!==null;){switch(I.tag){case 5:Je=I.stateNode,Ot=!1;break e;case 3:Je=I.stateNode.containerInfo,Ot=!0;break e;case 4:Je=I.stateNode.containerInfo,Ot=!0;break e}I=I.return}if(Je===null)throw Error(i(160));Sd(h,x,f),Je=null,Ot=!1;var R=f.alternate;R!==null&&(R.return=null),f.return=null}catch(q){Ve(f,n,q)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)Ed(n,e),n=n.sibling}function Ed(e,n){var o=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ft(n,e),tn(e),s&4){try{Go(3,e,e.return),Cs(3,e)}catch(ge){Ve(e,e.return,ge)}try{Go(5,e,e.return)}catch(ge){Ve(e,e.return,ge)}}break;case 1:Ft(n,e),tn(e),s&512&&o!==null&&Gr(o,o.return);break;case 5:if(Ft(n,e),tn(e),s&512&&o!==null&&Gr(o,o.return),e.flags&32){var f=e.stateNode;try{an(f,"")}catch(ge){Ve(e,e.return,ge)}}if(s&4&&(f=e.stateNode,f!=null)){var h=e.memoizedProps,x=o!==null?o.memoizedProps:h,I=e.type,R=e.updateQueue;if(e.updateQueue=null,R!==null)try{I==="input"&&h.type==="radio"&&h.name!=null&&Me(f,h),ho(I,x);var q=ho(I,h);for(x=0;x<R.length;x+=2){var le=R[x],ae=R[x+1];le==="style"?Mi(f,ae):le==="dangerouslySetInnerHTML"?Er(f,ae):le==="children"?an(f,ae):k(f,le,ae,q)}switch(I){case"input":Ie(f,h);break;case"textarea":Gt(f,h);break;case"select":var se=f._wrapperState.wasMultiple;f._wrapperState.wasMultiple=!!h.multiple;var fe=h.value;fe!=null?nt(f,!!h.multiple,fe,!1):se!==!!h.multiple&&(h.defaultValue!=null?nt(f,!!h.multiple,h.defaultValue,!0):nt(f,!!h.multiple,h.multiple?[]:"",!1))}f[Oo]=h}catch(ge){Ve(e,e.return,ge)}}break;case 6:if(Ft(n,e),tn(e),s&4){if(e.stateNode===null)throw Error(i(162));f=e.stateNode,h=e.memoizedProps;try{f.nodeValue=h}catch(ge){Ve(e,e.return,ge)}}break;case 3:if(Ft(n,e),tn(e),s&4&&o!==null&&o.memoizedState.isDehydrated)try{Po(n.containerInfo)}catch(ge){Ve(e,e.return,ge)}break;case 4:Ft(n,e),tn(e);break;case 13:Ft(n,e),tn(e),f=e.child,f.flags&8192&&(h=f.memoizedState!==null,f.stateNode.isHidden=h,!h||f.alternate!==null&&f.alternate.memoizedState!==null||(iu=be())),s&4&&kd(e);break;case 22:if(le=o!==null&&o.memoizedState!==null,e.mode&1?(st=(q=st)||le,Ft(n,e),st=q):Ft(n,e),tn(e),s&8192){if(q=e.memoizedState!==null,(e.stateNode.isHidden=q)&&!le&&(e.mode&1)!==0)for(de=e,le=e.child;le!==null;){for(ae=de=le;de!==null;){switch(se=de,fe=se.child,se.tag){case 0:case 11:case 14:case 15:Go(4,se,se.return);break;case 1:Gr(se,se.return);var pe=se.stateNode;if(typeof pe.componentWillUnmount=="function"){s=se,o=se.return;try{n=s,pe.props=n.memoizedProps,pe.state=n.memoizedState,pe.componentWillUnmount()}catch(ge){Ve(s,o,ge)}}break;case 5:Gr(se,se.return);break;case 22:if(se.memoizedState!==null){Md(ae);continue}}fe!==null?(fe.return=se,de=fe):Md(ae)}le=le.sibling}e:for(le=null,ae=e;;){if(ae.tag===5){if(le===null){le=ae;try{f=ae.stateNode,q?(h=f.style,typeof h.setProperty=="function"?h.setProperty("display","none","important"):h.display="none"):(I=ae.stateNode,R=ae.memoizedProps.style,x=R!=null&&R.hasOwnProperty("display")?R.display:null,I.style.display=Ci("display",x))}catch(ge){Ve(e,e.return,ge)}}}else if(ae.tag===6){if(le===null)try{ae.stateNode.nodeValue=q?"":ae.memoizedProps}catch(ge){Ve(e,e.return,ge)}}else if((ae.tag!==22&&ae.tag!==23||ae.memoizedState===null||ae===e)&&ae.child!==null){ae.child.return=ae,ae=ae.child;continue}if(ae===e)break e;for(;ae.sibling===null;){if(ae.return===null||ae.return===e)break e;le===ae&&(le=null),ae=ae.return}le===ae&&(le=null),ae.sibling.return=ae.return,ae=ae.sibling}}break;case 19:Ft(n,e),tn(e),s&4&&kd(e);break;case 21:break;default:Ft(n,e),tn(e)}}function tn(e){var n=e.flags;if(n&2){try{e:{for(var o=e.return;o!==null;){if(wd(o)){var s=o;break e}o=o.return}throw Error(i(160))}switch(s.tag){case 5:var f=s.stateNode;s.flags&32&&(an(f,""),s.flags&=-33);var h=_d(e);nu(e,h,f);break;case 3:case 4:var x=s.stateNode.containerInfo,I=_d(e);tu(e,I,x);break;default:throw Error(i(161))}}catch(R){Ve(e,e.return,R)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function k0(e,n,o){de=e,Nd(e)}function Nd(e,n,o){for(var s=(e.mode&1)!==0;de!==null;){var f=de,h=f.child;if(f.tag===22&&s){var x=f.memoizedState!==null||Ns;if(!x){var I=f.alternate,R=I!==null&&I.memoizedState!==null||st;I=Ns;var q=st;if(Ns=x,(st=R)&&!q)for(de=f;de!==null;)x=de,R=x.child,x.tag===22&&x.memoizedState!==null?Pd(f):R!==null?(R.return=x,de=R):Pd(f);for(;h!==null;)de=h,Nd(h),h=h.sibling;de=f,Ns=I,st=q}Cd(e)}else(f.subtreeFlags&8772)!==0&&h!==null?(h.return=f,de=h):Cd(e)}}function Cd(e){for(;de!==null;){var n=de;if((n.flags&8772)!==0){var o=n.alternate;try{if((n.flags&8772)!==0)switch(n.tag){case 0:case 11:case 15:st||Cs(5,n);break;case 1:var s=n.stateNode;if(n.flags&4&&!st)if(o===null)s.componentDidMount();else{var f=n.elementType===n.type?o.memoizedProps:bt(n.type,o.memoizedProps);s.componentDidUpdate(f,o.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var h=n.updateQueue;h!==null&&Mf(n,h,s);break;case 3:var x=n.updateQueue;if(x!==null){if(o=null,n.child!==null)switch(n.child.tag){case 5:o=n.child.stateNode;break;case 1:o=n.child.stateNode}Mf(n,x,o)}break;case 5:var I=n.stateNode;if(o===null&&n.flags&4){o=I;var R=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":R.autoFocus&&o.focus();break;case"img":R.src&&(o.src=R.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var q=n.alternate;if(q!==null){var le=q.memoizedState;if(le!==null){var ae=le.dehydrated;ae!==null&&Po(ae)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}st||n.flags&512&&eu(n)}catch(se){Ve(n,n.return,se)}}if(n===e){de=null;break}if(o=n.sibling,o!==null){o.return=n.return,de=o;break}de=n.return}}function Md(e){for(;de!==null;){var n=de;if(n===e){de=null;break}var o=n.sibling;if(o!==null){o.return=n.return,de=o;break}de=n.return}}function Pd(e){for(;de!==null;){var n=de;try{switch(n.tag){case 0:case 11:case 15:var o=n.return;try{Cs(4,n)}catch(R){Ve(n,o,R)}break;case 1:var s=n.stateNode;if(typeof s.componentDidMount=="function"){var f=n.return;try{s.componentDidMount()}catch(R){Ve(n,f,R)}}var h=n.return;try{eu(n)}catch(R){Ve(n,h,R)}break;case 5:var x=n.return;try{eu(n)}catch(R){Ve(n,x,R)}}}catch(R){Ve(n,n.return,R)}if(n===e){de=null;break}var I=n.sibling;if(I!==null){I.return=n.return,de=I;break}de=n.return}}var E0=Math.ceil,Ms=T.ReactCurrentDispatcher,ru=T.ReactCurrentOwner,Rt=T.ReactCurrentBatchConfig,Pe=0,qe=null,We=null,et=0,Nt=0,qr=Tn(0),Ke=0,qo=null,ur=0,Ps=0,ou=0,Zo=null,gt=null,iu=0,Zr=1/0,yn=null,js=!1,su=null,Dn=null,Ts=!1,$n=null,Is=0,Jo=0,lu=null,zs=-1,Ls=0;function ut(){return(Pe&6)!==0?be():zs!==-1?zs:zs=be()}function bn(e){return(e.mode&1)===0?1:(Pe&2)!==0&&et!==0?et&-et:l0.transition!==null?(Ls===0&&(Ls=Bi()),Ls):(e=ze,e!==0||(e=window.event,e=e===void 0?16:jc(e.type)),e)}function Ht(e,n,o,s){if(50<Jo)throw Jo=0,lu=null,Error(i(185));tr(e,o,s),((Pe&2)===0||e!==qe)&&(e===qe&&((Pe&2)===0&&(Ps|=o),Ke===4&&On(e,et)),mt(e,s),o===1&&Pe===0&&(n.mode&1)===0&&(Zr=be()+500,ls&&zn()))}function mt(e,n){var o=e.callbackNode;Hi(e,n);var s=un(e,e===qe?et:0);if(s===0)o!==null&&$i(o),e.callbackNode=null,e.callbackPriority=0;else if(n=s&-s,e.callbackPriority!==n){if(o!=null&&$i(o),n===1)e.tag===0?s0(Td.bind(null,e)):gf(Td.bind(null,e)),n0(function(){(Pe&6)===0&&zn()}),o=null;else{switch(_c(s)){case 1:o=So;break;case 4:o=Oi;break;case 16:o=Mr;break;case 536870912:o=Fi;break;default:o=Mr}o=bd(o,jd.bind(null,e))}e.callbackPriority=n,e.callbackNode=o}}function jd(e,n){if(zs=-1,Ls=0,(Pe&6)!==0)throw Error(i(327));var o=e.callbackNode;if(Jr()&&e.callbackNode!==o)return null;var s=un(e,e===qe?et:0);if(s===0)return null;if((s&30)!==0||(s&e.expiredLanes)!==0||n)n=Rs(e,s);else{n=s;var f=Pe;Pe|=2;var h=zd();(qe!==e||et!==n)&&(yn=null,Zr=be()+500,fr(e,n));do try{M0();break}catch(I){Id(e,I)}while(!0);Na(),Ms.current=h,Pe=f,We!==null?n=0:(qe=null,et=0,n=Ke)}if(n!==0){if(n===2&&(f=ko(e),f!==0&&(s=f,n=au(e,f))),n===1)throw o=qo,fr(e,0),On(e,s),mt(e,be()),o;if(n===6)On(e,s);else{if(f=e.current.alternate,(s&30)===0&&!N0(f)&&(n=Rs(e,s),n===2&&(h=ko(e),h!==0&&(s=h,n=au(e,h))),n===1))throw o=qo,fr(e,0),On(e,s),mt(e,be()),o;switch(e.finishedWork=f,e.finishedLanes=s,n){case 0:case 1:throw Error(i(345));case 2:dr(e,gt,yn);break;case 3:if(On(e,s),(s&130023424)===s&&(n=iu+500-be(),10<n)){if(un(e,0)!==0)break;if(f=e.suspendedLanes,(f&s)!==s){ut(),e.pingedLanes|=e.suspendedLanes&f;break}e.timeoutHandle=pa(dr.bind(null,e,gt,yn),n);break}dr(e,gt,yn);break;case 4:if(On(e,s),(s&4194240)===s)break;for(n=e.eventTimes,f=-1;0<s;){var x=31-_t(s);h=1<<x,x=n[x],x>f&&(f=x),s&=~h}if(s=f,s=be()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*E0(s/1960))-s,10<s){e.timeoutHandle=pa(dr.bind(null,e,gt,yn),s);break}dr(e,gt,yn);break;case 5:dr(e,gt,yn);break;default:throw Error(i(329))}}}return mt(e,be()),e.callbackNode===o?jd.bind(null,e):null}function au(e,n){var o=Zo;return e.current.memoizedState.isDehydrated&&(fr(e,n).flags|=256),e=Rs(e,n),e!==2&&(n=gt,gt=o,n!==null&&uu(n)),e}function uu(e){gt===null?gt=e:gt.push.apply(gt,e)}function N0(e){for(var n=e;;){if(n.flags&16384){var o=n.updateQueue;if(o!==null&&(o=o.stores,o!==null))for(var s=0;s<o.length;s++){var f=o[s],h=f.getSnapshot;f=f.value;try{if(!Dt(h(),f))return!1}catch{return!1}}}if(o=n.child,n.subtreeFlags&16384&&o!==null)o.return=n,n=o;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function On(e,n){for(n&=~ou,n&=~Ps,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var o=31-_t(n),s=1<<o;e[o]=-1,n&=~s}}function Td(e){if((Pe&6)!==0)throw Error(i(327));Jr();var n=un(e,0);if((n&1)===0)return mt(e,be()),null;var o=Rs(e,n);if(e.tag!==0&&o===2){var s=ko(e);s!==0&&(n=s,o=au(e,s))}if(o===1)throw o=qo,fr(e,0),On(e,n),mt(e,be()),o;if(o===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,dr(e,gt,yn),mt(e,be()),null}function cu(e,n){var o=Pe;Pe|=1;try{return e(n)}finally{Pe=o,Pe===0&&(Zr=be()+500,ls&&zn())}}function cr(e){$n!==null&&$n.tag===0&&(Pe&6)===0&&Jr();var n=Pe;Pe|=1;var o=Rt.transition,s=ze;try{if(Rt.transition=null,ze=1,e)return e()}finally{ze=s,Rt.transition=o,Pe=n,(Pe&6)===0&&zn()}}function fu(){Nt=qr.current,Ae(qr)}function fr(e,n){e.finishedWork=null,e.finishedLanes=0;var o=e.timeoutHandle;if(o!==-1&&(e.timeoutHandle=-1,t0(o)),We!==null)for(o=We.return;o!==null;){var s=o;switch(wa(s),s.tag){case 1:s=s.type.childContextTypes,s!=null&&is();break;case 3:Kr(),Ae(dt),Ae(rt),La();break;case 5:Ia(s);break;case 4:Kr();break;case 13:Ae(Oe);break;case 19:Ae(Oe);break;case 10:Ca(s.type._context);break;case 22:case 23:fu()}o=o.return}if(qe=e,We=e=Fn(e.current,null),et=Nt=n,Ke=0,qo=null,ou=Ps=ur=0,gt=Zo=null,sr!==null){for(n=0;n<sr.length;n++)if(o=sr[n],s=o.interleaved,s!==null){o.interleaved=null;var f=s.next,h=o.pending;if(h!==null){var x=h.next;h.next=f,s.next=x}o.pending=s}sr=null}return e}function Id(e,n){do{var o=We;try{if(Na(),ys.current=_s,vs){for(var s=Fe.memoizedState;s!==null;){var f=s.queue;f!==null&&(f.pending=null),s=s.next}vs=!1}if(ar=0,Ge=Xe=Fe=null,Wo=!1,Yo=0,ru.current=null,o===null||o.return===null){Ke=1,qo=n,We=null;break}e:{var h=e,x=o.return,I=o,R=n;if(n=et,I.flags|=32768,R!==null&&typeof R=="object"&&typeof R.then=="function"){var q=R,le=I,ae=le.tag;if((le.mode&1)===0&&(ae===0||ae===11||ae===15)){var se=le.alternate;se?(le.updateQueue=se.updateQueue,le.memoizedState=se.memoizedState,le.lanes=se.lanes):(le.updateQueue=null,le.memoizedState=null)}var fe=nd(x);if(fe!==null){fe.flags&=-257,rd(fe,x,I,h,n),fe.mode&1&&td(h,q,n),n=fe,R=q;var pe=n.updateQueue;if(pe===null){var ge=new Set;ge.add(R),n.updateQueue=ge}else pe.add(R);break e}else{if((n&1)===0){td(h,q,n),du();break e}R=Error(i(426))}}else if($e&&I.mode&1){var Ue=nd(x);if(Ue!==null){(Ue.flags&65536)===0&&(Ue.flags|=256),rd(Ue,x,I,h,n),ka(Qr(R,I));break e}}h=R=Qr(R,I),Ke!==4&&(Ke=2),Zo===null?Zo=[h]:Zo.push(h),h=x;do{switch(h.tag){case 3:h.flags|=65536,n&=-n,h.lanes|=n;var X=Jf(h,R,n);Cf(h,X);break e;case 1:I=R;var H=h.type,K=h.stateNode;if((h.flags&128)===0&&(typeof H.getDerivedStateFromError=="function"||K!==null&&typeof K.componentDidCatch=="function"&&(Dn===null||!Dn.has(K)))){h.flags|=65536,n&=-n,h.lanes|=n;var ue=ed(h,I,n);Cf(h,ue);break e}}h=h.return}while(h!==null)}Rd(o)}catch(me){n=me,We===o&&o!==null&&(We=o=o.return);continue}break}while(!0)}function zd(){var e=Ms.current;return Ms.current=_s,e===null?_s:e}function du(){(Ke===0||Ke===3||Ke===2)&&(Ke=4),qe===null||(ur&268435455)===0&&(Ps&268435455)===0||On(qe,et)}function Rs(e,n){var o=Pe;Pe|=2;var s=zd();(qe!==e||et!==n)&&(yn=null,fr(e,n));do try{C0();break}catch(f){Id(e,f)}while(!0);if(Na(),Pe=o,Ms.current=s,We!==null)throw Error(i(261));return qe=null,et=0,Ke}function C0(){for(;We!==null;)Ld(We)}function M0(){for(;We!==null&&!Al();)Ld(We)}function Ld(e){var n=$d(e.alternate,e,Nt);e.memoizedProps=e.pendingProps,n===null?Rd(e):We=n,ru.current=null}function Rd(e){var n=e;do{var o=n.alternate;if(e=n.return,(n.flags&32768)===0){if(o=x0(o,n,Nt),o!==null){We=o;return}}else{if(o=w0(o,n),o!==null){o.flags&=32767,We=o;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Ke=6,We=null;return}}if(n=n.sibling,n!==null){We=n;return}We=n=e}while(n!==null);Ke===0&&(Ke=5)}function dr(e,n,o){var s=ze,f=Rt.transition;try{Rt.transition=null,ze=1,P0(e,n,o,s)}finally{Rt.transition=f,ze=s}return null}function P0(e,n,o,s){do Jr();while($n!==null);if((Pe&6)!==0)throw Error(i(327));o=e.finishedWork;var f=e.finishedLanes;if(o===null)return null;if(e.finishedWork=null,e.finishedLanes=0,o===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var h=o.lanes|o.childLanes;if(Vl(e,h),e===qe&&(We=qe=null,et=0),(o.subtreeFlags&2064)===0&&(o.flags&2064)===0||Ts||(Ts=!0,bd(Mr,function(){return Jr(),null})),h=(o.flags&15990)!==0,(o.subtreeFlags&15990)!==0||h){h=Rt.transition,Rt.transition=null;var x=ze;ze=1;var I=Pe;Pe|=4,ru.current=null,S0(e,o),Ed(o,e),Km(da),Wi=!!fa,da=fa=null,e.current=o,k0(o),bi(),Pe=I,ze=x,Rt.transition=h}else e.current=o;if(Ts&&(Ts=!1,$n=e,Is=f),h=e.pendingLanes,h===0&&(Dn=null),bl(o.stateNode),mt(e,be()),n!==null)for(s=e.onRecoverableError,o=0;o<n.length;o++)f=n[o],s(f.value,{componentStack:f.stack,digest:f.digest});if(js)throw js=!1,e=su,su=null,e;return(Is&1)!==0&&e.tag!==0&&Jr(),h=e.pendingLanes,(h&1)!==0?e===lu?Jo++:(Jo=0,lu=e):Jo=0,zn(),null}function Jr(){if($n!==null){var e=_c(Is),n=Rt.transition,o=ze;try{if(Rt.transition=null,ze=16>e?16:e,$n===null)var s=!1;else{if(e=$n,$n=null,Is=0,(Pe&6)!==0)throw Error(i(331));var f=Pe;for(Pe|=4,de=e.current;de!==null;){var h=de,x=h.child;if((de.flags&16)!==0){var I=h.deletions;if(I!==null){for(var R=0;R<I.length;R++){var q=I[R];for(de=q;de!==null;){var le=de;switch(le.tag){case 0:case 11:case 15:Go(8,le,h)}var ae=le.child;if(ae!==null)ae.return=le,de=ae;else for(;de!==null;){le=de;var se=le.sibling,fe=le.return;if(xd(le),le===q){de=null;break}if(se!==null){se.return=fe,de=se;break}de=fe}}}var pe=h.alternate;if(pe!==null){var ge=pe.child;if(ge!==null){pe.child=null;do{var Ue=ge.sibling;ge.sibling=null,ge=Ue}while(ge!==null)}}de=h}}if((h.subtreeFlags&2064)!==0&&x!==null)x.return=h,de=x;else e:for(;de!==null;){if(h=de,(h.flags&2048)!==0)switch(h.tag){case 0:case 11:case 15:Go(9,h,h.return)}var X=h.sibling;if(X!==null){X.return=h.return,de=X;break e}de=h.return}}var H=e.current;for(de=H;de!==null;){x=de;var K=x.child;if((x.subtreeFlags&2064)!==0&&K!==null)K.return=x,de=K;else e:for(x=H;de!==null;){if(I=de,(I.flags&2048)!==0)try{switch(I.tag){case 0:case 11:case 15:Cs(9,I)}}catch(me){Ve(I,I.return,me)}if(I===x){de=null;break e}var ue=I.sibling;if(ue!==null){ue.return=I.return,de=ue;break e}de=I.return}}if(Pe=f,zn(),wt&&typeof wt.onPostCommitFiberRoot=="function")try{wt.onPostCommitFiberRoot(Pr,e)}catch{}s=!0}return s}finally{ze=o,Rt.transition=n}}return!1}function Ad(e,n,o){n=Qr(o,n),n=Jf(e,n,1),e=Rn(e,n,1),n=ut(),e!==null&&(tr(e,1,n),mt(e,n))}function Ve(e,n,o){if(e.tag===3)Ad(e,e,o);else for(;n!==null;){if(n.tag===3){Ad(n,e,o);break}else if(n.tag===1){var s=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(Dn===null||!Dn.has(s))){e=Qr(o,e),e=ed(n,e,1),n=Rn(n,e,1),e=ut(),n!==null&&(tr(n,1,e),mt(n,e));break}}n=n.return}}function j0(e,n,o){var s=e.pingCache;s!==null&&s.delete(n),n=ut(),e.pingedLanes|=e.suspendedLanes&o,qe===e&&(et&o)===o&&(Ke===4||Ke===3&&(et&130023424)===et&&500>be()-iu?fr(e,0):ou|=o),mt(e,n)}function Dd(e,n){n===0&&((e.mode&1)===0?n=1:(n=Tr,Tr<<=1,(Tr&130023424)===0&&(Tr=4194304)));var o=ut();e=pn(e,n),e!==null&&(tr(e,n,o),mt(e,o))}function T0(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),Dd(e,o)}function I0(e,n){var o=0;switch(e.tag){case 13:var s=e.stateNode,f=e.memoizedState;f!==null&&(o=f.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(i(314))}s!==null&&s.delete(n),Dd(e,o)}var $d;$d=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||dt.current)pt=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return pt=!1,v0(e,n,o);pt=(e.flags&131072)!==0}else pt=!1,$e&&(n.flags&1048576)!==0&&mf(n,us,n.index);switch(n.lanes=0,n.tag){case 2:var s=n.type;Es(e,n),e=n.pendingProps;var f=Hr(n,rt.current);Xr(n,o),f=Da(null,n,s,e,f,o);var h=$a();return n.flags|=1,typeof f=="object"&&f!==null&&typeof f.render=="function"&&f.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,ht(s)?(h=!0,ss(n)):h=!1,n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,ja(n),f.updater=Ss,n.stateNode=f,f._reactInternals=n,Va(n,s,e,o),n=Xa(null,n,s,!0,h,o)):(n.tag=0,$e&&h&&xa(n),at(null,n,f,o),n=n.child),n;case 16:s=n.elementType;e:{switch(Es(e,n),e=n.pendingProps,f=s._init,s=f(s._payload),n.type=s,f=n.tag=L0(s),e=bt(s,e),f){case 0:n=Ya(null,n,s,e,o);break e;case 1:n=ud(null,n,s,e,o);break e;case 11:n=od(null,n,s,e,o);break e;case 14:n=id(null,n,s,bt(s.type,e),o);break e}throw Error(i(306,s,""))}return n;case 0:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:bt(s,f),Ya(e,n,s,f,o);case 1:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:bt(s,f),ud(e,n,s,f,o);case 3:e:{if(cd(n),e===null)throw Error(i(387));s=n.pendingProps,h=n.memoizedState,f=h.element,Nf(e,n),gs(n,s,null,o);var x=n.memoizedState;if(s=x.element,h.isDehydrated)if(h={element:s,isDehydrated:!1,cache:x.cache,pendingSuspenseBoundaries:x.pendingSuspenseBoundaries,transitions:x.transitions},n.updateQueue.baseState=h,n.memoizedState=h,n.flags&256){f=Qr(Error(i(423)),n),n=fd(e,n,s,o,f);break e}else if(s!==f){f=Qr(Error(i(424)),n),n=fd(e,n,s,o,f);break e}else for(Et=jn(n.stateNode.containerInfo.firstChild),kt=n,$e=!0,$t=null,o=kf(n,null,s,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(Ur(),s===f){n=mn(e,n,o);break e}at(e,n,s,o)}n=n.child}return n;case 5:return Pf(n),e===null&&Sa(n),s=n.type,f=n.pendingProps,h=e!==null?e.memoizedProps:null,x=f.children,ha(s,f)?x=null:h!==null&&ha(s,h)&&(n.flags|=32),ad(e,n),at(e,n,x,o),n.child;case 6:return e===null&&Sa(n),null;case 13:return dd(e,n,o);case 4:return Ta(n,n.stateNode.containerInfo),s=n.pendingProps,e===null?n.child=Wr(n,null,s,o):at(e,n,s,o),n.child;case 11:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:bt(s,f),od(e,n,s,f,o);case 7:return at(e,n,n.pendingProps,o),n.child;case 8:return at(e,n,n.pendingProps.children,o),n.child;case 12:return at(e,n,n.pendingProps.children,o),n.child;case 10:e:{if(s=n.type._context,f=n.pendingProps,h=n.memoizedProps,x=f.value,Le(ds,s._currentValue),s._currentValue=x,h!==null)if(Dt(h.value,x)){if(h.children===f.children&&!dt.current){n=mn(e,n,o);break e}}else for(h=n.child,h!==null&&(h.return=n);h!==null;){var I=h.dependencies;if(I!==null){x=h.child;for(var R=I.firstContext;R!==null;){if(R.context===s){if(h.tag===1){R=gn(-1,o&-o),R.tag=2;var q=h.updateQueue;if(q!==null){q=q.shared;var le=q.pending;le===null?R.next=R:(R.next=le.next,le.next=R),q.pending=R}}h.lanes|=o,R=h.alternate,R!==null&&(R.lanes|=o),Ma(h.return,o,n),I.lanes|=o;break}R=R.next}}else if(h.tag===10)x=h.type===n.type?null:h.child;else if(h.tag===18){if(x=h.return,x===null)throw Error(i(341));x.lanes|=o,I=x.alternate,I!==null&&(I.lanes|=o),Ma(x,o,n),x=h.sibling}else x=h.child;if(x!==null)x.return=h;else for(x=h;x!==null;){if(x===n){x=null;break}if(h=x.sibling,h!==null){h.return=x.return,x=h;break}x=x.return}h=x}at(e,n,f.children,o),n=n.child}return n;case 9:return f=n.type,s=n.pendingProps.children,Xr(n,o),f=zt(f),s=s(f),n.flags|=1,at(e,n,s,o),n.child;case 14:return s=n.type,f=bt(s,n.pendingProps),f=bt(s.type,f),id(e,n,s,f,o);case 15:return sd(e,n,n.type,n.pendingProps,o);case 17:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:bt(s,f),Es(e,n),n.tag=1,ht(s)?(e=!0,ss(n)):e=!1,Xr(n,o),qf(n,s,f),Va(n,s,f,o),Xa(null,n,s,!0,e,o);case 19:return pd(e,n,o);case 22:return ld(e,n,o)}throw Error(i(156,n.tag))};function bd(e,n){return Di(e,n)}function z0(e,n,o,s){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function At(e,n,o,s){return new z0(e,n,o,s)}function hu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function L0(e){if(typeof e=="function")return hu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ee)return 11;if(e===$)return 14}return 2}function Fn(e,n){var o=e.alternate;return o===null?(o=At(e.tag,n,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=n,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,n=e.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function As(e,n,o,s,f,h){var x=2;if(s=e,typeof e=="function")hu(e)&&(x=1);else if(typeof e=="string")x=5;else e:switch(e){case z:return hr(o.children,f,h,n);case V:x=8,f|=8;break;case b:return e=At(12,o,n,f|2),e.elementType=b,e.lanes=h,e;case Z:return e=At(13,o,n,f),e.elementType=Z,e.lanes=h,e;case M:return e=At(19,o,n,f),e.elementType=M,e.lanes=h,e;case Y:return Ds(o,f,h,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case J:x=10;break e;case G:x=9;break e;case ee:x=11;break e;case $:x=14;break e;case W:x=16,s=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return n=At(x,o,n,f),n.elementType=e,n.type=s,n.lanes=h,n}function hr(e,n,o,s){return e=At(7,e,s,n),e.lanes=o,e}function Ds(e,n,o,s){return e=At(22,e,s,n),e.elementType=Y,e.lanes=o,e.stateNode={isHidden:!1},e}function pu(e,n,o){return e=At(6,e,null,n),e.lanes=o,e}function gu(e,n,o){return n=At(4,e.children!==null?e.children:[],e.key,n),n.lanes=o,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function R0(e,n,o,s,f){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=er(0),this.expirationTimes=er(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=er(0),this.identifierPrefix=s,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function mu(e,n,o,s,f,h,x,I,R){return e=new R0(e,n,o,I,R),n===1?(n=1,h===!0&&(n|=8)):n=0,h=At(3,null,null,n),e.current=h,h.stateNode=e,h.memoizedState={element:s,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},ja(h),e}function A0(e,n,o){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:O,key:s==null?null:""+s,children:e,containerInfo:n,implementation:o}}function Od(e){if(!e)return In;e=e._reactInternals;e:{if(qt(e)!==e||e.tag!==1)throw Error(i(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(ht(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(n!==null);throw Error(i(171))}if(e.tag===1){var o=e.type;if(ht(o))return hf(e,o,n)}return n}function Fd(e,n,o,s,f,h,x,I,R){return e=mu(o,s,!0,e,f,h,x,I,R),e.context=Od(null),o=e.current,s=ut(),f=bn(o),h=gn(s,f),h.callback=n??null,Rn(o,h,f),e.current.lanes=f,tr(e,f,s),mt(e,s),e}function $s(e,n,o,s){var f=n.current,h=ut(),x=bn(f);return o=Od(o),n.context===null?n.context=o:n.pendingContext=o,n=gn(h,x),n.payload={element:e},s=s===void 0?null:s,s!==null&&(n.callback=s),e=Rn(f,n,x),e!==null&&(Ht(e,f,x,h),ps(e,f,x)),x}function bs(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Hd(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var o=e.retryLane;e.retryLane=o!==0&&o<n?o:n}}function yu(e,n){Hd(e,n),(e=e.alternate)&&Hd(e,n)}function D0(){return null}var Bd=typeof reportError=="function"?reportError:function(e){console.error(e)};function vu(e){this._internalRoot=e}Os.prototype.render=vu.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(i(409));$s(e,n,null,null)},Os.prototype.unmount=vu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;cr(function(){$s(null,e,null,null)}),n[cn]=null}};function Os(e){this._internalRoot=e}Os.prototype.unstable_scheduleHydration=function(e){if(e){var n=Ec();e={blockedOn:null,target:e,priority:n};for(var o=0;o<Cn.length&&n!==0&&n<Cn[o].priority;o++);Cn.splice(o,0,e),o===0&&Mc(e)}};function xu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Fs(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Vd(){}function $0(e,n,o,s,f){if(f){if(typeof s=="function"){var h=s;s=function(){var q=bs(x);h.call(q)}}var x=Fd(n,s,e,0,null,!1,!1,"",Vd);return e._reactRootContainer=x,e[cn]=x.current,$o(e.nodeType===8?e.parentNode:e),cr(),x}for(;f=e.lastChild;)e.removeChild(f);if(typeof s=="function"){var I=s;s=function(){var q=bs(R);I.call(q)}}var R=mu(e,0,!1,null,null,!1,!1,"",Vd);return e._reactRootContainer=R,e[cn]=R.current,$o(e.nodeType===8?e.parentNode:e),cr(function(){$s(n,R,o,s)}),R}function Hs(e,n,o,s,f){var h=o._reactRootContainer;if(h){var x=h;if(typeof f=="function"){var I=f;f=function(){var R=bs(x);I.call(R)}}$s(n,x,e,f)}else x=$0(o,n,e,f,s);return bs(x)}Sc=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var o=Jn(n.pendingLanes);o!==0&&(Ir(n,o|1),mt(n,be()),(Pe&6)===0&&(Zr=be()+500,zn()))}break;case 13:cr(function(){var s=pn(e,1);if(s!==null){var f=ut();Ht(s,e,1,f)}}),yu(e,1)}},Ul=function(e){if(e.tag===13){var n=pn(e,134217728);if(n!==null){var o=ut();Ht(n,e,134217728,o)}yu(e,134217728)}},kc=function(e){if(e.tag===13){var n=bn(e),o=pn(e,n);if(o!==null){var s=ut();Ht(o,e,n,s)}yu(e,n)}},Ec=function(){return ze},Nc=function(e,n){var o=ze;try{return ze=e,n()}finally{ze=o}},mo=function(e,n,o){switch(n){case"input":if(Ie(e,o),n=o.name,o.type==="radio"&&n!=null){for(o=e;o.parentNode;)o=o.parentNode;for(o=o.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<o.length;n++){var s=o[n];if(s!==e&&s.form===e.form){var f=os(s);if(!f)throw Error(i(90));ye(s),Ie(s,f)}}}break;case"textarea":Gt(e,o);break;case"select":n=o.value,n!=null&&nt(e,!!o.multiple,n,!1)}},Ii=cu,zi=cr;var b0={usingClientEntryPoint:!1,Events:[Fo,Or,os,ji,Ti,cu]},ei={findFiberByHostInstance:nr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},O0={bundleType:ei.bundleType,version:ei.version,rendererPackageName:ei.rendererPackageName,rendererConfig:ei.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:T.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Ri(e),e===null?null:e.stateNode},findFiberByHostInstance:ei.findFiberByHostInstance||D0,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Bs=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bs.isDisabled&&Bs.supportsFiber)try{Pr=Bs.inject(O0),wt=Bs}catch{}}return yt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=b0,yt.createPortal=function(e,n){var o=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!xu(n))throw Error(i(200));return A0(e,n,null,o)},yt.createRoot=function(e,n){if(!xu(e))throw Error(i(299));var o=!1,s="",f=Bd;return n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(f=n.onRecoverableError)),n=mu(e,1,!1,null,null,o,!1,s,f),e[cn]=n.current,$o(e.nodeType===8?e.parentNode:e),new vu(n)},yt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=Ri(n),e=e===null?null:e.stateNode,e},yt.flushSync=function(e){return cr(e)},yt.hydrate=function(e,n,o){if(!Fs(n))throw Error(i(200));return Hs(null,e,n,!0,o)},yt.hydrateRoot=function(e,n,o){if(!xu(e))throw Error(i(405));var s=o!=null&&o.hydratedSources||null,f=!1,h="",x=Bd;if(o!=null&&(o.unstable_strictMode===!0&&(f=!0),o.identifierPrefix!==void 0&&(h=o.identifierPrefix),o.onRecoverableError!==void 0&&(x=o.onRecoverableError)),n=Fd(n,null,e,1,o??null,f,!1,h,x),e[cn]=n.current,$o(e),s)for(e=0;e<s.length;e++)o=s[e],f=o._getVersion,f=f(o._source),n.mutableSourceEagerHydrationData==null?n.mutableSourceEagerHydrationData=[o,f]:n.mutableSourceEagerHydrationData.push(o,f);return new Os(n)},yt.render=function(e,n,o){if(!Fs(n))throw Error(i(200));return Hs(null,e,n,!1,o)},yt.unmountComponentAtNode=function(e){if(!Fs(e))throw Error(i(40));return e._reactRootContainer?(cr(function(){Hs(null,null,e,!1,function(){e._reactRootContainer=null,e[cn]=null})}),!0):!1},yt.unstable_batchedUpdates=cu,yt.unstable_renderSubtreeIntoContainer=function(e,n,o,s){if(!Fs(o))throw Error(i(200));if(e==null||e._reactInternals===void 0)throw Error(i(38));return Hs(e,n,o,!1,s)},yt.version="18.3.1-next-f1338f8080-20240426",yt}var qd;function pp(){if(qd)return Su.exports;qd=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),Su.exports=Y0(),Su.exports}var Zd;function X0(){if(Zd)return Vs;Zd=1;var t=pp();return Vs.createRoot=t.createRoot,Vs.hydrateRoot=t.hydrateRoot,Vs}var K0=X0();async function Qe(t){if(!t.ok){let r;try{r=(await t.json()).detail}catch{r=t.statusText}throw new Kn(t.status,r)}return t.json()}class Kn extends Error{constructor(r,i){super(typeof i=="string"?i:JSON.stringify(i)),this.status=r,this.detail=i}}const He={schema:()=>fetch("/api/step-schema").then(t=>Qe(t)),listFlows:()=>fetch("/api/flows").then(t=>Qe(t)),getFlow:t=>fetch(`/api/flows/${encodeURIComponent(t)}`).then(r=>Qe(r)),saveFlow:(t,r)=>fetch(`/api/flows/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(i=>Qe(i)),deleteFlow:t=>fetch(`/api/flows/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>Qe(r)),runFlow:(t,r)=>fetch(`/api/flows/${encodeURIComponent(t)}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({close_mode:r})}).then(i=>Qe(i)),assist:(t,r,i)=>fetch(`/api/flows/${encodeURIComponent(t)}/assist`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({instruction:r,steps:i.steps,settings:i.settings})}).then(l=>Qe(l)),desktopWindows:()=>fetch("/api/desktop/windows").then(t=>Qe(t)),inspectWindow:t=>fetch("/api/desktop/inspect",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:t})}).then(r=>Qe(r)),listBlocks:()=>fetch("/api/blocks").then(t=>Qe(t)),getBlock:t=>fetch(`/api/blocks/${encodeURIComponent(t)}`).then(r=>Qe(r)),saveBlock:(t,r)=>fetch(`/api/blocks/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(i=>Qe(i)),deleteBlock:t=>fetch(`/api/blocks/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>Qe(r)),listDesktopImages:()=>fetch("/api/desktop-images").then(t=>Qe(t)),captureDesktopImage:t=>fetch("/api/desktop-images/capture",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}).then(r=>Qe(r)),deleteDesktopImage:t=>fetch(`/api/desktop-images/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>Qe(r)),desktopImageUrl:t=>`/api/desktop-images/${encodeURIComponent(t)}`,run:t=>fetch(`/api/runs/${t}`).then(r=>Qe(r)),closeBrowser:t=>fetch(`/api/runs/${t}/close-browser`,{method:"POST"}).then(r=>Qe(r)),showTrace:t=>fetch(`/api/runs/${t}/show-trace`,{method:"POST"}).then(r=>Qe(r)),exportUrl:t=>`/api/flows/${encodeURIComponent(t)}/export`},Jd={en:{app_title:"RPA Tool",page_title:"RPA Tool – flow builder",new_flow:"New flow",delete_flow:"Delete flow",save:"Save",saved:"Saved",unsaved:"Unsaved changes",run:"Run flow",close_browser:"Close browser",show_trace:"Show trace",wiki:"Wiki",settings:"⚙ Settings",export:"Export as script",close_always:"Close the browser",close_on_success:"Keep open on error",close_never:"Always keep open",add_step:"+ Add step",add_step_after:"Add step after",add_step_in:"+ Add step",add_branch:"+ Add 'else if' branch",else_toggle:"…else (else)",remove:"Remove",remove_branch:"Remove branch",branch_if:"If",branch_else_if:"…else if",add_field:"+ Add column",column_name:"Column name",label_ph:"Label (optional)",on_error_stop:"On error: stop",on_error_continue:"On error: continue",enabled_title:"Enabled (unchecked = skipped when running)",move_up:"Move up",move_down:"Move down",run_log:"Run log",variables:"Variables",no_vars:"No variables yet.",vars_hint:"Click a name to see its content (filled in once the flow finishes).",assist_title:"AI assistant",assist_hint:"Describe in plain language what the flow should do. The suggestion replaces the canvas (unsaved) so you can review it before saving/running.",assist_ph:"e.g. Go to example.com, wait for login, list all links and save them as CSV",assist_btn:"Suggest changes",assist_working:"Thinking…",assist_applied:"Suggestion applied — review, then Save / Run flow.",assist_unavailable:"Set ANTHROPIC_API_KEY (or run `ant auth login`) and restart the server to use this.",assist_failed:"Could not generate a flow: {msg}",status_running:"Running…",status_done:"Done",status_error:"Error",condition:"Condition",new_flow_prompt:"Name of new flow:",delete_flow_confirm:'Delete the flow "{name}"?',settings_hint:"Saved with the flow, so they travel along when you export it as a standalone script.",cancel:"Cancel",fit_view:"Fit to view",relayout:"Auto-arrange",var_list:"list, {n} item(s)",var_object:"object",var_text:"text, {n} chars",save_failed:"Save failed: {msg}",menu:"Menu",menu_flow:"Flow",menu_view:"View",menu_run:"Run",menu_tools:"Tools",language:"Language",run_settings:"Run settings…",inspect_window:"Inspect window",inspect_hint:"Pick a running window to list its controls — use name / auto_id / control_type in the desktop steps.",inspect_pick:"Window",inspect_load:"Load controls",inspect_unavailable:"Windows only — pywinauto could not be loaded.",inspect_make_click:"New desktop_click",inspect_make_type:"New desktop_type",inspect_copy:"Copy selector",inspect_none:"No windows found.",palette:"Steps",palette_search:"Search…",palette_blocks:"Blocks",palette_toggle:"Show/hide the step palette",block_save_selection:"💾 Save selection as block",block_insert:"Insert",block_none:"No blocks yet. Select nodes on the canvas and save them as a block.",block_name_prompt:"Block name:",block_desc_prompt:"Short description (optional):",block_saved:"Block saved.",block_select_first:"Select one or more nodes on the canvas first.",change_type:"Change step type"},sv:{app_title:"RPA-verktyg",page_title:"RPA-verktyg – flödesbyggare",new_flow:"Nytt flöde",delete_flow:"Ta bort flöde",save:"Spara",saved:"Sparat",unsaved:"Osparade ändringar",run:"Kör flöde",close_browser:"Stäng webbläsare",show_trace:"Visa trace",wiki:"Wiki",settings:"⚙ Inställningar",export:"Exportera som script",close_always:"Stäng webbläsaren",close_on_success:"Håll öppen vid fel",close_never:"Håll alltid öppen",add_step:"+ Lägg till steg",add_step_after:"Lägg till steg efter",add_step_in:"+ Lägg till steg",add_branch:"+ Lägg till 'else if'-gren",else_toggle:"…annars (else)",remove:"Ta bort",remove_branch:"Ta bort gren",branch_if:"Om",branch_else_if:"…annars om",add_field:"+ Lägg till kolumn",column_name:"Kolumnnamn",label_ph:"Etikett (valfri)",on_error_stop:"Vid fel: stanna",on_error_continue:"Vid fel: fortsätt",enabled_title:"Aktiverat (avbockad = hoppas över vid körning)",move_up:"Flytta upp",move_down:"Flytta ner",run_log:"Körlogg",variables:"Variabler",no_vars:"Inga variabler ännu.",vars_hint:"Klicka på ett namn för att se innehållet (fylls i när flödet är klart).",assist_title:"AI-assistent",assist_hint:"Beskriv i klartext vad flödet ska göra. Förslaget ersätter canvasen (osparat) så du kan granska det innan du sparar/kör.",assist_ph:"t.ex. Gå till example.com, vänta på inloggning, lista alla länkar och spara som CSV",assist_btn:"Föreslå ändringar",assist_working:"Tänker…",assist_applied:"Förslag infogat — granska, sedan Spara / Kör flöde.",assist_unavailable:"Sätt ANTHROPIC_API_KEY (eller kör `ant auth login`) och starta om servern för att använda detta.",assist_failed:"Kunde inte generera ett flöde: {msg}",status_running:"Kör…",status_done:"Klar",status_error:"Fel",condition:"Villkor",new_flow_prompt:"Namn på nytt flöde:",delete_flow_confirm:'Ta bort flödet "{name}"?',settings_hint:"Sparas med flödet, så de följer med om du exporterar det som ett fristående script.",cancel:"Avbryt",fit_view:"Anpassa till vy",relayout:"Autoplacera",var_list:"lista, {n} post(er)",var_object:"objekt",var_text:"text, {n} tecken",save_failed:"Kunde inte spara: {msg}",menu:"Meny",menu_flow:"Flöde",menu_view:"Visning",menu_run:"Körning",menu_tools:"Verktyg",language:"Språk",run_settings:"Körningsinställningar…",inspect_window:"Inspektera fönster",inspect_hint:"Välj ett körande fönster för att lista dess kontroller — använd name / auto_id / control_type i desktop-stegen.",inspect_pick:"Fönster",inspect_load:"Hämta kontroller",inspect_unavailable:"Bara Windows — pywinauto kunde inte laddas.",inspect_make_click:"Nytt desktop_click",inspect_make_type:"Nytt desktop_type",inspect_copy:"Kopiera selector",inspect_none:"Inga fönster hittades.",palette:"Steg",palette_search:"Sök…",palette_blocks:"Block",palette_toggle:"Visa/dölj steg-paletten",block_save_selection:"💾 Spara markering som block",block_insert:"Infoga",block_none:"Inga block än. Markera noder på canvasen och spara dem som ett block.",block_name_prompt:"Blockets namn:",block_desc_prompt:"Kort beskrivning (valfri):",block_saved:"Blocket sparat.",block_select_first:"Markera en eller flera noder på canvasen först.",change_type:"Byt stegtyp"}};function Q0(t){return(r,i)=>{let l=Jd[t][r]??Jd.en[r]??r;if(i)for(const[a,u]of Object.entries(i))l=l.replace(`{${a}}`,String(u));return l}}function nc(){try{return crypto.randomUUID().slice(0,12)}catch{return Math.random().toString(36).slice(2,14)}}const G0=150,q0=0;function rn(t){var r,i,l;return t.id||(t.id=nc()),(r=t.steps)==null||r.forEach(rn),(i=t.else)==null||i.forEach(rn),(l=t.branches)==null||l.forEach(a=>a.steps.forEach(rn)),t}function gp(t){const r=(t.steps??[]).map(c=>rn({...c})),i=t.layout??{},l=r.map((c,d)=>({id:c.id,step:c,position:i[c.id]??{x:q0,y:d*G0}})),a=[];for(let c=0;c<r.length-1;c++)a.push({id:`seq-${r[c].id}-${r[c+1].id}`,source:r[c].id,target:r[c+1].id,kind:"seq"});const u=new Map;for(const c of r)c.label&&u.set(c.label,c.id);for(const c of r)if(c.type==="jump_to_label"&&typeof c.target=="string"&&u.has(c.target)){const d=u.get(c.target);a.push({id:`jump-${c.id}-${d}`,source:c.id,target:d,kind:"jump"})}return{nodes:l,edges:a}}function Yn(t,r){const i=t.step_types.find(a=>a.type===r),l={type:r,id:nc()};for(const a of(i==null?void 0:i.fields)??[])a.default!==void 0&&a.default!==""&&(l[a.key]=a.default);return r==="loop"&&(l.steps=[]),r==="if"&&(l.branches=[{condition:{kind:"element_exists"},steps:[]}]),r==="extract_row"&&(l.fields=[{name:"",by:"css",value:""}]),l}function mp(t,r,i){const l=Yn(t,i);return l.id=r.id,r.label&&(l.label=r.label),r.enabled===!1&&(l.enabled=!1),r.on_error==="continue"&&(l.on_error="continue"),l}function yp(t,r,i){const l=t.slice();return l.splice(r,0,i),l}function vp(t,r){const i=t.slice();return i.splice(r,1),i}function bu(t,r,i){if(i<0||i>=t.length)return t;const l=t.slice(),[a]=l.splice(r,1);return l.splice(i,0,a),l}function ni(t,r,i){const l=t.slice();return l[r]=i,l}function Z0(){return{condition:{kind:"element_exists"},steps:[]}}function Js(t,r,i,l){let a=!1;const u=t.map(c=>{if(c.id===r){if(a=!0,c.type==="loop")return{...c,steps:[...c.steps??[],l]};if(c.type==="if"){if(i==="else")return{...c,else:[...c.else??[],l]};const p=Number(i??0);return{...c,branches:(c.branches??[]).map((g,v)=>v===p?{...g,steps:[...g.steps,l]}:g)}}return c}let d=c;if(c.steps){const p=Js(c.steps,r,i,l);p&&(a=!0,d={...d,steps:p})}if(c.branches){let p=!1;const g=c.branches.map(v=>{const y=Js(v.steps,r,i,l);return y?(p=!0,{...v,steps:y}):v});p&&(a=!0,d={...d,branches:g})}if(c.else){const p=Js(c.else,r,i,l);p&&(a=!0,d={...d,else:p})}return d});return a?u:null}function J0(t){const{t:r}=t,[i,l]=F.useState(!1),a=F.useRef(null);F.useEffect(()=>{if(!i)return;const c=p=>{a.current&&!a.current.contains(p.target)&&l(!1)},d=p=>p.key==="Escape"&&l(!1);return document.addEventListener("mousedown",c),document.addEventListener("keydown",d),()=>{document.removeEventListener("mousedown",c),document.removeEventListener("keydown",d)}},[i]);const u=c=>()=>{l(!1),c()};return S.jsxs("div",{className:"menu-wrap",ref:a,children:[S.jsx("button",{className:"secondary",title:r("menu"),onClick:()=>l(c=>!c),children:"⚙"}),i&&S.jsxs("div",{className:"menu-popover",children:[S.jsx("div",{className:"menu-section",children:r("menu_flow")}),S.jsx("button",{className:"menu-item",onClick:u(t.onNew),children:r("new_flow")}),S.jsx("button",{className:"menu-item",onClick:u(t.onDelete),disabled:!t.currentName,children:r("delete_flow")}),S.jsx("a",{className:"menu-item",href:t.currentName?He.exportUrl(t.currentName):void 0,target:"_blank",rel:"noopener",onClick:()=>l(!1),children:r("export")}),S.jsx("div",{className:"menu-section",children:r("menu_run")}),S.jsxs("label",{className:"menu-item menu-field",children:[S.jsx("span",{children:r("menu_run")}),S.jsxs("select",{value:t.closeMode,onChange:c=>t.setCloseMode(c.target.value),children:[S.jsx("option",{value:"always",children:r("close_always")}),S.jsx("option",{value:"on_success",children:r("close_on_success")}),S.jsx("option",{value:"never",children:r("close_never")})]})]}),S.jsx("button",{className:"menu-item",onClick:u(t.onOpenSettings),children:r("run_settings")}),S.jsx("div",{className:"menu-section",children:r("menu_view")}),S.jsxs("label",{className:"menu-item menu-field",children:[S.jsx("span",{children:r("language")}),S.jsxs("select",{value:t.lang,onChange:c=>t.setLang(c.target.value),children:[S.jsx("option",{value:"en",children:"English"}),S.jsx("option",{value:"sv",children:"Svenska"})]})]}),S.jsx("div",{className:"menu-section",children:r("menu_tools")}),S.jsx("button",{className:"menu-item",onClick:u(t.onOpenInspect),children:r("inspect_window")}),S.jsx("a",{className:"menu-item",href:"/wiki",target:"_blank",rel:"noopener",onClick:()=>l(!1),children:r("wiki")})]})]})}function ey(t){const{t:r}=t;return S.jsxs("header",{children:[S.jsx("h1",{children:r("app_title")}),S.jsx("select",{value:t.currentName??"",onChange:i=>t.onSelect(i.target.value),children:t.flowNames.map(i=>S.jsx("option",{value:i,children:i},i))}),S.jsx("span",{className:"spacer"}),S.jsx("span",{className:"dirty-dot "+(t.dirty?"on":""),title:t.dirty?r("unsaved"):r("saved")}),S.jsx("button",{className:"secondary",onClick:t.onSave,children:r("save")}),S.jsx("button",{onClick:t.onRun,disabled:t.running||!t.currentName,children:r("run")}),S.jsx(J0,{t:r,lang:t.lang,setLang:t.setLang,closeMode:t.closeMode,setCloseMode:t.setCloseMode,currentName:t.currentName,onNew:t.onNew,onDelete:t.onDelete,onOpenSettings:t.onOpenSettings,onOpenInspect:t.onOpenInspect})]})}function Ye(t){if(typeof t=="string"||typeof t=="number")return""+t;let r="";if(Array.isArray(t))for(let i=0,l;i<t.length;i++)(l=Ye(t[i]))!==""&&(r+=(r&&" ")+l);else for(let i in t)t[i]&&(r+=(r&&" ")+i);return r}var ty={value:()=>{}};function ml(){for(var t=0,r=arguments.length,i={},l;t<r;++t){if(!(l=arguments[t]+"")||l in i||/[\s.]/.test(l))throw new Error("illegal type: "+l);i[l]=[]}return new el(i)}function el(t){this._=t}function ny(t,r){return t.trim().split(/^|\s+/).map(function(i){var l="",a=i.indexOf(".");if(a>=0&&(l=i.slice(a+1),i=i.slice(0,a)),i&&!r.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:l}})}el.prototype=ml.prototype={constructor:el,on:function(t,r){var i=this._,l=ny(t+"",i),a,u=-1,c=l.length;if(arguments.length<2){for(;++u<c;)if((a=(t=l[u]).type)&&(a=ry(i[a],t.name)))return a;return}if(r!=null&&typeof r!="function")throw new Error("invalid callback: "+r);for(;++u<c;)if(a=(t=l[u]).type)i[a]=eh(i[a],t.name,r);else if(r==null)for(a in i)i[a]=eh(i[a],t.name,null);return this},copy:function(){var t={},r=this._;for(var i in r)t[i]=r[i].slice();return new el(t)},call:function(t,r){if((a=arguments.length-2)>0)for(var i=new Array(a),l=0,a,u;l<a;++l)i[l]=arguments[l+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(u=this._[t],l=0,a=u.length;l<a;++l)u[l].value.apply(r,i)},apply:function(t,r,i){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var l=this._[t],a=0,u=l.length;a<u;++a)l[a].value.apply(r,i)}};function ry(t,r){for(var i=0,l=t.length,a;i<l;++i)if((a=t[i]).name===r)return a.value}function eh(t,r,i){for(var l=0,a=t.length;l<a;++l)if(t[l].name===r){t[l]=ty,t=t.slice(0,l).concat(t.slice(l+1));break}return i!=null&&t.push({name:r,value:i}),t}var Ou="http://www.w3.org/1999/xhtml";const th={svg:"http://www.w3.org/2000/svg",xhtml:Ou,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function yl(t){var r=t+="",i=r.indexOf(":");return i>=0&&(r=t.slice(0,i))!=="xmlns"&&(t=t.slice(i+1)),th.hasOwnProperty(r)?{space:th[r],local:t}:t}function oy(t){return function(){var r=this.ownerDocument,i=this.namespaceURI;return i===Ou&&r.documentElement.namespaceURI===Ou?r.createElement(t):r.createElementNS(i,t)}}function iy(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function xp(t){var r=yl(t);return(r.local?iy:oy)(r)}function sy(){}function rc(t){return t==null?sy:function(){return this.querySelector(t)}}function ly(t){typeof t!="function"&&(t=rc(t));for(var r=this._groups,i=r.length,l=new Array(i),a=0;a<i;++a)for(var u=r[a],c=u.length,d=l[a]=new Array(c),p,g,v=0;v<c;++v)(p=u[v])&&(g=t.call(p,p.__data__,v,u))&&("__data__"in p&&(g.__data__=p.__data__),d[v]=g);return new Mt(l,this._parents)}function ay(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function uy(){return[]}function wp(t){return t==null?uy:function(){return this.querySelectorAll(t)}}function cy(t){return function(){return ay(t.apply(this,arguments))}}function fy(t){typeof t=="function"?t=cy(t):t=wp(t);for(var r=this._groups,i=r.length,l=[],a=[],u=0;u<i;++u)for(var c=r[u],d=c.length,p,g=0;g<d;++g)(p=c[g])&&(l.push(t.call(p,p.__data__,g,c)),a.push(p));return new Mt(l,a)}function _p(t){return function(){return this.matches(t)}}function Sp(t){return function(r){return r.matches(t)}}var dy=Array.prototype.find;function hy(t){return function(){return dy.call(this.children,t)}}function py(){return this.firstElementChild}function gy(t){return this.select(t==null?py:hy(typeof t=="function"?t:Sp(t)))}var my=Array.prototype.filter;function yy(){return Array.from(this.children)}function vy(t){return function(){return my.call(this.children,t)}}function xy(t){return this.selectAll(t==null?yy:vy(typeof t=="function"?t:Sp(t)))}function wy(t){typeof t!="function"&&(t=_p(t));for(var r=this._groups,i=r.length,l=new Array(i),a=0;a<i;++a)for(var u=r[a],c=u.length,d=l[a]=[],p,g=0;g<c;++g)(p=u[g])&&t.call(p,p.__data__,g,u)&&d.push(p);return new Mt(l,this._parents)}function kp(t){return new Array(t.length)}function _y(){return new Mt(this._enter||this._groups.map(kp),this._parents)}function il(t,r){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=r}il.prototype={constructor:il,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,r){return this._parent.insertBefore(t,r)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Sy(t){return function(){return t}}function ky(t,r,i,l,a,u){for(var c=0,d,p=r.length,g=u.length;c<g;++c)(d=r[c])?(d.__data__=u[c],l[c]=d):i[c]=new il(t,u[c]);for(;c<p;++c)(d=r[c])&&(a[c]=d)}function Ey(t,r,i,l,a,u,c){var d,p,g=new Map,v=r.length,y=u.length,m=new Array(v),w;for(d=0;d<v;++d)(p=r[d])&&(m[d]=w=c.call(p,p.__data__,d,r)+"",g.has(w)?a[d]=p:g.set(w,p));for(d=0;d<y;++d)w=c.call(t,u[d],d,u)+"",(p=g.get(w))?(l[d]=p,p.__data__=u[d],g.delete(w)):i[d]=new il(t,u[d]);for(d=0;d<v;++d)(p=r[d])&&g.get(m[d])===p&&(a[d]=p)}function Ny(t){return t.__data__}function Cy(t,r){if(!arguments.length)return Array.from(this,Ny);var i=r?Ey:ky,l=this._parents,a=this._groups;typeof t!="function"&&(t=Sy(t));for(var u=a.length,c=new Array(u),d=new Array(u),p=new Array(u),g=0;g<u;++g){var v=l[g],y=a[g],m=y.length,w=My(t.call(v,v&&v.__data__,g,l)),_=w.length,C=d[g]=new Array(_),N=c[g]=new Array(_),E=p[g]=new Array(m);i(v,y,C,N,E,w,r);for(var j=0,k=0,T,U;j<_;++j)if(T=C[j]){for(j>=k&&(k=j+1);!(U=N[k])&&++k<_;);T._next=U||null}}return c=new Mt(c,l),c._enter=d,c._exit=p,c}function My(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Py(){return new Mt(this._exit||this._groups.map(kp),this._parents)}function jy(t,r,i){var l=this.enter(),a=this,u=this.exit();return typeof t=="function"?(l=t(l),l&&(l=l.selection())):l=l.append(t+""),r!=null&&(a=r(a),a&&(a=a.selection())),i==null?u.remove():i(u),l&&a?l.merge(a).order():a}function Ty(t){for(var r=t.selection?t.selection():t,i=this._groups,l=r._groups,a=i.length,u=l.length,c=Math.min(a,u),d=new Array(a),p=0;p<c;++p)for(var g=i[p],v=l[p],y=g.length,m=d[p]=new Array(y),w,_=0;_<y;++_)(w=g[_]||v[_])&&(m[_]=w);for(;p<a;++p)d[p]=i[p];return new Mt(d,this._parents)}function Iy(){for(var t=this._groups,r=-1,i=t.length;++r<i;)for(var l=t[r],a=l.length-1,u=l[a],c;--a>=0;)(c=l[a])&&(u&&c.compareDocumentPosition(u)^4&&u.parentNode.insertBefore(c,u),u=c);return this}function zy(t){t||(t=Ly);function r(y,m){return y&&m?t(y.__data__,m.__data__):!y-!m}for(var i=this._groups,l=i.length,a=new Array(l),u=0;u<l;++u){for(var c=i[u],d=c.length,p=a[u]=new Array(d),g,v=0;v<d;++v)(g=c[v])&&(p[v]=g);p.sort(r)}return new Mt(a,this._parents).order()}function Ly(t,r){return t<r?-1:t>r?1:t>=r?0:NaN}function Ry(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Ay(){return Array.from(this)}function Dy(){for(var t=this._groups,r=0,i=t.length;r<i;++r)for(var l=t[r],a=0,u=l.length;a<u;++a){var c=l[a];if(c)return c}return null}function $y(){let t=0;for(const r of this)++t;return t}function by(){return!this.node()}function Oy(t){for(var r=this._groups,i=0,l=r.length;i<l;++i)for(var a=r[i],u=0,c=a.length,d;u<c;++u)(d=a[u])&&t.call(d,d.__data__,u,a);return this}function Fy(t){return function(){this.removeAttribute(t)}}function Hy(t){return function(){this.removeAttributeNS(t.space,t.local)}}function By(t,r){return function(){this.setAttribute(t,r)}}function Vy(t,r){return function(){this.setAttributeNS(t.space,t.local,r)}}function Uy(t,r){return function(){var i=r.apply(this,arguments);i==null?this.removeAttribute(t):this.setAttribute(t,i)}}function Wy(t,r){return function(){var i=r.apply(this,arguments);i==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}function Yy(t,r){var i=yl(t);if(arguments.length<2){var l=this.node();return i.local?l.getAttributeNS(i.space,i.local):l.getAttribute(i)}return this.each((r==null?i.local?Hy:Fy:typeof r=="function"?i.local?Wy:Uy:i.local?Vy:By)(i,r))}function Ep(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Xy(t){return function(){this.style.removeProperty(t)}}function Ky(t,r,i){return function(){this.style.setProperty(t,r,i)}}function Qy(t,r,i){return function(){var l=r.apply(this,arguments);l==null?this.style.removeProperty(t):this.style.setProperty(t,l,i)}}function Gy(t,r,i){return arguments.length>1?this.each((r==null?Xy:typeof r=="function"?Qy:Ky)(t,r,i??"")):oo(this.node(),t)}function oo(t,r){return t.style.getPropertyValue(r)||Ep(t).getComputedStyle(t,null).getPropertyValue(r)}function qy(t){return function(){delete this[t]}}function Zy(t,r){return function(){this[t]=r}}function Jy(t,r){return function(){var i=r.apply(this,arguments);i==null?delete this[t]:this[t]=i}}function ev(t,r){return arguments.length>1?this.each((r==null?qy:typeof r=="function"?Jy:Zy)(t,r)):this.node()[t]}function Np(t){return t.trim().split(/^|\s+/)}function oc(t){return t.classList||new Cp(t)}function Cp(t){this._node=t,this._names=Np(t.getAttribute("class")||"")}Cp.prototype={add:function(t){var r=this._names.indexOf(t);r<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var r=this._names.indexOf(t);r>=0&&(this._names.splice(r,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Mp(t,r){for(var i=oc(t),l=-1,a=r.length;++l<a;)i.add(r[l])}function Pp(t,r){for(var i=oc(t),l=-1,a=r.length;++l<a;)i.remove(r[l])}function tv(t){return function(){Mp(this,t)}}function nv(t){return function(){Pp(this,t)}}function rv(t,r){return function(){(r.apply(this,arguments)?Mp:Pp)(this,t)}}function ov(t,r){var i=Np(t+"");if(arguments.length<2){for(var l=oc(this.node()),a=-1,u=i.length;++a<u;)if(!l.contains(i[a]))return!1;return!0}return this.each((typeof r=="function"?rv:r?tv:nv)(i,r))}function iv(){this.textContent=""}function sv(t){return function(){this.textContent=t}}function lv(t){return function(){var r=t.apply(this,arguments);this.textContent=r??""}}function av(t){return arguments.length?this.each(t==null?iv:(typeof t=="function"?lv:sv)(t)):this.node().textContent}function uv(){this.innerHTML=""}function cv(t){return function(){this.innerHTML=t}}function fv(t){return function(){var r=t.apply(this,arguments);this.innerHTML=r??""}}function dv(t){return arguments.length?this.each(t==null?uv:(typeof t=="function"?fv:cv)(t)):this.node().innerHTML}function hv(){this.nextSibling&&this.parentNode.appendChild(this)}function pv(){return this.each(hv)}function gv(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function mv(){return this.each(gv)}function yv(t){var r=typeof t=="function"?t:xp(t);return this.select(function(){return this.appendChild(r.apply(this,arguments))})}function vv(){return null}function xv(t,r){var i=typeof t=="function"?t:xp(t),l=r==null?vv:typeof r=="function"?r:rc(r);return this.select(function(){return this.insertBefore(i.apply(this,arguments),l.apply(this,arguments)||null)})}function wv(){var t=this.parentNode;t&&t.removeChild(this)}function _v(){return this.each(wv)}function Sv(){var t=this.cloneNode(!1),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function kv(){var t=this.cloneNode(!0),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function Ev(t){return this.select(t?kv:Sv)}function Nv(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Cv(t){return function(r){t.call(this,r,this.__data__)}}function Mv(t){return t.trim().split(/^|\s+/).map(function(r){var i="",l=r.indexOf(".");return l>=0&&(i=r.slice(l+1),r=r.slice(0,l)),{type:r,name:i}})}function Pv(t){return function(){var r=this.__on;if(r){for(var i=0,l=-1,a=r.length,u;i<a;++i)u=r[i],(!t.type||u.type===t.type)&&u.name===t.name?this.removeEventListener(u.type,u.listener,u.options):r[++l]=u;++l?r.length=l:delete this.__on}}}function jv(t,r,i){return function(){var l=this.__on,a,u=Cv(r);if(l){for(var c=0,d=l.length;c<d;++c)if((a=l[c]).type===t.type&&a.name===t.name){this.removeEventListener(a.type,a.listener,a.options),this.addEventListener(a.type,a.listener=u,a.options=i),a.value=r;return}}this.addEventListener(t.type,u,i),a={type:t.type,name:t.name,value:r,listener:u,options:i},l?l.push(a):this.__on=[a]}}function Tv(t,r,i){var l=Mv(t+""),a,u=l.length,c;if(arguments.length<2){var d=this.node().__on;if(d){for(var p=0,g=d.length,v;p<g;++p)for(a=0,v=d[p];a<u;++a)if((c=l[a]).type===v.type&&c.name===v.name)return v.value}return}for(d=r?jv:Pv,a=0;a<u;++a)this.each(d(l[a],r,i));return this}function jp(t,r,i){var l=Ep(t),a=l.CustomEvent;typeof a=="function"?a=new a(r,i):(a=l.document.createEvent("Event"),i?(a.initEvent(r,i.bubbles,i.cancelable),a.detail=i.detail):a.initEvent(r,!1,!1)),t.dispatchEvent(a)}function Iv(t,r){return function(){return jp(this,t,r)}}function zv(t,r){return function(){return jp(this,t,r.apply(this,arguments))}}function Lv(t,r){return this.each((typeof r=="function"?zv:Iv)(t,r))}function*Rv(){for(var t=this._groups,r=0,i=t.length;r<i;++r)for(var l=t[r],a=0,u=l.length,c;a<u;++a)(c=l[a])&&(yield c)}var Tp=[null];function Mt(t,r){this._groups=t,this._parents=r}function xi(){return new Mt([[document.documentElement]],Tp)}function Av(){return this}Mt.prototype=xi.prototype={constructor:Mt,select:ly,selectAll:fy,selectChild:gy,selectChildren:xy,filter:wy,data:Cy,enter:_y,exit:Py,join:jy,merge:Ty,selection:Av,order:Iy,sort:zy,call:Ry,nodes:Ay,node:Dy,size:$y,empty:by,each:Oy,attr:Yy,style:Gy,property:ev,classed:ov,text:av,html:dv,raise:pv,lower:mv,append:yv,insert:xv,remove:_v,clone:Ev,datum:Nv,on:Tv,dispatch:Lv,[Symbol.iterator]:Rv};function Ct(t){return typeof t=="string"?new Mt([[document.querySelector(t)]],[document.documentElement]):new Mt([[t]],Tp)}function Dv(t){let r;for(;r=t.sourceEvent;)t=r;return t}function Bt(t,r){if(t=Dv(t),r===void 0&&(r=t.currentTarget),r){var i=r.ownerSVGElement||r;if(i.createSVGPoint){var l=i.createSVGPoint();return l.x=t.clientX,l.y=t.clientY,l=l.matrixTransform(r.getScreenCTM().inverse()),[l.x,l.y]}if(r.getBoundingClientRect){var a=r.getBoundingClientRect();return[t.clientX-a.left-r.clientLeft,t.clientY-a.top-r.clientTop]}}return[t.pageX,t.pageY]}const $v={passive:!1},ui={capture:!0,passive:!1};function Nu(t){t.stopImmediatePropagation()}function no(t){t.preventDefault(),t.stopImmediatePropagation()}function Ip(t){var r=t.document.documentElement,i=Ct(t).on("dragstart.drag",no,ui);"onselectstart"in r?i.on("selectstart.drag",no,ui):(r.__noselect=r.style.MozUserSelect,r.style.MozUserSelect="none")}function zp(t,r){var i=t.document.documentElement,l=Ct(t).on("dragstart.drag",null);r&&(l.on("click.drag",no,ui),setTimeout(function(){l.on("click.drag",null)},0)),"onselectstart"in i?l.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect)}const Us=t=>()=>t;function Fu(t,{sourceEvent:r,subject:i,target:l,identifier:a,active:u,x:c,y:d,dx:p,dy:g,dispatch:v}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},subject:{value:i,enumerable:!0,configurable:!0},target:{value:l,enumerable:!0,configurable:!0},identifier:{value:a,enumerable:!0,configurable:!0},active:{value:u,enumerable:!0,configurable:!0},x:{value:c,enumerable:!0,configurable:!0},y:{value:d,enumerable:!0,configurable:!0},dx:{value:p,enumerable:!0,configurable:!0},dy:{value:g,enumerable:!0,configurable:!0},_:{value:v}})}Fu.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function bv(t){return!t.ctrlKey&&!t.button}function Ov(){return this.parentNode}function Fv(t,r){return r??{x:t.x,y:t.y}}function Hv(){return navigator.maxTouchPoints||"ontouchstart"in this}function Lp(){var t=bv,r=Ov,i=Fv,l=Hv,a={},u=ml("start","drag","end"),c=0,d,p,g,v,y=0;function m(T){T.on("mousedown.drag",w).filter(l).on("touchstart.drag",N).on("touchmove.drag",E,$v).on("touchend.drag touchcancel.drag",j).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function w(T,U){if(!(v||!t.call(this,T,U))){var O=k(this,r.call(this,T,U),T,U,"mouse");O&&(Ct(T.view).on("mousemove.drag",_,ui).on("mouseup.drag",C,ui),Ip(T.view),Nu(T),g=!1,d=T.clientX,p=T.clientY,O("start",T))}}function _(T){if(no(T),!g){var U=T.clientX-d,O=T.clientY-p;g=U*U+O*O>y}a.mouse("drag",T)}function C(T){Ct(T.view).on("mousemove.drag mouseup.drag",null),zp(T.view,g),no(T),a.mouse("end",T)}function N(T,U){if(t.call(this,T,U)){var O=T.changedTouches,z=r.call(this,T,U),V=O.length,b,J;for(b=0;b<V;++b)(J=k(this,z,T,U,O[b].identifier,O[b]))&&(Nu(T),J("start",T,O[b]))}}function E(T){var U=T.changedTouches,O=U.length,z,V;for(z=0;z<O;++z)(V=a[U[z].identifier])&&(no(T),V("drag",T,U[z]))}function j(T){var U=T.changedTouches,O=U.length,z,V;for(v&&clearTimeout(v),v=setTimeout(function(){v=null},500),z=0;z<O;++z)(V=a[U[z].identifier])&&(Nu(T),V("end",T,U[z]))}function k(T,U,O,z,V,b){var J=u.copy(),G=Bt(b||O,U),ee,Z,M;if((M=i.call(T,new Fu("beforestart",{sourceEvent:O,target:m,identifier:V,active:c,x:G[0],y:G[1],dx:0,dy:0,dispatch:J}),z))!=null)return ee=M.x-G[0]||0,Z=M.y-G[1]||0,function $(W,Y,D){var A=G,B;switch(W){case"start":a[V]=$,B=c++;break;case"end":delete a[V],--c;case"drag":G=Bt(D||Y,U),B=c;break}J.call(W,T,new Fu(W,{sourceEvent:Y,subject:M,target:m,identifier:V,active:B,x:G[0]+ee,y:G[1]+Z,dx:G[0]-A[0],dy:G[1]-A[1],dispatch:J}),z)}}return m.filter=function(T){return arguments.length?(t=typeof T=="function"?T:Us(!!T),m):t},m.container=function(T){return arguments.length?(r=typeof T=="function"?T:Us(T),m):r},m.subject=function(T){return arguments.length?(i=typeof T=="function"?T:Us(T),m):i},m.touchable=function(T){return arguments.length?(l=typeof T=="function"?T:Us(!!T),m):l},m.on=function(){var T=u.on.apply(u,arguments);return T===u?m:T},m.clickDistance=function(T){return arguments.length?(y=(T=+T)*T,m):Math.sqrt(y)},m}function ic(t,r,i){t.prototype=r.prototype=i,i.constructor=t}function Rp(t,r){var i=Object.create(t.prototype);for(var l in r)i[l]=r[l];return i}function wi(){}var ci=.7,sl=1/ci,ro="\\s*([+-]?\\d+)\\s*",fi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",on="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Bv=/^#([0-9a-f]{3,8})$/,Vv=new RegExp(`^rgb\\(${ro},${ro},${ro}\\)$`),Uv=new RegExp(`^rgb\\(${on},${on},${on}\\)$`),Wv=new RegExp(`^rgba\\(${ro},${ro},${ro},${fi}\\)$`),Yv=new RegExp(`^rgba\\(${on},${on},${on},${fi}\\)$`),Xv=new RegExp(`^hsl\\(${fi},${on},${on}\\)$`),Kv=new RegExp(`^hsla\\(${fi},${on},${on},${fi}\\)$`),nh={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ic(wi,vr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:rh,formatHex:rh,formatHex8:Qv,formatHsl:Gv,formatRgb:oh,toString:oh});function rh(){return this.rgb().formatHex()}function Qv(){return this.rgb().formatHex8()}function Gv(){return Ap(this).formatHsl()}function oh(){return this.rgb().formatRgb()}function vr(t){var r,i;return t=(t+"").trim().toLowerCase(),(r=Bv.exec(t))?(i=r[1].length,r=parseInt(r[1],16),i===6?ih(r):i===3?new vt(r>>8&15|r>>4&240,r>>4&15|r&240,(r&15)<<4|r&15,1):i===8?Ws(r>>24&255,r>>16&255,r>>8&255,(r&255)/255):i===4?Ws(r>>12&15|r>>8&240,r>>8&15|r>>4&240,r>>4&15|r&240,((r&15)<<4|r&15)/255):null):(r=Vv.exec(t))?new vt(r[1],r[2],r[3],1):(r=Uv.exec(t))?new vt(r[1]*255/100,r[2]*255/100,r[3]*255/100,1):(r=Wv.exec(t))?Ws(r[1],r[2],r[3],r[4]):(r=Yv.exec(t))?Ws(r[1]*255/100,r[2]*255/100,r[3]*255/100,r[4]):(r=Xv.exec(t))?ah(r[1],r[2]/100,r[3]/100,1):(r=Kv.exec(t))?ah(r[1],r[2]/100,r[3]/100,r[4]):nh.hasOwnProperty(t)?ih(nh[t]):t==="transparent"?new vt(NaN,NaN,NaN,0):null}function ih(t){return new vt(t>>16&255,t>>8&255,t&255,1)}function Ws(t,r,i,l){return l<=0&&(t=r=i=NaN),new vt(t,r,i,l)}function qv(t){return t instanceof wi||(t=vr(t)),t?(t=t.rgb(),new vt(t.r,t.g,t.b,t.opacity)):new vt}function Hu(t,r,i,l){return arguments.length===1?qv(t):new vt(t,r,i,l??1)}function vt(t,r,i,l){this.r=+t,this.g=+r,this.b=+i,this.opacity=+l}ic(vt,Hu,Rp(wi,{brighter(t){return t=t==null?sl:Math.pow(sl,t),new vt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?ci:Math.pow(ci,t),new vt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new vt(mr(this.r),mr(this.g),mr(this.b),ll(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:sh,formatHex:sh,formatHex8:Zv,formatRgb:lh,toString:lh}));function sh(){return`#${gr(this.r)}${gr(this.g)}${gr(this.b)}`}function Zv(){return`#${gr(this.r)}${gr(this.g)}${gr(this.b)}${gr((isNaN(this.opacity)?1:this.opacity)*255)}`}function lh(){const t=ll(this.opacity);return`${t===1?"rgb(":"rgba("}${mr(this.r)}, ${mr(this.g)}, ${mr(this.b)}${t===1?")":`, ${t})`}`}function ll(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function mr(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function gr(t){return t=mr(t),(t<16?"0":"")+t.toString(16)}function ah(t,r,i,l){return l<=0?t=r=i=NaN:i<=0||i>=1?t=r=NaN:r<=0&&(t=NaN),new Vt(t,r,i,l)}function Ap(t){if(t instanceof Vt)return new Vt(t.h,t.s,t.l,t.opacity);if(t instanceof wi||(t=vr(t)),!t)return new Vt;if(t instanceof Vt)return t;t=t.rgb();var r=t.r/255,i=t.g/255,l=t.b/255,a=Math.min(r,i,l),u=Math.max(r,i,l),c=NaN,d=u-a,p=(u+a)/2;return d?(r===u?c=(i-l)/d+(i<l)*6:i===u?c=(l-r)/d+2:c=(r-i)/d+4,d/=p<.5?u+a:2-u-a,c*=60):d=p>0&&p<1?0:c,new Vt(c,d,p,t.opacity)}function Jv(t,r,i,l){return arguments.length===1?Ap(t):new Vt(t,r,i,l??1)}function Vt(t,r,i,l){this.h=+t,this.s=+r,this.l=+i,this.opacity=+l}ic(Vt,Jv,Rp(wi,{brighter(t){return t=t==null?sl:Math.pow(sl,t),new Vt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?ci:Math.pow(ci,t),new Vt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,r=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,l=i+(i<.5?i:1-i)*r,a=2*i-l;return new vt(Cu(t>=240?t-240:t+120,a,l),Cu(t,a,l),Cu(t<120?t+240:t-120,a,l),this.opacity)},clamp(){return new Vt(uh(this.h),Ys(this.s),Ys(this.l),ll(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=ll(this.opacity);return`${t===1?"hsl(":"hsla("}${uh(this.h)}, ${Ys(this.s)*100}%, ${Ys(this.l)*100}%${t===1?")":`, ${t})`}`}}));function uh(t){return t=(t||0)%360,t<0?t+360:t}function Ys(t){return Math.max(0,Math.min(1,t||0))}function Cu(t,r,i){return(t<60?r+(i-r)*t/60:t<180?i:t<240?r+(i-r)*(240-t)/60:r)*255}const sc=t=>()=>t;function ex(t,r){return function(i){return t+i*r}}function tx(t,r,i){return t=Math.pow(t,i),r=Math.pow(r,i)-t,i=1/i,function(l){return Math.pow(t+l*r,i)}}function nx(t){return(t=+t)==1?Dp:function(r,i){return i-r?tx(r,i,t):sc(isNaN(r)?i:r)}}function Dp(t,r){var i=r-t;return i?ex(t,i):sc(isNaN(t)?r:t)}const al=(function t(r){var i=nx(r);function l(a,u){var c=i((a=Hu(a)).r,(u=Hu(u)).r),d=i(a.g,u.g),p=i(a.b,u.b),g=Dp(a.opacity,u.opacity);return function(v){return a.r=c(v),a.g=d(v),a.b=p(v),a.opacity=g(v),a+""}}return l.gamma=t,l})(1);function rx(t,r){r||(r=[]);var i=t?Math.min(r.length,t.length):0,l=r.slice(),a;return function(u){for(a=0;a<i;++a)l[a]=t[a]*(1-u)+r[a]*u;return l}}function ox(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function ix(t,r){var i=r?r.length:0,l=t?Math.min(i,t.length):0,a=new Array(l),u=new Array(i),c;for(c=0;c<l;++c)a[c]=li(t[c],r[c]);for(;c<i;++c)u[c]=r[c];return function(d){for(c=0;c<l;++c)u[c]=a[c](d);return u}}function sx(t,r){var i=new Date;return t=+t,r=+r,function(l){return i.setTime(t*(1-l)+r*l),i}}function nn(t,r){return t=+t,r=+r,function(i){return t*(1-i)+r*i}}function lx(t,r){var i={},l={},a;(t===null||typeof t!="object")&&(t={}),(r===null||typeof r!="object")&&(r={});for(a in r)a in t?i[a]=li(t[a],r[a]):l[a]=r[a];return function(u){for(a in i)l[a]=i[a](u);return l}}var Bu=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Mu=new RegExp(Bu.source,"g");function ax(t){return function(){return t}}function ux(t){return function(r){return t(r)+""}}function $p(t,r){var i=Bu.lastIndex=Mu.lastIndex=0,l,a,u,c=-1,d=[],p=[];for(t=t+"",r=r+"";(l=Bu.exec(t))&&(a=Mu.exec(r));)(u=a.index)>i&&(u=r.slice(i,u),d[c]?d[c]+=u:d[++c]=u),(l=l[0])===(a=a[0])?d[c]?d[c]+=a:d[++c]=a:(d[++c]=null,p.push({i:c,x:nn(l,a)})),i=Mu.lastIndex;return i<r.length&&(u=r.slice(i),d[c]?d[c]+=u:d[++c]=u),d.length<2?p[0]?ux(p[0].x):ax(r):(r=p.length,function(g){for(var v=0,y;v<r;++v)d[(y=p[v]).i]=y.x(g);return d.join("")})}function li(t,r){var i=typeof r,l;return r==null||i==="boolean"?sc(r):(i==="number"?nn:i==="string"?(l=vr(r))?(r=l,al):$p:r instanceof vr?al:r instanceof Date?sx:ox(r)?rx:Array.isArray(r)?ix:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?lx:nn)(t,r)}var ch=180/Math.PI,Vu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function bp(t,r,i,l,a,u){var c,d,p;return(c=Math.sqrt(t*t+r*r))&&(t/=c,r/=c),(p=t*i+r*l)&&(i-=t*p,l-=r*p),(d=Math.sqrt(i*i+l*l))&&(i/=d,l/=d,p/=d),t*l<r*i&&(t=-t,r=-r,p=-p,c=-c),{translateX:a,translateY:u,rotate:Math.atan2(r,t)*ch,skewX:Math.atan(p)*ch,scaleX:c,scaleY:d}}var Xs;function cx(t){const r=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return r.isIdentity?Vu:bp(r.a,r.b,r.c,r.d,r.e,r.f)}function fx(t){return t==null||(Xs||(Xs=document.createElementNS("http://www.w3.org/2000/svg","g")),Xs.setAttribute("transform",t),!(t=Xs.transform.baseVal.consolidate()))?Vu:(t=t.matrix,bp(t.a,t.b,t.c,t.d,t.e,t.f))}function Op(t,r,i,l){function a(g){return g.length?g.pop()+" ":""}function u(g,v,y,m,w,_){if(g!==y||v!==m){var C=w.push("translate(",null,r,null,i);_.push({i:C-4,x:nn(g,y)},{i:C-2,x:nn(v,m)})}else(y||m)&&w.push("translate("+y+r+m+i)}function c(g,v,y,m){g!==v?(g-v>180?v+=360:v-g>180&&(g+=360),m.push({i:y.push(a(y)+"rotate(",null,l)-2,x:nn(g,v)})):v&&y.push(a(y)+"rotate("+v+l)}function d(g,v,y,m){g!==v?m.push({i:y.push(a(y)+"skewX(",null,l)-2,x:nn(g,v)}):v&&y.push(a(y)+"skewX("+v+l)}function p(g,v,y,m,w,_){if(g!==y||v!==m){var C=w.push(a(w)+"scale(",null,",",null,")");_.push({i:C-4,x:nn(g,y)},{i:C-2,x:nn(v,m)})}else(y!==1||m!==1)&&w.push(a(w)+"scale("+y+","+m+")")}return function(g,v){var y=[],m=[];return g=t(g),v=t(v),u(g.translateX,g.translateY,v.translateX,v.translateY,y,m),c(g.rotate,v.rotate,y,m),d(g.skewX,v.skewX,y,m),p(g.scaleX,g.scaleY,v.scaleX,v.scaleY,y,m),g=v=null,function(w){for(var _=-1,C=m.length,N;++_<C;)y[(N=m[_]).i]=N.x(w);return y.join("")}}}var dx=Op(cx,"px, ","px)","deg)"),hx=Op(fx,", ",")",")"),px=1e-12;function fh(t){return((t=Math.exp(t))+1/t)/2}function gx(t){return((t=Math.exp(t))-1/t)/2}function mx(t){return((t=Math.exp(2*t))-1)/(t+1)}const tl=(function t(r,i,l){function a(u,c){var d=u[0],p=u[1],g=u[2],v=c[0],y=c[1],m=c[2],w=v-d,_=y-p,C=w*w+_*_,N,E;if(C<px)E=Math.log(m/g)/r,N=function(z){return[d+z*w,p+z*_,g*Math.exp(r*z*E)]};else{var j=Math.sqrt(C),k=(m*m-g*g+l*C)/(2*g*i*j),T=(m*m-g*g-l*C)/(2*m*i*j),U=Math.log(Math.sqrt(k*k+1)-k),O=Math.log(Math.sqrt(T*T+1)-T);E=(O-U)/r,N=function(z){var V=z*E,b=fh(U),J=g/(i*j)*(b*mx(r*V+U)-gx(U));return[d+J*w,p+J*_,g*b/fh(r*V+U)]}}return N.duration=E*1e3*r/Math.SQRT2,N}return a.rho=function(u){var c=Math.max(.001,+u),d=c*c,p=d*d;return t(c,d,p)},a})(Math.SQRT2,2,4);var io=0,ii=0,ri=0,Fp=1e3,ul,si,cl=0,xr=0,vl=0,di=typeof performance=="object"&&performance.now?performance:Date,Hp=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function lc(){return xr||(Hp(yx),xr=di.now()+vl)}function yx(){xr=0}function fl(){this._call=this._time=this._next=null}fl.prototype=Bp.prototype={constructor:fl,restart:function(t,r,i){if(typeof t!="function")throw new TypeError("callback is not a function");i=(i==null?lc():+i)+(r==null?0:+r),!this._next&&si!==this&&(si?si._next=this:ul=this,si=this),this._call=t,this._time=i,Uu()},stop:function(){this._call&&(this._call=null,this._time=1/0,Uu())}};function Bp(t,r,i){var l=new fl;return l.restart(t,r,i),l}function vx(){lc(),++io;for(var t=ul,r;t;)(r=xr-t._time)>=0&&t._call.call(void 0,r),t=t._next;--io}function dh(){xr=(cl=di.now())+vl,io=ii=0;try{vx()}finally{io=0,wx(),xr=0}}function xx(){var t=di.now(),r=t-cl;r>Fp&&(vl-=r,cl=t)}function wx(){for(var t,r=ul,i,l=1/0;r;)r._call?(l>r._time&&(l=r._time),t=r,r=r._next):(i=r._next,r._next=null,r=t?t._next=i:ul=i);si=t,Uu(l)}function Uu(t){if(!io){ii&&(ii=clearTimeout(ii));var r=t-xr;r>24?(t<1/0&&(ii=setTimeout(dh,t-di.now()-vl)),ri&&(ri=clearInterval(ri))):(ri||(cl=di.now(),ri=setInterval(xx,Fp)),io=1,Hp(dh))}}function hh(t,r,i){var l=new fl;return r=r==null?0:+r,l.restart(a=>{l.stop(),t(a+r)},r,i),l}var _x=ml("start","end","cancel","interrupt"),Sx=[],Vp=0,ph=1,Wu=2,nl=3,gh=4,Yu=5,rl=6;function xl(t,r,i,l,a,u){var c=t.__transition;if(!c)t.__transition={};else if(i in c)return;kx(t,i,{name:r,index:l,group:a,on:_x,tween:Sx,time:u.time,delay:u.delay,duration:u.duration,ease:u.ease,timer:null,state:Vp})}function ac(t,r){var i=Xt(t,r);if(i.state>Vp)throw new Error("too late; already scheduled");return i}function sn(t,r){var i=Xt(t,r);if(i.state>nl)throw new Error("too late; already running");return i}function Xt(t,r){var i=t.__transition;if(!i||!(i=i[r]))throw new Error("transition not found");return i}function kx(t,r,i){var l=t.__transition,a;l[r]=i,i.timer=Bp(u,0,i.time);function u(g){i.state=ph,i.timer.restart(c,i.delay,i.time),i.delay<=g&&c(g-i.delay)}function c(g){var v,y,m,w;if(i.state!==ph)return p();for(v in l)if(w=l[v],w.name===i.name){if(w.state===nl)return hh(c);w.state===gh?(w.state=rl,w.timer.stop(),w.on.call("interrupt",t,t.__data__,w.index,w.group),delete l[v]):+v<r&&(w.state=rl,w.timer.stop(),w.on.call("cancel",t,t.__data__,w.index,w.group),delete l[v])}if(hh(function(){i.state===nl&&(i.state=gh,i.timer.restart(d,i.delay,i.time),d(g))}),i.state=Wu,i.on.call("start",t,t.__data__,i.index,i.group),i.state===Wu){for(i.state=nl,a=new Array(m=i.tween.length),v=0,y=-1;v<m;++v)(w=i.tween[v].value.call(t,t.__data__,i.index,i.group))&&(a[++y]=w);a.length=y+1}}function d(g){for(var v=g<i.duration?i.ease.call(null,g/i.duration):(i.timer.restart(p),i.state=Yu,1),y=-1,m=a.length;++y<m;)a[y].call(t,v);i.state===Yu&&(i.on.call("end",t,t.__data__,i.index,i.group),p())}function p(){i.state=rl,i.timer.stop(),delete l[r];for(var g in l)return;delete t.__transition}}function ol(t,r){var i=t.__transition,l,a,u=!0,c;if(i){r=r==null?null:r+"";for(c in i){if((l=i[c]).name!==r){u=!1;continue}a=l.state>Wu&&l.state<Yu,l.state=rl,l.timer.stop(),l.on.call(a?"interrupt":"cancel",t,t.__data__,l.index,l.group),delete i[c]}u&&delete t.__transition}}function Ex(t){return this.each(function(){ol(this,t)})}function Nx(t,r){var i,l;return function(){var a=sn(this,t),u=a.tween;if(u!==i){l=i=u;for(var c=0,d=l.length;c<d;++c)if(l[c].name===r){l=l.slice(),l.splice(c,1);break}}a.tween=l}}function Cx(t,r,i){var l,a;if(typeof i!="function")throw new Error;return function(){var u=sn(this,t),c=u.tween;if(c!==l){a=(l=c).slice();for(var d={name:r,value:i},p=0,g=a.length;p<g;++p)if(a[p].name===r){a[p]=d;break}p===g&&a.push(d)}u.tween=a}}function Mx(t,r){var i=this._id;if(t+="",arguments.length<2){for(var l=Xt(this.node(),i).tween,a=0,u=l.length,c;a<u;++a)if((c=l[a]).name===t)return c.value;return null}return this.each((r==null?Nx:Cx)(i,t,r))}function uc(t,r,i){var l=t._id;return t.each(function(){var a=sn(this,l);(a.value||(a.value={}))[r]=i.apply(this,arguments)}),function(a){return Xt(a,l).value[r]}}function Up(t,r){var i;return(typeof r=="number"?nn:r instanceof vr?al:(i=vr(r))?(r=i,al):$p)(t,r)}function Px(t){return function(){this.removeAttribute(t)}}function jx(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Tx(t,r,i){var l,a=i+"",u;return function(){var c=this.getAttribute(t);return c===a?null:c===l?u:u=r(l=c,i)}}function Ix(t,r,i){var l,a=i+"",u;return function(){var c=this.getAttributeNS(t.space,t.local);return c===a?null:c===l?u:u=r(l=c,i)}}function zx(t,r,i){var l,a,u;return function(){var c,d=i(this),p;return d==null?void this.removeAttribute(t):(c=this.getAttribute(t),p=d+"",c===p?null:c===l&&p===a?u:(a=p,u=r(l=c,d)))}}function Lx(t,r,i){var l,a,u;return function(){var c,d=i(this),p;return d==null?void this.removeAttributeNS(t.space,t.local):(c=this.getAttributeNS(t.space,t.local),p=d+"",c===p?null:c===l&&p===a?u:(a=p,u=r(l=c,d)))}}function Rx(t,r){var i=yl(t),l=i==="transform"?hx:Up;return this.attrTween(t,typeof r=="function"?(i.local?Lx:zx)(i,l,uc(this,"attr."+t,r)):r==null?(i.local?jx:Px)(i):(i.local?Ix:Tx)(i,l,r))}function Ax(t,r){return function(i){this.setAttribute(t,r.call(this,i))}}function Dx(t,r){return function(i){this.setAttributeNS(t.space,t.local,r.call(this,i))}}function $x(t,r){var i,l;function a(){var u=r.apply(this,arguments);return u!==l&&(i=(l=u)&&Dx(t,u)),i}return a._value=r,a}function bx(t,r){var i,l;function a(){var u=r.apply(this,arguments);return u!==l&&(i=(l=u)&&Ax(t,u)),i}return a._value=r,a}function Ox(t,r){var i="attr."+t;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(r==null)return this.tween(i,null);if(typeof r!="function")throw new Error;var l=yl(t);return this.tween(i,(l.local?$x:bx)(l,r))}function Fx(t,r){return function(){ac(this,t).delay=+r.apply(this,arguments)}}function Hx(t,r){return r=+r,function(){ac(this,t).delay=r}}function Bx(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Fx:Hx)(r,t)):Xt(this.node(),r).delay}function Vx(t,r){return function(){sn(this,t).duration=+r.apply(this,arguments)}}function Ux(t,r){return r=+r,function(){sn(this,t).duration=r}}function Wx(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Vx:Ux)(r,t)):Xt(this.node(),r).duration}function Yx(t,r){if(typeof r!="function")throw new Error;return function(){sn(this,t).ease=r}}function Xx(t){var r=this._id;return arguments.length?this.each(Yx(r,t)):Xt(this.node(),r).ease}function Kx(t,r){return function(){var i=r.apply(this,arguments);if(typeof i!="function")throw new Error;sn(this,t).ease=i}}function Qx(t){if(typeof t!="function")throw new Error;return this.each(Kx(this._id,t))}function Gx(t){typeof t!="function"&&(t=_p(t));for(var r=this._groups,i=r.length,l=new Array(i),a=0;a<i;++a)for(var u=r[a],c=u.length,d=l[a]=[],p,g=0;g<c;++g)(p=u[g])&&t.call(p,p.__data__,g,u)&&d.push(p);return new wn(l,this._parents,this._name,this._id)}function qx(t){if(t._id!==this._id)throw new Error;for(var r=this._groups,i=t._groups,l=r.length,a=i.length,u=Math.min(l,a),c=new Array(l),d=0;d<u;++d)for(var p=r[d],g=i[d],v=p.length,y=c[d]=new Array(v),m,w=0;w<v;++w)(m=p[w]||g[w])&&(y[w]=m);for(;d<l;++d)c[d]=r[d];return new wn(c,this._parents,this._name,this._id)}function Zx(t){return(t+"").trim().split(/^|\s+/).every(function(r){var i=r.indexOf(".");return i>=0&&(r=r.slice(0,i)),!r||r==="start"})}function Jx(t,r,i){var l,a,u=Zx(r)?ac:sn;return function(){var c=u(this,t),d=c.on;d!==l&&(a=(l=d).copy()).on(r,i),c.on=a}}function ew(t,r){var i=this._id;return arguments.length<2?Xt(this.node(),i).on.on(t):this.each(Jx(i,t,r))}function tw(t){return function(){var r=this.parentNode;for(var i in this.__transition)if(+i!==t)return;r&&r.removeChild(this)}}function nw(){return this.on("end.remove",tw(this._id))}function rw(t){var r=this._name,i=this._id;typeof t!="function"&&(t=rc(t));for(var l=this._groups,a=l.length,u=new Array(a),c=0;c<a;++c)for(var d=l[c],p=d.length,g=u[c]=new Array(p),v,y,m=0;m<p;++m)(v=d[m])&&(y=t.call(v,v.__data__,m,d))&&("__data__"in v&&(y.__data__=v.__data__),g[m]=y,xl(g[m],r,i,m,g,Xt(v,i)));return new wn(u,this._parents,r,i)}function ow(t){var r=this._name,i=this._id;typeof t!="function"&&(t=wp(t));for(var l=this._groups,a=l.length,u=[],c=[],d=0;d<a;++d)for(var p=l[d],g=p.length,v,y=0;y<g;++y)if(v=p[y]){for(var m=t.call(v,v.__data__,y,p),w,_=Xt(v,i),C=0,N=m.length;C<N;++C)(w=m[C])&&xl(w,r,i,C,m,_);u.push(m),c.push(v)}return new wn(u,c,r,i)}var iw=xi.prototype.constructor;function sw(){return new iw(this._groups,this._parents)}function lw(t,r){var i,l,a;return function(){var u=oo(this,t),c=(this.style.removeProperty(t),oo(this,t));return u===c?null:u===i&&c===l?a:a=r(i=u,l=c)}}function Wp(t){return function(){this.style.removeProperty(t)}}function aw(t,r,i){var l,a=i+"",u;return function(){var c=oo(this,t);return c===a?null:c===l?u:u=r(l=c,i)}}function uw(t,r,i){var l,a,u;return function(){var c=oo(this,t),d=i(this),p=d+"";return d==null&&(p=d=(this.style.removeProperty(t),oo(this,t))),c===p?null:c===l&&p===a?u:(a=p,u=r(l=c,d))}}function cw(t,r){var i,l,a,u="style."+r,c="end."+u,d;return function(){var p=sn(this,t),g=p.on,v=p.value[u]==null?d||(d=Wp(r)):void 0;(g!==i||a!==v)&&(l=(i=g).copy()).on(c,a=v),p.on=l}}function fw(t,r,i){var l=(t+="")=="transform"?dx:Up;return r==null?this.styleTween(t,lw(t,l)).on("end.style."+t,Wp(t)):typeof r=="function"?this.styleTween(t,uw(t,l,uc(this,"style."+t,r))).each(cw(this._id,t)):this.styleTween(t,aw(t,l,r),i).on("end.style."+t,null)}function dw(t,r,i){return function(l){this.style.setProperty(t,r.call(this,l),i)}}function hw(t,r,i){var l,a;function u(){var c=r.apply(this,arguments);return c!==a&&(l=(a=c)&&dw(t,c,i)),l}return u._value=r,u}function pw(t,r,i){var l="style."+(t+="");if(arguments.length<2)return(l=this.tween(l))&&l._value;if(r==null)return this.tween(l,null);if(typeof r!="function")throw new Error;return this.tween(l,hw(t,r,i??""))}function gw(t){return function(){this.textContent=t}}function mw(t){return function(){var r=t(this);this.textContent=r??""}}function yw(t){return this.tween("text",typeof t=="function"?mw(uc(this,"text",t)):gw(t==null?"":t+""))}function vw(t){return function(r){this.textContent=t.call(this,r)}}function xw(t){var r,i;function l(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&vw(a)),r}return l._value=t,l}function ww(t){var r="text";if(arguments.length<1)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,xw(t))}function _w(){for(var t=this._name,r=this._id,i=Yp(),l=this._groups,a=l.length,u=0;u<a;++u)for(var c=l[u],d=c.length,p,g=0;g<d;++g)if(p=c[g]){var v=Xt(p,r);xl(p,t,i,g,c,{time:v.time+v.delay+v.duration,delay:0,duration:v.duration,ease:v.ease})}return new wn(l,this._parents,t,i)}function Sw(){var t,r,i=this,l=i._id,a=i.size();return new Promise(function(u,c){var d={value:c},p={value:function(){--a===0&&u()}};i.each(function(){var g=sn(this,l),v=g.on;v!==t&&(r=(t=v).copy(),r._.cancel.push(d),r._.interrupt.push(d),r._.end.push(p)),g.on=r}),a===0&&u()})}var kw=0;function wn(t,r,i,l){this._groups=t,this._parents=r,this._name=i,this._id=l}function Yp(){return++kw}var vn=xi.prototype;wn.prototype={constructor:wn,select:rw,selectAll:ow,selectChild:vn.selectChild,selectChildren:vn.selectChildren,filter:Gx,merge:qx,selection:sw,transition:_w,call:vn.call,nodes:vn.nodes,node:vn.node,size:vn.size,empty:vn.empty,each:vn.each,on:ew,attr:Rx,attrTween:Ox,style:fw,styleTween:pw,text:yw,textTween:ww,remove:nw,tween:Mx,delay:Bx,duration:Wx,ease:Xx,easeVarying:Qx,end:Sw,[Symbol.iterator]:vn[Symbol.iterator]};function Ew(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Nw={time:null,delay:0,duration:250,ease:Ew};function Cw(t,r){for(var i;!(i=t.__transition)||!(i=i[r]);)if(!(t=t.parentNode))throw new Error(`transition ${r} not found`);return i}function Mw(t){var r,i;t instanceof wn?(r=t._id,t=t._name):(r=Yp(),(i=Nw).time=lc(),t=t==null?null:t+"");for(var l=this._groups,a=l.length,u=0;u<a;++u)for(var c=l[u],d=c.length,p,g=0;g<d;++g)(p=c[g])&&xl(p,t,r,g,c,i||Cw(p,r));return new wn(l,this._parents,t,r)}xi.prototype.interrupt=Ex;xi.prototype.transition=Mw;const Ks=t=>()=>t;function Pw(t,{sourceEvent:r,target:i,transform:l,dispatch:a}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},transform:{value:l,enumerable:!0,configurable:!0},_:{value:a}})}function xn(t,r,i){this.k=t,this.x=r,this.y=i}xn.prototype={constructor:xn,scale:function(t){return t===1?this:new xn(this.k*t,this.x,this.y)},translate:function(t,r){return t===0&r===0?this:new xn(this.k,this.x+this.k*t,this.y+this.k*r)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var wl=new xn(1,0,0);Xp.prototype=xn.prototype;function Xp(t){for(;!t.__zoom;)if(!(t=t.parentNode))return wl;return t.__zoom}function Pu(t){t.stopImmediatePropagation()}function oi(t){t.preventDefault(),t.stopImmediatePropagation()}function jw(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Tw(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function mh(){return this.__zoom||wl}function Iw(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function zw(){return navigator.maxTouchPoints||"ontouchstart"in this}function Lw(t,r,i){var l=t.invertX(r[0][0])-i[0][0],a=t.invertX(r[1][0])-i[1][0],u=t.invertY(r[0][1])-i[0][1],c=t.invertY(r[1][1])-i[1][1];return t.translate(a>l?(l+a)/2:Math.min(0,l)||Math.max(0,a),c>u?(u+c)/2:Math.min(0,u)||Math.max(0,c))}function Kp(){var t=jw,r=Tw,i=Lw,l=Iw,a=zw,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,p=tl,g=ml("start","zoom","end"),v,y,m,w=500,_=150,C=0,N=10;function E(M){M.property("__zoom",mh).on("wheel.zoom",V,{passive:!1}).on("mousedown.zoom",b).on("dblclick.zoom",J).filter(a).on("touchstart.zoom",G).on("touchmove.zoom",ee).on("touchend.zoom touchcancel.zoom",Z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}E.transform=function(M,$,W,Y){var D=M.selection?M.selection():M;D.property("__zoom",mh),M!==D?U(M,$,W,Y):D.interrupt().each(function(){O(this,arguments).event(Y).start().zoom(null,typeof $=="function"?$.apply(this,arguments):$).end()})},E.scaleBy=function(M,$,W,Y){E.scaleTo(M,function(){var D=this.__zoom.k,A=typeof $=="function"?$.apply(this,arguments):$;return D*A},W,Y)},E.scaleTo=function(M,$,W,Y){E.transform(M,function(){var D=r.apply(this,arguments),A=this.__zoom,B=W==null?T(D):typeof W=="function"?W.apply(this,arguments):W,P=A.invert(B),L=typeof $=="function"?$.apply(this,arguments):$;return i(k(j(A,L),B,P),D,c)},W,Y)},E.translateBy=function(M,$,W,Y){E.transform(M,function(){return i(this.__zoom.translate(typeof $=="function"?$.apply(this,arguments):$,typeof W=="function"?W.apply(this,arguments):W),r.apply(this,arguments),c)},null,Y)},E.translateTo=function(M,$,W,Y,D){E.transform(M,function(){var A=r.apply(this,arguments),B=this.__zoom,P=Y==null?T(A):typeof Y=="function"?Y.apply(this,arguments):Y;return i(wl.translate(P[0],P[1]).scale(B.k).translate(typeof $=="function"?-$.apply(this,arguments):-$,typeof W=="function"?-W.apply(this,arguments):-W),A,c)},Y,D)};function j(M,$){return $=Math.max(u[0],Math.min(u[1],$)),$===M.k?M:new xn($,M.x,M.y)}function k(M,$,W){var Y=$[0]-W[0]*M.k,D=$[1]-W[1]*M.k;return Y===M.x&&D===M.y?M:new xn(M.k,Y,D)}function T(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function U(M,$,W,Y){M.on("start.zoom",function(){O(this,arguments).event(Y).start()}).on("interrupt.zoom end.zoom",function(){O(this,arguments).event(Y).end()}).tween("zoom",function(){var D=this,A=arguments,B=O(D,A).event(Y),P=r.apply(D,A),L=W==null?T(P):typeof W=="function"?W.apply(D,A):W,re=Math.max(P[1][0]-P[0][0],P[1][1]-P[0][1]),ie=D.__zoom,ce=typeof $=="function"?$.apply(D,A):$,te=p(ie.invert(L).concat(re/ie.k),ce.invert(L).concat(re/ce.k));return function(ne){if(ne===1)ne=ce;else{var Q=te(ne),oe=re/Q[2];ne=new xn(oe,L[0]-Q[0]*oe,L[1]-Q[1]*oe)}B.zoom(null,ne)}})}function O(M,$,W){return!W&&M.__zooming||new z(M,$)}function z(M,$){this.that=M,this.args=$,this.active=0,this.sourceEvent=null,this.extent=r.apply(M,$),this.taps=0}z.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,$){return this.mouse&&M!=="mouse"&&(this.mouse[1]=$.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=$.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=$.invert(this.touch1[0])),this.that.__zoom=$,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var $=Ct(this.that).datum();g.call(M,this.that,new Pw(M,{sourceEvent:this.sourceEvent,target:E,transform:this.that.__zoom,dispatch:g}),$)}};function V(M,...$){if(!t.apply(this,arguments))return;var W=O(this,$).event(M),Y=this.__zoom,D=Math.max(u[0],Math.min(u[1],Y.k*Math.pow(2,l.apply(this,arguments)))),A=Bt(M);if(W.wheel)(W.mouse[0][0]!==A[0]||W.mouse[0][1]!==A[1])&&(W.mouse[1]=Y.invert(W.mouse[0]=A)),clearTimeout(W.wheel);else{if(Y.k===D)return;W.mouse=[A,Y.invert(A)],ol(this),W.start()}oi(M),W.wheel=setTimeout(B,_),W.zoom("mouse",i(k(j(Y,D),W.mouse[0],W.mouse[1]),W.extent,c));function B(){W.wheel=null,W.end()}}function b(M,...$){if(m||!t.apply(this,arguments))return;var W=M.currentTarget,Y=O(this,$,!0).event(M),D=Ct(M.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",re,!0),A=Bt(M,W),B=M.clientX,P=M.clientY;Ip(M.view),Pu(M),Y.mouse=[A,this.__zoom.invert(A)],ol(this),Y.start();function L(ie){if(oi(ie),!Y.moved){var ce=ie.clientX-B,te=ie.clientY-P;Y.moved=ce*ce+te*te>C}Y.event(ie).zoom("mouse",i(k(Y.that.__zoom,Y.mouse[0]=Bt(ie,W),Y.mouse[1]),Y.extent,c))}function re(ie){D.on("mousemove.zoom mouseup.zoom",null),zp(ie.view,Y.moved),oi(ie),Y.event(ie).end()}}function J(M,...$){if(t.apply(this,arguments)){var W=this.__zoom,Y=Bt(M.changedTouches?M.changedTouches[0]:M,this),D=W.invert(Y),A=W.k*(M.shiftKey?.5:2),B=i(k(j(W,A),Y,D),r.apply(this,$),c);oi(M),d>0?Ct(this).transition().duration(d).call(U,B,Y,M):Ct(this).call(E.transform,B,Y,M)}}function G(M,...$){if(t.apply(this,arguments)){var W=M.touches,Y=W.length,D=O(this,$,M.changedTouches.length===Y).event(M),A,B,P,L;for(Pu(M),B=0;B<Y;++B)P=W[B],L=Bt(P,this),L=[L,this.__zoom.invert(L),P.identifier],D.touch0?!D.touch1&&D.touch0[2]!==L[2]&&(D.touch1=L,D.taps=0):(D.touch0=L,A=!0,D.taps=1+!!v);v&&(v=clearTimeout(v)),A&&(D.taps<2&&(y=L[0],v=setTimeout(function(){v=null},w)),ol(this),D.start())}}function ee(M,...$){if(this.__zooming){var W=O(this,$).event(M),Y=M.changedTouches,D=Y.length,A,B,P,L;for(oi(M),A=0;A<D;++A)B=Y[A],P=Bt(B,this),W.touch0&&W.touch0[2]===B.identifier?W.touch0[0]=P:W.touch1&&W.touch1[2]===B.identifier&&(W.touch1[0]=P);if(B=W.that.__zoom,W.touch1){var re=W.touch0[0],ie=W.touch0[1],ce=W.touch1[0],te=W.touch1[1],ne=(ne=ce[0]-re[0])*ne+(ne=ce[1]-re[1])*ne,Q=(Q=te[0]-ie[0])*Q+(Q=te[1]-ie[1])*Q;B=j(B,Math.sqrt(ne/Q)),P=[(re[0]+ce[0])/2,(re[1]+ce[1])/2],L=[(ie[0]+te[0])/2,(ie[1]+te[1])/2]}else if(W.touch0)P=W.touch0[0],L=W.touch0[1];else return;W.zoom("touch",i(k(B,P,L),W.extent,c))}}function Z(M,...$){if(this.__zooming){var W=O(this,$).event(M),Y=M.changedTouches,D=Y.length,A,B;for(Pu(M),m&&clearTimeout(m),m=setTimeout(function(){m=null},w),A=0;A<D;++A)B=Y[A],W.touch0&&W.touch0[2]===B.identifier?delete W.touch0:W.touch1&&W.touch1[2]===B.identifier&&delete W.touch1;if(W.touch1&&!W.touch0&&(W.touch0=W.touch1,delete W.touch1),W.touch0)W.touch0[1]=this.__zoom.invert(W.touch0[0]);else if(W.end(),W.taps===2&&(B=Bt(B,this),Math.hypot(y[0]-B[0],y[1]-B[1])<N)){var P=Ct(this).on("dblclick.zoom");P&&P.apply(this,arguments)}}}return E.wheelDelta=function(M){return arguments.length?(l=typeof M=="function"?M:Ks(+M),E):l},E.filter=function(M){return arguments.length?(t=typeof M=="function"?M:Ks(!!M),E):t},E.touchable=function(M){return arguments.length?(a=typeof M=="function"?M:Ks(!!M),E):a},E.extent=function(M){return arguments.length?(r=typeof M=="function"?M:Ks([[+M[0][0],+M[0][1]],[+M[1][0],+M[1][1]]]),E):r},E.scaleExtent=function(M){return arguments.length?(u[0]=+M[0],u[1]=+M[1],E):[u[0],u[1]]},E.translateExtent=function(M){return arguments.length?(c[0][0]=+M[0][0],c[1][0]=+M[1][0],c[0][1]=+M[0][1],c[1][1]=+M[1][1],E):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},E.constrain=function(M){return arguments.length?(i=M,E):i},E.duration=function(M){return arguments.length?(d=+M,E):d},E.interpolate=function(M){return arguments.length?(p=M,E):p},E.on=function(){var M=g.on.apply(g,arguments);return M===g?E:M},E.clickDistance=function(M){return arguments.length?(C=(M=+M)*M,E):Math.sqrt(C)},E.tapDistance=function(M){return arguments.length?(N=+M,E):N},E}const Yt={error001:(t="react")=>`Seems like you have not used ${t==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${t}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:r,sourceHandle:i,targetHandle:l})=>`Couldn't create edge for ${t} handle id: "${t==="source"?i:l}", edge id: ${r}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:t=>`Edge with id "${t}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},hi=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Qp=["Enter"," ","Escape"],Gp={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:t,x:r,y:i})=>`Moved selected node ${t}. New position, x: ${r}, y: ${i}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var so;(function(t){t.Strict="strict",t.Loose="loose"})(so||(so={}));var yr;(function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"})(yr||(yr={}));var pi;(function(t){t.Partial="partial",t.Full="full"})(pi||(pi={}));const qp={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Wn;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(Wn||(Wn={}));var dl;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(dl||(dl={}));var ve;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(ve||(ve={}));const yh={[ve.Left]:ve.Right,[ve.Right]:ve.Left,[ve.Top]:ve.Bottom,[ve.Bottom]:ve.Top},Zp=t=>!!t&&typeof t=="object"&&"id"in t&&"source"in t&&"target"in t,Rw=t=>!!t&&typeof t=="object"&&"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),cc=t=>!!t&&typeof t=="object"&&"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),_i=(t,r=[0,0])=>{const{width:i,height:l}=Kt(t),a=t.origin??r,u=i*a[0],c=l*a[1];return{x:t.position.x-u,y:t.position.y-c}},Aw=(t,r={nodeOrigin:[0,0]})=>{if(t.length===0)return{x:0,y:0,width:0,height:0};let i=!1;const l=t.reduce((a,u)=>{const c=typeof u=="string";let d=!r.nodeLookup&&!c?u:void 0;return r.nodeLookup&&(d=c?r.nodeLookup.get(u):cc(u)?u:r.nodeLookup.get(u.id)),d?(i=!0,_l(a,hl(d,r.nodeOrigin))):a},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return i?Sl(l):{x:0,y:0,width:0,height:0}},Si=(t,r={})=>{let i={x:1/0,y:1/0,x2:-1/0,y2:-1/0},l=!1;return t.forEach(a=>{(r.filter===void 0||r.filter(a))&&(i=_l(i,hl(a)),l=!0)}),l?Sl(i):{x:0,y:0,width:0,height:0}},fc=(t,r,[i,l,a]=[0,0,1],u=!1,c=!1)=>{const d=(r.x-i)/a,p=(r.y-l)/a,g=r.width/a,v=r.height/a,y=[];for(const m of t.values()){const{measured:w,selectable:_=!0,hidden:C=!1}=m;if(c&&!_||C)continue;const N=w.width??m.width??m.initialWidth??0,E=w.height??m.height??m.initialHeight??0,{x:j,y:k}=m.internals.positionAbsolute,T=ng(d,p,g,v,j,k,N,E),U=N*E,O=u&&T>0;(!m.internals.handleBounds||O||T>=U||m.dragging)&&y.push(m)}return y},Dw=(t,r)=>{const i=new Set;return t.forEach(l=>{i.add(l.id)}),r.filter(l=>i.has(l.source)||i.has(l.target))};function $w(t,r){const i=new Map,l=r!=null&&r.nodes?new Set(r.nodes.map(a=>a.id)):null;return t.forEach(a=>{let u;if(r!=null&&r.includeHiddenNodes){const{width:c,height:d}=Kt(a);u=c>0&&d>0}else u=!!(a.measured.width&&a.measured.height&&!a.hidden);u&&(!l||l.has(a.id))&&i.set(a.id,a)}),i}async function bw({nodes:t,width:r,height:i,panZoom:l,minZoom:a,maxZoom:u},c){if(t.size===0)return!0;const d=$w(t,c),p=Si(d),g=hc(p,r,i,(c==null?void 0:c.minZoom)??a,(c==null?void 0:c.maxZoom)??u,(c==null?void 0:c.padding)??.1);return await l.setViewport(g,{duration:c==null?void 0:c.duration,ease:c==null?void 0:c.ease,interpolate:c==null?void 0:c.interpolate}),!0}function Jp({nodeId:t,nextPosition:r,nodeLookup:i,nodeOrigin:l=[0,0],nodeExtent:a,onError:u}){const c=i.get(t),d=c.parentId?i.get(c.parentId):void 0,{x:p,y:g}=d?d.internals.positionAbsolute:{x:0,y:0},v=c.origin??l;let y=c.extent||a;if(c.extent==="parent"&&!c.expandParent)if(!d)u==null||u("005",Yt.error005());else{const{width:w,height:_}=Kt(d);w&&_&&(y=[[p,g],[p+w,g+_]])}else d&&_r(c.extent)&&(y=[[c.extent[0][0]+p,c.extent[0][1]+g],[c.extent[1][0]+p,c.extent[1][1]+g]]);const m=_r(y)?wr(r,y,c.measured):r;return(c.measured.width===void 0||c.measured.height===void 0)&&(u==null||u("015",Yt.error015())),{position:{x:m.x-p+(c.measured.width??0)*v[0],y:m.y-g+(c.measured.height??0)*v[1]},positionAbsolute:m}}async function Ow({nodesToRemove:t=[],edgesToRemove:r=[],nodes:i,edges:l,onBeforeDelete:a}){const u=new Set(t.map(m=>m.id)),c=[];for(const m of i){if(m.deletable===!1)continue;const w=u.has(m.id),_=!w&&m.parentId&&c.find(C=>C.id===m.parentId);(w||_)&&c.push(m)}const d=new Set(r.map(m=>m.id)),p=l.filter(m=>m.deletable!==!1),v=Dw(c,p);for(const m of p)d.has(m.id)&&!v.find(_=>_.id===m.id)&&v.push(m);if(!a)return{edges:v,nodes:c};const y=await a({nodes:c,edges:v});return typeof y=="boolean"?y?{edges:v,nodes:c}:{edges:[],nodes:[]}:y}const lo=(t,r=0,i=1)=>Math.min(Math.max(t,r),i),wr=(t={x:0,y:0},r,i)=>({x:lo(t.x,r[0][0],r[1][0]-((i==null?void 0:i.width)??0)),y:lo(t.y,r[0][1],r[1][1]-((i==null?void 0:i.height)??0))});function eg(t,r,i){const{width:l,height:a}=Kt(i),{x:u,y:c}=i.internals.positionAbsolute;return wr(t,[[u,c],[u+l,c+a]],r)}const vh=(t,r,i)=>t<r?lo(Math.abs(t-r),1,r)/r:t>i?-lo(Math.abs(t-i),1,r)/r:0,dc=(t,r,i=15,l=40)=>{const a=vh(t.x,l,r.width-l)*i,u=vh(t.y,l,r.height-l)*i;return[a,u]},_l=(t,r)=>({x:Math.min(t.x,r.x),y:Math.min(t.y,r.y),x2:Math.max(t.x2,r.x2),y2:Math.max(t.y2,r.y2)}),Xu=({x:t,y:r,width:i,height:l})=>({x:t,y:r,x2:t+i,y2:r+l}),Sl=({x:t,y:r,x2:i,y2:l})=>({x:t,y:r,width:i-t,height:l-r}),gi=(t,r=[0,0])=>{var a,u;const{x:i,y:l}=cc(t)?t.internals.positionAbsolute:_i(t,r);return{x:i,y:l,width:((a=t.measured)==null?void 0:a.width)??t.width??t.initialWidth??0,height:((u=t.measured)==null?void 0:u.height)??t.height??t.initialHeight??0}},hl=(t,r=[0,0])=>{var a,u;const{x:i,y:l}=cc(t)?t.internals.positionAbsolute:_i(t,r);return{x:i,y:l,x2:i+(((a=t.measured)==null?void 0:a.width)??t.width??t.initialWidth??0),y2:l+(((u=t.measured)==null?void 0:u.height)??t.height??t.initialHeight??0)}},tg=(t,r)=>Sl(_l(Xu(t),Xu(r))),ng=(t,r,i,l,a,u,c,d)=>{const p=Math.max(0,Math.min(t+i,a+c)-Math.max(t,a)),g=Math.max(0,Math.min(r+l,u+d)-Math.max(r,u));return Math.ceil(p*g)},pl=(t,r)=>ng(t.x,t.y,t.width,t.height,r.x,r.y,r.width,r.height),xh=t=>Ut(t.width)&&Ut(t.height)&&Ut(t.x)&&Ut(t.y),Ut=t=>!isNaN(t)&&isFinite(t),rg=(t,r)=>(i,l)=>{},ki=(t,r=[1,1])=>({x:r[0]*Math.round(t.x/r[0]),y:r[1]*Math.round(t.y/r[1])}),Ei=({x:t,y:r},[i,l,a],u=!1,c=[1,1])=>{const d={x:(t-i)/a,y:(r-l)/a};return u?ki(d,c):d},ao=({x:t,y:r},[i,l,a])=>({x:t*a+i,y:r*a+l});function eo(t,r){if(typeof t=="number")return Math.floor((r-r/(1+t))*.5);if(typeof t=="string"&&t.endsWith("px")){const i=parseFloat(t);if(!Number.isNaN(i))return Math.floor(i)}if(typeof t=="string"&&t.endsWith("%")){const i=parseFloat(t);if(!Number.isNaN(i))return Math.floor(r*i*.01)}return console.error(`The padding value "${t}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Fw(t,r,i){if(typeof t=="string"||typeof t=="number"){const l=eo(t,i),a=eo(t,r);return{top:l,right:a,bottom:l,left:a,x:a*2,y:l*2}}if(typeof t=="object"){const l=eo(t.top??t.y??0,i),a=eo(t.bottom??t.y??0,i),u=eo(t.left??t.x??0,r),c=eo(t.right??t.x??0,r);return{top:l,right:c,bottom:a,left:u,x:u+c,y:l+a}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Hw(t,r,i,l,a,u){const{x:c,y:d}=ao(t,[r,i,l]),{x:p,y:g}=ao({x:t.x+t.width,y:t.y+t.height},[r,i,l]),v=a-p,y=u-g;return{left:Math.floor(c),top:Math.floor(d),right:Math.floor(v),bottom:Math.floor(y)}}const hc=(t,r,i,l,a,u)=>{const c=Fw(u,r,i),d=(r-c.x)/t.width,p=(i-c.y)/t.height,g=Math.min(d,p),v=lo(g,l,a),y=t.x+t.width/2,m=t.y+t.height/2,w=r/2-y*v,_=i/2-m*v,C=Hw(t,w,_,v,r,i),N={left:Math.min(C.left-c.left,0),top:Math.min(C.top-c.top,0),right:Math.min(C.right-c.right,0),bottom:Math.min(C.bottom-c.bottom,0)};return{x:w-N.left+N.right,y:_-N.top+N.bottom,zoom:v}},mi=()=>{var t;return typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)==null?void 0:t.indexOf("Mac"))>=0};function _r(t){return t!=null&&t!=="parent"}function Kt(t){var r,i;return{width:((r=t.measured)==null?void 0:r.width)??t.width??t.initialWidth??0,height:((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight??0}}function og(t){var r,i;return(((r=t.measured)==null?void 0:r.width)??t.width??t.initialWidth)!==void 0&&(((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight)!==void 0}function ig(t,r={width:0,height:0},i,l,a){const u={...t},c=l.get(i);if(c){const d=c.origin||a;u.x+=c.internals.positionAbsolute.x-(r.width??0)*d[0],u.y+=c.internals.positionAbsolute.y-(r.height??0)*d[1]}return u}function wh(t,r){if(t.size!==r.size)return!1;for(const i of t)if(!r.has(i))return!1;return!0}function Bw(){let t,r;return{promise:new Promise((l,a)=>{t=l,r=a}),resolve:t,reject:r}}function Vw(t){return{...Gp,...t||{}}}function sg(t){return t===null?null:t?"valid":"invalid"}function ai(t,{snapGrid:r=[0,0],snapToGrid:i=!1,transform:l,containerBounds:a}){const{x:u,y:c}=Wt(t),d=Ei({x:u-((a==null?void 0:a.left)??0),y:c-((a==null?void 0:a.top)??0)},l),{x:p,y:g}=i?ki(d,r):d;return{xSnapped:p,ySnapped:g,...d}}const pc=t=>({width:t.offsetWidth,height:t.offsetHeight}),lg=t=>{var r;return((r=t==null?void 0:t.getRootNode)==null?void 0:r.call(t))||(window==null?void 0:window.document)},Uw=["INPUT","SELECT","TEXTAREA"];function ag(t){var l,a;const r=((a=(l=t.composedPath)==null?void 0:l.call(t))==null?void 0:a[0])||t.target;return(r==null?void 0:r.nodeType)!==1?!1:Uw.includes(r.nodeName)||r.hasAttribute("contenteditable")||!!r.closest(".nokey")}const ug=t=>"clientX"in t,Wt=(t,r)=>{var u,c;const i=ug(t),l=i?t.clientX:(u=t.touches)==null?void 0:u[0].clientX,a=i?t.clientY:(c=t.touches)==null?void 0:c[0].clientY;return{x:l-((r==null?void 0:r.left)??0),y:a-((r==null?void 0:r.top)??0)}},_h=(t,r,i,l,a)=>{const u=r.querySelectorAll(`.${t}`);return!u||!u.length?null:Array.from(u).map(c=>{const d=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),type:t,nodeId:a,position:c.getAttribute("data-handlepos"),x:(d.left-i.left)/l,y:(d.top-i.top)/l,...pc(c)}})};function cg({sourceX:t,sourceY:r,targetX:i,targetY:l,sourceControlX:a,sourceControlY:u,targetControlX:c,targetControlY:d}){const p=t*.125+a*.375+c*.375+i*.125,g=r*.125+u*.375+d*.375+l*.125,v=Math.abs(p-t),y=Math.abs(g-r);return[p,g,v,y]}function Qs(t,r){return t>=0?.5*t:r*25*Math.sqrt(-t)}function Sh({pos:t,x1:r,y1:i,x2:l,y2:a,c:u}){switch(t){case ve.Left:return[r-Qs(r-l,u),i];case ve.Right:return[r+Qs(l-r,u),i];case ve.Top:return[r,i-Qs(i-a,u)];case ve.Bottom:return[r,i+Qs(a-i,u)]}}function fg({sourceX:t,sourceY:r,sourcePosition:i=ve.Bottom,targetX:l,targetY:a,targetPosition:u=ve.Top,curvature:c=.25}){const[d,p]=Sh({pos:i,x1:t,y1:r,x2:l,y2:a,c}),[g,v]=Sh({pos:u,x1:l,y1:a,x2:t,y2:r,c}),[y,m,w,_]=cg({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:d,sourceControlY:p,targetControlX:g,targetControlY:v});return[`M${t},${r} C${d},${p} ${g},${v} ${l},${a}`,y,m,w,_]}function dg({sourceX:t,sourceY:r,targetX:i,targetY:l}){const a=Math.abs(i-t)/2,u=i<t?i+a:i-a,c=Math.abs(l-r)/2,d=l<r?l+c:l-c;return[u,d,a,c]}function Ww({sourceNode:t,targetNode:r,selected:i=!1,zIndex:l=0,elevateOnSelect:a=!1,zIndexMode:u="basic"}){if(u==="manual")return l;const c=a&&i?l+1e3:l,d=Math.max(t.parentId||a&&t.selected?t.internals.z:0,r.parentId||a&&r.selected?r.internals.z:0);return c+d}function Yw({sourceNode:t,targetNode:r,width:i,height:l,transform:a}){const u=_l(hl(t),hl(r));u.x===u.x2&&(u.x2+=1),u.y===u.y2&&(u.y2+=1);const c={x:-a[0]/a[2],y:-a[1]/a[2],width:i/a[2],height:l/a[2]};return pl(c,Sl(u))>0}const Xw=({source:t,sourceHandle:r,target:i,targetHandle:l})=>`xy-edge__${t}${r||""}-${i}${l||""}`,Kw=(t,r)=>r.some(i=>i.source===t.source&&i.target===t.target&&(i.sourceHandle===t.sourceHandle||!i.sourceHandle&&!t.sourceHandle)&&(i.targetHandle===t.targetHandle||!i.targetHandle&&!t.targetHandle)),Qw=(t,r,i={})=>{var u;if(!t.source||!t.target)return(u=i.onError)==null||u.call(i,"006",Yt.error006()),r;const l=i.getEdgeId||Xw;let a;return Zp(t)?a={...t}:a={...t,id:l(t)},Kw(a,r)?r:(a.sourceHandle===null&&delete a.sourceHandle,a.targetHandle===null&&delete a.targetHandle,r.concat(a))};function hg({sourceX:t,sourceY:r,targetX:i,targetY:l}){const[a,u,c,d]=dg({sourceX:t,sourceY:r,targetX:i,targetY:l});return[`M ${t},${r}L ${i},${l}`,a,u,c,d]}const kh={[ve.Left]:{x:-1,y:0},[ve.Right]:{x:1,y:0},[ve.Top]:{x:0,y:-1},[ve.Bottom]:{x:0,y:1}},Gw=({source:t,sourcePosition:r=ve.Bottom,target:i})=>r===ve.Left||r===ve.Right?t.x<i.x?{x:1,y:0}:{x:-1,y:0}:t.y<i.y?{x:0,y:1}:{x:0,y:-1},Eh=(t,r)=>Math.sqrt(Math.pow(r.x-t.x,2)+Math.pow(r.y-t.y,2));function qw({source:t,sourcePosition:r=ve.Bottom,target:i,targetPosition:l=ve.Top,center:a,offset:u,stepPosition:c}){const d=kh[r],p=kh[l],g={x:t.x+d.x*u,y:t.y+d.y*u},v={x:i.x+p.x*u,y:i.y+p.y*u},y=Gw({source:g,sourcePosition:r,target:v}),m=y.x!==0?"x":"y",w=y[m];let _=[],C,N;const E={x:0,y:0},j={x:0,y:0},[,,k,T]=dg({sourceX:t.x,sourceY:t.y,targetX:i.x,targetY:i.y});if(d[m]*p[m]===-1){m==="x"?(C=a.x??g.x+(v.x-g.x)*c,N=a.y??(g.y+v.y)/2):(C=a.x??(g.x+v.x)/2,N=a.y??g.y+(v.y-g.y)*c);const V=[{x:C,y:g.y},{x:C,y:v.y}],b=[{x:g.x,y:N},{x:v.x,y:N}];d[m]===w?_=m==="x"?V:b:_=m==="x"?b:V}else{const V=[{x:g.x,y:v.y}],b=[{x:v.x,y:g.y}];if(m==="x"?_=d.x===w?b:V:_=d.y===w?V:b,r===l){const M=Math.abs(t[m]-i[m]);if(M<=u){const $=Math.min(u-1,u-M);d[m]===w?E[m]=(g[m]>t[m]?-1:1)*$:j[m]=(v[m]>i[m]?-1:1)*$}}if(r!==l){const M=m==="x"?"y":"x",$=d[m]===p[M],W=g[M]>v[M],Y=g[M]<v[M];(d[m]===1&&(!$&&W||$&&Y)||d[m]!==1&&(!$&&Y||$&&W))&&(_=m==="x"?V:b)}const J={x:g.x+E.x,y:g.y+E.y},G={x:v.x+j.x,y:v.y+j.y},ee=Math.max(Math.abs(J.x-_[0].x),Math.abs(G.x-_[0].x)),Z=Math.max(Math.abs(J.y-_[0].y),Math.abs(G.y-_[0].y));ee>=Z?(C=(J.x+G.x)/2,N=_[0].y):(C=_[0].x,N=(J.y+G.y)/2)}const U={x:g.x+E.x,y:g.y+E.y},O={x:v.x+j.x,y:v.y+j.y};return[[t,...U.x!==_[0].x||U.y!==_[0].y?[U]:[],..._,...O.x!==_[_.length-1].x||O.y!==_[_.length-1].y?[O]:[],i],C,N,k,T]}function Zw(t,r,i,l){const a=Math.min(Eh(t,r)/2,Eh(r,i)/2,l),{x:u,y:c}=r;if(t.x===u&&u===i.x||t.y===c&&c===i.y)return`L${u} ${c}`;if(t.y===c){const g=t.x<i.x?-1:1,v=t.y<i.y?1:-1;return`L ${u+a*g},${c}Q ${u},${c} ${u},${c+a*v}`}const d=t.x<i.x?1:-1,p=t.y<i.y?-1:1;return`L ${u},${c+a*p}Q ${u},${c} ${u+a*d},${c}`}function Ku({sourceX:t,sourceY:r,sourcePosition:i=ve.Bottom,targetX:l,targetY:a,targetPosition:u=ve.Top,borderRadius:c=5,centerX:d,centerY:p,offset:g=20,stepPosition:v=.5}){const[y,m,w,_,C]=qw({source:{x:t,y:r},sourcePosition:i,target:{x:l,y:a},targetPosition:u,center:{x:d,y:p},offset:g,stepPosition:v});let N=`M${y[0].x} ${y[0].y}`;for(let E=1;E<y.length-1;E++)N+=Zw(y[E-1],y[E],y[E+1],c);return N+=`L${y[y.length-1].x} ${y[y.length-1].y}`,[N,m,w,_,C]}function Nh(t){var r;return t&&!!(t.internals.handleBounds||(r=t.handles)!=null&&r.length)&&!!(t.measured.width||t.width||t.initialWidth)}function Jw(t){var y;const{sourceNode:r,targetNode:i}=t;if(!Nh(r)||!Nh(i))return null;const l=r.internals.handleBounds||Ch(r.handles),a=i.internals.handleBounds||Ch(i.handles),u=Mh((l==null?void 0:l.source)??[],t.sourceHandle),c=Mh(t.connectionMode===so.Strict?(a==null?void 0:a.target)??[]:((a==null?void 0:a.target)??[]).concat((a==null?void 0:a.source)??[]),t.targetHandle);if(!u||!c)return(y=t.onError)==null||y.call(t,"008",Yt.error008(u?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const d=(u==null?void 0:u.position)||ve.Bottom,p=(c==null?void 0:c.position)||ve.Top,g=Sr(r,u,d),v=Sr(i,c,p);return{sourceX:g.x,sourceY:g.y,targetX:v.x,targetY:v.y,sourcePosition:d,targetPosition:p}}function Ch(t){if(!t)return null;const r=[],i=[];for(const l of t)l.width=l.width??1,l.height=l.height??1,l.type==="source"?r.push(l):l.type==="target"&&i.push(l);return{source:r,target:i}}function Sr(t,r,i=ve.Left,l=!1){const a=((r==null?void 0:r.x)??0)+t.internals.positionAbsolute.x,u=((r==null?void 0:r.y)??0)+t.internals.positionAbsolute.y,{width:c,height:d}=r??Kt(t);if(l)return{x:a+c/2,y:u+d/2};switch((r==null?void 0:r.position)??i){case ve.Top:return{x:a+c/2,y:u};case ve.Right:return{x:a+c,y:u+d/2};case ve.Bottom:return{x:a+c/2,y:u+d};case ve.Left:return{x:a,y:u+d/2}}}function Mh(t,r){return t&&(r?t.find(i=>i.id===r):t[0])||null}function Qu(t,r){return t?typeof t=="string"?t:`${r?`${r}__`:""}${Object.keys(t).sort().map(l=>`${l}=${t[l]}`).join("&")}`:""}function e1(t,{id:r,defaultColor:i,defaultMarkerStart:l,defaultMarkerEnd:a}){const u=new Set;return t.reduce((c,d)=>([d.markerStart||l,d.markerEnd||a].forEach(p=>{if(p&&typeof p=="object"){const g=Qu(p,r);u.has(g)||(c.push({id:g,color:p.color||i,...p}),u.add(g))}}),c),[]).sort((c,d)=>c.id.localeCompare(d.id))}const pg=1e3,t1=10,gc={nodeOrigin:[0,0],nodeExtent:hi,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},n1={...gc,checkEquality:!0};function mc(t,r){const i={...t};for(const l in r)r[l]!==void 0&&(i[l]=r[l]);return i}function r1(t,r,i){const l=mc(gc,i);for(const a of t.values())if(a.parentId)vc(a,t,r,l);else{const u=_i(a,l.nodeOrigin),c=_r(a.extent)?a.extent:l.nodeExtent,d=wr(u,c,Kt(a));a.internals.positionAbsolute=d}}function o1(t,r){if(!t.handles)return t.measured?r==null?void 0:r.internals.handleBounds:void 0;const i=[],l=[];for(const a of t.handles){const u={id:a.id,width:a.width??1,height:a.height??1,nodeId:t.id,x:a.x,y:a.y,position:a.position,type:a.type};a.type==="source"?i.push(u):a.type==="target"&&l.push(u)}return{source:i,target:l}}function yc(t){return t==="manual"}function Gu(t,r,i,l={}){var v,y;const a=mc(n1,l),u={i:0},c=new Map(r),d=a!=null&&a.elevateNodesOnSelect&&!yc(a.zIndexMode)?pg:0;let p=t.length>0,g=!1;r.clear(),i.clear();for(const m of t){let w=c.get(m.id);if(a.checkEquality&&m===(w==null?void 0:w.internals.userNode))r.set(m.id,w);else{const _=_i(m,a.nodeOrigin),C=_r(m.extent)?m.extent:a.nodeExtent,N=wr(_,C,Kt(m));w={...a.defaults,...m,measured:{width:(v=m.measured)==null?void 0:v.width,height:(y=m.measured)==null?void 0:y.height},internals:{positionAbsolute:N,handleBounds:o1(m,w),z:gg(m,d,a.zIndexMode),userNode:m}},r.set(m.id,w)}(w.measured===void 0||w.measured.width===void 0||w.measured.height===void 0)&&!w.hidden&&(p=!1),m.parentId&&vc(w,r,i,l,u),g||(g=m.selected??!1)}return{nodesInitialized:p,hasSelectedNodes:g}}function i1(t,r){if(!t.parentId)return;const i=r.get(t.parentId);i?i.set(t.id,t):r.set(t.parentId,new Map([[t.id,t]]))}function vc(t,r,i,l,a){const{elevateNodesOnSelect:u,nodeOrigin:c,nodeExtent:d,zIndexMode:p}=mc(gc,l),g=t.parentId,v=r.get(g);if(!v){console.warn(`Parent node ${g} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}i1(t,i),a&&!v.parentId&&v.internals.rootParentIndex===void 0&&p==="auto"&&(v.internals.rootParentIndex=++a.i,v.internals.z=v.internals.z+a.i*t1),a&&v.internals.rootParentIndex!==void 0&&(a.i=v.internals.rootParentIndex);const y=u&&!yc(p)?pg:0,{x:m,y:w,z:_}=s1(t,v,c,d,y,p),{positionAbsolute:C}=t.internals,N=m!==C.x||w!==C.y;(N||_!==t.internals.z)&&r.set(t.id,{...t,internals:{...t.internals,positionAbsolute:N?{x:m,y:w}:C,z:_}})}function gg(t,r,i){const l=Ut(t.zIndex)?t.zIndex:0;return yc(i)?l:l+(t.selected?r:0)}function s1(t,r,i,l,a,u){const{x:c,y:d}=r.internals.positionAbsolute,p=Kt(t),g=_i(t,i),v=_r(t.extent)?wr(g,t.extent,p):g;let y=wr({x:c+v.x,y:d+v.y},l,p);t.extent==="parent"&&(y=eg(y,p,r));const m=gg(t,a,u),w=r.internals.z??0;return{x:y.x,y:y.y,z:w>=m?w+1:m}}function xc(t,r,i,l=[0,0]){var c;const a=[],u=new Map;for(const d of t){const p=r.get(d.parentId);if(!p)continue;const g=((c=u.get(d.parentId))==null?void 0:c.expandedRect)??gi(p),v=tg(g,d.rect);u.set(d.parentId,{expandedRect:v,parent:p})}return u.size>0&&u.forEach(({expandedRect:d,parent:p},g)=>{var k;const v=p.internals.positionAbsolute,y=Kt(p),m=p.origin??l,w=d.x<v.x?Math.round(Math.abs(v.x-d.x)):0,_=d.y<v.y?Math.round(Math.abs(v.y-d.y)):0,C=Math.max(y.width,Math.round(d.width)),N=Math.max(y.height,Math.round(d.height)),E=(C-y.width)*m[0],j=(N-y.height)*m[1];(w>0||_>0||E||j)&&(a.push({id:g,type:"position",position:{x:p.position.x-w+E,y:p.position.y-_+j}}),(k=i.get(g))==null||k.forEach(T=>{t.some(U=>U.id===T.id)||a.push({id:T.id,type:"position",position:{x:T.position.x+w,y:T.position.y+_}})})),(y.width<d.width||y.height<d.height||w||_)&&a.push({id:g,type:"dimensions",setAttributes:!0,dimensions:{width:C+(w?m[0]*w-E:0),height:N+(_?m[1]*_-j:0)}})}),a}function l1(t,r,i,l,a,u,c){const d=l==null?void 0:l.querySelector(".xyflow__viewport");let p=!1;if(!d)return{changes:[],updatedInternals:p};const g=[],v=window.getComputedStyle(d),{m22:y}=new window.DOMMatrixReadOnly(v.transform),m=[];for(const w of t.values()){const _=r.get(w.id);if(!_)continue;if(_.hidden){r.set(_.id,{..._,internals:{..._.internals,handleBounds:void 0}}),p=!0;continue}const C=pc(w.nodeElement),N=_.measured.width!==C.width||_.measured.height!==C.height;if(!!(C.width&&C.height&&(N||!_.internals.handleBounds||w.force))){const j=w.nodeElement.getBoundingClientRect(),k=_r(_.extent)?_.extent:u;let{positionAbsolute:T}=_.internals;if(_.parentId&&_.extent==="parent"){const O=r.get(_.parentId);O&&(T=eg(T,C,O))}else k&&(T=wr(T,k,C));const U={..._,measured:C,internals:{..._.internals,positionAbsolute:T,handleBounds:{source:_h("source",w.nodeElement,j,y,_.id),target:_h("target",w.nodeElement,j,y,_.id)}}};r.set(_.id,U),_.parentId&&vc(U,r,i,{nodeOrigin:a,zIndexMode:c}),p=!0,N&&(g.push({id:_.id,type:"dimensions",dimensions:C}),_.expandParent&&_.parentId&&m.push({id:_.id,parentId:_.parentId,rect:gi(U,a)}))}}if(m.length>0){const w=xc(m,r,i,a);g.push(...w)}return{changes:g,updatedInternals:p}}async function a1({delta:t,panZoom:r,transform:i,translateExtent:l,width:a,height:u}){if(!r||!t.x&&!t.y)return!1;const c=await r.setViewportConstrained({x:i[0]+t.x,y:i[1]+t.y,zoom:i[2]},[[0,0],[a,u]],l);return!!c&&(c.x!==i[0]||c.y!==i[1]||c.k!==i[2])}function Ph(t,r,i,l,a,u){let c=a;const d=l.get(c)||new Map;l.set(c,d.set(i,r)),c=`${a}-${t}`;const p=l.get(c)||new Map;if(l.set(c,p.set(i,r)),u){c=`${a}-${t}-${u}`;const g=l.get(c)||new Map;l.set(c,g.set(i,r))}}function mg(t,r,i){t.clear(),r.clear();for(const l of i){const{source:a,target:u,sourceHandle:c=null,targetHandle:d=null}=l,p={edgeId:l.id,source:a,target:u,sourceHandle:c,targetHandle:d},g=`${a}-${c}--${u}-${d}`,v=`${u}-${d}--${a}-${c}`;Ph("source",p,v,t,a,c),Ph("target",p,g,t,u,d),r.set(l.id,l)}}function yg(t,r){if(!t.parentId)return!1;const i=r.get(t.parentId);return i?i.selected?!0:yg(i,r):!1}function jh(t,r,i){var a;let l=t;do{if((a=l==null?void 0:l.matches)!=null&&a.call(l,r))return!0;if(l===i)return!1;l=l==null?void 0:l.parentElement}while(l);return!1}function u1(t,r,i,l){const a=new Map;for(const[u,c]of t)if((c.selected||c.id===l)&&(!c.parentId||!yg(c,t))&&(c.draggable||r&&typeof c.draggable>"u")){const d=t.get(u);d&&a.set(u,{id:u,position:d.position||{x:0,y:0},distance:{x:i.x-d.internals.positionAbsolute.x,y:i.y-d.internals.positionAbsolute.y},extent:d.extent,parentId:d.parentId,origin:d.origin,expandParent:d.expandParent,internals:{positionAbsolute:d.internals.positionAbsolute||{x:0,y:0}},measured:{width:d.measured.width??0,height:d.measured.height??0}})}return a}function ju({nodeId:t,dragItems:r,nodeLookup:i,dragging:l=!0}){var c,d,p;const a=[];for(const[g,v]of r){const y=(c=i.get(g))==null?void 0:c.internals.userNode;y&&a.push({...y,position:v.position,dragging:l})}if(!t)return[a[0],a];const u=(d=i.get(t))==null?void 0:d.internals.userNode;return[u?{...u,position:((p=r.get(t))==null?void 0:p.position)||u.position,dragging:l}:a[0],a]}function c1({dragItems:t,snapGrid:r,x:i,y:l}){const a=t.values().next().value;if(!a)return null;const u={x:i-a.distance.x,y:l-a.distance.y},c=ki(u,r);return{x:c.x-u.x,y:c.y-u.y}}function f1({onNodeMouseDown:t,getStoreItems:r,onDragStart:i,onDrag:l,onDragStop:a}){let u={x:null,y:null},c=0,d=new Map,p=!1,g={x:0,y:0},v=null,y=!1,m=null,w=!1,_=!1,C=null;function N({noDragClassName:j,handleSelector:k,domNode:T,isSelectable:U,nodeId:O,nodeClickDistance:z=0}){m=Ct(T);function V({x:ee,y:Z}){const{nodeLookup:M,nodeExtent:$,snapGrid:W,snapToGrid:Y,nodeOrigin:D,onNodeDrag:A,onSelectionDrag:B,onError:P,updateNodePositions:L}=r();u={x:ee,y:Z};let re=!1;const ie=d.size>1,ce=ie&&$?Xu(Si(d)):null,te=ie&&Y?c1({dragItems:d,snapGrid:W,x:ee,y:Z}):null;for(const[ne,Q]of d){if(!M.has(ne))continue;let oe={x:ee-Q.distance.x,y:Z-Q.distance.y};Y&&(oe=te?{x:Math.round(oe.x+te.x),y:Math.round(oe.y+te.y)}:ki(oe,W));let he=null;if(ie&&$&&!Q.extent&&ce){const{positionAbsolute:we}=Q.internals,ke=we.x-ce.x+$[0][0],Ne=we.x+Q.measured.width-ce.x2+$[1][0],Me=we.y-ce.y+$[0][1],Ie=we.y+Q.measured.height-ce.y2+$[1][1];he=[[ke,Me],[Ne,Ie]]}const{position:xe,positionAbsolute:ye}=Jp({nodeId:ne,nextPosition:oe,nodeLookup:M,nodeExtent:he||$,nodeOrigin:D,onError:P});re=re||Q.position.x!==xe.x||Q.position.y!==xe.y,Q.position=xe,Q.internals.positionAbsolute=ye}if(_=_||re,!!re&&(L(d,!0),C&&(l||A||!O&&B))){const[ne,Q]=ju({nodeId:O,dragItems:d,nodeLookup:M});l==null||l(C,d,ne,Q),A==null||A(C,ne,Q),O||B==null||B(C,Q)}}async function b(){if(!v)return;const{transform:ee,panBy:Z,autoPanSpeed:M,autoPanOnNodeDrag:$}=r();if(!$){p=!1,cancelAnimationFrame(c);return}const[W,Y]=dc(g,v,M);(W!==0||Y!==0)&&(u.x=(u.x??0)-W/ee[2],u.y=(u.y??0)-Y/ee[2],await Z({x:W,y:Y})&&V(u)),c=requestAnimationFrame(b)}function J(ee){var ie;const{nodeLookup:Z,multiSelectionActive:M,nodesDraggable:$,transform:W,snapGrid:Y,snapToGrid:D,selectNodesOnDrag:A,onNodeDragStart:B,onSelectionDragStart:P,unselectNodesAndEdges:L}=r();y=!0,(!A||!U)&&!M&&O&&((ie=Z.get(O))!=null&&ie.selected||L()),U&&A&&O&&(t==null||t(O));const re=ai(ee.sourceEvent,{transform:W,snapGrid:Y,snapToGrid:D,containerBounds:v});if(u=re,d=u1(Z,$,re,O),d.size>0&&(i||B||!O&&P)){const[ce,te]=ju({nodeId:O,dragItems:d,nodeLookup:Z});i==null||i(ee.sourceEvent,d,ce,te),B==null||B(ee.sourceEvent,ce,te),O||P==null||P(ee.sourceEvent,te)}}const G=Lp().clickDistance(z).on("start",ee=>{const{domNode:Z,nodeDragThreshold:M,transform:$,snapGrid:W,snapToGrid:Y}=r();v=(Z==null?void 0:Z.getBoundingClientRect())||null,w=!1,_=!1,C=ee.sourceEvent,M===0&&J(ee),u=ai(ee.sourceEvent,{transform:$,snapGrid:W,snapToGrid:Y,containerBounds:v}),g=Wt(ee.sourceEvent,v)}).on("drag",ee=>{const{autoPanOnNodeDrag:Z,transform:M,snapGrid:$,snapToGrid:W,nodeDragThreshold:Y,nodeLookup:D}=r(),A=ai(ee.sourceEvent,{transform:M,snapGrid:$,snapToGrid:W,containerBounds:v});if(C=ee.sourceEvent,(ee.sourceEvent.type==="touchmove"&&ee.sourceEvent.touches.length>1||O&&!D.has(O))&&(w=!0),!w){if(!p&&Z&&y&&(p=!0,b()),!y){const B=Wt(ee.sourceEvent,v),P=B.x-g.x,L=B.y-g.y;Math.sqrt(P*P+L*L)>Y&&J(ee)}(u.x!==A.xSnapped||u.y!==A.ySnapped)&&d&&y&&(g=Wt(ee.sourceEvent,v),V(A))}}).on("end",ee=>{if(!y||w){w&&d.size>0&&r().updateNodePositions(d,!1);return}if(p=!1,y=!1,cancelAnimationFrame(c),d.size>0){const{nodeLookup:Z,updateNodePositions:M,onNodeDragStop:$,onSelectionDragStop:W}=r();if(_&&(M(d,!1),_=!1),a||$||!O&&W){const[Y,D]=ju({nodeId:O,dragItems:d,nodeLookup:Z,dragging:!1});a==null||a(ee.sourceEvent,d,Y,D),$==null||$(ee.sourceEvent,Y,D),O||W==null||W(ee.sourceEvent,D)}}}).filter(ee=>{const Z=ee.target;return!ee.button&&(!j||!jh(Z,`.${j}`,T))&&(!k||jh(Z,k,T))});m.call(G)}function E(){m==null||m.on(".drag",null)}return{update:N,destroy:E}}function d1(t,r,i){const l=[],a={x:t.x-i,y:t.y-i,width:i*2,height:i*2};for(const u of r.values())pl(a,gi(u))>0&&l.push(u);return l}const h1=250;function p1(t,r,i,l){var d,p;let a=[],u=1/0;const c=d1(t,i,r+h1);for(const g of c){const v=[...((d=g.internals.handleBounds)==null?void 0:d.source)??[],...((p=g.internals.handleBounds)==null?void 0:p.target)??[]];for(const y of v){if(l.nodeId===y.nodeId&&l.type===y.type&&l.id===y.id)continue;const{x:m,y:w}=Sr(g,y,y.position,!0),_=Math.sqrt(Math.pow(m-t.x,2)+Math.pow(w-t.y,2));_>r||(_<u?(a=[{...y,x:m,y:w}],u=_):_===u&&a.push({...y,x:m,y:w}))}}if(!a.length)return null;if(a.length>1){const g=l.type==="source"?"target":"source";return a.find(v=>v.type===g)??a[0]}return a[0]}function vg(t,r,i,l,a,u=!1){var g,v,y;const c=l.get(t);if(!c)return null;const d=a==="strict"?(g=c.internals.handleBounds)==null?void 0:g[r]:[...((v=c.internals.handleBounds)==null?void 0:v.source)??[],...((y=c.internals.handleBounds)==null?void 0:y.target)??[]],p=(i?d==null?void 0:d.find(m=>m.id===i):d==null?void 0:d[0])??null;return p&&u?{...p,...Sr(c,p,p.position,!0)}:p}function xg(t,r){return t||(r!=null&&r.classList.contains("target")?"target":r!=null&&r.classList.contains("source")?"source":null)}function g1(t,r){let i=null;return r?i=!0:t&&!r&&(i=!1),i}const wg=()=>!0;function m1(t,{connectionMode:r,connectionRadius:i,handleId:l,nodeId:a,edgeUpdaterType:u,isTarget:c,domNode:d,nodeLookup:p,lib:g,autoPanOnConnect:v,flowId:y,panBy:m,cancelConnection:w,onConnectStart:_,onConnect:C,onConnectEnd:N,isValidConnection:E=wg,onReconnectEnd:j,updateConnection:k,getTransform:T,getFromHandle:U,autoPanSpeed:O,dragThreshold:z=1,handleDomNode:V}){const b=lg(t.target);let J=0,G;const{x:ee,y:Z}=Wt(t),M=xg(u,V),$=d==null?void 0:d.getBoundingClientRect();let W=!1;if(!$||!M)return;const Y=vg(a,M,l,p,r);if(!Y)return;let D=Wt(t,$),A=!1,B=null,P=!1,L=null;function re(){if(!v||!$)return;const[xe,ye]=dc(D,$,O);m({x:xe,y:ye}),J=requestAnimationFrame(re)}const ie={...Y,nodeId:a,type:M,position:Y.position},ce=p.get(a);let ne={inProgress:!0,isValid:null,from:Sr(ce,ie,ve.Left,!0),fromHandle:ie,fromPosition:ie.position,fromNode:ce,to:D,toHandle:null,toPosition:yh[ie.position],toNode:null,pointer:D};function Q(){W=!0,k(ne),_==null||_(t,{nodeId:a,handleId:l,handleType:M})}z===0&&Q();function oe(xe){if(!W){const{x:Ie,y:lt}=Wt(xe),ct=Ie-ee,tt=lt-Z;if(!(ct*ct+tt*tt>z*z))return;Q()}if(!U()||!ie){he(xe);return}const ye=T();D=Wt(xe,$),G=p1(Ei(D,ye,!1,[1,1]),i,p,ie),A||(re(),A=!0);const we=_g(xe,{handle:G,connectionMode:r,fromNodeId:a,fromHandleId:l,fromType:c?"target":"source",isValidConnection:E,doc:b,lib:g,flowId:y,nodeLookup:p});L=we.handleDomNode,B=we.connection,P=g1(!!G,we.isValid);const ke=p.get(a),Ne=ke?Sr(ke,ie,ve.Left,!0):ne.from,Me={...ne,from:Ne,isValid:P,to:we.toHandle&&P?ao({x:we.toHandle.x,y:we.toHandle.y},ye):D,toHandle:we.toHandle,toPosition:P&&we.toHandle?we.toHandle.position:yh[ie.position],toNode:we.toHandle?p.get(we.toHandle.nodeId):null,pointer:D};k(Me),ne=Me}function he(xe){if(!("touches"in xe&&xe.touches.length>0)){if(W){(G||L)&&B&&P&&(C==null||C(B));const{inProgress:ye,...we}=ne,ke={...we,toPosition:ne.toHandle?ne.toPosition:null};N==null||N(xe,ke),u&&(j==null||j(xe,ke))}w(),cancelAnimationFrame(J),A=!1,P=!1,B=null,L=null,b.removeEventListener("mousemove",oe),b.removeEventListener("mouseup",he),b.removeEventListener("touchmove",oe),b.removeEventListener("touchend",he)}}b.addEventListener("mousemove",oe),b.addEventListener("mouseup",he),b.addEventListener("touchmove",oe),b.addEventListener("touchend",he)}function _g(t,{handle:r,connectionMode:i,fromNodeId:l,fromHandleId:a,fromType:u,doc:c,lib:d,flowId:p,isValidConnection:g=wg,nodeLookup:v}){const y=u==="target",m=r?c.querySelector(`.${d}-flow__handle[data-id="${p}-${r==null?void 0:r.nodeId}-${r==null?void 0:r.id}-${r==null?void 0:r.type}"]`):null,{x:w,y:_}=Wt(t),C=c.elementFromPoint(w,_),N=C!=null&&C.classList.contains(`${d}-flow__handle`)?C:m,E={handleDomNode:N,isValid:!1,connection:null,toHandle:null};if(N){const j=xg(void 0,N),k=N.getAttribute("data-nodeid"),T=N.getAttribute("data-handleid"),U=N.classList.contains("connectable"),O=N.classList.contains("connectableend");if(!k||!j)return E;const z={source:y?k:l,sourceHandle:y?T:a,target:y?l:k,targetHandle:y?a:T};E.connection=z;const b=U&&O&&(i===so.Strict?y&&j==="source"||!y&&j==="target":k!==l||T!==a);E.isValid=b&&g(z),E.toHandle=vg(k,j,T,v,i,!0)}return E}const qu={onPointerDown:m1,isValid:_g};function y1({domNode:t,panZoom:r,getTransform:i,getViewScale:l}){const a=Ct(t);function u({translateExtent:d,width:p,height:g,zoomStep:v=1,pannable:y=!0,zoomable:m=!0,inversePan:w=!1}){const _=k=>{if(k.sourceEvent.type!=="wheel"||!r)return;const T=i(),U=k.sourceEvent.ctrlKey&&mi()?10:1,O=-k.sourceEvent.deltaY*(k.sourceEvent.deltaMode===1?.05:k.sourceEvent.deltaMode?1:.002)*v,z=T[2]*Math.pow(2,O*U);r.scaleTo(z)};let C=[0,0];const N=k=>{(k.sourceEvent.type==="mousedown"||k.sourceEvent.type==="touchstart")&&(C=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY])},E=k=>{const T=i();if(k.sourceEvent.type!=="mousemove"&&k.sourceEvent.type!=="touchmove"||!r)return;const U=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY],O=[U[0]-C[0],U[1]-C[1]];C=U;const z=l()*Math.max(T[2],Math.log(T[2]))*(w?-1:1),V={x:T[0]-O[0]*z,y:T[1]-O[1]*z},b=[[0,0],[p,g]];r.setViewportConstrained({x:V.x,y:V.y,zoom:T[2]},b,d)},j=Kp().on("start",N).on("zoom",y?E:null).on("zoom.wheel",m?_:null);a.call(j,{})}function c(){a.on("zoom",null)}return{update:u,destroy:c,pointer:Bt}}const kl=t=>({x:t.x,y:t.y,zoom:t.k}),Tu=({x:t,y:r,zoom:i})=>wl.translate(t,r).scale(i),Un=(t,r)=>t.target.closest(`.${r}`),Sg=(t,r)=>r===2&&Array.isArray(t)&&t.includes(2),v1=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,Iu=(t,r=0,i=v1,l=()=>{})=>{const a=typeof r=="number"&&r>0;return a||l(),a?t.transition().duration(r).ease(i).on("end",l):t},kg=t=>{const r=t.ctrlKey&&mi()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*r};function x1({zoomPanValues:t,noWheelClassName:r,d3Selection:i,d3Zoom:l,panOnScrollMode:a,panOnScrollSpeed:u,zoomOnPinch:c,onPanZoomStart:d,onPanZoom:p,onPanZoomEnd:g}){return v=>{if(Un(v,r))return v.ctrlKey&&v.preventDefault(),!1;v.preventDefault(),v.stopImmediatePropagation();const y=i.property("__zoom").k||1;if(v.ctrlKey&&c){const N=Bt(v),E=kg(v),j=y*Math.pow(2,E);l.scaleTo(i,j,N,v);return}const m=v.deltaMode===1?20:1;let w=a===yr.Vertical?0:v.deltaX*m,_=a===yr.Horizontal?0:v.deltaY*m;!mi()&&v.shiftKey&&a!==yr.Vertical&&(w=v.deltaY*m,_=0),l.translateBy(i,-(w/y)*u,-(_/y)*u,{internal:!0});const C=kl(i.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?p==null||p(v,C):(t.isPanScrolling=!0,d==null||d(v,C)),t.panScrollTimeout=setTimeout(()=>{g==null||g(v,C),t.isPanScrolling=!1},150)}}function w1({noWheelClassName:t,preventScrolling:r,d3ZoomHandler:i}){return function(l,a){const u=l.type==="wheel",c=!r&&u&&!l.ctrlKey,d=Un(l,t);if(l.ctrlKey&&u&&d&&l.preventDefault(),c||d)return null;l.preventDefault(),i.call(this,l,a)}}function _1({zoomPanValues:t,onDraggingChange:r,onPanZoomStart:i}){return l=>{var u,c,d;if((u=l.sourceEvent)!=null&&u.internal)return;const a=kl(l.transform);t.mouseButton=((c=l.sourceEvent)==null?void 0:c.button)||0,t.isZoomingOrPanning=!0,t.prevViewport=a,((d=l.sourceEvent)==null?void 0:d.type)==="mousedown"&&r(!0),i&&(i==null||i(l.sourceEvent,a))}}function S1({zoomPanValues:t,panOnDrag:r,onPaneContextMenu:i,onTransformChange:l,onPanZoom:a}){return u=>{var c,d;t.usedRightMouseButton=!!(i&&Sg(r,t.mouseButton??0)),(c=u.sourceEvent)!=null&&c.sync||l([u.transform.x,u.transform.y,u.transform.k]),a&&!((d=u.sourceEvent)!=null&&d.internal)&&(a==null||a(u.sourceEvent,kl(u.transform)))}}function k1({zoomPanValues:t,panOnDrag:r,panOnScroll:i,onDraggingChange:l,onPanZoomEnd:a,onPaneContextMenu:u}){return c=>{var d;if(!((d=c.sourceEvent)!=null&&d.internal)&&(t.isZoomingOrPanning=!1,u&&Sg(r,t.mouseButton??0)&&!t.usedRightMouseButton&&c.sourceEvent&&u(c.sourceEvent),t.usedRightMouseButton=!1,l(!1),a)){const p=kl(c.transform);t.prevViewport=p,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{a==null||a(c.sourceEvent,p)},i?150:0)}}}function E1({panActivationKeyPressed:t,zoomActivationKeyPressed:r,zoomOnScroll:i,zoomOnPinch:l,panOnDrag:a,panOnScroll:u,zoomOnDoubleClick:c,userSelectionActive:d,noWheelClassName:p,noPanClassName:g,lib:v,connectionInProgress:y}){return m=>{var E;const w=r||i,_=l&&m.ctrlKey,C=m.type==="wheel";if(m.button===1&&m.type==="mousedown"&&(Un(m,`${v}-flow__node`)||Un(m,`${v}-flow__edge`)||Un(m,`${v}-flow__selection`)||Un(m,`${v}-flow__nodesselection`)))return!0;if(!a&&!w&&!u&&!c&&!l||d||y&&!C||Un(m,p)&&C||Un(m,g)&&(!C||u&&C&&!r)||!l&&m.ctrlKey&&C)return!1;if(!l&&m.type==="touchstart"&&((E=m.touches)==null?void 0:E.length)>1)return m.preventDefault(),!1;if(!w&&!u&&!_&&C||!a&&(m.type==="mousedown"||m.type==="touchstart")||Array.isArray(a)&&!a.includes(m.button)&&m.type==="mousedown")return!1;const N=Array.isArray(a)&&a.includes(m.button)||!m.button||m.button<=1;return(!m.ctrlKey||C||t)&&N}}function N1({domNode:t,minZoom:r,maxZoom:i,translateExtent:l,viewport:a,onPanZoom:u,onPanZoomStart:c,onPanZoomEnd:d,onDraggingChange:p}){const g={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},v=t.getBoundingClientRect();let y=[[0,0],[v.width,v.height]];const m=typeof ResizeObserver<"u"?new ResizeObserver(Z=>{const M=Z[0];M&&(y=[[0,0],[M.contentRect.width,M.contentRect.height]])}):null;m==null||m.observe(t);const w=Kp().extent(()=>y).scaleExtent([r,i]).translateExtent(l),_=Ct(t).call(w);T({x:a.x,y:a.y,zoom:lo(a.zoom,r,i)},[[0,0],[v.width,v.height]],l);const C=_.on("wheel.zoom"),N=_.on("dblclick.zoom");w.wheelDelta(kg);async function E(Z,M){return _?new Promise($=>{w==null||w.interpolate((M==null?void 0:M.interpolate)==="linear"?li:tl).transform(Iu(_,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>$(!0)),Z)}):!1}function j({noWheelClassName:Z,noPanClassName:M,onPaneContextMenu:$,userSelectionActive:W,panOnScroll:Y,panOnDrag:D,panOnScrollMode:A,panOnScrollSpeed:B,preventScrolling:P,zoomOnPinch:L,zoomOnScroll:re,zoomOnDoubleClick:ie,panActivationKeyPressed:ce=!1,zoomActivationKeyPressed:te,lib:ne,onTransformChange:Q,connectionInProgress:oe,paneClickDistance:he,selectionOnDrag:xe}){W&&!g.isZoomingOrPanning&&k();const ye=Y&&!te&&!W;w.clickDistance(xe?1/0:!Ut(he)||he<0?0:he);const we=ye?x1({zoomPanValues:g,noWheelClassName:Z,d3Selection:_,d3Zoom:w,panOnScrollMode:A,panOnScrollSpeed:B,zoomOnPinch:L,onPanZoomStart:c,onPanZoom:u,onPanZoomEnd:d}):w1({noWheelClassName:Z,preventScrolling:P,d3ZoomHandler:C});_.on("wheel.zoom",we,{passive:!1});const ke=_1({zoomPanValues:g,onDraggingChange:p,onPanZoomStart:c});w.on("start",ke);const Ne=S1({zoomPanValues:g,panOnDrag:D,onPaneContextMenu:!!$,onPanZoom:u,onTransformChange:Q});w.on("zoom",Ne);const Me=k1({zoomPanValues:g,panOnDrag:D,panOnScroll:Y,onPaneContextMenu:$,onPanZoomEnd:d,onDraggingChange:p});w.on("end",Me);const Ie=E1({panActivationKeyPressed:ce,zoomActivationKeyPressed:te,panOnDrag:D,zoomOnScroll:re,panOnScroll:Y,zoomOnDoubleClick:ie,zoomOnPinch:L,userSelectionActive:W,noPanClassName:M,noWheelClassName:Z,lib:ne,connectionInProgress:oe});w.filter(Ie),ie?_.on("dblclick.zoom",N):_.on("dblclick.zoom",null)}function k(){w.on("zoom",null)}async function T(Z,M,$){const W=Tu(Z),Y=w==null?void 0:w.constrain()(W,M,$);return Y&&await E(Y),Y}async function U(Z,M){const $=Tu(Z);return await E($,M),$}function O(Z){if(_){const M=Tu(Z),$=_.property("__zoom");($.k!==Z.zoom||$.x!==Z.x||$.y!==Z.y)&&(w==null||w.transform(_,M,null,{sync:!0}))}}function z(){const Z=_?Xp(_.node()):{x:0,y:0,k:1};return{x:Z.x,y:Z.y,zoom:Z.k}}async function V(Z,M){return _?new Promise($=>{w==null||w.interpolate((M==null?void 0:M.interpolate)==="linear"?li:tl).scaleTo(Iu(_,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>$(!0)),Z)}):!1}async function b(Z,M){return _?new Promise($=>{w==null||w.interpolate((M==null?void 0:M.interpolate)==="linear"?li:tl).scaleBy(Iu(_,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>$(!0)),Z)}):!1}function J(Z){w==null||w.scaleExtent(Z)}function G(Z){w==null||w.translateExtent(Z)}function ee(Z){const M=!Ut(Z)||Z<0?0:Z;w==null||w.clickDistance(M)}return{update:j,destroy:k,setViewport:U,setViewportConstrained:T,getViewport:z,scaleTo:V,scaleBy:b,setScaleExtent:J,setTranslateExtent:G,syncViewport:O,setClickDistance:ee}}var uo;(function(t){t.Line="line",t.Handle="handle"})(uo||(uo={}));function C1({width:t,prevWidth:r,height:i,prevHeight:l,affectsX:a,affectsY:u}){const c=t-r,d=i-l,p=[c>0?1:c<0?-1:0,d>0?1:d<0?-1:0];return c&&a&&(p[0]=p[0]*-1),d&&u&&(p[1]=p[1]*-1),p}function Th(t){const r=t.includes("right")||t.includes("left"),i=t.includes("bottom")||t.includes("top"),l=t.includes("left"),a=t.includes("top");return{isHorizontal:r,isVertical:i,affectsX:l,affectsY:a}}function Bn(t,r){return Math.max(0,r-t)}function Vn(t,r){return Math.max(0,t-r)}function Gs(t,r,i){return Math.max(0,r-t,t-i)}function Ih(t,r){return t?!r:r}function M1(t,r,i,l,a,u,c,d){let{affectsX:p,affectsY:g}=r;const{isHorizontal:v,isVertical:y}=r,m=v&&y,{xSnapped:w,ySnapped:_}=i,{minWidth:C,maxWidth:N,minHeight:E,maxHeight:j}=l,{x:k,y:T,width:U,height:O,aspectRatio:z}=t;let V=Math.floor(v?w-t.pointerX:0),b=Math.floor(y?_-t.pointerY:0);const J=U+(p?-V:V),G=O+(g?-b:b),ee=-u[0]*U,Z=-u[1]*O;let M=Gs(J,C,N),$=Gs(G,E,j);if(c){let D=0,A=0;p&&V<0?D=Bn(k+V+ee,c[0][0]):!p&&V>0&&(D=Vn(k+J+ee,c[1][0])),g&&b<0?A=Bn(T+b+Z,c[0][1]):!g&&b>0&&(A=Vn(T+G+Z,c[1][1])),M=Math.max(M,D),$=Math.max($,A)}if(d){let D=0,A=0;p&&V>0?D=Vn(k+V,d[0][0]):!p&&V<0&&(D=Bn(k+J,d[1][0])),g&&b>0?A=Vn(T+b,d[0][1]):!g&&b<0&&(A=Bn(T+G,d[1][1])),M=Math.max(M,D),$=Math.max($,A)}if(a){if(v){const D=Gs(J/z,E,j)*z;if(M=Math.max(M,D),c){let A=0;!p&&!g||p&&!g&&m?A=Vn(T+Z+J/z,c[1][1])*z:A=Bn(T+Z+(p?V:-V)/z,c[0][1])*z,M=Math.max(M,A)}if(d){let A=0;!p&&!g||p&&!g&&m?A=Bn(T+J/z,d[1][1])*z:A=Vn(T+(p?V:-V)/z,d[0][1])*z,M=Math.max(M,A)}}if(y){const D=Gs(G*z,C,N)/z;if($=Math.max($,D),c){let A=0;!p&&!g||g&&!p&&m?A=Vn(k+G*z+ee,c[1][0])/z:A=Bn(k+(g?b:-b)*z+ee,c[0][0])/z,$=Math.max($,A)}if(d){let A=0;!p&&!g||g&&!p&&m?A=Bn(k+G*z,d[1][0])/z:A=Vn(k+(g?b:-b)*z,d[0][0])/z,$=Math.max($,A)}}}b=b+(b<0?$:-$),V=V+(V<0?M:-M),a&&(m?J>G*z?b=(Ih(p,g)?-V:V)/z:V=(Ih(p,g)?-b:b)*z:v?(b=V/z,g=p):(V=b*z,p=g));const W=p?k+V:k,Y=g?T+b:T;return{width:U+(p?-V:V),height:O+(g?-b:b),x:u[0]*V*(p?-1:1)+W,y:u[1]*b*(g?-1:1)+Y}}const Eg={width:0,height:0,x:0,y:0},P1={...Eg,pointerX:0,pointerY:0,aspectRatio:1};function j1(t,r,i){const l=r.position.x+t.position.x,a=r.position.y+t.position.y,u=t.measured.width??0,c=t.measured.height??0,d=i[0]*u,p=i[1]*c;return[[l-d,a-p],[l+u-d,a+c-p]]}function T1({domNode:t,nodeId:r,getStoreItems:i,onChange:l,onEnd:a}){const u=Ct(t);let c={controlDirection:Th("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function d({controlPosition:g,boundaries:v,keepAspectRatio:y,resizeDirection:m,onResizeStart:w,onResize:_,onResizeEnd:C,shouldResize:N}){let E={...Eg},j={...P1};c={boundaries:v,resizeDirection:m,keepAspectRatio:y,controlDirection:Th(g)};let k,T=null,U=[],O,z,V,b=!1;const J=Lp().on("start",G=>{const{nodeLookup:ee,transform:Z,snapGrid:M,snapToGrid:$,nodeOrigin:W,paneDomNode:Y}=i();if(k=ee.get(r),!k)return;T=(Y==null?void 0:Y.getBoundingClientRect())??null;const{xSnapped:D,ySnapped:A}=ai(G.sourceEvent,{transform:Z,snapGrid:M,snapToGrid:$,containerBounds:T});E={width:k.measured.width??0,height:k.measured.height??0,x:k.position.x??0,y:k.position.y??0},j={...E,pointerX:D,pointerY:A,aspectRatio:E.width/E.height},O=void 0,z=_r(k.extent)?k.extent:void 0,k.parentId&&(k.extent==="parent"||k.expandParent)&&(O=ee.get(k.parentId)),O&&k.extent==="parent"&&(z=[[0,0],[O.measured.width,O.measured.height]]),U=[],V=void 0;for(const[B,P]of ee)if(P.parentId===r&&(U.push({id:B,position:{...P.position},extent:P.extent}),P.extent==="parent"||P.expandParent)){const L=j1(P,k,P.origin??W);V?V=[[Math.min(L[0][0],V[0][0]),Math.min(L[0][1],V[0][1])],[Math.max(L[1][0],V[1][0]),Math.max(L[1][1],V[1][1])]]:V=L}w==null||w(G,{...E})}).on("drag",G=>{const{transform:ee,snapGrid:Z,snapToGrid:M,nodeOrigin:$}=i(),W=ai(G.sourceEvent,{transform:ee,snapGrid:Z,snapToGrid:M,containerBounds:T}),Y=[];if(!k)return;const{x:D,y:A,width:B,height:P}=E,L={},re=k.origin??$,{width:ie,height:ce,x:te,y:ne}=M1(j,c.controlDirection,W,c.boundaries,c.keepAspectRatio,re,z,V),Q=ie!==B,oe=ce!==P,he=te!==D&&Q,xe=ne!==A&&oe;if(!he&&!xe&&!Q&&!oe)return;if((he||xe||re[0]===1||re[1]===1)&&(L.x=he?te:E.x,L.y=xe?ne:E.y,E.x=L.x,E.y=L.y,U.length>0)){const Ne=te-D,Me=ne-A;for(const Ie of U)Ie.position={x:Ie.position.x-Ne+re[0]*(ie-B),y:Ie.position.y-Me+re[1]*(ce-P)},Y.push(Ie)}if((Q||oe)&&(L.width=Q&&(!c.resizeDirection||c.resizeDirection==="horizontal")?ie:E.width,L.height=oe&&(!c.resizeDirection||c.resizeDirection==="vertical")?ce:E.height,E.width=L.width,E.height=L.height),O&&k.expandParent){const Ne=re[0]*(L.width??0);L.x&&L.x<Ne&&(E.x=Ne,j.x=j.x-(L.x-Ne));const Me=re[1]*(L.height??0);L.y&&L.y<Me&&(E.y=Me,j.y=j.y-(L.y-Me))}const ye=C1({width:E.width,prevWidth:B,height:E.height,prevHeight:P,affectsX:c.controlDirection.affectsX,affectsY:c.controlDirection.affectsY}),we={...E,direction:ye};(N==null?void 0:N(G,we))!==!1&&(b=!0,_==null||_(G,we),l(L,Y))}).on("end",G=>{b&&(C==null||C(G,{...E}),a==null||a({...E}),b=!1)});u.call(J)}function p(){u.on(".drag",null)}return{update:d,destroy:p}}var zu={exports:{}},Lu={},Ru={exports:{}},Au={};/**
+ * @license React
+ * use-sync-external-store-shim.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var zh;function I1(){if(zh)return Au;zh=1;var t=vi();function r(y,m){return y===m&&(y!==0||1/y===1/m)||y!==y&&m!==m}var i=typeof Object.is=="function"?Object.is:r,l=t.useState,a=t.useEffect,u=t.useLayoutEffect,c=t.useDebugValue;function d(y,m){var w=m(),_=l({inst:{value:w,getSnapshot:m}}),C=_[0].inst,N=_[1];return u(function(){C.value=w,C.getSnapshot=m,p(C)&&N({inst:C})},[y,w,m]),a(function(){return p(C)&&N({inst:C}),y(function(){p(C)&&N({inst:C})})},[y]),c(w),w}function p(y){var m=y.getSnapshot;y=y.value;try{var w=m();return!i(y,w)}catch{return!0}}function g(y,m){return m()}var v=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?g:d;return Au.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:v,Au}var Lh;function z1(){return Lh||(Lh=1,Ru.exports=I1()),Ru.exports}/**
+ * @license React
+ * use-sync-external-store-shim/with-selector.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Rh;function L1(){if(Rh)return Lu;Rh=1;var t=vi(),r=z1();function i(g,v){return g===v&&(g!==0||1/g===1/v)||g!==g&&v!==v}var l=typeof Object.is=="function"?Object.is:i,a=r.useSyncExternalStore,u=t.useRef,c=t.useEffect,d=t.useMemo,p=t.useDebugValue;return Lu.useSyncExternalStoreWithSelector=function(g,v,y,m,w){var _=u(null);if(_.current===null){var C={hasValue:!1,value:null};_.current=C}else C=_.current;_=d(function(){function E(O){if(!j){if(j=!0,k=O,O=m(O),w!==void 0&&C.hasValue){var z=C.value;if(w(z,O))return T=z}return T=O}if(z=T,l(k,O))return z;var V=m(O);return w!==void 0&&w(z,V)?(k=O,z):(k=O,T=V)}var j=!1,k,T,U=y===void 0?null:y;return[function(){return E(v())},U===null?void 0:function(){return E(U())}]},[v,y,m,w]);var N=a(g,_[0],_[1]);return c(function(){C.hasValue=!0,C.value=N},[N]),p(N),N},Lu}var Ah;function R1(){return Ah||(Ah=1,zu.exports=L1()),zu.exports}var A1=R1();const D1=dp(A1),$1={},Dh=t=>{let r;const i=new Set,l=(v,y)=>{const m=typeof v=="function"?v(r):v;if(!Object.is(m,r)){const w=r;r=y??(typeof m!="object"||m===null)?m:Object.assign({},r,m),i.forEach(_=>_(r,w))}},a=()=>r,p={setState:l,getState:a,getInitialState:()=>g,subscribe:v=>(i.add(v),()=>i.delete(v)),destroy:()=>{($1?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),i.clear()}},g=r=t(l,a,p);return p},b1=t=>t?Dh(t):Dh,{useDebugValue:O1}=hp,{useSyncExternalStoreWithSelector:F1}=D1,H1=t=>t;function Ng(t,r=H1,i){const l=F1(t.subscribe,t.getState,t.getServerState||t.getInitialState,r,i);return O1(l),l}const $h=(t,r)=>{const i=b1(t),l=(a,u=r)=>Ng(i,a,u);return Object.assign(l,i),l},B1=(t,r)=>t?$h(t,r):$h;function Be(t,r){if(Object.is(t,r))return!0;if(typeof t!="object"||t===null||typeof r!="object"||r===null)return!1;if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(const[l,a]of t)if(!Object.is(a,r.get(l)))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(const l of t)if(!r.has(l))return!1;return!0}const i=Object.keys(t);if(i.length!==Object.keys(r).length)return!1;for(const l of i)if(!Object.prototype.hasOwnProperty.call(r,l)||!Object.is(t[l],r[l]))return!1;return!0}pp();const El=F.createContext(null),V1=El.Provider,Cg=Yt.error001("react");function je(t,r){const i=F.useContext(El);if(i===null)throw new Error(Cg);return Ng(i,t,r)}function De(){const t=F.useContext(El);if(t===null)throw new Error(Cg);return F.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe}),[t])}const bh={display:"none"},U1={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Mg="react-flow__node-desc",Pg="react-flow__edge-desc",W1="react-flow__aria-live",Y1=t=>t.ariaLiveMessage,X1=t=>t.ariaLabelConfig;function K1({rfId:t}){const r=je(Y1);return S.jsx("div",{id:`${W1}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:U1,children:r})}function Q1({rfId:t,disableKeyboardA11y:r}){const i=je(X1);return S.jsxs(S.Fragment,{children:[S.jsx("div",{id:`${Mg}-${t}`,style:bh,children:r?i["node.a11yDescription.default"]:i["node.a11yDescription.keyboardDisabled"]}),S.jsx("div",{id:`${Pg}-${t}`,style:bh,children:i["edge.a11yDescription.default"]}),!r&&S.jsx(K1,{rfId:t})]})}const Ni=F.forwardRef(({position:t="top-left",children:r,className:i,style:l,...a},u)=>{const c=`${t}`.split("-");return S.jsx("div",{className:Ye(["react-flow__panel",i,...c]),style:l,ref:u,...a,children:r})});Ni.displayName="Panel";const Oh="https://reactflow.dev?utm_source=attribution";function G1({proOptions:t,position:r="bottom-right"}){return F.useEffect(()=>{},[]),t!=null&&t.hideAttribution?null:S.jsx(Ni,{position:r,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Oh}`,children:S.jsx("a",{href:Oh,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const q1=t=>{const r=[],i=[];for(const[,l]of t.nodeLookup)l.selected&&r.push(l.internals.userNode);for(const[,l]of t.edgeLookup)l.selected&&i.push(l);return{selectedNodes:r,selectedEdges:i}},qs=t=>t.id;function Z1(t,r){return Be(t.selectedNodes.map(qs),r.selectedNodes.map(qs))&&Be(t.selectedEdges.map(qs),r.selectedEdges.map(qs))}function J1({onSelectionChange:t}){const r=De(),{selectedNodes:i,selectedEdges:l}=je(q1,Z1);return F.useEffect(()=>{const a={nodes:i,edges:l};t==null||t(a),r.getState().onSelectionChangeHandlers.forEach(u=>u(a))},[i,l,t]),null}const e_=t=>!!t.onSelectionChangeHandlers;function t_({onSelectionChange:t}){const r=je(e_);return t||r?S.jsx(J1,{onSelectionChange:t}):null}const jg=[0,0],n_={x:0,y:0,zoom:1},r_=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],Fh=[...r_,"rfId"],o_=t=>({setNodes:t.setNodes,setEdges:t.setEdges,setMinZoom:t.setMinZoom,setMaxZoom:t.setMaxZoom,setTranslateExtent:t.setTranslateExtent,setNodeExtent:t.setNodeExtent,reset:t.reset,setDefaultNodesAndEdges:t.setDefaultNodesAndEdges}),Hh={translateExtent:hi,nodeOrigin:jg,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function i_(t){const{setNodes:r,setEdges:i,setMinZoom:l,setMaxZoom:a,setTranslateExtent:u,setNodeExtent:c,reset:d,setDefaultNodesAndEdges:p}=je(o_,Be),g=De();F.useEffect(()=>(p(t.defaultNodes,t.defaultEdges),()=>{v.current=Hh,d()}),[]);const v=F.useRef(Hh);return F.useEffect(()=>{for(const y of Fh){const m=t[y],w=v.current[y];m!==w&&(typeof t[y]>"u"||(y==="nodes"?r(m):y==="edges"?i(m):y==="minZoom"?l(m):y==="maxZoom"?a(m):y==="translateExtent"?u(m):y==="nodeExtent"?c(m):y==="ariaLabelConfig"?g.setState({ariaLabelConfig:Vw(m)}):y==="fitView"?g.setState({fitViewQueued:m}):y==="fitViewOptions"?g.setState({fitViewOptions:m}):g.setState({[y]:m})))}v.current=t},Fh.map(y=>t[y])),null}function Bh(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function s_(t){var l;const[r,i]=F.useState(t==="system"?null:t);return F.useEffect(()=>{if(t!=="system"){i(t);return}const a=Bh(),u=()=>i(a!=null&&a.matches?"dark":"light");return u(),a==null||a.addEventListener("change",u),()=>{a==null||a.removeEventListener("change",u)}},[t]),r!==null?r:(l=Bh())!=null&&l.matches?"dark":"light"}const Vh=typeof document<"u"?document:null;function yi(t=null,r={target:Vh,actInsideInputWithModifier:!0}){const[i,l]=F.useState(!1),a=F.useRef(!1),u=F.useRef(new Set([])),[c,d]=F.useMemo(()=>{if(t!==null){const g=(Array.isArray(t)?t:[t]).filter(y=>typeof y=="string").map(y=>y.replace(/\+/g,`
+`).replace(`
+
+`,`
++`).split(`
+`)),v=g.reduce((y,m)=>y.concat(...m),[]);return[g,v]}return[[],[]]},[t]);return F.useEffect(()=>{const p=(r==null?void 0:r.target)??Vh,g=(r==null?void 0:r.actInsideInputWithModifier)??!0;if(t!==null){const v=w=>{var N,E;if(a.current=w.ctrlKey||w.metaKey||w.shiftKey||w.altKey,(!a.current||a.current&&!g)&&ag(w))return!1;const C=Wh(w.code,d);if(u.current.add(w[C]),Uh(c,u.current,!1)){const j=((E=(N=w.composedPath)==null?void 0:N.call(w))==null?void 0:E[0])||w.target,k=(j==null?void 0:j.nodeName)==="BUTTON"||(j==null?void 0:j.nodeName)==="A";r.preventDefault!==!1&&(a.current||!k)&&w.preventDefault(),l(!0)}},y=w=>{const _=Wh(w.code,d);Uh(c,u.current,!0)?(l(!1),u.current.clear()):u.current.delete(w[_]),w.key==="Meta"&&u.current.clear(),a.current=!1},m=()=>{u.current.clear(),l(!1)};return p==null||p.addEventListener("keydown",v),p==null||p.addEventListener("keyup",y),window.addEventListener("blur",m),window.addEventListener("contextmenu",m),()=>{p==null||p.removeEventListener("keydown",v),p==null||p.removeEventListener("keyup",y),window.removeEventListener("blur",m),window.removeEventListener("contextmenu",m)}}},[t,l]),i}function Uh(t,r,i){return t.filter(l=>i||l.length===r.size).some(l=>l.every(a=>r.has(a)))}function Wh(t,r){return r.includes(t)?"code":"key"}const l_=()=>{const t=De();return F.useMemo(()=>({zoomIn:async r=>{const{panZoom:i}=t.getState();return i?i.scaleBy(1.2,r):!1},zoomOut:async r=>{const{panZoom:i}=t.getState();return i?i.scaleBy(1/1.2,r):!1},zoomTo:async(r,i)=>{const{panZoom:l}=t.getState();return l?l.scaleTo(r,i):!1},getZoom:()=>t.getState().transform[2],setViewport:async(r,i)=>{const{transform:[l,a,u],panZoom:c}=t.getState();return c?(await c.setViewport({x:r.x??l,y:r.y??a,zoom:r.zoom??u},i),!0):!1},getViewport:()=>{const[r,i,l]=t.getState().transform;return{x:r,y:i,zoom:l}},setCenter:async(r,i,l)=>t.getState().setCenter(r,i,l),fitBounds:async(r,i)=>{const{width:l,height:a,minZoom:u,maxZoom:c,panZoom:d}=t.getState(),p=hc(r,l,a,u,c,(i==null?void 0:i.padding)??.1);return d?(await d.setViewport(p,{duration:i==null?void 0:i.duration,ease:i==null?void 0:i.ease,interpolate:i==null?void 0:i.interpolate}),!0):!1},screenToFlowPosition:(r,i={})=>{const{transform:l,snapGrid:a,snapToGrid:u,domNode:c}=t.getState();if(!c)return r;const{x:d,y:p}=c.getBoundingClientRect(),g={x:r.x-d,y:r.y-p},v=i.snapGrid??a,y=i.snapToGrid??u;return Ei(g,l,y,v)},flowToScreenPosition:r=>{const{transform:i,domNode:l}=t.getState();if(!l)return r;const{x:a,y:u}=l.getBoundingClientRect(),c=ao(r,i);return{x:c.x+a,y:c.y+u}}}),[])};function Tg(t,r){const i=[],l=new Map,a=[];for(const u of t)if(u.type==="add"){a.push(u);continue}else if(u.type==="remove"||u.type==="replace")l.set(u.id,[u]);else{const c=l.get(u.id);c?c.push(u):l.set(u.id,[u])}for(const u of r){const c=l.get(u.id);if(!c){i.push(u);continue}if(c[0].type==="remove")continue;if(c[0].type==="replace"){i.push({...c[0].item});continue}const d={...u};for(const p of c)a_(p,d);i.push(d)}return a.length&&a.forEach(u=>{u.index!==void 0?i.splice(u.index,0,{...u.item}):i.push({...u.item})}),i}function a_(t,r){switch(t.type){case"select":{r.selected=t.selected;break}case"position":{typeof t.position<"u"&&(r.position=t.position),typeof t.dragging<"u"&&(r.dragging=t.dragging);break}case"dimensions":{typeof t.dimensions<"u"&&(r.measured={...t.dimensions},t.setAttributes&&((t.setAttributes===!0||t.setAttributes==="width")&&(r.width=t.dimensions.width),(t.setAttributes===!0||t.setAttributes==="height")&&(r.height=t.dimensions.height))),typeof t.resizing=="boolean"&&(r.resizing=t.resizing);break}}}function u_(t,r){return Tg(t,r)}function c_(t,r){return Tg(t,r)}function pr(t,r){return{id:t,type:"select",selected:r}}function to(t,r=new Set,i=!1){const l=[];for(const[a,u]of t){const c=r.has(a);!(u.selected===void 0&&!c)&&u.selected!==c&&(i&&(u.selected=c),l.push(pr(u.id,c)))}return l}function Yh({items:t=[],lookup:r}){var a;const i=[],l=new Map(t.map(u=>[u.id,u]));for(const[u,c]of t.entries()){const d=r.get(c.id),p=((a=d==null?void 0:d.internals)==null?void 0:a.userNode)??d;p!==void 0&&p!==c&&i.push({id:c.id,item:c,type:"replace"}),p===void 0&&i.push({item:c,type:"add",index:u})}for(const[u]of r)l.get(u)===void 0&&i.push({id:u,type:"remove"});return i}function Xh(t){return{id:t.id,type:"remove"}}const f_=rg();function d_(t,r,i={}){return Qw(t,r,{...i,onError:i.onError??f_})}const Kh=t=>Rw(t),h_=t=>Zp(t);function Ig(t){return F.forwardRef(t)}const zg=typeof window<"u"?F.useLayoutEffect:F.useEffect;function Qh(t){const[r,i]=F.useState(BigInt(0)),[l]=F.useState(()=>p_(()=>i(a=>a+BigInt(1))));return zg(()=>{const a=l.get();a.length&&(t(a),l.reset())},[r]),l}function p_(t){let r=[];return{get:()=>r,reset:()=>{r=[]},push:i=>{r.push(i),t()}}}const Lg=F.createContext(null);function g_({children:t}){const r=De(),i=F.useCallback(d=>{const{nodes:p=[],setNodes:g,hasDefaultNodes:v,onNodesChange:y,nodeLookup:m,fitViewQueued:w,onNodesChangeMiddlewareMap:_}=r.getState();let C=p;for(const E of d)C=typeof E=="function"?E(C):E;let N=Yh({items:C,lookup:m});for(const E of _.values())N=E(N);v&&g(C),N.length>0?y==null||y(N):w&&window.requestAnimationFrame(()=>{const{fitViewQueued:E,nodes:j,setNodes:k}=r.getState();E&&k(j)})},[]),l=Qh(i),a=F.useCallback(d=>{const{edges:p=[],setEdges:g,hasDefaultEdges:v,onEdgesChange:y,edgeLookup:m}=r.getState();let w=p;for(const _ of d)w=typeof _=="function"?_(w):_;v?g(w):y&&y(Yh({items:w,lookup:m}))},[]),u=Qh(a),c=F.useMemo(()=>({nodeQueue:l,edgeQueue:u}),[]);return S.jsx(Lg.Provider,{value:c,children:t})}function m_(){const t=F.useContext(Lg);if(!t)throw new Error("useBatchContext must be used within a BatchProvider");return t}const y_=t=>!!t.panZoom;function Nl(){const t=l_(),r=De(),i=m_(),l=je(y_),a=F.useMemo(()=>{const u=y=>r.getState().nodeLookup.get(y),c=y=>{i.nodeQueue.push(y)},d=y=>{i.edgeQueue.push(y)},p=y=>{var E,j;const{nodeLookup:m,nodeOrigin:w}=r.getState(),_=Kh(y)?y:m.get(y.id),C=_.parentId?ig(_.position,_.measured,_.parentId,m,w):_.position,N={..._,position:C,width:((E=_.measured)==null?void 0:E.width)??_.width,height:((j=_.measured)==null?void 0:j.height)??_.height};return gi(N)},g=(y,m,w={replace:!1})=>{c(_=>_.map(C=>{if(C.id===y){const N=typeof m=="function"?m(C):m;return w.replace&&Kh(N)?N:{...C,...N}}return C}))},v=(y,m,w={replace:!1})=>{d(_=>_.map(C=>{if(C.id===y){const N=typeof m=="function"?m(C):m;return w.replace&&h_(N)?N:{...C,...N}}return C}))};return{getNodes:()=>r.getState().nodes.map(y=>({...y})),getNode:y=>{var m;return(m=u(y))==null?void 0:m.internals.userNode},getInternalNode:u,getEdges:()=>{const{edges:y=[]}=r.getState();return y.map(m=>({...m}))},getEdge:y=>r.getState().edgeLookup.get(y),setNodes:c,setEdges:d,addNodes:y=>{const m=Array.isArray(y)?y:[y];i.nodeQueue.push(w=>[...w,...m])},addEdges:y=>{const m=Array.isArray(y)?y:[y];i.edgeQueue.push(w=>[...w,...m])},toObject:()=>{const{nodes:y=[],edges:m=[],transform:w}=r.getState(),[_,C,N]=w;return{nodes:y.map(E=>({...E})),edges:m.map(E=>({...E})),viewport:{x:_,y:C,zoom:N}}},deleteElements:async({nodes:y=[],edges:m=[]})=>{const{nodes:w,edges:_,onNodesDelete:C,onEdgesDelete:N,triggerNodeChanges:E,triggerEdgeChanges:j,onDelete:k,onBeforeDelete:T}=r.getState(),{nodes:U,edges:O}=await Ow({nodesToRemove:y,edgesToRemove:m,nodes:w,edges:_,onBeforeDelete:T}),z=O.length>0,V=U.length>0;if(z){const b=O.map(Xh);N==null||N(O),j(b)}if(V){const b=U.map(Xh);C==null||C(U),E(b)}return(V||z)&&(k==null||k({nodes:U,edges:O})),{deletedNodes:U,deletedEdges:O}},getIntersectingNodes:(y,m=!0,w)=>{const _=xh(y),C=_?y:p(y),N=w!==void 0;return C?(w||r.getState().nodes).filter(E=>{const j=r.getState().nodeLookup.get(E.id);if(j&&!_&&(E.id===y.id||!j.internals.positionAbsolute))return!1;const k=gi(N?E:j),T=pl(k,C);return m&&T>0||T>=k.width*k.height||T>=C.width*C.height}):[]},isNodeIntersecting:(y,m,w=!0)=>{const C=xh(y)?y:p(y);if(!C)return!1;const N=pl(C,m);return w&&N>0||N>=m.width*m.height||N>=C.width*C.height},updateNode:g,updateNodeData:(y,m,w={replace:!1})=>{g(y,_=>{const C=typeof m=="function"?m(_):m;return w.replace?{..._,data:C}:{..._,data:{..._.data,...C}}},w)},updateEdge:v,updateEdgeData:(y,m,w={replace:!1})=>{v(y,_=>{const C=typeof m=="function"?m(_):m;return w.replace?{..._,data:C}:{..._,data:{..._.data,...C}}},w)},getNodesBounds:y=>{const{nodeLookup:m,nodeOrigin:w}=r.getState();return Aw(y,{nodeLookup:m,nodeOrigin:w})},getHandleConnections:({type:y,id:m,nodeId:w})=>{var _;return Array.from(((_=r.getState().connectionLookup.get(`${w}-${y}${m?`-${m}`:""}`))==null?void 0:_.values())??[])},getNodeConnections:({type:y,handleId:m,nodeId:w})=>{var _;return Array.from(((_=r.getState().connectionLookup.get(`${w}${y?m?`-${y}-${m}`:`-${y}`:""}`))==null?void 0:_.values())??[])},fitView:async y=>{const m=r.getState().fitViewResolver??Bw();return r.setState({fitViewQueued:!0,fitViewOptions:y,fitViewResolver:m}),i.nodeQueue.push(w=>[...w]),m.promise}}},[]);return F.useMemo(()=>({...a,...t,viewportInitialized:l}),[l])}const Gh=t=>t.selected,v_=typeof window<"u"?window:void 0;function x_({deleteKeyCode:t,multiSelectionKeyCode:r}){const i=De(),{deleteElements:l}=Nl(),a=yi(t,{actInsideInputWithModifier:!1}),u=yi(r,{target:v_});F.useEffect(()=>{if(a){const{edges:c,nodes:d}=i.getState();l({nodes:d.filter(Gh),edges:c.filter(Gh)}),i.setState({nodesSelectionActive:!1})}},[a]),F.useEffect(()=>{i.setState({multiSelectionActive:u})},[u])}function w_(t){const r=De();F.useEffect(()=>{const i=()=>{var a,u,c,d;if(!t.current||!(((u=(a=t.current).checkVisibility)==null?void 0:u.call(a))??!0))return!1;const l=pc(t.current);(l.height===0||l.width===0)&&((d=(c=r.getState()).onError)==null||d.call(c,"004",Yt.error004())),r.setState({width:l.width||500,height:l.height||500})};if(t.current){i(),window.addEventListener("resize",i);const l=new ResizeObserver(()=>i());return l.observe(t.current),()=>{window.removeEventListener("resize",i),l&&t.current&&l.unobserve(t.current)}}},[])}const Cl={position:"absolute",width:"100%",height:"100%",top:0,left:0},__=t=>({userSelectionActive:t.userSelectionActive,lib:t.lib,connectionInProgress:t.connection.inProgress});function S_({onPaneContextMenu:t,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:l=!1,panActivationKeyPressed:a,panOnScrollSpeed:u=.5,panOnScrollMode:c=yr.Free,zoomOnDoubleClick:d=!0,panOnDrag:p=!0,defaultViewport:g,translateExtent:v,minZoom:y,maxZoom:m,zoomActivationKeyCode:w,preventScrolling:_=!0,children:C,noWheelClassName:N,noPanClassName:E,onViewportChange:j,isControlledViewport:k,paneClickDistance:T,selectionOnDrag:U}){const O=De(),z=F.useRef(null),{userSelectionActive:V,lib:b,connectionInProgress:J}=je(__,Be),G=yi(w),ee=F.useRef();w_(z);const Z=F.useCallback(M=>{j==null||j({x:M[0],y:M[1],zoom:M[2]}),k||O.setState({transform:M})},[j,k]);return F.useEffect(()=>{if(z.current){ee.current=N1({domNode:z.current,minZoom:y,maxZoom:m,translateExtent:v,viewport:g,onDraggingChange:Y=>O.setState(D=>D.paneDragging===Y?D:{paneDragging:Y}),onPanZoomStart:(Y,D)=>{const{onViewportChangeStart:A,onMoveStart:B}=O.getState();B==null||B(Y,D),A==null||A(D)},onPanZoom:(Y,D)=>{const{onViewportChange:A,onMove:B}=O.getState();B==null||B(Y,D),A==null||A(D)},onPanZoomEnd:(Y,D)=>{const{onViewportChangeEnd:A,onMoveEnd:B}=O.getState();B==null||B(Y,D),A==null||A(D)}});const{x:M,y:$,zoom:W}=ee.current.getViewport();return O.setState({panZoom:ee.current,transform:[M,$,W],domNode:z.current.closest(".react-flow")}),()=>{var Y;(Y=ee.current)==null||Y.destroy()}}},[]),F.useEffect(()=>{var M;(M=ee.current)==null||M.update({onPaneContextMenu:t,zoomOnScroll:r,zoomOnPinch:i,panOnScroll:l,panActivationKeyPressed:a,panOnScrollSpeed:u,panOnScrollMode:c,zoomOnDoubleClick:d,panOnDrag:p,zoomActivationKeyPressed:G,preventScrolling:_,noPanClassName:E,userSelectionActive:V,noWheelClassName:N,lib:b,onTransformChange:Z,connectionInProgress:J,selectionOnDrag:U,paneClickDistance:T})},[t,r,i,l,a,u,c,d,p,G,_,E,V,N,b,Z,J,U,T]),S.jsx("div",{className:"react-flow__renderer",ref:z,style:Cl,children:C})}const k_=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function E_(){const{userSelectionActive:t,userSelectionRect:r}=je(k_,Be);return t&&r?S.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:r.width,height:r.height,transform:`translate(${r.x}px, ${r.y}px)`}}):null}const Du=(t,r)=>i=>{i.target===r.current&&(t==null||t(i))},N_=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,dragging:t.paneDragging,panBy:t.panBy,autoPanSpeed:t.autoPanSpeed});function C_({isSelecting:t,selectionKeyPressed:r,selectionMode:i=pi.Full,panOnDrag:l,autoPanOnSelection:a,paneClickDistance:u,selectionOnDrag:c,onSelectionStart:d,onSelectionEnd:p,onPaneClick:g,onPaneContextMenu:v,onPaneScroll:y,onPaneMouseEnter:m,onPaneMouseMove:w,onPaneMouseLeave:_,children:C}){const N=F.useRef(0),E=De(),{userSelectionActive:j,elementsSelectable:k,dragging:T,panBy:U,autoPanSpeed:O}=je(N_,Be),z=k&&(t||j),V=F.useRef(null),b=F.useRef(),J=F.useRef(new Set),G=F.useRef(new Set),ee=F.useRef(!1),Z=F.useRef(!1),M=F.useRef({x:0,y:0}),$=F.useRef(!1),W=Q=>{if(Z.current||ee.current||E.getState().connection.inProgress){Z.current=!1,ee.current=!1;return}g==null||g(Q),E.getState().resetSelectedElements(),E.setState({nodesSelectionActive:!1})},Y=Q=>{if(Array.isArray(l)&&(l!=null&&l.includes(2))){Q.preventDefault();return}v==null||v(Q)},D=y?Q=>y(Q):void 0,A=Q=>{Z.current&&(Q.stopPropagation(),Z.current=!1)},B=Q=>{var Ie,lt;if(Q.pointerType==="touch"&&l!==!1&&!r)return;const{domNode:oe,transform:he}=E.getState();if(b.current=oe==null?void 0:oe.getBoundingClientRect(),!b.current)return;const xe=Q.target===V.current;if(!xe&&!!Q.target.closest(".nokey")||!t||!(c&&xe||r)||Q.button!==0||!Q.isPrimary)return;(lt=(Ie=Q.target)==null?void 0:Ie.setPointerCapture)==null||lt.call(Ie,Q.pointerId),Z.current=!1;const{x:ke,y:Ne}=Wt(Q.nativeEvent,b.current),Me=Ei({x:ke,y:Ne},he);E.setState({userSelectionRect:{width:0,height:0,startX:Me.x,startY:Me.y,x:ke,y:Ne}}),xe||(Q.stopPropagation(),Q.preventDefault())};function P(Q,oe){const{userSelectionRect:he}=E.getState();if(!he)return;const{transform:xe,nodeLookup:ye,edgeLookup:we,connectionLookup:ke,triggerNodeChanges:Ne,triggerEdgeChanges:Me,defaultEdgeOptions:Ie}=E.getState(),lt={x:he.startX,y:he.startY},{x:ct,y:tt}=ao(lt,xe),nt={startX:lt.x,startY:lt.y,x:Q<ct?Q:ct,y:oe<tt?oe:tt,width:Math.abs(Q-ct),height:Math.abs(oe-tt)},ln=J.current,Qt=G.current;J.current=new Set(fc(ye,nt,xe,i===pi.Partial,!0).map(ft=>ft.id)),G.current=new Set;const Gt=(Ie==null?void 0:Ie.selectable)??!0;for(const ft of J.current){const Pt=ke.get(ft);if(Pt)for(const{edgeId:xt}of Pt.values()){const jt=we.get(xt);jt&&(jt.selectable??Gt)&&G.current.add(xt)}}if(!wh(ln,J.current)){const ft=to(ye,J.current,!0);Ne(ft)}if(!wh(Qt,G.current)){const ft=to(we,G.current);Me(ft)}E.setState({userSelectionRect:nt,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!a||!b.current)return;const[Q,oe]=dc(M.current,b.current,O);U({x:Q,y:oe}).then(he=>{if(!Z.current||!he){N.current=requestAnimationFrame(L);return}const{x:xe,y:ye}=M.current;P(xe,ye),N.current=requestAnimationFrame(L)})}const re=()=>{cancelAnimationFrame(N.current),N.current=0,$.current=!1};F.useEffect(()=>()=>re(),[]);const ie=Q=>{const{userSelectionRect:oe,transform:he,resetSelectedElements:xe}=E.getState();if(!b.current||!oe)return;const{x:ye,y:we}=Wt(Q.nativeEvent,b.current);M.current={x:ye,y:we};const ke=ao({x:oe.startX,y:oe.startY},he);if(!Z.current){const Ne=r?0:u;if(Math.hypot(ye-ke.x,we-ke.y)<=Ne)return;xe(),d==null||d(Q)}Z.current=!0,$.current||(L(),$.current=!0),P(ye,we)},ce=Q=>{var oe,he;if(!z){Q.target===V.current&&E.getState().connection.inProgress&&(ee.current=!0);return}Q.button===0&&((he=(oe=Q.target)==null?void 0:oe.releasePointerCapture)==null||he.call(oe,Q.pointerId),!j&&Q.target===V.current&&E.getState().userSelectionRect&&(W==null||W(Q)),E.setState({userSelectionActive:!1,userSelectionRect:null}),Z.current&&(p==null||p(Q),E.setState({nodesSelectionActive:J.current.size>0})),re())},te=Q=>{var oe,he;(he=(oe=Q.target)==null?void 0:oe.releasePointerCapture)==null||he.call(oe,Q.pointerId),re()},ne=l===!0||Array.isArray(l)&&l.includes(0);return S.jsxs("div",{className:Ye(["react-flow__pane",{draggable:ne,dragging:T,selection:t}]),onClick:z?void 0:Du(W,V),onContextMenu:Du(Y,V),onWheel:Du(D,V),onPointerEnter:z?void 0:m,onPointerMove:z?ie:w,onPointerUp:ce,onPointerCancel:z?te:void 0,onPointerDownCapture:z?B:void 0,onClickCapture:z?A:void 0,onPointerLeave:_,ref:V,style:Cl,children:[C,S.jsx(E_,{})]})}function Zu({id:t,store:r,unselect:i=!1,nodeRef:l}){const{addSelectedNodes:a,unselectNodesAndEdges:u,multiSelectionActive:c,nodeLookup:d,onError:p}=r.getState(),g=d.get(t);if(!g){p==null||p("012",Yt.error012(t));return}r.setState({nodesSelectionActive:!1}),g.selected?(i||g.selected&&c)&&(u({nodes:[g],edges:[]}),requestAnimationFrame(()=>{var v;return(v=l==null?void 0:l.current)==null?void 0:v.blur()})):a([t])}function Rg({nodeRef:t,disabled:r=!1,noDragClassName:i,handleSelector:l,nodeId:a,isSelectable:u,nodeClickDistance:c}){const d=De(),[p,g]=F.useState(!1),v=F.useRef();return F.useEffect(()=>{if(!r)return v.current=f1({getStoreItems:()=>d.getState(),onNodeMouseDown:y=>{Zu({id:y,store:d,nodeRef:t})},onDragStart:()=>{g(!0)},onDragStop:()=>{g(!1)}}),()=>{var y;(y=v.current)==null||y.destroy(),v.current=void 0}},[r,d,t]),F.useEffect(()=>{r||!t.current||!v.current||v.current.update({noDragClassName:i,handleSelector:l,domNode:t.current,isSelectable:u,nodeId:a,nodeClickDistance:c})},[i,l,r,u,t,a,c]),p}const M_=t=>r=>r.selected&&(r.draggable||t&&typeof r.draggable>"u");function Ag(){const t=De();return F.useCallback(i=>{const{nodeExtent:l,snapToGrid:a,snapGrid:u,nodesDraggable:c,onError:d,updateNodePositions:p,nodeLookup:g,nodeOrigin:v}=t.getState(),y=new Map,m=M_(c),w=a?u[0]:5,_=a?u[1]:5,C=i.direction.x*w*i.factor,N=i.direction.y*_*i.factor;for(const[,E]of g){if(!m(E))continue;let j={x:E.internals.positionAbsolute.x+C,y:E.internals.positionAbsolute.y+N};a&&(j=ki(j,u));const{position:k,positionAbsolute:T}=Jp({nodeId:E.id,nextPosition:j,nodeLookup:g,nodeExtent:l,nodeOrigin:v,onError:d});E.position=k,E.internals.positionAbsolute=T,y.set(E.id,E)}p(y)},[])}const wc=F.createContext(null),P_=wc.Provider;wc.Consumer;const Dg=()=>F.useContext(wc),j_=t=>({connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName,rfId:t.rfId}),$g=F.createContext(null);function T_({children:t}){const r=je(j_,Be);return S.jsx($g.Provider,{value:r,children:t})}function I_(){const t=F.useContext($g);if(!t)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return t}const z_={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},L_=(t,r,i)=>l=>{const{connectionClickStartHandle:a,connectionMode:u,connection:c}=l,{fromHandle:d,toHandle:p,isValid:g}=c;if(!d&&!a)return z_;const v=(p==null?void 0:p.nodeId)===t&&(p==null?void 0:p.id)===r&&(p==null?void 0:p.type)===i;return{connectingFrom:(d==null?void 0:d.nodeId)===t&&(d==null?void 0:d.id)===r&&(d==null?void 0:d.type)===i,connectingTo:v,clickConnecting:(a==null?void 0:a.nodeId)===t&&(a==null?void 0:a.id)===r&&(a==null?void 0:a.type)===i,isPossibleEndHandle:u===so.Strict?(d==null?void 0:d.type)!==i:t!==(d==null?void 0:d.nodeId)||r!==(d==null?void 0:d.id),connectionInProcess:!!d,clickConnectionInProcess:!!a,valid:v&&g}};function R_({type:t="source",position:r=ve.Top,isValidConnection:i,isConnectable:l=!0,isConnectableStart:a=!0,isConnectableEnd:u=!0,id:c,onConnect:d,children:p,className:g,onMouseDown:v,onTouchStart:y,...m},w){var $,W;const _=c||null,C=t==="target",N=De(),E=Dg(),{connectOnClick:j,noPanClassName:k,rfId:T}=I_(),{connectingFrom:U,connectingTo:O,clickConnecting:z,isPossibleEndHandle:V,connectionInProcess:b,clickConnectionInProcess:J,valid:G}=je(L_(E,_,t),Be);E||(W=($=N.getState()).onError)==null||W.call($,"010",Yt.error010());const ee=Y=>{const{defaultEdgeOptions:D,onConnect:A,hasDefaultEdges:B}=N.getState(),P={...D,...Y};if(B){const{edges:L,setEdges:re,onError:ie}=N.getState();re(d_(P,L,{onError:ie}))}A==null||A(P),d==null||d(P)},Z=Y=>{if(!E)return;const D=ug(Y.nativeEvent);if(a&&(D&&Y.button===0||!D)){const A=N.getState();qu.onPointerDown(Y.nativeEvent,{handleDomNode:Y.currentTarget,autoPanOnConnect:A.autoPanOnConnect,connectionMode:A.connectionMode,connectionRadius:A.connectionRadius,domNode:A.domNode,nodeLookup:A.nodeLookup,lib:A.lib,isTarget:C,handleId:_,nodeId:E,flowId:A.rfId,panBy:A.panBy,cancelConnection:A.cancelConnection,onConnectStart:A.onConnectStart,onConnectEnd:(...B)=>{var P,L;return(L=(P=N.getState()).onConnectEnd)==null?void 0:L.call(P,...B)},updateConnection:A.updateConnection,onConnect:ee,isValidConnection:i||((...B)=>{var P,L;return((L=(P=N.getState()).isValidConnection)==null?void 0:L.call(P,...B))??!0}),getTransform:()=>N.getState().transform,getFromHandle:()=>N.getState().connection.fromHandle,autoPanSpeed:A.autoPanSpeed,dragThreshold:A.connectionDragThreshold})}D?v==null||v(Y):y==null||y(Y)},M=Y=>{const{onClickConnectStart:D,onClickConnectEnd:A,connectionClickStartHandle:B,connectionMode:P,isValidConnection:L,lib:re,rfId:ie,nodeLookup:ce,connection:te}=N.getState();if(!E||!B&&!a)return;if(!B){D==null||D(Y.nativeEvent,{nodeId:E,handleId:_,handleType:t}),N.setState({connectionClickStartHandle:{nodeId:E,type:t,id:_}});return}const ne=lg(Y.target),Q=i||L,{connection:oe,isValid:he}=qu.isValid(Y.nativeEvent,{handle:{nodeId:E,id:_,type:t},connectionMode:P,fromNodeId:B.nodeId,fromHandleId:B.id||null,fromType:B.type,isValidConnection:Q,flowId:ie,doc:ne,lib:re,nodeLookup:ce});he&&oe&&ee(oe);const xe=structuredClone(te);delete xe.inProgress,xe.toPosition=xe.toHandle?xe.toHandle.position:null,A==null||A(Y,xe),N.setState({connectionClickStartHandle:null})};return S.jsx("div",{"data-handleid":_,"data-nodeid":E,"data-handlepos":r,"data-id":`${T}-${E}-${_}-${t}`,className:Ye(["react-flow__handle",`react-flow__handle-${r}`,"nodrag",k,g,{source:!C,target:C,connectable:l,connectablestart:a,connectableend:u,clickconnecting:z,connectingfrom:U,connectingto:O,valid:G,connectionindicator:l&&(!b||V)&&(b||J?u:a)}]),onMouseDown:Z,onTouchStart:Z,onClick:j?M:void 0,ref:w,...m,children:p})}const co=F.memo(Ig(R_));function A_({data:t,isConnectable:r,sourcePosition:i=ve.Bottom}){return S.jsxs(S.Fragment,{children:[t==null?void 0:t.label,S.jsx(co,{type:"source",position:i,isConnectable:r})]})}function D_({data:t,isConnectable:r,targetPosition:i=ve.Top,sourcePosition:l=ve.Bottom}){return S.jsxs(S.Fragment,{children:[S.jsx(co,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label,S.jsx(co,{type:"source",position:l,isConnectable:r})]})}function $_(){return null}function b_({data:t,isConnectable:r,targetPosition:i=ve.Top}){return S.jsxs(S.Fragment,{children:[S.jsx(co,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label]})}const gl={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},qh={input:A_,default:D_,output:b_,group:$_};function O_(t){var r,i,l,a;return t.internals.handleBounds===void 0?{width:t.width??t.initialWidth??((r=t.style)==null?void 0:r.width),height:t.height??t.initialHeight??((i=t.style)==null?void 0:i.height)}:{width:t.width??((l=t.style)==null?void 0:l.width),height:t.height??((a=t.style)==null?void 0:a.height)}}const F_=t=>{const{width:r,height:i,x:l,y:a}=Si(t.nodeLookup,{filter:u=>!!u.selected});return{width:Ut(r)?r:null,height:Ut(i)?i:null,userSelectionActive:t.userSelectionActive,transformString:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]}) translate(${l}px,${a}px)`}};function H_({onSelectionContextMenu:t,noPanClassName:r,disableKeyboardA11y:i}){const l=De(),{width:a,height:u,transformString:c,userSelectionActive:d}=je(F_,Be),p=Ag(),g=F.useRef(null);F.useEffect(()=>{var w;i||(w=g.current)==null||w.focus({preventScroll:!0})},[i]);const v=!d&&a!==null&&u!==null;if(Rg({nodeRef:g,disabled:!v}),!v)return null;const y=t?w=>{const _=l.getState().nodes.filter(C=>C.selected);t(w,_)}:void 0,m=w=>{Object.prototype.hasOwnProperty.call(gl,w.key)&&(w.preventDefault(),p({direction:gl[w.key],factor:w.shiftKey?4:1}))};return S.jsx("div",{className:Ye(["react-flow__nodesselection","react-flow__container",r]),style:{transform:c},children:S.jsx("div",{ref:g,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:i?void 0:-1,onKeyDown:i?void 0:m,style:{width:a,height:u}})})}const Zh=typeof window<"u"?window:void 0,B_=t=>({nodesSelectionActive:t.nodesSelectionActive,userSelectionActive:t.userSelectionActive});function bg({children:t,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:a,onPaneContextMenu:u,onPaneScroll:c,paneClickDistance:d,deleteKeyCode:p,selectionKeyCode:g,selectionOnDrag:v,selectionMode:y,onSelectionStart:m,onSelectionEnd:w,multiSelectionKeyCode:_,panActivationKeyCode:C,zoomActivationKeyCode:N,elementsSelectable:E,zoomOnScroll:j,zoomOnPinch:k,panOnScroll:T,panOnScrollSpeed:U,panOnScrollMode:O,zoomOnDoubleClick:z,panOnDrag:V,autoPanOnSelection:b,defaultViewport:J,translateExtent:G,minZoom:ee,maxZoom:Z,preventScrolling:M,onSelectionContextMenu:$,noWheelClassName:W,noPanClassName:Y,disableKeyboardA11y:D,onViewportChange:A,isControlledViewport:B}){const{nodesSelectionActive:P,userSelectionActive:L}=je(B_,Be),re=yi(g,{target:Zh}),ie=yi(C,{target:Zh}),ce=ie||V,te=ie||T,ne=v&&ce!==!0,Q=re||L||ne;return x_({deleteKeyCode:p,multiSelectionKeyCode:_}),S.jsx(S_,{onPaneContextMenu:u,elementsSelectable:E,zoomOnScroll:j,zoomOnPinch:k,panOnScroll:te,panActivationKeyPressed:ie,panOnScrollSpeed:U,panOnScrollMode:O,zoomOnDoubleClick:z,panOnDrag:!re&&ce,defaultViewport:J,translateExtent:G,minZoom:ee,maxZoom:Z,zoomActivationKeyCode:N,preventScrolling:M,noWheelClassName:W,noPanClassName:Y,onViewportChange:A,isControlledViewport:B,paneClickDistance:d,selectionOnDrag:ne,children:S.jsxs(C_,{onSelectionStart:m,onSelectionEnd:w,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:a,onPaneContextMenu:u,onPaneScroll:c,panOnDrag:ce,autoPanOnSelection:b,isSelecting:!!Q,selectionMode:y,selectionKeyPressed:re,paneClickDistance:d,selectionOnDrag:ne,children:[t,P&&S.jsx(H_,{onSelectionContextMenu:$,noPanClassName:Y,disableKeyboardA11y:D})]})})}bg.displayName="FlowRenderer";const V_=F.memo(bg),U_=t=>r=>t?fc(r.nodeLookup,{x:0,y:0,width:r.width,height:r.height},r.transform,!0).map(i=>i.id):Array.from(r.nodeLookup.keys());function W_(t){return je(F.useCallback(U_(t),[t]),Be)}const Y_=t=>t.updateNodeInternals;function X_(){const t=je(Y_),[r]=F.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(i=>{const l=new Map;i.forEach(a=>{const u=a.target.getAttribute("data-id");l.set(u,{id:u,nodeElement:a.target,force:!0})}),t(l)}));return F.useEffect(()=>()=>{r==null||r.disconnect()},[r]),r}function K_({node:t,nodeType:r,hasDimensions:i,resizeObserver:l}){const a=De(),u=F.useRef(null),c=F.useRef(null),d=F.useRef(t.sourcePosition),p=F.useRef(t.targetPosition),g=F.useRef(r),v=i&&!!t.internals.handleBounds;return F.useEffect(()=>{u.current&&!t.hidden&&(!v||c.current!==u.current)&&(c.current&&(l==null||l.unobserve(c.current)),l==null||l.observe(u.current),c.current=u.current)},[v,t.hidden]),F.useEffect(()=>()=>{c.current&&(l==null||l.unobserve(c.current),c.current=null)},[]),F.useEffect(()=>{if(u.current){const y=g.current!==r,m=d.current!==t.sourcePosition,w=p.current!==t.targetPosition;(y||m||w)&&(g.current=r,d.current=t.sourcePosition,p.current=t.targetPosition,a.getState().updateNodeInternals(new Map([[t.id,{id:t.id,nodeElement:u.current,force:!0}]])))}},[t.id,r,t.sourcePosition,t.targetPosition]),u}function Q_({id:t,onClick:r,onMouseEnter:i,onMouseMove:l,onMouseLeave:a,onContextMenu:u,onDoubleClick:c,nodesDraggable:d,elementsSelectable:p,nodesConnectable:g,nodesFocusable:v,resizeObserver:y,noDragClassName:m,noPanClassName:w,disableKeyboardA11y:_,rfId:C,nodeTypes:N,nodeClickDistance:E,onError:j}){const{node:k,internals:T,isParent:U}=je(Q=>{const oe=Q.nodeLookup.get(t),he=Q.parentLookup.has(t);return{node:oe,internals:oe.internals,isParent:he}},Be);let O=k.type||"default",z=(N==null?void 0:N[O])||qh[O];z===void 0&&(j==null||j("003",Yt.error003(O)),O="default",z=(N==null?void 0:N.default)||qh.default);const V=!!(k.draggable||d&&typeof k.draggable>"u"),b=!!(k.selectable||p&&typeof k.selectable>"u"),J=!!(k.connectable||g&&typeof k.connectable>"u"),G=!!(k.focusable||v&&typeof k.focusable>"u"),ee=De(),Z=og(k),M=K_({node:k,nodeType:O,hasDimensions:Z,resizeObserver:y}),$=Rg({nodeRef:M,disabled:k.hidden||!V,noDragClassName:m,handleSelector:k.dragHandle,nodeId:t,isSelectable:b,nodeClickDistance:E}),W=Ag();if(k.hidden)return null;const Y=Kt(k),D=O_(k),A=b||V||r||i||l||a,B=i?Q=>i(Q,{...T.userNode}):void 0,P=l?Q=>l(Q,{...T.userNode}):void 0,L=a?Q=>a(Q,{...T.userNode}):void 0,re=u?Q=>u(Q,{...T.userNode}):void 0,ie=c?Q=>c(Q,{...T.userNode}):void 0,ce=Q=>{const{selectNodesOnDrag:oe,nodeDragThreshold:he}=ee.getState();b&&(!oe||!V||he>0)&&Zu({id:t,store:ee,nodeRef:M}),r&&r(Q,{...T.userNode})},te=Q=>{if(!(ag(Q.nativeEvent)||_)){if(Qp.includes(Q.key)&&b){const oe=Q.key==="Escape";Zu({id:t,store:ee,unselect:oe,nodeRef:M})}else if(V&&k.selected&&Object.prototype.hasOwnProperty.call(gl,Q.key)){Q.preventDefault();const{ariaLabelConfig:oe}=ee.getState();ee.setState({ariaLiveMessage:oe["node.a11yDescription.ariaLiveMessage"]({direction:Q.key.replace("Arrow","").toLowerCase(),x:~~T.positionAbsolute.x,y:~~T.positionAbsolute.y})}),W({direction:gl[Q.key],factor:Q.shiftKey?4:1})}}},ne=()=>{var ke;if(_||!((ke=M.current)!=null&&ke.matches(":focus-visible")))return;const{transform:Q,width:oe,height:he,autoPanOnNodeFocus:xe,setCenter:ye}=ee.getState();if(!xe)return;fc(new Map([[t,k]]),{x:0,y:0,width:oe,height:he},Q,!0).length>0||ye(k.position.x+Y.width/2,k.position.y+Y.height/2,{zoom:Q[2]})};return S.jsx("div",{className:Ye(["react-flow__node",`react-flow__node-${O}`,{[w]:V},k.className,{selected:k.selected,selectable:b,parent:U,draggable:V,dragging:$}]),ref:M,style:{zIndex:T.z,transform:`translate(${T.positionAbsolute.x}px,${T.positionAbsolute.y}px)`,pointerEvents:A?"all":"none",visibility:Z?"visible":"hidden",...k.style,...D},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:B,onMouseMove:P,onMouseLeave:L,onContextMenu:re,onClick:ce,onDoubleClick:ie,onKeyDown:G?te:void 0,tabIndex:G?0:void 0,onFocus:G?ne:void 0,role:k.ariaRole??(G?"group":void 0),"aria-roledescription":"node","aria-describedby":_?void 0:`${Mg}-${C}`,"aria-label":k.ariaLabel,...k.domAttributes,children:S.jsx(P_,{value:t,children:S.jsx(z,{id:t,data:k.data,type:O,positionAbsoluteX:T.positionAbsolute.x,positionAbsoluteY:T.positionAbsolute.y,selected:k.selected??!1,selectable:b,draggable:V,deletable:k.deletable??!0,isConnectable:J,sourcePosition:k.sourcePosition,targetPosition:k.targetPosition,dragging:$,dragHandle:k.dragHandle,zIndex:T.z,parentId:k.parentId,...Y})})})}var G_=F.memo(Q_);const q_=t=>({nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,onError:t.onError});function Og(t){const{nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,onError:a}=je(q_,Be),u=W_(t.onlyRenderVisibleElements),c=X_();return S.jsx("div",{className:"react-flow__nodes",style:Cl,children:u.map(d=>S.jsx(G_,{id:d,nodeTypes:t.nodeTypes,nodeExtent:t.nodeExtent,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,resizeObserver:c,nodesDraggable:t.nodesDraggable??!0,nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,nodeClickDistance:t.nodeClickDistance,onError:a},d))})}Og.displayName="NodeRenderer";const Z_=F.memo(Og);function J_(t){return je(F.useCallback(i=>{if(!t)return i.edges.map(a=>a.id);const l=[];if(i.width&&i.height)for(const a of i.edges){const u=i.nodeLookup.get(a.source),c=i.nodeLookup.get(a.target);u&&c&&Yw({sourceNode:u,targetNode:c,width:i.width,height:i.height,transform:i.transform})&&l.push(a.id)}return l},[t]),Be)}const eS=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t}};return S.jsx("polyline",{className:"arrow",style:i,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},tS=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t,fill:t}};return S.jsx("polyline",{className:"arrowclosed",style:i,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Jh={[dl.Arrow]:eS,[dl.ArrowClosed]:tS};function nS(t){const r=De();return F.useMemo(()=>{var a,u;return Object.prototype.hasOwnProperty.call(Jh,t)?Jh[t]:((u=(a=r.getState()).onError)==null||u.call(a,"009",Yt.error009(t)),null)},[t])}const rS=({id:t,type:r,color:i,width:l=12.5,height:a=12.5,markerUnits:u="strokeWidth",strokeWidth:c,orient:d="auto-start-reverse"})=>{const p=nS(r);return p?S.jsx("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${l}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:u,orient:d,refX:"0",refY:"0",children:S.jsx(p,{color:i,strokeWidth:c})}):null},Fg=({defaultColor:t,rfId:r})=>{const i=je(u=>u.edges),l=je(u=>u.defaultEdgeOptions),a=F.useMemo(()=>e1(i,{id:r,defaultColor:t,defaultMarkerStart:l==null?void 0:l.markerStart,defaultMarkerEnd:l==null?void 0:l.markerEnd}),[i,l,r,t]);return a.length?S.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:S.jsx("defs",{children:a.map(u=>S.jsx(rS,{id:u.id,type:u.type,color:u.color,width:u.width,height:u.height,markerUnits:u.markerUnits,strokeWidth:u.strokeWidth,orient:u.orient},u.id))})}):null};Fg.displayName="MarkerDefinitions";var oS=F.memo(Fg);function Hg({x:t,y:r,label:i,labelStyle:l,labelShowBg:a=!0,labelBgStyle:u,labelBgPadding:c=[2,4],labelBgBorderRadius:d=2,children:p,className:g,...v}){const[y,m]=F.useState({x:1,y:0,width:0,height:0}),w=Ye(["react-flow__edge-textwrapper",g]),_=F.useRef(null);return F.useEffect(()=>{if(_.current){const C=_.current.getBBox();m({x:C.x,y:C.y,width:C.width,height:C.height})}},[i]),i?S.jsxs("g",{transform:`translate(${t-y.width/2} ${r-y.height/2})`,className:w,visibility:y.width?"visible":"hidden",...v,children:[a&&S.jsx("rect",{width:y.width+2*c[0],x:-c[0],y:-c[1],height:y.height+2*c[1],className:"react-flow__edge-textbg",style:u,rx:d,ry:d}),S.jsx("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:_,style:l,children:i}),p]}):null}Hg.displayName="EdgeText";const iS=F.memo(Hg);function Ml({path:t,labelX:r,labelY:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:p,interactionWidth:g=20,...v}){return S.jsxs(S.Fragment,{children:[S.jsx("path",{...v,d:t,fill:"none",className:Ye(["react-flow__edge-path",v.className])}),g?S.jsx("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:g,className:"react-flow__edge-interaction"}):null,l&&Ut(r)&&Ut(i)?S.jsx(iS,{x:r,y:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:p}):null]})}function ep({pos:t,x1:r,y1:i,x2:l,y2:a}){return t===ve.Left||t===ve.Right?[.5*(r+l),i]:[r,.5*(i+a)]}function Bg({sourceX:t,sourceY:r,sourcePosition:i=ve.Bottom,targetX:l,targetY:a,targetPosition:u=ve.Top}){const[c,d]=ep({pos:i,x1:t,y1:r,x2:l,y2:a}),[p,g]=ep({pos:u,x1:l,y1:a,x2:t,y2:r}),[v,y,m,w]=cg({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:c,sourceControlY:d,targetControlX:p,targetControlY:g});return[`M${t},${r} C${c},${d} ${p},${g} ${l},${a}`,v,y,m,w]}function Vg(t){return F.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c,targetPosition:d,label:p,labelStyle:g,labelShowBg:v,labelBgStyle:y,labelBgPadding:m,labelBgBorderRadius:w,style:_,markerEnd:C,markerStart:N,interactionWidth:E})=>{const[j,k,T]=Bg({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d}),U=t.isInternal?void 0:r;return S.jsx(Ml,{id:U,path:j,labelX:k,labelY:T,label:p,labelStyle:g,labelShowBg:v,labelBgStyle:y,labelBgPadding:m,labelBgBorderRadius:w,style:_,markerEnd:C,markerStart:N,interactionWidth:E})})}const sS=Vg({isInternal:!1}),Ug=Vg({isInternal:!0});sS.displayName="SimpleBezierEdge";Ug.displayName="SimpleBezierEdgeInternal";function Wg(t){return F.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:p,labelBgStyle:g,labelBgPadding:v,labelBgBorderRadius:y,style:m,sourcePosition:w=ve.Bottom,targetPosition:_=ve.Top,markerEnd:C,markerStart:N,pathOptions:E,interactionWidth:j})=>{const[k,T,U]=Ku({sourceX:i,sourceY:l,sourcePosition:w,targetX:a,targetY:u,targetPosition:_,borderRadius:E==null?void 0:E.borderRadius,offset:E==null?void 0:E.offset,stepPosition:E==null?void 0:E.stepPosition}),O=t.isInternal?void 0:r;return S.jsx(Ml,{id:O,path:k,labelX:T,labelY:U,label:c,labelStyle:d,labelShowBg:p,labelBgStyle:g,labelBgPadding:v,labelBgBorderRadius:y,style:m,markerEnd:C,markerStart:N,interactionWidth:j})})}const Yg=Wg({isInternal:!1}),Xg=Wg({isInternal:!0});Yg.displayName="SmoothStepEdge";Xg.displayName="SmoothStepEdgeInternal";function Kg(t){return F.memo(({id:r,...i})=>{var a;const l=t.isInternal?void 0:r;return S.jsx(Yg,{...i,id:l,pathOptions:F.useMemo(()=>{var u;return{borderRadius:0,offset:(u=i.pathOptions)==null?void 0:u.offset}},[(a=i.pathOptions)==null?void 0:a.offset])})})}const lS=Kg({isInternal:!1}),Qg=Kg({isInternal:!0});lS.displayName="StepEdge";Qg.displayName="StepEdgeInternal";function Gg(t){return F.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:p,labelBgStyle:g,labelBgPadding:v,labelBgBorderRadius:y,style:m,markerEnd:w,markerStart:_,interactionWidth:C})=>{const[N,E,j]=hg({sourceX:i,sourceY:l,targetX:a,targetY:u}),k=t.isInternal?void 0:r;return S.jsx(Ml,{id:k,path:N,labelX:E,labelY:j,label:c,labelStyle:d,labelShowBg:p,labelBgStyle:g,labelBgPadding:v,labelBgBorderRadius:y,style:m,markerEnd:w,markerStart:_,interactionWidth:C})})}const aS=Gg({isInternal:!1}),qg=Gg({isInternal:!0});aS.displayName="StraightEdge";qg.displayName="StraightEdgeInternal";function Zg(t){return F.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c=ve.Bottom,targetPosition:d=ve.Top,label:p,labelStyle:g,labelShowBg:v,labelBgStyle:y,labelBgPadding:m,labelBgBorderRadius:w,style:_,markerEnd:C,markerStart:N,pathOptions:E,interactionWidth:j})=>{const[k,T,U]=fg({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d,curvature:E==null?void 0:E.curvature}),O=t.isInternal?void 0:r;return S.jsx(Ml,{id:O,path:k,labelX:T,labelY:U,label:p,labelStyle:g,labelShowBg:v,labelBgStyle:y,labelBgPadding:m,labelBgBorderRadius:w,style:_,markerEnd:C,markerStart:N,interactionWidth:j})})}const uS=Zg({isInternal:!1}),Jg=Zg({isInternal:!0});uS.displayName="BezierEdge";Jg.displayName="BezierEdgeInternal";const tp={default:Jg,straight:qg,step:Qg,smoothstep:Xg,simplebezier:Ug},np={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},cS=(t,r,i)=>i===ve.Left?t-r:i===ve.Right?t+r:t,fS=(t,r,i)=>i===ve.Top?t-r:i===ve.Bottom?t+r:t,rp="react-flow__edgeupdater";function op({position:t,centerX:r,centerY:i,radius:l=10,onMouseDown:a,onMouseEnter:u,onMouseOut:c,type:d}){return S.jsx("circle",{onMouseDown:a,onMouseEnter:u,onMouseOut:c,className:Ye([rp,`${rp}-${d}`]),cx:cS(r,l,t),cy:fS(i,l,t),r:l,stroke:"transparent",fill:"transparent"})}function dS({isReconnectable:t,reconnectRadius:r,edge:i,sourceX:l,sourceY:a,targetX:u,targetY:c,sourcePosition:d,targetPosition:p,onReconnect:g,onReconnectStart:v,onReconnectEnd:y,setReconnecting:m,setUpdateHover:w}){const _=De(),C=(T,U)=>{if(T.button!==0)return;const{autoPanOnConnect:O,domNode:z,connectionMode:V,connectionRadius:b,lib:J,onConnectStart:G,cancelConnection:ee,nodeLookup:Z,rfId:M,panBy:$,updateConnection:W}=_.getState(),Y=U.type==="target",D=(P,L)=>{m(!1),y==null||y(P,i,U.type,L)},A=P=>g==null?void 0:g(i,P),B=(P,L)=>{m(!0),v==null||v(T,i,U.type),G==null||G(P,L)};qu.onPointerDown(T.nativeEvent,{autoPanOnConnect:O,connectionMode:V,connectionRadius:b,domNode:z,handleId:U.id,nodeId:U.nodeId,nodeLookup:Z,isTarget:Y,edgeUpdaterType:U.type,lib:J,flowId:M,cancelConnection:ee,panBy:$,isValidConnection:(...P)=>{var L,re;return((re=(L=_.getState()).isValidConnection)==null?void 0:re.call(L,...P))??!0},onConnect:A,onConnectStart:B,onConnectEnd:(...P)=>{var L,re;return(re=(L=_.getState()).onConnectEnd)==null?void 0:re.call(L,...P)},onReconnectEnd:D,updateConnection:W,getTransform:()=>_.getState().transform,getFromHandle:()=>_.getState().connection.fromHandle,dragThreshold:_.getState().connectionDragThreshold,handleDomNode:T.currentTarget})},N=T=>C(T,{nodeId:i.target,id:i.targetHandle??null,type:"target"}),E=T=>C(T,{nodeId:i.source,id:i.sourceHandle??null,type:"source"}),j=()=>w(!0),k=()=>w(!1);return S.jsxs(S.Fragment,{children:[(t===!0||t==="source")&&S.jsx(op,{position:d,centerX:l,centerY:a,radius:r,onMouseDown:N,onMouseEnter:j,onMouseOut:k,type:"source"}),(t===!0||t==="target")&&S.jsx(op,{position:p,centerX:u,centerY:c,radius:r,onMouseDown:E,onMouseEnter:j,onMouseOut:k,type:"target"})]})}function hS({id:t,edgesFocusable:r,edgesReconnectable:i,elementsSelectable:l,onClick:a,onDoubleClick:u,onContextMenu:c,onMouseEnter:d,onMouseMove:p,onMouseLeave:g,reconnectRadius:v,onReconnect:y,onReconnectStart:m,onReconnectEnd:w,rfId:_,edgeTypes:C,noPanClassName:N,onError:E,disableKeyboardA11y:j}){let k=je(ye=>ye.edgeLookup.get(t));const T=je(ye=>ye.defaultEdgeOptions);k=T?{...T,...k}:k;let U=k.type||"default",O=(C==null?void 0:C[U])||tp[U];O===void 0&&(E==null||E("011",Yt.error011(U)),U="default",O=(C==null?void 0:C.default)||tp.default);const z=!!(k.focusable||r&&typeof k.focusable>"u"),V=typeof y<"u"&&(k.reconnectable||i&&typeof k.reconnectable>"u"),b=!!(k.selectable||l&&typeof k.selectable>"u"),J=F.useRef(null),[G,ee]=F.useState(!1),[Z,M]=F.useState(!1),$=De(),{zIndex:W=k.zIndex,sourceX:Y,sourceY:D,targetX:A,targetY:B,sourcePosition:P,targetPosition:L}=je(F.useCallback(ye=>{const we=ye.nodeLookup.get(k.source),ke=ye.nodeLookup.get(k.target);if(!we||!ke)return np;const Ne=Jw({id:t,sourceNode:we,targetNode:ke,sourceHandle:k.sourceHandle||null,targetHandle:k.targetHandle||null,connectionMode:ye.connectionMode,onError:E}),Me=Ww({selected:k.selected,zIndex:k.zIndex,sourceNode:we,targetNode:ke,elevateOnSelect:ye.elevateEdgesOnSelect,zIndexMode:ye.zIndexMode});return{...Ne||np,zIndex:Me}},[k.source,k.target,k.sourceHandle,k.targetHandle,k.selected,k.zIndex,E]),Be),re=F.useMemo(()=>k.markerStart?`url('#${Qu(k.markerStart,_)}')`:void 0,[k.markerStart,_]),ie=F.useMemo(()=>k.markerEnd?`url('#${Qu(k.markerEnd,_)}')`:void 0,[k.markerEnd,_]);if(k.hidden||Y===null||D===null||A===null||B===null)return null;const ce=ye=>{var Me;const{addSelectedEdges:we,unselectNodesAndEdges:ke,multiSelectionActive:Ne}=$.getState();b&&($.setState({nodesSelectionActive:!1}),k.selected&&Ne?(ke({nodes:[],edges:[k]}),(Me=J.current)==null||Me.blur()):we([t])),a&&a(ye,k)},te=u?ye=>{u(ye,{...k})}:void 0,ne=c?ye=>{c(ye,{...k})}:void 0,Q=d?ye=>{d(ye,{...k})}:void 0,oe=p?ye=>{p(ye,{...k})}:void 0,he=g?ye=>{g(ye,{...k})}:void 0,xe=ye=>{var we;if(!j&&Qp.includes(ye.key)&&b){const{unselectNodesAndEdges:ke,addSelectedEdges:Ne}=$.getState();ye.key==="Escape"?((we=J.current)==null||we.blur(),ke({edges:[k]})):Ne([t])}};return S.jsx("svg",{style:{zIndex:W},children:S.jsxs("g",{className:Ye(["react-flow__edge",`react-flow__edge-${U}`,k.className,N,{selected:k.selected,animated:k.animated,inactive:!b&&!a,updating:G,selectable:b}]),onClick:ce,onDoubleClick:te,onContextMenu:ne,onMouseEnter:Q,onMouseMove:oe,onMouseLeave:he,onKeyDown:z?xe:void 0,tabIndex:z?0:void 0,role:k.ariaRole??(z?"group":"img"),"aria-roledescription":"edge","data-id":t,"data-testid":`rf__edge-${t}`,"aria-label":k.ariaLabel===null?void 0:k.ariaLabel||`Edge from ${k.source} to ${k.target}`,"aria-describedby":z?`${Pg}-${_}`:void 0,ref:J,...k.domAttributes,children:[!Z&&S.jsx(O,{id:t,source:k.source,target:k.target,type:k.type,selected:k.selected,animated:k.animated,selectable:b,deletable:k.deletable??!0,label:k.label,labelStyle:k.labelStyle,labelShowBg:k.labelShowBg,labelBgStyle:k.labelBgStyle,labelBgPadding:k.labelBgPadding,labelBgBorderRadius:k.labelBgBorderRadius,sourceX:Y,sourceY:D,targetX:A,targetY:B,sourcePosition:P,targetPosition:L,data:k.data,style:k.style,sourceHandleId:k.sourceHandle,targetHandleId:k.targetHandle,markerStart:re,markerEnd:ie,pathOptions:"pathOptions"in k?k.pathOptions:void 0,interactionWidth:k.interactionWidth}),V&&S.jsx(dS,{edge:k,isReconnectable:V,reconnectRadius:v,onReconnect:y,onReconnectStart:m,onReconnectEnd:w,sourceX:Y,sourceY:D,targetX:A,targetY:B,sourcePosition:P,targetPosition:L,setUpdateHover:ee,setReconnecting:M})]})})}var pS=F.memo(hS);const gS=t=>({edgesFocusable:t.edgesFocusable,edgesReconnectable:t.edgesReconnectable,elementsSelectable:t.elementsSelectable,connectionMode:t.connectionMode,onError:t.onError});function em({defaultMarkerColor:t,onlyRenderVisibleElements:r,rfId:i,edgeTypes:l,noPanClassName:a,onReconnect:u,onEdgeContextMenu:c,onEdgeMouseEnter:d,onEdgeMouseMove:p,onEdgeMouseLeave:g,onEdgeClick:v,reconnectRadius:y,onEdgeDoubleClick:m,onReconnectStart:w,onReconnectEnd:_,disableKeyboardA11y:C}){const{edgesFocusable:N,edgesReconnectable:E,elementsSelectable:j,onError:k}=je(gS,Be),T=J_(r);return S.jsxs("div",{className:"react-flow__edges",children:[S.jsx(oS,{defaultColor:t,rfId:i}),T.map(U=>S.jsx(pS,{id:U,edgesFocusable:N,edgesReconnectable:E,elementsSelectable:j,noPanClassName:a,onReconnect:u,onContextMenu:c,onMouseEnter:d,onMouseMove:p,onMouseLeave:g,onClick:v,reconnectRadius:y,onDoubleClick:m,onReconnectStart:w,onReconnectEnd:_,rfId:i,onError:k,edgeTypes:l,disableKeyboardA11y:C},U))]})}em.displayName="EdgeRenderer";const mS=F.memo(em),ip=t=>`translate(${t[0]}px,${t[1]}px) scale(${t[2]})`;function yS({children:t}){const r=De(),i=F.useRef(null),[l]=F.useState(()=>r.getState().transform);return zg(()=>{let a=null;const u=()=>{const c=r.getState().transform;a&&c[0]===a[0]&&c[1]===a[1]&&c[2]===a[2]||(a=c,i.current&&(i.current.style.transform=ip(c)))};return u(),r.subscribe(u)},[r]),S.jsx("div",{ref:i,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:ip(l)},children:t})}function vS(t){const r=Nl(),i=F.useRef(!1);F.useEffect(()=>{!i.current&&r.viewportInitialized&&t&&(setTimeout(()=>t(r),1),i.current=!0)},[t,r.viewportInitialized])}const xS=t=>{var r;return(r=t.panZoom)==null?void 0:r.syncViewport};function wS(t){const r=je(xS),i=De();return F.useEffect(()=>{t&&(r==null||r(t),i.setState({transform:[t.x,t.y,t.zoom]}))},[t,r]),null}function _S(t){return t.connection.inProgress?{...t.connection,to:Ei(t.connection.to,t.transform)}:{...t.connection}}function SS(t){return _S}function kS(t){const r=SS();return je(r,Be)}const ES=t=>({nodesConnectable:t.nodesConnectable,isValid:t.connection.isValid,inProgress:t.connection.inProgress,width:t.width,height:t.height});function NS({containerStyle:t,style:r,type:i,component:l}){const{nodesConnectable:a,width:u,height:c,isValid:d,inProgress:p}=je(ES,Be);return!(u&&a&&p)?null:S.jsx("svg",{style:t,width:u,height:c,className:"react-flow__connectionline react-flow__container",children:S.jsx("g",{className:Ye(["react-flow__connection",sg(d)]),children:S.jsx(tm,{style:r,type:i,CustomComponent:l,isValid:d})})})}const tm=({style:t,type:r=Wn.Bezier,CustomComponent:i,isValid:l})=>{const{inProgress:a,from:u,fromNode:c,fromHandle:d,fromPosition:p,to:g,toNode:v,toHandle:y,toPosition:m,pointer:w}=kS();if(!a)return;if(i)return S.jsx(i,{connectionLineType:r,connectionLineStyle:t,fromNode:c,fromHandle:d,fromX:u.x,fromY:u.y,toX:g.x,toY:g.y,fromPosition:p,toPosition:m,connectionStatus:sg(l),toNode:v,toHandle:y,pointer:w});let _="";const C={sourceX:u.x,sourceY:u.y,sourcePosition:p,targetX:g.x,targetY:g.y,targetPosition:m};switch(r){case Wn.Bezier:[_]=fg(C);break;case Wn.SimpleBezier:[_]=Bg(C);break;case Wn.Step:[_]=Ku({...C,borderRadius:0});break;case Wn.SmoothStep:[_]=Ku(C);break;default:[_]=hg(C)}return S.jsx("path",{d:_,fill:"none",className:"react-flow__connection-path",style:t})};tm.displayName="ConnectionLine";const CS={};function sp(t=CS){F.useRef(t),De(),F.useEffect(()=>{},[t])}function MS(){De(),F.useRef(!1),F.useEffect(()=>{},[])}function nm({nodeTypes:t,edgeTypes:r,onInit:i,onNodeClick:l,onEdgeClick:a,onNodeDoubleClick:u,onEdgeDoubleClick:c,onNodeMouseEnter:d,onNodeMouseMove:p,onNodeMouseLeave:g,onNodeContextMenu:v,onSelectionContextMenu:y,onSelectionStart:m,onSelectionEnd:w,connectionLineType:_,connectionLineStyle:C,connectionLineComponent:N,connectionLineContainerStyle:E,selectionKeyCode:j,selectionOnDrag:k,selectionMode:T,multiSelectionKeyCode:U,panActivationKeyCode:O,zoomActivationKeyCode:z,deleteKeyCode:V,onlyRenderVisibleElements:b,elementsSelectable:J,defaultViewport:G,translateExtent:ee,minZoom:Z,maxZoom:M,preventScrolling:$,defaultMarkerColor:W,zoomOnScroll:Y,zoomOnPinch:D,panOnScroll:A,panOnScrollSpeed:B,panOnScrollMode:P,zoomOnDoubleClick:L,panOnDrag:re,autoPanOnSelection:ie,onPaneClick:ce,onPaneMouseEnter:te,onPaneMouseMove:ne,onPaneMouseLeave:Q,onPaneScroll:oe,onPaneContextMenu:he,paneClickDistance:xe,nodeClickDistance:ye,onEdgeContextMenu:we,onEdgeMouseEnter:ke,onEdgeMouseMove:Ne,onEdgeMouseLeave:Me,reconnectRadius:Ie,onReconnect:lt,onReconnectStart:ct,onReconnectEnd:tt,noDragClassName:nt,noWheelClassName:ln,noPanClassName:Qt,disableKeyboardA11y:Gt,nodeExtent:ft,rfId:Pt,viewport:xt,onViewportChange:jt,nodesDraggable:Er}){return sp(t),sp(r),MS(),vS(i),wS(xt),S.jsx(V_,{onPaneClick:ce,onPaneMouseEnter:te,onPaneMouseMove:ne,onPaneMouseLeave:Q,onPaneContextMenu:he,onPaneScroll:oe,paneClickDistance:xe,deleteKeyCode:V,selectionKeyCode:j,selectionOnDrag:k,selectionMode:T,onSelectionStart:m,onSelectionEnd:w,multiSelectionKeyCode:U,panActivationKeyCode:O,zoomActivationKeyCode:z,elementsSelectable:J,zoomOnScroll:Y,zoomOnPinch:D,zoomOnDoubleClick:L,panOnScroll:A,panOnScrollSpeed:B,panOnScrollMode:P,panOnDrag:re,autoPanOnSelection:ie,defaultViewport:G,translateExtent:ee,minZoom:Z,maxZoom:M,onSelectionContextMenu:y,preventScrolling:$,noDragClassName:nt,noWheelClassName:ln,noPanClassName:Qt,disableKeyboardA11y:Gt,onViewportChange:jt,isControlledViewport:!!xt,children:S.jsxs(yS,{children:[S.jsx(mS,{edgeTypes:r,onEdgeClick:a,onEdgeDoubleClick:c,onReconnect:lt,onReconnectStart:ct,onReconnectEnd:tt,onlyRenderVisibleElements:b,onEdgeContextMenu:we,onEdgeMouseEnter:ke,onEdgeMouseMove:Ne,onEdgeMouseLeave:Me,reconnectRadius:Ie,defaultMarkerColor:W,noPanClassName:Qt,disableKeyboardA11y:Gt,rfId:Pt}),S.jsx(NS,{style:C,type:_,component:N,containerStyle:E}),S.jsx("div",{className:"react-flow__edgelabel-renderer"}),S.jsx(Z_,{nodeTypes:t,onNodeClick:l,onNodeDoubleClick:u,onNodeMouseEnter:d,onNodeMouseMove:p,onNodeMouseLeave:g,onNodeContextMenu:v,nodeClickDistance:ye,onlyRenderVisibleElements:b,noPanClassName:Qt,noDragClassName:nt,disableKeyboardA11y:Gt,nodeExtent:ft,rfId:Pt,nodesDraggable:Er}),S.jsx("div",{className:"react-flow__viewport-portal"})]})})}nm.displayName="GraphView";const PS=F.memo(nm),jS=rg(),lp=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:p=.5,maxZoom:g=2,nodeOrigin:v,nodeExtent:y,zIndexMode:m="basic"}={})=>{const w=new Map,_=new Map,C=new Map,N=new Map,E=l??r??[],j=i??t??[],k=v??[0,0],T=y??hi;mg(C,N,E);const{nodesInitialized:U}=Gu(j,w,_,{nodeOrigin:k,nodeExtent:T,zIndexMode:m});let O=[0,0,1];if(c&&a&&u){const z=Si(w,{filter:G=>!!((G.width||G.initialWidth)&&(G.height||G.initialHeight))}),{x:V,y:b,zoom:J}=hc(z,a,u,p,g,(d==null?void 0:d.padding)??.1);O=[V,b,J]}return{rfId:"1",width:a??0,height:u??0,transform:O,nodes:j,nodesInitialized:U,nodeLookup:w,parentLookup:_,edges:E,edgeLookup:N,connectionLookup:C,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:i!==void 0,hasDefaultEdges:l!==void 0,panZoom:null,minZoom:p,maxZoom:g,translateExtent:hi,nodeExtent:T,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:so.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:k,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:c??!1,fitViewOptions:d,fitViewResolver:null,connection:{...qp},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:jS,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Gp,zIndexMode:m,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}},TS=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:p,maxZoom:g,nodeOrigin:v,nodeExtent:y,zIndexMode:m})=>B1((w,_)=>{async function C(){const{nodeLookup:N,panZoom:E,fitViewOptions:j,fitViewResolver:k,width:T,height:U,minZoom:O,maxZoom:z}=_();E&&(await bw({nodes:N,width:T,height:U,panZoom:E,minZoom:O,maxZoom:z},j),k==null||k.resolve(!0),w({fitViewResolver:null}))}return{...lp({nodes:t,edges:r,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:p,maxZoom:g,nodeOrigin:v,nodeExtent:y,defaultNodes:i,defaultEdges:l,zIndexMode:m}),setNodes:N=>{const{nodeLookup:E,parentLookup:j,nodeOrigin:k,nodeExtent:T,elevateNodesOnSelect:U,fitViewQueued:O,zIndexMode:z,nodesSelectionActive:V}=_(),{nodesInitialized:b,hasSelectedNodes:J}=Gu(N,E,j,{nodeOrigin:k,nodeExtent:T,elevateNodesOnSelect:U,checkEquality:!0,zIndexMode:z}),G=V&&J;O&&b?(C(),w({nodes:N,nodesInitialized:b,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:G})):w({nodes:N,nodesInitialized:b,nodesSelectionActive:G})},setEdges:N=>{const{connectionLookup:E,edgeLookup:j}=_();mg(E,j,N),w({edges:N})},setDefaultNodesAndEdges:(N,E)=>{if(N){const{setNodes:j}=_();j(N),w({hasDefaultNodes:!0})}if(E){const{setEdges:j}=_();j(E),w({hasDefaultEdges:!0})}},updateNodeInternals:N=>{const{triggerNodeChanges:E,nodeLookup:j,parentLookup:k,domNode:T,nodeOrigin:U,nodeExtent:O,debug:z,fitViewQueued:V,zIndexMode:b}=_(),{changes:J,updatedInternals:G}=l1(N,j,k,T,U,O,b);G&&(r1(j,k,{nodeOrigin:U,nodeExtent:O,zIndexMode:b}),V?(C(),w({fitViewQueued:!1,fitViewOptions:void 0})):w({}),(J==null?void 0:J.length)>0&&(z&&console.log("React Flow: trigger node changes",J),E==null||E(J)))},updateNodePositions:(N,E=!1)=>{const j=[];let k=[];const{nodeLookup:T,triggerNodeChanges:U,connection:O,updateConnection:z,onNodesChangeMiddlewareMap:V}=_();for(const[b,J]of N){const G=T.get(b),ee=!!(G!=null&&G.expandParent&&(G!=null&&G.parentId)&&(J!=null&&J.position)),Z={id:b,type:"position",position:ee?{x:Math.max(0,J.position.x),y:Math.max(0,J.position.y)}:J.position,dragging:E};if(G&&O.inProgress&&O.fromNode.id===G.id){const M=Sr(G,O.fromHandle,ve.Left,!0);z({...O,from:M})}ee&&G.parentId&&j.push({id:b,parentId:G.parentId,rect:{...J.internals.positionAbsolute,width:J.measured.width??0,height:J.measured.height??0}}),k.push(Z)}if(j.length>0){const{parentLookup:b,nodeOrigin:J}=_(),G=xc(j,T,b,J);k.push(...G)}for(const b of V.values())k=b(k);U(k)},triggerNodeChanges:N=>{const{onNodesChange:E,setNodes:j,nodes:k,hasDefaultNodes:T,debug:U}=_();if(N!=null&&N.length){if(T){const O=u_(N,k);j(O)}U&&console.log("React Flow: trigger node changes",N),E==null||E(N)}},triggerEdgeChanges:N=>{const{onEdgesChange:E,setEdges:j,edges:k,hasDefaultEdges:T,debug:U}=_();if(N!=null&&N.length){if(T){const O=c_(N,k);j(O)}U&&console.log("React Flow: trigger edge changes",N),E==null||E(N)}},addSelectedNodes:N=>{const{multiSelectionActive:E,edgeLookup:j,nodeLookup:k,triggerNodeChanges:T,triggerEdgeChanges:U}=_();if(E){const O=N.map(z=>pr(z,!0));T(O);return}T(to(k,new Set([...N]),!0)),U(to(j))},addSelectedEdges:N=>{const{multiSelectionActive:E,edgeLookup:j,nodeLookup:k,triggerNodeChanges:T,triggerEdgeChanges:U}=_();if(E){const O=N.map(z=>pr(z,!0));U(O);return}U(to(j,new Set([...N]))),T(to(k,new Set,!0))},unselectNodesAndEdges:({nodes:N,edges:E}={})=>{const{edges:j,nodes:k,nodeLookup:T,triggerNodeChanges:U,triggerEdgeChanges:O}=_(),z=N||k,V=E||j,b=[];for(const G of z){if(!G.selected)continue;const ee=T.get(G.id);ee&&(ee.selected=!1),b.push(pr(G.id,!1))}const J=[];for(const G of V)G.selected&&J.push(pr(G.id,!1));U(b),O(J)},setMinZoom:N=>{const{panZoom:E,maxZoom:j}=_();E==null||E.setScaleExtent([N,j]),w({minZoom:N})},setMaxZoom:N=>{const{panZoom:E,minZoom:j}=_();E==null||E.setScaleExtent([j,N]),w({maxZoom:N})},setTranslateExtent:N=>{var E;(E=_().panZoom)==null||E.setTranslateExtent(N),w({translateExtent:N})},resetSelectedElements:()=>{const{edges:N,nodes:E,triggerNodeChanges:j,triggerEdgeChanges:k,elementsSelectable:T}=_();if(!T)return;const U=E.reduce((z,V)=>V.selected?[...z,pr(V.id,!1)]:z,[]),O=N.reduce((z,V)=>V.selected?[...z,pr(V.id,!1)]:z,[]);j(U),k(O)},setNodeExtent:N=>{const{nodes:E,nodeLookup:j,parentLookup:k,nodeOrigin:T,elevateNodesOnSelect:U,nodeExtent:O,zIndexMode:z}=_();N[0][0]===O[0][0]&&N[0][1]===O[0][1]&&N[1][0]===O[1][0]&&N[1][1]===O[1][1]||(Gu(E,j,k,{nodeOrigin:T,nodeExtent:N,elevateNodesOnSelect:U,checkEquality:!1,zIndexMode:z}),w({nodeExtent:N}))},panBy:N=>{const{transform:E,width:j,height:k,panZoom:T,translateExtent:U}=_();return a1({delta:N,panZoom:T,transform:E,translateExtent:U,width:j,height:k})},setCenter:async(N,E,j)=>{const{width:k,height:T,maxZoom:U,panZoom:O}=_();if(!O)return!1;const z=typeof(j==null?void 0:j.zoom)<"u"?j.zoom:U;return await O.setViewport({x:k/2-N*z,y:T/2-E*z,zoom:z},{duration:j==null?void 0:j.duration,ease:j==null?void 0:j.ease,interpolate:j==null?void 0:j.interpolate}),!0},cancelConnection:()=>{w({connection:{...qp}})},updateConnection:N=>{w({connection:N})},reset:()=>w({...lp()})}},Object.is);function rm({initialNodes:t,initialEdges:r,defaultNodes:i,defaultEdges:l,initialWidth:a,initialHeight:u,initialMinZoom:c,initialMaxZoom:d,initialFitViewOptions:p,fitView:g,nodeOrigin:v,nodeExtent:y,zIndexMode:m,children:w}){const[_]=F.useState(()=>TS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:g,minZoom:c,maxZoom:d,fitViewOptions:p,nodeOrigin:v,nodeExtent:y,zIndexMode:m}));return S.jsx(V1,{value:_,children:S.jsx(g_,{children:S.jsx(T_,{children:w})})})}function IS({children:t,nodes:r,edges:i,defaultNodes:l,defaultEdges:a,width:u,height:c,fitView:d,fitViewOptions:p,minZoom:g,maxZoom:v,nodeOrigin:y,nodeExtent:m,zIndexMode:w}){return F.useContext(El)?S.jsx(S.Fragment,{children:t}):S.jsx(rm,{initialNodes:r,initialEdges:i,defaultNodes:l,defaultEdges:a,initialWidth:u,initialHeight:c,fitView:d,initialFitViewOptions:p,initialMinZoom:g,initialMaxZoom:v,nodeOrigin:y,nodeExtent:m,zIndexMode:w,children:t})}const zS={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function LS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,className:a,nodeTypes:u,edgeTypes:c,onNodeClick:d,onEdgeClick:p,onInit:g,onMove:v,onMoveStart:y,onMoveEnd:m,onConnect:w,onConnectStart:_,onConnectEnd:C,onClickConnectStart:N,onClickConnectEnd:E,onNodeMouseEnter:j,onNodeMouseMove:k,onNodeMouseLeave:T,onNodeContextMenu:U,onNodeDoubleClick:O,onNodeDragStart:z,onNodeDrag:V,onNodeDragStop:b,onNodesDelete:J,onEdgesDelete:G,onDelete:ee,onSelectionChange:Z,onSelectionDragStart:M,onSelectionDrag:$,onSelectionDragStop:W,onSelectionContextMenu:Y,onSelectionStart:D,onSelectionEnd:A,onBeforeDelete:B,connectionMode:P,connectionLineType:L=Wn.Bezier,connectionLineStyle:re,connectionLineComponent:ie,connectionLineContainerStyle:ce,deleteKeyCode:te="Backspace",selectionKeyCode:ne="Shift",selectionOnDrag:Q=!1,selectionMode:oe=pi.Full,panActivationKeyCode:he="Space",multiSelectionKeyCode:xe=mi()?"Meta":"Control",zoomActivationKeyCode:ye=mi()?"Meta":"Control",snapToGrid:we,snapGrid:ke,onlyRenderVisibleElements:Ne=!1,selectNodesOnDrag:Me,nodesDraggable:Ie,autoPanOnNodeFocus:lt,nodesConnectable:ct,nodesFocusable:tt,nodeOrigin:nt=jg,edgesFocusable:ln,edgesReconnectable:Qt,elementsSelectable:Gt=!0,defaultViewport:ft=n_,minZoom:Pt=.5,maxZoom:xt=2,translateExtent:jt=hi,preventScrolling:Er=!0,nodeExtent:an,defaultMarkerColor:Qn="#b1b1b7",zoomOnScroll:Pl=!0,zoomOnPinch:Ci=!0,panOnScroll:Mi=!1,panOnScrollSpeed:jl=.5,panOnScrollMode:fo=yr.Free,zoomOnDoubleClick:ho=!0,panOnDrag:po=!0,onPaneClick:go,onPaneMouseEnter:mo,onPaneMouseMove:_n,onPaneMouseLeave:Sn,onPaneScroll:Pi,onPaneContextMenu:ji,paneClickDistance:Ti=1,nodeClickDistance:Ii=0,children:zi,onReconnect:yo,onReconnectStart:Li,onReconnectEnd:Gn,onEdgeContextMenu:vo,onEdgeDoubleClick:qn,onEdgeMouseEnter:Tl,onEdgeMouseMove:Zn,onEdgeMouseLeave:Nr,reconnectRadius:Cr=10,onNodesChange:xo,onEdgesChange:Il,noDragClassName:zl="nodrag",noWheelClassName:Ll="nowheel",noPanClassName:qt="nopan",fitView:wo,fitViewOptions:_o,connectOnClick:Rl,attributionPosition:Ri,proOptions:Ai,defaultEdgeOptions:Di,elevateNodesOnSelect:$i=!0,elevateEdgesOnSelect:Al=!1,disableKeyboardA11y:bi=!1,autoPanOnConnect:be,autoPanOnNodeDrag:Dl,autoPanOnSelection:So=!0,autoPanSpeed:Oi,connectionRadius:Mr,isValidConnection:$l,onError:Fi,style:Pr,id:wt,nodeDragThreshold:bl,connectionDragThreshold:_t,viewport:Ol,onViewportChange:Fl,width:Hl,height:jr,colorMode:Tr="light",debug:Jn,onScroll:un,ariaLabelConfig:Bl,zIndexMode:Hi="basic",...ko},Bi){const er=wt||"1",tr=s_(Tr),Vl=F.useCallback(Ir=>{Ir.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),un==null||un(Ir)},[un]);return S.jsx("div",{"data-testid":"rf__wrapper",...ko,onScroll:Vl,style:{...Pr,...zS},ref:Bi,className:Ye(["react-flow",a,tr]),id:wt,role:"application",children:S.jsxs(IS,{nodes:t,edges:r,width:Hl,height:jr,fitView:wo,fitViewOptions:_o,minZoom:Pt,maxZoom:xt,nodeOrigin:nt,nodeExtent:an,zIndexMode:Hi,children:[S.jsx(i_,{nodes:t,edges:r,defaultNodes:i,defaultEdges:l,onConnect:w,onConnectStart:_,onConnectEnd:C,onClickConnectStart:N,onClickConnectEnd:E,nodesDraggable:Ie,autoPanOnNodeFocus:lt,nodesConnectable:ct,nodesFocusable:tt,edgesFocusable:ln,edgesReconnectable:Qt,elementsSelectable:Gt,elevateNodesOnSelect:$i,elevateEdgesOnSelect:Al,minZoom:Pt,maxZoom:xt,nodeExtent:an,onNodesChange:xo,onEdgesChange:Il,snapToGrid:we,snapGrid:ke,connectionMode:P,translateExtent:jt,connectOnClick:Rl,defaultEdgeOptions:Di,fitView:wo,fitViewOptions:_o,onNodesDelete:J,onEdgesDelete:G,onDelete:ee,onNodeDragStart:z,onNodeDrag:V,onNodeDragStop:b,onSelectionDrag:$,onSelectionDragStart:M,onSelectionDragStop:W,onMove:v,onMoveStart:y,onMoveEnd:m,noPanClassName:qt,nodeOrigin:nt,rfId:er,autoPanOnConnect:be,autoPanOnNodeDrag:Dl,autoPanSpeed:Oi,onError:Fi,connectionRadius:Mr,isValidConnection:$l,selectNodesOnDrag:Me,nodeDragThreshold:bl,connectionDragThreshold:_t,onBeforeDelete:B,debug:Jn,ariaLabelConfig:Bl,zIndexMode:Hi}),S.jsx(PS,{onInit:g,onNodeClick:d,onEdgeClick:p,onNodeMouseEnter:j,onNodeMouseMove:k,onNodeMouseLeave:T,onNodeContextMenu:U,onNodeDoubleClick:O,nodeTypes:u,edgeTypes:c,connectionLineType:L,connectionLineStyle:re,connectionLineComponent:ie,connectionLineContainerStyle:ce,selectionKeyCode:ne,selectionOnDrag:Q,selectionMode:oe,deleteKeyCode:te,multiSelectionKeyCode:xe,panActivationKeyCode:he,zoomActivationKeyCode:ye,onlyRenderVisibleElements:Ne,defaultViewport:ft,translateExtent:jt,minZoom:Pt,maxZoom:xt,preventScrolling:Er,zoomOnScroll:Pl,zoomOnPinch:Ci,zoomOnDoubleClick:ho,panOnScroll:Mi,panOnScrollSpeed:jl,panOnScrollMode:fo,panOnDrag:po,autoPanOnSelection:So,onPaneClick:go,onPaneMouseEnter:mo,onPaneMouseMove:_n,onPaneMouseLeave:Sn,onPaneScroll:Pi,onPaneContextMenu:ji,paneClickDistance:Ti,nodeClickDistance:Ii,onSelectionContextMenu:Y,onSelectionStart:D,onSelectionEnd:A,onReconnect:yo,onReconnectStart:Li,onReconnectEnd:Gn,onEdgeContextMenu:vo,onEdgeDoubleClick:qn,onEdgeMouseEnter:Tl,onEdgeMouseMove:Zn,onEdgeMouseLeave:Nr,reconnectRadius:Cr,defaultMarkerColor:Qn,noDragClassName:zl,noWheelClassName:Ll,noPanClassName:qt,rfId:er,disableKeyboardA11y:bi,nodeExtent:an,viewport:Ol,onViewportChange:Fl,nodesDraggable:Ie}),S.jsx(t_,{onSelectionChange:Z}),zi,S.jsx(G1,{proOptions:Ai,position:Ri}),S.jsx(Q1,{rfId:er,disableKeyboardA11y:bi})]})})}var RS=Ig(LS);function AS({dimensions:t,lineWidth:r,variant:i,className:l}){return S.jsx("path",{strokeWidth:r,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`,className:Ye(["react-flow__background-pattern",i,l])})}function DS({radius:t,className:r}){return S.jsx("circle",{cx:t,cy:t,r:t,className:Ye(["react-flow__background-pattern","dots",r])})}var Xn;(function(t){t.Lines="lines",t.Dots="dots",t.Cross="cross"})(Xn||(Xn={}));const $S={[Xn.Dots]:1,[Xn.Lines]:1,[Xn.Cross]:6},bS=t=>({transform:t.transform,patternId:`pattern-${t.rfId}`});function om({id:t,variant:r=Xn.Dots,gap:i=20,size:l,lineWidth:a=1,offset:u=0,color:c,bgColor:d,style:p,className:g,patternClassName:v}){const y=F.useRef(null),{transform:m,patternId:w}=je(bS,Be),_=l||$S[r],C=r===Xn.Dots,N=r===Xn.Cross,E=Array.isArray(i)?i:[i,i],j=[E[0]*m[2]||1,E[1]*m[2]||1],k=_*m[2],T=Array.isArray(u)?u:[u,u],U=N?[k,k]:j,O=[T[0]*m[2]+U[0]/2,T[1]*m[2]+U[1]/2],z=`${w}${t||""}`;return S.jsxs("svg",{className:Ye(["react-flow__background",g]),style:{...p,...Cl,"--xy-background-color-props":d,"--xy-background-pattern-color-props":c},ref:y,"data-testid":"rf__background",children:[S.jsx("pattern",{id:z,x:m[0]%j[0],y:m[1]%j[1],width:j[0],height:j[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${O[0]},-${O[1]})`,children:C?S.jsx(DS,{radius:k/2,className:v}):S.jsx(AS,{dimensions:U,lineWidth:a,variant:r,className:v})}),S.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${z})`})]})}om.displayName="Background";const OS=F.memo(om);function FS(){return S.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:S.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function HS(){return S.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:S.jsx("path",{d:"M0 0h32v4.2H0z"})})}function BS(){return S.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:S.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function VS(){return S.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:S.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function US(){return S.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:S.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Zs({children:t,className:r,...i}){return S.jsx("button",{type:"button",className:Ye(["react-flow__controls-button",r]),...i,children:t})}const WS=t=>({isInteractive:t.nodesDraggable||t.nodesConnectable||t.elementsSelectable,minZoomReached:t.transform[2]<=t.minZoom,maxZoomReached:t.transform[2]>=t.maxZoom,ariaLabelConfig:t.ariaLabelConfig});function im({style:t,showZoom:r=!0,showFitView:i=!0,showInteractive:l=!0,fitViewOptions:a,onZoomIn:u,onZoomOut:c,onFitView:d,onInteractiveChange:p,className:g,children:v,position:y="bottom-left",orientation:m="vertical","aria-label":w}){const _=De(),{isInteractive:C,minZoomReached:N,maxZoomReached:E,ariaLabelConfig:j}=je(WS,Be),{zoomIn:k,zoomOut:T,fitView:U}=Nl(),O=()=>{k(),u==null||u()},z=()=>{T(),c==null||c()},V=()=>{U(a),d==null||d()},b=()=>{_.setState({nodesDraggable:!C,nodesConnectable:!C,elementsSelectable:!C}),p==null||p(!C)},J=m==="horizontal"?"horizontal":"vertical";return S.jsxs(Ni,{className:Ye(["react-flow__controls",J,g]),position:y,style:t,"data-testid":"rf__controls","aria-label":w??j["controls.ariaLabel"],children:[r&&S.jsxs(S.Fragment,{children:[S.jsx(Zs,{onClick:O,className:"react-flow__controls-zoomin",title:j["controls.zoomIn.ariaLabel"],"aria-label":j["controls.zoomIn.ariaLabel"],disabled:E,children:S.jsx(FS,{})}),S.jsx(Zs,{onClick:z,className:"react-flow__controls-zoomout",title:j["controls.zoomOut.ariaLabel"],"aria-label":j["controls.zoomOut.ariaLabel"],disabled:N,children:S.jsx(HS,{})})]}),i&&S.jsx(Zs,{className:"react-flow__controls-fitview",onClick:V,title:j["controls.fitView.ariaLabel"],"aria-label":j["controls.fitView.ariaLabel"],children:S.jsx(BS,{})}),l&&S.jsx(Zs,{className:"react-flow__controls-interactive",onClick:b,title:j["controls.interactive.ariaLabel"],"aria-label":j["controls.interactive.ariaLabel"],children:C?S.jsx(US,{}):S.jsx(VS,{})}),v]})}im.displayName="Controls";const YS=F.memo(im);function XS({id:t,x:r,y:i,width:l,height:a,style:u,color:c,strokeColor:d,strokeWidth:p,className:g,borderRadius:v,shapeRendering:y,selected:m,onClick:w}){const{background:_,backgroundColor:C}=u||{},N=c||_||C;return S.jsx("rect",{className:Ye(["react-flow__minimap-node",{selected:m},g]),x:r,y:i,rx:v,ry:v,width:l,height:a,style:{fill:N,stroke:d,strokeWidth:p},shapeRendering:y,onClick:w?E=>w(E,t):void 0})}const KS=F.memo(XS),QS=t=>t.nodes.map(r=>r.id),$u=t=>t instanceof Function?t:()=>t;function GS({nodeStrokeColor:t,nodeColor:r,nodeClassName:i="",nodeBorderRadius:l=5,nodeStrokeWidth:a,nodeComponent:u=KS,onClick:c}){const d=je(QS,Be),p=$u(r),g=$u(t),v=$u(i),y=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return S.jsx(S.Fragment,{children:d.map(m=>S.jsx(ZS,{id:m,nodeColorFunc:p,nodeStrokeColorFunc:g,nodeClassNameFunc:v,nodeBorderRadius:l,nodeStrokeWidth:a,NodeComponent:u,onClick:c,shapeRendering:y},m))})}function qS({id:t,nodeColorFunc:r,nodeStrokeColorFunc:i,nodeClassNameFunc:l,nodeBorderRadius:a,nodeStrokeWidth:u,shapeRendering:c,NodeComponent:d,onClick:p}){const{node:g,x:v,y,width:m,height:w}=je(_=>{const C=_.nodeLookup.get(t);if(!C)return{node:void 0,x:0,y:0,width:0,height:0};const N=C.internals.userNode,{x:E,y:j}=C.internals.positionAbsolute,{width:k,height:T}=Kt(N);return{node:N,x:E,y:j,width:k,height:T}},Be);return!g||g.hidden||!og(g)?null:S.jsx(d,{x:v,y,width:m,height:w,style:g.style,selected:!!g.selected,className:l(g),color:r(g),borderRadius:a,strokeColor:i(g),strokeWidth:u,shapeRendering:c,onClick:p,id:g.id})}const ZS=F.memo(qS);var JS=F.memo(GS);const ek=200,tk=150,nk=t=>!t.hidden,rk=t=>{const r={x:-t.transform[0]/t.transform[2],y:-t.transform[1]/t.transform[2],width:t.width/t.transform[2],height:t.height/t.transform[2]};let i=!1;for(const l of t.nodeLookup.values())if(!l.hidden){i=!0;break}return{viewBB:r,boundingRect:i?tg(Si(t.nodeLookup,{filter:nk}),r):r,rfId:t.rfId,panZoom:t.panZoom,translateExtent:t.translateExtent,flowWidth:t.width,flowHeight:t.height,ariaLabelConfig:t.ariaLabelConfig}},ap=(t,r)=>t.x===r.x&&t.y===r.y&&t.width===r.width&&t.height===r.height,ok=(t,r)=>ap(t.viewBB,r.viewBB)&&ap(t.boundingRect,r.boundingRect)&&t.rfId===r.rfId&&t.panZoom===r.panZoom&&t.translateExtent===r.translateExtent&&t.flowWidth===r.flowWidth&&t.flowHeight===r.flowHeight&&t.ariaLabelConfig===r.ariaLabelConfig,ik="react-flow__minimap-desc";function sm({style:t,className:r,nodeStrokeColor:i,nodeColor:l,nodeClassName:a="",nodeBorderRadius:u=5,nodeStrokeWidth:c,nodeComponent:d,bgColor:p,maskColor:g,maskStrokeColor:v,maskStrokeWidth:y,position:m="bottom-right",onClick:w,onNodeClick:_,pannable:C=!1,zoomable:N=!1,ariaLabel:E,inversePan:j,zoomStep:k=1,offsetScale:T=5}){const U=De(),O=F.useRef(null),{boundingRect:z,panZoom:V,viewBB:b,rfId:J,translateExtent:G,flowWidth:ee,flowHeight:Z,ariaLabelConfig:M}=je(rk,ok),$=(t==null?void 0:t.width)??ek,W=(t==null?void 0:t.height)??tk,Y=z.width/$,D=z.height/W,A=Math.max(Y,D),B=A*$,P=A*W,L=T*A,re=z.x-(B-z.width)/2-L,ie=z.y-(P-z.height)/2-L,ce=B+L*2,te=P+L*2,ne=`${ik}-${J}`,Q=F.useRef(0),oe=F.useRef();Q.current=A,F.useEffect(()=>{const ke=U.getState().panZoom;if(O.current&&ke)return oe.current=y1({domNode:O.current,panZoom:ke,getTransform:()=>U.getState().transform,getViewScale:()=>Q.current}),()=>{var Ne;(Ne=oe.current)==null||Ne.destroy()}},[V]),F.useEffect(()=>{var ke;(ke=oe.current)==null||ke.update({translateExtent:G,width:ee,height:Z,inversePan:j,pannable:C,zoomStep:k,zoomable:N})},[C,N,j,k,G,ee,Z]);const he=w?ke=>{var Ie;const[Ne,Me]=((Ie=oe.current)==null?void 0:Ie.pointer(ke))||[0,0];w(ke,{x:Ne,y:Me})}:void 0,xe=F.useCallback((ke,Ne)=>{const Me=U.getState().nodeLookup.get(Ne).internals.userNode;_==null||_(ke,Me)},[_]),ye=_?xe:void 0,we=E??M["minimap.ariaLabel"];return S.jsx(Ni,{position:m,style:{...t,"--xy-minimap-background-color-props":typeof p=="string"?p:void 0,"--xy-minimap-mask-background-color-props":typeof g=="string"?g:void 0,"--xy-minimap-mask-stroke-color-props":typeof v=="string"?v:void 0,"--xy-minimap-mask-stroke-width-props":typeof y=="number"?y*A:void 0,"--xy-minimap-node-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-node-stroke-color-props":typeof i=="string"?i:void 0,"--xy-minimap-node-stroke-width-props":typeof c=="number"?c:void 0},className:Ye(["react-flow__minimap",r]),"data-testid":"rf__minimap",children:S.jsxs("svg",{width:$,height:W,viewBox:`${re} ${ie} ${ce} ${te}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":ne,ref:O,onClick:he,children:[we&&S.jsx("title",{id:ne,children:we}),S.jsx(JS,{onClick:ye,nodeColor:l,nodeStrokeColor:i,nodeBorderRadius:u,nodeClassName:a,nodeStrokeWidth:c,nodeComponent:d}),S.jsx("path",{className:"react-flow__minimap-mask",d:`M${re-L},${ie-L}h${ce+L*2}v${te+L*2}h${-ce-L*2}z
+ M${b.x},${b.y}h${b.width}v${b.height}h${-b.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}sm.displayName="MiniMap";const sk=F.memo(sm),lk=t=>r=>t?`${Math.max(1/r.transform[2],1)}`:void 0,ak={[uo.Line]:"right",[uo.Handle]:"bottom-right"};function uk({nodeId:t,position:r,variant:i=uo.Handle,className:l,style:a=void 0,children:u,color:c,minWidth:d=10,minHeight:p=10,maxWidth:g=Number.MAX_VALUE,maxHeight:v=Number.MAX_VALUE,keepAspectRatio:y=!1,resizeDirection:m,autoScale:w=!0,shouldResize:_,onResizeStart:C,onResize:N,onResizeEnd:E}){const j=Dg(),k=typeof t=="string"?t:j,T=De(),U=F.useRef(null),O=i===uo.Handle,z=je(F.useCallback(lk(O&&w),[O,w]),Be),V=F.useRef(null),b=r??ak[i];F.useEffect(()=>{if(!(!U.current||!k))return V.current||(V.current=T1({domNode:U.current,nodeId:k,getStoreItems:()=>{const{nodeLookup:G,transform:ee,snapGrid:Z,snapToGrid:M,nodeOrigin:$,domNode:W}=T.getState();return{nodeLookup:G,transform:ee,snapGrid:Z,snapToGrid:M,nodeOrigin:$,paneDomNode:W}},onChange:(G,ee)=>{const{triggerNodeChanges:Z,nodeLookup:M,parentLookup:$,nodeOrigin:W}=T.getState(),Y=[],D={x:G.x,y:G.y},A=M.get(k);if(A&&A.expandParent&&A.parentId){const B=A.origin??W,P=G.width??A.measured.width??0,L=G.height??A.measured.height??0,re={id:A.id,parentId:A.parentId,rect:{width:P,height:L,...ig({x:G.x??A.position.x,y:G.y??A.position.y},{width:P,height:L},A.parentId,M,B)}},ie=xc([re],M,$,W);Y.push(...ie),D.x=G.x?Math.max(B[0]*P,G.x):void 0,D.y=G.y?Math.max(B[1]*L,G.y):void 0}if(D.x!==void 0&&D.y!==void 0){const B={id:k,type:"position",position:{...D}};Y.push(B)}if(G.width!==void 0&&G.height!==void 0){const P={id:k,type:"dimensions",resizing:!0,setAttributes:m?m==="horizontal"?"width":"height":!0,dimensions:{width:G.width,height:G.height}};Y.push(P)}for(const B of ee){const P={...B,type:"position"};Y.push(P)}Z(Y)},onEnd:({width:G,height:ee})=>{const Z={id:k,type:"dimensions",resizing:!1,dimensions:{width:G,height:ee}};T.getState().triggerNodeChanges([Z])}})),V.current.update({controlPosition:b,boundaries:{minWidth:d,minHeight:p,maxWidth:g,maxHeight:v},keepAspectRatio:y,resizeDirection:m,onResizeStart:C,onResize:N,onResizeEnd:E,shouldResize:_}),()=>{var G;(G=V.current)==null||G.destroy()}},[b,d,p,g,v,y,C,N,E,_]);const J=b.split("-");return S.jsx("div",{className:Ye(["react-flow__resize-control","nodrag",...J,i,l]),ref:U,style:{...a,scale:z,...c&&{[O?"backgroundColor":"borderColor"]:c}},children:u})}F.memo(uk);const up=40,cp=180,ck=0;function fk(t,r,i={}){var u,c;const l={};let a=0;for(const d of t){if(i[d]){l[d]=i[d];const p=((u=r.get(d))==null?void 0:u.height)??cp;a=Math.max(a,i[d].y+p+up);continue}l[d]={x:ck,y:a},a+=(((c=r.get(d))==null?void 0:c.height)??cp)+up}return l}function dk(t,r){return t.condition_kinds.find(i=>i.kind===r)}function kr(t,r){return r==="sv"?t.label_sv:t.label_en}function hk({label:t,value:r,onChange:i}){const[l,a]=F.useState([]),[u,c]=F.useState(!1),[d,p]=F.useState(null),g=()=>He.listDesktopImages().then(a).catch(()=>{});F.useEffect(()=>{g()},[]);async function v(){const m=r.replace(/\.png$/i,"")||`bild ${l.length+1}`,w=window.prompt("Namn på referensbilden:",m);if(w!==null){c(!0),p(null);try{const _=await He.captureDesktopImage(w.trim());i(_.name),await g()}catch(_){p(_ instanceof Kn?String(_.detail):String(_))}finally{c(!1)}}}const y=r&&l.includes(r);return S.jsxs("label",{className:"field image-field",children:[S.jsx("span",{children:t}),S.jsxs("div",{className:"image-field-row",children:[S.jsx("input",{type:"text",list:"desktop-images",value:r??"",placeholder:"filnamn.png",onChange:m=>i(m.target.value)}),S.jsx("datalist",{id:"desktop-images",children:l.map(m=>S.jsx("option",{value:m},m))}),S.jsx("button",{type:"button",className:"secondary tiny",disabled:u,onClick:v,children:u?"…":"📷 Fånga"})]}),y&&S.jsx("img",{className:"image-field-preview",src:He.desktopImageUrl(r),alt:r}),d&&S.jsx("span",{className:"assist-msg error",children:d})]})}function lm({values:t,fields:r,lang:i,showScope:l,onChange:a}){const u=r.filter(c=>c.kind==="field_list"?!1:c.key==="scope"?!!l:!0);return u.length===0?null:S.jsx("div",{className:"fields",children:u.map(c=>S.jsx(pk,{field:c,value:t[c.key],lang:i,onChange:d=>a({[c.key]:d})},c.key))})}function pk({field:t,value:r,lang:i,onChange:l}){var d;const a=kr(t,i),u=t.help??a;if(t.kind==="image")return S.jsx(hk,{label:a,value:String(r??""),onChange:l});let c;return t.kind==="select"?c=S.jsx("select",{value:String(r??t.default??((d=t.options)==null?void 0:d[0])??""),title:u,onChange:p=>l(p.target.value),children:(t.options??[]).map(p=>S.jsx("option",{value:p,children:p===""?"—":p},p))}):t.kind==="bool"?c=S.jsx("input",{type:"checkbox",checked:r===!0||r==="true",title:u,onChange:p=>l(p.target.checked)}):t.kind==="number"?c=S.jsx("input",{type:"number",value:r==null?"":String(r),title:u,onChange:p=>l(p.target.value===""?void 0:Number(p.target.value))}):c=S.jsx("input",{type:"text",value:r==null?"":String(r),title:u,onChange:p=>l(p.target.value)}),S.jsxs("label",{className:"field"+(t.kind==="bool"?" field-bool":""),children:[S.jsx("span",{children:a}),c]})}function gk({condition:t,schema:r,lang:i,t:l,showScope:a,onChange:u}){const c=dk(r,t.kind);return S.jsxs("div",{className:"condition",children:[S.jsxs("label",{className:"field",children:[S.jsx("span",{children:l("condition")}),S.jsx("select",{value:t.kind,onChange:d=>u({kind:d.target.value}),children:r.condition_kinds.map(d=>S.jsx("option",{value:d.kind,children:kr(d,i)},d.kind))})]}),c&&S.jsx(lm,{values:t,fields:c.fields,lang:i,showScope:a,onChange:d=>u({...t,...d})})]})}function mk({fields:t,t:r,onChange:i}){const l=(a,u)=>i(t.map((c,d)=>d===a?{...c,...u}:c));return S.jsxs("div",{className:"row-fields",children:[t.map((a,u)=>S.jsxs("div",{className:"row-field",children:[S.jsxs("div",{className:"row-field-head",children:[S.jsx("input",{type:"text",placeholder:r("column_name"),value:a.name,onChange:c=>l(u,{name:c.target.value})}),S.jsx("button",{className:"danger",onClick:()=>i(t.filter((c,d)=>d!==u)),children:r("remove")})]}),S.jsxs("div",{className:"fields",children:[S.jsxs("label",{className:"field",children:[S.jsx("span",{children:"by"}),S.jsx("select",{value:a.by??"css",onChange:c=>l(u,{by:c.target.value}),children:["text","css","role"].map(c=>S.jsx("option",{children:c},c))})]}),S.jsxs("label",{className:"field",children:[S.jsx("span",{children:"value"}),S.jsx("input",{type:"text",value:a.value??"",onChange:c=>l(u,{value:c.target.value})})]}),S.jsxs("label",{className:"field",children:[S.jsx("span",{children:"role"}),S.jsx("input",{type:"text",value:a.role??"",onChange:c=>l(u,{role:c.target.value})})]})]})]},u)),S.jsx("button",{className:"secondary",onClick:()=>i([...t,{name:"",by:"css",value:""}]),children:r("add_field")})]})}function Ju({steps:t,schema:r,lang:i,t:l,inLoop:a,onChange:u}){const c=()=>u([...t,Yn(r,"click")]);return S.jsxs("div",{className:"nested-steps",children:[t.map((d,p)=>S.jsxs("div",{className:"mini-card"+(d.enabled===!1?" disabled":""),children:[S.jsxs("div",{className:"mini-head",children:[S.jsx("input",{type:"checkbox",checked:d.enabled!==!1,title:l("enabled_title"),onChange:g=>u(ni(t,p,{...d,enabled:g.target.checked?void 0:!1}))}),S.jsx("select",{value:d.type,onChange:g=>u(ni(t,p,mp(r,d,g.target.value))),children:r.step_types.map(g=>S.jsx("option",{value:g.type,children:kr(g,i)},g.type))}),S.jsx("input",{type:"text",className:"label-input",placeholder:l("label_ph"),value:d.label??"",onChange:g=>u(ni(t,p,{...d,label:g.target.value||void 0}))}),S.jsxs("select",{value:d.on_error==="continue"?"continue":"stop",onChange:g=>u(ni(t,p,{...d,on_error:g.target.value==="continue"?"continue":void 0})),children:[S.jsx("option",{value:"stop",children:l("on_error_stop")}),S.jsx("option",{value:"continue",children:l("on_error_continue")})]}),S.jsx("span",{className:"spacer"}),S.jsx("button",{className:"icon",title:l("move_up"),disabled:p===0,onClick:()=>u(bu(t,p,p-1)),children:"↑"}),S.jsx("button",{className:"icon",title:l("move_down"),disabled:p===t.length-1,onClick:()=>u(bu(t,p,p+1)),children:"↓"}),S.jsx("button",{className:"danger",onClick:()=>u(vp(t,p)),children:l("remove")})]}),S.jsx(am,{step:d,schema:r,lang:i,t:l,inLoop:a||d.type==="loop",onChange:g=>u(ni(t,p,g))}),S.jsx("button",{className:"secondary tiny",onClick:()=>u(yp(t,p+1,Yn(r,"click"))),children:"+"})]},d.id??p)),S.jsx("button",{className:"secondary",onClick:c,children:l("add_step_in")})]})}function am({step:t,schema:r,lang:i,t:l,inLoop:a,onChange:u}){const c=r.step_types.find(g=>g.type===t.type);if(!c)return S.jsxs("div",{className:"hint",children:["Okänd stegtyp: ",t.type]});const d=g=>{const v={...t};for(const[y,m]of Object.entries(g))m===void 0||m===""?delete v[y]:v[y]=m;u(v)},p=a||t.type==="loop"||t.type==="extract_row";return S.jsxs(S.Fragment,{children:[S.jsx(lm,{values:t,fields:c.fields,lang:i,showScope:p,onChange:d}),t.type==="extract_row"&&S.jsx(mk,{fields:t.fields??[],lang:i,t:l,onChange:g=>u({...t,fields:g})}),t.type==="loop"&&S.jsx("div",{className:"nested","data-container-id":t.id,children:S.jsx(Ju,{steps:t.steps??[],schema:r,lang:i,t:l,inLoop:!0,onChange:g=>u({...t,steps:g})})}),t.type==="if"&&S.jsx(yk,{step:t,schema:r,lang:i,t:l,inLoop:a,onChange:u})]})}function yk({step:t,schema:r,lang:i,t:l,inLoop:a,onChange:u}){const c=t.branches??[{condition:{kind:"element_exists"},steps:[]}],d=(p,g)=>u({...t,branches:c.map((v,y)=>y===p?g:v)});return S.jsxs("div",{className:"nested",children:[c.map((p,g)=>S.jsxs("div",{className:"branch","data-container-id":t.id,"data-branch":g,children:[S.jsxs("div",{className:"branch-head",children:[S.jsx("strong",{children:l(g===0?"branch_if":"branch_else_if")}),g>0&&S.jsx("button",{className:"danger",onClick:()=>u({...t,branches:c.filter((v,y)=>y!==g)}),children:l("remove_branch")})]}),S.jsx(gk,{condition:p.condition,schema:r,lang:i,t:l,showScope:a,onChange:v=>d(g,{...p,condition:v})}),S.jsx(Ju,{steps:p.steps,schema:r,lang:i,t:l,inLoop:a,onChange:v=>d(g,{...p,steps:v})})]},g)),S.jsx("button",{className:"secondary",onClick:()=>u({...t,branches:[...c,Z0()]}),children:l("add_branch")}),S.jsxs("label",{className:"branch else-toggle",children:[S.jsx("input",{type:"checkbox",checked:Array.isArray(t.else),onChange:p=>u({...t,else:p.target.checked?[]:void 0})}),S.jsx("span",{children:l("else_toggle")})]}),Array.isArray(t.else)&&S.jsx("div",{className:"branch","data-container-id":t.id,"data-branch":"else",children:S.jsx(Ju,{steps:t.else,schema:r,lang:i,t:l,inLoop:a,onChange:p=>u({...t,else:p})})})]})}function vk({data:t}){const r=t,{step:i,schema:l,lang:a,t:u}=r,c=l.step_types.find(d=>d.type===i.type);return S.jsxs("div",{className:"step-node cat-"+((c==null?void 0:c.category)??"x")+(i.enabled===!1?" disabled":""),children:[S.jsx(co,{type:"target",position:ve.Top}),S.jsxs("div",{className:"node-head",children:[S.jsx("input",{type:"checkbox",className:"nodrag",checked:i.enabled!==!1,title:u("enabled_title"),onChange:d=>r.onChange({...i,enabled:d.target.checked?void 0:!1})}),S.jsx("select",{className:"nodrag type-select",value:i.type,onChange:d=>r.onChange(mp(l,i,d.target.value)),children:l.step_types.map(d=>S.jsx("option",{value:d.type,children:kr(d,a)},d.type))}),S.jsx("span",{className:"spacer"}),S.jsx("button",{className:"icon nodrag",title:u("move_up"),disabled:r.index===0,onClick:()=>r.onMove(-1),children:"↑"}),S.jsx("button",{className:"icon nodrag",title:u("move_down"),disabled:r.index===r.count-1,onClick:()=>r.onMove(1),children:"↓"}),S.jsx("button",{className:"danger nodrag",onClick:r.onDelete,children:"✕"})]}),S.jsxs("div",{className:"node-subhead",children:[S.jsx("input",{type:"text",className:"nodrag label-input",placeholder:u("label_ph"),value:i.label??"",onChange:d=>r.onChange({...i,label:d.target.value||void 0})}),S.jsxs("select",{className:"nodrag",value:i.on_error==="continue"?"continue":"stop",onChange:d=>r.onChange({...i,on_error:d.target.value==="continue"?"continue":void 0}),children:[S.jsx("option",{value:"stop",children:u("on_error_stop")}),S.jsx("option",{value:"continue",children:u("on_error_continue")})]})]}),S.jsx("div",{className:"node-body nodrag",children:S.jsx(am,{step:i,schema:l,lang:a,t:u,inLoop:!1,onChange:r.onChange})}),S.jsx("button",{className:"add-after nodrag",title:u("add_step_after"),onClick:r.onAddAfter,children:"+"}),S.jsx(co,{type:"source",position:ve.Bottom})]})}const ec="application/rpa-step",tc="application/rpa-block",xk=["navigation","interaction","data","control","files","desktop"],wk={navigation:{sv:"Navigering",en:"Navigation"},interaction:{sv:"Interaktion",en:"Interaction"},data:{sv:"Data / variabler",en:"Data / variables"},control:{sv:"Kontrollflöde",en:"Control flow"},files:{sv:"Filer",en:"Files"},desktop:{sv:"Desktop (Windows)",en:"Desktop (Windows)"}};function _k({schema:t,lang:r,t:i,blocksRefreshKey:l,onSaveSelectionAsBlock:a}){const[u,c]=F.useState("steps"),[d,p]=F.useState(""),[g,v]=F.useState(new Set),[y,m]=F.useState([]);F.useEffect(()=>{He.listBlocks().then(m).catch(()=>m([]))},[l]);const w=F.useMemo(()=>{var N;const _=d.trim().toLowerCase(),C={};for(const E of t.step_types){const j=kr(E,r).toLowerCase();_&&!j.includes(_)&&!E.type.includes(_)||(C[N=E.category]??(C[N]=[])).push(E)}return xk.filter(E=>{var j;return(j=C[E])==null?void 0:j.length}).map(E=>({cat:E,steps:C[E]}))},[t,r,d]);return S.jsxs("div",{className:"palette",children:[S.jsxs("div",{className:"palette-tabs",children:[S.jsx("button",{className:u==="steps"?"on":"",onClick:()=>c("steps"),children:i("palette")}),S.jsx("button",{className:u==="blocks"?"on":"",onClick:()=>c("blocks"),children:i("palette_blocks")})]}),u==="steps"&&S.jsxs(S.Fragment,{children:[S.jsx("input",{className:"palette-search",placeholder:i("palette_search"),value:d,onChange:_=>p(_.target.value)}),S.jsx("div",{className:"palette-scroll",children:w.map(({cat:_,steps:C})=>{var E;const N=g.has(_)&&!d;return S.jsxs("div",{className:"palette-group",children:[S.jsxs("button",{className:"palette-group-head",onClick:()=>v(j=>{const k=new Set(j);return k.has(_)?k.delete(_):k.add(_),k}),children:[N?"▸":"▾"," ",((E=wk[_])==null?void 0:E[r])??_]}),!N&&C.map(j=>S.jsx("div",{className:"palette-item cat-"+j.category,draggable:!0,title:j.help,onDragStart:k=>{k.dataTransfer.setData(ec,j.type),k.dataTransfer.effectAllowed="copy"},children:kr(j,r)},j.type))]},_)})})]}),u==="blocks"&&S.jsxs("div",{className:"palette-scroll",children:[S.jsx("button",{className:"secondary palette-save-block",onClick:a,children:i("block_save_selection")}),y.length===0&&S.jsx("p",{className:"hint",children:i("block_none")}),y.map(_=>S.jsxs("div",{className:"palette-block",draggable:!0,title:_.description,onDragStart:C=>{C.dataTransfer.setData(tc,_.name),C.dataTransfer.effectAllowed="copy"},children:[S.jsxs("div",{className:"palette-block-name",children:[_.name," ",_.builtin&&S.jsx("span",{className:"hint",children:"·"})]}),S.jsx("div",{className:"hint",children:_.description||`${_.step_count} steg`})]},_.name))]})]})}const Sk={step:vk};function kk(t){var i,l;let r=150;if(t.type==="loop"&&(r+=70+(((i=t.steps)==null?void 0:i.length)??0)*120),t.type==="if"){for(const a of t.branches??[])r+=150+a.steps.length*120;Array.isArray(t.else)&&(r+=90+t.else.length*120)}return t.type==="extract_row"&&(r+=60+(((l=t.fields)==null?void 0:l.length)??0)*130),r}function Ek(t){return S.jsx(rm,{children:S.jsx(Nk,{...t})})}function Nk({flow:t,schema:r,lang:i,t:l,onChange:a,onSelectionChange:u}){const c=Nl(),d=F.useRef(null),[p,g]=F.useState(()=>gp(t).nodes.map(z=>z.step)),[v,y]=F.useState(()=>({...t.layout??{}})),m=F.useRef(new Map),w=F.useRef(!0),_=F.useMemo(()=>{const z=new Map;for(const V of p)z.set(V.id,m.current.get(V.id)??{width:340,height:kk(V)});return fk(p.map(V=>V.id),z,v)},[p,v]);F.useEffect(()=>{if(w.current){w.current=!1;return}a({steps:p,layout:v})},[p,v,a]);const C=F.useCallback((z,V)=>g(b=>b.map(J=>J.id===z?V:J)),[]),N=F.useMemo(()=>p.map((z,V)=>({id:z.id,type:"step",position:_[z.id]??{x:0,y:V*200},data:{step:z,schema:r,lang:i,t:l,index:V,count:p.length,onChange:b=>C(z.id,b),onDelete:()=>g(b=>vp(b,b.findIndex(J=>J.id===z.id))),onMove:b=>g(J=>{const G=J.findIndex(ee=>ee.id===z.id);return bu(J,G,G+b)}),onAddAfter:()=>g(b=>{const J=b.findIndex(G=>G.id===z.id);return yp(b,J+1,Yn(r,"click"))})}})),[p,_,r,i,l,C]),E=F.useMemo(()=>{const z=[];for(let b=0;b<p.length-1;b++)z.push({id:`seq-${p[b].id}-${p[b+1].id}`,source:p[b].id,target:p[b+1].id});const V=new Map;for(const b of p)b.label&&V.set(b.label,b.id);for(const b of p)b.type==="jump_to_label"&&typeof b.target=="string"&&V.has(b.target)&&z.push({id:`jump-${b.id}`,source:b.id,target:V.get(b.target),style:{stroke:"#d1453b",strokeDasharray:"5 5"},label:"goto"});return z},[p]),j=F.useCallback(z=>{for(const V of z)V.type==="dimensions"&&V.dimensions&&m.current.set(V.id,{width:V.dimensions.width,height:V.dimensions.height});y(V=>{let b=V;for(const J of z)J.type==="position"&&J.position&&J.dragging&&(b===V&&(b={...V}),b[J.id]={x:Math.round(J.position.x),y:Math.round(J.position.y)});return b})},[]),k=F.useCallback(()=>{g(z=>[...z].sort((V,b)=>{var J,G;return(((J=_[V.id])==null?void 0:J.y)??0)-(((G=_[b.id])==null?void 0:G.y)??0)}))},[_]),T=F.useCallback(z=>{var V,b;if(z.dataTransfer.types.includes(ec)||z.dataTransfer.types.includes(tc)){z.preventDefault(),z.dataTransfer.dropEffect="copy";const J=(b=(V=z.target).closest)==null?void 0:b.call(V,"[data-container-id]");document.querySelectorAll(".drop-hover").forEach(G=>G!==J&&G.classList.remove("drop-hover")),J==null||J.classList.add("drop-hover")}},[]),U=()=>document.querySelectorAll(".drop-hover").forEach(z=>z.classList.remove("drop-hover")),O=F.useCallback(async z=>{var G,ee;z.preventDefault(),U();const V=z.dataTransfer.getData(ec),b=z.dataTransfer.getData(tc),J=(ee=(G=z.target).closest)==null?void 0:ee.call(G,"[data-container-id]");if(V){const Z=Yn(r,V);if(J){const M=J.getAttribute("data-container-id"),$=J.getAttribute("data-branch");g(W=>Js(W,M,$,Z)??[...W,Z])}else{const M=c.screenToFlowPosition({x:z.clientX,y:z.clientY});y($=>({...$,[Z.id]:{x:Math.round(M.x),y:Math.round(M.y)}})),g($=>[...$,Z])}return}if(b)try{const M=((await He.getBlock(b)).steps??[]).map($=>rn({...$}));g($=>[...$,...M])}catch{}},[r,c]);return S.jsx("div",{className:"canvas",ref:d,onDragOver:T,onDrop:O,onDragLeave:U,children:S.jsxs(RS,{nodes:N,edges:E,nodeTypes:Sk,onNodesChange:j,onNodeDragStop:k,onSelectionChange:({nodes:z})=>u(z.map(V=>V.id)),nodesConnectable:!1,fitView:!0,minZoom:.2,proOptions:{hideAttribution:!0},children:[S.jsx(OS,{}),S.jsx(sk,{pannable:!0,zoomable:!0}),S.jsx(YS,{}),S.jsxs(Ni,{position:"top-left",className:"canvas-panel",children:[S.jsx("button",{className:"secondary",onClick:()=>g(z=>[...z,Yn(r,"goto")]),children:l("add_step")}),S.jsx("button",{className:"secondary",onClick:()=>y({}),children:l("relayout")})]})]})})}function Ck({t,runId:r,run:i}){const l=F.useRef(null);F.useEffect(()=>{l.current&&(l.current.scrollTop=l.current.scrollHeight)},[i==null?void 0:i.logs]);const a=i==null?void 0:i.status;return S.jsxs("div",{className:"panel",children:[S.jsxs("div",{className:"panel-head",children:[S.jsx("strong",{children:t("run_log")}),a&&S.jsx("span",{className:"badge badge-"+a,children:t(a==="running"?"status_running":a==="done"?"status_done":"status_error")}),S.jsx("span",{className:"spacer"}),(i==null?void 0:i.browser_open)&&r&&S.jsx("button",{className:"secondary",onClick:()=>He.closeBrowser(r),children:t("close_browser")}),(i==null?void 0:i.trace_ready)&&r&&S.jsx("button",{className:"secondary",onClick:()=>He.showTrace(r),children:t("show_trace")})]}),S.jsx("pre",{className:"log",ref:l,children:((i==null?void 0:i.logs)??[]).join(`
+`)})]})}function Mk(t,r){return Array.isArray(r)?t("var_list",{n:r.length}):r&&typeof r=="object"?t("var_object"):typeof r=="string"?t("var_text",{n:r.length}):typeof r}function Pk({t,vars:r}){const[i,l]=F.useState(new Set),a=Object.keys(r??{});return S.jsxs("div",{className:"panel",children:[S.jsx("strong",{children:t("variables")}),S.jsx("p",{className:"hint",children:t("vars_hint")}),a.length===0&&S.jsx("p",{className:"hint",children:t("no_vars")}),a.map(u=>{const c=i.has(u),d=r[u];return S.jsxs("div",{className:"var-row",children:[S.jsxs("div",{className:"var-head",onClick:()=>l(p=>{const g=new Set(p);return g.has(u)?g.delete(u):g.add(u),g}),children:[u," ",S.jsxs("span",{className:"hint",children:["(",Mk(t,d),")"]})]}),c&&S.jsx("pre",{className:"var-value",children:typeof d=="string"?d:JSON.stringify(d,null,2)})]},u)})]})}function jk({t,currentName:r,flow:i,onApply:l}){const[a,u]=F.useState(""),[c,d]=F.useState(!1),[p,g]=F.useState(null);async function v(){if(!(!a.trim()||!r)){d(!0),g(null);try{const y=await He.assist(r,a.trim(),i);l({steps:y.steps,settings:y.settings,layout:{}}),g({text:t("assist_applied")+(y.explanation?`
+
+`+y.explanation:""),error:!1})}catch(y){if(y instanceof Kn&&y.status===501)g({text:t("assist_unavailable"),error:!0});else{const m=y instanceof Kn?String(y.detail):String(y);g({text:t("assist_failed",{msg:m}),error:!0})}}finally{d(!1)}}}return S.jsxs("div",{className:"panel",children:[S.jsx("strong",{children:t("assist_title")}),S.jsx("p",{className:"hint",children:t("assist_hint")}),S.jsx("textarea",{rows:3,placeholder:t("assist_ph"),value:a,onChange:y=>u(y.target.value)}),S.jsx("button",{onClick:v,disabled:c||!r,children:t(c?"assist_working":"assist_btn")}),p&&S.jsx("p",{className:"assist-msg"+(p.error?" error":""),children:p.text})]})}function Tk({open:t,schema:r,lang:i,t:l,settings:a,onClose:u,onSave:c}){const d=F.useRef(null);F.useEffect(()=>{const g=d.current;g&&(t&&!g.open&&g.showModal(),!t&&g.open&&g.close())},[t]);function p(g){g.preventDefault();const v=g.currentTarget,y={};for(const m of r.settings){const w=v.elements.namedItem(m.key);w&&(m.kind==="bool"?y[m.key]=w.checked:m.kind==="number"?y[m.key]=Number(w.value)||Number(m.default)||0:y[m.key]=w.value||String(m.default))}c(y)}return S.jsx("dialog",{ref:d,onClose:u,children:S.jsxs("form",{onSubmit:p,method:"dialog",children:[S.jsx("h2",{children:l("settings")}),S.jsx("p",{className:"hint",children:l("settings_hint")}),S.jsx("div",{className:"fields",children:r.settings.map(g=>S.jsxs("label",{className:"field"+(g.kind==="bool"?" field-bool":""),children:[S.jsx("span",{children:kr(g,i)}),g.kind==="bool"?S.jsx("input",{type:"checkbox",name:g.key,defaultChecked:a[g.key]===!0}):S.jsx("input",{type:g.kind==="number"?"number":"text",name:g.key,defaultValue:String(a[g.key]??g.default)})]},g.key))}),S.jsxs("div",{className:"dialog-actions",children:[S.jsx("button",{type:"button",className:"secondary",onClick:u,children:l("cancel")}),S.jsx("button",{type:"submit",children:l("save")})]})]})})}function Ik({open:t,t:r,onClose:i,onCreateStep:l}){const a=F.useRef(null),[u,c]=F.useState([]),[d,p]=F.useState(""),[g,v]=F.useState([]),[y,m]=F.useState(null),[w,_]=F.useState(!1);F.useEffect(()=>{const j=a.current;j&&(t&&!j.open&&(j.showModal(),m(null),v([]),He.desktopWindows().then(k=>{c(k),k.length&&p(k[0])}).catch(k=>m(k instanceof Kn&&k.status===501?r("inspect_unavailable"):String(k)))),!t&&j.open&&j.close())},[t,r]);async function C(){if(d){_(!0),m(null);try{v(await He.inspectWindow(d))}catch(j){m(j instanceof Kn?String(j.detail):String(j))}finally{_(!1)}}}function N(j){return j.auto_id?{by:"auto_id",value:j.auto_id}:j.name?{by:"name",value:j.name}:j.class_name?{by:"class_name",value:j.class_name}:{by:"name",value:""}}function E(j,k){const T=N(j),U={type:k,id:nc(),by:T.by,value:T.value};j.control_type&&(U.control_type=j.control_type),k==="desktop_type"&&(U.text=""),l(U)}return S.jsxs("dialog",{ref:a,onClose:i,className:"inspect-dialog",children:[S.jsx("h2",{children:r("inspect_window")}),S.jsx("p",{className:"hint",children:r("inspect_hint")}),S.jsxs("div",{className:"inspect-controls",children:[S.jsxs("select",{value:d,onChange:j=>p(j.target.value),children:[u.length===0&&S.jsx("option",{value:"",children:r("inspect_none")}),u.map(j=>S.jsx("option",{value:j,children:j},j))]}),S.jsx("button",{onClick:C,disabled:w||!d,children:w?"…":r("inspect_load")}),S.jsx("span",{className:"spacer"}),S.jsx("button",{type:"button",className:"secondary",onClick:i,children:r("cancel")})]}),y&&S.jsx("p",{className:"assist-msg error",children:y}),g.length>0&&S.jsx("div",{className:"inspect-table",children:g.map((j,k)=>{const T=N(j);return S.jsxs("div",{className:"inspect-row",style:{paddingLeft:8+j.depth*14},children:[S.jsx("code",{className:"inspect-ct",children:j.control_type||"?"}),S.jsx("span",{className:"inspect-name",children:j.name||S.jsx("em",{children:"—"})}),j.auto_id&&S.jsxs("code",{className:"inspect-aid",children:["#",j.auto_id]}),S.jsx("span",{className:"spacer"}),S.jsx("button",{className:"secondary tiny",title:`${T.by}=${T.value}`,onClick:()=>{var U;return(U=navigator.clipboard)==null?void 0:U.writeText(`${T.by}=${T.value}`)},children:r("inspect_copy")}),S.jsx("button",{className:"secondary tiny",onClick:()=>E(j,"desktop_click"),children:r("inspect_make_click")}),S.jsx("button",{className:"secondary tiny",onClick:()=>E(j,"desktop_type"),children:r("inspect_make_type")})]},k)})})]})}const fp={steps:[],settings:{},layout:{}};function zk(){const[t,r]=F.useState(null),[i,l]=F.useState(()=>localStorage.getItem("rpa_lang")||"en"),[a,u]=F.useState(()=>localStorage.getItem("rpa_close_mode")||"always"),[c,d]=F.useState([]),[p,g]=F.useState(null),[v,y]=F.useState(fp),[m,w]=F.useState(!1),[_,C]=F.useState(0),[N,E]=F.useState(!1),[j,k]=F.useState(!1),[T,U]=F.useState([]),[O,z]=F.useState(0),[V,b]=F.useState(null),[J,G]=F.useState(null),[ee,Z]=F.useState(null),M=F.useRef(null),$=Q0(i);F.useEffect(()=>{localStorage.setItem("rpa_lang",i),document.title=$("page_title")},[i]),F.useEffect(()=>localStorage.setItem("rpa_close_mode",a),[a]),F.useEffect(()=>{(async()=>{const te=await He.schema();r(te);const ne=await He.listFlows();if(d(ne),ne.length)await W(ne[0]);else{const Q={steps:[rn(Yn(te,"goto")),rn(Yn(te,"wait_for_login"))],settings:{},layout:{}};Q.steps[0].url="https://www.1177.se/",g("standard"),y(Q),w(!0),C(oe=>oe+1)}})()},[]);const W=F.useCallback(async te=>{const ne=await He.getFlow(te);ne.steps=(ne.steps??[]).map(Q=>rn({...Q})),ne.settings=ne.settings??{},ne.layout=ne.layout??{},g(te),y(ne),w(!1),C(Q=>Q+1)},[]),Y=F.useCallback(te=>{y(ne=>({...ne,steps:te.steps,layout:te.layout})),w(!0)},[]),D=F.useCallback(te=>{y(ne=>({...ne,steps:[...ne.steps,rn({...te})]})),w(!0),C(ne=>ne+1)},[]);async function A(){const te=v.steps.filter(oe=>T.includes(oe.id));if(te.length===0){b($("block_select_first"));return}const ne=prompt($("block_name_prompt"));if(!ne)return;const Q=prompt($("block_desc_prompt"))||"";try{await He.saveBlock(ne,{name:ne,description:Q,steps:te,settings:{}}),z(oe=>oe+1),b($("block_saved"))}catch(oe){const he=oe instanceof Kn?JSON.stringify(oe.detail):String(oe);b($("save_failed",{msg:he}))}}const B=F.useCallback(async()=>{if(!p)return!1;try{await He.saveFlow(p,v),w(!1);const te=await He.listFlows();return d(te),!0}catch(te){const ne=te instanceof Kn?JSON.stringify(te.detail):String(te);return b($("save_failed",{msg:ne})),!1}},[p,v,$]);async function P(){const te=prompt($("new_flow_prompt"));if(!te||!t)return;const ne={steps:[],settings:{},layout:{}};g(te),y(ne),C(Q=>Q+1);try{await He.saveFlow(te,ne),d(await He.listFlows()),w(!1)}catch{w(!0)}}async function L(){if(!p||!confirm($("delete_flow_confirm",{name:p})))return;await He.deleteFlow(p);const te=await He.listFlows();d(te),te.length?await W(te[0]):(g(null),y(fp),C(ne=>ne+1))}const re=()=>{M.current&&window.clearTimeout(M.current),M.current=null},ie=F.useCallback(te=>{He.run(te).then(ne=>{Z(ne),(ne.status==="running"||ne.browser_open)&&(M.current=window.setTimeout(()=>ie(te),1e3))})},[]);async function ce(){if(!p)return;await B(),re(),Z(null);const{run_id:te}=await He.runFlow(p,a);G(te),ie(te)}return F.useEffect(()=>re,[]),t?S.jsxs("div",{className:"app",children:[S.jsx(ey,{t:$,lang:i,setLang:l,flowNames:c,currentName:p,onSelect:W,onNew:P,onDelete:L,onSave:B,onRun:ce,dirty:m,running:(ee==null?void 0:ee.status)==="running",closeMode:a,setCloseMode:u,onOpenSettings:()=>E(!0),onOpenInspect:()=>k(!0)}),S.jsxs("main",{children:[S.jsx(_k,{schema:t,lang:i,t:$,blocksRefreshKey:O,onSaveSelectionAsBlock:A}),S.jsx(Ek,{flow:v,schema:t,lang:i,t:$,onChange:Y,onSelectionChange:U},_),S.jsxs("aside",{className:"side",children:[S.jsx(jk,{t:$,currentName:p,flow:v,onApply:te=>{te.steps=te.steps.map(ne=>rn({...ne})),te.layout=te.layout??{},gp(te),y(te),w(!0),C(ne=>ne+1)}}),S.jsx(Ck,{t:$,runId:J,run:ee}),S.jsx(Pk,{t:$,vars:(ee==null?void 0:ee.vars)??{}})]})]}),S.jsx(Tk,{open:N,schema:t,lang:i,t:$,settings:v.settings,onClose:()=>E(!1),onSave:te=>{y(ne=>({...ne,settings:te})),w(!0),E(!1)}}),S.jsx(Ik,{open:j,t:$,onClose:()=>k(!1),onCreateStep:te=>{D(te),k(!1)}}),V&&S.jsx("div",{className:"toast",onClick:()=>b(null),children:V})]}):S.jsx("div",{className:"loading",children:"…"})}K0.createRoot(document.getElementById("root")).render(S.jsx(hp.StrictMode,{children:S.jsx(zk,{})}));
diff --git a/webui/static/assets/index-kqrfGhqD.js b/webui/static/assets/index-kqrfGhqD.js
deleted file mode 100644
index 2aa8530..0000000
--- a/webui/static/assets/index-kqrfGhqD.js
+++ /dev/null
@@ -1,65 +0,0 @@
-(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))l(u);new MutationObserver(u=>{for(const a of u)if(a.type==="childList")for(const c of a.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&l(c)}).observe(document,{childList:!0,subtree:!0});function i(u){const a={};return u.integrity&&(a.integrity=u.integrity),u.referrerPolicy&&(a.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?a.credentials="include":u.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function l(u){if(u.ep)return;u.ep=!0;const a=i(u);fetch(u.href,a)}})();function up(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var va={exports:{}},Jo={},xa={exports:{}},Ce={};/**
- * @license React
- * react.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Hd;function $0(){if(Hd)return Ce;Hd=1;var t=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),y=Symbol.iterator;function m(M){return M===null||typeof M!="object"?null:(M=y&&M[y]||M["@@iterator"],typeof M=="function"?M:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},S=Object.assign,P={};function N(M,L,te){this.props=M,this.context=L,this.refs=P,this.updater=te||w}N.prototype.isReactComponent={},N.prototype.setState=function(M,L){if(typeof M!="object"&&typeof M!="function"&&M!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,M,L,"setState")},N.prototype.forceUpdate=function(M){this.updater.enqueueForceUpdate(this,M,"forceUpdate")};function k(){}k.prototype=N.prototype;function j(M,L,te){this.props=M,this.context=L,this.refs=P,this.updater=te||w}var _=j.prototype=new k;_.constructor=j,S(_,N.prototype),_.isPureReactComponent=!0;var I=Array.isArray,F=Object.prototype.hasOwnProperty,D={current:null},V={key:!0,ref:!0,__self:!0,__source:!0};function Q(M,L,te){var re,ue={},ce=null,ae=null;if(L!=null)for(re in L.ref!==void 0&&(ae=L.ref),L.key!==void 0&&(ce=""+L.key),L)F.call(L,re)&&!V.hasOwnProperty(re)&&(ue[re]=L[re]);var G=arguments.length-2;if(G===1)ue.children=te;else if(1<G){for(var se=Array(G),pe=0;pe<G;pe++)se[pe]=arguments[pe+2];ue.children=se}if(M&&M.defaultProps)for(re in G=M.defaultProps,G)ue[re]===void 0&&(ue[re]=G[re]);return{$$typeof:t,type:M,key:ce,ref:ae,props:ue,_owner:D.current}}function Y(M,L){return{$$typeof:t,type:M.type,key:L,ref:M.ref,props:M.props,_owner:M._owner}}function ee(M){return typeof M=="object"&&M!==null&&M.$$typeof===t}function q(M){var L={"=":"=0",":":"=2"};return"$"+M.replace(/[=:]/g,function(te){return L[te]})}var J=/\/+/g;function Z(M,L){return typeof M=="object"&&M!==null&&M.key!=null?q(""+M.key):L.toString(36)}function C(M,L,te,re,ue){var ce=typeof M;(ce==="undefined"||ce==="boolean")&&(M=null);var ae=!1;if(M===null)ae=!0;else switch(ce){case"string":case"number":ae=!0;break;case"object":switch(M.$$typeof){case t:case r:ae=!0}}if(ae)return ae=M,ue=ue(ae),M=re===""?"."+Z(ae,0):re,I(ue)?(te="",M!=null&&(te=M.replace(J,"$&/")+"/"),C(ue,L,te,"",function(pe){return pe})):ue!=null&&(ee(ue)&&(ue=Y(ue,te+(!ue.key||ae&&ae.key===ue.key?"":(""+ue.key).replace(J,"$&/")+"/")+M)),L.push(ue)),1;if(ae=0,re=re===""?".":re+":",I(M))for(var G=0;G<M.length;G++){ce=M[G];var se=re+Z(ce,G);ae+=C(ce,L,te,se,ue)}else if(se=m(M),typeof se=="function")for(M=se.call(M),G=0;!(ce=M.next()).done;)ce=ce.value,se=re+Z(ce,G++),ae+=C(ce,L,te,se,ue);else if(ce==="object")throw L=String(M),Error("Objects are not valid as a React child (found: "+(L==="[object Object]"?"object with keys {"+Object.keys(M).join(", ")+"}":L)+"). If you meant to render a collection of children, use an array instead.");return ae}function b(M,L,te){if(M==null)return M;var re=[],ue=0;return C(M,re,"","",function(ce){return L.call(te,ce,ue++)}),re}function H(M){if(M._status===-1){var L=M._result;L=L(),L.then(function(te){(M._status===0||M._status===-1)&&(M._status=1,M._result=te)},function(te){(M._status===0||M._status===-1)&&(M._status=2,M._result=te)}),M._status===-1&&(M._status=0,M._result=L)}if(M._status===1)return M._result.default;throw M._result}var B={current:null},z={transition:null},A={ReactCurrentDispatcher:B,ReactCurrentBatchConfig:z,ReactCurrentOwner:D};function O(){throw Error("act(...) is not supported in production builds of React.")}return Ce.Children={map:b,forEach:function(M,L,te){b(M,function(){L.apply(this,arguments)},te)},count:function(M){var L=0;return b(M,function(){L++}),L},toArray:function(M){return b(M,function(L){return L})||[]},only:function(M){if(!ee(M))throw Error("React.Children.only expected to receive a single React element child.");return M}},Ce.Component=N,Ce.Fragment=i,Ce.Profiler=u,Ce.PureComponent=j,Ce.StrictMode=l,Ce.Suspense=p,Ce.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=A,Ce.act=O,Ce.cloneElement=function(M,L,te){if(M==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+M+".");var re=S({},M.props),ue=M.key,ce=M.ref,ae=M._owner;if(L!=null){if(L.ref!==void 0&&(ce=L.ref,ae=D.current),L.key!==void 0&&(ue=""+L.key),M.type&&M.type.defaultProps)var G=M.type.defaultProps;for(se in L)F.call(L,se)&&!V.hasOwnProperty(se)&&(re[se]=L[se]===void 0&&G!==void 0?G[se]:L[se])}var se=arguments.length-2;if(se===1)re.children=te;else if(1<se){G=Array(se);for(var pe=0;pe<se;pe++)G[pe]=arguments[pe+2];re.children=G}return{$$typeof:t,type:M.type,key:ue,ref:ce,props:re,_owner:ae}},Ce.createContext=function(M){return M={$$typeof:c,_currentValue:M,_currentValue2:M,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},M.Provider={$$typeof:a,_context:M},M.Consumer=M},Ce.createElement=Q,Ce.createFactory=function(M){var L=Q.bind(null,M);return L.type=M,L},Ce.createRef=function(){return{current:null}},Ce.forwardRef=function(M){return{$$typeof:d,render:M}},Ce.isValidElement=ee,Ce.lazy=function(M){return{$$typeof:v,_payload:{_status:-1,_result:M},_init:H}},Ce.memo=function(M,L){return{$$typeof:g,type:M,compare:L===void 0?null:L}},Ce.startTransition=function(M){var L=z.transition;z.transition={};try{M()}finally{z.transition=L}},Ce.unstable_act=O,Ce.useCallback=function(M,L){return B.current.useCallback(M,L)},Ce.useContext=function(M){return B.current.useContext(M)},Ce.useDebugValue=function(){},Ce.useDeferredValue=function(M){return B.current.useDeferredValue(M)},Ce.useEffect=function(M,L){return B.current.useEffect(M,L)},Ce.useId=function(){return B.current.useId()},Ce.useImperativeHandle=function(M,L,te){return B.current.useImperativeHandle(M,L,te)},Ce.useInsertionEffect=function(M,L){return B.current.useInsertionEffect(M,L)},Ce.useLayoutEffect=function(M,L){return B.current.useLayoutEffect(M,L)},Ce.useMemo=function(M,L){return B.current.useMemo(M,L)},Ce.useReducer=function(M,L,te){return B.current.useReducer(M,L,te)},Ce.useRef=function(M){return B.current.useRef(M)},Ce.useState=function(M){return B.current.useState(M)},Ce.useSyncExternalStore=function(M,L,te){return B.current.useSyncExternalStore(M,L,te)},Ce.useTransition=function(){return B.current.useTransition()},Ce.version="18.3.1",Ce}var Vd;function yi(){return Vd||(Vd=1,xa.exports=$0()),xa.exports}/**
- * @license React
- * react-jsx-runtime.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var bd;function O0(){if(bd)return Jo;bd=1;var t=yi(),r=Symbol.for("react.element"),i=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,u=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function c(d,p,g){var v,y={},m=null,w=null;g!==void 0&&(m=""+g),p.key!==void 0&&(m=""+p.key),p.ref!==void 0&&(w=p.ref);for(v in p)l.call(p,v)&&!a.hasOwnProperty(v)&&(y[v]=p[v]);if(d&&d.defaultProps)for(v in p=d.defaultProps,p)y[v]===void 0&&(y[v]=p[v]);return{$$typeof:r,type:d,key:m,ref:w,props:y,_owner:u.current}}return Jo.Fragment=i,Jo.jsx=c,Jo.jsxs=c,Jo}var Bd;function F0(){return Bd||(Bd=1,va.exports=O0()),va.exports}var E=F0(),U=yi();const ap=up(U);var Bs={},wa={exports:{}},mt={},_a={exports:{}},Sa={};/**
- * @license React
- * scheduler.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Ud;function H0(){return Ud||(Ud=1,(function(t){function r(z,A){var O=z.length;z.push(A);e:for(;0<O;){var M=O-1>>>1,L=z[M];if(0<u(L,A))z[M]=A,z[O]=L,O=M;else break e}}function i(z){return z.length===0?null:z[0]}function l(z){if(z.length===0)return null;var A=z[0],O=z.pop();if(O!==A){z[0]=O;e:for(var M=0,L=z.length,te=L>>>1;M<te;){var re=2*(M+1)-1,ue=z[re],ce=re+1,ae=z[ce];if(0>u(ue,O))ce<L&&0>u(ae,ue)?(z[M]=ae,z[ce]=O,M=ce):(z[M]=ue,z[re]=O,M=re);else if(ce<L&&0>u(ae,O))z[M]=ae,z[ce]=O,M=ce;else break e}}return A}function u(z,A){var O=z.sortIndex-A.sortIndex;return O!==0?O:z.id-A.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var c=Date,d=c.now();t.unstable_now=function(){return c.now()-d}}var p=[],g=[],v=1,y=null,m=3,w=!1,S=!1,P=!1,N=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function _(z){for(var A=i(g);A!==null;){if(A.callback===null)l(g);else if(A.startTime<=z)l(g),A.sortIndex=A.expirationTime,r(p,A);else break;A=i(g)}}function I(z){if(P=!1,_(z),!S)if(i(p)!==null)S=!0,H(F);else{var A=i(g);A!==null&&B(I,A.startTime-z)}}function F(z,A){S=!1,P&&(P=!1,k(Q),Q=-1),w=!0;var O=m;try{for(_(A),y=i(p);y!==null&&(!(y.expirationTime>A)||z&&!q());){var M=y.callback;if(typeof M=="function"){y.callback=null,m=y.priorityLevel;var L=M(y.expirationTime<=A);A=t.unstable_now(),typeof L=="function"?y.callback=L:y===i(p)&&l(p),_(A)}else l(p);y=i(p)}if(y!==null)var te=!0;else{var re=i(g);re!==null&&B(I,re.startTime-A),te=!1}return te}finally{y=null,m=O,w=!1}}var D=!1,V=null,Q=-1,Y=5,ee=-1;function q(){return!(t.unstable_now()-ee<Y)}function J(){if(V!==null){var z=t.unstable_now();ee=z;var A=!0;try{A=V(!0,z)}finally{A?Z():(D=!1,V=null)}}else D=!1}var Z;if(typeof j=="function")Z=function(){j(J)};else if(typeof MessageChannel<"u"){var C=new MessageChannel,b=C.port2;C.port1.onmessage=J,Z=function(){b.postMessage(null)}}else Z=function(){N(J,0)};function H(z){V=z,D||(D=!0,Z())}function B(z,A){Q=N(function(){z(t.unstable_now())},A)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(z){z.callback=null},t.unstable_continueExecution=function(){S||w||(S=!0,H(F))},t.unstable_forceFrameRate=function(z){0>z||125<z?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Y=0<z?Math.floor(1e3/z):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_getFirstCallbackNode=function(){return i(p)},t.unstable_next=function(z){switch(m){case 1:case 2:case 3:var A=3;break;default:A=m}var O=m;m=A;try{return z()}finally{m=O}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(z,A){switch(z){case 1:case 2:case 3:case 4:case 5:break;default:z=3}var O=m;m=z;try{return A()}finally{m=O}},t.unstable_scheduleCallback=function(z,A,O){var M=t.unstable_now();switch(typeof O=="object"&&O!==null?(O=O.delay,O=typeof O=="number"&&0<O?M+O:M):O=M,z){case 1:var L=-1;break;case 2:L=250;break;case 5:L=1073741823;break;case 4:L=1e4;break;default:L=5e3}return L=O+L,z={id:v++,callback:A,priorityLevel:z,startTime:O,expirationTime:L,sortIndex:-1},O>M?(z.sortIndex=O,r(g,z),i(p)===null&&z===i(g)&&(P?(k(Q),Q=-1):P=!0,B(I,O-M))):(z.sortIndex=L,r(p,z),S||w||(S=!0,H(F))),z},t.unstable_shouldYield=q,t.unstable_wrapCallback=function(z){var A=m;return function(){var O=m;m=A;try{return z.apply(this,arguments)}finally{m=O}}}})(Sa)),Sa}var Wd;function V0(){return Wd||(Wd=1,_a.exports=H0()),_a.exports}/**
- * @license React
- * react-dom.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Yd;function b0(){if(Yd)return mt;Yd=1;var t=yi(),r=V0();function i(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o<arguments.length;o++)n+="&args[]="+encodeURIComponent(arguments[o]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var l=new Set,u={};function a(e,n){c(e,n),c(e+"Capture",n)}function c(e,n){for(u[e]=n,e=0;e<n.length;e++)l.add(n[e])}var d=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),p=Object.prototype.hasOwnProperty,g=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,v={},y={};function m(e){return p.call(y,e)?!0:p.call(v,e)?!1:g.test(e)?y[e]=!0:(v[e]=!0,!1)}function w(e,n,o,s){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return s?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function S(e,n,o,s){if(n===null||typeof n>"u"||w(e,n,o,s))return!0;if(s)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function P(e,n,o,s,f,h,x){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=s,this.attributeNamespace=f,this.mustUseProperty=o,this.propertyName=e,this.type=n,this.sanitizeURL=h,this.removeEmptyString=x}var N={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){N[e]=new P(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];N[n]=new P(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){N[e]=new P(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){N[e]=new P(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){N[e]=new P(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){N[e]=new P(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){N[e]=new P(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){N[e]=new P(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){N[e]=new P(e,5,!1,e.toLowerCase(),null,!1,!1)});var k=/[\-:]([a-z])/g;function j(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(k,j);N[n]=new P(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(k,j);N[n]=new P(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(k,j);N[n]=new P(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){N[e]=new P(e,1,!1,e.toLowerCase(),null,!1,!1)}),N.xlinkHref=new P("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){N[e]=new P(e,1,!1,e.toLowerCase(),null,!0,!0)});function _(e,n,o,s){var f=N.hasOwnProperty(n)?N[n]:null;(f!==null?f.type!==0:s||!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(S(n,o,f,s)&&(o=null),s||f===null?m(n)&&(o===null?e.removeAttribute(n):e.setAttribute(n,""+o)):f.mustUseProperty?e[f.propertyName]=o===null?f.type===3?!1:"":o:(n=f.attributeName,s=f.attributeNamespace,o===null?e.removeAttribute(n):(f=f.type,o=f===3||f===4&&o===!0?"":""+o,s?e.setAttributeNS(s,n,o):e.setAttribute(n,o))))}var I=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,F=Symbol.for("react.element"),D=Symbol.for("react.portal"),V=Symbol.for("react.fragment"),Q=Symbol.for("react.strict_mode"),Y=Symbol.for("react.profiler"),ee=Symbol.for("react.provider"),q=Symbol.for("react.context"),J=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),C=Symbol.for("react.suspense_list"),b=Symbol.for("react.memo"),H=Symbol.for("react.lazy"),B=Symbol.for("react.offscreen"),z=Symbol.iterator;function A(e){return e===null||typeof e!="object"?null:(e=z&&e[z]||e["@@iterator"],typeof e=="function"?e:null)}var O=Object.assign,M;function L(e){if(M===void 0)try{throw Error()}catch(o){var n=o.stack.trim().match(/\n( *(at )?)/);M=n&&n[1]||""}return`
-`+M+e}var te=!1;function re(e,n){if(!e||te)return"";te=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(n,[])}catch(K){var s=K}Reflect.construct(e,[],n)}else{try{n.call()}catch(K){s=K}e.call(n.prototype)}else{try{throw Error()}catch(K){s=K}e()}}catch(K){if(K&&s&&typeof K.stack=="string"){for(var f=K.stack.split(`
-`),h=s.stack.split(`
-`),x=f.length-1,T=h.length-1;1<=x&&0<=T&&f[x]!==h[T];)T--;for(;1<=x&&0<=T;x--,T--)if(f[x]!==h[T]){if(x!==1||T!==1)do if(x--,T--,0>T||f[x]!==h[T]){var R=`
-`+f[x].replace(" at new "," at ");return e.displayName&&R.includes("<anonymous>")&&(R=R.replace("<anonymous>",e.displayName)),R}while(1<=x&&0<=T);break}}}finally{te=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?L(e):""}function ue(e){switch(e.tag){case 5:return L(e.type);case 16:return L("Lazy");case 13:return L("Suspense");case 19:return L("SuspenseList");case 0:case 2:case 15:return e=re(e.type,!1),e;case 11:return e=re(e.type.render,!1),e;case 1:return e=re(e.type,!0),e;default:return""}}function ce(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case V:return"Fragment";case D:return"Portal";case Y:return"Profiler";case Q:return"StrictMode";case Z:return"Suspense";case C:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case q:return(e.displayName||"Context")+".Consumer";case ee:return(e._context.displayName||"Context")+".Provider";case J:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case b:return n=e.displayName||null,n!==null?n:ce(e.type)||"Memo";case H:n=e._payload,e=e._init;try{return ce(e(n))}catch{}}return null}function ae(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ce(n);case 8:return n===Q?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function G(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function se(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function pe(e){var n=se(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),s=""+e[n];if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var f=o.get,h=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return f.call(this)},set:function(x){s=""+x,h.call(this,x)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return s},setValue:function(x){s=""+x},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function xe(e){e._valueTracker||(e._valueTracker=pe(e))}function ye(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var o=n.getValue(),s="";return e&&(s=se(e)?e.checked?"true":"false":e.value),e=s,e!==o?(n.setValue(e),!0):!1}function we(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ke(e,n){var o=n.checked;return O({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function Ne(e,n){var o=n.defaultValue==null?"":n.defaultValue,s=n.checked!=null?n.checked:n.defaultChecked;o=G(n.value!=null?n.value:o),e._wrapperState={initialChecked:s,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Me(e,n){n=n.checked,n!=null&&_(e,"checked",n,!1)}function ze(e,n){Me(e,n);var o=G(n.value),s=n.type;if(o!=null)s==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?at(e,n.type,o):n.hasOwnProperty("defaultValue")&&at(e,n.type,G(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function st(e,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var s=n.type;if(!(s!=="submit"&&s!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,o||n===e.value||(e.value=n),e.defaultValue=n}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function at(e,n,o){(n!=="number"||we(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var et=Array.isArray;function tt(e,n,o,s){if(e=e.options,n){n={};for(var f=0;f<o.length;f++)n["$"+o[f]]=!0;for(o=0;o<e.length;o++)f=n.hasOwnProperty("$"+e[o].value),e[o].selected!==f&&(e[o].selected=f),f&&s&&(e[o].defaultSelected=!0)}else{for(o=""+G(o),n=null,f=0;f<e.length;f++){if(e[f].value===o){e[f].selected=!0,s&&(e[f].defaultSelected=!0);return}n!==null||e[f].disabled||(n=e[f])}n!==null&&(n.selected=!0)}}function sn(e,n){if(n.dangerouslySetInnerHTML!=null)throw Error(i(91));return O({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Kt(e,n){var o=n.value;if(o==null){if(o=n.children,n=n.defaultValue,o!=null){if(n!=null)throw Error(i(92));if(et(o)){if(1<o.length)throw Error(i(93));o=o[0]}n=o}n==null&&(n=""),o=n}e._wrapperState={initialValue:G(o)}}function Gt(e,n){var o=G(n.value),s=G(n.defaultValue);o!=null&&(o=""+o,o!==e.value&&(e.value=o),n.defaultValue==null&&e.defaultValue!==o&&(e.defaultValue=o)),s!=null&&(e.defaultValue=""+s)}function ct(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}function Pt(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function vt(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?Pt(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var It,Sr=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(n,o,s,f){MSApp.execUnsafeLocalFunction(function(){return e(n,o,s,f)})}:e})(function(e,n){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=n;else{for(It=It||document.createElement("div"),It.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=It.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function ln(e,n){if(n){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=n;return}}e.textContent=n}var Xn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Cl=["Webkit","ms","Moz","O"];Object.keys(Xn).forEach(function(e){Cl.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Xn[n]=Xn[e]})});function Ci(e,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||Xn.hasOwnProperty(e)&&Xn[e]?(""+n).trim():n+"px"}function Mi(e,n){e=e.style;for(var o in n)if(n.hasOwnProperty(o)){var s=o.indexOf("--")===0,f=Ci(o,n[o],s);o==="float"&&(o="cssFloat"),s?e.setProperty(o,f):e[o]=f}}var Ml=O({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ao(e,n){if(n){if(Ml[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(i(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(i(61))}if(n.style!=null&&typeof n.style!="object")throw Error(i(62))}}function co(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var fo=null;function ho(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var po=null,wn=null,_n=null;function Pi(e){if(e=Oo(e)){if(typeof po!="function")throw Error(i(280));var n=e.stateNode;n&&(n=os(n),po(e.stateNode,e.type,n))}}function Ii(e){wn?_n?_n.push(e):_n=[e]:wn=e}function Ti(){if(wn){var e=wn,n=_n;if(_n=wn=null,Pi(e),n)for(e=0;e<n.length;e++)Pi(n[e])}}function zi(e,n){return e(n)}function ji(){}var go=!1;function Ai(e,n,o){if(go)return e(n,o);go=!0;try{return zi(e,n,o)}finally{go=!1,(wn!==null||_n!==null)&&(ji(),Ti())}}function Qn(e,n){var o=e.stateNode;if(o===null)return null;var s=os(o);if(s===null)return null;o=s[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(s=!s.disabled)||(e=e.type,s=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!s;break e;default:e=!1}if(e)return null;if(o&&typeof o!="function")throw Error(i(231,n,typeof o));return o}var mo=!1;if(d)try{var Kn={};Object.defineProperty(Kn,"passive",{get:function(){mo=!0}}),window.addEventListener("test",Kn,Kn),window.removeEventListener("test",Kn,Kn)}catch{mo=!1}function Pl(e,n,o,s,f,h,x,T,R){var K=Array.prototype.slice.call(arguments,3);try{n.apply(o,K)}catch(oe){this.onError(oe)}}var Gn=!1,kr=null,Er=!1,yo=null,Il={onError:function(e){Gn=!0,kr=e}};function Tl(e,n,o,s,f,h,x,T,R){Gn=!1,kr=null,Pl.apply(Il,arguments)}function zl(e,n,o,s,f,h,x,T,R){if(Tl.apply(this,arguments),Gn){if(Gn){var K=kr;Gn=!1,kr=null}else throw Error(i(198));Er||(Er=!0,yo=K)}}function qt(e){var n=e,o=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(o=n.return),e=n.return;while(e)}return n.tag===3?o:null}function vo(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function xo(e){if(qt(e)!==e)throw Error(i(188))}function jl(e){var n=e.alternate;if(!n){if(n=qt(e),n===null)throw Error(i(188));return n!==e?null:e}for(var o=e,s=n;;){var f=o.return;if(f===null)break;var h=f.alternate;if(h===null){if(s=f.return,s!==null){o=s;continue}break}if(f.child===h.child){for(h=f.child;h;){if(h===o)return xo(f),e;if(h===s)return xo(f),n;h=h.sibling}throw Error(i(188))}if(o.return!==s.return)o=f,s=h;else{for(var x=!1,T=f.child;T;){if(T===o){x=!0,o=f,s=h;break}if(T===s){x=!0,s=f,o=h;break}T=T.sibling}if(!x){for(T=h.child;T;){if(T===o){x=!0,o=h,s=f;break}if(T===s){x=!0,s=h,o=f;break}T=T.sibling}if(!x)throw Error(i(189))}}if(o.alternate!==s)throw Error(i(190))}if(o.tag!==3)throw Error(i(188));return o.stateNode.current===o?e:n}function Li(e){return e=jl(e),e!==null?Ri(e):null}function Ri(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var n=Ri(e);if(n!==null)return n;e=e.sibling}return null}var Di=r.unstable_scheduleCallback,$i=r.unstable_cancelCallback,Al=r.unstable_shouldYield,Oi=r.unstable_requestPaint,Oe=r.unstable_now,Ll=r.unstable_getCurrentPriorityLevel,wo=r.unstable_ImmediatePriority,Fi=r.unstable_UserBlockingPriority,Nr=r.unstable_NormalPriority,Rl=r.unstable_LowPriority,Hi=r.unstable_IdlePriority,Cr=null,xt=null;function Dl(e){if(xt&&typeof xt.onCommitFiberRoot=="function")try{xt.onCommitFiberRoot(Cr,e,void 0,(e.current.flags&128)===128)}catch{}}var wt=Math.clz32?Math.clz32:Fl,$l=Math.log,Ol=Math.LN2;function Fl(e){return e>>>=0,e===0?32:31-($l(e)/Ol|0)|0}var Mr=64,Pr=4194304;function qn(e){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:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function un(e,n){var o=e.pendingLanes;if(o===0)return 0;var s=0,f=e.suspendedLanes,h=e.pingedLanes,x=o&268435455;if(x!==0){var T=x&~f;T!==0?s=qn(T):(h&=x,h!==0&&(s=qn(h)))}else x=o&~f,x!==0?s=qn(x):h!==0&&(s=qn(h));if(s===0)return 0;if(n!==0&&n!==s&&(n&f)===0&&(f=s&-s,h=n&-n,f>=h||f===16&&(h&4194240)!==0))return n;if((s&4)!==0&&(s|=o&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=s;0<n;)o=31-wt(n),f=1<<o,s|=e[o],n&=~f;return s}function Hl(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Vi(e,n){for(var o=e.suspendedLanes,s=e.pingedLanes,f=e.expirationTimes,h=e.pendingLanes;0<h;){var x=31-wt(h),T=1<<x,R=f[x];R===-1?((T&o)===0||(T&s)!==0)&&(f[x]=Hl(T,n)):R<=n&&(e.expiredLanes|=T),h&=~T}}function _o(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function bi(){var e=Mr;return Mr<<=1,(Mr&4194240)===0&&(Mr=64),e}function Zn(e){for(var n=[],o=0;31>o;o++)n.push(e);return n}function Jn(e,n,o){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-wt(n),e[n]=o}function Vl(e,n){var o=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<o;){var f=31-wt(o),h=1<<f;n[f]=0,s[f]=-1,e[f]=-1,o&=~h}}function Ir(e,n){var o=e.entangledLanes|=n;for(e=e.entanglements;o;){var s=31-wt(o),f=1<<s;f&n|e[s]&n&&(e[s]|=n),o&=~f}}var je=0;function yc(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var vc,bl,xc,wc,_c,Bl=!1,Bi=[],Sn=null,kn=null,En=null,So=new Map,ko=new Map,Nn=[],im="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Sc(e,n){switch(e){case"focusin":case"focusout":Sn=null;break;case"dragenter":case"dragleave":kn=null;break;case"mouseover":case"mouseout":En=null;break;case"pointerover":case"pointerout":So.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":ko.delete(n.pointerId)}}function Eo(e,n,o,s,f,h){return e===null||e.nativeEvent!==h?(e={blockedOn:n,domEventName:o,eventSystemFlags:s,nativeEvent:h,targetContainers:[f]},n!==null&&(n=Oo(n),n!==null&&bl(n)),e):(e.eventSystemFlags|=s,n=e.targetContainers,f!==null&&n.indexOf(f)===-1&&n.push(f),e)}function sm(e,n,o,s,f){switch(n){case"focusin":return Sn=Eo(Sn,e,n,o,s,f),!0;case"dragenter":return kn=Eo(kn,e,n,o,s,f),!0;case"mouseover":return En=Eo(En,e,n,o,s,f),!0;case"pointerover":var h=f.pointerId;return So.set(h,Eo(So.get(h)||null,e,n,o,s,f)),!0;case"gotpointercapture":return h=f.pointerId,ko.set(h,Eo(ko.get(h)||null,e,n,o,s,f)),!0}return!1}function kc(e){var n=er(e.target);if(n!==null){var o=qt(n);if(o!==null){if(n=o.tag,n===13){if(n=vo(o),n!==null){e.blockedOn=n,_c(e.priority,function(){xc(o)});return}}else if(n===3&&o.stateNode.current.memoizedState.isDehydrated){e.blockedOn=o.tag===3?o.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ui(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var o=Wl(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(o===null){o=e.nativeEvent;var s=new o.constructor(o.type,o);fo=s,o.target.dispatchEvent(s),fo=null}else return n=Oo(o),n!==null&&bl(n),e.blockedOn=o,!1;n.shift()}return!0}function Ec(e,n,o){Ui(e)&&o.delete(n)}function lm(){Bl=!1,Sn!==null&&Ui(Sn)&&(Sn=null),kn!==null&&Ui(kn)&&(kn=null),En!==null&&Ui(En)&&(En=null),So.forEach(Ec),ko.forEach(Ec)}function No(e,n){e.blockedOn===n&&(e.blockedOn=null,Bl||(Bl=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,lm)))}function Co(e){function n(f){return No(f,e)}if(0<Bi.length){No(Bi[0],e);for(var o=1;o<Bi.length;o++){var s=Bi[o];s.blockedOn===e&&(s.blockedOn=null)}}for(Sn!==null&&No(Sn,e),kn!==null&&No(kn,e),En!==null&&No(En,e),So.forEach(n),ko.forEach(n),o=0;o<Nn.length;o++)s=Nn[o],s.blockedOn===e&&(s.blockedOn=null);for(;0<Nn.length&&(o=Nn[0],o.blockedOn===null);)kc(o),o.blockedOn===null&&Nn.shift()}var Tr=I.ReactCurrentBatchConfig,Wi=!0;function um(e,n,o,s){var f=je,h=Tr.transition;Tr.transition=null;try{je=1,Ul(e,n,o,s)}finally{je=f,Tr.transition=h}}function am(e,n,o,s){var f=je,h=Tr.transition;Tr.transition=null;try{je=4,Ul(e,n,o,s)}finally{je=f,Tr.transition=h}}function Ul(e,n,o,s){if(Wi){var f=Wl(e,n,o,s);if(f===null)uu(e,n,s,Yi,o),Sc(e,s);else if(sm(f,e,n,o,s))s.stopPropagation();else if(Sc(e,s),n&4&&-1<im.indexOf(e)){for(;f!==null;){var h=Oo(f);if(h!==null&&vc(h),h=Wl(e,n,o,s),h===null&&uu(e,n,s,Yi,o),h===f)break;f=h}f!==null&&s.stopPropagation()}else uu(e,n,s,null,o)}}var Yi=null;function Wl(e,n,o,s){if(Yi=null,e=ho(s),e=er(e),e!==null)if(n=qt(e),n===null)e=null;else if(o=n.tag,o===13){if(e=vo(n),e!==null)return e;e=null}else if(o===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Yi=e,null}function Nc(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Ll()){case wo:return 1;case Fi:return 4;case Nr:case Rl:return 16;case Hi:return 536870912;default:return 16}default:return 16}}var Cn=null,Yl=null,Xi=null;function Cc(){if(Xi)return Xi;var e,n=Yl,o=n.length,s,f="value"in Cn?Cn.value:Cn.textContent,h=f.length;for(e=0;e<o&&n[e]===f[e];e++);var x=o-e;for(s=1;s<=x&&n[o-s]===f[h-s];s++);return Xi=f.slice(e,1<s?1-s:void 0)}function Qi(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function Ki(){return!0}function Mc(){return!1}function _t(e){function n(o,s,f,h,x){this._reactName=o,this._targetInst=f,this.type=s,this.nativeEvent=h,this.target=x,this.currentTarget=null;for(var T in e)e.hasOwnProperty(T)&&(o=e[T],this[T]=o?o(h):h[T]);return this.isDefaultPrevented=(h.defaultPrevented!=null?h.defaultPrevented:h.returnValue===!1)?Ki:Mc,this.isPropagationStopped=Mc,this}return O(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var o=this.nativeEvent;o&&(o.preventDefault?o.preventDefault():typeof o.returnValue!="unknown"&&(o.returnValue=!1),this.isDefaultPrevented=Ki)},stopPropagation:function(){var o=this.nativeEvent;o&&(o.stopPropagation?o.stopPropagation():typeof o.cancelBubble!="unknown"&&(o.cancelBubble=!0),this.isPropagationStopped=Ki)},persist:function(){},isPersistent:Ki}),n}var zr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Xl=_t(zr),Mo=O({},zr,{view:0,detail:0}),cm=_t(Mo),Ql,Kl,Po,Gi=O({},Mo,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ql,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Po&&(Po&&e.type==="mousemove"?(Ql=e.screenX-Po.screenX,Kl=e.screenY-Po.screenY):Kl=Ql=0,Po=e),Ql)},movementY:function(e){return"movementY"in e?e.movementY:Kl}}),Pc=_t(Gi),fm=O({},Gi,{dataTransfer:0}),dm=_t(fm),hm=O({},Mo,{relatedTarget:0}),Gl=_t(hm),pm=O({},zr,{animationName:0,elapsedTime:0,pseudoElement:0}),gm=_t(pm),mm=O({},zr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),ym=_t(mm),vm=O({},zr,{data:0}),Ic=_t(vm),xm={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},wm={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_m={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Sm(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=_m[e])?!!n[e]:!1}function ql(){return Sm}var km=O({},Mo,{key:function(e){if(e.key){var n=xm[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=Qi(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?wm[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ql,charCode:function(e){return e.type==="keypress"?Qi(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Qi(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Em=_t(km),Nm=O({},Gi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Tc=_t(Nm),Cm=O({},Mo,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ql}),Mm=_t(Cm),Pm=O({},zr,{propertyName:0,elapsedTime:0,pseudoElement:0}),Im=_t(Pm),Tm=O({},Gi,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),zm=_t(Tm),jm=[9,13,27,32],Zl=d&&"CompositionEvent"in window,Io=null;d&&"documentMode"in document&&(Io=document.documentMode);var Am=d&&"TextEvent"in window&&!Io,zc=d&&(!Zl||Io&&8<Io&&11>=Io),jc=" ",Ac=!1;function Lc(e,n){switch(e){case"keyup":return jm.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Rc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var jr=!1;function Lm(e,n){switch(e){case"compositionend":return Rc(n);case"keypress":return n.which!==32?null:(Ac=!0,jc);case"textInput":return e=n.data,e===jc&&Ac?null:e;default:return null}}function Rm(e,n){if(jr)return e==="compositionend"||!Zl&&Lc(e,n)?(e=Cc(),Xi=Yl=Cn=null,jr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return zc&&n.locale!=="ko"?null:n.data;default:return null}}var Dm={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Dc(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!Dm[e.type]:n==="textarea"}function $c(e,n,o,s){Ii(s),n=ts(n,"onChange"),0<n.length&&(o=new Xl("onChange","change",null,o,s),e.push({event:o,listeners:n}))}var To=null,zo=null;function $m(e){tf(e,0)}function qi(e){var n=$r(e);if(ye(n))return e}function Om(e,n){if(e==="change")return n}var Oc=!1;if(d){var Jl;if(d){var eu="oninput"in document;if(!eu){var Fc=document.createElement("div");Fc.setAttribute("oninput","return;"),eu=typeof Fc.oninput=="function"}Jl=eu}else Jl=!1;Oc=Jl&&(!document.documentMode||9<document.documentMode)}function Hc(){To&&(To.detachEvent("onpropertychange",Vc),zo=To=null)}function Vc(e){if(e.propertyName==="value"&&qi(zo)){var n=[];$c(n,zo,e,ho(e)),Ai($m,n)}}function Fm(e,n,o){e==="focusin"?(Hc(),To=n,zo=o,To.attachEvent("onpropertychange",Vc)):e==="focusout"&&Hc()}function Hm(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return qi(zo)}function Vm(e,n){if(e==="click")return qi(n)}function bm(e,n){if(e==="input"||e==="change")return qi(n)}function Bm(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Dt=typeof Object.is=="function"?Object.is:Bm;function jo(e,n){if(Dt(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var o=Object.keys(e),s=Object.keys(n);if(o.length!==s.length)return!1;for(s=0;s<o.length;s++){var f=o[s];if(!p.call(n,f)||!Dt(e[f],n[f]))return!1}return!0}function bc(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Bc(e,n){var o=bc(e);e=0;for(var s;o;){if(o.nodeType===3){if(s=e+o.textContent.length,e<=n&&s>=n)return{node:o,offset:n-e};e=s}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=bc(o)}}function Uc(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Uc(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Wc(){for(var e=window,n=we();n instanceof e.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)e=n.contentWindow;else break;n=we(e.document)}return n}function tu(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Um(e){var n=Wc(),o=e.focusedElem,s=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&Uc(o.ownerDocument.documentElement,o)){if(s!==null&&tu(o)){if(n=s.start,e=s.end,e===void 0&&(e=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(e,o.value.length);else if(e=(n=o.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var f=o.textContent.length,h=Math.min(s.start,f);s=s.end===void 0?h:Math.min(s.end,f),!e.extend&&h>s&&(f=s,s=h,h=f),f=Bc(o,h);var x=Bc(o,s);f&&x&&(e.rangeCount!==1||e.anchorNode!==f.node||e.anchorOffset!==f.offset||e.focusNode!==x.node||e.focusOffset!==x.offset)&&(n=n.createRange(),n.setStart(f.node,f.offset),e.removeAllRanges(),h>s?(e.addRange(n),e.extend(x.node,x.offset)):(n.setEnd(x.node,x.offset),e.addRange(n)))}}for(n=[],e=o;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o<n.length;o++)e=n[o],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Wm=d&&"documentMode"in document&&11>=document.documentMode,Ar=null,nu=null,Ao=null,ru=!1;function Yc(e,n,o){var s=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;ru||Ar==null||Ar!==we(s)||(s=Ar,"selectionStart"in s&&tu(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Ao&&jo(Ao,s)||(Ao=s,s=ts(nu,"onSelect"),0<s.length&&(n=new Xl("onSelect","select",null,n,o),e.push({event:n,listeners:s}),n.target=Ar)))}function Zi(e,n){var o={};return o[e.toLowerCase()]=n.toLowerCase(),o["Webkit"+e]="webkit"+n,o["Moz"+e]="moz"+n,o}var Lr={animationend:Zi("Animation","AnimationEnd"),animationiteration:Zi("Animation","AnimationIteration"),animationstart:Zi("Animation","AnimationStart"),transitionend:Zi("Transition","TransitionEnd")},ou={},Xc={};d&&(Xc=document.createElement("div").style,"AnimationEvent"in window||(delete Lr.animationend.animation,delete Lr.animationiteration.animation,delete Lr.animationstart.animation),"TransitionEvent"in window||delete Lr.transitionend.transition);function Ji(e){if(ou[e])return ou[e];if(!Lr[e])return e;var n=Lr[e],o;for(o in n)if(n.hasOwnProperty(o)&&o in Xc)return ou[e]=n[o];return e}var Qc=Ji("animationend"),Kc=Ji("animationiteration"),Gc=Ji("animationstart"),qc=Ji("transitionend"),Zc=new Map,Jc="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Mn(e,n){Zc.set(e,n),a(n,[e])}for(var iu=0;iu<Jc.length;iu++){var su=Jc[iu],Ym=su.toLowerCase(),Xm=su[0].toUpperCase()+su.slice(1);Mn(Ym,"on"+Xm)}Mn(Qc,"onAnimationEnd"),Mn(Kc,"onAnimationIteration"),Mn(Gc,"onAnimationStart"),Mn("dblclick","onDoubleClick"),Mn("focusin","onFocus"),Mn("focusout","onBlur"),Mn(qc,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),a("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),a("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),a("onBeforeInput",["compositionend","keypress","textInput","paste"]),a("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),a("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),a("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Lo="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Qm=new Set("cancel close invalid load scroll toggle".split(" ").concat(Lo));function ef(e,n,o){var s=e.type||"unknown-event";e.currentTarget=o,zl(s,n,void 0,e),e.currentTarget=null}function tf(e,n){n=(n&4)!==0;for(var o=0;o<e.length;o++){var s=e[o],f=s.event;s=s.listeners;e:{var h=void 0;if(n)for(var x=s.length-1;0<=x;x--){var T=s[x],R=T.instance,K=T.currentTarget;if(T=T.listener,R!==h&&f.isPropagationStopped())break e;ef(f,T,K),h=R}else for(x=0;x<s.length;x++){if(T=s[x],R=T.instance,K=T.currentTarget,T=T.listener,R!==h&&f.isPropagationStopped())break e;ef(f,T,K),h=R}}}if(Er)throw e=yo,Er=!1,yo=null,e}function Le(e,n){var o=n[pu];o===void 0&&(o=n[pu]=new Set);var s=e+"__bubble";o.has(s)||(nf(n,e,2,!1),o.add(s))}function lu(e,n,o){var s=0;n&&(s|=4),nf(o,e,s,n)}var es="_reactListening"+Math.random().toString(36).slice(2);function Ro(e){if(!e[es]){e[es]=!0,l.forEach(function(o){o!=="selectionchange"&&(Qm.has(o)||lu(o,!1,e),lu(o,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[es]||(n[es]=!0,lu("selectionchange",!1,n))}}function nf(e,n,o,s){switch(Nc(n)){case 1:var f=um;break;case 4:f=am;break;default:f=Ul}o=f.bind(null,n,o,e),f=void 0,!mo||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(f=!0),s?f!==void 0?e.addEventListener(n,o,{capture:!0,passive:f}):e.addEventListener(n,o,!0):f!==void 0?e.addEventListener(n,o,{passive:f}):e.addEventListener(n,o,!1)}function uu(e,n,o,s,f){var h=s;if((n&1)===0&&(n&2)===0&&s!==null)e:for(;;){if(s===null)return;var x=s.tag;if(x===3||x===4){var T=s.stateNode.containerInfo;if(T===f||T.nodeType===8&&T.parentNode===f)break;if(x===4)for(x=s.return;x!==null;){var R=x.tag;if((R===3||R===4)&&(R=x.stateNode.containerInfo,R===f||R.nodeType===8&&R.parentNode===f))return;x=x.return}for(;T!==null;){if(x=er(T),x===null)return;if(R=x.tag,R===5||R===6){s=h=x;continue e}T=T.parentNode}}s=s.return}Ai(function(){var K=h,oe=ho(o),ie=[];e:{var ne=Zc.get(e);if(ne!==void 0){var fe=Xl,he=e;switch(e){case"keypress":if(Qi(o)===0)break e;case"keydown":case"keyup":fe=Em;break;case"focusin":he="focus",fe=Gl;break;case"focusout":he="blur",fe=Gl;break;case"beforeblur":case"afterblur":fe=Gl;break;case"click":if(o.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":fe=Pc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":fe=dm;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":fe=Mm;break;case Qc:case Kc:case Gc:fe=gm;break;case qc:fe=Im;break;case"scroll":fe=cm;break;case"wheel":fe=zm;break;case"copy":case"cut":case"paste":fe=ym;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":fe=Tc}var ge=(n&4)!==0,Be=!ge&&e==="scroll",W=ge?ne!==null?ne+"Capture":null:ne;ge=[];for(var $=K,X;$!==null;){X=$;var le=X.stateNode;if(X.tag===5&&le!==null&&(X=le,W!==null&&(le=Qn($,W),le!=null&&ge.push(Do($,le,X)))),Be)break;$=$.return}0<ge.length&&(ne=new fe(ne,he,null,o,oe),ie.push({event:ne,listeners:ge}))}}if((n&7)===0){e:{if(ne=e==="mouseover"||e==="pointerover",fe=e==="mouseout"||e==="pointerout",ne&&o!==fo&&(he=o.relatedTarget||o.fromElement)&&(er(he)||he[an]))break e;if((fe||ne)&&(ne=oe.window===oe?oe:(ne=oe.ownerDocument)?ne.defaultView||ne.parentWindow:window,fe?(he=o.relatedTarget||o.toElement,fe=K,he=he?er(he):null,he!==null&&(Be=qt(he),he!==Be||he.tag!==5&&he.tag!==6)&&(he=null)):(fe=null,he=K),fe!==he)){if(ge=Pc,le="onMouseLeave",W="onMouseEnter",$="mouse",(e==="pointerout"||e==="pointerover")&&(ge=Tc,le="onPointerLeave",W="onPointerEnter",$="pointer"),Be=fe==null?ne:$r(fe),X=he==null?ne:$r(he),ne=new ge(le,$+"leave",fe,o,oe),ne.target=Be,ne.relatedTarget=X,le=null,er(oe)===K&&(ge=new ge(W,$+"enter",he,o,oe),ge.target=X,ge.relatedTarget=Be,le=ge),Be=le,fe&&he)t:{for(ge=fe,W=he,$=0,X=ge;X;X=Rr(X))$++;for(X=0,le=W;le;le=Rr(le))X++;for(;0<$-X;)ge=Rr(ge),$--;for(;0<X-$;)W=Rr(W),X--;for(;$--;){if(ge===W||W!==null&&ge===W.alternate)break t;ge=Rr(ge),W=Rr(W)}ge=null}else ge=null;fe!==null&&rf(ie,ne,fe,ge,!1),he!==null&&Be!==null&&rf(ie,Be,he,ge,!0)}}e:{if(ne=K?$r(K):window,fe=ne.nodeName&&ne.nodeName.toLowerCase(),fe==="select"||fe==="input"&&ne.type==="file")var me=Om;else if(Dc(ne))if(Oc)me=bm;else{me=Hm;var _e=Fm}else(fe=ne.nodeName)&&fe.toLowerCase()==="input"&&(ne.type==="checkbox"||ne.type==="radio")&&(me=Vm);if(me&&(me=me(e,K))){$c(ie,me,o,oe);break e}_e&&_e(e,ne,K),e==="focusout"&&(_e=ne._wrapperState)&&_e.controlled&&ne.type==="number"&&at(ne,"number",ne.value)}switch(_e=K?$r(K):window,e){case"focusin":(Dc(_e)||_e.contentEditable==="true")&&(Ar=_e,nu=K,Ao=null);break;case"focusout":Ao=nu=Ar=null;break;case"mousedown":ru=!0;break;case"contextmenu":case"mouseup":case"dragend":ru=!1,Yc(ie,o,oe);break;case"selectionchange":if(Wm)break;case"keydown":case"keyup":Yc(ie,o,oe)}var Se;if(Zl)e:{switch(e){case"compositionstart":var Ee="onCompositionStart";break e;case"compositionend":Ee="onCompositionEnd";break e;case"compositionupdate":Ee="onCompositionUpdate";break e}Ee=void 0}else jr?Lc(e,o)&&(Ee="onCompositionEnd"):e==="keydown"&&o.keyCode===229&&(Ee="onCompositionStart");Ee&&(zc&&o.locale!=="ko"&&(jr||Ee!=="onCompositionStart"?Ee==="onCompositionEnd"&&jr&&(Se=Cc()):(Cn=oe,Yl="value"in Cn?Cn.value:Cn.textContent,jr=!0)),_e=ts(K,Ee),0<_e.length&&(Ee=new Ic(Ee,e,null,o,oe),ie.push({event:Ee,listeners:_e}),Se?Ee.data=Se:(Se=Rc(o),Se!==null&&(Ee.data=Se)))),(Se=Am?Lm(e,o):Rm(e,o))&&(K=ts(K,"onBeforeInput"),0<K.length&&(oe=new Ic("onBeforeInput","beforeinput",null,o,oe),ie.push({event:oe,listeners:K}),oe.data=Se))}tf(ie,n)})}function Do(e,n,o){return{instance:e,listener:n,currentTarget:o}}function ts(e,n){for(var o=n+"Capture",s=[];e!==null;){var f=e,h=f.stateNode;f.tag===5&&h!==null&&(f=h,h=Qn(e,o),h!=null&&s.unshift(Do(e,h,f)),h=Qn(e,n),h!=null&&s.push(Do(e,h,f))),e=e.return}return s}function Rr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function rf(e,n,o,s,f){for(var h=n._reactName,x=[];o!==null&&o!==s;){var T=o,R=T.alternate,K=T.stateNode;if(R!==null&&R===s)break;T.tag===5&&K!==null&&(T=K,f?(R=Qn(o,h),R!=null&&x.unshift(Do(o,R,T))):f||(R=Qn(o,h),R!=null&&x.push(Do(o,R,T)))),o=o.return}x.length!==0&&e.push({event:n,listeners:x})}var Km=/\r\n?/g,Gm=/\u0000|\uFFFD/g;function of(e){return(typeof e=="string"?e:""+e).replace(Km,`
-`).replace(Gm,"")}function ns(e,n,o){if(n=of(n),of(e)!==n&&o)throw Error(i(425))}function rs(){}var au=null,cu=null;function fu(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var du=typeof setTimeout=="function"?setTimeout:void 0,qm=typeof clearTimeout=="function"?clearTimeout:void 0,sf=typeof Promise=="function"?Promise:void 0,Zm=typeof queueMicrotask=="function"?queueMicrotask:typeof sf<"u"?function(e){return sf.resolve(null).then(e).catch(Jm)}:du;function Jm(e){setTimeout(function(){throw e})}function hu(e,n){var o=n,s=0;do{var f=o.nextSibling;if(e.removeChild(o),f&&f.nodeType===8)if(o=f.data,o==="/$"){if(s===0){e.removeChild(f),Co(n);return}s--}else o!=="$"&&o!=="$?"&&o!=="$!"||s++;o=f}while(o);Co(n)}function Pn(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?")break;if(n==="/$")return null}}return e}function lf(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var o=e.data;if(o==="$"||o==="$!"||o==="$?"){if(n===0)return e;n--}else o==="/$"&&n++}e=e.previousSibling}return null}var Dr=Math.random().toString(36).slice(2),Zt="__reactFiber$"+Dr,$o="__reactProps$"+Dr,an="__reactContainer$"+Dr,pu="__reactEvents$"+Dr,e0="__reactListeners$"+Dr,t0="__reactHandles$"+Dr;function er(e){var n=e[Zt];if(n)return n;for(var o=e.parentNode;o;){if(n=o[an]||o[Zt]){if(o=n.alternate,n.child!==null||o!==null&&o.child!==null)for(e=lf(e);e!==null;){if(o=e[Zt])return o;e=lf(e)}return n}e=o,o=e.parentNode}return null}function Oo(e){return e=e[Zt]||e[an],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function $r(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(i(33))}function os(e){return e[$o]||null}var gu=[],Or=-1;function In(e){return{current:e}}function Re(e){0>Or||(e.current=gu[Or],gu[Or]=null,Or--)}function Ae(e,n){Or++,gu[Or]=e.current,e.current=n}var Tn={},nt=In(Tn),ft=In(!1),tr=Tn;function Fr(e,n){var o=e.type.contextTypes;if(!o)return Tn;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===n)return s.__reactInternalMemoizedMaskedChildContext;var f={},h;for(h in o)f[h]=n[h];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=f),f}function dt(e){return e=e.childContextTypes,e!=null}function is(){Re(ft),Re(nt)}function uf(e,n,o){if(nt.current!==Tn)throw Error(i(168));Ae(nt,n),Ae(ft,o)}function af(e,n,o){var s=e.stateNode;if(n=n.childContextTypes,typeof s.getChildContext!="function")return o;s=s.getChildContext();for(var f in s)if(!(f in n))throw Error(i(108,ae(e)||"Unknown",f));return O({},o,s)}function ss(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Tn,tr=nt.current,Ae(nt,e),Ae(ft,ft.current),!0}function cf(e,n,o){var s=e.stateNode;if(!s)throw Error(i(169));o?(e=af(e,n,tr),s.__reactInternalMemoizedMergedChildContext=e,Re(ft),Re(nt),Ae(nt,e)):Re(ft),Ae(ft,o)}var cn=null,ls=!1,mu=!1;function ff(e){cn===null?cn=[e]:cn.push(e)}function n0(e){ls=!0,ff(e)}function zn(){if(!mu&&cn!==null){mu=!0;var e=0,n=je;try{var o=cn;for(je=1;e<o.length;e++){var s=o[e];do s=s(!0);while(s!==null)}cn=null,ls=!1}catch(f){throw cn!==null&&(cn=cn.slice(e+1)),Di(wo,zn),f}finally{je=n,mu=!1}}return null}var Hr=[],Vr=0,us=null,as=0,Tt=[],zt=0,nr=null,fn=1,dn="";function rr(e,n){Hr[Vr++]=as,Hr[Vr++]=us,us=e,as=n}function df(e,n,o){Tt[zt++]=fn,Tt[zt++]=dn,Tt[zt++]=nr,nr=e;var s=fn;e=dn;var f=32-wt(s)-1;s&=~(1<<f),o+=1;var h=32-wt(n)+f;if(30<h){var x=f-f%5;h=(s&(1<<x)-1).toString(32),s>>=x,f-=x,fn=1<<32-wt(n)+f|o<<f|s,dn=h+e}else fn=1<<h|o<<f|s,dn=e}function yu(e){e.return!==null&&(rr(e,1),df(e,1,0))}function vu(e){for(;e===us;)us=Hr[--Vr],Hr[Vr]=null,as=Hr[--Vr],Hr[Vr]=null;for(;e===nr;)nr=Tt[--zt],Tt[zt]=null,dn=Tt[--zt],Tt[zt]=null,fn=Tt[--zt],Tt[zt]=null}var St=null,kt=null,$e=!1,$t=null;function hf(e,n){var o=Rt(5,null,null,0);o.elementType="DELETED",o.stateNode=n,o.return=e,n=e.deletions,n===null?(e.deletions=[o],e.flags|=16):n.push(o)}function pf(e,n){switch(e.tag){case 5:var o=e.type;return n=n.nodeType!==1||o.toLowerCase()!==n.nodeName.toLowerCase()?null:n,n!==null?(e.stateNode=n,St=e,kt=Pn(n.firstChild),!0):!1;case 6:return n=e.pendingProps===""||n.nodeType!==3?null:n,n!==null?(e.stateNode=n,St=e,kt=null,!0):!1;case 13:return n=n.nodeType!==8?null:n,n!==null?(o=nr!==null?{id:fn,overflow:dn}:null,e.memoizedState={dehydrated:n,treeContext:o,retryLane:1073741824},o=Rt(18,null,null,0),o.stateNode=n,o.return=e,e.child=o,St=e,kt=null,!0):!1;default:return!1}}function xu(e){return(e.mode&1)!==0&&(e.flags&128)===0}function wu(e){if($e){var n=kt;if(n){var o=n;if(!pf(e,n)){if(xu(e))throw Error(i(418));n=Pn(o.nextSibling);var s=St;n&&pf(e,n)?hf(s,o):(e.flags=e.flags&-4097|2,$e=!1,St=e)}}else{if(xu(e))throw Error(i(418));e.flags=e.flags&-4097|2,$e=!1,St=e}}}function gf(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;St=e}function cs(e){if(e!==St)return!1;if(!$e)return gf(e),$e=!0,!1;var n;if((n=e.tag!==3)&&!(n=e.tag!==5)&&(n=e.type,n=n!=="head"&&n!=="body"&&!fu(e.type,e.memoizedProps)),n&&(n=kt)){if(xu(e))throw mf(),Error(i(418));for(;n;)hf(e,n),n=Pn(n.nextSibling)}if(gf(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));e:{for(e=e.nextSibling,n=0;e;){if(e.nodeType===8){var o=e.data;if(o==="/$"){if(n===0){kt=Pn(e.nextSibling);break e}n--}else o!=="$"&&o!=="$!"&&o!=="$?"||n++}e=e.nextSibling}kt=null}}else kt=St?Pn(e.stateNode.nextSibling):null;return!0}function mf(){for(var e=kt;e;)e=Pn(e.nextSibling)}function br(){kt=St=null,$e=!1}function _u(e){$t===null?$t=[e]:$t.push(e)}var r0=I.ReactCurrentBatchConfig;function Fo(e,n,o){if(e=o.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(o._owner){if(o=o._owner,o){if(o.tag!==1)throw Error(i(309));var s=o.stateNode}if(!s)throw Error(i(147,e));var f=s,h=""+e;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===h?n.ref:(n=function(x){var T=f.refs;x===null?delete T[h]:T[h]=x},n._stringRef=h,n)}if(typeof e!="string")throw Error(i(284));if(!o._owner)throw Error(i(290,e))}return e}function fs(e,n){throw e=Object.prototype.toString.call(n),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function yf(e){var n=e._init;return n(e._payload)}function vf(e){function n(W,$){if(e){var X=W.deletions;X===null?(W.deletions=[$],W.flags|=16):X.push($)}}function o(W,$){if(!e)return null;for(;$!==null;)n(W,$),$=$.sibling;return null}function s(W,$){for(W=new Map;$!==null;)$.key!==null?W.set($.key,$):W.set($.index,$),$=$.sibling;return W}function f(W,$){return W=Fn(W,$),W.index=0,W.sibling=null,W}function h(W,$,X){return W.index=X,e?(X=W.alternate,X!==null?(X=X.index,X<$?(W.flags|=2,$):X):(W.flags|=2,$)):(W.flags|=1048576,$)}function x(W){return e&&W.alternate===null&&(W.flags|=2),W}function T(W,$,X,le){return $===null||$.tag!==6?($=da(X,W.mode,le),$.return=W,$):($=f($,X),$.return=W,$)}function R(W,$,X,le){var me=X.type;return me===V?oe(W,$,X.props.children,le,X.key):$!==null&&($.elementType===me||typeof me=="object"&&me!==null&&me.$$typeof===H&&yf(me)===$.type)?(le=f($,X.props),le.ref=Fo(W,$,X),le.return=W,le):(le=Rs(X.type,X.key,X.props,null,W.mode,le),le.ref=Fo(W,$,X),le.return=W,le)}function K(W,$,X,le){return $===null||$.tag!==4||$.stateNode.containerInfo!==X.containerInfo||$.stateNode.implementation!==X.implementation?($=ha(X,W.mode,le),$.return=W,$):($=f($,X.children||[]),$.return=W,$)}function oe(W,$,X,le,me){return $===null||$.tag!==7?($=fr(X,W.mode,le,me),$.return=W,$):($=f($,X),$.return=W,$)}function ie(W,$,X){if(typeof $=="string"&&$!==""||typeof $=="number")return $=da(""+$,W.mode,X),$.return=W,$;if(typeof $=="object"&&$!==null){switch($.$$typeof){case F:return X=Rs($.type,$.key,$.props,null,W.mode,X),X.ref=Fo(W,null,$),X.return=W,X;case D:return $=ha($,W.mode,X),$.return=W,$;case H:var le=$._init;return ie(W,le($._payload),X)}if(et($)||A($))return $=fr($,W.mode,X,null),$.return=W,$;fs(W,$)}return null}function ne(W,$,X,le){var me=$!==null?$.key:null;if(typeof X=="string"&&X!==""||typeof X=="number")return me!==null?null:T(W,$,""+X,le);if(typeof X=="object"&&X!==null){switch(X.$$typeof){case F:return X.key===me?R(W,$,X,le):null;case D:return X.key===me?K(W,$,X,le):null;case H:return me=X._init,ne(W,$,me(X._payload),le)}if(et(X)||A(X))return me!==null?null:oe(W,$,X,le,null);fs(W,X)}return null}function fe(W,$,X,le,me){if(typeof le=="string"&&le!==""||typeof le=="number")return W=W.get(X)||null,T($,W,""+le,me);if(typeof le=="object"&&le!==null){switch(le.$$typeof){case F:return W=W.get(le.key===null?X:le.key)||null,R($,W,le,me);case D:return W=W.get(le.key===null?X:le.key)||null,K($,W,le,me);case H:var _e=le._init;return fe(W,$,X,_e(le._payload),me)}if(et(le)||A(le))return W=W.get(X)||null,oe($,W,le,me,null);fs($,le)}return null}function he(W,$,X,le){for(var me=null,_e=null,Se=$,Ee=$=0,Ge=null;Se!==null&&Ee<X.length;Ee++){Se.index>Ee?(Ge=Se,Se=null):Ge=Se.sibling;var Te=ne(W,Se,X[Ee],le);if(Te===null){Se===null&&(Se=Ge);break}e&&Se&&Te.alternate===null&&n(W,Se),$=h(Te,$,Ee),_e===null?me=Te:_e.sibling=Te,_e=Te,Se=Ge}if(Ee===X.length)return o(W,Se),$e&&rr(W,Ee),me;if(Se===null){for(;Ee<X.length;Ee++)Se=ie(W,X[Ee],le),Se!==null&&($=h(Se,$,Ee),_e===null?me=Se:_e.sibling=Se,_e=Se);return $e&&rr(W,Ee),me}for(Se=s(W,Se);Ee<X.length;Ee++)Ge=fe(Se,W,Ee,X[Ee],le),Ge!==null&&(e&&Ge.alternate!==null&&Se.delete(Ge.key===null?Ee:Ge.key),$=h(Ge,$,Ee),_e===null?me=Ge:_e.sibling=Ge,_e=Ge);return e&&Se.forEach(function(Hn){return n(W,Hn)}),$e&&rr(W,Ee),me}function ge(W,$,X,le){var me=A(X);if(typeof me!="function")throw Error(i(150));if(X=me.call(X),X==null)throw Error(i(151));for(var _e=me=null,Se=$,Ee=$=0,Ge=null,Te=X.next();Se!==null&&!Te.done;Ee++,Te=X.next()){Se.index>Ee?(Ge=Se,Se=null):Ge=Se.sibling;var Hn=ne(W,Se,Te.value,le);if(Hn===null){Se===null&&(Se=Ge);break}e&&Se&&Hn.alternate===null&&n(W,Se),$=h(Hn,$,Ee),_e===null?me=Hn:_e.sibling=Hn,_e=Hn,Se=Ge}if(Te.done)return o(W,Se),$e&&rr(W,Ee),me;if(Se===null){for(;!Te.done;Ee++,Te=X.next())Te=ie(W,Te.value,le),Te!==null&&($=h(Te,$,Ee),_e===null?me=Te:_e.sibling=Te,_e=Te);return $e&&rr(W,Ee),me}for(Se=s(W,Se);!Te.done;Ee++,Te=X.next())Te=fe(Se,W,Ee,Te.value,le),Te!==null&&(e&&Te.alternate!==null&&Se.delete(Te.key===null?Ee:Te.key),$=h(Te,$,Ee),_e===null?me=Te:_e.sibling=Te,_e=Te);return e&&Se.forEach(function(D0){return n(W,D0)}),$e&&rr(W,Ee),me}function Be(W,$,X,le){if(typeof X=="object"&&X!==null&&X.type===V&&X.key===null&&(X=X.props.children),typeof X=="object"&&X!==null){switch(X.$$typeof){case F:e:{for(var me=X.key,_e=$;_e!==null;){if(_e.key===me){if(me=X.type,me===V){if(_e.tag===7){o(W,_e.sibling),$=f(_e,X.props.children),$.return=W,W=$;break e}}else if(_e.elementType===me||typeof me=="object"&&me!==null&&me.$$typeof===H&&yf(me)===_e.type){o(W,_e.sibling),$=f(_e,X.props),$.ref=Fo(W,_e,X),$.return=W,W=$;break e}o(W,_e);break}else n(W,_e);_e=_e.sibling}X.type===V?($=fr(X.props.children,W.mode,le,X.key),$.return=W,W=$):(le=Rs(X.type,X.key,X.props,null,W.mode,le),le.ref=Fo(W,$,X),le.return=W,W=le)}return x(W);case D:e:{for(_e=X.key;$!==null;){if($.key===_e)if($.tag===4&&$.stateNode.containerInfo===X.containerInfo&&$.stateNode.implementation===X.implementation){o(W,$.sibling),$=f($,X.children||[]),$.return=W,W=$;break e}else{o(W,$);break}else n(W,$);$=$.sibling}$=ha(X,W.mode,le),$.return=W,W=$}return x(W);case H:return _e=X._init,Be(W,$,_e(X._payload),le)}if(et(X))return he(W,$,X,le);if(A(X))return ge(W,$,X,le);fs(W,X)}return typeof X=="string"&&X!==""||typeof X=="number"?(X=""+X,$!==null&&$.tag===6?(o(W,$.sibling),$=f($,X),$.return=W,W=$):(o(W,$),$=da(X,W.mode,le),$.return=W,W=$),x(W)):o(W,$)}return Be}var Br=vf(!0),xf=vf(!1),ds=In(null),hs=null,Ur=null,Su=null;function ku(){Su=Ur=hs=null}function Eu(e){var n=ds.current;Re(ds),e._currentValue=n}function Nu(e,n,o){for(;e!==null;){var s=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,s!==null&&(s.childLanes|=n)):s!==null&&(s.childLanes&n)!==n&&(s.childLanes|=n),e===o)break;e=e.return}}function Wr(e,n){hs=e,Su=Ur=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(ht=!0),e.firstContext=null)}function jt(e){var n=e._currentValue;if(Su!==e)if(e={context:e,memoizedValue:n,next:null},Ur===null){if(hs===null)throw Error(i(308));Ur=e,hs.dependencies={lanes:0,firstContext:e}}else Ur=Ur.next=e;return n}var or=null;function Cu(e){or===null?or=[e]:or.push(e)}function wf(e,n,o,s){var f=n.interleaved;return f===null?(o.next=o,Cu(n)):(o.next=f.next,f.next=o),n.interleaved=o,hn(e,s)}function hn(e,n){e.lanes|=n;var o=e.alternate;for(o!==null&&(o.lanes|=n),o=e,e=e.return;e!==null;)e.childLanes|=n,o=e.alternate,o!==null&&(o.childLanes|=n),o=e,e=e.return;return o.tag===3?o.stateNode:null}var jn=!1;function Mu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function _f(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function pn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function An(e,n,o){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(Pe&2)!==0){var f=s.pending;return f===null?n.next=n:(n.next=f.next,f.next=n),s.pending=n,hn(e,o)}return f=s.interleaved,f===null?(n.next=n,Cu(s)):(n.next=f.next,f.next=n),s.interleaved=n,hn(e,o)}function ps(e,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var s=n.lanes;s&=e.pendingLanes,o|=s,n.lanes=o,Ir(e,o)}}function Sf(e,n){var o=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,o===s)){var f=null,h=null;if(o=o.firstBaseUpdate,o!==null){do{var x={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};h===null?f=h=x:h=h.next=x,o=o.next}while(o!==null);h===null?f=h=n:h=h.next=n}else f=h=n;o={baseState:s.baseState,firstBaseUpdate:f,lastBaseUpdate:h,shared:s.shared,effects:s.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=n:e.next=n,o.lastBaseUpdate=n}function gs(e,n,o,s){var f=e.updateQueue;jn=!1;var h=f.firstBaseUpdate,x=f.lastBaseUpdate,T=f.shared.pending;if(T!==null){f.shared.pending=null;var R=T,K=R.next;R.next=null,x===null?h=K:x.next=K,x=R;var oe=e.alternate;oe!==null&&(oe=oe.updateQueue,T=oe.lastBaseUpdate,T!==x&&(T===null?oe.firstBaseUpdate=K:T.next=K,oe.lastBaseUpdate=R))}if(h!==null){var ie=f.baseState;x=0,oe=K=R=null,T=h;do{var ne=T.lane,fe=T.eventTime;if((s&ne)===ne){oe!==null&&(oe=oe.next={eventTime:fe,lane:0,tag:T.tag,payload:T.payload,callback:T.callback,next:null});e:{var he=e,ge=T;switch(ne=n,fe=o,ge.tag){case 1:if(he=ge.payload,typeof he=="function"){ie=he.call(fe,ie,ne);break e}ie=he;break e;case 3:he.flags=he.flags&-65537|128;case 0:if(he=ge.payload,ne=typeof he=="function"?he.call(fe,ie,ne):he,ne==null)break e;ie=O({},ie,ne);break e;case 2:jn=!0}}T.callback!==null&&T.lane!==0&&(e.flags|=64,ne=f.effects,ne===null?f.effects=[T]:ne.push(T))}else fe={eventTime:fe,lane:ne,tag:T.tag,payload:T.payload,callback:T.callback,next:null},oe===null?(K=oe=fe,R=ie):oe=oe.next=fe,x|=ne;if(T=T.next,T===null){if(T=f.shared.pending,T===null)break;ne=T,T=ne.next,ne.next=null,f.lastBaseUpdate=ne,f.shared.pending=null}}while(!0);if(oe===null&&(R=ie),f.baseState=R,f.firstBaseUpdate=K,f.lastBaseUpdate=oe,n=f.shared.interleaved,n!==null){f=n;do x|=f.lane,f=f.next;while(f!==n)}else h===null&&(f.shared.lanes=0);lr|=x,e.lanes=x,e.memoizedState=ie}}function kf(e,n,o){if(e=n.effects,n.effects=null,e!==null)for(n=0;n<e.length;n++){var s=e[n],f=s.callback;if(f!==null){if(s.callback=null,s=o,typeof f!="function")throw Error(i(191,f));f.call(s)}}}var Ho={},Jt=In(Ho),Vo=In(Ho),bo=In(Ho);function ir(e){if(e===Ho)throw Error(i(174));return e}function Pu(e,n){switch(Ae(bo,n),Ae(Vo,e),Ae(Jt,Ho),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:vt(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=vt(n,e)}Re(Jt),Ae(Jt,n)}function Yr(){Re(Jt),Re(Vo),Re(bo)}function Ef(e){ir(bo.current);var n=ir(Jt.current),o=vt(n,e.type);n!==o&&(Ae(Vo,e),Ae(Jt,o))}function Iu(e){Vo.current===e&&(Re(Jt),Re(Vo))}var Fe=In(0);function ms(e){for(var n=e;n!==null;){if(n.tag===13){var o=n.memoizedState;if(o!==null&&(o=o.dehydrated,o===null||o.data==="$?"||o.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Tu=[];function zu(){for(var e=0;e<Tu.length;e++)Tu[e]._workInProgressVersionPrimary=null;Tu.length=0}var ys=I.ReactCurrentDispatcher,ju=I.ReactCurrentBatchConfig,sr=0,He=null,Ye=null,Qe=null,vs=!1,Bo=!1,Uo=0,o0=0;function rt(){throw Error(i(321))}function Au(e,n){if(n===null)return!1;for(var o=0;o<n.length&&o<e.length;o++)if(!Dt(e[o],n[o]))return!1;return!0}function Lu(e,n,o,s,f,h){if(sr=h,He=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,ys.current=e===null||e.memoizedState===null?u0:a0,e=o(s,f),Bo){h=0;do{if(Bo=!1,Uo=0,25<=h)throw Error(i(301));h+=1,Qe=Ye=null,n.updateQueue=null,ys.current=c0,e=o(s,f)}while(Bo)}if(ys.current=_s,n=Ye!==null&&Ye.next!==null,sr=0,Qe=Ye=He=null,vs=!1,n)throw Error(i(300));return e}function Ru(){var e=Uo!==0;return Uo=0,e}function en(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Qe===null?He.memoizedState=Qe=e:Qe=Qe.next=e,Qe}function At(){if(Ye===null){var e=He.alternate;e=e!==null?e.memoizedState:null}else e=Ye.next;var n=Qe===null?He.memoizedState:Qe.next;if(n!==null)Qe=n,Ye=e;else{if(e===null)throw Error(i(310));Ye=e,e={memoizedState:Ye.memoizedState,baseState:Ye.baseState,baseQueue:Ye.baseQueue,queue:Ye.queue,next:null},Qe===null?He.memoizedState=Qe=e:Qe=Qe.next=e}return Qe}function Wo(e,n){return typeof n=="function"?n(e):n}function Du(e){var n=At(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=Ye,f=s.baseQueue,h=o.pending;if(h!==null){if(f!==null){var x=f.next;f.next=h.next,h.next=x}s.baseQueue=f=h,o.pending=null}if(f!==null){h=f.next,s=s.baseState;var T=x=null,R=null,K=h;do{var oe=K.lane;if((sr&oe)===oe)R!==null&&(R=R.next={lane:0,action:K.action,hasEagerState:K.hasEagerState,eagerState:K.eagerState,next:null}),s=K.hasEagerState?K.eagerState:e(s,K.action);else{var ie={lane:oe,action:K.action,hasEagerState:K.hasEagerState,eagerState:K.eagerState,next:null};R===null?(T=R=ie,x=s):R=R.next=ie,He.lanes|=oe,lr|=oe}K=K.next}while(K!==null&&K!==h);R===null?x=s:R.next=T,Dt(s,n.memoizedState)||(ht=!0),n.memoizedState=s,n.baseState=x,n.baseQueue=R,o.lastRenderedState=s}if(e=o.interleaved,e!==null){f=e;do h=f.lane,He.lanes|=h,lr|=h,f=f.next;while(f!==e)}else f===null&&(o.lanes=0);return[n.memoizedState,o.dispatch]}function $u(e){var n=At(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=o.dispatch,f=o.pending,h=n.memoizedState;if(f!==null){o.pending=null;var x=f=f.next;do h=e(h,x.action),x=x.next;while(x!==f);Dt(h,n.memoizedState)||(ht=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),o.lastRenderedState=h}return[h,s]}function Nf(){}function Cf(e,n){var o=He,s=At(),f=n(),h=!Dt(s.memoizedState,f);if(h&&(s.memoizedState=f,ht=!0),s=s.queue,Ou(If.bind(null,o,s,e),[e]),s.getSnapshot!==n||h||Qe!==null&&Qe.memoizedState.tag&1){if(o.flags|=2048,Yo(9,Pf.bind(null,o,s,f,n),void 0,null),Ke===null)throw Error(i(349));(sr&30)!==0||Mf(o,n,f)}return f}function Mf(e,n,o){e.flags|=16384,e={getSnapshot:n,value:o},n=He.updateQueue,n===null?(n={lastEffect:null,stores:null},He.updateQueue=n,n.stores=[e]):(o=n.stores,o===null?n.stores=[e]:o.push(e))}function Pf(e,n,o,s){n.value=o,n.getSnapshot=s,Tf(n)&&zf(e)}function If(e,n,o){return o(function(){Tf(n)&&zf(e)})}function Tf(e){var n=e.getSnapshot;e=e.value;try{var o=n();return!Dt(e,o)}catch{return!0}}function zf(e){var n=hn(e,1);n!==null&&Vt(n,e,1,-1)}function jf(e){var n=en();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Wo,lastRenderedState:e},n.queue=e,e=e.dispatch=l0.bind(null,He,e),[n.memoizedState,e]}function Yo(e,n,o,s){return e={tag:e,create:n,destroy:o,deps:s,next:null},n=He.updateQueue,n===null?(n={lastEffect:null,stores:null},He.updateQueue=n,n.lastEffect=e.next=e):(o=n.lastEffect,o===null?n.lastEffect=e.next=e:(s=o.next,o.next=e,e.next=s,n.lastEffect=e)),e}function Af(){return At().memoizedState}function xs(e,n,o,s){var f=en();He.flags|=e,f.memoizedState=Yo(1|n,o,void 0,s===void 0?null:s)}function ws(e,n,o,s){var f=At();s=s===void 0?null:s;var h=void 0;if(Ye!==null){var x=Ye.memoizedState;if(h=x.destroy,s!==null&&Au(s,x.deps)){f.memoizedState=Yo(n,o,h,s);return}}He.flags|=e,f.memoizedState=Yo(1|n,o,h,s)}function Lf(e,n){return xs(8390656,8,e,n)}function Ou(e,n){return ws(2048,8,e,n)}function Rf(e,n){return ws(4,2,e,n)}function Df(e,n){return ws(4,4,e,n)}function $f(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function Of(e,n,o){return o=o!=null?o.concat([e]):null,ws(4,4,$f.bind(null,n,e),o)}function Fu(){}function Ff(e,n){var o=At();n=n===void 0?null:n;var s=o.memoizedState;return s!==null&&n!==null&&Au(n,s[1])?s[0]:(o.memoizedState=[e,n],e)}function Hf(e,n){var o=At();n=n===void 0?null:n;var s=o.memoizedState;return s!==null&&n!==null&&Au(n,s[1])?s[0]:(e=e(),o.memoizedState=[e,n],e)}function Vf(e,n,o){return(sr&21)===0?(e.baseState&&(e.baseState=!1,ht=!0),e.memoizedState=o):(Dt(o,n)||(o=bi(),He.lanes|=o,lr|=o,e.baseState=!0),n)}function i0(e,n){var o=je;je=o!==0&&4>o?o:4,e(!0);var s=ju.transition;ju.transition={};try{e(!1),n()}finally{je=o,ju.transition=s}}function bf(){return At().memoizedState}function s0(e,n,o){var s=$n(e);if(o={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null},Bf(e))Uf(n,o);else if(o=wf(e,n,o,s),o!==null){var f=ut();Vt(o,e,s,f),Wf(o,n,s)}}function l0(e,n,o){var s=$n(e),f={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null};if(Bf(e))Uf(n,f);else{var h=e.alternate;if(e.lanes===0&&(h===null||h.lanes===0)&&(h=n.lastRenderedReducer,h!==null))try{var x=n.lastRenderedState,T=h(x,o);if(f.hasEagerState=!0,f.eagerState=T,Dt(T,x)){var R=n.interleaved;R===null?(f.next=f,Cu(n)):(f.next=R.next,R.next=f),n.interleaved=f;return}}catch{}finally{}o=wf(e,n,f,s),o!==null&&(f=ut(),Vt(o,e,s,f),Wf(o,n,s))}}function Bf(e){var n=e.alternate;return e===He||n!==null&&n===He}function Uf(e,n){Bo=vs=!0;var o=e.pending;o===null?n.next=n:(n.next=o.next,o.next=n),e.pending=n}function Wf(e,n,o){if((o&4194240)!==0){var s=n.lanes;s&=e.pendingLanes,o|=s,n.lanes=o,Ir(e,o)}}var _s={readContext:jt,useCallback:rt,useContext:rt,useEffect:rt,useImperativeHandle:rt,useInsertionEffect:rt,useLayoutEffect:rt,useMemo:rt,useReducer:rt,useRef:rt,useState:rt,useDebugValue:rt,useDeferredValue:rt,useTransition:rt,useMutableSource:rt,useSyncExternalStore:rt,useId:rt,unstable_isNewReconciler:!1},u0={readContext:jt,useCallback:function(e,n){return en().memoizedState=[e,n===void 0?null:n],e},useContext:jt,useEffect:Lf,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,xs(4194308,4,$f.bind(null,n,e),o)},useLayoutEffect:function(e,n){return xs(4194308,4,e,n)},useInsertionEffect:function(e,n){return xs(4,2,e,n)},useMemo:function(e,n){var o=en();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var s=en();return n=o!==void 0?o(n):n,s.memoizedState=s.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},s.queue=e,e=e.dispatch=s0.bind(null,He,e),[s.memoizedState,e]},useRef:function(e){var n=en();return e={current:e},n.memoizedState=e},useState:jf,useDebugValue:Fu,useDeferredValue:function(e){return en().memoizedState=e},useTransition:function(){var e=jf(!1),n=e[0];return e=i0.bind(null,e[1]),en().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var s=He,f=en();if($e){if(o===void 0)throw Error(i(407));o=o()}else{if(o=n(),Ke===null)throw Error(i(349));(sr&30)!==0||Mf(s,n,o)}f.memoizedState=o;var h={value:o,getSnapshot:n};return f.queue=h,Lf(If.bind(null,s,h,e),[e]),s.flags|=2048,Yo(9,Pf.bind(null,s,h,o,n),void 0,null),o},useId:function(){var e=en(),n=Ke.identifierPrefix;if($e){var o=dn,s=fn;o=(s&~(1<<32-wt(s)-1)).toString(32)+o,n=":"+n+"R"+o,o=Uo++,0<o&&(n+="H"+o.toString(32)),n+=":"}else o=o0++,n=":"+n+"r"+o.toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},a0={readContext:jt,useCallback:Ff,useContext:jt,useEffect:Ou,useImperativeHandle:Of,useInsertionEffect:Rf,useLayoutEffect:Df,useMemo:Hf,useReducer:Du,useRef:Af,useState:function(){return Du(Wo)},useDebugValue:Fu,useDeferredValue:function(e){var n=At();return Vf(n,Ye.memoizedState,e)},useTransition:function(){var e=Du(Wo)[0],n=At().memoizedState;return[e,n]},useMutableSource:Nf,useSyncExternalStore:Cf,useId:bf,unstable_isNewReconciler:!1},c0={readContext:jt,useCallback:Ff,useContext:jt,useEffect:Ou,useImperativeHandle:Of,useInsertionEffect:Rf,useLayoutEffect:Df,useMemo:Hf,useReducer:$u,useRef:Af,useState:function(){return $u(Wo)},useDebugValue:Fu,useDeferredValue:function(e){var n=At();return Ye===null?n.memoizedState=e:Vf(n,Ye.memoizedState,e)},useTransition:function(){var e=$u(Wo)[0],n=At().memoizedState;return[e,n]},useMutableSource:Nf,useSyncExternalStore:Cf,useId:bf,unstable_isNewReconciler:!1};function Ot(e,n){if(e&&e.defaultProps){n=O({},n),e=e.defaultProps;for(var o in e)n[o]===void 0&&(n[o]=e[o]);return n}return n}function Hu(e,n,o,s){n=e.memoizedState,o=o(s,n),o=o==null?n:O({},n,o),e.memoizedState=o,e.lanes===0&&(e.updateQueue.baseState=o)}var Ss={isMounted:function(e){return(e=e._reactInternals)?qt(e)===e:!1},enqueueSetState:function(e,n,o){e=e._reactInternals;var s=ut(),f=$n(e),h=pn(s,f);h.payload=n,o!=null&&(h.callback=o),n=An(e,h,f),n!==null&&(Vt(n,e,f,s),ps(n,e,f))},enqueueReplaceState:function(e,n,o){e=e._reactInternals;var s=ut(),f=$n(e),h=pn(s,f);h.tag=1,h.payload=n,o!=null&&(h.callback=o),n=An(e,h,f),n!==null&&(Vt(n,e,f,s),ps(n,e,f))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var o=ut(),s=$n(e),f=pn(o,s);f.tag=2,n!=null&&(f.callback=n),n=An(e,f,s),n!==null&&(Vt(n,e,s,o),ps(n,e,s))}};function Yf(e,n,o,s,f,h,x){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,h,x):n.prototype&&n.prototype.isPureReactComponent?!jo(o,s)||!jo(f,h):!0}function Xf(e,n,o){var s=!1,f=Tn,h=n.contextType;return typeof h=="object"&&h!==null?h=jt(h):(f=dt(n)?tr:nt.current,s=n.contextTypes,h=(s=s!=null)?Fr(e,f):Tn),n=new n(o,h),e.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=Ss,e.stateNode=n,n._reactInternals=e,s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=f,e.__reactInternalMemoizedMaskedChildContext=h),n}function Qf(e,n,o,s){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(o,s),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(o,s),n.state!==e&&Ss.enqueueReplaceState(n,n.state,null)}function Vu(e,n,o,s){var f=e.stateNode;f.props=o,f.state=e.memoizedState,f.refs={},Mu(e);var h=n.contextType;typeof h=="object"&&h!==null?f.context=jt(h):(h=dt(n)?tr:nt.current,f.context=Fr(e,h)),f.state=e.memoizedState,h=n.getDerivedStateFromProps,typeof h=="function"&&(Hu(e,n,h,o),f.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof f.getSnapshotBeforeUpdate=="function"||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(n=f.state,typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount(),n!==f.state&&Ss.enqueueReplaceState(f,f.state,null),gs(e,o,f,s),f.state=e.memoizedState),typeof f.componentDidMount=="function"&&(e.flags|=4194308)}function Xr(e,n){try{var o="",s=n;do o+=ue(s),s=s.return;while(s);var f=o}catch(h){f=`
-Error generating stack: `+h.message+`
-`+h.stack}return{value:e,source:n,stack:f,digest:null}}function bu(e,n,o){return{value:e,source:null,stack:o??null,digest:n??null}}function Bu(e,n){try{console.error(n.value)}catch(o){setTimeout(function(){throw o})}}var f0=typeof WeakMap=="function"?WeakMap:Map;function Kf(e,n,o){o=pn(-1,o),o.tag=3,o.payload={element:null};var s=n.value;return o.callback=function(){Is||(Is=!0,oa=s),Bu(e,n)},o}function Gf(e,n,o){o=pn(-1,o),o.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var f=n.value;o.payload=function(){return s(f)},o.callback=function(){Bu(e,n)}}var h=e.stateNode;return h!==null&&typeof h.componentDidCatch=="function"&&(o.callback=function(){Bu(e,n),typeof s!="function"&&(Rn===null?Rn=new Set([this]):Rn.add(this));var x=n.stack;this.componentDidCatch(n.value,{componentStack:x!==null?x:""})}),o}function qf(e,n,o){var s=e.pingCache;if(s===null){s=e.pingCache=new f0;var f=new Set;s.set(n,f)}else f=s.get(n),f===void 0&&(f=new Set,s.set(n,f));f.has(o)||(f.add(o),e=N0.bind(null,e,n,o),n.then(e,e))}function Zf(e){do{var n;if((n=e.tag===13)&&(n=e.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return e;e=e.return}while(e!==null);return null}function Jf(e,n,o,s,f){return(e.mode&1)===0?(e===n?e.flags|=65536:(e.flags|=128,o.flags|=131072,o.flags&=-52805,o.tag===1&&(o.alternate===null?o.tag=17:(n=pn(-1,1),n.tag=2,An(o,n,1))),o.lanes|=1),e):(e.flags|=65536,e.lanes=f,e)}var d0=I.ReactCurrentOwner,ht=!1;function lt(e,n,o,s){n.child=e===null?xf(n,null,o,s):Br(n,e.child,o,s)}function ed(e,n,o,s,f){o=o.render;var h=n.ref;return Wr(n,f),s=Lu(e,n,o,s,h,f),o=Ru(),e!==null&&!ht?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,gn(e,n,f)):($e&&o&&yu(n),n.flags|=1,lt(e,n,s,f),n.child)}function td(e,n,o,s,f){if(e===null){var h=o.type;return typeof h=="function"&&!fa(h)&&h.defaultProps===void 0&&o.compare===null&&o.defaultProps===void 0?(n.tag=15,n.type=h,nd(e,n,h,s,f)):(e=Rs(o.type,null,s,n,n.mode,f),e.ref=n.ref,e.return=n,n.child=e)}if(h=e.child,(e.lanes&f)===0){var x=h.memoizedProps;if(o=o.compare,o=o!==null?o:jo,o(x,s)&&e.ref===n.ref)return gn(e,n,f)}return n.flags|=1,e=Fn(h,s),e.ref=n.ref,e.return=n,n.child=e}function nd(e,n,o,s,f){if(e!==null){var h=e.memoizedProps;if(jo(h,s)&&e.ref===n.ref)if(ht=!1,n.pendingProps=s=h,(e.lanes&f)!==0)(e.flags&131072)!==0&&(ht=!0);else return n.lanes=e.lanes,gn(e,n,f)}return Uu(e,n,o,s,f)}function rd(e,n,o){var s=n.pendingProps,f=s.children,h=e!==null?e.memoizedState:null;if(s.mode==="hidden")if((n.mode&1)===0)n.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ae(Kr,Et),Et|=o;else{if((o&1073741824)===0)return e=h!==null?h.baseLanes|o:o,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,Ae(Kr,Et),Et|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=h!==null?h.baseLanes:o,Ae(Kr,Et),Et|=s}else h!==null?(s=h.baseLanes|o,n.memoizedState=null):s=o,Ae(Kr,Et),Et|=s;return lt(e,n,f,o),n.child}function od(e,n){var o=n.ref;(e===null&&o!==null||e!==null&&e.ref!==o)&&(n.flags|=512,n.flags|=2097152)}function Uu(e,n,o,s,f){var h=dt(o)?tr:nt.current;return h=Fr(n,h),Wr(n,f),o=Lu(e,n,o,s,h,f),s=Ru(),e!==null&&!ht?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,gn(e,n,f)):($e&&s&&yu(n),n.flags|=1,lt(e,n,o,f),n.child)}function id(e,n,o,s,f){if(dt(o)){var h=!0;ss(n)}else h=!1;if(Wr(n,f),n.stateNode===null)Es(e,n),Xf(n,o,s),Vu(n,o,s,f),s=!0;else if(e===null){var x=n.stateNode,T=n.memoizedProps;x.props=T;var R=x.context,K=o.contextType;typeof K=="object"&&K!==null?K=jt(K):(K=dt(o)?tr:nt.current,K=Fr(n,K));var oe=o.getDerivedStateFromProps,ie=typeof oe=="function"||typeof x.getSnapshotBeforeUpdate=="function";ie||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(T!==s||R!==K)&&Qf(n,x,s,K),jn=!1;var ne=n.memoizedState;x.state=ne,gs(n,s,x,f),R=n.memoizedState,T!==s||ne!==R||ft.current||jn?(typeof oe=="function"&&(Hu(n,o,oe,s),R=n.memoizedState),(T=jn||Yf(n,o,T,s,ne,R,K))?(ie||typeof x.UNSAFE_componentWillMount!="function"&&typeof x.componentWillMount!="function"||(typeof x.componentWillMount=="function"&&x.componentWillMount(),typeof x.UNSAFE_componentWillMount=="function"&&x.UNSAFE_componentWillMount()),typeof x.componentDidMount=="function"&&(n.flags|=4194308)):(typeof x.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=s,n.memoizedState=R),x.props=s,x.state=R,x.context=K,s=T):(typeof x.componentDidMount=="function"&&(n.flags|=4194308),s=!1)}else{x=n.stateNode,_f(e,n),T=n.memoizedProps,K=n.type===n.elementType?T:Ot(n.type,T),x.props=K,ie=n.pendingProps,ne=x.context,R=o.contextType,typeof R=="object"&&R!==null?R=jt(R):(R=dt(o)?tr:nt.current,R=Fr(n,R));var fe=o.getDerivedStateFromProps;(oe=typeof fe=="function"||typeof x.getSnapshotBeforeUpdate=="function")||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(T!==ie||ne!==R)&&Qf(n,x,s,R),jn=!1,ne=n.memoizedState,x.state=ne,gs(n,s,x,f);var he=n.memoizedState;T!==ie||ne!==he||ft.current||jn?(typeof fe=="function"&&(Hu(n,o,fe,s),he=n.memoizedState),(K=jn||Yf(n,o,K,s,ne,he,R)||!1)?(oe||typeof x.UNSAFE_componentWillUpdate!="function"&&typeof x.componentWillUpdate!="function"||(typeof x.componentWillUpdate=="function"&&x.componentWillUpdate(s,he,R),typeof x.UNSAFE_componentWillUpdate=="function"&&x.UNSAFE_componentWillUpdate(s,he,R)),typeof x.componentDidUpdate=="function"&&(n.flags|=4),typeof x.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof x.componentDidUpdate!="function"||T===e.memoizedProps&&ne===e.memoizedState||(n.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||T===e.memoizedProps&&ne===e.memoizedState||(n.flags|=1024),n.memoizedProps=s,n.memoizedState=he),x.props=s,x.state=he,x.context=R,s=K):(typeof x.componentDidUpdate!="function"||T===e.memoizedProps&&ne===e.memoizedState||(n.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||T===e.memoizedProps&&ne===e.memoizedState||(n.flags|=1024),s=!1)}return Wu(e,n,o,s,h,f)}function Wu(e,n,o,s,f,h){od(e,n);var x=(n.flags&128)!==0;if(!s&&!x)return f&&cf(n,o,!1),gn(e,n,h);s=n.stateNode,d0.current=n;var T=x&&typeof o.getDerivedStateFromError!="function"?null:s.render();return n.flags|=1,e!==null&&x?(n.child=Br(n,e.child,null,h),n.child=Br(n,null,T,h)):lt(e,n,T,h),n.memoizedState=s.state,f&&cf(n,o,!0),n.child}function sd(e){var n=e.stateNode;n.pendingContext?uf(e,n.pendingContext,n.pendingContext!==n.context):n.context&&uf(e,n.context,!1),Pu(e,n.containerInfo)}function ld(e,n,o,s,f){return br(),_u(f),n.flags|=256,lt(e,n,o,s),n.child}var Yu={dehydrated:null,treeContext:null,retryLane:0};function Xu(e){return{baseLanes:e,cachePool:null,transitions:null}}function ud(e,n,o){var s=n.pendingProps,f=Fe.current,h=!1,x=(n.flags&128)!==0,T;if((T=x)||(T=e!==null&&e.memoizedState===null?!1:(f&2)!==0),T?(h=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(f|=1),Ae(Fe,f&1),e===null)return wu(n),e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((n.mode&1)===0?n.lanes=1:e.data==="$!"?n.lanes=8:n.lanes=1073741824,null):(x=s.children,e=s.fallback,h?(s=n.mode,h=n.child,x={mode:"hidden",children:x},(s&1)===0&&h!==null?(h.childLanes=0,h.pendingProps=x):h=Ds(x,s,0,null),e=fr(e,s,o,null),h.return=n,e.return=n,h.sibling=e,n.child=h,n.child.memoizedState=Xu(o),n.memoizedState=Yu,e):Qu(n,x));if(f=e.memoizedState,f!==null&&(T=f.dehydrated,T!==null))return h0(e,n,x,s,T,f,o);if(h){h=s.fallback,x=n.mode,f=e.child,T=f.sibling;var R={mode:"hidden",children:s.children};return(x&1)===0&&n.child!==f?(s=n.child,s.childLanes=0,s.pendingProps=R,n.deletions=null):(s=Fn(f,R),s.subtreeFlags=f.subtreeFlags&14680064),T!==null?h=Fn(T,h):(h=fr(h,x,o,null),h.flags|=2),h.return=n,s.return=n,s.sibling=h,n.child=s,s=h,h=n.child,x=e.child.memoizedState,x=x===null?Xu(o):{baseLanes:x.baseLanes|o,cachePool:null,transitions:x.transitions},h.memoizedState=x,h.childLanes=e.childLanes&~o,n.memoizedState=Yu,s}return h=e.child,e=h.sibling,s=Fn(h,{mode:"visible",children:s.children}),(n.mode&1)===0&&(s.lanes=o),s.return=n,s.sibling=null,e!==null&&(o=n.deletions,o===null?(n.deletions=[e],n.flags|=16):o.push(e)),n.child=s,n.memoizedState=null,s}function Qu(e,n){return n=Ds({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function ks(e,n,o,s){return s!==null&&_u(s),Br(n,e.child,null,o),e=Qu(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function h0(e,n,o,s,f,h,x){if(o)return n.flags&256?(n.flags&=-257,s=bu(Error(i(422))),ks(e,n,x,s)):n.memoizedState!==null?(n.child=e.child,n.flags|=128,null):(h=s.fallback,f=n.mode,s=Ds({mode:"visible",children:s.children},f,0,null),h=fr(h,f,x,null),h.flags|=2,s.return=n,h.return=n,s.sibling=h,n.child=s,(n.mode&1)!==0&&Br(n,e.child,null,x),n.child.memoizedState=Xu(x),n.memoizedState=Yu,h);if((n.mode&1)===0)return ks(e,n,x,null);if(f.data==="$!"){if(s=f.nextSibling&&f.nextSibling.dataset,s)var T=s.dgst;return s=T,h=Error(i(419)),s=bu(h,s,void 0),ks(e,n,x,s)}if(T=(x&e.childLanes)!==0,ht||T){if(s=Ke,s!==null){switch(x&-x){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=268435456;break;default:f=0}f=(f&(s.suspendedLanes|x))!==0?0:f,f!==0&&f!==h.retryLane&&(h.retryLane=f,hn(e,f),Vt(s,e,f,-1))}return ca(),s=bu(Error(i(421))),ks(e,n,x,s)}return f.data==="$?"?(n.flags|=128,n.child=e.child,n=C0.bind(null,e),f._reactRetry=n,null):(e=h.treeContext,kt=Pn(f.nextSibling),St=n,$e=!0,$t=null,e!==null&&(Tt[zt++]=fn,Tt[zt++]=dn,Tt[zt++]=nr,fn=e.id,dn=e.overflow,nr=n),n=Qu(n,s.children),n.flags|=4096,n)}function ad(e,n,o){e.lanes|=n;var s=e.alternate;s!==null&&(s.lanes|=n),Nu(e.return,n,o)}function Ku(e,n,o,s,f){var h=e.memoizedState;h===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:s,tail:o,tailMode:f}:(h.isBackwards=n,h.rendering=null,h.renderingStartTime=0,h.last=s,h.tail=o,h.tailMode=f)}function cd(e,n,o){var s=n.pendingProps,f=s.revealOrder,h=s.tail;if(lt(e,n,s.children,o),s=Fe.current,(s&2)!==0)s=s&1|2,n.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ad(e,o,n);else if(e.tag===19)ad(e,o,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(Ae(Fe,s),(n.mode&1)===0)n.memoizedState=null;else switch(f){case"forwards":for(o=n.child,f=null;o!==null;)e=o.alternate,e!==null&&ms(e)===null&&(f=o),o=o.sibling;o=f,o===null?(f=n.child,n.child=null):(f=o.sibling,o.sibling=null),Ku(n,!1,f,o,h);break;case"backwards":for(o=null,f=n.child,n.child=null;f!==null;){if(e=f.alternate,e!==null&&ms(e)===null){n.child=f;break}e=f.sibling,f.sibling=o,o=f,f=e}Ku(n,!0,o,null,h);break;case"together":Ku(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Es(e,n){(n.mode&1)===0&&e!==null&&(e.alternate=null,n.alternate=null,n.flags|=2)}function gn(e,n,o){if(e!==null&&(n.dependencies=e.dependencies),lr|=n.lanes,(o&n.childLanes)===0)return null;if(e!==null&&n.child!==e.child)throw Error(i(153));if(n.child!==null){for(e=n.child,o=Fn(e,e.pendingProps),n.child=o,o.return=n;e.sibling!==null;)e=e.sibling,o=o.sibling=Fn(e,e.pendingProps),o.return=n;o.sibling=null}return n.child}function p0(e,n,o){switch(n.tag){case 3:sd(n),br();break;case 5:Ef(n);break;case 1:dt(n.type)&&ss(n);break;case 4:Pu(n,n.stateNode.containerInfo);break;case 10:var s=n.type._context,f=n.memoizedProps.value;Ae(ds,s._currentValue),s._currentValue=f;break;case 13:if(s=n.memoizedState,s!==null)return s.dehydrated!==null?(Ae(Fe,Fe.current&1),n.flags|=128,null):(o&n.child.childLanes)!==0?ud(e,n,o):(Ae(Fe,Fe.current&1),e=gn(e,n,o),e!==null?e.sibling:null);Ae(Fe,Fe.current&1);break;case 19:if(s=(o&n.childLanes)!==0,(e.flags&128)!==0){if(s)return cd(e,n,o);n.flags|=128}if(f=n.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),Ae(Fe,Fe.current),s)break;return null;case 22:case 23:return n.lanes=0,rd(e,n,o)}return gn(e,n,o)}var fd,Gu,dd,hd;fd=function(e,n){for(var o=n.child;o!==null;){if(o.tag===5||o.tag===6)e.appendChild(o.stateNode);else if(o.tag!==4&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===n)break;for(;o.sibling===null;){if(o.return===null||o.return===n)return;o=o.return}o.sibling.return=o.return,o=o.sibling}},Gu=function(){},dd=function(e,n,o,s){var f=e.memoizedProps;if(f!==s){e=n.stateNode,ir(Jt.current);var h=null;switch(o){case"input":f=ke(e,f),s=ke(e,s),h=[];break;case"select":f=O({},f,{value:void 0}),s=O({},s,{value:void 0}),h=[];break;case"textarea":f=sn(e,f),s=sn(e,s),h=[];break;default:typeof f.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=rs)}ao(o,s);var x;o=null;for(K in f)if(!s.hasOwnProperty(K)&&f.hasOwnProperty(K)&&f[K]!=null)if(K==="style"){var T=f[K];for(x in T)T.hasOwnProperty(x)&&(o||(o={}),o[x]="")}else K!=="dangerouslySetInnerHTML"&&K!=="children"&&K!=="suppressContentEditableWarning"&&K!=="suppressHydrationWarning"&&K!=="autoFocus"&&(u.hasOwnProperty(K)?h||(h=[]):(h=h||[]).push(K,null));for(K in s){var R=s[K];if(T=f!=null?f[K]:void 0,s.hasOwnProperty(K)&&R!==T&&(R!=null||T!=null))if(K==="style")if(T){for(x in T)!T.hasOwnProperty(x)||R&&R.hasOwnProperty(x)||(o||(o={}),o[x]="");for(x in R)R.hasOwnProperty(x)&&T[x]!==R[x]&&(o||(o={}),o[x]=R[x])}else o||(h||(h=[]),h.push(K,o)),o=R;else K==="dangerouslySetInnerHTML"?(R=R?R.__html:void 0,T=T?T.__html:void 0,R!=null&&T!==R&&(h=h||[]).push(K,R)):K==="children"?typeof R!="string"&&typeof R!="number"||(h=h||[]).push(K,""+R):K!=="suppressContentEditableWarning"&&K!=="suppressHydrationWarning"&&(u.hasOwnProperty(K)?(R!=null&&K==="onScroll"&&Le("scroll",e),h||T===R||(h=[])):(h=h||[]).push(K,R))}o&&(h=h||[]).push("style",o);var K=h;(n.updateQueue=K)&&(n.flags|=4)}},hd=function(e,n,o,s){o!==s&&(n.flags|=4)};function Xo(e,n){if(!$e)switch(e.tailMode){case"hidden":n=e.tail;for(var o=null;n!==null;)n.alternate!==null&&(o=n),n=n.sibling;o===null?e.tail=null:o.sibling=null;break;case"collapsed":o=e.tail;for(var s=null;o!==null;)o.alternate!==null&&(s=o),o=o.sibling;s===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function ot(e){var n=e.alternate!==null&&e.alternate.child===e.child,o=0,s=0;if(n)for(var f=e.child;f!==null;)o|=f.lanes|f.childLanes,s|=f.subtreeFlags&14680064,s|=f.flags&14680064,f.return=e,f=f.sibling;else for(f=e.child;f!==null;)o|=f.lanes|f.childLanes,s|=f.subtreeFlags,s|=f.flags,f.return=e,f=f.sibling;return e.subtreeFlags|=s,e.childLanes=o,n}function g0(e,n,o){var s=n.pendingProps;switch(vu(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ot(n),null;case 1:return dt(n.type)&&is(),ot(n),null;case 3:return s=n.stateNode,Yr(),Re(ft),Re(nt),zu(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(cs(n)?n.flags|=4:e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,$t!==null&&(la($t),$t=null))),Gu(e,n),ot(n),null;case 5:Iu(n);var f=ir(bo.current);if(o=n.type,e!==null&&n.stateNode!=null)dd(e,n,o,s,f),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!s){if(n.stateNode===null)throw Error(i(166));return ot(n),null}if(e=ir(Jt.current),cs(n)){s=n.stateNode,o=n.type;var h=n.memoizedProps;switch(s[Zt]=n,s[$o]=h,e=(n.mode&1)!==0,o){case"dialog":Le("cancel",s),Le("close",s);break;case"iframe":case"object":case"embed":Le("load",s);break;case"video":case"audio":for(f=0;f<Lo.length;f++)Le(Lo[f],s);break;case"source":Le("error",s);break;case"img":case"image":case"link":Le("error",s),Le("load",s);break;case"details":Le("toggle",s);break;case"input":Ne(s,h),Le("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!h.multiple},Le("invalid",s);break;case"textarea":Kt(s,h),Le("invalid",s)}ao(o,h),f=null;for(var x in h)if(h.hasOwnProperty(x)){var T=h[x];x==="children"?typeof T=="string"?s.textContent!==T&&(h.suppressHydrationWarning!==!0&&ns(s.textContent,T,e),f=["children",T]):typeof T=="number"&&s.textContent!==""+T&&(h.suppressHydrationWarning!==!0&&ns(s.textContent,T,e),f=["children",""+T]):u.hasOwnProperty(x)&&T!=null&&x==="onScroll"&&Le("scroll",s)}switch(o){case"input":xe(s),st(s,h,!0);break;case"textarea":xe(s),ct(s);break;case"select":case"option":break;default:typeof h.onClick=="function"&&(s.onclick=rs)}s=f,n.updateQueue=s,s!==null&&(n.flags|=4)}else{x=f.nodeType===9?f:f.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Pt(o)),e==="http://www.w3.org/1999/xhtml"?o==="script"?(e=x.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=x.createElement(o,{is:s.is}):(e=x.createElement(o),o==="select"&&(x=e,s.multiple?x.multiple=!0:s.size&&(x.size=s.size))):e=x.createElementNS(e,o),e[Zt]=n,e[$o]=s,fd(e,n,!1,!1),n.stateNode=e;e:{switch(x=co(o,s),o){case"dialog":Le("cancel",e),Le("close",e),f=s;break;case"iframe":case"object":case"embed":Le("load",e),f=s;break;case"video":case"audio":for(f=0;f<Lo.length;f++)Le(Lo[f],e);f=s;break;case"source":Le("error",e),f=s;break;case"img":case"image":case"link":Le("error",e),Le("load",e),f=s;break;case"details":Le("toggle",e),f=s;break;case"input":Ne(e,s),f=ke(e,s),Le("invalid",e);break;case"option":f=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},f=O({},s,{value:void 0}),Le("invalid",e);break;case"textarea":Kt(e,s),f=sn(e,s),Le("invalid",e);break;default:f=s}ao(o,f),T=f;for(h in T)if(T.hasOwnProperty(h)){var R=T[h];h==="style"?Mi(e,R):h==="dangerouslySetInnerHTML"?(R=R?R.__html:void 0,R!=null&&Sr(e,R)):h==="children"?typeof R=="string"?(o!=="textarea"||R!=="")&&ln(e,R):typeof R=="number"&&ln(e,""+R):h!=="suppressContentEditableWarning"&&h!=="suppressHydrationWarning"&&h!=="autoFocus"&&(u.hasOwnProperty(h)?R!=null&&h==="onScroll"&&Le("scroll",e):R!=null&&_(e,h,R,x))}switch(o){case"input":xe(e),st(e,s,!1);break;case"textarea":xe(e),ct(e);break;case"option":s.value!=null&&e.setAttribute("value",""+G(s.value));break;case"select":e.multiple=!!s.multiple,h=s.value,h!=null?tt(e,!!s.multiple,h,!1):s.defaultValue!=null&&tt(e,!!s.multiple,s.defaultValue,!0);break;default:typeof f.onClick=="function"&&(e.onclick=rs)}switch(o){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return ot(n),null;case 6:if(e&&n.stateNode!=null)hd(e,n,e.memoizedProps,s);else{if(typeof s!="string"&&n.stateNode===null)throw Error(i(166));if(o=ir(bo.current),ir(Jt.current),cs(n)){if(s=n.stateNode,o=n.memoizedProps,s[Zt]=n,(h=s.nodeValue!==o)&&(e=St,e!==null))switch(e.tag){case 3:ns(s.nodeValue,o,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&ns(s.nodeValue,o,(e.mode&1)!==0)}h&&(n.flags|=4)}else s=(o.nodeType===9?o:o.ownerDocument).createTextNode(s),s[Zt]=n,n.stateNode=s}return ot(n),null;case 13:if(Re(Fe),s=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if($e&&kt!==null&&(n.mode&1)!==0&&(n.flags&128)===0)mf(),br(),n.flags|=98560,h=!1;else if(h=cs(n),s!==null&&s.dehydrated!==null){if(e===null){if(!h)throw Error(i(318));if(h=n.memoizedState,h=h!==null?h.dehydrated:null,!h)throw Error(i(317));h[Zt]=n}else br(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;ot(n),h=!1}else $t!==null&&(la($t),$t=null),h=!0;if(!h)return n.flags&65536?n:null}return(n.flags&128)!==0?(n.lanes=o,n):(s=s!==null,s!==(e!==null&&e.memoizedState!==null)&&s&&(n.child.flags|=8192,(n.mode&1)!==0&&(e===null||(Fe.current&1)!==0?Xe===0&&(Xe=3):ca())),n.updateQueue!==null&&(n.flags|=4),ot(n),null);case 4:return Yr(),Gu(e,n),e===null&&Ro(n.stateNode.containerInfo),ot(n),null;case 10:return Eu(n.type._context),ot(n),null;case 17:return dt(n.type)&&is(),ot(n),null;case 19:if(Re(Fe),h=n.memoizedState,h===null)return ot(n),null;if(s=(n.flags&128)!==0,x=h.rendering,x===null)if(s)Xo(h,!1);else{if(Xe!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(x=ms(e),x!==null){for(n.flags|=128,Xo(h,!1),s=x.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),n.subtreeFlags=0,s=o,o=n.child;o!==null;)h=o,e=s,h.flags&=14680066,x=h.alternate,x===null?(h.childLanes=0,h.lanes=e,h.child=null,h.subtreeFlags=0,h.memoizedProps=null,h.memoizedState=null,h.updateQueue=null,h.dependencies=null,h.stateNode=null):(h.childLanes=x.childLanes,h.lanes=x.lanes,h.child=x.child,h.subtreeFlags=0,h.deletions=null,h.memoizedProps=x.memoizedProps,h.memoizedState=x.memoizedState,h.updateQueue=x.updateQueue,h.type=x.type,e=x.dependencies,h.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),o=o.sibling;return Ae(Fe,Fe.current&1|2),n.child}e=e.sibling}h.tail!==null&&Oe()>Gr&&(n.flags|=128,s=!0,Xo(h,!1),n.lanes=4194304)}else{if(!s)if(e=ms(x),e!==null){if(n.flags|=128,s=!0,o=e.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),Xo(h,!0),h.tail===null&&h.tailMode==="hidden"&&!x.alternate&&!$e)return ot(n),null}else 2*Oe()-h.renderingStartTime>Gr&&o!==1073741824&&(n.flags|=128,s=!0,Xo(h,!1),n.lanes=4194304);h.isBackwards?(x.sibling=n.child,n.child=x):(o=h.last,o!==null?o.sibling=x:n.child=x,h.last=x)}return h.tail!==null?(n=h.tail,h.rendering=n,h.tail=n.sibling,h.renderingStartTime=Oe(),n.sibling=null,o=Fe.current,Ae(Fe,s?o&1|2:o&1),n):(ot(n),null);case 22:case 23:return aa(),s=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(n.flags|=8192),s&&(n.mode&1)!==0?(Et&1073741824)!==0&&(ot(n),n.subtreeFlags&6&&(n.flags|=8192)):ot(n),null;case 24:return null;case 25:return null}throw Error(i(156,n.tag))}function m0(e,n){switch(vu(n),n.tag){case 1:return dt(n.type)&&is(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Yr(),Re(ft),Re(nt),zu(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return Iu(n),null;case 13:if(Re(Fe),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(i(340));br()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return Re(Fe),null;case 4:return Yr(),null;case 10:return Eu(n.type._context),null;case 22:case 23:return aa(),null;case 24:return null;default:return null}}var Ns=!1,it=!1,y0=typeof WeakSet=="function"?WeakSet:Set,de=null;function Qr(e,n){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(s){be(e,n,s)}else o.current=null}function qu(e,n,o){try{o()}catch(s){be(e,n,s)}}var pd=!1;function v0(e,n){if(au=Wi,e=Wc(),tu(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var s=o.getSelection&&o.getSelection();if(s&&s.rangeCount!==0){o=s.anchorNode;var f=s.anchorOffset,h=s.focusNode;s=s.focusOffset;try{o.nodeType,h.nodeType}catch{o=null;break e}var x=0,T=-1,R=-1,K=0,oe=0,ie=e,ne=null;t:for(;;){for(var fe;ie!==o||f!==0&&ie.nodeType!==3||(T=x+f),ie!==h||s!==0&&ie.nodeType!==3||(R=x+s),ie.nodeType===3&&(x+=ie.nodeValue.length),(fe=ie.firstChild)!==null;)ne=ie,ie=fe;for(;;){if(ie===e)break t;if(ne===o&&++K===f&&(T=x),ne===h&&++oe===s&&(R=x),(fe=ie.nextSibling)!==null)break;ie=ne,ne=ie.parentNode}ie=fe}o=T===-1||R===-1?null:{start:T,end:R}}else o=null}o=o||{start:0,end:0}}else o=null;for(cu={focusedElem:e,selectionRange:o},Wi=!1,de=n;de!==null;)if(n=de,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,de=e;else for(;de!==null;){n=de;try{var he=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(he!==null){var ge=he.memoizedProps,Be=he.memoizedState,W=n.stateNode,$=W.getSnapshotBeforeUpdate(n.elementType===n.type?ge:Ot(n.type,ge),Be);W.__reactInternalSnapshotBeforeUpdate=$}break;case 3:var X=n.stateNode.containerInfo;X.nodeType===1?X.textContent="":X.nodeType===9&&X.documentElement&&X.removeChild(X.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(le){be(n,n.return,le)}if(e=n.sibling,e!==null){e.return=n.return,de=e;break}de=n.return}return he=pd,pd=!1,he}function Qo(e,n,o){var s=n.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var f=s=s.next;do{if((f.tag&e)===e){var h=f.destroy;f.destroy=void 0,h!==void 0&&qu(n,o,h)}f=f.next}while(f!==s)}}function Cs(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var s=o.create;o.destroy=s()}o=o.next}while(o!==n)}}function Zu(e){var n=e.ref;if(n!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof n=="function"?n(e):n.current=e}}function gd(e){var n=e.alternate;n!==null&&(e.alternate=null,gd(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Zt],delete n[$o],delete n[pu],delete n[e0],delete n[t0])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function md(e){return e.tag===5||e.tag===3||e.tag===4}function yd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||md(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ju(e,n,o){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(e,n):o.insertBefore(e,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(e,o)):(n=o,n.appendChild(e)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=rs));else if(s!==4&&(e=e.child,e!==null))for(Ju(e,n,o),e=e.sibling;e!==null;)Ju(e,n,o),e=e.sibling}function ea(e,n,o){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?o.insertBefore(e,n):o.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(ea(e,n,o),e=e.sibling;e!==null;)ea(e,n,o),e=e.sibling}var Ze=null,Ft=!1;function Ln(e,n,o){for(o=o.child;o!==null;)vd(e,n,o),o=o.sibling}function vd(e,n,o){if(xt&&typeof xt.onCommitFiberUnmount=="function")try{xt.onCommitFiberUnmount(Cr,o)}catch{}switch(o.tag){case 5:it||Qr(o,n);case 6:var s=Ze,f=Ft;Ze=null,Ln(e,n,o),Ze=s,Ft=f,Ze!==null&&(Ft?(e=Ze,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):Ze.removeChild(o.stateNode));break;case 18:Ze!==null&&(Ft?(e=Ze,o=o.stateNode,e.nodeType===8?hu(e.parentNode,o):e.nodeType===1&&hu(e,o),Co(e)):hu(Ze,o.stateNode));break;case 4:s=Ze,f=Ft,Ze=o.stateNode.containerInfo,Ft=!0,Ln(e,n,o),Ze=s,Ft=f;break;case 0:case 11:case 14:case 15:if(!it&&(s=o.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){f=s=s.next;do{var h=f,x=h.destroy;h=h.tag,x!==void 0&&((h&2)!==0||(h&4)!==0)&&qu(o,n,x),f=f.next}while(f!==s)}Ln(e,n,o);break;case 1:if(!it&&(Qr(o,n),s=o.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=o.memoizedProps,s.state=o.memoizedState,s.componentWillUnmount()}catch(T){be(o,n,T)}Ln(e,n,o);break;case 21:Ln(e,n,o);break;case 22:o.mode&1?(it=(s=it)||o.memoizedState!==null,Ln(e,n,o),it=s):Ln(e,n,o);break;default:Ln(e,n,o)}}function xd(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new y0),n.forEach(function(s){var f=M0.bind(null,e,s);o.has(s)||(o.add(s),s.then(f,f))})}}function Ht(e,n){var o=n.deletions;if(o!==null)for(var s=0;s<o.length;s++){var f=o[s];try{var h=e,x=n,T=x;e:for(;T!==null;){switch(T.tag){case 5:Ze=T.stateNode,Ft=!1;break e;case 3:Ze=T.stateNode.containerInfo,Ft=!0;break e;case 4:Ze=T.stateNode.containerInfo,Ft=!0;break e}T=T.return}if(Ze===null)throw Error(i(160));vd(h,x,f),Ze=null,Ft=!1;var R=f.alternate;R!==null&&(R.return=null),f.return=null}catch(K){be(f,n,K)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)wd(n,e),n=n.sibling}function wd(e,n){var o=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ht(n,e),tn(e),s&4){try{Qo(3,e,e.return),Cs(3,e)}catch(ge){be(e,e.return,ge)}try{Qo(5,e,e.return)}catch(ge){be(e,e.return,ge)}}break;case 1:Ht(n,e),tn(e),s&512&&o!==null&&Qr(o,o.return);break;case 5:if(Ht(n,e),tn(e),s&512&&o!==null&&Qr(o,o.return),e.flags&32){var f=e.stateNode;try{ln(f,"")}catch(ge){be(e,e.return,ge)}}if(s&4&&(f=e.stateNode,f!=null)){var h=e.memoizedProps,x=o!==null?o.memoizedProps:h,T=e.type,R=e.updateQueue;if(e.updateQueue=null,R!==null)try{T==="input"&&h.type==="radio"&&h.name!=null&&Me(f,h),co(T,x);var K=co(T,h);for(x=0;x<R.length;x+=2){var oe=R[x],ie=R[x+1];oe==="style"?Mi(f,ie):oe==="dangerouslySetInnerHTML"?Sr(f,ie):oe==="children"?ln(f,ie):_(f,oe,ie,K)}switch(T){case"input":ze(f,h);break;case"textarea":Gt(f,h);break;case"select":var ne=f._wrapperState.wasMultiple;f._wrapperState.wasMultiple=!!h.multiple;var fe=h.value;fe!=null?tt(f,!!h.multiple,fe,!1):ne!==!!h.multiple&&(h.defaultValue!=null?tt(f,!!h.multiple,h.defaultValue,!0):tt(f,!!h.multiple,h.multiple?[]:"",!1))}f[$o]=h}catch(ge){be(e,e.return,ge)}}break;case 6:if(Ht(n,e),tn(e),s&4){if(e.stateNode===null)throw Error(i(162));f=e.stateNode,h=e.memoizedProps;try{f.nodeValue=h}catch(ge){be(e,e.return,ge)}}break;case 3:if(Ht(n,e),tn(e),s&4&&o!==null&&o.memoizedState.isDehydrated)try{Co(n.containerInfo)}catch(ge){be(e,e.return,ge)}break;case 4:Ht(n,e),tn(e);break;case 13:Ht(n,e),tn(e),f=e.child,f.flags&8192&&(h=f.memoizedState!==null,f.stateNode.isHidden=h,!h||f.alternate!==null&&f.alternate.memoizedState!==null||(ra=Oe())),s&4&&xd(e);break;case 22:if(oe=o!==null&&o.memoizedState!==null,e.mode&1?(it=(K=it)||oe,Ht(n,e),it=K):Ht(n,e),tn(e),s&8192){if(K=e.memoizedState!==null,(e.stateNode.isHidden=K)&&!oe&&(e.mode&1)!==0)for(de=e,oe=e.child;oe!==null;){for(ie=de=oe;de!==null;){switch(ne=de,fe=ne.child,ne.tag){case 0:case 11:case 14:case 15:Qo(4,ne,ne.return);break;case 1:Qr(ne,ne.return);var he=ne.stateNode;if(typeof he.componentWillUnmount=="function"){s=ne,o=ne.return;try{n=s,he.props=n.memoizedProps,he.state=n.memoizedState,he.componentWillUnmount()}catch(ge){be(s,o,ge)}}break;case 5:Qr(ne,ne.return);break;case 22:if(ne.memoizedState!==null){kd(ie);continue}}fe!==null?(fe.return=ne,de=fe):kd(ie)}oe=oe.sibling}e:for(oe=null,ie=e;;){if(ie.tag===5){if(oe===null){oe=ie;try{f=ie.stateNode,K?(h=f.style,typeof h.setProperty=="function"?h.setProperty("display","none","important"):h.display="none"):(T=ie.stateNode,R=ie.memoizedProps.style,x=R!=null&&R.hasOwnProperty("display")?R.display:null,T.style.display=Ci("display",x))}catch(ge){be(e,e.return,ge)}}}else if(ie.tag===6){if(oe===null)try{ie.stateNode.nodeValue=K?"":ie.memoizedProps}catch(ge){be(e,e.return,ge)}}else if((ie.tag!==22&&ie.tag!==23||ie.memoizedState===null||ie===e)&&ie.child!==null){ie.child.return=ie,ie=ie.child;continue}if(ie===e)break e;for(;ie.sibling===null;){if(ie.return===null||ie.return===e)break e;oe===ie&&(oe=null),ie=ie.return}oe===ie&&(oe=null),ie.sibling.return=ie.return,ie=ie.sibling}}break;case 19:Ht(n,e),tn(e),s&4&&xd(e);break;case 21:break;default:Ht(n,e),tn(e)}}function tn(e){var n=e.flags;if(n&2){try{e:{for(var o=e.return;o!==null;){if(md(o)){var s=o;break e}o=o.return}throw Error(i(160))}switch(s.tag){case 5:var f=s.stateNode;s.flags&32&&(ln(f,""),s.flags&=-33);var h=yd(e);ea(e,h,f);break;case 3:case 4:var x=s.stateNode.containerInfo,T=yd(e);Ju(e,T,x);break;default:throw Error(i(161))}}catch(R){be(e,e.return,R)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function x0(e,n,o){de=e,_d(e)}function _d(e,n,o){for(var s=(e.mode&1)!==0;de!==null;){var f=de,h=f.child;if(f.tag===22&&s){var x=f.memoizedState!==null||Ns;if(!x){var T=f.alternate,R=T!==null&&T.memoizedState!==null||it;T=Ns;var K=it;if(Ns=x,(it=R)&&!K)for(de=f;de!==null;)x=de,R=x.child,x.tag===22&&x.memoizedState!==null?Ed(f):R!==null?(R.return=x,de=R):Ed(f);for(;h!==null;)de=h,_d(h),h=h.sibling;de=f,Ns=T,it=K}Sd(e)}else(f.subtreeFlags&8772)!==0&&h!==null?(h.return=f,de=h):Sd(e)}}function Sd(e){for(;de!==null;){var n=de;if((n.flags&8772)!==0){var o=n.alternate;try{if((n.flags&8772)!==0)switch(n.tag){case 0:case 11:case 15:it||Cs(5,n);break;case 1:var s=n.stateNode;if(n.flags&4&&!it)if(o===null)s.componentDidMount();else{var f=n.elementType===n.type?o.memoizedProps:Ot(n.type,o.memoizedProps);s.componentDidUpdate(f,o.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var h=n.updateQueue;h!==null&&kf(n,h,s);break;case 3:var x=n.updateQueue;if(x!==null){if(o=null,n.child!==null)switch(n.child.tag){case 5:o=n.child.stateNode;break;case 1:o=n.child.stateNode}kf(n,x,o)}break;case 5:var T=n.stateNode;if(o===null&&n.flags&4){o=T;var R=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":R.autoFocus&&o.focus();break;case"img":R.src&&(o.src=R.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var K=n.alternate;if(K!==null){var oe=K.memoizedState;if(oe!==null){var ie=oe.dehydrated;ie!==null&&Co(ie)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}it||n.flags&512&&Zu(n)}catch(ne){be(n,n.return,ne)}}if(n===e){de=null;break}if(o=n.sibling,o!==null){o.return=n.return,de=o;break}de=n.return}}function kd(e){for(;de!==null;){var n=de;if(n===e){de=null;break}var o=n.sibling;if(o!==null){o.return=n.return,de=o;break}de=n.return}}function Ed(e){for(;de!==null;){var n=de;try{switch(n.tag){case 0:case 11:case 15:var o=n.return;try{Cs(4,n)}catch(R){be(n,o,R)}break;case 1:var s=n.stateNode;if(typeof s.componentDidMount=="function"){var f=n.return;try{s.componentDidMount()}catch(R){be(n,f,R)}}var h=n.return;try{Zu(n)}catch(R){be(n,h,R)}break;case 5:var x=n.return;try{Zu(n)}catch(R){be(n,x,R)}}}catch(R){be(n,n.return,R)}if(n===e){de=null;break}var T=n.sibling;if(T!==null){T.return=n.return,de=T;break}de=n.return}}var w0=Math.ceil,Ms=I.ReactCurrentDispatcher,ta=I.ReactCurrentOwner,Lt=I.ReactCurrentBatchConfig,Pe=0,Ke=null,Ue=null,Je=0,Et=0,Kr=In(0),Xe=0,Ko=null,lr=0,Ps=0,na=0,Go=null,pt=null,ra=0,Gr=1/0,mn=null,Is=!1,oa=null,Rn=null,Ts=!1,Dn=null,zs=0,qo=0,ia=null,js=-1,As=0;function ut(){return(Pe&6)!==0?Oe():js!==-1?js:js=Oe()}function $n(e){return(e.mode&1)===0?1:(Pe&2)!==0&&Je!==0?Je&-Je:r0.transition!==null?(As===0&&(As=bi()),As):(e=je,e!==0||(e=window.event,e=e===void 0?16:Nc(e.type)),e)}function Vt(e,n,o,s){if(50<qo)throw qo=0,ia=null,Error(i(185));Jn(e,o,s),((Pe&2)===0||e!==Ke)&&(e===Ke&&((Pe&2)===0&&(Ps|=o),Xe===4&&On(e,Je)),gt(e,s),o===1&&Pe===0&&(n.mode&1)===0&&(Gr=Oe()+500,ls&&zn()))}function gt(e,n){var o=e.callbackNode;Vi(e,n);var s=un(e,e===Ke?Je:0);if(s===0)o!==null&&$i(o),e.callbackNode=null,e.callbackPriority=0;else if(n=s&-s,e.callbackPriority!==n){if(o!=null&&$i(o),n===1)e.tag===0?n0(Cd.bind(null,e)):ff(Cd.bind(null,e)),Zm(function(){(Pe&6)===0&&zn()}),o=null;else{switch(yc(s)){case 1:o=wo;break;case 4:o=Fi;break;case 16:o=Nr;break;case 536870912:o=Hi;break;default:o=Nr}o=Ld(o,Nd.bind(null,e))}e.callbackPriority=n,e.callbackNode=o}}function Nd(e,n){if(js=-1,As=0,(Pe&6)!==0)throw Error(i(327));var o=e.callbackNode;if(qr()&&e.callbackNode!==o)return null;var s=un(e,e===Ke?Je:0);if(s===0)return null;if((s&30)!==0||(s&e.expiredLanes)!==0||n)n=Ls(e,s);else{n=s;var f=Pe;Pe|=2;var h=Pd();(Ke!==e||Je!==n)&&(mn=null,Gr=Oe()+500,ar(e,n));do try{k0();break}catch(T){Md(e,T)}while(!0);ku(),Ms.current=h,Pe=f,Ue!==null?n=0:(Ke=null,Je=0,n=Xe)}if(n!==0){if(n===2&&(f=_o(e),f!==0&&(s=f,n=sa(e,f))),n===1)throw o=Ko,ar(e,0),On(e,s),gt(e,Oe()),o;if(n===6)On(e,s);else{if(f=e.current.alternate,(s&30)===0&&!_0(f)&&(n=Ls(e,s),n===2&&(h=_o(e),h!==0&&(s=h,n=sa(e,h))),n===1))throw o=Ko,ar(e,0),On(e,s),gt(e,Oe()),o;switch(e.finishedWork=f,e.finishedLanes=s,n){case 0:case 1:throw Error(i(345));case 2:cr(e,pt,mn);break;case 3:if(On(e,s),(s&130023424)===s&&(n=ra+500-Oe(),10<n)){if(un(e,0)!==0)break;if(f=e.suspendedLanes,(f&s)!==s){ut(),e.pingedLanes|=e.suspendedLanes&f;break}e.timeoutHandle=du(cr.bind(null,e,pt,mn),n);break}cr(e,pt,mn);break;case 4:if(On(e,s),(s&4194240)===s)break;for(n=e.eventTimes,f=-1;0<s;){var x=31-wt(s);h=1<<x,x=n[x],x>f&&(f=x),s&=~h}if(s=f,s=Oe()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*w0(s/1960))-s,10<s){e.timeoutHandle=du(cr.bind(null,e,pt,mn),s);break}cr(e,pt,mn);break;case 5:cr(e,pt,mn);break;default:throw Error(i(329))}}}return gt(e,Oe()),e.callbackNode===o?Nd.bind(null,e):null}function sa(e,n){var o=Go;return e.current.memoizedState.isDehydrated&&(ar(e,n).flags|=256),e=Ls(e,n),e!==2&&(n=pt,pt=o,n!==null&&la(n)),e}function la(e){pt===null?pt=e:pt.push.apply(pt,e)}function _0(e){for(var n=e;;){if(n.flags&16384){var o=n.updateQueue;if(o!==null&&(o=o.stores,o!==null))for(var s=0;s<o.length;s++){var f=o[s],h=f.getSnapshot;f=f.value;try{if(!Dt(h(),f))return!1}catch{return!1}}}if(o=n.child,n.subtreeFlags&16384&&o!==null)o.return=n,n=o;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function On(e,n){for(n&=~na,n&=~Ps,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var o=31-wt(n),s=1<<o;e[o]=-1,n&=~s}}function Cd(e){if((Pe&6)!==0)throw Error(i(327));qr();var n=un(e,0);if((n&1)===0)return gt(e,Oe()),null;var o=Ls(e,n);if(e.tag!==0&&o===2){var s=_o(e);s!==0&&(n=s,o=sa(e,s))}if(o===1)throw o=Ko,ar(e,0),On(e,n),gt(e,Oe()),o;if(o===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,cr(e,pt,mn),gt(e,Oe()),null}function ua(e,n){var o=Pe;Pe|=1;try{return e(n)}finally{Pe=o,Pe===0&&(Gr=Oe()+500,ls&&zn())}}function ur(e){Dn!==null&&Dn.tag===0&&(Pe&6)===0&&qr();var n=Pe;Pe|=1;var o=Lt.transition,s=je;try{if(Lt.transition=null,je=1,e)return e()}finally{je=s,Lt.transition=o,Pe=n,(Pe&6)===0&&zn()}}function aa(){Et=Kr.current,Re(Kr)}function ar(e,n){e.finishedWork=null,e.finishedLanes=0;var o=e.timeoutHandle;if(o!==-1&&(e.timeoutHandle=-1,qm(o)),Ue!==null)for(o=Ue.return;o!==null;){var s=o;switch(vu(s),s.tag){case 1:s=s.type.childContextTypes,s!=null&&is();break;case 3:Yr(),Re(ft),Re(nt),zu();break;case 5:Iu(s);break;case 4:Yr();break;case 13:Re(Fe);break;case 19:Re(Fe);break;case 10:Eu(s.type._context);break;case 22:case 23:aa()}o=o.return}if(Ke=e,Ue=e=Fn(e.current,null),Je=Et=n,Xe=0,Ko=null,na=Ps=lr=0,pt=Go=null,or!==null){for(n=0;n<or.length;n++)if(o=or[n],s=o.interleaved,s!==null){o.interleaved=null;var f=s.next,h=o.pending;if(h!==null){var x=h.next;h.next=f,s.next=x}o.pending=s}or=null}return e}function Md(e,n){do{var o=Ue;try{if(ku(),ys.current=_s,vs){for(var s=He.memoizedState;s!==null;){var f=s.queue;f!==null&&(f.pending=null),s=s.next}vs=!1}if(sr=0,Qe=Ye=He=null,Bo=!1,Uo=0,ta.current=null,o===null||o.return===null){Xe=1,Ko=n,Ue=null;break}e:{var h=e,x=o.return,T=o,R=n;if(n=Je,T.flags|=32768,R!==null&&typeof R=="object"&&typeof R.then=="function"){var K=R,oe=T,ie=oe.tag;if((oe.mode&1)===0&&(ie===0||ie===11||ie===15)){var ne=oe.alternate;ne?(oe.updateQueue=ne.updateQueue,oe.memoizedState=ne.memoizedState,oe.lanes=ne.lanes):(oe.updateQueue=null,oe.memoizedState=null)}var fe=Zf(x);if(fe!==null){fe.flags&=-257,Jf(fe,x,T,h,n),fe.mode&1&&qf(h,K,n),n=fe,R=K;var he=n.updateQueue;if(he===null){var ge=new Set;ge.add(R),n.updateQueue=ge}else he.add(R);break e}else{if((n&1)===0){qf(h,K,n),ca();break e}R=Error(i(426))}}else if($e&&T.mode&1){var Be=Zf(x);if(Be!==null){(Be.flags&65536)===0&&(Be.flags|=256),Jf(Be,x,T,h,n),_u(Xr(R,T));break e}}h=R=Xr(R,T),Xe!==4&&(Xe=2),Go===null?Go=[h]:Go.push(h),h=x;do{switch(h.tag){case 3:h.flags|=65536,n&=-n,h.lanes|=n;var W=Kf(h,R,n);Sf(h,W);break e;case 1:T=R;var $=h.type,X=h.stateNode;if((h.flags&128)===0&&(typeof $.getDerivedStateFromError=="function"||X!==null&&typeof X.componentDidCatch=="function"&&(Rn===null||!Rn.has(X)))){h.flags|=65536,n&=-n,h.lanes|=n;var le=Gf(h,T,n);Sf(h,le);break e}}h=h.return}while(h!==null)}Td(o)}catch(me){n=me,Ue===o&&o!==null&&(Ue=o=o.return);continue}break}while(!0)}function Pd(){var e=Ms.current;return Ms.current=_s,e===null?_s:e}function ca(){(Xe===0||Xe===3||Xe===2)&&(Xe=4),Ke===null||(lr&268435455)===0&&(Ps&268435455)===0||On(Ke,Je)}function Ls(e,n){var o=Pe;Pe|=2;var s=Pd();(Ke!==e||Je!==n)&&(mn=null,ar(e,n));do try{S0();break}catch(f){Md(e,f)}while(!0);if(ku(),Pe=o,Ms.current=s,Ue!==null)throw Error(i(261));return Ke=null,Je=0,Xe}function S0(){for(;Ue!==null;)Id(Ue)}function k0(){for(;Ue!==null&&!Al();)Id(Ue)}function Id(e){var n=Ad(e.alternate,e,Et);e.memoizedProps=e.pendingProps,n===null?Td(e):Ue=n,ta.current=null}function Td(e){var n=e;do{var o=n.alternate;if(e=n.return,(n.flags&32768)===0){if(o=g0(o,n,Et),o!==null){Ue=o;return}}else{if(o=m0(o,n),o!==null){o.flags&=32767,Ue=o;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Xe=6,Ue=null;return}}if(n=n.sibling,n!==null){Ue=n;return}Ue=n=e}while(n!==null);Xe===0&&(Xe=5)}function cr(e,n,o){var s=je,f=Lt.transition;try{Lt.transition=null,je=1,E0(e,n,o,s)}finally{Lt.transition=f,je=s}return null}function E0(e,n,o,s){do qr();while(Dn!==null);if((Pe&6)!==0)throw Error(i(327));o=e.finishedWork;var f=e.finishedLanes;if(o===null)return null;if(e.finishedWork=null,e.finishedLanes=0,o===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var h=o.lanes|o.childLanes;if(Vl(e,h),e===Ke&&(Ue=Ke=null,Je=0),(o.subtreeFlags&2064)===0&&(o.flags&2064)===0||Ts||(Ts=!0,Ld(Nr,function(){return qr(),null})),h=(o.flags&15990)!==0,(o.subtreeFlags&15990)!==0||h){h=Lt.transition,Lt.transition=null;var x=je;je=1;var T=Pe;Pe|=4,ta.current=null,v0(e,o),wd(o,e),Um(cu),Wi=!!au,cu=au=null,e.current=o,x0(o),Oi(),Pe=T,je=x,Lt.transition=h}else e.current=o;if(Ts&&(Ts=!1,Dn=e,zs=f),h=e.pendingLanes,h===0&&(Rn=null),Dl(o.stateNode),gt(e,Oe()),n!==null)for(s=e.onRecoverableError,o=0;o<n.length;o++)f=n[o],s(f.value,{componentStack:f.stack,digest:f.digest});if(Is)throw Is=!1,e=oa,oa=null,e;return(zs&1)!==0&&e.tag!==0&&qr(),h=e.pendingLanes,(h&1)!==0?e===ia?qo++:(qo=0,ia=e):qo=0,zn(),null}function qr(){if(Dn!==null){var e=yc(zs),n=Lt.transition,o=je;try{if(Lt.transition=null,je=16>e?16:e,Dn===null)var s=!1;else{if(e=Dn,Dn=null,zs=0,(Pe&6)!==0)throw Error(i(331));var f=Pe;for(Pe|=4,de=e.current;de!==null;){var h=de,x=h.child;if((de.flags&16)!==0){var T=h.deletions;if(T!==null){for(var R=0;R<T.length;R++){var K=T[R];for(de=K;de!==null;){var oe=de;switch(oe.tag){case 0:case 11:case 15:Qo(8,oe,h)}var ie=oe.child;if(ie!==null)ie.return=oe,de=ie;else for(;de!==null;){oe=de;var ne=oe.sibling,fe=oe.return;if(gd(oe),oe===K){de=null;break}if(ne!==null){ne.return=fe,de=ne;break}de=fe}}}var he=h.alternate;if(he!==null){var ge=he.child;if(ge!==null){he.child=null;do{var Be=ge.sibling;ge.sibling=null,ge=Be}while(ge!==null)}}de=h}}if((h.subtreeFlags&2064)!==0&&x!==null)x.return=h,de=x;else e:for(;de!==null;){if(h=de,(h.flags&2048)!==0)switch(h.tag){case 0:case 11:case 15:Qo(9,h,h.return)}var W=h.sibling;if(W!==null){W.return=h.return,de=W;break e}de=h.return}}var $=e.current;for(de=$;de!==null;){x=de;var X=x.child;if((x.subtreeFlags&2064)!==0&&X!==null)X.return=x,de=X;else e:for(x=$;de!==null;){if(T=de,(T.flags&2048)!==0)try{switch(T.tag){case 0:case 11:case 15:Cs(9,T)}}catch(me){be(T,T.return,me)}if(T===x){de=null;break e}var le=T.sibling;if(le!==null){le.return=T.return,de=le;break e}de=T.return}}if(Pe=f,zn(),xt&&typeof xt.onPostCommitFiberRoot=="function")try{xt.onPostCommitFiberRoot(Cr,e)}catch{}s=!0}return s}finally{je=o,Lt.transition=n}}return!1}function zd(e,n,o){n=Xr(o,n),n=Kf(e,n,1),e=An(e,n,1),n=ut(),e!==null&&(Jn(e,1,n),gt(e,n))}function be(e,n,o){if(e.tag===3)zd(e,e,o);else for(;n!==null;){if(n.tag===3){zd(n,e,o);break}else if(n.tag===1){var s=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(Rn===null||!Rn.has(s))){e=Xr(o,e),e=Gf(n,e,1),n=An(n,e,1),e=ut(),n!==null&&(Jn(n,1,e),gt(n,e));break}}n=n.return}}function N0(e,n,o){var s=e.pingCache;s!==null&&s.delete(n),n=ut(),e.pingedLanes|=e.suspendedLanes&o,Ke===e&&(Je&o)===o&&(Xe===4||Xe===3&&(Je&130023424)===Je&&500>Oe()-ra?ar(e,0):na|=o),gt(e,n)}function jd(e,n){n===0&&((e.mode&1)===0?n=1:(n=Pr,Pr<<=1,(Pr&130023424)===0&&(Pr=4194304)));var o=ut();e=hn(e,n),e!==null&&(Jn(e,n,o),gt(e,o))}function C0(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),jd(e,o)}function M0(e,n){var o=0;switch(e.tag){case 13:var s=e.stateNode,f=e.memoizedState;f!==null&&(o=f.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(i(314))}s!==null&&s.delete(n),jd(e,o)}var Ad;Ad=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||ft.current)ht=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return ht=!1,p0(e,n,o);ht=(e.flags&131072)!==0}else ht=!1,$e&&(n.flags&1048576)!==0&&df(n,as,n.index);switch(n.lanes=0,n.tag){case 2:var s=n.type;Es(e,n),e=n.pendingProps;var f=Fr(n,nt.current);Wr(n,o),f=Lu(null,n,s,e,f,o);var h=Ru();return n.flags|=1,typeof f=="object"&&f!==null&&typeof f.render=="function"&&f.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,dt(s)?(h=!0,ss(n)):h=!1,n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,Mu(n),f.updater=Ss,n.stateNode=f,f._reactInternals=n,Vu(n,s,e,o),n=Wu(null,n,s,!0,h,o)):(n.tag=0,$e&&h&&yu(n),lt(null,n,f,o),n=n.child),n;case 16:s=n.elementType;e:{switch(Es(e,n),e=n.pendingProps,f=s._init,s=f(s._payload),n.type=s,f=n.tag=I0(s),e=Ot(s,e),f){case 0:n=Uu(null,n,s,e,o);break e;case 1:n=id(null,n,s,e,o);break e;case 11:n=ed(null,n,s,e,o);break e;case 14:n=td(null,n,s,Ot(s.type,e),o);break e}throw Error(i(306,s,""))}return n;case 0:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:Ot(s,f),Uu(e,n,s,f,o);case 1:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:Ot(s,f),id(e,n,s,f,o);case 3:e:{if(sd(n),e===null)throw Error(i(387));s=n.pendingProps,h=n.memoizedState,f=h.element,_f(e,n),gs(n,s,null,o);var x=n.memoizedState;if(s=x.element,h.isDehydrated)if(h={element:s,isDehydrated:!1,cache:x.cache,pendingSuspenseBoundaries:x.pendingSuspenseBoundaries,transitions:x.transitions},n.updateQueue.baseState=h,n.memoizedState=h,n.flags&256){f=Xr(Error(i(423)),n),n=ld(e,n,s,o,f);break e}else if(s!==f){f=Xr(Error(i(424)),n),n=ld(e,n,s,o,f);break e}else for(kt=Pn(n.stateNode.containerInfo.firstChild),St=n,$e=!0,$t=null,o=xf(n,null,s,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(br(),s===f){n=gn(e,n,o);break e}lt(e,n,s,o)}n=n.child}return n;case 5:return Ef(n),e===null&&wu(n),s=n.type,f=n.pendingProps,h=e!==null?e.memoizedProps:null,x=f.children,fu(s,f)?x=null:h!==null&&fu(s,h)&&(n.flags|=32),od(e,n),lt(e,n,x,o),n.child;case 6:return e===null&&wu(n),null;case 13:return ud(e,n,o);case 4:return Pu(n,n.stateNode.containerInfo),s=n.pendingProps,e===null?n.child=Br(n,null,s,o):lt(e,n,s,o),n.child;case 11:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:Ot(s,f),ed(e,n,s,f,o);case 7:return lt(e,n,n.pendingProps,o),n.child;case 8:return lt(e,n,n.pendingProps.children,o),n.child;case 12:return lt(e,n,n.pendingProps.children,o),n.child;case 10:e:{if(s=n.type._context,f=n.pendingProps,h=n.memoizedProps,x=f.value,Ae(ds,s._currentValue),s._currentValue=x,h!==null)if(Dt(h.value,x)){if(h.children===f.children&&!ft.current){n=gn(e,n,o);break e}}else for(h=n.child,h!==null&&(h.return=n);h!==null;){var T=h.dependencies;if(T!==null){x=h.child;for(var R=T.firstContext;R!==null;){if(R.context===s){if(h.tag===1){R=pn(-1,o&-o),R.tag=2;var K=h.updateQueue;if(K!==null){K=K.shared;var oe=K.pending;oe===null?R.next=R:(R.next=oe.next,oe.next=R),K.pending=R}}h.lanes|=o,R=h.alternate,R!==null&&(R.lanes|=o),Nu(h.return,o,n),T.lanes|=o;break}R=R.next}}else if(h.tag===10)x=h.type===n.type?null:h.child;else if(h.tag===18){if(x=h.return,x===null)throw Error(i(341));x.lanes|=o,T=x.alternate,T!==null&&(T.lanes|=o),Nu(x,o,n),x=h.sibling}else x=h.child;if(x!==null)x.return=h;else for(x=h;x!==null;){if(x===n){x=null;break}if(h=x.sibling,h!==null){h.return=x.return,x=h;break}x=x.return}h=x}lt(e,n,f.children,o),n=n.child}return n;case 9:return f=n.type,s=n.pendingProps.children,Wr(n,o),f=jt(f),s=s(f),n.flags|=1,lt(e,n,s,o),n.child;case 14:return s=n.type,f=Ot(s,n.pendingProps),f=Ot(s.type,f),td(e,n,s,f,o);case 15:return nd(e,n,n.type,n.pendingProps,o);case 17:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:Ot(s,f),Es(e,n),n.tag=1,dt(s)?(e=!0,ss(n)):e=!1,Wr(n,o),Xf(n,s,f),Vu(n,s,f,o),Wu(null,n,s,!0,e,o);case 19:return cd(e,n,o);case 22:return rd(e,n,o)}throw Error(i(156,n.tag))};function Ld(e,n){return Di(e,n)}function P0(e,n,o,s){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Rt(e,n,o,s){return new P0(e,n,o,s)}function fa(e){return e=e.prototype,!(!e||!e.isReactComponent)}function I0(e){if(typeof e=="function")return fa(e)?1:0;if(e!=null){if(e=e.$$typeof,e===J)return 11;if(e===b)return 14}return 2}function Fn(e,n){var o=e.alternate;return o===null?(o=Rt(e.tag,n,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=n,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,n=e.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function Rs(e,n,o,s,f,h){var x=2;if(s=e,typeof e=="function")fa(e)&&(x=1);else if(typeof e=="string")x=5;else e:switch(e){case V:return fr(o.children,f,h,n);case Q:x=8,f|=8;break;case Y:return e=Rt(12,o,n,f|2),e.elementType=Y,e.lanes=h,e;case Z:return e=Rt(13,o,n,f),e.elementType=Z,e.lanes=h,e;case C:return e=Rt(19,o,n,f),e.elementType=C,e.lanes=h,e;case B:return Ds(o,f,h,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ee:x=10;break e;case q:x=9;break e;case J:x=11;break e;case b:x=14;break e;case H:x=16,s=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return n=Rt(x,o,n,f),n.elementType=e,n.type=s,n.lanes=h,n}function fr(e,n,o,s){return e=Rt(7,e,s,n),e.lanes=o,e}function Ds(e,n,o,s){return e=Rt(22,e,s,n),e.elementType=B,e.lanes=o,e.stateNode={isHidden:!1},e}function da(e,n,o){return e=Rt(6,e,null,n),e.lanes=o,e}function ha(e,n,o){return n=Rt(4,e.children!==null?e.children:[],e.key,n),n.lanes=o,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function T0(e,n,o,s,f){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Zn(0),this.expirationTimes=Zn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zn(0),this.identifierPrefix=s,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function pa(e,n,o,s,f,h,x,T,R){return e=new T0(e,n,o,T,R),n===1?(n=1,h===!0&&(n|=8)):n=0,h=Rt(3,null,null,n),e.current=h,h.stateNode=e,h.memoizedState={element:s,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Mu(h),e}function z0(e,n,o){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:D,key:s==null?null:""+s,children:e,containerInfo:n,implementation:o}}function Rd(e){if(!e)return Tn;e=e._reactInternals;e:{if(qt(e)!==e||e.tag!==1)throw Error(i(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(dt(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(n!==null);throw Error(i(171))}if(e.tag===1){var o=e.type;if(dt(o))return af(e,o,n)}return n}function Dd(e,n,o,s,f,h,x,T,R){return e=pa(o,s,!0,e,f,h,x,T,R),e.context=Rd(null),o=e.current,s=ut(),f=$n(o),h=pn(s,f),h.callback=n??null,An(o,h,f),e.current.lanes=f,Jn(e,f,s),gt(e,s),e}function $s(e,n,o,s){var f=n.current,h=ut(),x=$n(f);return o=Rd(o),n.context===null?n.context=o:n.pendingContext=o,n=pn(h,x),n.payload={element:e},s=s===void 0?null:s,s!==null&&(n.callback=s),e=An(f,n,x),e!==null&&(Vt(e,f,x,h),ps(e,f,x)),x}function Os(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function $d(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var o=e.retryLane;e.retryLane=o!==0&&o<n?o:n}}function ga(e,n){$d(e,n),(e=e.alternate)&&$d(e,n)}function j0(){return null}var Od=typeof reportError=="function"?reportError:function(e){console.error(e)};function ma(e){this._internalRoot=e}Fs.prototype.render=ma.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(i(409));$s(e,n,null,null)},Fs.prototype.unmount=ma.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;ur(function(){$s(null,e,null,null)}),n[an]=null}};function Fs(e){this._internalRoot=e}Fs.prototype.unstable_scheduleHydration=function(e){if(e){var n=wc();e={blockedOn:null,target:e,priority:n};for(var o=0;o<Nn.length&&n!==0&&n<Nn[o].priority;o++);Nn.splice(o,0,e),o===0&&kc(e)}};function ya(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Hs(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Fd(){}function A0(e,n,o,s,f){if(f){if(typeof s=="function"){var h=s;s=function(){var K=Os(x);h.call(K)}}var x=Dd(n,s,e,0,null,!1,!1,"",Fd);return e._reactRootContainer=x,e[an]=x.current,Ro(e.nodeType===8?e.parentNode:e),ur(),x}for(;f=e.lastChild;)e.removeChild(f);if(typeof s=="function"){var T=s;s=function(){var K=Os(R);T.call(K)}}var R=pa(e,0,!1,null,null,!1,!1,"",Fd);return e._reactRootContainer=R,e[an]=R.current,Ro(e.nodeType===8?e.parentNode:e),ur(function(){$s(n,R,o,s)}),R}function Vs(e,n,o,s,f){var h=o._reactRootContainer;if(h){var x=h;if(typeof f=="function"){var T=f;f=function(){var R=Os(x);T.call(R)}}$s(n,x,e,f)}else x=A0(o,n,e,f,s);return Os(x)}vc=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var o=qn(n.pendingLanes);o!==0&&(Ir(n,o|1),gt(n,Oe()),(Pe&6)===0&&(Gr=Oe()+500,zn()))}break;case 13:ur(function(){var s=hn(e,1);if(s!==null){var f=ut();Vt(s,e,1,f)}}),ga(e,1)}},bl=function(e){if(e.tag===13){var n=hn(e,134217728);if(n!==null){var o=ut();Vt(n,e,134217728,o)}ga(e,134217728)}},xc=function(e){if(e.tag===13){var n=$n(e),o=hn(e,n);if(o!==null){var s=ut();Vt(o,e,n,s)}ga(e,n)}},wc=function(){return je},_c=function(e,n){var o=je;try{return je=e,n()}finally{je=o}},po=function(e,n,o){switch(n){case"input":if(ze(e,o),n=o.name,o.type==="radio"&&n!=null){for(o=e;o.parentNode;)o=o.parentNode;for(o=o.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<o.length;n++){var s=o[n];if(s!==e&&s.form===e.form){var f=os(s);if(!f)throw Error(i(90));ye(s),ze(s,f)}}}break;case"textarea":Gt(e,o);break;case"select":n=o.value,n!=null&&tt(e,!!o.multiple,n,!1)}},zi=ua,ji=ur;var L0={usingClientEntryPoint:!1,Events:[Oo,$r,os,Ii,Ti,ua]},Zo={findFiberByHostInstance:er,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},R0={bundleType:Zo.bundleType,version:Zo.version,rendererPackageName:Zo.rendererPackageName,rendererConfig:Zo.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:I.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Li(e),e===null?null:e.stateNode},findFiberByHostInstance:Zo.findFiberByHostInstance||j0,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var bs=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!bs.isDisabled&&bs.supportsFiber)try{Cr=bs.inject(R0),xt=bs}catch{}}return mt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=L0,mt.createPortal=function(e,n){var o=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!ya(n))throw Error(i(200));return z0(e,n,null,o)},mt.createRoot=function(e,n){if(!ya(e))throw Error(i(299));var o=!1,s="",f=Od;return n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(f=n.onRecoverableError)),n=pa(e,1,!1,null,null,o,!1,s,f),e[an]=n.current,Ro(e.nodeType===8?e.parentNode:e),new ma(n)},mt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=Li(n),e=e===null?null:e.stateNode,e},mt.flushSync=function(e){return ur(e)},mt.hydrate=function(e,n,o){if(!Hs(n))throw Error(i(200));return Vs(null,e,n,!0,o)},mt.hydrateRoot=function(e,n,o){if(!ya(e))throw Error(i(405));var s=o!=null&&o.hydratedSources||null,f=!1,h="",x=Od;if(o!=null&&(o.unstable_strictMode===!0&&(f=!0),o.identifierPrefix!==void 0&&(h=o.identifierPrefix),o.onRecoverableError!==void 0&&(x=o.onRecoverableError)),n=Dd(n,null,e,1,o??null,f,!1,h,x),e[an]=n.current,Ro(e),s)for(e=0;e<s.length;e++)o=s[e],f=o._getVersion,f=f(o._source),n.mutableSourceEagerHydrationData==null?n.mutableSourceEagerHydrationData=[o,f]:n.mutableSourceEagerHydrationData.push(o,f);return new Fs(n)},mt.render=function(e,n,o){if(!Hs(n))throw Error(i(200));return Vs(null,e,n,!1,o)},mt.unmountComponentAtNode=function(e){if(!Hs(e))throw Error(i(40));return e._reactRootContainer?(ur(function(){Vs(null,null,e,!1,function(){e._reactRootContainer=null,e[an]=null})}),!0):!1},mt.unstable_batchedUpdates=ua,mt.unstable_renderSubtreeIntoContainer=function(e,n,o,s){if(!Hs(o))throw Error(i(200));if(e==null||e._reactInternals===void 0)throw Error(i(38));return Vs(e,n,o,!1,s)},mt.version="18.3.1-next-f1338f8080-20240426",mt}var Xd;function cp(){if(Xd)return wa.exports;Xd=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),wa.exports=b0(),wa.exports}var Qd;function B0(){if(Qd)return Bs;Qd=1;var t=cp();return Bs.createRoot=t.createRoot,Bs.hydrateRoot=t.hydrateRoot,Bs}var U0=B0();async function Nt(t){if(!t.ok){let r;try{r=(await t.json()).detail}catch{r=t.statusText}throw new li(t.status,r)}return t.json()}class li extends Error{constructor(r,i){super(typeof i=="string"?i:JSON.stringify(i)),this.status=r,this.detail=i}}const qe={schema:()=>fetch("/api/step-schema").then(t=>Nt(t)),listFlows:()=>fetch("/api/flows").then(t=>Nt(t)),getFlow:t=>fetch(`/api/flows/${encodeURIComponent(t)}`).then(r=>Nt(r)),saveFlow:(t,r)=>fetch(`/api/flows/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(i=>Nt(i)),deleteFlow:t=>fetch(`/api/flows/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>Nt(r)),runFlow:(t,r)=>fetch(`/api/flows/${encodeURIComponent(t)}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({close_mode:r})}).then(i=>Nt(i)),assist:(t,r,i)=>fetch(`/api/flows/${encodeURIComponent(t)}/assist`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({instruction:r,steps:i.steps,settings:i.settings})}).then(l=>Nt(l)),listDesktopImages:()=>fetch("/api/desktop-images").then(t=>Nt(t)),captureDesktopImage:t=>fetch("/api/desktop-images/capture",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}).then(r=>Nt(r)),deleteDesktopImage:t=>fetch(`/api/desktop-images/${encodeURIComponent(t)}`,{method:"DELETE"}).then(r=>Nt(r)),desktopImageUrl:t=>`/api/desktop-images/${encodeURIComponent(t)}`,run:t=>fetch(`/api/runs/${t}`).then(r=>Nt(r)),closeBrowser:t=>fetch(`/api/runs/${t}/close-browser`,{method:"POST"}).then(r=>Nt(r)),showTrace:t=>fetch(`/api/runs/${t}/show-trace`,{method:"POST"}).then(r=>Nt(r)),exportUrl:t=>`/api/flows/${encodeURIComponent(t)}/export`},Kd={en:{app_title:"RPA Tool",page_title:"RPA Tool – flow builder",new_flow:"New flow",delete_flow:"Delete flow",save:"Save",saved:"Saved",unsaved:"Unsaved changes",run:"Run flow",close_browser:"Close browser",show_trace:"Show trace",wiki:"Wiki",settings:"⚙ Settings",export:"Export as script",close_always:"Close the browser",close_on_success:"Keep open on error",close_never:"Always keep open",add_step:"+ Add step",add_step_after:"Add step after",add_step_in:"+ Add step",add_branch:"+ Add 'else if' branch",else_toggle:"…else (else)",remove:"Remove",remove_branch:"Remove branch",branch_if:"If",branch_else_if:"…else if",add_field:"+ Add column",column_name:"Column name",label_ph:"Label (optional)",on_error_stop:"On error: stop",on_error_continue:"On error: continue",enabled_title:"Enabled (unchecked = skipped when running)",move_up:"Move up",move_down:"Move down",run_log:"Run log",variables:"Variables",no_vars:"No variables yet.",vars_hint:"Click a name to see its content (filled in once the flow finishes).",assist_title:"AI assistant",assist_hint:"Describe in plain language what the flow should do. The suggestion replaces the canvas (unsaved) so you can review it before saving/running.",assist_ph:"e.g. Go to example.com, wait for login, list all links and save them as CSV",assist_btn:"Suggest changes",assist_working:"Thinking…",assist_applied:"Suggestion applied — review, then Save / Run flow.",assist_unavailable:"Set ANTHROPIC_API_KEY (or run `ant auth login`) and restart the server to use this.",assist_failed:"Could not generate a flow: {msg}",status_running:"Running…",status_done:"Done",status_error:"Error",condition:"Condition",new_flow_prompt:"Name of new flow:",delete_flow_confirm:'Delete the flow "{name}"?',settings_hint:"Saved with the flow, so they travel along when you export it as a standalone script.",cancel:"Cancel",fit_view:"Fit to view",relayout:"Auto-arrange",var_list:"list, {n} item(s)",var_object:"object",var_text:"text, {n} chars",save_failed:"Save failed: {msg}"},sv:{app_title:"RPA-verktyg",page_title:"RPA-verktyg – flödesbyggare",new_flow:"Nytt flöde",delete_flow:"Ta bort flöde",save:"Spara",saved:"Sparat",unsaved:"Osparade ändringar",run:"Kör flöde",close_browser:"Stäng webbläsare",show_trace:"Visa trace",wiki:"Wiki",settings:"⚙ Inställningar",export:"Exportera som script",close_always:"Stäng webbläsaren",close_on_success:"Håll öppen vid fel",close_never:"Håll alltid öppen",add_step:"+ Lägg till steg",add_step_after:"Lägg till steg efter",add_step_in:"+ Lägg till steg",add_branch:"+ Lägg till 'else if'-gren",else_toggle:"…annars (else)",remove:"Ta bort",remove_branch:"Ta bort gren",branch_if:"Om",branch_else_if:"…annars om",add_field:"+ Lägg till kolumn",column_name:"Kolumnnamn",label_ph:"Etikett (valfri)",on_error_stop:"Vid fel: stanna",on_error_continue:"Vid fel: fortsätt",enabled_title:"Aktiverat (avbockad = hoppas över vid körning)",move_up:"Flytta upp",move_down:"Flytta ner",run_log:"Körlogg",variables:"Variabler",no_vars:"Inga variabler ännu.",vars_hint:"Klicka på ett namn för att se innehållet (fylls i när flödet är klart).",assist_title:"AI-assistent",assist_hint:"Beskriv i klartext vad flödet ska göra. Förslaget ersätter canvasen (osparat) så du kan granska det innan du sparar/kör.",assist_ph:"t.ex. Gå till example.com, vänta på inloggning, lista alla länkar och spara som CSV",assist_btn:"Föreslå ändringar",assist_working:"Tänker…",assist_applied:"Förslag infogat — granska, sedan Spara / Kör flöde.",assist_unavailable:"Sätt ANTHROPIC_API_KEY (eller kör `ant auth login`) och starta om servern för att använda detta.",assist_failed:"Kunde inte generera ett flöde: {msg}",status_running:"Kör…",status_done:"Klar",status_error:"Fel",condition:"Villkor",new_flow_prompt:"Namn på nytt flöde:",delete_flow_confirm:'Ta bort flödet "{name}"?',settings_hint:"Sparas med flödet, så de följer med om du exporterar det som ett fristående script.",cancel:"Avbryt",fit_view:"Anpassa till vy",relayout:"Autoplacera",var_list:"lista, {n} post(er)",var_object:"objekt",var_text:"text, {n} tecken",save_failed:"Kunde inte spara: {msg}"}};function W0(t){return(r,i)=>{let l=Kd[t][r]??Kd.en[r]??r;if(i)for(const[u,a]of Object.entries(i))l=l.replace(`{${u}}`,String(a));return l}}function fp(){try{return crypto.randomUUID().slice(0,12)}catch{return Math.random().toString(36).slice(2,14)}}const Y0=150,X0=0;function Wn(t){var r,i,l;return t.id||(t.id=fp()),(r=t.steps)==null||r.forEach(Wn),(i=t.else)==null||i.forEach(Wn),(l=t.branches)==null||l.forEach(u=>u.steps.forEach(Wn)),t}function dp(t){const r=(t.steps??[]).map(c=>Wn({...c})),i=t.layout??{},l=r.map((c,d)=>({id:c.id,step:c,position:i[c.id]??{x:X0,y:d*Y0}})),u=[];for(let c=0;c<r.length-1;c++)u.push({id:`seq-${r[c].id}-${r[c+1].id}`,source:r[c].id,target:r[c+1].id,kind:"seq"});const a=new Map;for(const c of r)c.label&&a.set(c.label,c.id);for(const c of r)if(c.type==="jump_to_label"&&typeof c.target=="string"&&a.has(c.target)){const d=a.get(c.target);u.push({id:`jump-${c.id}-${d}`,source:c.id,target:d,kind:"jump"})}return{nodes:l,edges:u}}function mr(t,r){const i=t.step_types.find(u=>u.type===r),l={type:r,id:fp()};for(const u of(i==null?void 0:i.fields)??[])u.default!==void 0&&u.default!==""&&(l[u.key]=u.default);return r==="loop"&&(l.steps=[]),r==="if"&&(l.branches=[{condition:{kind:"element_exists"},steps:[]}]),r==="extract_row"&&(l.fields=[{name:"",by:"css",value:""}]),l}function hp(t,r,i){const l=mr(t,i);return l.id=r.id,r.label&&(l.label=r.label),r.enabled===!1&&(l.enabled=!1),r.on_error==="continue"&&(l.on_error="continue"),l}function pp(t,r,i){const l=t.slice();return l.splice(r,0,i),l}function gp(t,r){const i=t.slice();return i.splice(r,1),i}function Da(t,r,i){if(i<0||i>=t.length)return t;const l=t.slice(),[u]=l.splice(r,1);return l.splice(i,0,u),l}function ei(t,r,i){const l=t.slice();return l[r]=i,l}function Q0(){return{condition:{kind:"element_exists"},steps:[]}}function K0(t){const{t:r}=t;return E.jsxs("header",{children:[E.jsx("h1",{children:r("app_title")}),E.jsxs("select",{value:t.lang,onChange:i=>t.setLang(i.target.value),children:[E.jsx("option",{value:"en",children:"English"}),E.jsx("option",{value:"sv",children:"Svenska"})]}),E.jsx("select",{value:t.currentName??"",onChange:i=>t.onSelect(i.target.value),children:t.flowNames.map(i=>E.jsx("option",{value:i,children:i},i))}),E.jsx("button",{className:"secondary",onClick:t.onNew,children:r("new_flow")}),E.jsx("button",{className:"danger",onClick:t.onDelete,disabled:!t.currentName,children:r("delete_flow")}),E.jsx("a",{className:"secondary",href:"/wiki",target:"_blank",rel:"noopener",children:r("wiki")}),E.jsx("button",{className:"secondary",onClick:t.onOpenSettings,children:r("settings")}),E.jsx("a",{className:"secondary",href:t.currentName?qe.exportUrl(t.currentName):"#",target:"_blank",rel:"noopener",children:r("export")}),E.jsx("span",{className:"spacer"}),E.jsx("span",{className:"dirty-dot "+(t.dirty?"on":""),title:t.dirty?r("unsaved"):r("saved")}),E.jsxs("select",{value:t.closeMode,onChange:i=>t.setCloseMode(i.target.value),children:[E.jsx("option",{value:"always",children:r("close_always")}),E.jsx("option",{value:"on_success",children:r("close_on_success")}),E.jsx("option",{value:"never",children:r("close_never")})]}),E.jsx("button",{className:"secondary",onClick:t.onSave,children:r("save")}),E.jsx("button",{onClick:t.onRun,disabled:t.running||!t.currentName,children:r("run")})]})}function We(t){if(typeof t=="string"||typeof t=="number")return""+t;let r="";if(Array.isArray(t))for(let i=0,l;i<t.length;i++)(l=We(t[i]))!==""&&(r+=(r&&" ")+l);else for(let i in t)t[i]&&(r+=(r&&" ")+i);return r}var G0={value:()=>{}};function gl(){for(var t=0,r=arguments.length,i={},l;t<r;++t){if(!(l=arguments[t]+"")||l in i||/[\s.]/.test(l))throw new Error("illegal type: "+l);i[l]=[]}return new Js(i)}function Js(t){this._=t}function q0(t,r){return t.trim().split(/^|\s+/).map(function(i){var l="",u=i.indexOf(".");if(u>=0&&(l=i.slice(u+1),i=i.slice(0,u)),i&&!r.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:l}})}Js.prototype=gl.prototype={constructor:Js,on:function(t,r){var i=this._,l=q0(t+"",i),u,a=-1,c=l.length;if(arguments.length<2){for(;++a<c;)if((u=(t=l[a]).type)&&(u=Z0(i[u],t.name)))return u;return}if(r!=null&&typeof r!="function")throw new Error("invalid callback: "+r);for(;++a<c;)if(u=(t=l[a]).type)i[u]=Gd(i[u],t.name,r);else if(r==null)for(u in i)i[u]=Gd(i[u],t.name,null);return this},copy:function(){var t={},r=this._;for(var i in r)t[i]=r[i].slice();return new Js(t)},call:function(t,r){if((u=arguments.length-2)>0)for(var i=new Array(u),l=0,u,a;l<u;++l)i[l]=arguments[l+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=this._[t],l=0,u=a.length;l<u;++l)a[l].value.apply(r,i)},apply:function(t,r,i){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var l=this._[t],u=0,a=l.length;u<a;++u)l[u].value.apply(r,i)}};function Z0(t,r){for(var i=0,l=t.length,u;i<l;++i)if((u=t[i]).name===r)return u.value}function Gd(t,r,i){for(var l=0,u=t.length;l<u;++l)if(t[l].name===r){t[l]=G0,t=t.slice(0,l).concat(t.slice(l+1));break}return i!=null&&t.push({name:r,value:i}),t}var $a="http://www.w3.org/1999/xhtml";const qd={svg:"http://www.w3.org/2000/svg",xhtml:$a,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ml(t){var r=t+="",i=r.indexOf(":");return i>=0&&(r=t.slice(0,i))!=="xmlns"&&(t=t.slice(i+1)),qd.hasOwnProperty(r)?{space:qd[r],local:t}:t}function J0(t){return function(){var r=this.ownerDocument,i=this.namespaceURI;return i===$a&&r.documentElement.namespaceURI===$a?r.createElement(t):r.createElementNS(i,t)}}function ey(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function mp(t){var r=ml(t);return(r.local?ey:J0)(r)}function ty(){}function Za(t){return t==null?ty:function(){return this.querySelector(t)}}function ny(t){typeof t!="function"&&(t=Za(t));for(var r=this._groups,i=r.length,l=new Array(i),u=0;u<i;++u)for(var a=r[u],c=a.length,d=l[u]=new Array(c),p,g,v=0;v<c;++v)(p=a[v])&&(g=t.call(p,p.__data__,v,a))&&("__data__"in p&&(g.__data__=p.__data__),d[v]=g);return new Mt(l,this._parents)}function ry(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function oy(){return[]}function yp(t){return t==null?oy:function(){return this.querySelectorAll(t)}}function iy(t){return function(){return ry(t.apply(this,arguments))}}function sy(t){typeof t=="function"?t=iy(t):t=yp(t);for(var r=this._groups,i=r.length,l=[],u=[],a=0;a<i;++a)for(var c=r[a],d=c.length,p,g=0;g<d;++g)(p=c[g])&&(l.push(t.call(p,p.__data__,g,c)),u.push(p));return new Mt(l,u)}function vp(t){return function(){return this.matches(t)}}function xp(t){return function(r){return r.matches(t)}}var ly=Array.prototype.find;function uy(t){return function(){return ly.call(this.children,t)}}function ay(){return this.firstElementChild}function cy(t){return this.select(t==null?ay:uy(typeof t=="function"?t:xp(t)))}var fy=Array.prototype.filter;function dy(){return Array.from(this.children)}function hy(t){return function(){return fy.call(this.children,t)}}function py(t){return this.selectAll(t==null?dy:hy(typeof t=="function"?t:xp(t)))}function gy(t){typeof t!="function"&&(t=vp(t));for(var r=this._groups,i=r.length,l=new Array(i),u=0;u<i;++u)for(var a=r[u],c=a.length,d=l[u]=[],p,g=0;g<c;++g)(p=a[g])&&t.call(p,p.__data__,g,a)&&d.push(p);return new Mt(l,this._parents)}function wp(t){return new Array(t.length)}function my(){return new Mt(this._enter||this._groups.map(wp),this._parents)}function ol(t,r){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=r}ol.prototype={constructor:ol,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,r){return this._parent.insertBefore(t,r)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function yy(t){return function(){return t}}function vy(t,r,i,l,u,a){for(var c=0,d,p=r.length,g=a.length;c<g;++c)(d=r[c])?(d.__data__=a[c],l[c]=d):i[c]=new ol(t,a[c]);for(;c<p;++c)(d=r[c])&&(u[c]=d)}function xy(t,r,i,l,u,a,c){var d,p,g=new Map,v=r.length,y=a.length,m=new Array(v),w;for(d=0;d<v;++d)(p=r[d])&&(m[d]=w=c.call(p,p.__data__,d,r)+"",g.has(w)?u[d]=p:g.set(w,p));for(d=0;d<y;++d)w=c.call(t,a[d],d,a)+"",(p=g.get(w))?(l[d]=p,p.__data__=a[d],g.delete(w)):i[d]=new ol(t,a[d]);for(d=0;d<v;++d)(p=r[d])&&g.get(m[d])===p&&(u[d]=p)}function wy(t){return t.__data__}function _y(t,r){if(!arguments.length)return Array.from(this,wy);var i=r?xy:vy,l=this._parents,u=this._groups;typeof t!="function"&&(t=yy(t));for(var a=u.length,c=new Array(a),d=new Array(a),p=new Array(a),g=0;g<a;++g){var v=l[g],y=u[g],m=y.length,w=Sy(t.call(v,v&&v.__data__,g,l)),S=w.length,P=d[g]=new Array(S),N=c[g]=new Array(S),k=p[g]=new Array(m);i(v,y,P,N,k,w,r);for(var j=0,_=0,I,F;j<S;++j)if(I=P[j]){for(j>=_&&(_=j+1);!(F=N[_])&&++_<S;);I._next=F||null}}return c=new Mt(c,l),c._enter=d,c._exit=p,c}function Sy(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function ky(){return new Mt(this._exit||this._groups.map(wp),this._parents)}function Ey(t,r,i){var l=this.enter(),u=this,a=this.exit();return typeof t=="function"?(l=t(l),l&&(l=l.selection())):l=l.append(t+""),r!=null&&(u=r(u),u&&(u=u.selection())),i==null?a.remove():i(a),l&&u?l.merge(u).order():u}function Ny(t){for(var r=t.selection?t.selection():t,i=this._groups,l=r._groups,u=i.length,a=l.length,c=Math.min(u,a),d=new Array(u),p=0;p<c;++p)for(var g=i[p],v=l[p],y=g.length,m=d[p]=new Array(y),w,S=0;S<y;++S)(w=g[S]||v[S])&&(m[S]=w);for(;p<u;++p)d[p]=i[p];return new Mt(d,this._parents)}function Cy(){for(var t=this._groups,r=-1,i=t.length;++r<i;)for(var l=t[r],u=l.length-1,a=l[u],c;--u>=0;)(c=l[u])&&(a&&c.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(c,a),a=c);return this}function My(t){t||(t=Py);function r(y,m){return y&&m?t(y.__data__,m.__data__):!y-!m}for(var i=this._groups,l=i.length,u=new Array(l),a=0;a<l;++a){for(var c=i[a],d=c.length,p=u[a]=new Array(d),g,v=0;v<d;++v)(g=c[v])&&(p[v]=g);p.sort(r)}return new Mt(u,this._parents).order()}function Py(t,r){return t<r?-1:t>r?1:t>=r?0:NaN}function Iy(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Ty(){return Array.from(this)}function zy(){for(var t=this._groups,r=0,i=t.length;r<i;++r)for(var l=t[r],u=0,a=l.length;u<a;++u){var c=l[u];if(c)return c}return null}function jy(){let t=0;for(const r of this)++t;return t}function Ay(){return!this.node()}function Ly(t){for(var r=this._groups,i=0,l=r.length;i<l;++i)for(var u=r[i],a=0,c=u.length,d;a<c;++a)(d=u[a])&&t.call(d,d.__data__,a,u);return this}function Ry(t){return function(){this.removeAttribute(t)}}function Dy(t){return function(){this.removeAttributeNS(t.space,t.local)}}function $y(t,r){return function(){this.setAttribute(t,r)}}function Oy(t,r){return function(){this.setAttributeNS(t.space,t.local,r)}}function Fy(t,r){return function(){var i=r.apply(this,arguments);i==null?this.removeAttribute(t):this.setAttribute(t,i)}}function Hy(t,r){return function(){var i=r.apply(this,arguments);i==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,i)}}function Vy(t,r){var i=ml(t);if(arguments.length<2){var l=this.node();return i.local?l.getAttributeNS(i.space,i.local):l.getAttribute(i)}return this.each((r==null?i.local?Dy:Ry:typeof r=="function"?i.local?Hy:Fy:i.local?Oy:$y)(i,r))}function _p(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function by(t){return function(){this.style.removeProperty(t)}}function By(t,r,i){return function(){this.style.setProperty(t,r,i)}}function Uy(t,r,i){return function(){var l=r.apply(this,arguments);l==null?this.style.removeProperty(t):this.style.setProperty(t,l,i)}}function Wy(t,r,i){return arguments.length>1?this.each((r==null?by:typeof r=="function"?Uy:By)(t,r,i??"")):no(this.node(),t)}function no(t,r){return t.style.getPropertyValue(r)||_p(t).getComputedStyle(t,null).getPropertyValue(r)}function Yy(t){return function(){delete this[t]}}function Xy(t,r){return function(){this[t]=r}}function Qy(t,r){return function(){var i=r.apply(this,arguments);i==null?delete this[t]:this[t]=i}}function Ky(t,r){return arguments.length>1?this.each((r==null?Yy:typeof r=="function"?Qy:Xy)(t,r)):this.node()[t]}function Sp(t){return t.trim().split(/^|\s+/)}function Ja(t){return t.classList||new kp(t)}function kp(t){this._node=t,this._names=Sp(t.getAttribute("class")||"")}kp.prototype={add:function(t){var r=this._names.indexOf(t);r<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var r=this._names.indexOf(t);r>=0&&(this._names.splice(r,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Ep(t,r){for(var i=Ja(t),l=-1,u=r.length;++l<u;)i.add(r[l])}function Np(t,r){for(var i=Ja(t),l=-1,u=r.length;++l<u;)i.remove(r[l])}function Gy(t){return function(){Ep(this,t)}}function qy(t){return function(){Np(this,t)}}function Zy(t,r){return function(){(r.apply(this,arguments)?Ep:Np)(this,t)}}function Jy(t,r){var i=Sp(t+"");if(arguments.length<2){for(var l=Ja(this.node()),u=-1,a=i.length;++u<a;)if(!l.contains(i[u]))return!1;return!0}return this.each((typeof r=="function"?Zy:r?Gy:qy)(i,r))}function ev(){this.textContent=""}function tv(t){return function(){this.textContent=t}}function nv(t){return function(){var r=t.apply(this,arguments);this.textContent=r??""}}function rv(t){return arguments.length?this.each(t==null?ev:(typeof t=="function"?nv:tv)(t)):this.node().textContent}function ov(){this.innerHTML=""}function iv(t){return function(){this.innerHTML=t}}function sv(t){return function(){var r=t.apply(this,arguments);this.innerHTML=r??""}}function lv(t){return arguments.length?this.each(t==null?ov:(typeof t=="function"?sv:iv)(t)):this.node().innerHTML}function uv(){this.nextSibling&&this.parentNode.appendChild(this)}function av(){return this.each(uv)}function cv(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function fv(){return this.each(cv)}function dv(t){var r=typeof t=="function"?t:mp(t);return this.select(function(){return this.appendChild(r.apply(this,arguments))})}function hv(){return null}function pv(t,r){var i=typeof t=="function"?t:mp(t),l=r==null?hv:typeof r=="function"?r:Za(r);return this.select(function(){return this.insertBefore(i.apply(this,arguments),l.apply(this,arguments)||null)})}function gv(){var t=this.parentNode;t&&t.removeChild(this)}function mv(){return this.each(gv)}function yv(){var t=this.cloneNode(!1),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function vv(){var t=this.cloneNode(!0),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function xv(t){return this.select(t?vv:yv)}function wv(t){return arguments.length?this.property("__data__",t):this.node().__data__}function _v(t){return function(r){t.call(this,r,this.__data__)}}function Sv(t){return t.trim().split(/^|\s+/).map(function(r){var i="",l=r.indexOf(".");return l>=0&&(i=r.slice(l+1),r=r.slice(0,l)),{type:r,name:i}})}function kv(t){return function(){var r=this.__on;if(r){for(var i=0,l=-1,u=r.length,a;i<u;++i)a=r[i],(!t.type||a.type===t.type)&&a.name===t.name?this.removeEventListener(a.type,a.listener,a.options):r[++l]=a;++l?r.length=l:delete this.__on}}}function Ev(t,r,i){return function(){var l=this.__on,u,a=_v(r);if(l){for(var c=0,d=l.length;c<d;++c)if((u=l[c]).type===t.type&&u.name===t.name){this.removeEventListener(u.type,u.listener,u.options),this.addEventListener(u.type,u.listener=a,u.options=i),u.value=r;return}}this.addEventListener(t.type,a,i),u={type:t.type,name:t.name,value:r,listener:a,options:i},l?l.push(u):this.__on=[u]}}function Nv(t,r,i){var l=Sv(t+""),u,a=l.length,c;if(arguments.length<2){var d=this.node().__on;if(d){for(var p=0,g=d.length,v;p<g;++p)for(u=0,v=d[p];u<a;++u)if((c=l[u]).type===v.type&&c.name===v.name)return v.value}return}for(d=r?Ev:kv,u=0;u<a;++u)this.each(d(l[u],r,i));return this}function Cp(t,r,i){var l=_p(t),u=l.CustomEvent;typeof u=="function"?u=new u(r,i):(u=l.document.createEvent("Event"),i?(u.initEvent(r,i.bubbles,i.cancelable),u.detail=i.detail):u.initEvent(r,!1,!1)),t.dispatchEvent(u)}function Cv(t,r){return function(){return Cp(this,t,r)}}function Mv(t,r){return function(){return Cp(this,t,r.apply(this,arguments))}}function Pv(t,r){return this.each((typeof r=="function"?Mv:Cv)(t,r))}function*Iv(){for(var t=this._groups,r=0,i=t.length;r<i;++r)for(var l=t[r],u=0,a=l.length,c;u<a;++u)(c=l[u])&&(yield c)}var Mp=[null];function Mt(t,r){this._groups=t,this._parents=r}function vi(){return new Mt([[document.documentElement]],Mp)}function Tv(){return this}Mt.prototype=vi.prototype={constructor:Mt,select:ny,selectAll:sy,selectChild:cy,selectChildren:py,filter:gy,data:_y,enter:my,exit:ky,join:Ey,merge:Ny,selection:Tv,order:Cy,sort:My,call:Iy,nodes:Ty,node:zy,size:jy,empty:Ay,each:Ly,attr:Vy,style:Wy,property:Ky,classed:Jy,text:rv,html:lv,raise:av,lower:fv,append:dv,insert:pv,remove:mv,clone:xv,datum:wv,on:Nv,dispatch:Pv,[Symbol.iterator]:Iv};function Ct(t){return typeof t=="string"?new Mt([[document.querySelector(t)]],[document.documentElement]):new Mt([[t]],Mp)}function zv(t){let r;for(;r=t.sourceEvent;)t=r;return t}function bt(t,r){if(t=zv(t),r===void 0&&(r=t.currentTarget),r){var i=r.ownerSVGElement||r;if(i.createSVGPoint){var l=i.createSVGPoint();return l.x=t.clientX,l.y=t.clientY,l=l.matrixTransform(r.getScreenCTM().inverse()),[l.x,l.y]}if(r.getBoundingClientRect){var u=r.getBoundingClientRect();return[t.clientX-u.left-r.clientLeft,t.clientY-u.top-r.clientTop]}}return[t.pageX,t.pageY]}const jv={passive:!1},ui={capture:!0,passive:!1};function ka(t){t.stopImmediatePropagation()}function eo(t){t.preventDefault(),t.stopImmediatePropagation()}function Pp(t){var r=t.document.documentElement,i=Ct(t).on("dragstart.drag",eo,ui);"onselectstart"in r?i.on("selectstart.drag",eo,ui):(r.__noselect=r.style.MozUserSelect,r.style.MozUserSelect="none")}function Ip(t,r){var i=t.document.documentElement,l=Ct(t).on("dragstart.drag",null);r&&(l.on("click.drag",eo,ui),setTimeout(function(){l.on("click.drag",null)},0)),"onselectstart"in i?l.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect)}const Us=t=>()=>t;function Oa(t,{sourceEvent:r,subject:i,target:l,identifier:u,active:a,x:c,y:d,dx:p,dy:g,dispatch:v}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},subject:{value:i,enumerable:!0,configurable:!0},target:{value:l,enumerable:!0,configurable:!0},identifier:{value:u,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:c,enumerable:!0,configurable:!0},y:{value:d,enumerable:!0,configurable:!0},dx:{value:p,enumerable:!0,configurable:!0},dy:{value:g,enumerable:!0,configurable:!0},_:{value:v}})}Oa.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Av(t){return!t.ctrlKey&&!t.button}function Lv(){return this.parentNode}function Rv(t,r){return r??{x:t.x,y:t.y}}function Dv(){return navigator.maxTouchPoints||"ontouchstart"in this}function Tp(){var t=Av,r=Lv,i=Rv,l=Dv,u={},a=gl("start","drag","end"),c=0,d,p,g,v,y=0;function m(I){I.on("mousedown.drag",w).filter(l).on("touchstart.drag",N).on("touchmove.drag",k,jv).on("touchend.drag touchcancel.drag",j).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function w(I,F){if(!(v||!t.call(this,I,F))){var D=_(this,r.call(this,I,F),I,F,"mouse");D&&(Ct(I.view).on("mousemove.drag",S,ui).on("mouseup.drag",P,ui),Pp(I.view),ka(I),g=!1,d=I.clientX,p=I.clientY,D("start",I))}}function S(I){if(eo(I),!g){var F=I.clientX-d,D=I.clientY-p;g=F*F+D*D>y}u.mouse("drag",I)}function P(I){Ct(I.view).on("mousemove.drag mouseup.drag",null),Ip(I.view,g),eo(I),u.mouse("end",I)}function N(I,F){if(t.call(this,I,F)){var D=I.changedTouches,V=r.call(this,I,F),Q=D.length,Y,ee;for(Y=0;Y<Q;++Y)(ee=_(this,V,I,F,D[Y].identifier,D[Y]))&&(ka(I),ee("start",I,D[Y]))}}function k(I){var F=I.changedTouches,D=F.length,V,Q;for(V=0;V<D;++V)(Q=u[F[V].identifier])&&(eo(I),Q("drag",I,F[V]))}function j(I){var F=I.changedTouches,D=F.length,V,Q;for(v&&clearTimeout(v),v=setTimeout(function(){v=null},500),V=0;V<D;++V)(Q=u[F[V].identifier])&&(ka(I),Q("end",I,F[V]))}function _(I,F,D,V,Q,Y){var ee=a.copy(),q=bt(Y||D,F),J,Z,C;if((C=i.call(I,new Oa("beforestart",{sourceEvent:D,target:m,identifier:Q,active:c,x:q[0],y:q[1],dx:0,dy:0,dispatch:ee}),V))!=null)return J=C.x-q[0]||0,Z=C.y-q[1]||0,function b(H,B,z){var A=q,O;switch(H){case"start":u[Q]=b,O=c++;break;case"end":delete u[Q],--c;case"drag":q=bt(z||B,F),O=c;break}ee.call(H,I,new Oa(H,{sourceEvent:B,subject:C,target:m,identifier:Q,active:O,x:q[0]+J,y:q[1]+Z,dx:q[0]-A[0],dy:q[1]-A[1],dispatch:ee}),V)}}return m.filter=function(I){return arguments.length?(t=typeof I=="function"?I:Us(!!I),m):t},m.container=function(I){return arguments.length?(r=typeof I=="function"?I:Us(I),m):r},m.subject=function(I){return arguments.length?(i=typeof I=="function"?I:Us(I),m):i},m.touchable=function(I){return arguments.length?(l=typeof I=="function"?I:Us(!!I),m):l},m.on=function(){var I=a.on.apply(a,arguments);return I===a?m:I},m.clickDistance=function(I){return arguments.length?(y=(I=+I)*I,m):Math.sqrt(y)},m}function ec(t,r,i){t.prototype=r.prototype=i,i.constructor=t}function zp(t,r){var i=Object.create(t.prototype);for(var l in r)i[l]=r[l];return i}function xi(){}var ai=.7,il=1/ai,to="\\s*([+-]?\\d+)\\s*",ci="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",rn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",$v=/^#([0-9a-f]{3,8})$/,Ov=new RegExp(`^rgb\\(${to},${to},${to}\\)$`),Fv=new RegExp(`^rgb\\(${rn},${rn},${rn}\\)$`),Hv=new RegExp(`^rgba\\(${to},${to},${to},${ci}\\)$`),Vv=new RegExp(`^rgba\\(${rn},${rn},${rn},${ci}\\)$`),bv=new RegExp(`^hsl\\(${ci},${rn},${rn}\\)$`),Bv=new RegExp(`^hsla\\(${ci},${rn},${rn},${ci}\\)$`),Zd={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ec(xi,yr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Jd,formatHex:Jd,formatHex8:Uv,formatHsl:Wv,formatRgb:eh,toString:eh});function Jd(){return this.rgb().formatHex()}function Uv(){return this.rgb().formatHex8()}function Wv(){return jp(this).formatHsl()}function eh(){return this.rgb().formatRgb()}function yr(t){var r,i;return t=(t+"").trim().toLowerCase(),(r=$v.exec(t))?(i=r[1].length,r=parseInt(r[1],16),i===6?th(r):i===3?new yt(r>>8&15|r>>4&240,r>>4&15|r&240,(r&15)<<4|r&15,1):i===8?Ws(r>>24&255,r>>16&255,r>>8&255,(r&255)/255):i===4?Ws(r>>12&15|r>>8&240,r>>8&15|r>>4&240,r>>4&15|r&240,((r&15)<<4|r&15)/255):null):(r=Ov.exec(t))?new yt(r[1],r[2],r[3],1):(r=Fv.exec(t))?new yt(r[1]*255/100,r[2]*255/100,r[3]*255/100,1):(r=Hv.exec(t))?Ws(r[1],r[2],r[3],r[4]):(r=Vv.exec(t))?Ws(r[1]*255/100,r[2]*255/100,r[3]*255/100,r[4]):(r=bv.exec(t))?oh(r[1],r[2]/100,r[3]/100,1):(r=Bv.exec(t))?oh(r[1],r[2]/100,r[3]/100,r[4]):Zd.hasOwnProperty(t)?th(Zd[t]):t==="transparent"?new yt(NaN,NaN,NaN,0):null}function th(t){return new yt(t>>16&255,t>>8&255,t&255,1)}function Ws(t,r,i,l){return l<=0&&(t=r=i=NaN),new yt(t,r,i,l)}function Yv(t){return t instanceof xi||(t=yr(t)),t?(t=t.rgb(),new yt(t.r,t.g,t.b,t.opacity)):new yt}function Fa(t,r,i,l){return arguments.length===1?Yv(t):new yt(t,r,i,l??1)}function yt(t,r,i,l){this.r=+t,this.g=+r,this.b=+i,this.opacity=+l}ec(yt,Fa,zp(xi,{brighter(t){return t=t==null?il:Math.pow(il,t),new yt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?ai:Math.pow(ai,t),new yt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new yt(pr(this.r),pr(this.g),pr(this.b),sl(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:nh,formatHex:nh,formatHex8:Xv,formatRgb:rh,toString:rh}));function nh(){return`#${hr(this.r)}${hr(this.g)}${hr(this.b)}`}function Xv(){return`#${hr(this.r)}${hr(this.g)}${hr(this.b)}${hr((isNaN(this.opacity)?1:this.opacity)*255)}`}function rh(){const t=sl(this.opacity);return`${t===1?"rgb(":"rgba("}${pr(this.r)}, ${pr(this.g)}, ${pr(this.b)}${t===1?")":`, ${t})`}`}function sl(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function pr(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function hr(t){return t=pr(t),(t<16?"0":"")+t.toString(16)}function oh(t,r,i,l){return l<=0?t=r=i=NaN:i<=0||i>=1?t=r=NaN:r<=0&&(t=NaN),new Bt(t,r,i,l)}function jp(t){if(t instanceof Bt)return new Bt(t.h,t.s,t.l,t.opacity);if(t instanceof xi||(t=yr(t)),!t)return new Bt;if(t instanceof Bt)return t;t=t.rgb();var r=t.r/255,i=t.g/255,l=t.b/255,u=Math.min(r,i,l),a=Math.max(r,i,l),c=NaN,d=a-u,p=(a+u)/2;return d?(r===a?c=(i-l)/d+(i<l)*6:i===a?c=(l-r)/d+2:c=(r-i)/d+4,d/=p<.5?a+u:2-a-u,c*=60):d=p>0&&p<1?0:c,new Bt(c,d,p,t.opacity)}function Qv(t,r,i,l){return arguments.length===1?jp(t):new Bt(t,r,i,l??1)}function Bt(t,r,i,l){this.h=+t,this.s=+r,this.l=+i,this.opacity=+l}ec(Bt,Qv,zp(xi,{brighter(t){return t=t==null?il:Math.pow(il,t),new Bt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?ai:Math.pow(ai,t),new Bt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,r=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,l=i+(i<.5?i:1-i)*r,u=2*i-l;return new yt(Ea(t>=240?t-240:t+120,u,l),Ea(t,u,l),Ea(t<120?t+240:t-120,u,l),this.opacity)},clamp(){return new Bt(ih(this.h),Ys(this.s),Ys(this.l),sl(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=sl(this.opacity);return`${t===1?"hsl(":"hsla("}${ih(this.h)}, ${Ys(this.s)*100}%, ${Ys(this.l)*100}%${t===1?")":`, ${t})`}`}}));function ih(t){return t=(t||0)%360,t<0?t+360:t}function Ys(t){return Math.max(0,Math.min(1,t||0))}function Ea(t,r,i){return(t<60?r+(i-r)*t/60:t<180?i:t<240?r+(i-r)*(240-t)/60:r)*255}const tc=t=>()=>t;function Kv(t,r){return function(i){return t+i*r}}function Gv(t,r,i){return t=Math.pow(t,i),r=Math.pow(r,i)-t,i=1/i,function(l){return Math.pow(t+l*r,i)}}function qv(t){return(t=+t)==1?Ap:function(r,i){return i-r?Gv(r,i,t):tc(isNaN(r)?i:r)}}function Ap(t,r){var i=r-t;return i?Kv(t,i):tc(isNaN(t)?r:t)}const ll=(function t(r){var i=qv(r);function l(u,a){var c=i((u=Fa(u)).r,(a=Fa(a)).r),d=i(u.g,a.g),p=i(u.b,a.b),g=Ap(u.opacity,a.opacity);return function(v){return u.r=c(v),u.g=d(v),u.b=p(v),u.opacity=g(v),u+""}}return l.gamma=t,l})(1);function Zv(t,r){r||(r=[]);var i=t?Math.min(r.length,t.length):0,l=r.slice(),u;return function(a){for(u=0;u<i;++u)l[u]=t[u]*(1-a)+r[u]*a;return l}}function Jv(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function ex(t,r){var i=r?r.length:0,l=t?Math.min(i,t.length):0,u=new Array(l),a=new Array(i),c;for(c=0;c<l;++c)u[c]=ii(t[c],r[c]);for(;c<i;++c)a[c]=r[c];return function(d){for(c=0;c<l;++c)a[c]=u[c](d);return a}}function tx(t,r){var i=new Date;return t=+t,r=+r,function(l){return i.setTime(t*(1-l)+r*l),i}}function nn(t,r){return t=+t,r=+r,function(i){return t*(1-i)+r*i}}function nx(t,r){var i={},l={},u;(t===null||typeof t!="object")&&(t={}),(r===null||typeof r!="object")&&(r={});for(u in r)u in t?i[u]=ii(t[u],r[u]):l[u]=r[u];return function(a){for(u in i)l[u]=i[u](a);return l}}var Ha=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Na=new RegExp(Ha.source,"g");function rx(t){return function(){return t}}function ox(t){return function(r){return t(r)+""}}function Lp(t,r){var i=Ha.lastIndex=Na.lastIndex=0,l,u,a,c=-1,d=[],p=[];for(t=t+"",r=r+"";(l=Ha.exec(t))&&(u=Na.exec(r));)(a=u.index)>i&&(a=r.slice(i,a),d[c]?d[c]+=a:d[++c]=a),(l=l[0])===(u=u[0])?d[c]?d[c]+=u:d[++c]=u:(d[++c]=null,p.push({i:c,x:nn(l,u)})),i=Na.lastIndex;return i<r.length&&(a=r.slice(i),d[c]?d[c]+=a:d[++c]=a),d.length<2?p[0]?ox(p[0].x):rx(r):(r=p.length,function(g){for(var v=0,y;v<r;++v)d[(y=p[v]).i]=y.x(g);return d.join("")})}function ii(t,r){var i=typeof r,l;return r==null||i==="boolean"?tc(r):(i==="number"?nn:i==="string"?(l=yr(r))?(r=l,ll):Lp:r instanceof yr?ll:r instanceof Date?tx:Jv(r)?Zv:Array.isArray(r)?ex:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?nx:nn)(t,r)}var sh=180/Math.PI,Va={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Rp(t,r,i,l,u,a){var c,d,p;return(c=Math.sqrt(t*t+r*r))&&(t/=c,r/=c),(p=t*i+r*l)&&(i-=t*p,l-=r*p),(d=Math.sqrt(i*i+l*l))&&(i/=d,l/=d,p/=d),t*l<r*i&&(t=-t,r=-r,p=-p,c=-c),{translateX:u,translateY:a,rotate:Math.atan2(r,t)*sh,skewX:Math.atan(p)*sh,scaleX:c,scaleY:d}}var Xs;function ix(t){const r=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return r.isIdentity?Va:Rp(r.a,r.b,r.c,r.d,r.e,r.f)}function sx(t){return t==null||(Xs||(Xs=document.createElementNS("http://www.w3.org/2000/svg","g")),Xs.setAttribute("transform",t),!(t=Xs.transform.baseVal.consolidate()))?Va:(t=t.matrix,Rp(t.a,t.b,t.c,t.d,t.e,t.f))}function Dp(t,r,i,l){function u(g){return g.length?g.pop()+" ":""}function a(g,v,y,m,w,S){if(g!==y||v!==m){var P=w.push("translate(",null,r,null,i);S.push({i:P-4,x:nn(g,y)},{i:P-2,x:nn(v,m)})}else(y||m)&&w.push("translate("+y+r+m+i)}function c(g,v,y,m){g!==v?(g-v>180?v+=360:v-g>180&&(g+=360),m.push({i:y.push(u(y)+"rotate(",null,l)-2,x:nn(g,v)})):v&&y.push(u(y)+"rotate("+v+l)}function d(g,v,y,m){g!==v?m.push({i:y.push(u(y)+"skewX(",null,l)-2,x:nn(g,v)}):v&&y.push(u(y)+"skewX("+v+l)}function p(g,v,y,m,w,S){if(g!==y||v!==m){var P=w.push(u(w)+"scale(",null,",",null,")");S.push({i:P-4,x:nn(g,y)},{i:P-2,x:nn(v,m)})}else(y!==1||m!==1)&&w.push(u(w)+"scale("+y+","+m+")")}return function(g,v){var y=[],m=[];return g=t(g),v=t(v),a(g.translateX,g.translateY,v.translateX,v.translateY,y,m),c(g.rotate,v.rotate,y,m),d(g.skewX,v.skewX,y,m),p(g.scaleX,g.scaleY,v.scaleX,v.scaleY,y,m),g=v=null,function(w){for(var S=-1,P=m.length,N;++S<P;)y[(N=m[S]).i]=N.x(w);return y.join("")}}}var lx=Dp(ix,"px, ","px)","deg)"),ux=Dp(sx,", ",")",")"),ax=1e-12;function lh(t){return((t=Math.exp(t))+1/t)/2}function cx(t){return((t=Math.exp(t))-1/t)/2}function fx(t){return((t=Math.exp(2*t))-1)/(t+1)}const el=(function t(r,i,l){function u(a,c){var d=a[0],p=a[1],g=a[2],v=c[0],y=c[1],m=c[2],w=v-d,S=y-p,P=w*w+S*S,N,k;if(P<ax)k=Math.log(m/g)/r,N=function(V){return[d+V*w,p+V*S,g*Math.exp(r*V*k)]};else{var j=Math.sqrt(P),_=(m*m-g*g+l*P)/(2*g*i*j),I=(m*m-g*g-l*P)/(2*m*i*j),F=Math.log(Math.sqrt(_*_+1)-_),D=Math.log(Math.sqrt(I*I+1)-I);k=(D-F)/r,N=function(V){var Q=V*k,Y=lh(F),ee=g/(i*j)*(Y*fx(r*Q+F)-cx(F));return[d+ee*w,p+ee*S,g*Y/lh(r*Q+F)]}}return N.duration=k*1e3*r/Math.SQRT2,N}return u.rho=function(a){var c=Math.max(.001,+a),d=c*c,p=d*d;return t(c,d,p)},u})(Math.SQRT2,2,4);var ro=0,ri=0,ti=0,$p=1e3,ul,oi,al=0,vr=0,yl=0,fi=typeof performance=="object"&&performance.now?performance:Date,Op=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function nc(){return vr||(Op(dx),vr=fi.now()+yl)}function dx(){vr=0}function cl(){this._call=this._time=this._next=null}cl.prototype=Fp.prototype={constructor:cl,restart:function(t,r,i){if(typeof t!="function")throw new TypeError("callback is not a function");i=(i==null?nc():+i)+(r==null?0:+r),!this._next&&oi!==this&&(oi?oi._next=this:ul=this,oi=this),this._call=t,this._time=i,ba()},stop:function(){this._call&&(this._call=null,this._time=1/0,ba())}};function Fp(t,r,i){var l=new cl;return l.restart(t,r,i),l}function hx(){nc(),++ro;for(var t=ul,r;t;)(r=vr-t._time)>=0&&t._call.call(void 0,r),t=t._next;--ro}function uh(){vr=(al=fi.now())+yl,ro=ri=0;try{hx()}finally{ro=0,gx(),vr=0}}function px(){var t=fi.now(),r=t-al;r>$p&&(yl-=r,al=t)}function gx(){for(var t,r=ul,i,l=1/0;r;)r._call?(l>r._time&&(l=r._time),t=r,r=r._next):(i=r._next,r._next=null,r=t?t._next=i:ul=i);oi=t,ba(l)}function ba(t){if(!ro){ri&&(ri=clearTimeout(ri));var r=t-vr;r>24?(t<1/0&&(ri=setTimeout(uh,t-fi.now()-yl)),ti&&(ti=clearInterval(ti))):(ti||(al=fi.now(),ti=setInterval(px,$p)),ro=1,Op(uh))}}function ah(t,r,i){var l=new cl;return r=r==null?0:+r,l.restart(u=>{l.stop(),t(u+r)},r,i),l}var mx=gl("start","end","cancel","interrupt"),yx=[],Hp=0,ch=1,Ba=2,tl=3,fh=4,Ua=5,nl=6;function vl(t,r,i,l,u,a){var c=t.__transition;if(!c)t.__transition={};else if(i in c)return;vx(t,i,{name:r,index:l,group:u,on:mx,tween:yx,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Hp})}function rc(t,r){var i=Xt(t,r);if(i.state>Hp)throw new Error("too late; already scheduled");return i}function on(t,r){var i=Xt(t,r);if(i.state>tl)throw new Error("too late; already running");return i}function Xt(t,r){var i=t.__transition;if(!i||!(i=i[r]))throw new Error("transition not found");return i}function vx(t,r,i){var l=t.__transition,u;l[r]=i,i.timer=Fp(a,0,i.time);function a(g){i.state=ch,i.timer.restart(c,i.delay,i.time),i.delay<=g&&c(g-i.delay)}function c(g){var v,y,m,w;if(i.state!==ch)return p();for(v in l)if(w=l[v],w.name===i.name){if(w.state===tl)return ah(c);w.state===fh?(w.state=nl,w.timer.stop(),w.on.call("interrupt",t,t.__data__,w.index,w.group),delete l[v]):+v<r&&(w.state=nl,w.timer.stop(),w.on.call("cancel",t,t.__data__,w.index,w.group),delete l[v])}if(ah(function(){i.state===tl&&(i.state=fh,i.timer.restart(d,i.delay,i.time),d(g))}),i.state=Ba,i.on.call("start",t,t.__data__,i.index,i.group),i.state===Ba){for(i.state=tl,u=new Array(m=i.tween.length),v=0,y=-1;v<m;++v)(w=i.tween[v].value.call(t,t.__data__,i.index,i.group))&&(u[++y]=w);u.length=y+1}}function d(g){for(var v=g<i.duration?i.ease.call(null,g/i.duration):(i.timer.restart(p),i.state=Ua,1),y=-1,m=u.length;++y<m;)u[y].call(t,v);i.state===Ua&&(i.on.call("end",t,t.__data__,i.index,i.group),p())}function p(){i.state=nl,i.timer.stop(),delete l[r];for(var g in l)return;delete t.__transition}}function rl(t,r){var i=t.__transition,l,u,a=!0,c;if(i){r=r==null?null:r+"";for(c in i){if((l=i[c]).name!==r){a=!1;continue}u=l.state>Ba&&l.state<Ua,l.state=nl,l.timer.stop(),l.on.call(u?"interrupt":"cancel",t,t.__data__,l.index,l.group),delete i[c]}a&&delete t.__transition}}function xx(t){return this.each(function(){rl(this,t)})}function wx(t,r){var i,l;return function(){var u=on(this,t),a=u.tween;if(a!==i){l=i=a;for(var c=0,d=l.length;c<d;++c)if(l[c].name===r){l=l.slice(),l.splice(c,1);break}}u.tween=l}}function _x(t,r,i){var l,u;if(typeof i!="function")throw new Error;return function(){var a=on(this,t),c=a.tween;if(c!==l){u=(l=c).slice();for(var d={name:r,value:i},p=0,g=u.length;p<g;++p)if(u[p].name===r){u[p]=d;break}p===g&&u.push(d)}a.tween=u}}function Sx(t,r){var i=this._id;if(t+="",arguments.length<2){for(var l=Xt(this.node(),i).tween,u=0,a=l.length,c;u<a;++u)if((c=l[u]).name===t)return c.value;return null}return this.each((r==null?wx:_x)(i,t,r))}function oc(t,r,i){var l=t._id;return t.each(function(){var u=on(this,l);(u.value||(u.value={}))[r]=i.apply(this,arguments)}),function(u){return Xt(u,l).value[r]}}function Vp(t,r){var i;return(typeof r=="number"?nn:r instanceof yr?ll:(i=yr(r))?(r=i,ll):Lp)(t,r)}function kx(t){return function(){this.removeAttribute(t)}}function Ex(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Nx(t,r,i){var l,u=i+"",a;return function(){var c=this.getAttribute(t);return c===u?null:c===l?a:a=r(l=c,i)}}function Cx(t,r,i){var l,u=i+"",a;return function(){var c=this.getAttributeNS(t.space,t.local);return c===u?null:c===l?a:a=r(l=c,i)}}function Mx(t,r,i){var l,u,a;return function(){var c,d=i(this),p;return d==null?void this.removeAttribute(t):(c=this.getAttribute(t),p=d+"",c===p?null:c===l&&p===u?a:(u=p,a=r(l=c,d)))}}function Px(t,r,i){var l,u,a;return function(){var c,d=i(this),p;return d==null?void this.removeAttributeNS(t.space,t.local):(c=this.getAttributeNS(t.space,t.local),p=d+"",c===p?null:c===l&&p===u?a:(u=p,a=r(l=c,d)))}}function Ix(t,r){var i=ml(t),l=i==="transform"?ux:Vp;return this.attrTween(t,typeof r=="function"?(i.local?Px:Mx)(i,l,oc(this,"attr."+t,r)):r==null?(i.local?Ex:kx)(i):(i.local?Cx:Nx)(i,l,r))}function Tx(t,r){return function(i){this.setAttribute(t,r.call(this,i))}}function zx(t,r){return function(i){this.setAttributeNS(t.space,t.local,r.call(this,i))}}function jx(t,r){var i,l;function u(){var a=r.apply(this,arguments);return a!==l&&(i=(l=a)&&zx(t,a)),i}return u._value=r,u}function Ax(t,r){var i,l;function u(){var a=r.apply(this,arguments);return a!==l&&(i=(l=a)&&Tx(t,a)),i}return u._value=r,u}function Lx(t,r){var i="attr."+t;if(arguments.length<2)return(i=this.tween(i))&&i._value;if(r==null)return this.tween(i,null);if(typeof r!="function")throw new Error;var l=ml(t);return this.tween(i,(l.local?jx:Ax)(l,r))}function Rx(t,r){return function(){rc(this,t).delay=+r.apply(this,arguments)}}function Dx(t,r){return r=+r,function(){rc(this,t).delay=r}}function $x(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Rx:Dx)(r,t)):Xt(this.node(),r).delay}function Ox(t,r){return function(){on(this,t).duration=+r.apply(this,arguments)}}function Fx(t,r){return r=+r,function(){on(this,t).duration=r}}function Hx(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Ox:Fx)(r,t)):Xt(this.node(),r).duration}function Vx(t,r){if(typeof r!="function")throw new Error;return function(){on(this,t).ease=r}}function bx(t){var r=this._id;return arguments.length?this.each(Vx(r,t)):Xt(this.node(),r).ease}function Bx(t,r){return function(){var i=r.apply(this,arguments);if(typeof i!="function")throw new Error;on(this,t).ease=i}}function Ux(t){if(typeof t!="function")throw new Error;return this.each(Bx(this._id,t))}function Wx(t){typeof t!="function"&&(t=vp(t));for(var r=this._groups,i=r.length,l=new Array(i),u=0;u<i;++u)for(var a=r[u],c=a.length,d=l[u]=[],p,g=0;g<c;++g)(p=a[g])&&t.call(p,p.__data__,g,a)&&d.push(p);return new xn(l,this._parents,this._name,this._id)}function Yx(t){if(t._id!==this._id)throw new Error;for(var r=this._groups,i=t._groups,l=r.length,u=i.length,a=Math.min(l,u),c=new Array(l),d=0;d<a;++d)for(var p=r[d],g=i[d],v=p.length,y=c[d]=new Array(v),m,w=0;w<v;++w)(m=p[w]||g[w])&&(y[w]=m);for(;d<l;++d)c[d]=r[d];return new xn(c,this._parents,this._name,this._id)}function Xx(t){return(t+"").trim().split(/^|\s+/).every(function(r){var i=r.indexOf(".");return i>=0&&(r=r.slice(0,i)),!r||r==="start"})}function Qx(t,r,i){var l,u,a=Xx(r)?rc:on;return function(){var c=a(this,t),d=c.on;d!==l&&(u=(l=d).copy()).on(r,i),c.on=u}}function Kx(t,r){var i=this._id;return arguments.length<2?Xt(this.node(),i).on.on(t):this.each(Qx(i,t,r))}function Gx(t){return function(){var r=this.parentNode;for(var i in this.__transition)if(+i!==t)return;r&&r.removeChild(this)}}function qx(){return this.on("end.remove",Gx(this._id))}function Zx(t){var r=this._name,i=this._id;typeof t!="function"&&(t=Za(t));for(var l=this._groups,u=l.length,a=new Array(u),c=0;c<u;++c)for(var d=l[c],p=d.length,g=a[c]=new Array(p),v,y,m=0;m<p;++m)(v=d[m])&&(y=t.call(v,v.__data__,m,d))&&("__data__"in v&&(y.__data__=v.__data__),g[m]=y,vl(g[m],r,i,m,g,Xt(v,i)));return new xn(a,this._parents,r,i)}function Jx(t){var r=this._name,i=this._id;typeof t!="function"&&(t=yp(t));for(var l=this._groups,u=l.length,a=[],c=[],d=0;d<u;++d)for(var p=l[d],g=p.length,v,y=0;y<g;++y)if(v=p[y]){for(var m=t.call(v,v.__data__,y,p),w,S=Xt(v,i),P=0,N=m.length;P<N;++P)(w=m[P])&&vl(w,r,i,P,m,S);a.push(m),c.push(v)}return new xn(a,c,r,i)}var ew=vi.prototype.constructor;function tw(){return new ew(this._groups,this._parents)}function nw(t,r){var i,l,u;return function(){var a=no(this,t),c=(this.style.removeProperty(t),no(this,t));return a===c?null:a===i&&c===l?u:u=r(i=a,l=c)}}function bp(t){return function(){this.style.removeProperty(t)}}function rw(t,r,i){var l,u=i+"",a;return function(){var c=no(this,t);return c===u?null:c===l?a:a=r(l=c,i)}}function ow(t,r,i){var l,u,a;return function(){var c=no(this,t),d=i(this),p=d+"";return d==null&&(p=d=(this.style.removeProperty(t),no(this,t))),c===p?null:c===l&&p===u?a:(u=p,a=r(l=c,d))}}function iw(t,r){var i,l,u,a="style."+r,c="end."+a,d;return function(){var p=on(this,t),g=p.on,v=p.value[a]==null?d||(d=bp(r)):void 0;(g!==i||u!==v)&&(l=(i=g).copy()).on(c,u=v),p.on=l}}function sw(t,r,i){var l=(t+="")=="transform"?lx:Vp;return r==null?this.styleTween(t,nw(t,l)).on("end.style."+t,bp(t)):typeof r=="function"?this.styleTween(t,ow(t,l,oc(this,"style."+t,r))).each(iw(this._id,t)):this.styleTween(t,rw(t,l,r),i).on("end.style."+t,null)}function lw(t,r,i){return function(l){this.style.setProperty(t,r.call(this,l),i)}}function uw(t,r,i){var l,u;function a(){var c=r.apply(this,arguments);return c!==u&&(l=(u=c)&&lw(t,c,i)),l}return a._value=r,a}function aw(t,r,i){var l="style."+(t+="");if(arguments.length<2)return(l=this.tween(l))&&l._value;if(r==null)return this.tween(l,null);if(typeof r!="function")throw new Error;return this.tween(l,uw(t,r,i??""))}function cw(t){return function(){this.textContent=t}}function fw(t){return function(){var r=t(this);this.textContent=r??""}}function dw(t){return this.tween("text",typeof t=="function"?fw(oc(this,"text",t)):cw(t==null?"":t+""))}function hw(t){return function(r){this.textContent=t.call(this,r)}}function pw(t){var r,i;function l(){var u=t.apply(this,arguments);return u!==i&&(r=(i=u)&&hw(u)),r}return l._value=t,l}function gw(t){var r="text";if(arguments.length<1)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,pw(t))}function mw(){for(var t=this._name,r=this._id,i=Bp(),l=this._groups,u=l.length,a=0;a<u;++a)for(var c=l[a],d=c.length,p,g=0;g<d;++g)if(p=c[g]){var v=Xt(p,r);vl(p,t,i,g,c,{time:v.time+v.delay+v.duration,delay:0,duration:v.duration,ease:v.ease})}return new xn(l,this._parents,t,i)}function yw(){var t,r,i=this,l=i._id,u=i.size();return new Promise(function(a,c){var d={value:c},p={value:function(){--u===0&&a()}};i.each(function(){var g=on(this,l),v=g.on;v!==t&&(r=(t=v).copy(),r._.cancel.push(d),r._.interrupt.push(d),r._.end.push(p)),g.on=r}),u===0&&a()})}var vw=0;function xn(t,r,i,l){this._groups=t,this._parents=r,this._name=i,this._id=l}function Bp(){return++vw}var yn=vi.prototype;xn.prototype={constructor:xn,select:Zx,selectAll:Jx,selectChild:yn.selectChild,selectChildren:yn.selectChildren,filter:Wx,merge:Yx,selection:tw,transition:mw,call:yn.call,nodes:yn.nodes,node:yn.node,size:yn.size,empty:yn.empty,each:yn.each,on:Kx,attr:Ix,attrTween:Lx,style:sw,styleTween:aw,text:dw,textTween:gw,remove:qx,tween:Sx,delay:$x,duration:Hx,ease:bx,easeVarying:Ux,end:yw,[Symbol.iterator]:yn[Symbol.iterator]};function xw(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var ww={time:null,delay:0,duration:250,ease:xw};function _w(t,r){for(var i;!(i=t.__transition)||!(i=i[r]);)if(!(t=t.parentNode))throw new Error(`transition ${r} not found`);return i}function Sw(t){var r,i;t instanceof xn?(r=t._id,t=t._name):(r=Bp(),(i=ww).time=nc(),t=t==null?null:t+"");for(var l=this._groups,u=l.length,a=0;a<u;++a)for(var c=l[a],d=c.length,p,g=0;g<d;++g)(p=c[g])&&vl(p,t,r,g,c,i||_w(p,r));return new xn(l,this._parents,t,r)}vi.prototype.interrupt=xx;vi.prototype.transition=Sw;const Qs=t=>()=>t;function kw(t,{sourceEvent:r,target:i,transform:l,dispatch:u}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},transform:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}function vn(t,r,i){this.k=t,this.x=r,this.y=i}vn.prototype={constructor:vn,scale:function(t){return t===1?this:new vn(this.k*t,this.x,this.y)},translate:function(t,r){return t===0&r===0?this:new vn(this.k,this.x+this.k*t,this.y+this.k*r)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var xl=new vn(1,0,0);Up.prototype=vn.prototype;function Up(t){for(;!t.__zoom;)if(!(t=t.parentNode))return xl;return t.__zoom}function Ca(t){t.stopImmediatePropagation()}function ni(t){t.preventDefault(),t.stopImmediatePropagation()}function Ew(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Nw(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function dh(){return this.__zoom||xl}function Cw(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Mw(){return navigator.maxTouchPoints||"ontouchstart"in this}function Pw(t,r,i){var l=t.invertX(r[0][0])-i[0][0],u=t.invertX(r[1][0])-i[1][0],a=t.invertY(r[0][1])-i[0][1],c=t.invertY(r[1][1])-i[1][1];return t.translate(u>l?(l+u)/2:Math.min(0,l)||Math.max(0,u),c>a?(a+c)/2:Math.min(0,a)||Math.max(0,c))}function Wp(){var t=Ew,r=Nw,i=Pw,l=Cw,u=Mw,a=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,p=el,g=gl("start","zoom","end"),v,y,m,w=500,S=150,P=0,N=10;function k(C){C.property("__zoom",dh).on("wheel.zoom",Q,{passive:!1}).on("mousedown.zoom",Y).on("dblclick.zoom",ee).filter(u).on("touchstart.zoom",q).on("touchmove.zoom",J).on("touchend.zoom touchcancel.zoom",Z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}k.transform=function(C,b,H,B){var z=C.selection?C.selection():C;z.property("__zoom",dh),C!==z?F(C,b,H,B):z.interrupt().each(function(){D(this,arguments).event(B).start().zoom(null,typeof b=="function"?b.apply(this,arguments):b).end()})},k.scaleBy=function(C,b,H,B){k.scaleTo(C,function(){var z=this.__zoom.k,A=typeof b=="function"?b.apply(this,arguments):b;return z*A},H,B)},k.scaleTo=function(C,b,H,B){k.transform(C,function(){var z=r.apply(this,arguments),A=this.__zoom,O=H==null?I(z):typeof H=="function"?H.apply(this,arguments):H,M=A.invert(O),L=typeof b=="function"?b.apply(this,arguments):b;return i(_(j(A,L),O,M),z,c)},H,B)},k.translateBy=function(C,b,H,B){k.transform(C,function(){return i(this.__zoom.translate(typeof b=="function"?b.apply(this,arguments):b,typeof H=="function"?H.apply(this,arguments):H),r.apply(this,arguments),c)},null,B)},k.translateTo=function(C,b,H,B,z){k.transform(C,function(){var A=r.apply(this,arguments),O=this.__zoom,M=B==null?I(A):typeof B=="function"?B.apply(this,arguments):B;return i(xl.translate(M[0],M[1]).scale(O.k).translate(typeof b=="function"?-b.apply(this,arguments):-b,typeof H=="function"?-H.apply(this,arguments):-H),A,c)},B,z)};function j(C,b){return b=Math.max(a[0],Math.min(a[1],b)),b===C.k?C:new vn(b,C.x,C.y)}function _(C,b,H){var B=b[0]-H[0]*C.k,z=b[1]-H[1]*C.k;return B===C.x&&z===C.y?C:new vn(C.k,B,z)}function I(C){return[(+C[0][0]+ +C[1][0])/2,(+C[0][1]+ +C[1][1])/2]}function F(C,b,H,B){C.on("start.zoom",function(){D(this,arguments).event(B).start()}).on("interrupt.zoom end.zoom",function(){D(this,arguments).event(B).end()}).tween("zoom",function(){var z=this,A=arguments,O=D(z,A).event(B),M=r.apply(z,A),L=H==null?I(M):typeof H=="function"?H.apply(z,A):H,te=Math.max(M[1][0]-M[0][0],M[1][1]-M[0][1]),re=z.__zoom,ue=typeof b=="function"?b.apply(z,A):b,ce=p(re.invert(L).concat(te/re.k),ue.invert(L).concat(te/ue.k));return function(ae){if(ae===1)ae=ue;else{var G=ce(ae),se=te/G[2];ae=new vn(se,L[0]-G[0]*se,L[1]-G[1]*se)}O.zoom(null,ae)}})}function D(C,b,H){return!H&&C.__zooming||new V(C,b)}function V(C,b){this.that=C,this.args=b,this.active=0,this.sourceEvent=null,this.extent=r.apply(C,b),this.taps=0}V.prototype={event:function(C){return C&&(this.sourceEvent=C),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(C,b){return this.mouse&&C!=="mouse"&&(this.mouse[1]=b.invert(this.mouse[0])),this.touch0&&C!=="touch"&&(this.touch0[1]=b.invert(this.touch0[0])),this.touch1&&C!=="touch"&&(this.touch1[1]=b.invert(this.touch1[0])),this.that.__zoom=b,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(C){var b=Ct(this.that).datum();g.call(C,this.that,new kw(C,{sourceEvent:this.sourceEvent,target:k,transform:this.that.__zoom,dispatch:g}),b)}};function Q(C,...b){if(!t.apply(this,arguments))return;var H=D(this,b).event(C),B=this.__zoom,z=Math.max(a[0],Math.min(a[1],B.k*Math.pow(2,l.apply(this,arguments)))),A=bt(C);if(H.wheel)(H.mouse[0][0]!==A[0]||H.mouse[0][1]!==A[1])&&(H.mouse[1]=B.invert(H.mouse[0]=A)),clearTimeout(H.wheel);else{if(B.k===z)return;H.mouse=[A,B.invert(A)],rl(this),H.start()}ni(C),H.wheel=setTimeout(O,S),H.zoom("mouse",i(_(j(B,z),H.mouse[0],H.mouse[1]),H.extent,c));function O(){H.wheel=null,H.end()}}function Y(C,...b){if(m||!t.apply(this,arguments))return;var H=C.currentTarget,B=D(this,b,!0).event(C),z=Ct(C.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",te,!0),A=bt(C,H),O=C.clientX,M=C.clientY;Pp(C.view),Ca(C),B.mouse=[A,this.__zoom.invert(A)],rl(this),B.start();function L(re){if(ni(re),!B.moved){var ue=re.clientX-O,ce=re.clientY-M;B.moved=ue*ue+ce*ce>P}B.event(re).zoom("mouse",i(_(B.that.__zoom,B.mouse[0]=bt(re,H),B.mouse[1]),B.extent,c))}function te(re){z.on("mousemove.zoom mouseup.zoom",null),Ip(re.view,B.moved),ni(re),B.event(re).end()}}function ee(C,...b){if(t.apply(this,arguments)){var H=this.__zoom,B=bt(C.changedTouches?C.changedTouches[0]:C,this),z=H.invert(B),A=H.k*(C.shiftKey?.5:2),O=i(_(j(H,A),B,z),r.apply(this,b),c);ni(C),d>0?Ct(this).transition().duration(d).call(F,O,B,C):Ct(this).call(k.transform,O,B,C)}}function q(C,...b){if(t.apply(this,arguments)){var H=C.touches,B=H.length,z=D(this,b,C.changedTouches.length===B).event(C),A,O,M,L;for(Ca(C),O=0;O<B;++O)M=H[O],L=bt(M,this),L=[L,this.__zoom.invert(L),M.identifier],z.touch0?!z.touch1&&z.touch0[2]!==L[2]&&(z.touch1=L,z.taps=0):(z.touch0=L,A=!0,z.taps=1+!!v);v&&(v=clearTimeout(v)),A&&(z.taps<2&&(y=L[0],v=setTimeout(function(){v=null},w)),rl(this),z.start())}}function J(C,...b){if(this.__zooming){var H=D(this,b).event(C),B=C.changedTouches,z=B.length,A,O,M,L;for(ni(C),A=0;A<z;++A)O=B[A],M=bt(O,this),H.touch0&&H.touch0[2]===O.identifier?H.touch0[0]=M:H.touch1&&H.touch1[2]===O.identifier&&(H.touch1[0]=M);if(O=H.that.__zoom,H.touch1){var te=H.touch0[0],re=H.touch0[1],ue=H.touch1[0],ce=H.touch1[1],ae=(ae=ue[0]-te[0])*ae+(ae=ue[1]-te[1])*ae,G=(G=ce[0]-re[0])*G+(G=ce[1]-re[1])*G;O=j(O,Math.sqrt(ae/G)),M=[(te[0]+ue[0])/2,(te[1]+ue[1])/2],L=[(re[0]+ce[0])/2,(re[1]+ce[1])/2]}else if(H.touch0)M=H.touch0[0],L=H.touch0[1];else return;H.zoom("touch",i(_(O,M,L),H.extent,c))}}function Z(C,...b){if(this.__zooming){var H=D(this,b).event(C),B=C.changedTouches,z=B.length,A,O;for(Ca(C),m&&clearTimeout(m),m=setTimeout(function(){m=null},w),A=0;A<z;++A)O=B[A],H.touch0&&H.touch0[2]===O.identifier?delete H.touch0:H.touch1&&H.touch1[2]===O.identifier&&delete H.touch1;if(H.touch1&&!H.touch0&&(H.touch0=H.touch1,delete H.touch1),H.touch0)H.touch0[1]=this.__zoom.invert(H.touch0[0]);else if(H.end(),H.taps===2&&(O=bt(O,this),Math.hypot(y[0]-O[0],y[1]-O[1])<N)){var M=Ct(this).on("dblclick.zoom");M&&M.apply(this,arguments)}}}return k.wheelDelta=function(C){return arguments.length?(l=typeof C=="function"?C:Qs(+C),k):l},k.filter=function(C){return arguments.length?(t=typeof C=="function"?C:Qs(!!C),k):t},k.touchable=function(C){return arguments.length?(u=typeof C=="function"?C:Qs(!!C),k):u},k.extent=function(C){return arguments.length?(r=typeof C=="function"?C:Qs([[+C[0][0],+C[0][1]],[+C[1][0],+C[1][1]]]),k):r},k.scaleExtent=function(C){return arguments.length?(a[0]=+C[0],a[1]=+C[1],k):[a[0],a[1]]},k.translateExtent=function(C){return arguments.length?(c[0][0]=+C[0][0],c[1][0]=+C[1][0],c[0][1]=+C[0][1],c[1][1]=+C[1][1],k):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},k.constrain=function(C){return arguments.length?(i=C,k):i},k.duration=function(C){return arguments.length?(d=+C,k):d},k.interpolate=function(C){return arguments.length?(p=C,k):p},k.on=function(){var C=g.on.apply(g,arguments);return C===g?k:C},k.clickDistance=function(C){return arguments.length?(P=(C=+C)*C,k):Math.sqrt(P)},k.tapDistance=function(C){return arguments.length?(N=+C,k):N},k}const Yt={error001:(t="react")=>`Seems like you have not used ${t==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${t}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:r,sourceHandle:i,targetHandle:l})=>`Couldn't create edge for ${t} handle id: "${t==="source"?i:l}", edge id: ${r}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:t=>`Edge with id "${t}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},di=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Yp=["Enter"," ","Escape"],Xp={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:t,x:r,y:i})=>`Moved selected node ${t}. New position, x: ${r}, y: ${i}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var oo;(function(t){t.Strict="strict",t.Loose="loose"})(oo||(oo={}));var gr;(function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"})(gr||(gr={}));var hi;(function(t){t.Partial="partial",t.Full="full"})(hi||(hi={}));const Qp={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Un;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(Un||(Un={}));var fl;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(fl||(fl={}));var ve;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(ve||(ve={}));const hh={[ve.Left]:ve.Right,[ve.Right]:ve.Left,[ve.Top]:ve.Bottom,[ve.Bottom]:ve.Top},Kp=t=>!!t&&typeof t=="object"&&"id"in t&&"source"in t&&"target"in t,Iw=t=>!!t&&typeof t=="object"&&"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),ic=t=>!!t&&typeof t=="object"&&"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),wi=(t,r=[0,0])=>{const{width:i,height:l}=Qt(t),u=t.origin??r,a=i*u[0],c=l*u[1];return{x:t.position.x-a,y:t.position.y-c}},Tw=(t,r={nodeOrigin:[0,0]})=>{if(t.length===0)return{x:0,y:0,width:0,height:0};let i=!1;const l=t.reduce((u,a)=>{const c=typeof a=="string";let d=!r.nodeLookup&&!c?a:void 0;return r.nodeLookup&&(d=c?r.nodeLookup.get(a):ic(a)?a:r.nodeLookup.get(a.id)),d?(i=!0,wl(u,dl(d,r.nodeOrigin))):u},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return i?_l(l):{x:0,y:0,width:0,height:0}},_i=(t,r={})=>{let i={x:1/0,y:1/0,x2:-1/0,y2:-1/0},l=!1;return t.forEach(u=>{(r.filter===void 0||r.filter(u))&&(i=wl(i,dl(u)),l=!0)}),l?_l(i):{x:0,y:0,width:0,height:0}},sc=(t,r,[i,l,u]=[0,0,1],a=!1,c=!1)=>{const d=(r.x-i)/u,p=(r.y-l)/u,g=r.width/u,v=r.height/u,y=[];for(const m of t.values()){const{measured:w,selectable:S=!0,hidden:P=!1}=m;if(c&&!S||P)continue;const N=w.width??m.width??m.initialWidth??0,k=w.height??m.height??m.initialHeight??0,{x:j,y:_}=m.internals.positionAbsolute,I=Jp(d,p,g,v,j,_,N,k),F=N*k,D=a&&I>0;(!m.internals.handleBounds||D||I>=F||m.dragging)&&y.push(m)}return y},zw=(t,r)=>{const i=new Set;return t.forEach(l=>{i.add(l.id)}),r.filter(l=>i.has(l.source)||i.has(l.target))};function jw(t,r){const i=new Map,l=r!=null&&r.nodes?new Set(r.nodes.map(u=>u.id)):null;return t.forEach(u=>{let a;if(r!=null&&r.includeHiddenNodes){const{width:c,height:d}=Qt(u);a=c>0&&d>0}else a=!!(u.measured.width&&u.measured.height&&!u.hidden);a&&(!l||l.has(u.id))&&i.set(u.id,u)}),i}async function Aw({nodes:t,width:r,height:i,panZoom:l,minZoom:u,maxZoom:a},c){if(t.size===0)return!0;const d=jw(t,c),p=_i(d),g=uc(p,r,i,(c==null?void 0:c.minZoom)??u,(c==null?void 0:c.maxZoom)??a,(c==null?void 0:c.padding)??.1);return await l.setViewport(g,{duration:c==null?void 0:c.duration,ease:c==null?void 0:c.ease,interpolate:c==null?void 0:c.interpolate}),!0}function Gp({nodeId:t,nextPosition:r,nodeLookup:i,nodeOrigin:l=[0,0],nodeExtent:u,onError:a}){const c=i.get(t),d=c.parentId?i.get(c.parentId):void 0,{x:p,y:g}=d?d.internals.positionAbsolute:{x:0,y:0},v=c.origin??l;let y=c.extent||u;if(c.extent==="parent"&&!c.expandParent)if(!d)a==null||a("005",Yt.error005());else{const{width:w,height:S}=Qt(d);w&&S&&(y=[[p,g],[p+w,g+S]])}else d&&wr(c.extent)&&(y=[[c.extent[0][0]+p,c.extent[0][1]+g],[c.extent[1][0]+p,c.extent[1][1]+g]]);const m=wr(y)?xr(r,y,c.measured):r;return(c.measured.width===void 0||c.measured.height===void 0)&&(a==null||a("015",Yt.error015())),{position:{x:m.x-p+(c.measured.width??0)*v[0],y:m.y-g+(c.measured.height??0)*v[1]},positionAbsolute:m}}async function Lw({nodesToRemove:t=[],edgesToRemove:r=[],nodes:i,edges:l,onBeforeDelete:u}){const a=new Set(t.map(m=>m.id)),c=[];for(const m of i){if(m.deletable===!1)continue;const w=a.has(m.id),S=!w&&m.parentId&&c.find(P=>P.id===m.parentId);(w||S)&&c.push(m)}const d=new Set(r.map(m=>m.id)),p=l.filter(m=>m.deletable!==!1),v=zw(c,p);for(const m of p)d.has(m.id)&&!v.find(S=>S.id===m.id)&&v.push(m);if(!u)return{edges:v,nodes:c};const y=await u({nodes:c,edges:v});return typeof y=="boolean"?y?{edges:v,nodes:c}:{edges:[],nodes:[]}:y}const io=(t,r=0,i=1)=>Math.min(Math.max(t,r),i),xr=(t={x:0,y:0},r,i)=>({x:io(t.x,r[0][0],r[1][0]-((i==null?void 0:i.width)??0)),y:io(t.y,r[0][1],r[1][1]-((i==null?void 0:i.height)??0))});function qp(t,r,i){const{width:l,height:u}=Qt(i),{x:a,y:c}=i.internals.positionAbsolute;return xr(t,[[a,c],[a+l,c+u]],r)}const ph=(t,r,i)=>t<r?io(Math.abs(t-r),1,r)/r:t>i?-io(Math.abs(t-i),1,r)/r:0,lc=(t,r,i=15,l=40)=>{const u=ph(t.x,l,r.width-l)*i,a=ph(t.y,l,r.height-l)*i;return[u,a]},wl=(t,r)=>({x:Math.min(t.x,r.x),y:Math.min(t.y,r.y),x2:Math.max(t.x2,r.x2),y2:Math.max(t.y2,r.y2)}),Wa=({x:t,y:r,width:i,height:l})=>({x:t,y:r,x2:t+i,y2:r+l}),_l=({x:t,y:r,x2:i,y2:l})=>({x:t,y:r,width:i-t,height:l-r}),pi=(t,r=[0,0])=>{var u,a;const{x:i,y:l}=ic(t)?t.internals.positionAbsolute:wi(t,r);return{x:i,y:l,width:((u=t.measured)==null?void 0:u.width)??t.width??t.initialWidth??0,height:((a=t.measured)==null?void 0:a.height)??t.height??t.initialHeight??0}},dl=(t,r=[0,0])=>{var u,a;const{x:i,y:l}=ic(t)?t.internals.positionAbsolute:wi(t,r);return{x:i,y:l,x2:i+(((u=t.measured)==null?void 0:u.width)??t.width??t.initialWidth??0),y2:l+(((a=t.measured)==null?void 0:a.height)??t.height??t.initialHeight??0)}},Zp=(t,r)=>_l(wl(Wa(t),Wa(r))),Jp=(t,r,i,l,u,a,c,d)=>{const p=Math.max(0,Math.min(t+i,u+c)-Math.max(t,u)),g=Math.max(0,Math.min(r+l,a+d)-Math.max(r,a));return Math.ceil(p*g)},hl=(t,r)=>Jp(t.x,t.y,t.width,t.height,r.x,r.y,r.width,r.height),gh=t=>Ut(t.width)&&Ut(t.height)&&Ut(t.x)&&Ut(t.y),Ut=t=>!isNaN(t)&&isFinite(t),eg=(t,r)=>(i,l)=>{},Si=(t,r=[1,1])=>({x:r[0]*Math.round(t.x/r[0]),y:r[1]*Math.round(t.y/r[1])}),ki=({x:t,y:r},[i,l,u],a=!1,c=[1,1])=>{const d={x:(t-i)/u,y:(r-l)/u};return a?Si(d,c):d},so=({x:t,y:r},[i,l,u])=>({x:t*u+i,y:r*u+l});function Zr(t,r){if(typeof t=="number")return Math.floor((r-r/(1+t))*.5);if(typeof t=="string"&&t.endsWith("px")){const i=parseFloat(t);if(!Number.isNaN(i))return Math.floor(i)}if(typeof t=="string"&&t.endsWith("%")){const i=parseFloat(t);if(!Number.isNaN(i))return Math.floor(r*i*.01)}return console.error(`The padding value "${t}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Rw(t,r,i){if(typeof t=="string"||typeof t=="number"){const l=Zr(t,i),u=Zr(t,r);return{top:l,right:u,bottom:l,left:u,x:u*2,y:l*2}}if(typeof t=="object"){const l=Zr(t.top??t.y??0,i),u=Zr(t.bottom??t.y??0,i),a=Zr(t.left??t.x??0,r),c=Zr(t.right??t.x??0,r);return{top:l,right:c,bottom:u,left:a,x:a+c,y:l+u}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Dw(t,r,i,l,u,a){const{x:c,y:d}=so(t,[r,i,l]),{x:p,y:g}=so({x:t.x+t.width,y:t.y+t.height},[r,i,l]),v=u-p,y=a-g;return{left:Math.floor(c),top:Math.floor(d),right:Math.floor(v),bottom:Math.floor(y)}}const uc=(t,r,i,l,u,a)=>{const c=Rw(a,r,i),d=(r-c.x)/t.width,p=(i-c.y)/t.height,g=Math.min(d,p),v=io(g,l,u),y=t.x+t.width/2,m=t.y+t.height/2,w=r/2-y*v,S=i/2-m*v,P=Dw(t,w,S,v,r,i),N={left:Math.min(P.left-c.left,0),top:Math.min(P.top-c.top,0),right:Math.min(P.right-c.right,0),bottom:Math.min(P.bottom-c.bottom,0)};return{x:w-N.left+N.right,y:S-N.top+N.bottom,zoom:v}},gi=()=>{var t;return typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)==null?void 0:t.indexOf("Mac"))>=0};function wr(t){return t!=null&&t!=="parent"}function Qt(t){var r,i;return{width:((r=t.measured)==null?void 0:r.width)??t.width??t.initialWidth??0,height:((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight??0}}function tg(t){var r,i;return(((r=t.measured)==null?void 0:r.width)??t.width??t.initialWidth)!==void 0&&(((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight)!==void 0}function ng(t,r={width:0,height:0},i,l,u){const a={...t},c=l.get(i);if(c){const d=c.origin||u;a.x+=c.internals.positionAbsolute.x-(r.width??0)*d[0],a.y+=c.internals.positionAbsolute.y-(r.height??0)*d[1]}return a}function mh(t,r){if(t.size!==r.size)return!1;for(const i of t)if(!r.has(i))return!1;return!0}function $w(){let t,r;return{promise:new Promise((l,u)=>{t=l,r=u}),resolve:t,reject:r}}function Ow(t){return{...Xp,...t||{}}}function rg(t){return t===null?null:t?"valid":"invalid"}function si(t,{snapGrid:r=[0,0],snapToGrid:i=!1,transform:l,containerBounds:u}){const{x:a,y:c}=Wt(t),d=ki({x:a-((u==null?void 0:u.left)??0),y:c-((u==null?void 0:u.top)??0)},l),{x:p,y:g}=i?Si(d,r):d;return{xSnapped:p,ySnapped:g,...d}}const ac=t=>({width:t.offsetWidth,height:t.offsetHeight}),og=t=>{var r;return((r=t==null?void 0:t.getRootNode)==null?void 0:r.call(t))||(window==null?void 0:window.document)},Fw=["INPUT","SELECT","TEXTAREA"];function ig(t){var l,u;const r=((u=(l=t.composedPath)==null?void 0:l.call(t))==null?void 0:u[0])||t.target;return(r==null?void 0:r.nodeType)!==1?!1:Fw.includes(r.nodeName)||r.hasAttribute("contenteditable")||!!r.closest(".nokey")}const sg=t=>"clientX"in t,Wt=(t,r)=>{var a,c;const i=sg(t),l=i?t.clientX:(a=t.touches)==null?void 0:a[0].clientX,u=i?t.clientY:(c=t.touches)==null?void 0:c[0].clientY;return{x:l-((r==null?void 0:r.left)??0),y:u-((r==null?void 0:r.top)??0)}},yh=(t,r,i,l,u)=>{const a=r.querySelectorAll(`.${t}`);return!a||!a.length?null:Array.from(a).map(c=>{const d=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),type:t,nodeId:u,position:c.getAttribute("data-handlepos"),x:(d.left-i.left)/l,y:(d.top-i.top)/l,...ac(c)}})};function lg({sourceX:t,sourceY:r,targetX:i,targetY:l,sourceControlX:u,sourceControlY:a,targetControlX:c,targetControlY:d}){const p=t*.125+u*.375+c*.375+i*.125,g=r*.125+a*.375+d*.375+l*.125,v=Math.abs(p-t),y=Math.abs(g-r);return[p,g,v,y]}function Ks(t,r){return t>=0?.5*t:r*25*Math.sqrt(-t)}function vh({pos:t,x1:r,y1:i,x2:l,y2:u,c:a}){switch(t){case ve.Left:return[r-Ks(r-l,a),i];case ve.Right:return[r+Ks(l-r,a),i];case ve.Top:return[r,i-Ks(i-u,a)];case ve.Bottom:return[r,i+Ks(u-i,a)]}}function ug({sourceX:t,sourceY:r,sourcePosition:i=ve.Bottom,targetX:l,targetY:u,targetPosition:a=ve.Top,curvature:c=.25}){const[d,p]=vh({pos:i,x1:t,y1:r,x2:l,y2:u,c}),[g,v]=vh({pos:a,x1:l,y1:u,x2:t,y2:r,c}),[y,m,w,S]=lg({sourceX:t,sourceY:r,targetX:l,targetY:u,sourceControlX:d,sourceControlY:p,targetControlX:g,targetControlY:v});return[`M${t},${r} C${d},${p} ${g},${v} ${l},${u}`,y,m,w,S]}function ag({sourceX:t,sourceY:r,targetX:i,targetY:l}){const u=Math.abs(i-t)/2,a=i<t?i+u:i-u,c=Math.abs(l-r)/2,d=l<r?l+c:l-c;return[a,d,u,c]}function Hw({sourceNode:t,targetNode:r,selected:i=!1,zIndex:l=0,elevateOnSelect:u=!1,zIndexMode:a="basic"}){if(a==="manual")return l;const c=u&&i?l+1e3:l,d=Math.max(t.parentId||u&&t.selected?t.internals.z:0,r.parentId||u&&r.selected?r.internals.z:0);return c+d}function Vw({sourceNode:t,targetNode:r,width:i,height:l,transform:u}){const a=wl(dl(t),dl(r));a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1);const c={x:-u[0]/u[2],y:-u[1]/u[2],width:i/u[2],height:l/u[2]};return hl(c,_l(a))>0}const bw=({source:t,sourceHandle:r,target:i,targetHandle:l})=>`xy-edge__${t}${r||""}-${i}${l||""}`,Bw=(t,r)=>r.some(i=>i.source===t.source&&i.target===t.target&&(i.sourceHandle===t.sourceHandle||!i.sourceHandle&&!t.sourceHandle)&&(i.targetHandle===t.targetHandle||!i.targetHandle&&!t.targetHandle)),Uw=(t,r,i={})=>{var a;if(!t.source||!t.target)return(a=i.onError)==null||a.call(i,"006",Yt.error006()),r;const l=i.getEdgeId||bw;let u;return Kp(t)?u={...t}:u={...t,id:l(t)},Bw(u,r)?r:(u.sourceHandle===null&&delete u.sourceHandle,u.targetHandle===null&&delete u.targetHandle,r.concat(u))};function cg({sourceX:t,sourceY:r,targetX:i,targetY:l}){const[u,a,c,d]=ag({sourceX:t,sourceY:r,targetX:i,targetY:l});return[`M ${t},${r}L ${i},${l}`,u,a,c,d]}const xh={[ve.Left]:{x:-1,y:0},[ve.Right]:{x:1,y:0},[ve.Top]:{x:0,y:-1},[ve.Bottom]:{x:0,y:1}},Ww=({source:t,sourcePosition:r=ve.Bottom,target:i})=>r===ve.Left||r===ve.Right?t.x<i.x?{x:1,y:0}:{x:-1,y:0}:t.y<i.y?{x:0,y:1}:{x:0,y:-1},wh=(t,r)=>Math.sqrt(Math.pow(r.x-t.x,2)+Math.pow(r.y-t.y,2));function Yw({source:t,sourcePosition:r=ve.Bottom,target:i,targetPosition:l=ve.Top,center:u,offset:a,stepPosition:c}){const d=xh[r],p=xh[l],g={x:t.x+d.x*a,y:t.y+d.y*a},v={x:i.x+p.x*a,y:i.y+p.y*a},y=Ww({source:g,sourcePosition:r,target:v}),m=y.x!==0?"x":"y",w=y[m];let S=[],P,N;const k={x:0,y:0},j={x:0,y:0},[,,_,I]=ag({sourceX:t.x,sourceY:t.y,targetX:i.x,targetY:i.y});if(d[m]*p[m]===-1){m==="x"?(P=u.x??g.x+(v.x-g.x)*c,N=u.y??(g.y+v.y)/2):(P=u.x??(g.x+v.x)/2,N=u.y??g.y+(v.y-g.y)*c);const Q=[{x:P,y:g.y},{x:P,y:v.y}],Y=[{x:g.x,y:N},{x:v.x,y:N}];d[m]===w?S=m==="x"?Q:Y:S=m==="x"?Y:Q}else{const Q=[{x:g.x,y:v.y}],Y=[{x:v.x,y:g.y}];if(m==="x"?S=d.x===w?Y:Q:S=d.y===w?Q:Y,r===l){const C=Math.abs(t[m]-i[m]);if(C<=a){const b=Math.min(a-1,a-C);d[m]===w?k[m]=(g[m]>t[m]?-1:1)*b:j[m]=(v[m]>i[m]?-1:1)*b}}if(r!==l){const C=m==="x"?"y":"x",b=d[m]===p[C],H=g[C]>v[C],B=g[C]<v[C];(d[m]===1&&(!b&&H||b&&B)||d[m]!==1&&(!b&&B||b&&H))&&(S=m==="x"?Q:Y)}const ee={x:g.x+k.x,y:g.y+k.y},q={x:v.x+j.x,y:v.y+j.y},J=Math.max(Math.abs(ee.x-S[0].x),Math.abs(q.x-S[0].x)),Z=Math.max(Math.abs(ee.y-S[0].y),Math.abs(q.y-S[0].y));J>=Z?(P=(ee.x+q.x)/2,N=S[0].y):(P=S[0].x,N=(ee.y+q.y)/2)}const F={x:g.x+k.x,y:g.y+k.y},D={x:v.x+j.x,y:v.y+j.y};return[[t,...F.x!==S[0].x||F.y!==S[0].y?[F]:[],...S,...D.x!==S[S.length-1].x||D.y!==S[S.length-1].y?[D]:[],i],P,N,_,I]}function Xw(t,r,i,l){const u=Math.min(wh(t,r)/2,wh(r,i)/2,l),{x:a,y:c}=r;if(t.x===a&&a===i.x||t.y===c&&c===i.y)return`L${a} ${c}`;if(t.y===c){const g=t.x<i.x?-1:1,v=t.y<i.y?1:-1;return`L ${a+u*g},${c}Q ${a},${c} ${a},${c+u*v}`}const d=t.x<i.x?1:-1,p=t.y<i.y?-1:1;return`L ${a},${c+u*p}Q ${a},${c} ${a+u*d},${c}`}function Ya({sourceX:t,sourceY:r,sourcePosition:i=ve.Bottom,targetX:l,targetY:u,targetPosition:a=ve.Top,borderRadius:c=5,centerX:d,centerY:p,offset:g=20,stepPosition:v=.5}){const[y,m,w,S,P]=Yw({source:{x:t,y:r},sourcePosition:i,target:{x:l,y:u},targetPosition:a,center:{x:d,y:p},offset:g,stepPosition:v});let N=`M${y[0].x} ${y[0].y}`;for(let k=1;k<y.length-1;k++)N+=Xw(y[k-1],y[k],y[k+1],c);return N+=`L${y[y.length-1].x} ${y[y.length-1].y}`,[N,m,w,S,P]}function _h(t){var r;return t&&!!(t.internals.handleBounds||(r=t.handles)!=null&&r.length)&&!!(t.measured.width||t.width||t.initialWidth)}function Qw(t){var y;const{sourceNode:r,targetNode:i}=t;if(!_h(r)||!_h(i))return null;const l=r.internals.handleBounds||Sh(r.handles),u=i.internals.handleBounds||Sh(i.handles),a=kh((l==null?void 0:l.source)??[],t.sourceHandle),c=kh(t.connectionMode===oo.Strict?(u==null?void 0:u.target)??[]:((u==null?void 0:u.target)??[]).concat((u==null?void 0:u.source)??[]),t.targetHandle);if(!a||!c)return(y=t.onError)==null||y.call(t,"008",Yt.error008(a?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const d=(a==null?void 0:a.position)||ve.Bottom,p=(c==null?void 0:c.position)||ve.Top,g=_r(r,a,d),v=_r(i,c,p);return{sourceX:g.x,sourceY:g.y,targetX:v.x,targetY:v.y,sourcePosition:d,targetPosition:p}}function Sh(t){if(!t)return null;const r=[],i=[];for(const l of t)l.width=l.width??1,l.height=l.height??1,l.type==="source"?r.push(l):l.type==="target"&&i.push(l);return{source:r,target:i}}function _r(t,r,i=ve.Left,l=!1){const u=((r==null?void 0:r.x)??0)+t.internals.positionAbsolute.x,a=((r==null?void 0:r.y)??0)+t.internals.positionAbsolute.y,{width:c,height:d}=r??Qt(t);if(l)return{x:u+c/2,y:a+d/2};switch((r==null?void 0:r.position)??i){case ve.Top:return{x:u+c/2,y:a};case ve.Right:return{x:u+c,y:a+d/2};case ve.Bottom:return{x:u+c/2,y:a+d};case ve.Left:return{x:u,y:a+d/2}}}function kh(t,r){return t&&(r?t.find(i=>i.id===r):t[0])||null}function Xa(t,r){return t?typeof t=="string"?t:`${r?`${r}__`:""}${Object.keys(t).sort().map(l=>`${l}=${t[l]}`).join("&")}`:""}function Kw(t,{id:r,defaultColor:i,defaultMarkerStart:l,defaultMarkerEnd:u}){const a=new Set;return t.reduce((c,d)=>([d.markerStart||l,d.markerEnd||u].forEach(p=>{if(p&&typeof p=="object"){const g=Xa(p,r);a.has(g)||(c.push({id:g,color:p.color||i,...p}),a.add(g))}}),c),[]).sort((c,d)=>c.id.localeCompare(d.id))}const fg=1e3,Gw=10,cc={nodeOrigin:[0,0],nodeExtent:di,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},qw={...cc,checkEquality:!0};function fc(t,r){const i={...t};for(const l in r)r[l]!==void 0&&(i[l]=r[l]);return i}function Zw(t,r,i){const l=fc(cc,i);for(const u of t.values())if(u.parentId)hc(u,t,r,l);else{const a=wi(u,l.nodeOrigin),c=wr(u.extent)?u.extent:l.nodeExtent,d=xr(a,c,Qt(u));u.internals.positionAbsolute=d}}function Jw(t,r){if(!t.handles)return t.measured?r==null?void 0:r.internals.handleBounds:void 0;const i=[],l=[];for(const u of t.handles){const a={id:u.id,width:u.width??1,height:u.height??1,nodeId:t.id,x:u.x,y:u.y,position:u.position,type:u.type};u.type==="source"?i.push(a):u.type==="target"&&l.push(a)}return{source:i,target:l}}function dc(t){return t==="manual"}function Qa(t,r,i,l={}){var v,y;const u=fc(qw,l),a={i:0},c=new Map(r),d=u!=null&&u.elevateNodesOnSelect&&!dc(u.zIndexMode)?fg:0;let p=t.length>0,g=!1;r.clear(),i.clear();for(const m of t){let w=c.get(m.id);if(u.checkEquality&&m===(w==null?void 0:w.internals.userNode))r.set(m.id,w);else{const S=wi(m,u.nodeOrigin),P=wr(m.extent)?m.extent:u.nodeExtent,N=xr(S,P,Qt(m));w={...u.defaults,...m,measured:{width:(v=m.measured)==null?void 0:v.width,height:(y=m.measured)==null?void 0:y.height},internals:{positionAbsolute:N,handleBounds:Jw(m,w),z:dg(m,d,u.zIndexMode),userNode:m}},r.set(m.id,w)}(w.measured===void 0||w.measured.width===void 0||w.measured.height===void 0)&&!w.hidden&&(p=!1),m.parentId&&hc(w,r,i,l,a),g||(g=m.selected??!1)}return{nodesInitialized:p,hasSelectedNodes:g}}function e1(t,r){if(!t.parentId)return;const i=r.get(t.parentId);i?i.set(t.id,t):r.set(t.parentId,new Map([[t.id,t]]))}function hc(t,r,i,l,u){const{elevateNodesOnSelect:a,nodeOrigin:c,nodeExtent:d,zIndexMode:p}=fc(cc,l),g=t.parentId,v=r.get(g);if(!v){console.warn(`Parent node ${g} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}e1(t,i),u&&!v.parentId&&v.internals.rootParentIndex===void 0&&p==="auto"&&(v.internals.rootParentIndex=++u.i,v.internals.z=v.internals.z+u.i*Gw),u&&v.internals.rootParentIndex!==void 0&&(u.i=v.internals.rootParentIndex);const y=a&&!dc(p)?fg:0,{x:m,y:w,z:S}=t1(t,v,c,d,y,p),{positionAbsolute:P}=t.internals,N=m!==P.x||w!==P.y;(N||S!==t.internals.z)&&r.set(t.id,{...t,internals:{...t.internals,positionAbsolute:N?{x:m,y:w}:P,z:S}})}function dg(t,r,i){const l=Ut(t.zIndex)?t.zIndex:0;return dc(i)?l:l+(t.selected?r:0)}function t1(t,r,i,l,u,a){const{x:c,y:d}=r.internals.positionAbsolute,p=Qt(t),g=wi(t,i),v=wr(t.extent)?xr(g,t.extent,p):g;let y=xr({x:c+v.x,y:d+v.y},l,p);t.extent==="parent"&&(y=qp(y,p,r));const m=dg(t,u,a),w=r.internals.z??0;return{x:y.x,y:y.y,z:w>=m?w+1:m}}function pc(t,r,i,l=[0,0]){var c;const u=[],a=new Map;for(const d of t){const p=r.get(d.parentId);if(!p)continue;const g=((c=a.get(d.parentId))==null?void 0:c.expandedRect)??pi(p),v=Zp(g,d.rect);a.set(d.parentId,{expandedRect:v,parent:p})}return a.size>0&&a.forEach(({expandedRect:d,parent:p},g)=>{var _;const v=p.internals.positionAbsolute,y=Qt(p),m=p.origin??l,w=d.x<v.x?Math.round(Math.abs(v.x-d.x)):0,S=d.y<v.y?Math.round(Math.abs(v.y-d.y)):0,P=Math.max(y.width,Math.round(d.width)),N=Math.max(y.height,Math.round(d.height)),k=(P-y.width)*m[0],j=(N-y.height)*m[1];(w>0||S>0||k||j)&&(u.push({id:g,type:"position",position:{x:p.position.x-w+k,y:p.position.y-S+j}}),(_=i.get(g))==null||_.forEach(I=>{t.some(F=>F.id===I.id)||u.push({id:I.id,type:"position",position:{x:I.position.x+w,y:I.position.y+S}})})),(y.width<d.width||y.height<d.height||w||S)&&u.push({id:g,type:"dimensions",setAttributes:!0,dimensions:{width:P+(w?m[0]*w-k:0),height:N+(S?m[1]*S-j:0)}})}),u}function n1(t,r,i,l,u,a,c){const d=l==null?void 0:l.querySelector(".xyflow__viewport");let p=!1;if(!d)return{changes:[],updatedInternals:p};const g=[],v=window.getComputedStyle(d),{m22:y}=new window.DOMMatrixReadOnly(v.transform),m=[];for(const w of t.values()){const S=r.get(w.id);if(!S)continue;if(S.hidden){r.set(S.id,{...S,internals:{...S.internals,handleBounds:void 0}}),p=!0;continue}const P=ac(w.nodeElement),N=S.measured.width!==P.width||S.measured.height!==P.height;if(!!(P.width&&P.height&&(N||!S.internals.handleBounds||w.force))){const j=w.nodeElement.getBoundingClientRect(),_=wr(S.extent)?S.extent:a;let{positionAbsolute:I}=S.internals;if(S.parentId&&S.extent==="parent"){const D=r.get(S.parentId);D&&(I=qp(I,P,D))}else _&&(I=xr(I,_,P));const F={...S,measured:P,internals:{...S.internals,positionAbsolute:I,handleBounds:{source:yh("source",w.nodeElement,j,y,S.id),target:yh("target",w.nodeElement,j,y,S.id)}}};r.set(S.id,F),S.parentId&&hc(F,r,i,{nodeOrigin:u,zIndexMode:c}),p=!0,N&&(g.push({id:S.id,type:"dimensions",dimensions:P}),S.expandParent&&S.parentId&&m.push({id:S.id,parentId:S.parentId,rect:pi(F,u)}))}}if(m.length>0){const w=pc(m,r,i,u);g.push(...w)}return{changes:g,updatedInternals:p}}async function r1({delta:t,panZoom:r,transform:i,translateExtent:l,width:u,height:a}){if(!r||!t.x&&!t.y)return!1;const c=await r.setViewportConstrained({x:i[0]+t.x,y:i[1]+t.y,zoom:i[2]},[[0,0],[u,a]],l);return!!c&&(c.x!==i[0]||c.y!==i[1]||c.k!==i[2])}function Eh(t,r,i,l,u,a){let c=u;const d=l.get(c)||new Map;l.set(c,d.set(i,r)),c=`${u}-${t}`;const p=l.get(c)||new Map;if(l.set(c,p.set(i,r)),a){c=`${u}-${t}-${a}`;const g=l.get(c)||new Map;l.set(c,g.set(i,r))}}function hg(t,r,i){t.clear(),r.clear();for(const l of i){const{source:u,target:a,sourceHandle:c=null,targetHandle:d=null}=l,p={edgeId:l.id,source:u,target:a,sourceHandle:c,targetHandle:d},g=`${u}-${c}--${a}-${d}`,v=`${a}-${d}--${u}-${c}`;Eh("source",p,v,t,u,c),Eh("target",p,g,t,a,d),r.set(l.id,l)}}function pg(t,r){if(!t.parentId)return!1;const i=r.get(t.parentId);return i?i.selected?!0:pg(i,r):!1}function Nh(t,r,i){var u;let l=t;do{if((u=l==null?void 0:l.matches)!=null&&u.call(l,r))return!0;if(l===i)return!1;l=l==null?void 0:l.parentElement}while(l);return!1}function o1(t,r,i,l){const u=new Map;for(const[a,c]of t)if((c.selected||c.id===l)&&(!c.parentId||!pg(c,t))&&(c.draggable||r&&typeof c.draggable>"u")){const d=t.get(a);d&&u.set(a,{id:a,position:d.position||{x:0,y:0},distance:{x:i.x-d.internals.positionAbsolute.x,y:i.y-d.internals.positionAbsolute.y},extent:d.extent,parentId:d.parentId,origin:d.origin,expandParent:d.expandParent,internals:{positionAbsolute:d.internals.positionAbsolute||{x:0,y:0}},measured:{width:d.measured.width??0,height:d.measured.height??0}})}return u}function Ma({nodeId:t,dragItems:r,nodeLookup:i,dragging:l=!0}){var c,d,p;const u=[];for(const[g,v]of r){const y=(c=i.get(g))==null?void 0:c.internals.userNode;y&&u.push({...y,position:v.position,dragging:l})}if(!t)return[u[0],u];const a=(d=i.get(t))==null?void 0:d.internals.userNode;return[a?{...a,position:((p=r.get(t))==null?void 0:p.position)||a.position,dragging:l}:u[0],u]}function i1({dragItems:t,snapGrid:r,x:i,y:l}){const u=t.values().next().value;if(!u)return null;const a={x:i-u.distance.x,y:l-u.distance.y},c=Si(a,r);return{x:c.x-a.x,y:c.y-a.y}}function s1({onNodeMouseDown:t,getStoreItems:r,onDragStart:i,onDrag:l,onDragStop:u}){let a={x:null,y:null},c=0,d=new Map,p=!1,g={x:0,y:0},v=null,y=!1,m=null,w=!1,S=!1,P=null;function N({noDragClassName:j,handleSelector:_,domNode:I,isSelectable:F,nodeId:D,nodeClickDistance:V=0}){m=Ct(I);function Q({x:J,y:Z}){const{nodeLookup:C,nodeExtent:b,snapGrid:H,snapToGrid:B,nodeOrigin:z,onNodeDrag:A,onSelectionDrag:O,onError:M,updateNodePositions:L}=r();a={x:J,y:Z};let te=!1;const re=d.size>1,ue=re&&b?Wa(_i(d)):null,ce=re&&B?i1({dragItems:d,snapGrid:H,x:J,y:Z}):null;for(const[ae,G]of d){if(!C.has(ae))continue;let se={x:J-G.distance.x,y:Z-G.distance.y};B&&(se=ce?{x:Math.round(se.x+ce.x),y:Math.round(se.y+ce.y)}:Si(se,H));let pe=null;if(re&&b&&!G.extent&&ue){const{positionAbsolute:we}=G.internals,ke=we.x-ue.x+b[0][0],Ne=we.x+G.measured.width-ue.x2+b[1][0],Me=we.y-ue.y+b[0][1],ze=we.y+G.measured.height-ue.y2+b[1][1];pe=[[ke,Me],[Ne,ze]]}const{position:xe,positionAbsolute:ye}=Gp({nodeId:ae,nextPosition:se,nodeLookup:C,nodeExtent:pe||b,nodeOrigin:z,onError:M});te=te||G.position.x!==xe.x||G.position.y!==xe.y,G.position=xe,G.internals.positionAbsolute=ye}if(S=S||te,!!te&&(L(d,!0),P&&(l||A||!D&&O))){const[ae,G]=Ma({nodeId:D,dragItems:d,nodeLookup:C});l==null||l(P,d,ae,G),A==null||A(P,ae,G),D||O==null||O(P,G)}}async function Y(){if(!v)return;const{transform:J,panBy:Z,autoPanSpeed:C,autoPanOnNodeDrag:b}=r();if(!b){p=!1,cancelAnimationFrame(c);return}const[H,B]=lc(g,v,C);(H!==0||B!==0)&&(a.x=(a.x??0)-H/J[2],a.y=(a.y??0)-B/J[2],await Z({x:H,y:B})&&Q(a)),c=requestAnimationFrame(Y)}function ee(J){var re;const{nodeLookup:Z,multiSelectionActive:C,nodesDraggable:b,transform:H,snapGrid:B,snapToGrid:z,selectNodesOnDrag:A,onNodeDragStart:O,onSelectionDragStart:M,unselectNodesAndEdges:L}=r();y=!0,(!A||!F)&&!C&&D&&((re=Z.get(D))!=null&&re.selected||L()),F&&A&&D&&(t==null||t(D));const te=si(J.sourceEvent,{transform:H,snapGrid:B,snapToGrid:z,containerBounds:v});if(a=te,d=o1(Z,b,te,D),d.size>0&&(i||O||!D&&M)){const[ue,ce]=Ma({nodeId:D,dragItems:d,nodeLookup:Z});i==null||i(J.sourceEvent,d,ue,ce),O==null||O(J.sourceEvent,ue,ce),D||M==null||M(J.sourceEvent,ce)}}const q=Tp().clickDistance(V).on("start",J=>{const{domNode:Z,nodeDragThreshold:C,transform:b,snapGrid:H,snapToGrid:B}=r();v=(Z==null?void 0:Z.getBoundingClientRect())||null,w=!1,S=!1,P=J.sourceEvent,C===0&&ee(J),a=si(J.sourceEvent,{transform:b,snapGrid:H,snapToGrid:B,containerBounds:v}),g=Wt(J.sourceEvent,v)}).on("drag",J=>{const{autoPanOnNodeDrag:Z,transform:C,snapGrid:b,snapToGrid:H,nodeDragThreshold:B,nodeLookup:z}=r(),A=si(J.sourceEvent,{transform:C,snapGrid:b,snapToGrid:H,containerBounds:v});if(P=J.sourceEvent,(J.sourceEvent.type==="touchmove"&&J.sourceEvent.touches.length>1||D&&!z.has(D))&&(w=!0),!w){if(!p&&Z&&y&&(p=!0,Y()),!y){const O=Wt(J.sourceEvent,v),M=O.x-g.x,L=O.y-g.y;Math.sqrt(M*M+L*L)>B&&ee(J)}(a.x!==A.xSnapped||a.y!==A.ySnapped)&&d&&y&&(g=Wt(J.sourceEvent,v),Q(A))}}).on("end",J=>{if(!y||w){w&&d.size>0&&r().updateNodePositions(d,!1);return}if(p=!1,y=!1,cancelAnimationFrame(c),d.size>0){const{nodeLookup:Z,updateNodePositions:C,onNodeDragStop:b,onSelectionDragStop:H}=r();if(S&&(C(d,!1),S=!1),u||b||!D&&H){const[B,z]=Ma({nodeId:D,dragItems:d,nodeLookup:Z,dragging:!1});u==null||u(J.sourceEvent,d,B,z),b==null||b(J.sourceEvent,B,z),D||H==null||H(J.sourceEvent,z)}}}).filter(J=>{const Z=J.target;return!J.button&&(!j||!Nh(Z,`.${j}`,I))&&(!_||Nh(Z,_,I))});m.call(q)}function k(){m==null||m.on(".drag",null)}return{update:N,destroy:k}}function l1(t,r,i){const l=[],u={x:t.x-i,y:t.y-i,width:i*2,height:i*2};for(const a of r.values())hl(u,pi(a))>0&&l.push(a);return l}const u1=250;function a1(t,r,i,l){var d,p;let u=[],a=1/0;const c=l1(t,i,r+u1);for(const g of c){const v=[...((d=g.internals.handleBounds)==null?void 0:d.source)??[],...((p=g.internals.handleBounds)==null?void 0:p.target)??[]];for(const y of v){if(l.nodeId===y.nodeId&&l.type===y.type&&l.id===y.id)continue;const{x:m,y:w}=_r(g,y,y.position,!0),S=Math.sqrt(Math.pow(m-t.x,2)+Math.pow(w-t.y,2));S>r||(S<a?(u=[{...y,x:m,y:w}],a=S):S===a&&u.push({...y,x:m,y:w}))}}if(!u.length)return null;if(u.length>1){const g=l.type==="source"?"target":"source";return u.find(v=>v.type===g)??u[0]}return u[0]}function gg(t,r,i,l,u,a=!1){var g,v,y;const c=l.get(t);if(!c)return null;const d=u==="strict"?(g=c.internals.handleBounds)==null?void 0:g[r]:[...((v=c.internals.handleBounds)==null?void 0:v.source)??[],...((y=c.internals.handleBounds)==null?void 0:y.target)??[]],p=(i?d==null?void 0:d.find(m=>m.id===i):d==null?void 0:d[0])??null;return p&&a?{...p,..._r(c,p,p.position,!0)}:p}function mg(t,r){return t||(r!=null&&r.classList.contains("target")?"target":r!=null&&r.classList.contains("source")?"source":null)}function c1(t,r){let i=null;return r?i=!0:t&&!r&&(i=!1),i}const yg=()=>!0;function f1(t,{connectionMode:r,connectionRadius:i,handleId:l,nodeId:u,edgeUpdaterType:a,isTarget:c,domNode:d,nodeLookup:p,lib:g,autoPanOnConnect:v,flowId:y,panBy:m,cancelConnection:w,onConnectStart:S,onConnect:P,onConnectEnd:N,isValidConnection:k=yg,onReconnectEnd:j,updateConnection:_,getTransform:I,getFromHandle:F,autoPanSpeed:D,dragThreshold:V=1,handleDomNode:Q}){const Y=og(t.target);let ee=0,q;const{x:J,y:Z}=Wt(t),C=mg(a,Q),b=d==null?void 0:d.getBoundingClientRect();let H=!1;if(!b||!C)return;const B=gg(u,C,l,p,r);if(!B)return;let z=Wt(t,b),A=!1,O=null,M=!1,L=null;function te(){if(!v||!b)return;const[xe,ye]=lc(z,b,D);m({x:xe,y:ye}),ee=requestAnimationFrame(te)}const re={...B,nodeId:u,type:C,position:B.position},ue=p.get(u);let ae={inProgress:!0,isValid:null,from:_r(ue,re,ve.Left,!0),fromHandle:re,fromPosition:re.position,fromNode:ue,to:z,toHandle:null,toPosition:hh[re.position],toNode:null,pointer:z};function G(){H=!0,_(ae),S==null||S(t,{nodeId:u,handleId:l,handleType:C})}V===0&&G();function se(xe){if(!H){const{x:ze,y:st}=Wt(xe),at=ze-J,et=st-Z;if(!(at*at+et*et>V*V))return;G()}if(!F()||!re){pe(xe);return}const ye=I();z=Wt(xe,b),q=a1(ki(z,ye,!1,[1,1]),i,p,re),A||(te(),A=!0);const we=vg(xe,{handle:q,connectionMode:r,fromNodeId:u,fromHandleId:l,fromType:c?"target":"source",isValidConnection:k,doc:Y,lib:g,flowId:y,nodeLookup:p});L=we.handleDomNode,O=we.connection,M=c1(!!q,we.isValid);const ke=p.get(u),Ne=ke?_r(ke,re,ve.Left,!0):ae.from,Me={...ae,from:Ne,isValid:M,to:we.toHandle&&M?so({x:we.toHandle.x,y:we.toHandle.y},ye):z,toHandle:we.toHandle,toPosition:M&&we.toHandle?we.toHandle.position:hh[re.position],toNode:we.toHandle?p.get(we.toHandle.nodeId):null,pointer:z};_(Me),ae=Me}function pe(xe){if(!("touches"in xe&&xe.touches.length>0)){if(H){(q||L)&&O&&M&&(P==null||P(O));const{inProgress:ye,...we}=ae,ke={...we,toPosition:ae.toHandle?ae.toPosition:null};N==null||N(xe,ke),a&&(j==null||j(xe,ke))}w(),cancelAnimationFrame(ee),A=!1,M=!1,O=null,L=null,Y.removeEventListener("mousemove",se),Y.removeEventListener("mouseup",pe),Y.removeEventListener("touchmove",se),Y.removeEventListener("touchend",pe)}}Y.addEventListener("mousemove",se),Y.addEventListener("mouseup",pe),Y.addEventListener("touchmove",se),Y.addEventListener("touchend",pe)}function vg(t,{handle:r,connectionMode:i,fromNodeId:l,fromHandleId:u,fromType:a,doc:c,lib:d,flowId:p,isValidConnection:g=yg,nodeLookup:v}){const y=a==="target",m=r?c.querySelector(`.${d}-flow__handle[data-id="${p}-${r==null?void 0:r.nodeId}-${r==null?void 0:r.id}-${r==null?void 0:r.type}"]`):null,{x:w,y:S}=Wt(t),P=c.elementFromPoint(w,S),N=P!=null&&P.classList.contains(`${d}-flow__handle`)?P:m,k={handleDomNode:N,isValid:!1,connection:null,toHandle:null};if(N){const j=mg(void 0,N),_=N.getAttribute("data-nodeid"),I=N.getAttribute("data-handleid"),F=N.classList.contains("connectable"),D=N.classList.contains("connectableend");if(!_||!j)return k;const V={source:y?_:l,sourceHandle:y?I:u,target:y?l:_,targetHandle:y?u:I};k.connection=V;const Y=F&&D&&(i===oo.Strict?y&&j==="source"||!y&&j==="target":_!==l||I!==u);k.isValid=Y&&g(V),k.toHandle=gg(_,j,I,v,i,!0)}return k}const Ka={onPointerDown:f1,isValid:vg};function d1({domNode:t,panZoom:r,getTransform:i,getViewScale:l}){const u=Ct(t);function a({translateExtent:d,width:p,height:g,zoomStep:v=1,pannable:y=!0,zoomable:m=!0,inversePan:w=!1}){const S=_=>{if(_.sourceEvent.type!=="wheel"||!r)return;const I=i(),F=_.sourceEvent.ctrlKey&&gi()?10:1,D=-_.sourceEvent.deltaY*(_.sourceEvent.deltaMode===1?.05:_.sourceEvent.deltaMode?1:.002)*v,V=I[2]*Math.pow(2,D*F);r.scaleTo(V)};let P=[0,0];const N=_=>{(_.sourceEvent.type==="mousedown"||_.sourceEvent.type==="touchstart")&&(P=[_.sourceEvent.clientX??_.sourceEvent.touches[0].clientX,_.sourceEvent.clientY??_.sourceEvent.touches[0].clientY])},k=_=>{const I=i();if(_.sourceEvent.type!=="mousemove"&&_.sourceEvent.type!=="touchmove"||!r)return;const F=[_.sourceEvent.clientX??_.sourceEvent.touches[0].clientX,_.sourceEvent.clientY??_.sourceEvent.touches[0].clientY],D=[F[0]-P[0],F[1]-P[1]];P=F;const V=l()*Math.max(I[2],Math.log(I[2]))*(w?-1:1),Q={x:I[0]-D[0]*V,y:I[1]-D[1]*V},Y=[[0,0],[p,g]];r.setViewportConstrained({x:Q.x,y:Q.y,zoom:I[2]},Y,d)},j=Wp().on("start",N).on("zoom",y?k:null).on("zoom.wheel",m?S:null);u.call(j,{})}function c(){u.on("zoom",null)}return{update:a,destroy:c,pointer:bt}}const Sl=t=>({x:t.x,y:t.y,zoom:t.k}),Pa=({x:t,y:r,zoom:i})=>xl.translate(t,r).scale(i),Bn=(t,r)=>t.target.closest(`.${r}`),xg=(t,r)=>r===2&&Array.isArray(t)&&t.includes(2),h1=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,Ia=(t,r=0,i=h1,l=()=>{})=>{const u=typeof r=="number"&&r>0;return u||l(),u?t.transition().duration(r).ease(i).on("end",l):t},wg=t=>{const r=t.ctrlKey&&gi()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*r};function p1({zoomPanValues:t,noWheelClassName:r,d3Selection:i,d3Zoom:l,panOnScrollMode:u,panOnScrollSpeed:a,zoomOnPinch:c,onPanZoomStart:d,onPanZoom:p,onPanZoomEnd:g}){return v=>{if(Bn(v,r))return v.ctrlKey&&v.preventDefault(),!1;v.preventDefault(),v.stopImmediatePropagation();const y=i.property("__zoom").k||1;if(v.ctrlKey&&c){const N=bt(v),k=wg(v),j=y*Math.pow(2,k);l.scaleTo(i,j,N,v);return}const m=v.deltaMode===1?20:1;let w=u===gr.Vertical?0:v.deltaX*m,S=u===gr.Horizontal?0:v.deltaY*m;!gi()&&v.shiftKey&&u!==gr.Vertical&&(w=v.deltaY*m,S=0),l.translateBy(i,-(w/y)*a,-(S/y)*a,{internal:!0});const P=Sl(i.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?p==null||p(v,P):(t.isPanScrolling=!0,d==null||d(v,P)),t.panScrollTimeout=setTimeout(()=>{g==null||g(v,P),t.isPanScrolling=!1},150)}}function g1({noWheelClassName:t,preventScrolling:r,d3ZoomHandler:i}){return function(l,u){const a=l.type==="wheel",c=!r&&a&&!l.ctrlKey,d=Bn(l,t);if(l.ctrlKey&&a&&d&&l.preventDefault(),c||d)return null;l.preventDefault(),i.call(this,l,u)}}function m1({zoomPanValues:t,onDraggingChange:r,onPanZoomStart:i}){return l=>{var a,c,d;if((a=l.sourceEvent)!=null&&a.internal)return;const u=Sl(l.transform);t.mouseButton=((c=l.sourceEvent)==null?void 0:c.button)||0,t.isZoomingOrPanning=!0,t.prevViewport=u,((d=l.sourceEvent)==null?void 0:d.type)==="mousedown"&&r(!0),i&&(i==null||i(l.sourceEvent,u))}}function y1({zoomPanValues:t,panOnDrag:r,onPaneContextMenu:i,onTransformChange:l,onPanZoom:u}){return a=>{var c,d;t.usedRightMouseButton=!!(i&&xg(r,t.mouseButton??0)),(c=a.sourceEvent)!=null&&c.sync||l([a.transform.x,a.transform.y,a.transform.k]),u&&!((d=a.sourceEvent)!=null&&d.internal)&&(u==null||u(a.sourceEvent,Sl(a.transform)))}}function v1({zoomPanValues:t,panOnDrag:r,panOnScroll:i,onDraggingChange:l,onPanZoomEnd:u,onPaneContextMenu:a}){return c=>{var d;if(!((d=c.sourceEvent)!=null&&d.internal)&&(t.isZoomingOrPanning=!1,a&&xg(r,t.mouseButton??0)&&!t.usedRightMouseButton&&c.sourceEvent&&a(c.sourceEvent),t.usedRightMouseButton=!1,l(!1),u)){const p=Sl(c.transform);t.prevViewport=p,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{u==null||u(c.sourceEvent,p)},i?150:0)}}}function x1({panActivationKeyPressed:t,zoomActivationKeyPressed:r,zoomOnScroll:i,zoomOnPinch:l,panOnDrag:u,panOnScroll:a,zoomOnDoubleClick:c,userSelectionActive:d,noWheelClassName:p,noPanClassName:g,lib:v,connectionInProgress:y}){return m=>{var k;const w=r||i,S=l&&m.ctrlKey,P=m.type==="wheel";if(m.button===1&&m.type==="mousedown"&&(Bn(m,`${v}-flow__node`)||Bn(m,`${v}-flow__edge`)||Bn(m,`${v}-flow__selection`)||Bn(m,`${v}-flow__nodesselection`)))return!0;if(!u&&!w&&!a&&!c&&!l||d||y&&!P||Bn(m,p)&&P||Bn(m,g)&&(!P||a&&P&&!r)||!l&&m.ctrlKey&&P)return!1;if(!l&&m.type==="touchstart"&&((k=m.touches)==null?void 0:k.length)>1)return m.preventDefault(),!1;if(!w&&!a&&!S&&P||!u&&(m.type==="mousedown"||m.type==="touchstart")||Array.isArray(u)&&!u.includes(m.button)&&m.type==="mousedown")return!1;const N=Array.isArray(u)&&u.includes(m.button)||!m.button||m.button<=1;return(!m.ctrlKey||P||t)&&N}}function w1({domNode:t,minZoom:r,maxZoom:i,translateExtent:l,viewport:u,onPanZoom:a,onPanZoomStart:c,onPanZoomEnd:d,onDraggingChange:p}){const g={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},v=t.getBoundingClientRect();let y=[[0,0],[v.width,v.height]];const m=typeof ResizeObserver<"u"?new ResizeObserver(Z=>{const C=Z[0];C&&(y=[[0,0],[C.contentRect.width,C.contentRect.height]])}):null;m==null||m.observe(t);const w=Wp().extent(()=>y).scaleExtent([r,i]).translateExtent(l),S=Ct(t).call(w);I({x:u.x,y:u.y,zoom:io(u.zoom,r,i)},[[0,0],[v.width,v.height]],l);const P=S.on("wheel.zoom"),N=S.on("dblclick.zoom");w.wheelDelta(wg);async function k(Z,C){return S?new Promise(b=>{w==null||w.interpolate((C==null?void 0:C.interpolate)==="linear"?ii:el).transform(Ia(S,C==null?void 0:C.duration,C==null?void 0:C.ease,()=>b(!0)),Z)}):!1}function j({noWheelClassName:Z,noPanClassName:C,onPaneContextMenu:b,userSelectionActive:H,panOnScroll:B,panOnDrag:z,panOnScrollMode:A,panOnScrollSpeed:O,preventScrolling:M,zoomOnPinch:L,zoomOnScroll:te,zoomOnDoubleClick:re,panActivationKeyPressed:ue=!1,zoomActivationKeyPressed:ce,lib:ae,onTransformChange:G,connectionInProgress:se,paneClickDistance:pe,selectionOnDrag:xe}){H&&!g.isZoomingOrPanning&&_();const ye=B&&!ce&&!H;w.clickDistance(xe?1/0:!Ut(pe)||pe<0?0:pe);const we=ye?p1({zoomPanValues:g,noWheelClassName:Z,d3Selection:S,d3Zoom:w,panOnScrollMode:A,panOnScrollSpeed:O,zoomOnPinch:L,onPanZoomStart:c,onPanZoom:a,onPanZoomEnd:d}):g1({noWheelClassName:Z,preventScrolling:M,d3ZoomHandler:P});S.on("wheel.zoom",we,{passive:!1});const ke=m1({zoomPanValues:g,onDraggingChange:p,onPanZoomStart:c});w.on("start",ke);const Ne=y1({zoomPanValues:g,panOnDrag:z,onPaneContextMenu:!!b,onPanZoom:a,onTransformChange:G});w.on("zoom",Ne);const Me=v1({zoomPanValues:g,panOnDrag:z,panOnScroll:B,onPaneContextMenu:b,onPanZoomEnd:d,onDraggingChange:p});w.on("end",Me);const ze=x1({panActivationKeyPressed:ue,zoomActivationKeyPressed:ce,panOnDrag:z,zoomOnScroll:te,panOnScroll:B,zoomOnDoubleClick:re,zoomOnPinch:L,userSelectionActive:H,noPanClassName:C,noWheelClassName:Z,lib:ae,connectionInProgress:se});w.filter(ze),re?S.on("dblclick.zoom",N):S.on("dblclick.zoom",null)}function _(){w.on("zoom",null)}async function I(Z,C,b){const H=Pa(Z),B=w==null?void 0:w.constrain()(H,C,b);return B&&await k(B),B}async function F(Z,C){const b=Pa(Z);return await k(b,C),b}function D(Z){if(S){const C=Pa(Z),b=S.property("__zoom");(b.k!==Z.zoom||b.x!==Z.x||b.y!==Z.y)&&(w==null||w.transform(S,C,null,{sync:!0}))}}function V(){const Z=S?Up(S.node()):{x:0,y:0,k:1};return{x:Z.x,y:Z.y,zoom:Z.k}}async function Q(Z,C){return S?new Promise(b=>{w==null||w.interpolate((C==null?void 0:C.interpolate)==="linear"?ii:el).scaleTo(Ia(S,C==null?void 0:C.duration,C==null?void 0:C.ease,()=>b(!0)),Z)}):!1}async function Y(Z,C){return S?new Promise(b=>{w==null||w.interpolate((C==null?void 0:C.interpolate)==="linear"?ii:el).scaleBy(Ia(S,C==null?void 0:C.duration,C==null?void 0:C.ease,()=>b(!0)),Z)}):!1}function ee(Z){w==null||w.scaleExtent(Z)}function q(Z){w==null||w.translateExtent(Z)}function J(Z){const C=!Ut(Z)||Z<0?0:Z;w==null||w.clickDistance(C)}return{update:j,destroy:_,setViewport:F,setViewportConstrained:I,getViewport:V,scaleTo:Q,scaleBy:Y,setScaleExtent:ee,setTranslateExtent:q,syncViewport:D,setClickDistance:J}}var lo;(function(t){t.Line="line",t.Handle="handle"})(lo||(lo={}));function _1({width:t,prevWidth:r,height:i,prevHeight:l,affectsX:u,affectsY:a}){const c=t-r,d=i-l,p=[c>0?1:c<0?-1:0,d>0?1:d<0?-1:0];return c&&u&&(p[0]=p[0]*-1),d&&a&&(p[1]=p[1]*-1),p}function Ch(t){const r=t.includes("right")||t.includes("left"),i=t.includes("bottom")||t.includes("top"),l=t.includes("left"),u=t.includes("top");return{isHorizontal:r,isVertical:i,affectsX:l,affectsY:u}}function Vn(t,r){return Math.max(0,r-t)}function bn(t,r){return Math.max(0,t-r)}function Gs(t,r,i){return Math.max(0,r-t,t-i)}function Mh(t,r){return t?!r:r}function S1(t,r,i,l,u,a,c,d){let{affectsX:p,affectsY:g}=r;const{isHorizontal:v,isVertical:y}=r,m=v&&y,{xSnapped:w,ySnapped:S}=i,{minWidth:P,maxWidth:N,minHeight:k,maxHeight:j}=l,{x:_,y:I,width:F,height:D,aspectRatio:V}=t;let Q=Math.floor(v?w-t.pointerX:0),Y=Math.floor(y?S-t.pointerY:0);const ee=F+(p?-Q:Q),q=D+(g?-Y:Y),J=-a[0]*F,Z=-a[1]*D;let C=Gs(ee,P,N),b=Gs(q,k,j);if(c){let z=0,A=0;p&&Q<0?z=Vn(_+Q+J,c[0][0]):!p&&Q>0&&(z=bn(_+ee+J,c[1][0])),g&&Y<0?A=Vn(I+Y+Z,c[0][1]):!g&&Y>0&&(A=bn(I+q+Z,c[1][1])),C=Math.max(C,z),b=Math.max(b,A)}if(d){let z=0,A=0;p&&Q>0?z=bn(_+Q,d[0][0]):!p&&Q<0&&(z=Vn(_+ee,d[1][0])),g&&Y>0?A=bn(I+Y,d[0][1]):!g&&Y<0&&(A=Vn(I+q,d[1][1])),C=Math.max(C,z),b=Math.max(b,A)}if(u){if(v){const z=Gs(ee/V,k,j)*V;if(C=Math.max(C,z),c){let A=0;!p&&!g||p&&!g&&m?A=bn(I+Z+ee/V,c[1][1])*V:A=Vn(I+Z+(p?Q:-Q)/V,c[0][1])*V,C=Math.max(C,A)}if(d){let A=0;!p&&!g||p&&!g&&m?A=Vn(I+ee/V,d[1][1])*V:A=bn(I+(p?Q:-Q)/V,d[0][1])*V,C=Math.max(C,A)}}if(y){const z=Gs(q*V,P,N)/V;if(b=Math.max(b,z),c){let A=0;!p&&!g||g&&!p&&m?A=bn(_+q*V+J,c[1][0])/V:A=Vn(_+(g?Y:-Y)*V+J,c[0][0])/V,b=Math.max(b,A)}if(d){let A=0;!p&&!g||g&&!p&&m?A=Vn(_+q*V,d[1][0])/V:A=bn(_+(g?Y:-Y)*V,d[0][0])/V,b=Math.max(b,A)}}}Y=Y+(Y<0?b:-b),Q=Q+(Q<0?C:-C),u&&(m?ee>q*V?Y=(Mh(p,g)?-Q:Q)/V:Q=(Mh(p,g)?-Y:Y)*V:v?(Y=Q/V,g=p):(Q=Y*V,p=g));const H=p?_+Q:_,B=g?I+Y:I;return{width:F+(p?-Q:Q),height:D+(g?-Y:Y),x:a[0]*Q*(p?-1:1)+H,y:a[1]*Y*(g?-1:1)+B}}const _g={width:0,height:0,x:0,y:0},k1={..._g,pointerX:0,pointerY:0,aspectRatio:1};function E1(t,r,i){const l=r.position.x+t.position.x,u=r.position.y+t.position.y,a=t.measured.width??0,c=t.measured.height??0,d=i[0]*a,p=i[1]*c;return[[l-d,u-p],[l+a-d,u+c-p]]}function N1({domNode:t,nodeId:r,getStoreItems:i,onChange:l,onEnd:u}){const a=Ct(t);let c={controlDirection:Ch("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function d({controlPosition:g,boundaries:v,keepAspectRatio:y,resizeDirection:m,onResizeStart:w,onResize:S,onResizeEnd:P,shouldResize:N}){let k={..._g},j={...k1};c={boundaries:v,resizeDirection:m,keepAspectRatio:y,controlDirection:Ch(g)};let _,I=null,F=[],D,V,Q,Y=!1;const ee=Tp().on("start",q=>{const{nodeLookup:J,transform:Z,snapGrid:C,snapToGrid:b,nodeOrigin:H,paneDomNode:B}=i();if(_=J.get(r),!_)return;I=(B==null?void 0:B.getBoundingClientRect())??null;const{xSnapped:z,ySnapped:A}=si(q.sourceEvent,{transform:Z,snapGrid:C,snapToGrid:b,containerBounds:I});k={width:_.measured.width??0,height:_.measured.height??0,x:_.position.x??0,y:_.position.y??0},j={...k,pointerX:z,pointerY:A,aspectRatio:k.width/k.height},D=void 0,V=wr(_.extent)?_.extent:void 0,_.parentId&&(_.extent==="parent"||_.expandParent)&&(D=J.get(_.parentId)),D&&_.extent==="parent"&&(V=[[0,0],[D.measured.width,D.measured.height]]),F=[],Q=void 0;for(const[O,M]of J)if(M.parentId===r&&(F.push({id:O,position:{...M.position},extent:M.extent}),M.extent==="parent"||M.expandParent)){const L=E1(M,_,M.origin??H);Q?Q=[[Math.min(L[0][0],Q[0][0]),Math.min(L[0][1],Q[0][1])],[Math.max(L[1][0],Q[1][0]),Math.max(L[1][1],Q[1][1])]]:Q=L}w==null||w(q,{...k})}).on("drag",q=>{const{transform:J,snapGrid:Z,snapToGrid:C,nodeOrigin:b}=i(),H=si(q.sourceEvent,{transform:J,snapGrid:Z,snapToGrid:C,containerBounds:I}),B=[];if(!_)return;const{x:z,y:A,width:O,height:M}=k,L={},te=_.origin??b,{width:re,height:ue,x:ce,y:ae}=S1(j,c.controlDirection,H,c.boundaries,c.keepAspectRatio,te,V,Q),G=re!==O,se=ue!==M,pe=ce!==z&&G,xe=ae!==A&&se;if(!pe&&!xe&&!G&&!se)return;if((pe||xe||te[0]===1||te[1]===1)&&(L.x=pe?ce:k.x,L.y=xe?ae:k.y,k.x=L.x,k.y=L.y,F.length>0)){const Ne=ce-z,Me=ae-A;for(const ze of F)ze.position={x:ze.position.x-Ne+te[0]*(re-O),y:ze.position.y-Me+te[1]*(ue-M)},B.push(ze)}if((G||se)&&(L.width=G&&(!c.resizeDirection||c.resizeDirection==="horizontal")?re:k.width,L.height=se&&(!c.resizeDirection||c.resizeDirection==="vertical")?ue:k.height,k.width=L.width,k.height=L.height),D&&_.expandParent){const Ne=te[0]*(L.width??0);L.x&&L.x<Ne&&(k.x=Ne,j.x=j.x-(L.x-Ne));const Me=te[1]*(L.height??0);L.y&&L.y<Me&&(k.y=Me,j.y=j.y-(L.y-Me))}const ye=_1({width:k.width,prevWidth:O,height:k.height,prevHeight:M,affectsX:c.controlDirection.affectsX,affectsY:c.controlDirection.affectsY}),we={...k,direction:ye};(N==null?void 0:N(q,we))!==!1&&(Y=!0,S==null||S(q,we),l(L,B))}).on("end",q=>{Y&&(P==null||P(q,{...k}),u==null||u({...k}),Y=!1)});a.call(ee)}function p(){a.on(".drag",null)}return{update:d,destroy:p}}var Ta={exports:{}},za={},ja={exports:{}},Aa={};/**
- * @license React
- * use-sync-external-store-shim.production.js
- *
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Ph;function C1(){if(Ph)return Aa;Ph=1;var t=yi();function r(y,m){return y===m&&(y!==0||1/y===1/m)||y!==y&&m!==m}var i=typeof Object.is=="function"?Object.is:r,l=t.useState,u=t.useEffect,a=t.useLayoutEffect,c=t.useDebugValue;function d(y,m){var w=m(),S=l({inst:{value:w,getSnapshot:m}}),P=S[0].inst,N=S[1];return a(function(){P.value=w,P.getSnapshot=m,p(P)&&N({inst:P})},[y,w,m]),u(function(){return p(P)&&N({inst:P}),y(function(){p(P)&&N({inst:P})})},[y]),c(w),w}function p(y){var m=y.getSnapshot;y=y.value;try{var w=m();return!i(y,w)}catch{return!0}}function g(y,m){return m()}var v=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?g:d;return Aa.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:v,Aa}var Ih;function M1(){return Ih||(Ih=1,ja.exports=C1()),ja.exports}/**
- * @license React
- * use-sync-external-store-shim/with-selector.production.js
- *
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var Th;function P1(){if(Th)return za;Th=1;var t=yi(),r=M1();function i(g,v){return g===v&&(g!==0||1/g===1/v)||g!==g&&v!==v}var l=typeof Object.is=="function"?Object.is:i,u=r.useSyncExternalStore,a=t.useRef,c=t.useEffect,d=t.useMemo,p=t.useDebugValue;return za.useSyncExternalStoreWithSelector=function(g,v,y,m,w){var S=a(null);if(S.current===null){var P={hasValue:!1,value:null};S.current=P}else P=S.current;S=d(function(){function k(D){if(!j){if(j=!0,_=D,D=m(D),w!==void 0&&P.hasValue){var V=P.value;if(w(V,D))return I=V}return I=D}if(V=I,l(_,D))return V;var Q=m(D);return w!==void 0&&w(V,Q)?(_=D,V):(_=D,I=Q)}var j=!1,_,I,F=y===void 0?null:y;return[function(){return k(v())},F===null?void 0:function(){return k(F())}]},[v,y,m,w]);var N=u(g,S[0],S[1]);return c(function(){P.hasValue=!0,P.value=N},[N]),p(N),N},za}var zh;function I1(){return zh||(zh=1,Ta.exports=P1()),Ta.exports}var T1=I1();const z1=up(T1),j1={},jh=t=>{let r;const i=new Set,l=(v,y)=>{const m=typeof v=="function"?v(r):v;if(!Object.is(m,r)){const w=r;r=y??(typeof m!="object"||m===null)?m:Object.assign({},r,m),i.forEach(S=>S(r,w))}},u=()=>r,p={setState:l,getState:u,getInitialState:()=>g,subscribe:v=>(i.add(v),()=>i.delete(v)),destroy:()=>{(j1?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),i.clear()}},g=r=t(l,u,p);return p},A1=t=>t?jh(t):jh,{useDebugValue:L1}=ap,{useSyncExternalStoreWithSelector:R1}=z1,D1=t=>t;function Sg(t,r=D1,i){const l=R1(t.subscribe,t.getState,t.getServerState||t.getInitialState,r,i);return L1(l),l}const Ah=(t,r)=>{const i=A1(t),l=(u,a=r)=>Sg(i,u,a);return Object.assign(l,i),l},$1=(t,r)=>t?Ah(t,r):Ah;function Ve(t,r){if(Object.is(t,r))return!0;if(typeof t!="object"||t===null||typeof r!="object"||r===null)return!1;if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(const[l,u]of t)if(!Object.is(u,r.get(l)))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(const l of t)if(!r.has(l))return!1;return!0}const i=Object.keys(t);if(i.length!==Object.keys(r).length)return!1;for(const l of i)if(!Object.prototype.hasOwnProperty.call(r,l)||!Object.is(t[l],r[l]))return!1;return!0}cp();const kl=U.createContext(null),O1=kl.Provider,kg=Yt.error001("react");function Ie(t,r){const i=U.useContext(kl);if(i===null)throw new Error(kg);return Sg(i,t,r)}function De(){const t=U.useContext(kl);if(t===null)throw new Error(kg);return U.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe}),[t])}const Lh={display:"none"},F1={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Eg="react-flow__node-desc",Ng="react-flow__edge-desc",H1="react-flow__aria-live",V1=t=>t.ariaLiveMessage,b1=t=>t.ariaLabelConfig;function B1({rfId:t}){const r=Ie(V1);return E.jsx("div",{id:`${H1}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:F1,children:r})}function U1({rfId:t,disableKeyboardA11y:r}){const i=Ie(b1);return E.jsxs(E.Fragment,{children:[E.jsx("div",{id:`${Eg}-${t}`,style:Lh,children:r?i["node.a11yDescription.default"]:i["node.a11yDescription.keyboardDisabled"]}),E.jsx("div",{id:`${Ng}-${t}`,style:Lh,children:i["edge.a11yDescription.default"]}),!r&&E.jsx(B1,{rfId:t})]})}const Ei=U.forwardRef(({position:t="top-left",children:r,className:i,style:l,...u},a)=>{const c=`${t}`.split("-");return E.jsx("div",{className:We(["react-flow__panel",i,...c]),style:l,ref:a,...u,children:r})});Ei.displayName="Panel";const Rh="https://reactflow.dev?utm_source=attribution";function W1({proOptions:t,position:r="bottom-right"}){return U.useEffect(()=>{},[]),t!=null&&t.hideAttribution?null:E.jsx(Ei,{position:r,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Rh}`,children:E.jsx("a",{href:Rh,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Y1=t=>{const r=[],i=[];for(const[,l]of t.nodeLookup)l.selected&&r.push(l.internals.userNode);for(const[,l]of t.edgeLookup)l.selected&&i.push(l);return{selectedNodes:r,selectedEdges:i}},qs=t=>t.id;function X1(t,r){return Ve(t.selectedNodes.map(qs),r.selectedNodes.map(qs))&&Ve(t.selectedEdges.map(qs),r.selectedEdges.map(qs))}function Q1({onSelectionChange:t}){const r=De(),{selectedNodes:i,selectedEdges:l}=Ie(Y1,X1);return U.useEffect(()=>{const u={nodes:i,edges:l};t==null||t(u),r.getState().onSelectionChangeHandlers.forEach(a=>a(u))},[i,l,t]),null}const K1=t=>!!t.onSelectionChangeHandlers;function G1({onSelectionChange:t}){const r=Ie(K1);return t||r?E.jsx(Q1,{onSelectionChange:t}):null}const Cg=[0,0],q1={x:0,y:0,zoom:1},Z1=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],Dh=[...Z1,"rfId"],J1=t=>({setNodes:t.setNodes,setEdges:t.setEdges,setMinZoom:t.setMinZoom,setMaxZoom:t.setMaxZoom,setTranslateExtent:t.setTranslateExtent,setNodeExtent:t.setNodeExtent,reset:t.reset,setDefaultNodesAndEdges:t.setDefaultNodesAndEdges}),$h={translateExtent:di,nodeOrigin:Cg,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function e_(t){const{setNodes:r,setEdges:i,setMinZoom:l,setMaxZoom:u,setTranslateExtent:a,setNodeExtent:c,reset:d,setDefaultNodesAndEdges:p}=Ie(J1,Ve),g=De();U.useEffect(()=>(p(t.defaultNodes,t.defaultEdges),()=>{v.current=$h,d()}),[]);const v=U.useRef($h);return U.useEffect(()=>{for(const y of Dh){const m=t[y],w=v.current[y];m!==w&&(typeof t[y]>"u"||(y==="nodes"?r(m):y==="edges"?i(m):y==="minZoom"?l(m):y==="maxZoom"?u(m):y==="translateExtent"?a(m):y==="nodeExtent"?c(m):y==="ariaLabelConfig"?g.setState({ariaLabelConfig:Ow(m)}):y==="fitView"?g.setState({fitViewQueued:m}):y==="fitViewOptions"?g.setState({fitViewOptions:m}):g.setState({[y]:m})))}v.current=t},Dh.map(y=>t[y])),null}function Oh(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function t_(t){var l;const[r,i]=U.useState(t==="system"?null:t);return U.useEffect(()=>{if(t!=="system"){i(t);return}const u=Oh(),a=()=>i(u!=null&&u.matches?"dark":"light");return a(),u==null||u.addEventListener("change",a),()=>{u==null||u.removeEventListener("change",a)}},[t]),r!==null?r:(l=Oh())!=null&&l.matches?"dark":"light"}const Fh=typeof document<"u"?document:null;function mi(t=null,r={target:Fh,actInsideInputWithModifier:!0}){const[i,l]=U.useState(!1),u=U.useRef(!1),a=U.useRef(new Set([])),[c,d]=U.useMemo(()=>{if(t!==null){const g=(Array.isArray(t)?t:[t]).filter(y=>typeof y=="string").map(y=>y.replace(/\+/g,`
-`).replace(`
-
-`,`
-+`).split(`
-`)),v=g.reduce((y,m)=>y.concat(...m),[]);return[g,v]}return[[],[]]},[t]);return U.useEffect(()=>{const p=(r==null?void 0:r.target)??Fh,g=(r==null?void 0:r.actInsideInputWithModifier)??!0;if(t!==null){const v=w=>{var N,k;if(u.current=w.ctrlKey||w.metaKey||w.shiftKey||w.altKey,(!u.current||u.current&&!g)&&ig(w))return!1;const P=Vh(w.code,d);if(a.current.add(w[P]),Hh(c,a.current,!1)){const j=((k=(N=w.composedPath)==null?void 0:N.call(w))==null?void 0:k[0])||w.target,_=(j==null?void 0:j.nodeName)==="BUTTON"||(j==null?void 0:j.nodeName)==="A";r.preventDefault!==!1&&(u.current||!_)&&w.preventDefault(),l(!0)}},y=w=>{const S=Vh(w.code,d);Hh(c,a.current,!0)?(l(!1),a.current.clear()):a.current.delete(w[S]),w.key==="Meta"&&a.current.clear(),u.current=!1},m=()=>{a.current.clear(),l(!1)};return p==null||p.addEventListener("keydown",v),p==null||p.addEventListener("keyup",y),window.addEventListener("blur",m),window.addEventListener("contextmenu",m),()=>{p==null||p.removeEventListener("keydown",v),p==null||p.removeEventListener("keyup",y),window.removeEventListener("blur",m),window.removeEventListener("contextmenu",m)}}},[t,l]),i}function Hh(t,r,i){return t.filter(l=>i||l.length===r.size).some(l=>l.every(u=>r.has(u)))}function Vh(t,r){return r.includes(t)?"code":"key"}const n_=()=>{const t=De();return U.useMemo(()=>({zoomIn:async r=>{const{panZoom:i}=t.getState();return i?i.scaleBy(1.2,r):!1},zoomOut:async r=>{const{panZoom:i}=t.getState();return i?i.scaleBy(1/1.2,r):!1},zoomTo:async(r,i)=>{const{panZoom:l}=t.getState();return l?l.scaleTo(r,i):!1},getZoom:()=>t.getState().transform[2],setViewport:async(r,i)=>{const{transform:[l,u,a],panZoom:c}=t.getState();return c?(await c.setViewport({x:r.x??l,y:r.y??u,zoom:r.zoom??a},i),!0):!1},getViewport:()=>{const[r,i,l]=t.getState().transform;return{x:r,y:i,zoom:l}},setCenter:async(r,i,l)=>t.getState().setCenter(r,i,l),fitBounds:async(r,i)=>{const{width:l,height:u,minZoom:a,maxZoom:c,panZoom:d}=t.getState(),p=uc(r,l,u,a,c,(i==null?void 0:i.padding)??.1);return d?(await d.setViewport(p,{duration:i==null?void 0:i.duration,ease:i==null?void 0:i.ease,interpolate:i==null?void 0:i.interpolate}),!0):!1},screenToFlowPosition:(r,i={})=>{const{transform:l,snapGrid:u,snapToGrid:a,domNode:c}=t.getState();if(!c)return r;const{x:d,y:p}=c.getBoundingClientRect(),g={x:r.x-d,y:r.y-p},v=i.snapGrid??u,y=i.snapToGrid??a;return ki(g,l,y,v)},flowToScreenPosition:r=>{const{transform:i,domNode:l}=t.getState();if(!l)return r;const{x:u,y:a}=l.getBoundingClientRect(),c=so(r,i);return{x:c.x+u,y:c.y+a}}}),[])};function Mg(t,r){const i=[],l=new Map,u=[];for(const a of t)if(a.type==="add"){u.push(a);continue}else if(a.type==="remove"||a.type==="replace")l.set(a.id,[a]);else{const c=l.get(a.id);c?c.push(a):l.set(a.id,[a])}for(const a of r){const c=l.get(a.id);if(!c){i.push(a);continue}if(c[0].type==="remove")continue;if(c[0].type==="replace"){i.push({...c[0].item});continue}const d={...a};for(const p of c)r_(p,d);i.push(d)}return u.length&&u.forEach(a=>{a.index!==void 0?i.splice(a.index,0,{...a.item}):i.push({...a.item})}),i}function r_(t,r){switch(t.type){case"select":{r.selected=t.selected;break}case"position":{typeof t.position<"u"&&(r.position=t.position),typeof t.dragging<"u"&&(r.dragging=t.dragging);break}case"dimensions":{typeof t.dimensions<"u"&&(r.measured={...t.dimensions},t.setAttributes&&((t.setAttributes===!0||t.setAttributes==="width")&&(r.width=t.dimensions.width),(t.setAttributes===!0||t.setAttributes==="height")&&(r.height=t.dimensions.height))),typeof t.resizing=="boolean"&&(r.resizing=t.resizing);break}}}function o_(t,r){return Mg(t,r)}function i_(t,r){return Mg(t,r)}function dr(t,r){return{id:t,type:"select",selected:r}}function Jr(t,r=new Set,i=!1){const l=[];for(const[u,a]of t){const c=r.has(u);!(a.selected===void 0&&!c)&&a.selected!==c&&(i&&(a.selected=c),l.push(dr(a.id,c)))}return l}function bh({items:t=[],lookup:r}){var u;const i=[],l=new Map(t.map(a=>[a.id,a]));for(const[a,c]of t.entries()){const d=r.get(c.id),p=((u=d==null?void 0:d.internals)==null?void 0:u.userNode)??d;p!==void 0&&p!==c&&i.push({id:c.id,item:c,type:"replace"}),p===void 0&&i.push({item:c,type:"add",index:a})}for(const[a]of r)l.get(a)===void 0&&i.push({id:a,type:"remove"});return i}function Bh(t){return{id:t.id,type:"remove"}}const s_=eg();function l_(t,r,i={}){return Uw(t,r,{...i,onError:i.onError??s_})}const Uh=t=>Iw(t),u_=t=>Kp(t);function Pg(t){return U.forwardRef(t)}const Ig=typeof window<"u"?U.useLayoutEffect:U.useEffect;function Wh(t){const[r,i]=U.useState(BigInt(0)),[l]=U.useState(()=>a_(()=>i(u=>u+BigInt(1))));return Ig(()=>{const u=l.get();u.length&&(t(u),l.reset())},[r]),l}function a_(t){let r=[];return{get:()=>r,reset:()=>{r=[]},push:i=>{r.push(i),t()}}}const Tg=U.createContext(null);function c_({children:t}){const r=De(),i=U.useCallback(d=>{const{nodes:p=[],setNodes:g,hasDefaultNodes:v,onNodesChange:y,nodeLookup:m,fitViewQueued:w,onNodesChangeMiddlewareMap:S}=r.getState();let P=p;for(const k of d)P=typeof k=="function"?k(P):k;let N=bh({items:P,lookup:m});for(const k of S.values())N=k(N);v&&g(P),N.length>0?y==null||y(N):w&&window.requestAnimationFrame(()=>{const{fitViewQueued:k,nodes:j,setNodes:_}=r.getState();k&&_(j)})},[]),l=Wh(i),u=U.useCallback(d=>{const{edges:p=[],setEdges:g,hasDefaultEdges:v,onEdgesChange:y,edgeLookup:m}=r.getState();let w=p;for(const S of d)w=typeof S=="function"?S(w):S;v?g(w):y&&y(bh({items:w,lookup:m}))},[]),a=Wh(u),c=U.useMemo(()=>({nodeQueue:l,edgeQueue:a}),[]);return E.jsx(Tg.Provider,{value:c,children:t})}function f_(){const t=U.useContext(Tg);if(!t)throw new Error("useBatchContext must be used within a BatchProvider");return t}const d_=t=>!!t.panZoom;function gc(){const t=n_(),r=De(),i=f_(),l=Ie(d_),u=U.useMemo(()=>{const a=y=>r.getState().nodeLookup.get(y),c=y=>{i.nodeQueue.push(y)},d=y=>{i.edgeQueue.push(y)},p=y=>{var k,j;const{nodeLookup:m,nodeOrigin:w}=r.getState(),S=Uh(y)?y:m.get(y.id),P=S.parentId?ng(S.position,S.measured,S.parentId,m,w):S.position,N={...S,position:P,width:((k=S.measured)==null?void 0:k.width)??S.width,height:((j=S.measured)==null?void 0:j.height)??S.height};return pi(N)},g=(y,m,w={replace:!1})=>{c(S=>S.map(P=>{if(P.id===y){const N=typeof m=="function"?m(P):m;return w.replace&&Uh(N)?N:{...P,...N}}return P}))},v=(y,m,w={replace:!1})=>{d(S=>S.map(P=>{if(P.id===y){const N=typeof m=="function"?m(P):m;return w.replace&&u_(N)?N:{...P,...N}}return P}))};return{getNodes:()=>r.getState().nodes.map(y=>({...y})),getNode:y=>{var m;return(m=a(y))==null?void 0:m.internals.userNode},getInternalNode:a,getEdges:()=>{const{edges:y=[]}=r.getState();return y.map(m=>({...m}))},getEdge:y=>r.getState().edgeLookup.get(y),setNodes:c,setEdges:d,addNodes:y=>{const m=Array.isArray(y)?y:[y];i.nodeQueue.push(w=>[...w,...m])},addEdges:y=>{const m=Array.isArray(y)?y:[y];i.edgeQueue.push(w=>[...w,...m])},toObject:()=>{const{nodes:y=[],edges:m=[],transform:w}=r.getState(),[S,P,N]=w;return{nodes:y.map(k=>({...k})),edges:m.map(k=>({...k})),viewport:{x:S,y:P,zoom:N}}},deleteElements:async({nodes:y=[],edges:m=[]})=>{const{nodes:w,edges:S,onNodesDelete:P,onEdgesDelete:N,triggerNodeChanges:k,triggerEdgeChanges:j,onDelete:_,onBeforeDelete:I}=r.getState(),{nodes:F,edges:D}=await Lw({nodesToRemove:y,edgesToRemove:m,nodes:w,edges:S,onBeforeDelete:I}),V=D.length>0,Q=F.length>0;if(V){const Y=D.map(Bh);N==null||N(D),j(Y)}if(Q){const Y=F.map(Bh);P==null||P(F),k(Y)}return(Q||V)&&(_==null||_({nodes:F,edges:D})),{deletedNodes:F,deletedEdges:D}},getIntersectingNodes:(y,m=!0,w)=>{const S=gh(y),P=S?y:p(y),N=w!==void 0;return P?(w||r.getState().nodes).filter(k=>{const j=r.getState().nodeLookup.get(k.id);if(j&&!S&&(k.id===y.id||!j.internals.positionAbsolute))return!1;const _=pi(N?k:j),I=hl(_,P);return m&&I>0||I>=_.width*_.height||I>=P.width*P.height}):[]},isNodeIntersecting:(y,m,w=!0)=>{const P=gh(y)?y:p(y);if(!P)return!1;const N=hl(P,m);return w&&N>0||N>=m.width*m.height||N>=P.width*P.height},updateNode:g,updateNodeData:(y,m,w={replace:!1})=>{g(y,S=>{const P=typeof m=="function"?m(S):m;return w.replace?{...S,data:P}:{...S,data:{...S.data,...P}}},w)},updateEdge:v,updateEdgeData:(y,m,w={replace:!1})=>{v(y,S=>{const P=typeof m=="function"?m(S):m;return w.replace?{...S,data:P}:{...S,data:{...S.data,...P}}},w)},getNodesBounds:y=>{const{nodeLookup:m,nodeOrigin:w}=r.getState();return Tw(y,{nodeLookup:m,nodeOrigin:w})},getHandleConnections:({type:y,id:m,nodeId:w})=>{var S;return Array.from(((S=r.getState().connectionLookup.get(`${w}-${y}${m?`-${m}`:""}`))==null?void 0:S.values())??[])},getNodeConnections:({type:y,handleId:m,nodeId:w})=>{var S;return Array.from(((S=r.getState().connectionLookup.get(`${w}${y?m?`-${y}-${m}`:`-${y}`:""}`))==null?void 0:S.values())??[])},fitView:async y=>{const m=r.getState().fitViewResolver??$w();return r.setState({fitViewQueued:!0,fitViewOptions:y,fitViewResolver:m}),i.nodeQueue.push(w=>[...w]),m.promise}}},[]);return U.useMemo(()=>({...u,...t,viewportInitialized:l}),[l])}const Yh=t=>t.selected,h_=typeof window<"u"?window:void 0;function p_({deleteKeyCode:t,multiSelectionKeyCode:r}){const i=De(),{deleteElements:l}=gc(),u=mi(t,{actInsideInputWithModifier:!1}),a=mi(r,{target:h_});U.useEffect(()=>{if(u){const{edges:c,nodes:d}=i.getState();l({nodes:d.filter(Yh),edges:c.filter(Yh)}),i.setState({nodesSelectionActive:!1})}},[u]),U.useEffect(()=>{i.setState({multiSelectionActive:a})},[a])}function g_(t){const r=De();U.useEffect(()=>{const i=()=>{var u,a,c,d;if(!t.current||!(((a=(u=t.current).checkVisibility)==null?void 0:a.call(u))??!0))return!1;const l=ac(t.current);(l.height===0||l.width===0)&&((d=(c=r.getState()).onError)==null||d.call(c,"004",Yt.error004())),r.setState({width:l.width||500,height:l.height||500})};if(t.current){i(),window.addEventListener("resize",i);const l=new ResizeObserver(()=>i());return l.observe(t.current),()=>{window.removeEventListener("resize",i),l&&t.current&&l.unobserve(t.current)}}},[])}const El={position:"absolute",width:"100%",height:"100%",top:0,left:0},m_=t=>({userSelectionActive:t.userSelectionActive,lib:t.lib,connectionInProgress:t.connection.inProgress});function y_({onPaneContextMenu:t,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:l=!1,panActivationKeyPressed:u,panOnScrollSpeed:a=.5,panOnScrollMode:c=gr.Free,zoomOnDoubleClick:d=!0,panOnDrag:p=!0,defaultViewport:g,translateExtent:v,minZoom:y,maxZoom:m,zoomActivationKeyCode:w,preventScrolling:S=!0,children:P,noWheelClassName:N,noPanClassName:k,onViewportChange:j,isControlledViewport:_,paneClickDistance:I,selectionOnDrag:F}){const D=De(),V=U.useRef(null),{userSelectionActive:Q,lib:Y,connectionInProgress:ee}=Ie(m_,Ve),q=mi(w),J=U.useRef();g_(V);const Z=U.useCallback(C=>{j==null||j({x:C[0],y:C[1],zoom:C[2]}),_||D.setState({transform:C})},[j,_]);return U.useEffect(()=>{if(V.current){J.current=w1({domNode:V.current,minZoom:y,maxZoom:m,translateExtent:v,viewport:g,onDraggingChange:B=>D.setState(z=>z.paneDragging===B?z:{paneDragging:B}),onPanZoomStart:(B,z)=>{const{onViewportChangeStart:A,onMoveStart:O}=D.getState();O==null||O(B,z),A==null||A(z)},onPanZoom:(B,z)=>{const{onViewportChange:A,onMove:O}=D.getState();O==null||O(B,z),A==null||A(z)},onPanZoomEnd:(B,z)=>{const{onViewportChangeEnd:A,onMoveEnd:O}=D.getState();O==null||O(B,z),A==null||A(z)}});const{x:C,y:b,zoom:H}=J.current.getViewport();return D.setState({panZoom:J.current,transform:[C,b,H],domNode:V.current.closest(".react-flow")}),()=>{var B;(B=J.current)==null||B.destroy()}}},[]),U.useEffect(()=>{var C;(C=J.current)==null||C.update({onPaneContextMenu:t,zoomOnScroll:r,zoomOnPinch:i,panOnScroll:l,panActivationKeyPressed:u,panOnScrollSpeed:a,panOnScrollMode:c,zoomOnDoubleClick:d,panOnDrag:p,zoomActivationKeyPressed:q,preventScrolling:S,noPanClassName:k,userSelectionActive:Q,noWheelClassName:N,lib:Y,onTransformChange:Z,connectionInProgress:ee,selectionOnDrag:F,paneClickDistance:I})},[t,r,i,l,u,a,c,d,p,q,S,k,Q,N,Y,Z,ee,F,I]),E.jsx("div",{className:"react-flow__renderer",ref:V,style:El,children:P})}const v_=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function x_(){const{userSelectionActive:t,userSelectionRect:r}=Ie(v_,Ve);return t&&r?E.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:r.width,height:r.height,transform:`translate(${r.x}px, ${r.y}px)`}}):null}const La=(t,r)=>i=>{i.target===r.current&&(t==null||t(i))},w_=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,dragging:t.paneDragging,panBy:t.panBy,autoPanSpeed:t.autoPanSpeed});function __({isSelecting:t,selectionKeyPressed:r,selectionMode:i=hi.Full,panOnDrag:l,autoPanOnSelection:u,paneClickDistance:a,selectionOnDrag:c,onSelectionStart:d,onSelectionEnd:p,onPaneClick:g,onPaneContextMenu:v,onPaneScroll:y,onPaneMouseEnter:m,onPaneMouseMove:w,onPaneMouseLeave:S,children:P}){const N=U.useRef(0),k=De(),{userSelectionActive:j,elementsSelectable:_,dragging:I,panBy:F,autoPanSpeed:D}=Ie(w_,Ve),V=_&&(t||j),Q=U.useRef(null),Y=U.useRef(),ee=U.useRef(new Set),q=U.useRef(new Set),J=U.useRef(!1),Z=U.useRef(!1),C=U.useRef({x:0,y:0}),b=U.useRef(!1),H=G=>{if(Z.current||J.current||k.getState().connection.inProgress){Z.current=!1,J.current=!1;return}g==null||g(G),k.getState().resetSelectedElements(),k.setState({nodesSelectionActive:!1})},B=G=>{if(Array.isArray(l)&&(l!=null&&l.includes(2))){G.preventDefault();return}v==null||v(G)},z=y?G=>y(G):void 0,A=G=>{Z.current&&(G.stopPropagation(),Z.current=!1)},O=G=>{var ze,st;if(G.pointerType==="touch"&&l!==!1&&!r)return;const{domNode:se,transform:pe}=k.getState();if(Y.current=se==null?void 0:se.getBoundingClientRect(),!Y.current)return;const xe=G.target===Q.current;if(!xe&&!!G.target.closest(".nokey")||!t||!(c&&xe||r)||G.button!==0||!G.isPrimary)return;(st=(ze=G.target)==null?void 0:ze.setPointerCapture)==null||st.call(ze,G.pointerId),Z.current=!1;const{x:ke,y:Ne}=Wt(G.nativeEvent,Y.current),Me=ki({x:ke,y:Ne},pe);k.setState({userSelectionRect:{width:0,height:0,startX:Me.x,startY:Me.y,x:ke,y:Ne}}),xe||(G.stopPropagation(),G.preventDefault())};function M(G,se){const{userSelectionRect:pe}=k.getState();if(!pe)return;const{transform:xe,nodeLookup:ye,edgeLookup:we,connectionLookup:ke,triggerNodeChanges:Ne,triggerEdgeChanges:Me,defaultEdgeOptions:ze}=k.getState(),st={x:pe.startX,y:pe.startY},{x:at,y:et}=so(st,xe),tt={startX:st.x,startY:st.y,x:G<at?G:at,y:se<et?se:et,width:Math.abs(G-at),height:Math.abs(se-et)},sn=ee.current,Kt=q.current;ee.current=new Set(sc(ye,tt,xe,i===hi.Partial,!0).map(ct=>ct.id)),q.current=new Set;const Gt=(ze==null?void 0:ze.selectable)??!0;for(const ct of ee.current){const Pt=ke.get(ct);if(Pt)for(const{edgeId:vt}of Pt.values()){const It=we.get(vt);It&&(It.selectable??Gt)&&q.current.add(vt)}}if(!mh(sn,ee.current)){const ct=Jr(ye,ee.current,!0);Ne(ct)}if(!mh(Kt,q.current)){const ct=Jr(we,q.current);Me(ct)}k.setState({userSelectionRect:tt,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!u||!Y.current)return;const[G,se]=lc(C.current,Y.current,D);F({x:G,y:se}).then(pe=>{if(!Z.current||!pe){N.current=requestAnimationFrame(L);return}const{x:xe,y:ye}=C.current;M(xe,ye),N.current=requestAnimationFrame(L)})}const te=()=>{cancelAnimationFrame(N.current),N.current=0,b.current=!1};U.useEffect(()=>()=>te(),[]);const re=G=>{const{userSelectionRect:se,transform:pe,resetSelectedElements:xe}=k.getState();if(!Y.current||!se)return;const{x:ye,y:we}=Wt(G.nativeEvent,Y.current);C.current={x:ye,y:we};const ke=so({x:se.startX,y:se.startY},pe);if(!Z.current){const Ne=r?0:a;if(Math.hypot(ye-ke.x,we-ke.y)<=Ne)return;xe(),d==null||d(G)}Z.current=!0,b.current||(L(),b.current=!0),M(ye,we)},ue=G=>{var se,pe;if(!V){G.target===Q.current&&k.getState().connection.inProgress&&(J.current=!0);return}G.button===0&&((pe=(se=G.target)==null?void 0:se.releasePointerCapture)==null||pe.call(se,G.pointerId),!j&&G.target===Q.current&&k.getState().userSelectionRect&&(H==null||H(G)),k.setState({userSelectionActive:!1,userSelectionRect:null}),Z.current&&(p==null||p(G),k.setState({nodesSelectionActive:ee.current.size>0})),te())},ce=G=>{var se,pe;(pe=(se=G.target)==null?void 0:se.releasePointerCapture)==null||pe.call(se,G.pointerId),te()},ae=l===!0||Array.isArray(l)&&l.includes(0);return E.jsxs("div",{className:We(["react-flow__pane",{draggable:ae,dragging:I,selection:t}]),onClick:V?void 0:La(H,Q),onContextMenu:La(B,Q),onWheel:La(z,Q),onPointerEnter:V?void 0:m,onPointerMove:V?re:w,onPointerUp:ue,onPointerCancel:V?ce:void 0,onPointerDownCapture:V?O:void 0,onClickCapture:V?A:void 0,onPointerLeave:S,ref:Q,style:El,children:[P,E.jsx(x_,{})]})}function Ga({id:t,store:r,unselect:i=!1,nodeRef:l}){const{addSelectedNodes:u,unselectNodesAndEdges:a,multiSelectionActive:c,nodeLookup:d,onError:p}=r.getState(),g=d.get(t);if(!g){p==null||p("012",Yt.error012(t));return}r.setState({nodesSelectionActive:!1}),g.selected?(i||g.selected&&c)&&(a({nodes:[g],edges:[]}),requestAnimationFrame(()=>{var v;return(v=l==null?void 0:l.current)==null?void 0:v.blur()})):u([t])}function zg({nodeRef:t,disabled:r=!1,noDragClassName:i,handleSelector:l,nodeId:u,isSelectable:a,nodeClickDistance:c}){const d=De(),[p,g]=U.useState(!1),v=U.useRef();return U.useEffect(()=>{if(!r)return v.current=s1({getStoreItems:()=>d.getState(),onNodeMouseDown:y=>{Ga({id:y,store:d,nodeRef:t})},onDragStart:()=>{g(!0)},onDragStop:()=>{g(!1)}}),()=>{var y;(y=v.current)==null||y.destroy(),v.current=void 0}},[r,d,t]),U.useEffect(()=>{r||!t.current||!v.current||v.current.update({noDragClassName:i,handleSelector:l,domNode:t.current,isSelectable:a,nodeId:u,nodeClickDistance:c})},[i,l,r,a,t,u,c]),p}const S_=t=>r=>r.selected&&(r.draggable||t&&typeof r.draggable>"u");function jg(){const t=De();return U.useCallback(i=>{const{nodeExtent:l,snapToGrid:u,snapGrid:a,nodesDraggable:c,onError:d,updateNodePositions:p,nodeLookup:g,nodeOrigin:v}=t.getState(),y=new Map,m=S_(c),w=u?a[0]:5,S=u?a[1]:5,P=i.direction.x*w*i.factor,N=i.direction.y*S*i.factor;for(const[,k]of g){if(!m(k))continue;let j={x:k.internals.positionAbsolute.x+P,y:k.internals.positionAbsolute.y+N};u&&(j=Si(j,a));const{position:_,positionAbsolute:I}=Gp({nodeId:k.id,nextPosition:j,nodeLookup:g,nodeExtent:l,nodeOrigin:v,onError:d});k.position=_,k.internals.positionAbsolute=I,y.set(k.id,k)}p(y)},[])}const mc=U.createContext(null),k_=mc.Provider;mc.Consumer;const Ag=()=>U.useContext(mc),E_=t=>({connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName,rfId:t.rfId}),Lg=U.createContext(null);function N_({children:t}){const r=Ie(E_,Ve);return E.jsx(Lg.Provider,{value:r,children:t})}function C_(){const t=U.useContext(Lg);if(!t)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return t}const M_={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},P_=(t,r,i)=>l=>{const{connectionClickStartHandle:u,connectionMode:a,connection:c}=l,{fromHandle:d,toHandle:p,isValid:g}=c;if(!d&&!u)return M_;const v=(p==null?void 0:p.nodeId)===t&&(p==null?void 0:p.id)===r&&(p==null?void 0:p.type)===i;return{connectingFrom:(d==null?void 0:d.nodeId)===t&&(d==null?void 0:d.id)===r&&(d==null?void 0:d.type)===i,connectingTo:v,clickConnecting:(u==null?void 0:u.nodeId)===t&&(u==null?void 0:u.id)===r&&(u==null?void 0:u.type)===i,isPossibleEndHandle:a===oo.Strict?(d==null?void 0:d.type)!==i:t!==(d==null?void 0:d.nodeId)||r!==(d==null?void 0:d.id),connectionInProcess:!!d,clickConnectionInProcess:!!u,valid:v&&g}};function I_({type:t="source",position:r=ve.Top,isValidConnection:i,isConnectable:l=!0,isConnectableStart:u=!0,isConnectableEnd:a=!0,id:c,onConnect:d,children:p,className:g,onMouseDown:v,onTouchStart:y,...m},w){var b,H;const S=c||null,P=t==="target",N=De(),k=Ag(),{connectOnClick:j,noPanClassName:_,rfId:I}=C_(),{connectingFrom:F,connectingTo:D,clickConnecting:V,isPossibleEndHandle:Q,connectionInProcess:Y,clickConnectionInProcess:ee,valid:q}=Ie(P_(k,S,t),Ve);k||(H=(b=N.getState()).onError)==null||H.call(b,"010",Yt.error010());const J=B=>{const{defaultEdgeOptions:z,onConnect:A,hasDefaultEdges:O}=N.getState(),M={...z,...B};if(O){const{edges:L,setEdges:te,onError:re}=N.getState();te(l_(M,L,{onError:re}))}A==null||A(M),d==null||d(M)},Z=B=>{if(!k)return;const z=sg(B.nativeEvent);if(u&&(z&&B.button===0||!z)){const A=N.getState();Ka.onPointerDown(B.nativeEvent,{handleDomNode:B.currentTarget,autoPanOnConnect:A.autoPanOnConnect,connectionMode:A.connectionMode,connectionRadius:A.connectionRadius,domNode:A.domNode,nodeLookup:A.nodeLookup,lib:A.lib,isTarget:P,handleId:S,nodeId:k,flowId:A.rfId,panBy:A.panBy,cancelConnection:A.cancelConnection,onConnectStart:A.onConnectStart,onConnectEnd:(...O)=>{var M,L;return(L=(M=N.getState()).onConnectEnd)==null?void 0:L.call(M,...O)},updateConnection:A.updateConnection,onConnect:J,isValidConnection:i||((...O)=>{var M,L;return((L=(M=N.getState()).isValidConnection)==null?void 0:L.call(M,...O))??!0}),getTransform:()=>N.getState().transform,getFromHandle:()=>N.getState().connection.fromHandle,autoPanSpeed:A.autoPanSpeed,dragThreshold:A.connectionDragThreshold})}z?v==null||v(B):y==null||y(B)},C=B=>{const{onClickConnectStart:z,onClickConnectEnd:A,connectionClickStartHandle:O,connectionMode:M,isValidConnection:L,lib:te,rfId:re,nodeLookup:ue,connection:ce}=N.getState();if(!k||!O&&!u)return;if(!O){z==null||z(B.nativeEvent,{nodeId:k,handleId:S,handleType:t}),N.setState({connectionClickStartHandle:{nodeId:k,type:t,id:S}});return}const ae=og(B.target),G=i||L,{connection:se,isValid:pe}=Ka.isValid(B.nativeEvent,{handle:{nodeId:k,id:S,type:t},connectionMode:M,fromNodeId:O.nodeId,fromHandleId:O.id||null,fromType:O.type,isValidConnection:G,flowId:re,doc:ae,lib:te,nodeLookup:ue});pe&&se&&J(se);const xe=structuredClone(ce);delete xe.inProgress,xe.toPosition=xe.toHandle?xe.toHandle.position:null,A==null||A(B,xe),N.setState({connectionClickStartHandle:null})};return E.jsx("div",{"data-handleid":S,"data-nodeid":k,"data-handlepos":r,"data-id":`${I}-${k}-${S}-${t}`,className:We(["react-flow__handle",`react-flow__handle-${r}`,"nodrag",_,g,{source:!P,target:P,connectable:l,connectablestart:u,connectableend:a,clickconnecting:V,connectingfrom:F,connectingto:D,valid:q,connectionindicator:l&&(!Y||Q)&&(Y||ee?a:u)}]),onMouseDown:Z,onTouchStart:Z,onClick:j?C:void 0,ref:w,...m,children:p})}const uo=U.memo(Pg(I_));function T_({data:t,isConnectable:r,sourcePosition:i=ve.Bottom}){return E.jsxs(E.Fragment,{children:[t==null?void 0:t.label,E.jsx(uo,{type:"source",position:i,isConnectable:r})]})}function z_({data:t,isConnectable:r,targetPosition:i=ve.Top,sourcePosition:l=ve.Bottom}){return E.jsxs(E.Fragment,{children:[E.jsx(uo,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label,E.jsx(uo,{type:"source",position:l,isConnectable:r})]})}function j_(){return null}function A_({data:t,isConnectable:r,targetPosition:i=ve.Top}){return E.jsxs(E.Fragment,{children:[E.jsx(uo,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label]})}const pl={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Xh={input:T_,default:z_,output:A_,group:j_};function L_(t){var r,i,l,u;return t.internals.handleBounds===void 0?{width:t.width??t.initialWidth??((r=t.style)==null?void 0:r.width),height:t.height??t.initialHeight??((i=t.style)==null?void 0:i.height)}:{width:t.width??((l=t.style)==null?void 0:l.width),height:t.height??((u=t.style)==null?void 0:u.height)}}const R_=t=>{const{width:r,height:i,x:l,y:u}=_i(t.nodeLookup,{filter:a=>!!a.selected});return{width:Ut(r)?r:null,height:Ut(i)?i:null,userSelectionActive:t.userSelectionActive,transformString:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]}) translate(${l}px,${u}px)`}};function D_({onSelectionContextMenu:t,noPanClassName:r,disableKeyboardA11y:i}){const l=De(),{width:u,height:a,transformString:c,userSelectionActive:d}=Ie(R_,Ve),p=jg(),g=U.useRef(null);U.useEffect(()=>{var w;i||(w=g.current)==null||w.focus({preventScroll:!0})},[i]);const v=!d&&u!==null&&a!==null;if(zg({nodeRef:g,disabled:!v}),!v)return null;const y=t?w=>{const S=l.getState().nodes.filter(P=>P.selected);t(w,S)}:void 0,m=w=>{Object.prototype.hasOwnProperty.call(pl,w.key)&&(w.preventDefault(),p({direction:pl[w.key],factor:w.shiftKey?4:1}))};return E.jsx("div",{className:We(["react-flow__nodesselection","react-flow__container",r]),style:{transform:c},children:E.jsx("div",{ref:g,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:i?void 0:-1,onKeyDown:i?void 0:m,style:{width:u,height:a}})})}const Qh=typeof window<"u"?window:void 0,$_=t=>({nodesSelectionActive:t.nodesSelectionActive,userSelectionActive:t.userSelectionActive});function Rg({children:t,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:u,onPaneContextMenu:a,onPaneScroll:c,paneClickDistance:d,deleteKeyCode:p,selectionKeyCode:g,selectionOnDrag:v,selectionMode:y,onSelectionStart:m,onSelectionEnd:w,multiSelectionKeyCode:S,panActivationKeyCode:P,zoomActivationKeyCode:N,elementsSelectable:k,zoomOnScroll:j,zoomOnPinch:_,panOnScroll:I,panOnScrollSpeed:F,panOnScrollMode:D,zoomOnDoubleClick:V,panOnDrag:Q,autoPanOnSelection:Y,defaultViewport:ee,translateExtent:q,minZoom:J,maxZoom:Z,preventScrolling:C,onSelectionContextMenu:b,noWheelClassName:H,noPanClassName:B,disableKeyboardA11y:z,onViewportChange:A,isControlledViewport:O}){const{nodesSelectionActive:M,userSelectionActive:L}=Ie($_,Ve),te=mi(g,{target:Qh}),re=mi(P,{target:Qh}),ue=re||Q,ce=re||I,ae=v&&ue!==!0,G=te||L||ae;return p_({deleteKeyCode:p,multiSelectionKeyCode:S}),E.jsx(y_,{onPaneContextMenu:a,elementsSelectable:k,zoomOnScroll:j,zoomOnPinch:_,panOnScroll:ce,panActivationKeyPressed:re,panOnScrollSpeed:F,panOnScrollMode:D,zoomOnDoubleClick:V,panOnDrag:!te&&ue,defaultViewport:ee,translateExtent:q,minZoom:J,maxZoom:Z,zoomActivationKeyCode:N,preventScrolling:C,noWheelClassName:H,noPanClassName:B,onViewportChange:A,isControlledViewport:O,paneClickDistance:d,selectionOnDrag:ae,children:E.jsxs(__,{onSelectionStart:m,onSelectionEnd:w,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:u,onPaneContextMenu:a,onPaneScroll:c,panOnDrag:ue,autoPanOnSelection:Y,isSelecting:!!G,selectionMode:y,selectionKeyPressed:te,paneClickDistance:d,selectionOnDrag:ae,children:[t,M&&E.jsx(D_,{onSelectionContextMenu:b,noPanClassName:B,disableKeyboardA11y:z})]})})}Rg.displayName="FlowRenderer";const O_=U.memo(Rg),F_=t=>r=>t?sc(r.nodeLookup,{x:0,y:0,width:r.width,height:r.height},r.transform,!0).map(i=>i.id):Array.from(r.nodeLookup.keys());function H_(t){return Ie(U.useCallback(F_(t),[t]),Ve)}const V_=t=>t.updateNodeInternals;function b_(){const t=Ie(V_),[r]=U.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(i=>{const l=new Map;i.forEach(u=>{const a=u.target.getAttribute("data-id");l.set(a,{id:a,nodeElement:u.target,force:!0})}),t(l)}));return U.useEffect(()=>()=>{r==null||r.disconnect()},[r]),r}function B_({node:t,nodeType:r,hasDimensions:i,resizeObserver:l}){const u=De(),a=U.useRef(null),c=U.useRef(null),d=U.useRef(t.sourcePosition),p=U.useRef(t.targetPosition),g=U.useRef(r),v=i&&!!t.internals.handleBounds;return U.useEffect(()=>{a.current&&!t.hidden&&(!v||c.current!==a.current)&&(c.current&&(l==null||l.unobserve(c.current)),l==null||l.observe(a.current),c.current=a.current)},[v,t.hidden]),U.useEffect(()=>()=>{c.current&&(l==null||l.unobserve(c.current),c.current=null)},[]),U.useEffect(()=>{if(a.current){const y=g.current!==r,m=d.current!==t.sourcePosition,w=p.current!==t.targetPosition;(y||m||w)&&(g.current=r,d.current=t.sourcePosition,p.current=t.targetPosition,u.getState().updateNodeInternals(new Map([[t.id,{id:t.id,nodeElement:a.current,force:!0}]])))}},[t.id,r,t.sourcePosition,t.targetPosition]),a}function U_({id:t,onClick:r,onMouseEnter:i,onMouseMove:l,onMouseLeave:u,onContextMenu:a,onDoubleClick:c,nodesDraggable:d,elementsSelectable:p,nodesConnectable:g,nodesFocusable:v,resizeObserver:y,noDragClassName:m,noPanClassName:w,disableKeyboardA11y:S,rfId:P,nodeTypes:N,nodeClickDistance:k,onError:j}){const{node:_,internals:I,isParent:F}=Ie(G=>{const se=G.nodeLookup.get(t),pe=G.parentLookup.has(t);return{node:se,internals:se.internals,isParent:pe}},Ve);let D=_.type||"default",V=(N==null?void 0:N[D])||Xh[D];V===void 0&&(j==null||j("003",Yt.error003(D)),D="default",V=(N==null?void 0:N.default)||Xh.default);const Q=!!(_.draggable||d&&typeof _.draggable>"u"),Y=!!(_.selectable||p&&typeof _.selectable>"u"),ee=!!(_.connectable||g&&typeof _.connectable>"u"),q=!!(_.focusable||v&&typeof _.focusable>"u"),J=De(),Z=tg(_),C=B_({node:_,nodeType:D,hasDimensions:Z,resizeObserver:y}),b=zg({nodeRef:C,disabled:_.hidden||!Q,noDragClassName:m,handleSelector:_.dragHandle,nodeId:t,isSelectable:Y,nodeClickDistance:k}),H=jg();if(_.hidden)return null;const B=Qt(_),z=L_(_),A=Y||Q||r||i||l||u,O=i?G=>i(G,{...I.userNode}):void 0,M=l?G=>l(G,{...I.userNode}):void 0,L=u?G=>u(G,{...I.userNode}):void 0,te=a?G=>a(G,{...I.userNode}):void 0,re=c?G=>c(G,{...I.userNode}):void 0,ue=G=>{const{selectNodesOnDrag:se,nodeDragThreshold:pe}=J.getState();Y&&(!se||!Q||pe>0)&&Ga({id:t,store:J,nodeRef:C}),r&&r(G,{...I.userNode})},ce=G=>{if(!(ig(G.nativeEvent)||S)){if(Yp.includes(G.key)&&Y){const se=G.key==="Escape";Ga({id:t,store:J,unselect:se,nodeRef:C})}else if(Q&&_.selected&&Object.prototype.hasOwnProperty.call(pl,G.key)){G.preventDefault();const{ariaLabelConfig:se}=J.getState();J.setState({ariaLiveMessage:se["node.a11yDescription.ariaLiveMessage"]({direction:G.key.replace("Arrow","").toLowerCase(),x:~~I.positionAbsolute.x,y:~~I.positionAbsolute.y})}),H({direction:pl[G.key],factor:G.shiftKey?4:1})}}},ae=()=>{var ke;if(S||!((ke=C.current)!=null&&ke.matches(":focus-visible")))return;const{transform:G,width:se,height:pe,autoPanOnNodeFocus:xe,setCenter:ye}=J.getState();if(!xe)return;sc(new Map([[t,_]]),{x:0,y:0,width:se,height:pe},G,!0).length>0||ye(_.position.x+B.width/2,_.position.y+B.height/2,{zoom:G[2]})};return E.jsx("div",{className:We(["react-flow__node",`react-flow__node-${D}`,{[w]:Q},_.className,{selected:_.selected,selectable:Y,parent:F,draggable:Q,dragging:b}]),ref:C,style:{zIndex:I.z,transform:`translate(${I.positionAbsolute.x}px,${I.positionAbsolute.y}px)`,pointerEvents:A?"all":"none",visibility:Z?"visible":"hidden",..._.style,...z},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:O,onMouseMove:M,onMouseLeave:L,onContextMenu:te,onClick:ue,onDoubleClick:re,onKeyDown:q?ce:void 0,tabIndex:q?0:void 0,onFocus:q?ae:void 0,role:_.ariaRole??(q?"group":void 0),"aria-roledescription":"node","aria-describedby":S?void 0:`${Eg}-${P}`,"aria-label":_.ariaLabel,..._.domAttributes,children:E.jsx(k_,{value:t,children:E.jsx(V,{id:t,data:_.data,type:D,positionAbsoluteX:I.positionAbsolute.x,positionAbsoluteY:I.positionAbsolute.y,selected:_.selected??!1,selectable:Y,draggable:Q,deletable:_.deletable??!0,isConnectable:ee,sourcePosition:_.sourcePosition,targetPosition:_.targetPosition,dragging:b,dragHandle:_.dragHandle,zIndex:I.z,parentId:_.parentId,...B})})})}var W_=U.memo(U_);const Y_=t=>({nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,onError:t.onError});function Dg(t){const{nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,onError:u}=Ie(Y_,Ve),a=H_(t.onlyRenderVisibleElements),c=b_();return E.jsx("div",{className:"react-flow__nodes",style:El,children:a.map(d=>E.jsx(W_,{id:d,nodeTypes:t.nodeTypes,nodeExtent:t.nodeExtent,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,resizeObserver:c,nodesDraggable:t.nodesDraggable??!0,nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,nodeClickDistance:t.nodeClickDistance,onError:u},d))})}Dg.displayName="NodeRenderer";const X_=U.memo(Dg);function Q_(t){return Ie(U.useCallback(i=>{if(!t)return i.edges.map(u=>u.id);const l=[];if(i.width&&i.height)for(const u of i.edges){const a=i.nodeLookup.get(u.source),c=i.nodeLookup.get(u.target);a&&c&&Vw({sourceNode:a,targetNode:c,width:i.width,height:i.height,transform:i.transform})&&l.push(u.id)}return l},[t]),Ve)}const K_=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t}};return E.jsx("polyline",{className:"arrow",style:i,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},G_=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t,fill:t}};return E.jsx("polyline",{className:"arrowclosed",style:i,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Kh={[fl.Arrow]:K_,[fl.ArrowClosed]:G_};function q_(t){const r=De();return U.useMemo(()=>{var u,a;return Object.prototype.hasOwnProperty.call(Kh,t)?Kh[t]:((a=(u=r.getState()).onError)==null||a.call(u,"009",Yt.error009(t)),null)},[t])}const Z_=({id:t,type:r,color:i,width:l=12.5,height:u=12.5,markerUnits:a="strokeWidth",strokeWidth:c,orient:d="auto-start-reverse"})=>{const p=q_(r);return p?E.jsx("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${l}`,markerHeight:`${u}`,viewBox:"-10 -10 20 20",markerUnits:a,orient:d,refX:"0",refY:"0",children:E.jsx(p,{color:i,strokeWidth:c})}):null},$g=({defaultColor:t,rfId:r})=>{const i=Ie(a=>a.edges),l=Ie(a=>a.defaultEdgeOptions),u=U.useMemo(()=>Kw(i,{id:r,defaultColor:t,defaultMarkerStart:l==null?void 0:l.markerStart,defaultMarkerEnd:l==null?void 0:l.markerEnd}),[i,l,r,t]);return u.length?E.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:E.jsx("defs",{children:u.map(a=>E.jsx(Z_,{id:a.id,type:a.type,color:a.color,width:a.width,height:a.height,markerUnits:a.markerUnits,strokeWidth:a.strokeWidth,orient:a.orient},a.id))})}):null};$g.displayName="MarkerDefinitions";var J_=U.memo($g);function Og({x:t,y:r,label:i,labelStyle:l,labelShowBg:u=!0,labelBgStyle:a,labelBgPadding:c=[2,4],labelBgBorderRadius:d=2,children:p,className:g,...v}){const[y,m]=U.useState({x:1,y:0,width:0,height:0}),w=We(["react-flow__edge-textwrapper",g]),S=U.useRef(null);return U.useEffect(()=>{if(S.current){const P=S.current.getBBox();m({x:P.x,y:P.y,width:P.width,height:P.height})}},[i]),i?E.jsxs("g",{transform:`translate(${t-y.width/2} ${r-y.height/2})`,className:w,visibility:y.width?"visible":"hidden",...v,children:[u&&E.jsx("rect",{width:y.width+2*c[0],x:-c[0],y:-c[1],height:y.height+2*c[1],className:"react-flow__edge-textbg",style:a,rx:d,ry:d}),E.jsx("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:S,style:l,children:i}),p]}):null}Og.displayName="EdgeText";const eS=U.memo(Og);function Nl({path:t,labelX:r,labelY:i,label:l,labelStyle:u,labelShowBg:a,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:p,interactionWidth:g=20,...v}){return E.jsxs(E.Fragment,{children:[E.jsx("path",{...v,d:t,fill:"none",className:We(["react-flow__edge-path",v.className])}),g?E.jsx("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:g,className:"react-flow__edge-interaction"}):null,l&&Ut(r)&&Ut(i)?E.jsx(eS,{x:r,y:i,label:l,labelStyle:u,labelShowBg:a,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:p}):null]})}function Gh({pos:t,x1:r,y1:i,x2:l,y2:u}){return t===ve.Left||t===ve.Right?[.5*(r+l),i]:[r,.5*(i+u)]}function Fg({sourceX:t,sourceY:r,sourcePosition:i=ve.Bottom,targetX:l,targetY:u,targetPosition:a=ve.Top}){const[c,d]=Gh({pos:i,x1:t,y1:r,x2:l,y2:u}),[p,g]=Gh({pos:a,x1:l,y1:u,x2:t,y2:r}),[v,y,m,w]=lg({sourceX:t,sourceY:r,targetX:l,targetY:u,sourceControlX:c,sourceControlY:d,targetControlX:p,targetControlY:g});return[`M${t},${r} C${c},${d} ${p},${g} ${l},${u}`,v,y,m,w]}function Hg(t){return U.memo(({id:r,sourceX:i,sourceY:l,targetX:u,targetY:a,sourcePosition:c,targetPosition:d,label:p,labelStyle:g,labelShowBg:v,labelBgStyle:y,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:P,markerStart:N,interactionWidth:k})=>{const[j,_,I]=Fg({sourceX:i,sourceY:l,sourcePosition:c,targetX:u,targetY:a,targetPosition:d}),F=t.isInternal?void 0:r;return E.jsx(Nl,{id:F,path:j,labelX:_,labelY:I,label:p,labelStyle:g,labelShowBg:v,labelBgStyle:y,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:P,markerStart:N,interactionWidth:k})})}const tS=Hg({isInternal:!1}),Vg=Hg({isInternal:!0});tS.displayName="SimpleBezierEdge";Vg.displayName="SimpleBezierEdgeInternal";function bg(t){return U.memo(({id:r,sourceX:i,sourceY:l,targetX:u,targetY:a,label:c,labelStyle:d,labelShowBg:p,labelBgStyle:g,labelBgPadding:v,labelBgBorderRadius:y,style:m,sourcePosition:w=ve.Bottom,targetPosition:S=ve.Top,markerEnd:P,markerStart:N,pathOptions:k,interactionWidth:j})=>{const[_,I,F]=Ya({sourceX:i,sourceY:l,sourcePosition:w,targetX:u,targetY:a,targetPosition:S,borderRadius:k==null?void 0:k.borderRadius,offset:k==null?void 0:k.offset,stepPosition:k==null?void 0:k.stepPosition}),D=t.isInternal?void 0:r;return E.jsx(Nl,{id:D,path:_,labelX:I,labelY:F,label:c,labelStyle:d,labelShowBg:p,labelBgStyle:g,labelBgPadding:v,labelBgBorderRadius:y,style:m,markerEnd:P,markerStart:N,interactionWidth:j})})}const Bg=bg({isInternal:!1}),Ug=bg({isInternal:!0});Bg.displayName="SmoothStepEdge";Ug.displayName="SmoothStepEdgeInternal";function Wg(t){return U.memo(({id:r,...i})=>{var u;const l=t.isInternal?void 0:r;return E.jsx(Bg,{...i,id:l,pathOptions:U.useMemo(()=>{var a;return{borderRadius:0,offset:(a=i.pathOptions)==null?void 0:a.offset}},[(u=i.pathOptions)==null?void 0:u.offset])})})}const nS=Wg({isInternal:!1}),Yg=Wg({isInternal:!0});nS.displayName="StepEdge";Yg.displayName="StepEdgeInternal";function Xg(t){return U.memo(({id:r,sourceX:i,sourceY:l,targetX:u,targetY:a,label:c,labelStyle:d,labelShowBg:p,labelBgStyle:g,labelBgPadding:v,labelBgBorderRadius:y,style:m,markerEnd:w,markerStart:S,interactionWidth:P})=>{const[N,k,j]=cg({sourceX:i,sourceY:l,targetX:u,targetY:a}),_=t.isInternal?void 0:r;return E.jsx(Nl,{id:_,path:N,labelX:k,labelY:j,label:c,labelStyle:d,labelShowBg:p,labelBgStyle:g,labelBgPadding:v,labelBgBorderRadius:y,style:m,markerEnd:w,markerStart:S,interactionWidth:P})})}const rS=Xg({isInternal:!1}),Qg=Xg({isInternal:!0});rS.displayName="StraightEdge";Qg.displayName="StraightEdgeInternal";function Kg(t){return U.memo(({id:r,sourceX:i,sourceY:l,targetX:u,targetY:a,sourcePosition:c=ve.Bottom,targetPosition:d=ve.Top,label:p,labelStyle:g,labelShowBg:v,labelBgStyle:y,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:P,markerStart:N,pathOptions:k,interactionWidth:j})=>{const[_,I,F]=ug({sourceX:i,sourceY:l,sourcePosition:c,targetX:u,targetY:a,targetPosition:d,curvature:k==null?void 0:k.curvature}),D=t.isInternal?void 0:r;return E.jsx(Nl,{id:D,path:_,labelX:I,labelY:F,label:p,labelStyle:g,labelShowBg:v,labelBgStyle:y,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:P,markerStart:N,interactionWidth:j})})}const oS=Kg({isInternal:!1}),Gg=Kg({isInternal:!0});oS.displayName="BezierEdge";Gg.displayName="BezierEdgeInternal";const qh={default:Gg,straight:Qg,step:Yg,smoothstep:Ug,simplebezier:Vg},Zh={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},iS=(t,r,i)=>i===ve.Left?t-r:i===ve.Right?t+r:t,sS=(t,r,i)=>i===ve.Top?t-r:i===ve.Bottom?t+r:t,Jh="react-flow__edgeupdater";function ep({position:t,centerX:r,centerY:i,radius:l=10,onMouseDown:u,onMouseEnter:a,onMouseOut:c,type:d}){return E.jsx("circle",{onMouseDown:u,onMouseEnter:a,onMouseOut:c,className:We([Jh,`${Jh}-${d}`]),cx:iS(r,l,t),cy:sS(i,l,t),r:l,stroke:"transparent",fill:"transparent"})}function lS({isReconnectable:t,reconnectRadius:r,edge:i,sourceX:l,sourceY:u,targetX:a,targetY:c,sourcePosition:d,targetPosition:p,onReconnect:g,onReconnectStart:v,onReconnectEnd:y,setReconnecting:m,setUpdateHover:w}){const S=De(),P=(I,F)=>{if(I.button!==0)return;const{autoPanOnConnect:D,domNode:V,connectionMode:Q,connectionRadius:Y,lib:ee,onConnectStart:q,cancelConnection:J,nodeLookup:Z,rfId:C,panBy:b,updateConnection:H}=S.getState(),B=F.type==="target",z=(M,L)=>{m(!1),y==null||y(M,i,F.type,L)},A=M=>g==null?void 0:g(i,M),O=(M,L)=>{m(!0),v==null||v(I,i,F.type),q==null||q(M,L)};Ka.onPointerDown(I.nativeEvent,{autoPanOnConnect:D,connectionMode:Q,connectionRadius:Y,domNode:V,handleId:F.id,nodeId:F.nodeId,nodeLookup:Z,isTarget:B,edgeUpdaterType:F.type,lib:ee,flowId:C,cancelConnection:J,panBy:b,isValidConnection:(...M)=>{var L,te;return((te=(L=S.getState()).isValidConnection)==null?void 0:te.call(L,...M))??!0},onConnect:A,onConnectStart:O,onConnectEnd:(...M)=>{var L,te;return(te=(L=S.getState()).onConnectEnd)==null?void 0:te.call(L,...M)},onReconnectEnd:z,updateConnection:H,getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,dragThreshold:S.getState().connectionDragThreshold,handleDomNode:I.currentTarget})},N=I=>P(I,{nodeId:i.target,id:i.targetHandle??null,type:"target"}),k=I=>P(I,{nodeId:i.source,id:i.sourceHandle??null,type:"source"}),j=()=>w(!0),_=()=>w(!1);return E.jsxs(E.Fragment,{children:[(t===!0||t==="source")&&E.jsx(ep,{position:d,centerX:l,centerY:u,radius:r,onMouseDown:N,onMouseEnter:j,onMouseOut:_,type:"source"}),(t===!0||t==="target")&&E.jsx(ep,{position:p,centerX:a,centerY:c,radius:r,onMouseDown:k,onMouseEnter:j,onMouseOut:_,type:"target"})]})}function uS({id:t,edgesFocusable:r,edgesReconnectable:i,elementsSelectable:l,onClick:u,onDoubleClick:a,onContextMenu:c,onMouseEnter:d,onMouseMove:p,onMouseLeave:g,reconnectRadius:v,onReconnect:y,onReconnectStart:m,onReconnectEnd:w,rfId:S,edgeTypes:P,noPanClassName:N,onError:k,disableKeyboardA11y:j}){let _=Ie(ye=>ye.edgeLookup.get(t));const I=Ie(ye=>ye.defaultEdgeOptions);_=I?{...I,..._}:_;let F=_.type||"default",D=(P==null?void 0:P[F])||qh[F];D===void 0&&(k==null||k("011",Yt.error011(F)),F="default",D=(P==null?void 0:P.default)||qh.default);const V=!!(_.focusable||r&&typeof _.focusable>"u"),Q=typeof y<"u"&&(_.reconnectable||i&&typeof _.reconnectable>"u"),Y=!!(_.selectable||l&&typeof _.selectable>"u"),ee=U.useRef(null),[q,J]=U.useState(!1),[Z,C]=U.useState(!1),b=De(),{zIndex:H=_.zIndex,sourceX:B,sourceY:z,targetX:A,targetY:O,sourcePosition:M,targetPosition:L}=Ie(U.useCallback(ye=>{const we=ye.nodeLookup.get(_.source),ke=ye.nodeLookup.get(_.target);if(!we||!ke)return Zh;const Ne=Qw({id:t,sourceNode:we,targetNode:ke,sourceHandle:_.sourceHandle||null,targetHandle:_.targetHandle||null,connectionMode:ye.connectionMode,onError:k}),Me=Hw({selected:_.selected,zIndex:_.zIndex,sourceNode:we,targetNode:ke,elevateOnSelect:ye.elevateEdgesOnSelect,zIndexMode:ye.zIndexMode});return{...Ne||Zh,zIndex:Me}},[_.source,_.target,_.sourceHandle,_.targetHandle,_.selected,_.zIndex,k]),Ve),te=U.useMemo(()=>_.markerStart?`url('#${Xa(_.markerStart,S)}')`:void 0,[_.markerStart,S]),re=U.useMemo(()=>_.markerEnd?`url('#${Xa(_.markerEnd,S)}')`:void 0,[_.markerEnd,S]);if(_.hidden||B===null||z===null||A===null||O===null)return null;const ue=ye=>{var Me;const{addSelectedEdges:we,unselectNodesAndEdges:ke,multiSelectionActive:Ne}=b.getState();Y&&(b.setState({nodesSelectionActive:!1}),_.selected&&Ne?(ke({nodes:[],edges:[_]}),(Me=ee.current)==null||Me.blur()):we([t])),u&&u(ye,_)},ce=a?ye=>{a(ye,{..._})}:void 0,ae=c?ye=>{c(ye,{..._})}:void 0,G=d?ye=>{d(ye,{..._})}:void 0,se=p?ye=>{p(ye,{..._})}:void 0,pe=g?ye=>{g(ye,{..._})}:void 0,xe=ye=>{var we;if(!j&&Yp.includes(ye.key)&&Y){const{unselectNodesAndEdges:ke,addSelectedEdges:Ne}=b.getState();ye.key==="Escape"?((we=ee.current)==null||we.blur(),ke({edges:[_]})):Ne([t])}};return E.jsx("svg",{style:{zIndex:H},children:E.jsxs("g",{className:We(["react-flow__edge",`react-flow__edge-${F}`,_.className,N,{selected:_.selected,animated:_.animated,inactive:!Y&&!u,updating:q,selectable:Y}]),onClick:ue,onDoubleClick:ce,onContextMenu:ae,onMouseEnter:G,onMouseMove:se,onMouseLeave:pe,onKeyDown:V?xe:void 0,tabIndex:V?0:void 0,role:_.ariaRole??(V?"group":"img"),"aria-roledescription":"edge","data-id":t,"data-testid":`rf__edge-${t}`,"aria-label":_.ariaLabel===null?void 0:_.ariaLabel||`Edge from ${_.source} to ${_.target}`,"aria-describedby":V?`${Ng}-${S}`:void 0,ref:ee,..._.domAttributes,children:[!Z&&E.jsx(D,{id:t,source:_.source,target:_.target,type:_.type,selected:_.selected,animated:_.animated,selectable:Y,deletable:_.deletable??!0,label:_.label,labelStyle:_.labelStyle,labelShowBg:_.labelShowBg,labelBgStyle:_.labelBgStyle,labelBgPadding:_.labelBgPadding,labelBgBorderRadius:_.labelBgBorderRadius,sourceX:B,sourceY:z,targetX:A,targetY:O,sourcePosition:M,targetPosition:L,data:_.data,style:_.style,sourceHandleId:_.sourceHandle,targetHandleId:_.targetHandle,markerStart:te,markerEnd:re,pathOptions:"pathOptions"in _?_.pathOptions:void 0,interactionWidth:_.interactionWidth}),Q&&E.jsx(lS,{edge:_,isReconnectable:Q,reconnectRadius:v,onReconnect:y,onReconnectStart:m,onReconnectEnd:w,sourceX:B,sourceY:z,targetX:A,targetY:O,sourcePosition:M,targetPosition:L,setUpdateHover:J,setReconnecting:C})]})})}var aS=U.memo(uS);const cS=t=>({edgesFocusable:t.edgesFocusable,edgesReconnectable:t.edgesReconnectable,elementsSelectable:t.elementsSelectable,connectionMode:t.connectionMode,onError:t.onError});function qg({defaultMarkerColor:t,onlyRenderVisibleElements:r,rfId:i,edgeTypes:l,noPanClassName:u,onReconnect:a,onEdgeContextMenu:c,onEdgeMouseEnter:d,onEdgeMouseMove:p,onEdgeMouseLeave:g,onEdgeClick:v,reconnectRadius:y,onEdgeDoubleClick:m,onReconnectStart:w,onReconnectEnd:S,disableKeyboardA11y:P}){const{edgesFocusable:N,edgesReconnectable:k,elementsSelectable:j,onError:_}=Ie(cS,Ve),I=Q_(r);return E.jsxs("div",{className:"react-flow__edges",children:[E.jsx(J_,{defaultColor:t,rfId:i}),I.map(F=>E.jsx(aS,{id:F,edgesFocusable:N,edgesReconnectable:k,elementsSelectable:j,noPanClassName:u,onReconnect:a,onContextMenu:c,onMouseEnter:d,onMouseMove:p,onMouseLeave:g,onClick:v,reconnectRadius:y,onDoubleClick:m,onReconnectStart:w,onReconnectEnd:S,rfId:i,onError:_,edgeTypes:l,disableKeyboardA11y:P},F))]})}qg.displayName="EdgeRenderer";const fS=U.memo(qg),tp=t=>`translate(${t[0]}px,${t[1]}px) scale(${t[2]})`;function dS({children:t}){const r=De(),i=U.useRef(null),[l]=U.useState(()=>r.getState().transform);return Ig(()=>{let u=null;const a=()=>{const c=r.getState().transform;u&&c[0]===u[0]&&c[1]===u[1]&&c[2]===u[2]||(u=c,i.current&&(i.current.style.transform=tp(c)))};return a(),r.subscribe(a)},[r]),E.jsx("div",{ref:i,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:tp(l)},children:t})}function hS(t){const r=gc(),i=U.useRef(!1);U.useEffect(()=>{!i.current&&r.viewportInitialized&&t&&(setTimeout(()=>t(r),1),i.current=!0)},[t,r.viewportInitialized])}const pS=t=>{var r;return(r=t.panZoom)==null?void 0:r.syncViewport};function gS(t){const r=Ie(pS),i=De();return U.useEffect(()=>{t&&(r==null||r(t),i.setState({transform:[t.x,t.y,t.zoom]}))},[t,r]),null}function mS(t){return t.connection.inProgress?{...t.connection,to:ki(t.connection.to,t.transform)}:{...t.connection}}function yS(t){return mS}function vS(t){const r=yS();return Ie(r,Ve)}const xS=t=>({nodesConnectable:t.nodesConnectable,isValid:t.connection.isValid,inProgress:t.connection.inProgress,width:t.width,height:t.height});function wS({containerStyle:t,style:r,type:i,component:l}){const{nodesConnectable:u,width:a,height:c,isValid:d,inProgress:p}=Ie(xS,Ve);return!(a&&u&&p)?null:E.jsx("svg",{style:t,width:a,height:c,className:"react-flow__connectionline react-flow__container",children:E.jsx("g",{className:We(["react-flow__connection",rg(d)]),children:E.jsx(Zg,{style:r,type:i,CustomComponent:l,isValid:d})})})}const Zg=({style:t,type:r=Un.Bezier,CustomComponent:i,isValid:l})=>{const{inProgress:u,from:a,fromNode:c,fromHandle:d,fromPosition:p,to:g,toNode:v,toHandle:y,toPosition:m,pointer:w}=vS();if(!u)return;if(i)return E.jsx(i,{connectionLineType:r,connectionLineStyle:t,fromNode:c,fromHandle:d,fromX:a.x,fromY:a.y,toX:g.x,toY:g.y,fromPosition:p,toPosition:m,connectionStatus:rg(l),toNode:v,toHandle:y,pointer:w});let S="";const P={sourceX:a.x,sourceY:a.y,sourcePosition:p,targetX:g.x,targetY:g.y,targetPosition:m};switch(r){case Un.Bezier:[S]=ug(P);break;case Un.SimpleBezier:[S]=Fg(P);break;case Un.Step:[S]=Ya({...P,borderRadius:0});break;case Un.SmoothStep:[S]=Ya(P);break;default:[S]=cg(P)}return E.jsx("path",{d:S,fill:"none",className:"react-flow__connection-path",style:t})};Zg.displayName="ConnectionLine";const _S={};function np(t=_S){U.useRef(t),De(),U.useEffect(()=>{},[t])}function SS(){De(),U.useRef(!1),U.useEffect(()=>{},[])}function Jg({nodeTypes:t,edgeTypes:r,onInit:i,onNodeClick:l,onEdgeClick:u,onNodeDoubleClick:a,onEdgeDoubleClick:c,onNodeMouseEnter:d,onNodeMouseMove:p,onNodeMouseLeave:g,onNodeContextMenu:v,onSelectionContextMenu:y,onSelectionStart:m,onSelectionEnd:w,connectionLineType:S,connectionLineStyle:P,connectionLineComponent:N,connectionLineContainerStyle:k,selectionKeyCode:j,selectionOnDrag:_,selectionMode:I,multiSelectionKeyCode:F,panActivationKeyCode:D,zoomActivationKeyCode:V,deleteKeyCode:Q,onlyRenderVisibleElements:Y,elementsSelectable:ee,defaultViewport:q,translateExtent:J,minZoom:Z,maxZoom:C,preventScrolling:b,defaultMarkerColor:H,zoomOnScroll:B,zoomOnPinch:z,panOnScroll:A,panOnScrollSpeed:O,panOnScrollMode:M,zoomOnDoubleClick:L,panOnDrag:te,autoPanOnSelection:re,onPaneClick:ue,onPaneMouseEnter:ce,onPaneMouseMove:ae,onPaneMouseLeave:G,onPaneScroll:se,onPaneContextMenu:pe,paneClickDistance:xe,nodeClickDistance:ye,onEdgeContextMenu:we,onEdgeMouseEnter:ke,onEdgeMouseMove:Ne,onEdgeMouseLeave:Me,reconnectRadius:ze,onReconnect:st,onReconnectStart:at,onReconnectEnd:et,noDragClassName:tt,noWheelClassName:sn,noPanClassName:Kt,disableKeyboardA11y:Gt,nodeExtent:ct,rfId:Pt,viewport:vt,onViewportChange:It,nodesDraggable:Sr}){return np(t),np(r),SS(),hS(i),gS(vt),E.jsx(O_,{onPaneClick:ue,onPaneMouseEnter:ce,onPaneMouseMove:ae,onPaneMouseLeave:G,onPaneContextMenu:pe,onPaneScroll:se,paneClickDistance:xe,deleteKeyCode:Q,selectionKeyCode:j,selectionOnDrag:_,selectionMode:I,onSelectionStart:m,onSelectionEnd:w,multiSelectionKeyCode:F,panActivationKeyCode:D,zoomActivationKeyCode:V,elementsSelectable:ee,zoomOnScroll:B,zoomOnPinch:z,zoomOnDoubleClick:L,panOnScroll:A,panOnScrollSpeed:O,panOnScrollMode:M,panOnDrag:te,autoPanOnSelection:re,defaultViewport:q,translateExtent:J,minZoom:Z,maxZoom:C,onSelectionContextMenu:y,preventScrolling:b,noDragClassName:tt,noWheelClassName:sn,noPanClassName:Kt,disableKeyboardA11y:Gt,onViewportChange:It,isControlledViewport:!!vt,children:E.jsxs(dS,{children:[E.jsx(fS,{edgeTypes:r,onEdgeClick:u,onEdgeDoubleClick:c,onReconnect:st,onReconnectStart:at,onReconnectEnd:et,onlyRenderVisibleElements:Y,onEdgeContextMenu:we,onEdgeMouseEnter:ke,onEdgeMouseMove:Ne,onEdgeMouseLeave:Me,reconnectRadius:ze,defaultMarkerColor:H,noPanClassName:Kt,disableKeyboardA11y:Gt,rfId:Pt}),E.jsx(wS,{style:P,type:S,component:N,containerStyle:k}),E.jsx("div",{className:"react-flow__edgelabel-renderer"}),E.jsx(X_,{nodeTypes:t,onNodeClick:l,onNodeDoubleClick:a,onNodeMouseEnter:d,onNodeMouseMove:p,onNodeMouseLeave:g,onNodeContextMenu:v,nodeClickDistance:ye,onlyRenderVisibleElements:Y,noPanClassName:Kt,noDragClassName:tt,disableKeyboardA11y:Gt,nodeExtent:ct,rfId:Pt,nodesDraggable:Sr}),E.jsx("div",{className:"react-flow__viewport-portal"})]})})}Jg.displayName="GraphView";const kS=U.memo(Jg),ES=eg(),rp=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:u,height:a,fitView:c,fitViewOptions:d,minZoom:p=.5,maxZoom:g=2,nodeOrigin:v,nodeExtent:y,zIndexMode:m="basic"}={})=>{const w=new Map,S=new Map,P=new Map,N=new Map,k=l??r??[],j=i??t??[],_=v??[0,0],I=y??di;hg(P,N,k);const{nodesInitialized:F}=Qa(j,w,S,{nodeOrigin:_,nodeExtent:I,zIndexMode:m});let D=[0,0,1];if(c&&u&&a){const V=_i(w,{filter:q=>!!((q.width||q.initialWidth)&&(q.height||q.initialHeight))}),{x:Q,y:Y,zoom:ee}=uc(V,u,a,p,g,(d==null?void 0:d.padding)??.1);D=[Q,Y,ee]}return{rfId:"1",width:u??0,height:a??0,transform:D,nodes:j,nodesInitialized:F,nodeLookup:w,parentLookup:S,edges:k,edgeLookup:N,connectionLookup:P,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:i!==void 0,hasDefaultEdges:l!==void 0,panZoom:null,minZoom:p,maxZoom:g,translateExtent:di,nodeExtent:I,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:oo.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:_,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:c??!1,fitViewOptions:d,fitViewResolver:null,connection:{...Qp},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ES,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Xp,zIndexMode:m,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}},NS=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:u,height:a,fitView:c,fitViewOptions:d,minZoom:p,maxZoom:g,nodeOrigin:v,nodeExtent:y,zIndexMode:m})=>$1((w,S)=>{async function P(){const{nodeLookup:N,panZoom:k,fitViewOptions:j,fitViewResolver:_,width:I,height:F,minZoom:D,maxZoom:V}=S();k&&(await Aw({nodes:N,width:I,height:F,panZoom:k,minZoom:D,maxZoom:V},j),_==null||_.resolve(!0),w({fitViewResolver:null}))}return{...rp({nodes:t,edges:r,width:u,height:a,fitView:c,fitViewOptions:d,minZoom:p,maxZoom:g,nodeOrigin:v,nodeExtent:y,defaultNodes:i,defaultEdges:l,zIndexMode:m}),setNodes:N=>{const{nodeLookup:k,parentLookup:j,nodeOrigin:_,nodeExtent:I,elevateNodesOnSelect:F,fitViewQueued:D,zIndexMode:V,nodesSelectionActive:Q}=S(),{nodesInitialized:Y,hasSelectedNodes:ee}=Qa(N,k,j,{nodeOrigin:_,nodeExtent:I,elevateNodesOnSelect:F,checkEquality:!0,zIndexMode:V}),q=Q&ⅇD&&Y?(P(),w({nodes:N,nodesInitialized:Y,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:q})):w({nodes:N,nodesInitialized:Y,nodesSelectionActive:q})},setEdges:N=>{const{connectionLookup:k,edgeLookup:j}=S();hg(k,j,N),w({edges:N})},setDefaultNodesAndEdges:(N,k)=>{if(N){const{setNodes:j}=S();j(N),w({hasDefaultNodes:!0})}if(k){const{setEdges:j}=S();j(k),w({hasDefaultEdges:!0})}},updateNodeInternals:N=>{const{triggerNodeChanges:k,nodeLookup:j,parentLookup:_,domNode:I,nodeOrigin:F,nodeExtent:D,debug:V,fitViewQueued:Q,zIndexMode:Y}=S(),{changes:ee,updatedInternals:q}=n1(N,j,_,I,F,D,Y);q&&(Zw(j,_,{nodeOrigin:F,nodeExtent:D,zIndexMode:Y}),Q?(P(),w({fitViewQueued:!1,fitViewOptions:void 0})):w({}),(ee==null?void 0:ee.length)>0&&(V&&console.log("React Flow: trigger node changes",ee),k==null||k(ee)))},updateNodePositions:(N,k=!1)=>{const j=[];let _=[];const{nodeLookup:I,triggerNodeChanges:F,connection:D,updateConnection:V,onNodesChangeMiddlewareMap:Q}=S();for(const[Y,ee]of N){const q=I.get(Y),J=!!(q!=null&&q.expandParent&&(q!=null&&q.parentId)&&(ee!=null&&ee.position)),Z={id:Y,type:"position",position:J?{x:Math.max(0,ee.position.x),y:Math.max(0,ee.position.y)}:ee.position,dragging:k};if(q&&D.inProgress&&D.fromNode.id===q.id){const C=_r(q,D.fromHandle,ve.Left,!0);V({...D,from:C})}J&&q.parentId&&j.push({id:Y,parentId:q.parentId,rect:{...ee.internals.positionAbsolute,width:ee.measured.width??0,height:ee.measured.height??0}}),_.push(Z)}if(j.length>0){const{parentLookup:Y,nodeOrigin:ee}=S(),q=pc(j,I,Y,ee);_.push(...q)}for(const Y of Q.values())_=Y(_);F(_)},triggerNodeChanges:N=>{const{onNodesChange:k,setNodes:j,nodes:_,hasDefaultNodes:I,debug:F}=S();if(N!=null&&N.length){if(I){const D=o_(N,_);j(D)}F&&console.log("React Flow: trigger node changes",N),k==null||k(N)}},triggerEdgeChanges:N=>{const{onEdgesChange:k,setEdges:j,edges:_,hasDefaultEdges:I,debug:F}=S();if(N!=null&&N.length){if(I){const D=i_(N,_);j(D)}F&&console.log("React Flow: trigger edge changes",N),k==null||k(N)}},addSelectedNodes:N=>{const{multiSelectionActive:k,edgeLookup:j,nodeLookup:_,triggerNodeChanges:I,triggerEdgeChanges:F}=S();if(k){const D=N.map(V=>dr(V,!0));I(D);return}I(Jr(_,new Set([...N]),!0)),F(Jr(j))},addSelectedEdges:N=>{const{multiSelectionActive:k,edgeLookup:j,nodeLookup:_,triggerNodeChanges:I,triggerEdgeChanges:F}=S();if(k){const D=N.map(V=>dr(V,!0));F(D);return}F(Jr(j,new Set([...N]))),I(Jr(_,new Set,!0))},unselectNodesAndEdges:({nodes:N,edges:k}={})=>{const{edges:j,nodes:_,nodeLookup:I,triggerNodeChanges:F,triggerEdgeChanges:D}=S(),V=N||_,Q=k||j,Y=[];for(const q of V){if(!q.selected)continue;const J=I.get(q.id);J&&(J.selected=!1),Y.push(dr(q.id,!1))}const ee=[];for(const q of Q)q.selected&&ee.push(dr(q.id,!1));F(Y),D(ee)},setMinZoom:N=>{const{panZoom:k,maxZoom:j}=S();k==null||k.setScaleExtent([N,j]),w({minZoom:N})},setMaxZoom:N=>{const{panZoom:k,minZoom:j}=S();k==null||k.setScaleExtent([j,N]),w({maxZoom:N})},setTranslateExtent:N=>{var k;(k=S().panZoom)==null||k.setTranslateExtent(N),w({translateExtent:N})},resetSelectedElements:()=>{const{edges:N,nodes:k,triggerNodeChanges:j,triggerEdgeChanges:_,elementsSelectable:I}=S();if(!I)return;const F=k.reduce((V,Q)=>Q.selected?[...V,dr(Q.id,!1)]:V,[]),D=N.reduce((V,Q)=>Q.selected?[...V,dr(Q.id,!1)]:V,[]);j(F),_(D)},setNodeExtent:N=>{const{nodes:k,nodeLookup:j,parentLookup:_,nodeOrigin:I,elevateNodesOnSelect:F,nodeExtent:D,zIndexMode:V}=S();N[0][0]===D[0][0]&&N[0][1]===D[0][1]&&N[1][0]===D[1][0]&&N[1][1]===D[1][1]||(Qa(k,j,_,{nodeOrigin:I,nodeExtent:N,elevateNodesOnSelect:F,checkEquality:!1,zIndexMode:V}),w({nodeExtent:N}))},panBy:N=>{const{transform:k,width:j,height:_,panZoom:I,translateExtent:F}=S();return r1({delta:N,panZoom:I,transform:k,translateExtent:F,width:j,height:_})},setCenter:async(N,k,j)=>{const{width:_,height:I,maxZoom:F,panZoom:D}=S();if(!D)return!1;const V=typeof(j==null?void 0:j.zoom)<"u"?j.zoom:F;return await D.setViewport({x:_/2-N*V,y:I/2-k*V,zoom:V},{duration:j==null?void 0:j.duration,ease:j==null?void 0:j.ease,interpolate:j==null?void 0:j.interpolate}),!0},cancelConnection:()=>{w({connection:{...Qp}})},updateConnection:N=>{w({connection:N})},reset:()=>w({...rp()})}},Object.is);function CS({initialNodes:t,initialEdges:r,defaultNodes:i,defaultEdges:l,initialWidth:u,initialHeight:a,initialMinZoom:c,initialMaxZoom:d,initialFitViewOptions:p,fitView:g,nodeOrigin:v,nodeExtent:y,zIndexMode:m,children:w}){const[S]=U.useState(()=>NS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:u,height:a,fitView:g,minZoom:c,maxZoom:d,fitViewOptions:p,nodeOrigin:v,nodeExtent:y,zIndexMode:m}));return E.jsx(O1,{value:S,children:E.jsx(c_,{children:E.jsx(N_,{children:w})})})}function MS({children:t,nodes:r,edges:i,defaultNodes:l,defaultEdges:u,width:a,height:c,fitView:d,fitViewOptions:p,minZoom:g,maxZoom:v,nodeOrigin:y,nodeExtent:m,zIndexMode:w}){return U.useContext(kl)?E.jsx(E.Fragment,{children:t}):E.jsx(CS,{initialNodes:r,initialEdges:i,defaultNodes:l,defaultEdges:u,initialWidth:a,initialHeight:c,fitView:d,initialFitViewOptions:p,initialMinZoom:g,initialMaxZoom:v,nodeOrigin:y,nodeExtent:m,zIndexMode:w,children:t})}const PS={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function IS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,className:u,nodeTypes:a,edgeTypes:c,onNodeClick:d,onEdgeClick:p,onInit:g,onMove:v,onMoveStart:y,onMoveEnd:m,onConnect:w,onConnectStart:S,onConnectEnd:P,onClickConnectStart:N,onClickConnectEnd:k,onNodeMouseEnter:j,onNodeMouseMove:_,onNodeMouseLeave:I,onNodeContextMenu:F,onNodeDoubleClick:D,onNodeDragStart:V,onNodeDrag:Q,onNodeDragStop:Y,onNodesDelete:ee,onEdgesDelete:q,onDelete:J,onSelectionChange:Z,onSelectionDragStart:C,onSelectionDrag:b,onSelectionDragStop:H,onSelectionContextMenu:B,onSelectionStart:z,onSelectionEnd:A,onBeforeDelete:O,connectionMode:M,connectionLineType:L=Un.Bezier,connectionLineStyle:te,connectionLineComponent:re,connectionLineContainerStyle:ue,deleteKeyCode:ce="Backspace",selectionKeyCode:ae="Shift",selectionOnDrag:G=!1,selectionMode:se=hi.Full,panActivationKeyCode:pe="Space",multiSelectionKeyCode:xe=gi()?"Meta":"Control",zoomActivationKeyCode:ye=gi()?"Meta":"Control",snapToGrid:we,snapGrid:ke,onlyRenderVisibleElements:Ne=!1,selectNodesOnDrag:Me,nodesDraggable:ze,autoPanOnNodeFocus:st,nodesConnectable:at,nodesFocusable:et,nodeOrigin:tt=Cg,edgesFocusable:sn,edgesReconnectable:Kt,elementsSelectable:Gt=!0,defaultViewport:ct=q1,minZoom:Pt=.5,maxZoom:vt=2,translateExtent:It=di,preventScrolling:Sr=!0,nodeExtent:ln,defaultMarkerColor:Xn="#b1b1b7",zoomOnScroll:Cl=!0,zoomOnPinch:Ci=!0,panOnScroll:Mi=!1,panOnScrollSpeed:Ml=.5,panOnScrollMode:ao=gr.Free,zoomOnDoubleClick:co=!0,panOnDrag:fo=!0,onPaneClick:ho,onPaneMouseEnter:po,onPaneMouseMove:wn,onPaneMouseLeave:_n,onPaneScroll:Pi,onPaneContextMenu:Ii,paneClickDistance:Ti=1,nodeClickDistance:zi=0,children:ji,onReconnect:go,onReconnectStart:Ai,onReconnectEnd:Qn,onEdgeContextMenu:mo,onEdgeDoubleClick:Kn,onEdgeMouseEnter:Pl,onEdgeMouseMove:Gn,onEdgeMouseLeave:kr,reconnectRadius:Er=10,onNodesChange:yo,onEdgesChange:Il,noDragClassName:Tl="nodrag",noWheelClassName:zl="nowheel",noPanClassName:qt="nopan",fitView:vo,fitViewOptions:xo,connectOnClick:jl,attributionPosition:Li,proOptions:Ri,defaultEdgeOptions:Di,elevateNodesOnSelect:$i=!0,elevateEdgesOnSelect:Al=!1,disableKeyboardA11y:Oi=!1,autoPanOnConnect:Oe,autoPanOnNodeDrag:Ll,autoPanOnSelection:wo=!0,autoPanSpeed:Fi,connectionRadius:Nr,isValidConnection:Rl,onError:Hi,style:Cr,id:xt,nodeDragThreshold:Dl,connectionDragThreshold:wt,viewport:$l,onViewportChange:Ol,width:Fl,height:Mr,colorMode:Pr="light",debug:qn,onScroll:un,ariaLabelConfig:Hl,zIndexMode:Vi="basic",..._o},bi){const Zn=xt||"1",Jn=t_(Pr),Vl=U.useCallback(Ir=>{Ir.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),un==null||un(Ir)},[un]);return E.jsx("div",{"data-testid":"rf__wrapper",..._o,onScroll:Vl,style:{...Cr,...PS},ref:bi,className:We(["react-flow",u,Jn]),id:xt,role:"application",children:E.jsxs(MS,{nodes:t,edges:r,width:Fl,height:Mr,fitView:vo,fitViewOptions:xo,minZoom:Pt,maxZoom:vt,nodeOrigin:tt,nodeExtent:ln,zIndexMode:Vi,children:[E.jsx(e_,{nodes:t,edges:r,defaultNodes:i,defaultEdges:l,onConnect:w,onConnectStart:S,onConnectEnd:P,onClickConnectStart:N,onClickConnectEnd:k,nodesDraggable:ze,autoPanOnNodeFocus:st,nodesConnectable:at,nodesFocusable:et,edgesFocusable:sn,edgesReconnectable:Kt,elementsSelectable:Gt,elevateNodesOnSelect:$i,elevateEdgesOnSelect:Al,minZoom:Pt,maxZoom:vt,nodeExtent:ln,onNodesChange:yo,onEdgesChange:Il,snapToGrid:we,snapGrid:ke,connectionMode:M,translateExtent:It,connectOnClick:jl,defaultEdgeOptions:Di,fitView:vo,fitViewOptions:xo,onNodesDelete:ee,onEdgesDelete:q,onDelete:J,onNodeDragStart:V,onNodeDrag:Q,onNodeDragStop:Y,onSelectionDrag:b,onSelectionDragStart:C,onSelectionDragStop:H,onMove:v,onMoveStart:y,onMoveEnd:m,noPanClassName:qt,nodeOrigin:tt,rfId:Zn,autoPanOnConnect:Oe,autoPanOnNodeDrag:Ll,autoPanSpeed:Fi,onError:Hi,connectionRadius:Nr,isValidConnection:Rl,selectNodesOnDrag:Me,nodeDragThreshold:Dl,connectionDragThreshold:wt,onBeforeDelete:O,debug:qn,ariaLabelConfig:Hl,zIndexMode:Vi}),E.jsx(kS,{onInit:g,onNodeClick:d,onEdgeClick:p,onNodeMouseEnter:j,onNodeMouseMove:_,onNodeMouseLeave:I,onNodeContextMenu:F,onNodeDoubleClick:D,nodeTypes:a,edgeTypes:c,connectionLineType:L,connectionLineStyle:te,connectionLineComponent:re,connectionLineContainerStyle:ue,selectionKeyCode:ae,selectionOnDrag:G,selectionMode:se,deleteKeyCode:ce,multiSelectionKeyCode:xe,panActivationKeyCode:pe,zoomActivationKeyCode:ye,onlyRenderVisibleElements:Ne,defaultViewport:ct,translateExtent:It,minZoom:Pt,maxZoom:vt,preventScrolling:Sr,zoomOnScroll:Cl,zoomOnPinch:Ci,zoomOnDoubleClick:co,panOnScroll:Mi,panOnScrollSpeed:Ml,panOnScrollMode:ao,panOnDrag:fo,autoPanOnSelection:wo,onPaneClick:ho,onPaneMouseEnter:po,onPaneMouseMove:wn,onPaneMouseLeave:_n,onPaneScroll:Pi,onPaneContextMenu:Ii,paneClickDistance:Ti,nodeClickDistance:zi,onSelectionContextMenu:B,onSelectionStart:z,onSelectionEnd:A,onReconnect:go,onReconnectStart:Ai,onReconnectEnd:Qn,onEdgeContextMenu:mo,onEdgeDoubleClick:Kn,onEdgeMouseEnter:Pl,onEdgeMouseMove:Gn,onEdgeMouseLeave:kr,reconnectRadius:Er,defaultMarkerColor:Xn,noDragClassName:Tl,noWheelClassName:zl,noPanClassName:qt,rfId:Zn,disableKeyboardA11y:Oi,nodeExtent:ln,viewport:$l,onViewportChange:Ol,nodesDraggable:ze}),E.jsx(G1,{onSelectionChange:Z}),ji,E.jsx(W1,{proOptions:Ri,position:Li}),E.jsx(U1,{rfId:Zn,disableKeyboardA11y:Oi})]})})}var TS=Pg(IS);function zS({dimensions:t,lineWidth:r,variant:i,className:l}){return E.jsx("path",{strokeWidth:r,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`,className:We(["react-flow__background-pattern",i,l])})}function jS({radius:t,className:r}){return E.jsx("circle",{cx:t,cy:t,r:t,className:We(["react-flow__background-pattern","dots",r])})}var Yn;(function(t){t.Lines="lines",t.Dots="dots",t.Cross="cross"})(Yn||(Yn={}));const AS={[Yn.Dots]:1,[Yn.Lines]:1,[Yn.Cross]:6},LS=t=>({transform:t.transform,patternId:`pattern-${t.rfId}`});function em({id:t,variant:r=Yn.Dots,gap:i=20,size:l,lineWidth:u=1,offset:a=0,color:c,bgColor:d,style:p,className:g,patternClassName:v}){const y=U.useRef(null),{transform:m,patternId:w}=Ie(LS,Ve),S=l||AS[r],P=r===Yn.Dots,N=r===Yn.Cross,k=Array.isArray(i)?i:[i,i],j=[k[0]*m[2]||1,k[1]*m[2]||1],_=S*m[2],I=Array.isArray(a)?a:[a,a],F=N?[_,_]:j,D=[I[0]*m[2]+F[0]/2,I[1]*m[2]+F[1]/2],V=`${w}${t||""}`;return E.jsxs("svg",{className:We(["react-flow__background",g]),style:{...p,...El,"--xy-background-color-props":d,"--xy-background-pattern-color-props":c},ref:y,"data-testid":"rf__background",children:[E.jsx("pattern",{id:V,x:m[0]%j[0],y:m[1]%j[1],width:j[0],height:j[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${D[0]},-${D[1]})`,children:P?E.jsx(jS,{radius:_/2,className:v}):E.jsx(zS,{dimensions:F,lineWidth:u,variant:r,className:v})}),E.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${V})`})]})}em.displayName="Background";const RS=U.memo(em);function DS(){return E.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:E.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function $S(){return E.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:E.jsx("path",{d:"M0 0h32v4.2H0z"})})}function OS(){return E.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:E.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function FS(){return E.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:E.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function HS(){return E.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:E.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Zs({children:t,className:r,...i}){return E.jsx("button",{type:"button",className:We(["react-flow__controls-button",r]),...i,children:t})}const VS=t=>({isInteractive:t.nodesDraggable||t.nodesConnectable||t.elementsSelectable,minZoomReached:t.transform[2]<=t.minZoom,maxZoomReached:t.transform[2]>=t.maxZoom,ariaLabelConfig:t.ariaLabelConfig});function tm({style:t,showZoom:r=!0,showFitView:i=!0,showInteractive:l=!0,fitViewOptions:u,onZoomIn:a,onZoomOut:c,onFitView:d,onInteractiveChange:p,className:g,children:v,position:y="bottom-left",orientation:m="vertical","aria-label":w}){const S=De(),{isInteractive:P,minZoomReached:N,maxZoomReached:k,ariaLabelConfig:j}=Ie(VS,Ve),{zoomIn:_,zoomOut:I,fitView:F}=gc(),D=()=>{_(),a==null||a()},V=()=>{I(),c==null||c()},Q=()=>{F(u),d==null||d()},Y=()=>{S.setState({nodesDraggable:!P,nodesConnectable:!P,elementsSelectable:!P}),p==null||p(!P)},ee=m==="horizontal"?"horizontal":"vertical";return E.jsxs(Ei,{className:We(["react-flow__controls",ee,g]),position:y,style:t,"data-testid":"rf__controls","aria-label":w??j["controls.ariaLabel"],children:[r&&E.jsxs(E.Fragment,{children:[E.jsx(Zs,{onClick:D,className:"react-flow__controls-zoomin",title:j["controls.zoomIn.ariaLabel"],"aria-label":j["controls.zoomIn.ariaLabel"],disabled:k,children:E.jsx(DS,{})}),E.jsx(Zs,{onClick:V,className:"react-flow__controls-zoomout",title:j["controls.zoomOut.ariaLabel"],"aria-label":j["controls.zoomOut.ariaLabel"],disabled:N,children:E.jsx($S,{})})]}),i&&E.jsx(Zs,{className:"react-flow__controls-fitview",onClick:Q,title:j["controls.fitView.ariaLabel"],"aria-label":j["controls.fitView.ariaLabel"],children:E.jsx(OS,{})}),l&&E.jsx(Zs,{className:"react-flow__controls-interactive",onClick:Y,title:j["controls.interactive.ariaLabel"],"aria-label":j["controls.interactive.ariaLabel"],children:P?E.jsx(HS,{}):E.jsx(FS,{})}),v]})}tm.displayName="Controls";const bS=U.memo(tm);function BS({id:t,x:r,y:i,width:l,height:u,style:a,color:c,strokeColor:d,strokeWidth:p,className:g,borderRadius:v,shapeRendering:y,selected:m,onClick:w}){const{background:S,backgroundColor:P}=a||{},N=c||S||P;return E.jsx("rect",{className:We(["react-flow__minimap-node",{selected:m},g]),x:r,y:i,rx:v,ry:v,width:l,height:u,style:{fill:N,stroke:d,strokeWidth:p},shapeRendering:y,onClick:w?k=>w(k,t):void 0})}const US=U.memo(BS),WS=t=>t.nodes.map(r=>r.id),Ra=t=>t instanceof Function?t:()=>t;function YS({nodeStrokeColor:t,nodeColor:r,nodeClassName:i="",nodeBorderRadius:l=5,nodeStrokeWidth:u,nodeComponent:a=US,onClick:c}){const d=Ie(WS,Ve),p=Ra(r),g=Ra(t),v=Ra(i),y=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return E.jsx(E.Fragment,{children:d.map(m=>E.jsx(QS,{id:m,nodeColorFunc:p,nodeStrokeColorFunc:g,nodeClassNameFunc:v,nodeBorderRadius:l,nodeStrokeWidth:u,NodeComponent:a,onClick:c,shapeRendering:y},m))})}function XS({id:t,nodeColorFunc:r,nodeStrokeColorFunc:i,nodeClassNameFunc:l,nodeBorderRadius:u,nodeStrokeWidth:a,shapeRendering:c,NodeComponent:d,onClick:p}){const{node:g,x:v,y,width:m,height:w}=Ie(S=>{const P=S.nodeLookup.get(t);if(!P)return{node:void 0,x:0,y:0,width:0,height:0};const N=P.internals.userNode,{x:k,y:j}=P.internals.positionAbsolute,{width:_,height:I}=Qt(N);return{node:N,x:k,y:j,width:_,height:I}},Ve);return!g||g.hidden||!tg(g)?null:E.jsx(d,{x:v,y,width:m,height:w,style:g.style,selected:!!g.selected,className:l(g),color:r(g),borderRadius:u,strokeColor:i(g),strokeWidth:a,shapeRendering:c,onClick:p,id:g.id})}const QS=U.memo(XS);var KS=U.memo(YS);const GS=200,qS=150,ZS=t=>!t.hidden,JS=t=>{const r={x:-t.transform[0]/t.transform[2],y:-t.transform[1]/t.transform[2],width:t.width/t.transform[2],height:t.height/t.transform[2]};let i=!1;for(const l of t.nodeLookup.values())if(!l.hidden){i=!0;break}return{viewBB:r,boundingRect:i?Zp(_i(t.nodeLookup,{filter:ZS}),r):r,rfId:t.rfId,panZoom:t.panZoom,translateExtent:t.translateExtent,flowWidth:t.width,flowHeight:t.height,ariaLabelConfig:t.ariaLabelConfig}},op=(t,r)=>t.x===r.x&&t.y===r.y&&t.width===r.width&&t.height===r.height,ek=(t,r)=>op(t.viewBB,r.viewBB)&&op(t.boundingRect,r.boundingRect)&&t.rfId===r.rfId&&t.panZoom===r.panZoom&&t.translateExtent===r.translateExtent&&t.flowWidth===r.flowWidth&&t.flowHeight===r.flowHeight&&t.ariaLabelConfig===r.ariaLabelConfig,tk="react-flow__minimap-desc";function nm({style:t,className:r,nodeStrokeColor:i,nodeColor:l,nodeClassName:u="",nodeBorderRadius:a=5,nodeStrokeWidth:c,nodeComponent:d,bgColor:p,maskColor:g,maskStrokeColor:v,maskStrokeWidth:y,position:m="bottom-right",onClick:w,onNodeClick:S,pannable:P=!1,zoomable:N=!1,ariaLabel:k,inversePan:j,zoomStep:_=1,offsetScale:I=5}){const F=De(),D=U.useRef(null),{boundingRect:V,panZoom:Q,viewBB:Y,rfId:ee,translateExtent:q,flowWidth:J,flowHeight:Z,ariaLabelConfig:C}=Ie(JS,ek),b=(t==null?void 0:t.width)??GS,H=(t==null?void 0:t.height)??qS,B=V.width/b,z=V.height/H,A=Math.max(B,z),O=A*b,M=A*H,L=I*A,te=V.x-(O-V.width)/2-L,re=V.y-(M-V.height)/2-L,ue=O+L*2,ce=M+L*2,ae=`${tk}-${ee}`,G=U.useRef(0),se=U.useRef();G.current=A,U.useEffect(()=>{const ke=F.getState().panZoom;if(D.current&&ke)return se.current=d1({domNode:D.current,panZoom:ke,getTransform:()=>F.getState().transform,getViewScale:()=>G.current}),()=>{var Ne;(Ne=se.current)==null||Ne.destroy()}},[Q]),U.useEffect(()=>{var ke;(ke=se.current)==null||ke.update({translateExtent:q,width:J,height:Z,inversePan:j,pannable:P,zoomStep:_,zoomable:N})},[P,N,j,_,q,J,Z]);const pe=w?ke=>{var ze;const[Ne,Me]=((ze=se.current)==null?void 0:ze.pointer(ke))||[0,0];w(ke,{x:Ne,y:Me})}:void 0,xe=U.useCallback((ke,Ne)=>{const Me=F.getState().nodeLookup.get(Ne).internals.userNode;S==null||S(ke,Me)},[S]),ye=S?xe:void 0,we=k??C["minimap.ariaLabel"];return E.jsx(Ei,{position:m,style:{...t,"--xy-minimap-background-color-props":typeof p=="string"?p:void 0,"--xy-minimap-mask-background-color-props":typeof g=="string"?g:void 0,"--xy-minimap-mask-stroke-color-props":typeof v=="string"?v:void 0,"--xy-minimap-mask-stroke-width-props":typeof y=="number"?y*A:void 0,"--xy-minimap-node-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-node-stroke-color-props":typeof i=="string"?i:void 0,"--xy-minimap-node-stroke-width-props":typeof c=="number"?c:void 0},className:We(["react-flow__minimap",r]),"data-testid":"rf__minimap",children:E.jsxs("svg",{width:b,height:H,viewBox:`${te} ${re} ${ue} ${ce}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":ae,ref:D,onClick:pe,children:[we&&E.jsx("title",{id:ae,children:we}),E.jsx(KS,{onClick:ye,nodeColor:l,nodeStrokeColor:i,nodeBorderRadius:a,nodeClassName:u,nodeStrokeWidth:c,nodeComponent:d}),E.jsx("path",{className:"react-flow__minimap-mask",d:`M${te-L},${re-L}h${ue+L*2}v${ce+L*2}h${-ue-L*2}z
- M${Y.x},${Y.y}h${Y.width}v${Y.height}h${-Y.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}nm.displayName="MiniMap";const nk=U.memo(nm),rk=t=>r=>t?`${Math.max(1/r.transform[2],1)}`:void 0,ok={[lo.Line]:"right",[lo.Handle]:"bottom-right"};function ik({nodeId:t,position:r,variant:i=lo.Handle,className:l,style:u=void 0,children:a,color:c,minWidth:d=10,minHeight:p=10,maxWidth:g=Number.MAX_VALUE,maxHeight:v=Number.MAX_VALUE,keepAspectRatio:y=!1,resizeDirection:m,autoScale:w=!0,shouldResize:S,onResizeStart:P,onResize:N,onResizeEnd:k}){const j=Ag(),_=typeof t=="string"?t:j,I=De(),F=U.useRef(null),D=i===lo.Handle,V=Ie(U.useCallback(rk(D&&w),[D,w]),Ve),Q=U.useRef(null),Y=r??ok[i];U.useEffect(()=>{if(!(!F.current||!_))return Q.current||(Q.current=N1({domNode:F.current,nodeId:_,getStoreItems:()=>{const{nodeLookup:q,transform:J,snapGrid:Z,snapToGrid:C,nodeOrigin:b,domNode:H}=I.getState();return{nodeLookup:q,transform:J,snapGrid:Z,snapToGrid:C,nodeOrigin:b,paneDomNode:H}},onChange:(q,J)=>{const{triggerNodeChanges:Z,nodeLookup:C,parentLookup:b,nodeOrigin:H}=I.getState(),B=[],z={x:q.x,y:q.y},A=C.get(_);if(A&&A.expandParent&&A.parentId){const O=A.origin??H,M=q.width??A.measured.width??0,L=q.height??A.measured.height??0,te={id:A.id,parentId:A.parentId,rect:{width:M,height:L,...ng({x:q.x??A.position.x,y:q.y??A.position.y},{width:M,height:L},A.parentId,C,O)}},re=pc([te],C,b,H);B.push(...re),z.x=q.x?Math.max(O[0]*M,q.x):void 0,z.y=q.y?Math.max(O[1]*L,q.y):void 0}if(z.x!==void 0&&z.y!==void 0){const O={id:_,type:"position",position:{...z}};B.push(O)}if(q.width!==void 0&&q.height!==void 0){const M={id:_,type:"dimensions",resizing:!0,setAttributes:m?m==="horizontal"?"width":"height":!0,dimensions:{width:q.width,height:q.height}};B.push(M)}for(const O of J){const M={...O,type:"position"};B.push(M)}Z(B)},onEnd:({width:q,height:J})=>{const Z={id:_,type:"dimensions",resizing:!1,dimensions:{width:q,height:J}};I.getState().triggerNodeChanges([Z])}})),Q.current.update({controlPosition:Y,boundaries:{minWidth:d,minHeight:p,maxWidth:g,maxHeight:v},keepAspectRatio:y,resizeDirection:m,onResizeStart:P,onResize:N,onResizeEnd:k,shouldResize:S}),()=>{var q;(q=Q.current)==null||q.destroy()}},[Y,d,p,g,v,y,P,N,k,S]);const ee=Y.split("-");return E.jsx("div",{className:We(["react-flow__resize-control","nodrag",...ee,i,l]),ref:F,style:{...u,scale:V,...c&&{[D?"backgroundColor":"borderColor"]:c}},children:a})}U.memo(ik);const ip=40,sp=180,sk=0;function lk(t,r,i={}){var a,c;const l={};let u=0;for(const d of t){if(i[d]){l[d]=i[d];const p=((a=r.get(d))==null?void 0:a.height)??sp;u=Math.max(u,i[d].y+p+ip);continue}l[d]={x:sk,y:u},u+=(((c=r.get(d))==null?void 0:c.height)??sp)+ip}return l}function uk(t,r){return t.condition_kinds.find(i=>i.kind===r)}function Ni(t,r){return r==="sv"?t.label_sv:t.label_en}function ak({label:t,value:r,onChange:i}){const[l,u]=U.useState([]),[a,c]=U.useState(!1),[d,p]=U.useState(null),g=()=>qe.listDesktopImages().then(u).catch(()=>{});U.useEffect(()=>{g()},[]);async function v(){const m=r.replace(/\.png$/i,"")||`bild ${l.length+1}`,w=window.prompt("Namn på referensbilden:",m);if(w!==null){c(!0),p(null);try{const S=await qe.captureDesktopImage(w.trim());i(S.name),await g()}catch(S){p(S instanceof li?String(S.detail):String(S))}finally{c(!1)}}}const y=r&&l.includes(r);return E.jsxs("label",{className:"field image-field",children:[E.jsx("span",{children:t}),E.jsxs("div",{className:"image-field-row",children:[E.jsx("input",{type:"text",list:"desktop-images",value:r??"",placeholder:"filnamn.png",onChange:m=>i(m.target.value)}),E.jsx("datalist",{id:"desktop-images",children:l.map(m=>E.jsx("option",{value:m},m))}),E.jsx("button",{type:"button",className:"secondary tiny",disabled:a,onClick:v,children:a?"…":"📷 Fånga"})]}),y&&E.jsx("img",{className:"image-field-preview",src:qe.desktopImageUrl(r),alt:r}),d&&E.jsx("span",{className:"assist-msg error",children:d})]})}function rm({values:t,fields:r,lang:i,showScope:l,onChange:u}){const a=r.filter(c=>c.kind==="field_list"?!1:c.key==="scope"?!!l:!0);return a.length===0?null:E.jsx("div",{className:"fields",children:a.map(c=>E.jsx(ck,{field:c,value:t[c.key],lang:i,onChange:d=>u({[c.key]:d})},c.key))})}function ck({field:t,value:r,lang:i,onChange:l}){var d;const u=Ni(t,i),a=t.help??u;if(t.kind==="image")return E.jsx(ak,{label:u,value:String(r??""),onChange:l});let c;return t.kind==="select"?c=E.jsx("select",{value:String(r??t.default??((d=t.options)==null?void 0:d[0])??""),title:a,onChange:p=>l(p.target.value),children:(t.options??[]).map(p=>E.jsx("option",{value:p,children:p===""?"—":p},p))}):t.kind==="bool"?c=E.jsx("input",{type:"checkbox",checked:r===!0||r==="true",title:a,onChange:p=>l(p.target.checked)}):t.kind==="number"?c=E.jsx("input",{type:"number",value:r==null?"":String(r),title:a,onChange:p=>l(p.target.value===""?void 0:Number(p.target.value))}):c=E.jsx("input",{type:"text",value:r==null?"":String(r),title:a,onChange:p=>l(p.target.value)}),E.jsxs("label",{className:"field"+(t.kind==="bool"?" field-bool":""),children:[E.jsx("span",{children:u}),c]})}function fk({condition:t,schema:r,lang:i,t:l,showScope:u,onChange:a}){const c=uk(r,t.kind);return E.jsxs("div",{className:"condition",children:[E.jsxs("label",{className:"field",children:[E.jsx("span",{children:l("condition")}),E.jsx("select",{value:t.kind,onChange:d=>a({kind:d.target.value}),children:r.condition_kinds.map(d=>E.jsx("option",{value:d.kind,children:Ni(d,i)},d.kind))})]}),c&&E.jsx(rm,{values:t,fields:c.fields,lang:i,showScope:u,onChange:d=>a({...t,...d})})]})}function dk({fields:t,t:r,onChange:i}){const l=(u,a)=>i(t.map((c,d)=>d===u?{...c,...a}:c));return E.jsxs("div",{className:"row-fields",children:[t.map((u,a)=>E.jsxs("div",{className:"row-field",children:[E.jsxs("div",{className:"row-field-head",children:[E.jsx("input",{type:"text",placeholder:r("column_name"),value:u.name,onChange:c=>l(a,{name:c.target.value})}),E.jsx("button",{className:"danger",onClick:()=>i(t.filter((c,d)=>d!==a)),children:r("remove")})]}),E.jsxs("div",{className:"fields",children:[E.jsxs("label",{className:"field",children:[E.jsx("span",{children:"by"}),E.jsx("select",{value:u.by??"css",onChange:c=>l(a,{by:c.target.value}),children:["text","css","role"].map(c=>E.jsx("option",{children:c},c))})]}),E.jsxs("label",{className:"field",children:[E.jsx("span",{children:"value"}),E.jsx("input",{type:"text",value:u.value??"",onChange:c=>l(a,{value:c.target.value})})]}),E.jsxs("label",{className:"field",children:[E.jsx("span",{children:"role"}),E.jsx("input",{type:"text",value:u.role??"",onChange:c=>l(a,{role:c.target.value})})]})]})]},a)),E.jsx("button",{className:"secondary",onClick:()=>i([...t,{name:"",by:"css",value:""}]),children:r("add_field")})]})}function qa({steps:t,schema:r,lang:i,t:l,inLoop:u,onChange:a}){const c=()=>a([...t,mr(r,"click")]);return E.jsxs("div",{className:"nested-steps",children:[t.map((d,p)=>E.jsxs("div",{className:"mini-card"+(d.enabled===!1?" disabled":""),children:[E.jsxs("div",{className:"mini-head",children:[E.jsx("input",{type:"checkbox",checked:d.enabled!==!1,title:l("enabled_title"),onChange:g=>a(ei(t,p,{...d,enabled:g.target.checked?void 0:!1}))}),E.jsx("select",{value:d.type,onChange:g=>a(ei(t,p,hp(r,d,g.target.value))),children:r.step_types.map(g=>E.jsx("option",{value:g.type,children:Ni(g,i)},g.type))}),E.jsx("input",{type:"text",className:"label-input",placeholder:l("label_ph"),value:d.label??"",onChange:g=>a(ei(t,p,{...d,label:g.target.value||void 0}))}),E.jsxs("select",{value:d.on_error==="continue"?"continue":"stop",onChange:g=>a(ei(t,p,{...d,on_error:g.target.value==="continue"?"continue":void 0})),children:[E.jsx("option",{value:"stop",children:l("on_error_stop")}),E.jsx("option",{value:"continue",children:l("on_error_continue")})]}),E.jsx("span",{className:"spacer"}),E.jsx("button",{className:"icon",title:l("move_up"),disabled:p===0,onClick:()=>a(Da(t,p,p-1)),children:"↑"}),E.jsx("button",{className:"icon",title:l("move_down"),disabled:p===t.length-1,onClick:()=>a(Da(t,p,p+1)),children:"↓"}),E.jsx("button",{className:"danger",onClick:()=>a(gp(t,p)),children:l("remove")})]}),E.jsx(om,{step:d,schema:r,lang:i,t:l,inLoop:u||d.type==="loop",onChange:g=>a(ei(t,p,g))}),E.jsx("button",{className:"secondary tiny",onClick:()=>a(pp(t,p+1,mr(r,"click"))),children:"+"})]},d.id??p)),E.jsx("button",{className:"secondary",onClick:c,children:l("add_step_in")})]})}function om({step:t,schema:r,lang:i,t:l,inLoop:u,onChange:a}){const c=r.step_types.find(g=>g.type===t.type);if(!c)return E.jsxs("div",{className:"hint",children:["Okänd stegtyp: ",t.type]});const d=g=>{const v={...t};for(const[y,m]of Object.entries(g))m===void 0||m===""?delete v[y]:v[y]=m;a(v)},p=u||t.type==="loop"||t.type==="extract_row";return E.jsxs(E.Fragment,{children:[E.jsx(rm,{values:t,fields:c.fields,lang:i,showScope:p,onChange:d}),t.type==="extract_row"&&E.jsx(dk,{fields:t.fields??[],lang:i,t:l,onChange:g=>a({...t,fields:g})}),t.type==="loop"&&E.jsx("div",{className:"nested",children:E.jsx(qa,{steps:t.steps??[],schema:r,lang:i,t:l,inLoop:!0,onChange:g=>a({...t,steps:g})})}),t.type==="if"&&E.jsx(hk,{step:t,schema:r,lang:i,t:l,inLoop:u,onChange:a})]})}function hk({step:t,schema:r,lang:i,t:l,inLoop:u,onChange:a}){const c=t.branches??[{condition:{kind:"element_exists"},steps:[]}],d=(p,g)=>a({...t,branches:c.map((v,y)=>y===p?g:v)});return E.jsxs("div",{className:"nested",children:[c.map((p,g)=>E.jsxs("div",{className:"branch",children:[E.jsxs("div",{className:"branch-head",children:[E.jsx("strong",{children:l(g===0?"branch_if":"branch_else_if")}),g>0&&E.jsx("button",{className:"danger",onClick:()=>a({...t,branches:c.filter((v,y)=>y!==g)}),children:l("remove_branch")})]}),E.jsx(fk,{condition:p.condition,schema:r,lang:i,t:l,showScope:u,onChange:v=>d(g,{...p,condition:v})}),E.jsx(qa,{steps:p.steps,schema:r,lang:i,t:l,inLoop:u,onChange:v=>d(g,{...p,steps:v})})]},g)),E.jsx("button",{className:"secondary",onClick:()=>a({...t,branches:[...c,Q0()]}),children:l("add_branch")}),E.jsxs("label",{className:"branch else-toggle",children:[E.jsx("input",{type:"checkbox",checked:Array.isArray(t.else),onChange:p=>a({...t,else:p.target.checked?[]:void 0})}),E.jsx("span",{children:l("else_toggle")})]}),Array.isArray(t.else)&&E.jsx("div",{className:"branch",children:E.jsx(qa,{steps:t.else,schema:r,lang:i,t:l,inLoop:u,onChange:p=>a({...t,else:p})})})]})}function pk({data:t}){const r=t,{step:i,schema:l,lang:u,t:a}=r,c=l.step_types.find(d=>d.type===i.type);return E.jsxs("div",{className:"step-node cat-"+((c==null?void 0:c.category)??"x")+(i.enabled===!1?" disabled":""),children:[E.jsx(uo,{type:"target",position:ve.Top}),E.jsxs("div",{className:"node-head",children:[E.jsx("input",{type:"checkbox",className:"nodrag",checked:i.enabled!==!1,title:a("enabled_title"),onChange:d=>r.onChange({...i,enabled:d.target.checked?void 0:!1})}),E.jsx("select",{className:"nodrag type-select",value:i.type,onChange:d=>r.onChange(hp(l,i,d.target.value)),children:l.step_types.map(d=>E.jsx("option",{value:d.type,children:Ni(d,u)},d.type))}),E.jsx("span",{className:"spacer"}),E.jsx("button",{className:"icon nodrag",title:a("move_up"),disabled:r.index===0,onClick:()=>r.onMove(-1),children:"↑"}),E.jsx("button",{className:"icon nodrag",title:a("move_down"),disabled:r.index===r.count-1,onClick:()=>r.onMove(1),children:"↓"}),E.jsx("button",{className:"danger nodrag",onClick:r.onDelete,children:"✕"})]}),E.jsxs("div",{className:"node-subhead",children:[E.jsx("input",{type:"text",className:"nodrag label-input",placeholder:a("label_ph"),value:i.label??"",onChange:d=>r.onChange({...i,label:d.target.value||void 0})}),E.jsxs("select",{className:"nodrag",value:i.on_error==="continue"?"continue":"stop",onChange:d=>r.onChange({...i,on_error:d.target.value==="continue"?"continue":void 0}),children:[E.jsx("option",{value:"stop",children:a("on_error_stop")}),E.jsx("option",{value:"continue",children:a("on_error_continue")})]})]}),E.jsx("div",{className:"node-body nodrag",children:E.jsx(om,{step:i,schema:l,lang:u,t:a,inLoop:!1,onChange:r.onChange})}),E.jsx("button",{className:"add-after nodrag",title:a("add_step_after"),onClick:r.onAddAfter,children:"+"}),E.jsx(uo,{type:"source",position:ve.Bottom})]})}const gk={step:pk};function mk(t){var i,l;let r=150;if(t.type==="loop"&&(r+=70+(((i=t.steps)==null?void 0:i.length)??0)*120),t.type==="if"){for(const u of t.branches??[])r+=150+u.steps.length*120;Array.isArray(t.else)&&(r+=90+t.else.length*120)}return t.type==="extract_row"&&(r+=60+(((l=t.fields)==null?void 0:l.length)??0)*130),r}function yk({flow:t,schema:r,lang:i,t:l,onChange:u}){const[a,c]=U.useState(()=>dp(t).nodes.map(k=>k.step)),[d,p]=U.useState(()=>({...t.layout??{}})),g=U.useRef(new Map),v=U.useRef(!0),y=U.useMemo(()=>{const k=new Map;for(const j of a)k.set(j.id,g.current.get(j.id)??{width:340,height:mk(j)});return lk(a.map(j=>j.id),k,d)},[a,d]);U.useEffect(()=>{if(v.current){v.current=!1;return}u({steps:a,layout:d})},[a,d,u]);const m=U.useCallback((k,j)=>c(_=>_.map(I=>I.id===k?j:I)),[]),w=U.useMemo(()=>a.map((k,j)=>({id:k.id,type:"step",position:y[k.id]??{x:0,y:j*200},data:{step:k,schema:r,lang:i,t:l,index:j,count:a.length,onChange:_=>m(k.id,_),onDelete:()=>c(_=>gp(_,_.findIndex(I=>I.id===k.id))),onMove:_=>c(I=>{const F=I.findIndex(D=>D.id===k.id);return Da(I,F,F+_)}),onAddAfter:()=>c(_=>{const I=_.findIndex(F=>F.id===k.id);return pp(_,I+1,mr(r,"click"))})}})),[a,y,r,i,l,m]),S=U.useMemo(()=>{const k=[];for(let _=0;_<a.length-1;_++)k.push({id:`seq-${a[_].id}-${a[_+1].id}`,source:a[_].id,target:a[_+1].id,animated:!1});const j=new Map;for(const _ of a)_.label&&j.set(_.label,_.id);for(const _ of a)_.type==="jump_to_label"&&typeof _.target=="string"&&j.has(_.target)&&k.push({id:`jump-${_.id}`,source:_.id,target:j.get(_.target),style:{stroke:"#d1453b",strokeDasharray:"5 5"},label:"goto"});return k},[a]),P=U.useCallback(k=>{for(const j of k)j.type==="dimensions"&&j.dimensions&&g.current.set(j.id,{width:j.dimensions.width,height:j.dimensions.height});p(j=>{let _=j;for(const I of k)I.type==="position"&&I.position&&I.dragging&&(_===j&&(_={...j}),_[I.id]={x:Math.round(I.position.x),y:Math.round(I.position.y)});return _})},[]),N=U.useCallback(()=>{c(k=>[...k].sort((j,_)=>{var I,F;return(((I=y[j.id])==null?void 0:I.y)??0)-(((F=y[_.id])==null?void 0:F.y)??0)}))},[y]);return E.jsx("div",{className:"canvas",children:E.jsxs(TS,{nodes:w,edges:S,nodeTypes:gk,onNodesChange:P,onNodeDragStop:N,nodesConnectable:!1,fitView:!0,minZoom:.2,proOptions:{hideAttribution:!0},children:[E.jsx(RS,{}),E.jsx(nk,{pannable:!0,zoomable:!0}),E.jsx(bS,{}),E.jsxs(Ei,{position:"top-left",className:"canvas-panel",children:[E.jsx("button",{className:"secondary",onClick:()=>c(k=>[...k,mr(r,"goto")]),children:l("add_step")}),E.jsx("button",{className:"secondary",onClick:()=>p({}),children:l("relayout")})]})]})})}function vk({t,runId:r,run:i}){const l=U.useRef(null);U.useEffect(()=>{l.current&&(l.current.scrollTop=l.current.scrollHeight)},[i==null?void 0:i.logs]);const u=i==null?void 0:i.status;return E.jsxs("div",{className:"panel",children:[E.jsxs("div",{className:"panel-head",children:[E.jsx("strong",{children:t("run_log")}),u&&E.jsx("span",{className:"badge badge-"+u,children:t(u==="running"?"status_running":u==="done"?"status_done":"status_error")}),E.jsx("span",{className:"spacer"}),(i==null?void 0:i.browser_open)&&r&&E.jsx("button",{className:"secondary",onClick:()=>qe.closeBrowser(r),children:t("close_browser")}),(i==null?void 0:i.trace_ready)&&r&&E.jsx("button",{className:"secondary",onClick:()=>qe.showTrace(r),children:t("show_trace")})]}),E.jsx("pre",{className:"log",ref:l,children:((i==null?void 0:i.logs)??[]).join(`
-`)})]})}function xk(t,r){return Array.isArray(r)?t("var_list",{n:r.length}):r&&typeof r=="object"?t("var_object"):typeof r=="string"?t("var_text",{n:r.length}):typeof r}function wk({t,vars:r}){const[i,l]=U.useState(new Set),u=Object.keys(r??{});return E.jsxs("div",{className:"panel",children:[E.jsx("strong",{children:t("variables")}),E.jsx("p",{className:"hint",children:t("vars_hint")}),u.length===0&&E.jsx("p",{className:"hint",children:t("no_vars")}),u.map(a=>{const c=i.has(a),d=r[a];return E.jsxs("div",{className:"var-row",children:[E.jsxs("div",{className:"var-head",onClick:()=>l(p=>{const g=new Set(p);return g.has(a)?g.delete(a):g.add(a),g}),children:[a," ",E.jsxs("span",{className:"hint",children:["(",xk(t,d),")"]})]}),c&&E.jsx("pre",{className:"var-value",children:typeof d=="string"?d:JSON.stringify(d,null,2)})]},a)})]})}function _k({t,currentName:r,flow:i,onApply:l}){const[u,a]=U.useState(""),[c,d]=U.useState(!1),[p,g]=U.useState(null);async function v(){if(!(!u.trim()||!r)){d(!0),g(null);try{const y=await qe.assist(r,u.trim(),i);l({steps:y.steps,settings:y.settings,layout:{}}),g({text:t("assist_applied")+(y.explanation?`
-
-`+y.explanation:""),error:!1})}catch(y){if(y instanceof li&&y.status===501)g({text:t("assist_unavailable"),error:!0});else{const m=y instanceof li?String(y.detail):String(y);g({text:t("assist_failed",{msg:m}),error:!0})}}finally{d(!1)}}}return E.jsxs("div",{className:"panel",children:[E.jsx("strong",{children:t("assist_title")}),E.jsx("p",{className:"hint",children:t("assist_hint")}),E.jsx("textarea",{rows:3,placeholder:t("assist_ph"),value:u,onChange:y=>a(y.target.value)}),E.jsx("button",{onClick:v,disabled:c||!r,children:t(c?"assist_working":"assist_btn")}),p&&E.jsx("p",{className:"assist-msg"+(p.error?" error":""),children:p.text})]})}function Sk({open:t,schema:r,lang:i,t:l,settings:u,onClose:a,onSave:c}){const d=U.useRef(null);U.useEffect(()=>{const g=d.current;g&&(t&&!g.open&&g.showModal(),!t&&g.open&&g.close())},[t]);function p(g){g.preventDefault();const v=g.currentTarget,y={};for(const m of r.settings){const w=v.elements.namedItem(m.key);w&&(m.kind==="bool"?y[m.key]=w.checked:m.kind==="number"?y[m.key]=Number(w.value)||Number(m.default)||0:y[m.key]=w.value||String(m.default))}c(y)}return E.jsx("dialog",{ref:d,onClose:a,children:E.jsxs("form",{onSubmit:p,method:"dialog",children:[E.jsx("h2",{children:l("settings")}),E.jsx("p",{className:"hint",children:l("settings_hint")}),E.jsx("div",{className:"fields",children:r.settings.map(g=>E.jsxs("label",{className:"field"+(g.kind==="bool"?" field-bool":""),children:[E.jsx("span",{children:Ni(g,i)}),g.kind==="bool"?E.jsx("input",{type:"checkbox",name:g.key,defaultChecked:u[g.key]===!0}):E.jsx("input",{type:g.kind==="number"?"number":"text",name:g.key,defaultValue:String(u[g.key]??g.default)})]},g.key))}),E.jsxs("div",{className:"dialog-actions",children:[E.jsx("button",{type:"button",className:"secondary",onClick:a,children:l("cancel")}),E.jsx("button",{type:"submit",children:l("save")})]})]})})}const lp={steps:[],settings:{},layout:{}};function kk(){const[t,r]=U.useState(null),[i,l]=U.useState(()=>localStorage.getItem("rpa_lang")||"en"),[u,a]=U.useState(()=>localStorage.getItem("rpa_close_mode")||"always"),[c,d]=U.useState([]),[p,g]=U.useState(null),[v,y]=U.useState(lp),[m,w]=U.useState(!1),[S,P]=U.useState(0),[N,k]=U.useState(!1),[j,_]=U.useState(null),[I,F]=U.useState(null),[D,V]=U.useState(null),Q=U.useRef(null),Y=W0(i);U.useEffect(()=>{localStorage.setItem("rpa_lang",i),document.title=Y("page_title")},[i]),U.useEffect(()=>localStorage.setItem("rpa_close_mode",u),[u]),U.useEffect(()=>{(async()=>{const z=await qe.schema();r(z);const A=await qe.listFlows();if(d(A),A.length)await ee(A[0]);else{const O={steps:[Wn(mr(z,"goto")),Wn(mr(z,"wait_for_login"))],settings:{},layout:{}};O.steps[0].url="https://www.1177.se/",g("standard"),y(O),w(!0),P(M=>M+1)}})()},[]);const ee=U.useCallback(async z=>{const A=await qe.getFlow(z);A.steps=(A.steps??[]).map(O=>Wn({...O})),A.settings=A.settings??{},A.layout=A.layout??{},g(z),y(A),w(!1),P(O=>O+1)},[]),q=U.useCallback(z=>{y(A=>({...A,steps:z.steps,layout:z.layout})),w(!0)},[]),J=U.useCallback(async()=>{if(!p)return!1;try{await qe.saveFlow(p,v),w(!1);const z=await qe.listFlows();return d(z),!0}catch(z){const A=z instanceof li?JSON.stringify(z.detail):String(z);return _(Y("save_failed",{msg:A})),!1}},[p,v,Y]);async function Z(){const z=prompt(Y("new_flow_prompt"));if(!z||!t)return;const A={steps:[],settings:{},layout:{}};g(z),y(A),P(O=>O+1);try{await qe.saveFlow(z,A),d(await qe.listFlows()),w(!1)}catch{w(!0)}}async function C(){if(!p||!confirm(Y("delete_flow_confirm",{name:p})))return;await qe.deleteFlow(p);const z=await qe.listFlows();d(z),z.length?await ee(z[0]):(g(null),y(lp),P(A=>A+1))}const b=()=>{Q.current&&window.clearTimeout(Q.current),Q.current=null},H=U.useCallback(z=>{qe.run(z).then(A=>{V(A),(A.status==="running"||A.browser_open)&&(Q.current=window.setTimeout(()=>H(z),1e3))})},[]);async function B(){if(!p)return;await J(),b(),V(null);const{run_id:z}=await qe.runFlow(p,u);F(z),H(z)}return U.useEffect(()=>b,[]),t?E.jsxs("div",{className:"app",children:[E.jsx(K0,{t:Y,lang:i,setLang:l,schema:t,flowNames:c,currentName:p,onSelect:ee,onNew:Z,onDelete:C,onSave:J,onRun:B,dirty:m,running:(D==null?void 0:D.status)==="running",closeMode:u,setCloseMode:a,onOpenSettings:()=>k(!0)}),E.jsxs("main",{children:[E.jsx(yk,{flow:v,schema:t,lang:i,t:Y,onChange:q},S),E.jsxs("aside",{className:"side",children:[E.jsx(_k,{t:Y,currentName:p,flow:v,onApply:z=>{z.steps=z.steps.map(A=>Wn({...A})),z.layout=z.layout??{},dp(z),y(z),w(!0),P(A=>A+1)}}),E.jsx(vk,{t:Y,runId:I,run:D}),E.jsx(wk,{t:Y,vars:(D==null?void 0:D.vars)??{}})]})]}),E.jsx(Sk,{open:N,schema:t,lang:i,t:Y,settings:v.settings,onClose:()=>k(!1),onSave:z=>{y(A=>({...A,settings:z})),w(!0),k(!1)}}),j&&E.jsx("div",{className:"toast",onClick:()=>_(null),children:j})]}):E.jsx("div",{className:"loading",children:"…"})}U0.createRoot(document.getElementById("root")).render(E.jsx(ap.StrictMode,{children:E.jsx(kk,{})}));
diff --git a/webui/static/index.html b/webui/static/index.html
index e85061e..ea72259 100644
--- a/webui/static/index.html
+++ b/webui/static/index.html
@@ -4,8 +4,8 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>RPA Tool – flow builder</title>
- <script type="module" crossorigin src="/assets/index-kqrfGhqD.js"></script>
- <link rel="stylesheet" crossorigin href="/assets/index-CNuIJsnv.css">
+ <script type="module" crossorigin src="/assets/index-DlBNeXUj.js"></script>
+ <link rel="stylesheet" crossorigin href="/assets/index-CQM7tpR0.css">
</head>
<body>
<div id="root"></div>