commit a68fef2677d778adea3b6d5d3ce2336a2761ec97
Author: Jens Kristoffersson <jens.kristoffersson.se@gmail.com>
AuthorDate: Fri Sep 4 15:33:04 2026 +0200
Commit: Jens Kristoffersson <jens.kristoffersson.se@gmail.com>
CommitDate: Fri Sep 4 15:33:04 2026 +0200
Kor-parametrar: indata-variabler + varde-set (presets) fore korning
Ett flode kan nu deklarera vilka variabler det forvantar sig vid korning och
sparade varde-set (t.ex. "Produktion"/"Test") att valja mellan i en rullista.
- flow["inputs"]: [{name, label, default, options, description}]
- flow["input_sets"]: {namn: {var: varde}}
Backend:
- rpa/flow_engine.py: run_flow(..., initial_vars=...) seedar variabellagret
- rpa/runs.py: start_run(..., initial_vars=...)
- rpa/flows.py: bevarar inputs/input_sets, avvisar input utan 'name'
- rpa/schema.py: INPUT_FIELDS (editor-beskrivning), markdown-notis
- webui/app.py: Flow-modellen + RunOptions.initial_vars; /api/step-schema
exponerar input_fields
- rpa/mcp_server.py: run_flow(name, initial_vars=, input_set=) - blandar
defaults <- input_set <- initial_vars
- rpa/export.py: exporterat script far --set NAMN / --var namn=varde
Frontend:
- RunDialog.tsx: oppnas automatiskt pa "Kor flode" om flodet har inputs/set.
Varde-set-rullista, ett falt per input (text eller dropdown om 'options'),
ad-hoc-rader, "Spara som set". Kommer ihag senast anvanda varden per flode
(localStorage).
- InputsEditor.tsx: ⚙-menyn -> "Kor-parametrar / indata" - deklarera inputs,
hantera/dopa om/ta bort varde-set.
- lib/runvars.ts: ren sammanslagningslogik (testad).
Tester: +10 pytest (run_vars, export, flows), +4 vitest (runvars).
Verifierat med skarmdump + riktig korning (webui) och MCP run_flow(input_set=).
---
README.md | 14 +-
TODO.md | 8 ++
rpa/export.py | 38 +++++-
rpa/flow_engine.py | 16 ++-
rpa/flows.py | 15 ++
rpa/mcp_server.py | 34 ++++-
rpa/runs.py | 8 +-
rpa/schema.py | 19 ++-
tests/test_export.py | 50 +++++++
tests/test_flows.py | 24 ++++
tests/test_run_vars.py | 54 ++++++++
webui/app.py | 12 +-
webui/frontend/src/App.tsx | 52 ++++++-
webui/frontend/src/components/Header.tsx | 2 +
webui/frontend/src/components/InputsEditor.tsx | 116 ++++++++++++++++
webui/frontend/src/components/Menu.tsx | 4 +
webui/frontend/src/components/RunDialog.tsx | 152 +++++++++++++++++++++
webui/frontend/src/lib/api.ts | 15 +-
webui/frontend/src/lib/i18n.ts | 30 ++++
webui/frontend/src/lib/runvars.test.ts | 37 +++++
webui/frontend/src/lib/runvars.ts | 37 +++++
webui/frontend/src/lib/schema.ts | 1 +
webui/frontend/src/styles.css | 11 ++
webui/static/assets/index-ACtCHcrU.js | 65 +++++++++
webui/static/assets/index-Ba9Cdbwv.js | 65 ---------
.../{index-DQHRsE2y.css => index-CVytgFkz.css} | 2 +-
webui/static/index.html | 4 +-
27 files changed, 793 insertions(+), 92 deletions(-)
diff --git a/README.md b/README.md
index a63796b..c4c7668 100644
--- a/README.md
+++ b/README.md
@@ -72,11 +72,21 @@ ordningen, `loop`/`if` expanderas inuti sin nod. Dra en nod för att flytta den
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.
+ körningsinställningar (headless/skip_browser/viewport…), **Kör-parametrar /
+ indata**, 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/`.
+- **Kör-parametrar / indata** – deklarera vilka variabler flödet förväntar sig
+ vid körning (⚙ → "Kör-parametrar / indata"): namn, etikett, standardvärde,
+ ev. `Alternativ` (komma-separerat → rullista i stället för textfält). Har
+ flödet minst en deklarerad indata öppnas en dialog automatiskt vid "Kör
+ flöde" – fyll i värden, eller välj ett sparat **värde-set** i rullistan
+ ("💾 Spara som set" sparar aktuella värden under ett namn, t.ex.
+ "Produktion"/"Test"). Extra ad-hoc-variabler kan läggas till där också.
+ Värdena når stegen som vanliga `{variabel}`. Seten sparas i flödet, följer
+ med vid export (`--set NAMN` / `--var namn=värde` på kommandoraden) och kan
+ väljas via MCP:s `run_flow(..., input_set="...")`.
## Desktop-automation (Windows)
diff --git a/TODO.md b/TODO.md
index 1530340..5d15cb9 100644
--- a/TODO.md
+++ b/TODO.md
@@ -20,6 +20,14 @@
---
+- **~~Kör-parametrar / indata-variabler + värde-set~~ – klart.** Flödet kan
+ deklarera `inputs` (namn/etikett/default/options/beskrivning) och spara
+ `input_sets` (presets). `RunDialog`/`InputsEditor`-komponenter; ⚙-menyn har
+ "Kör-parametrar / indata"; "Kör flöde" öppnar dialogen automatiskt om
+ flödet har inputs/set. `flow_engine.run_flow(..., initial_vars=...)` seedar
+ variabellagret. Stöds av MCP (`run_flow(input_set=...)`) och exporterade
+ script (`--set`/`--var`).
+
## Möjliga uppföljningar
- **~~`skip_browser`~~ – klar.** Flöden utan webbläsarsteg startar ingen
diff --git a/rpa/export.py b/rpa/export.py
index a2abd05..4fe9ea0 100644
--- a/rpa/export.py
+++ b/rpa/export.py
@@ -14,6 +14,8 @@ Kör med:
python {filename}.py
python {filename}.py --headless
python {filename}.py --close-mode never
+ python {filename}.py --set "Test" # använd ett sparat värde-set
+ python {filename}.py --var org_id=9 # sätt en indata-variabel (upprepbar)
Kräver att rpa-paketet finns tillgängligt (kör från projektroten där
rpa/ och data/ ligger, eller kopiera med hela rpa/-mappen och låt en
@@ -29,6 +31,27 @@ STEPS = {steps_json}
SETTINGS = {settings_json}
+INPUTS = {inputs_json}
+
+INPUT_SETS = {input_sets_json}
+
+
+def build_initial_vars(chosen_set, var_overrides):
+ resolved = {{}}
+ for inp in INPUTS:
+ if inp.get("name") and inp.get("default") not in (None, ""):
+ resolved[str(inp["name"])] = str(inp["default"])
+ if chosen_set:
+ if chosen_set not in INPUT_SETS:
+ raise SystemExit(f"Okänt värde-set: {{chosen_set!r}}. Tillgängliga: {{list(INPUT_SETS)}}")
+ resolved.update({{str(k): str(v) for k, v in INPUT_SETS[chosen_set].items()}})
+ for item in var_overrides or []:
+ if "=" not in item:
+ raise SystemExit(f"--var förväntar NAMN=VÄRDE, fick: {{item!r}}")
+ k, v = item.split("=", 1)
+ resolved[k.strip()] = v
+ return resolved
+
def main() -> None:
parser = argparse.ArgumentParser(description="Kör flödet: {name}")
@@ -40,6 +63,9 @@ def main() -> None:
"--close-mode", choices=["always", "on_success", "never"], default="always",
help="Vad som ska hända med webbläsaren när flödet är klart",
)
+ parser.add_argument("--set", dest="value_set", default=None, help="Namn på ett sparat värde-set")
+ parser.add_argument("--var", action="append", default=[], metavar="NAMN=VÄRDE",
+ help="Sätt en indata-variabel (kan upprepas)")
args = parser.parse_args()
settings = dict(SETTINGS)
@@ -52,6 +78,7 @@ def main() -> None:
download_dir=config.DOWNLOAD_DIR,
close_mode=args.close_mode,
settings=settings,
+ initial_vars=build_initial_vars(args.value_set, args.var),
)
@@ -63,11 +90,14 @@ if __name__ == "__main__":
def generate_standalone_script(name: str, flow: dict) -> str:
# pformat (inte json.dumps) - genererad kod är Python, inte JSON: JSON:s
# true/false/null är inte giltig Python-syntax (True/False/None krävs).
- steps_src = pformat(flow.get("steps", []), indent=2, width=100, sort_dicts=False)
- settings_src = pformat(flow.get("settings", {}), indent=2, width=100, sort_dicts=False)
+ def src(value):
+ return pformat(value, indent=2, width=100, sort_dicts=False)
+
return SCRIPT_TEMPLATE.format(
name=name,
filename=name,
- steps_json=steps_src,
- settings_json=settings_src,
+ steps_json=src(flow.get("steps", [])),
+ settings_json=src(flow.get("settings", {})),
+ inputs_json=src(flow.get("inputs", [])),
+ input_sets_json=src(flow.get("input_sets", {})),
)
diff --git a/rpa/flow_engine.py b/rpa/flow_engine.py
index 602454b..6c6d61c 100644
--- a/rpa/flow_engine.py
+++ b/rpa/flow_engine.py
@@ -1109,9 +1109,13 @@ def run_flow(
on_finished: Callable[[Exception | None, dict], None] | None = None,
trace_path: Path | None = None,
settings: dict | None = None,
+ initial_vars: dict | None = None,
) -> None:
"""Kör ett flöde.
+ initial_vars seedar variabellagret innan första steget - används för
+ indata-variabler (flow["inputs"] / värde-set) som matas in vid körning.
+
close_mode styr vad som händer med webbläsaren när stegen är klara:
"always" -- stäng alltid direkt (tidigare/standardbeteende)
"on_success" -- stäng bara om inget steg gav fel, håll öppen vid fel
@@ -1143,7 +1147,7 @@ def run_flow(
log("Kör utan webbläsare (skip_browser / inga webbläsarsteg).")
_run_and_finish(
None, None, steps, log, download_dir, close_mode, close_event,
- on_finished, None, settings,
+ on_finished, None, settings, initial_vars,
)
return
@@ -1158,15 +1162,19 @@ def run_flow(
page = get_page(context)
_run_and_finish(
context, page, steps, log, download_dir, close_mode, close_event,
- on_finished, trace_path, settings,
+ on_finished, trace_path, settings, initial_vars,
)
def _run_and_finish(
- context, page, steps, log, download_dir, close_mode, close_event, on_finished, trace_path, settings,
+ context, page, steps, log, download_dir, close_mode, close_event, on_finished,
+ trace_path, settings, initial_vars=None,
) -> None:
error: Exception | None = None
- vars_: dict = {}
+ # Indata-variabler är strängar (samma som övriga variabler i motorn).
+ vars_: dict = {str(k): (v if isinstance(v, str) else str(v)) for k, v in (initial_vars or {}).items()}
+ if vars_:
+ log(f"Indata-variabler: {', '.join(sorted(vars_))}")
jump_budget = {"remaining": MAX_JUMPS_PER_RUN}
desktop_holder: dict = {"session": None}
try:
diff --git a/rpa/flows.py b/rpa/flows.py
index 4cf90b5..597f7e2 100644
--- a/rpa/flows.py
+++ b/rpa/flows.py
@@ -50,6 +50,8 @@ def load_flow(name: str) -> dict:
flow.setdefault("steps", [])
flow.setdefault("settings", {})
flow.setdefault("layout", {})
+ flow.setdefault("inputs", [])
+ flow.setdefault("input_sets", {})
return flow
@@ -66,11 +68,24 @@ def save_flow(name: str, flow: dict, *, strict: bool = False) -> None:
errors = validate_flow(normalized, strict=strict)
if errors:
raise InvalidFlow(errors)
+
# layout = frivilliga nodpositioner från canvas-UI:t. Ingår inte i
# valideringen (motorn/schemat bryr sig inte) men sparas om den finns.
layout = flow.get("layout")
if isinstance(layout, dict) and layout:
normalized["layout"] = layout
+
+ # inputs = deklarerade indata-variabler, input_sets = namngivna värde-set.
+ inputs = flow.get("inputs")
+ if isinstance(inputs, list) and inputs:
+ bad = [i for i, x in enumerate(inputs) if not isinstance(x, dict) or not str(x.get("name", "")).strip()]
+ if bad:
+ raise InvalidFlow([f"inputs[{i}]: varje indata måste ha ett 'name'." for i in bad])
+ normalized["inputs"] = inputs
+ input_sets = flow.get("input_sets")
+ if isinstance(input_sets, dict) and input_sets:
+ normalized["input_sets"] = input_sets
+
path.write_text(json.dumps(normalized, ensure_ascii=False, indent=2), encoding="utf-8")
diff --git a/rpa/mcp_server.py b/rpa/mcp_server.py
index 37f0085..bfe8b4b 100644
--- a/rpa/mcp_server.py
+++ b/rpa/mcp_server.py
@@ -53,6 +53,7 @@ def describe_steps() -> dict:
"step_types": schema.STEP_TYPES,
"condition_kinds": schema.CONDITION_KINDS,
"settings": schema.SETTINGS_SCHEMA,
+ "input_fields": schema.INPUT_FIELDS,
"close_modes": schema.CLOSE_MODES,
"reference_markdown": schema.step_reference_markdown(),
}
@@ -147,10 +148,19 @@ def get_block(name: str) -> dict:
# --------------------------------------------------------------------------
@mcp.tool()
-def run_flow(name: str, close_mode: str = "always") -> dict:
+def run_flow(
+ name: str,
+ close_mode: str = "always",
+ initial_vars: dict | None = None,
+ input_set: str | None = None,
+) -> dict:
"""Startar en körning av ett sparat flöde i bakgrunden. close_mode:
always | on_success | never. Returnerar ett run_id - poll:a get_run(run_id)
- för status och logg."""
+ för status och logg.
+
+ initial_vars: seedar variabler (t.ex. för flödets deklarerade 'inputs').
+ input_set: namnet på ett sparat värde-set i flödet - dess värden används
+ som grund, initial_vars läggs ovanpå."""
if close_mode not in schema.CLOSE_MODES:
close_mode = "always"
try:
@@ -159,10 +169,26 @@ def run_flow(name: str, close_mode: str = "always") -> dict:
return {"error": f"Flödet '{name}' finns inte."}
except InvalidFlowName as exc:
return {"error": str(exc)}
+
+ resolved: dict = {}
+ for inp in flow.get("inputs", []):
+ if isinstance(inp, dict) and inp.get("name") and inp.get("default") not in (None, ""):
+ resolved[str(inp["name"])] = str(inp["default"])
+ if input_set:
+ sets = flow.get("input_sets", {})
+ if input_set not in sets:
+ return {"error": f"Värde-set '{input_set}' finns inte. Tillgängliga: {list(sets)}"}
+ resolved.update({str(k): str(v) for k, v in sets[input_set].items()})
+ if initial_vars:
+ resolved.update({str(k): str(v) for k, v in initial_vars.items()})
+
run_id = runs.start_run(
- flow.get("steps", []), close_mode=close_mode, settings=flow.get("settings", {})
+ flow.get("steps", []),
+ close_mode=close_mode,
+ settings=flow.get("settings", {}),
+ initial_vars=resolved,
)
- return {"run_id": run_id, "status": "running"}
+ return {"run_id": run_id, "status": "running", "initial_vars": resolved}
@mcp.tool()
diff --git a/rpa/runs.py b/rpa/runs.py
index 92ebd78..9e05a62 100644
--- a/rpa/runs.py
+++ b/rpa/runs.py
@@ -20,7 +20,12 @@ def _append_log(run_id: str, message: str) -> None:
print(f"[run {run_id}] {message}", file=sys.stderr)
-def start_run(steps: list, close_mode: str = "always", settings: dict | None = None) -> str:
+def start_run(
+ steps: list,
+ close_mode: str = "always",
+ settings: dict | None = None,
+ initial_vars: dict | None = None,
+) -> str:
run_id = uuid.uuid4().hex[:12]
close_event = threading.Event()
trace_path = config.TRACE_DIR / f"{run_id}.zip"
@@ -51,6 +56,7 @@ def start_run(steps: list, close_mode: str = "always", settings: dict | None = N
on_finished=on_finished,
trace_path=trace_path,
settings=settings,
+ initial_vars=initial_vars,
)
except Exception as exc: # noqa: BLE001
_append_log(run_id, f"Oväntat fel: {exc}")
diff --git a/rpa/schema.py b/rpa/schema.py
index bfaddc9..b25ee67 100644
--- a/rpa/schema.py
+++ b/rpa/schema.py
@@ -117,6 +117,22 @@ CONDITION_KINDS: list[dict] = [
CONDITION_KIND_NAMES = [c["kind"] for c in CONDITION_KINDS]
+# Ett flöde kan deklarera indata-variabler (flow["inputs"]) som matas in vid
+# körning. Detta beskriver ett fälts form för editorn i webui:t.
+INPUT_FIELDS: list[dict] = [
+ {"key": "name", "kind": "text", "required": True,
+ "label_sv": "Variabelnamn", "label_en": "Variable name",
+ "help": "Används som {name} i stegen."},
+ {"key": "label", "kind": "text",
+ "label_sv": "Etikett (visas i kördialogen)", "label_en": "Label (shown in the run dialog)"},
+ {"key": "default", "kind": "text",
+ "label_sv": "Standardvärde", "label_en": "Default value"},
+ {"key": "options", "kind": "text",
+ "label_sv": "Alternativ (komma-separerade → rullista)", "label_en": "Options (comma-separated → dropdown)"},
+ {"key": "description", "kind": "text",
+ "label_sv": "Beskrivning", "label_en": "Description"},
+]
+
# Körningsinställningar (spegel av DEFAULT_SETTINGS i rpa/browser.py + notify).
SETTINGS_SCHEMA: list[dict] = [
{"key": "headless", "kind": "bool", "default": False,
@@ -883,7 +899,8 @@ def step_reference_markdown() -> str:
"Textfält (by=text/role-värden samt literala textfält i `type`/`set_var`/"
"`list_append`/`save_attachment.filename`/`capture_pdf.filename`) kan innehålla "
"`{variabelnamn}` eller `{variabelnamn.fält}`. Fungerar INTE i CSS-selectors, "
- "URL:er eller andra filnamn.\n"
+ "URL:er eller andra filnamn. `{name}` löser även flödets deklarerade "
+ "indata-variabler (flödesnyckeln `inputs`), som matas in vid körning.\n"
)
out.append("\n### Inställningar (`settings`)\n")
for s in SETTINGS_SCHEMA:
diff --git a/tests/test_export.py b/tests/test_export.py
new file mode 100644
index 0000000..23f611e
--- /dev/null
+++ b/tests/test_export.py
@@ -0,0 +1,50 @@
+"""Det exporterade fristående scriptet."""
+
+import ast
+import types
+
+from rpa.export import generate_standalone_script
+
+FLOW = {
+ "steps": [{"type": "goto", "url": "https://x.se"}],
+ "settings": {"headless": True},
+ "inputs": [{"name": "org_id", "default": "4"}],
+ "input_sets": {"Test": {"org_id": "9"}, "Prod": {"org_id": "1"}},
+}
+
+
+def _script_module(name="flode"):
+ src = generate_standalone_script(name, FLOW)
+ ast.parse(src) # måste vara giltig Python
+ mod = types.ModuleType("exported")
+ # kör bara toppnivån utan att importera rpa (klipp bort import-raderna + main-anropet)
+ body = "\n".join(
+ line for line in src.splitlines()
+ if not line.startswith(("import argparse", "from rpa", " main()", 'if __name__'))
+ )
+ exec(compile(body, "<exported>", "exec"), mod.__dict__) # noqa: S102
+ return mod
+
+
+def test_script_is_valid_python_and_embeds_inputs():
+ mod = _script_module()
+ assert mod.INPUTS == FLOW["inputs"]
+ assert mod.INPUT_SETS == FLOW["input_sets"]
+
+
+def test_build_initial_vars_merge_order():
+ mod = _script_module()
+ assert mod.build_initial_vars(None, []) == {"org_id": "4"} # default
+ assert mod.build_initial_vars("Test", []) == {"org_id": "9"} # set vinner över default
+ assert mod.build_initial_vars("Test", ["org_id=99"]) == {"org_id": "99"} # --var vinner över set
+ assert mod.build_initial_vars(None, ["nytt=x"]) == {"org_id": "4", "nytt": "x"}
+
+
+def test_build_initial_vars_errors():
+ mod = _script_module()
+ import pytest
+
+ with pytest.raises(SystemExit):
+ mod.build_initial_vars("Saknas", [])
+ with pytest.raises(SystemExit):
+ mod.build_initial_vars(None, ["utan_likhetstecken"])
diff --git a/tests/test_flows.py b/tests/test_flows.py
index 7ea9af4..122c36a 100644
--- a/tests/test_flows.py
+++ b/tests/test_flows.py
@@ -62,6 +62,30 @@ def test_layout_and_step_ids_round_trip():
assert loaded["layout"] == {"abc123": {"x": 40, "y": 120}}
+def test_inputs_and_sets_round_trip():
+ flow = {
+ "steps": [{"type": "goto", "url": "https://x.se/{org_id}"}],
+ "settings": {},
+ "inputs": [{"name": "org_id", "label": "Org", "default": "4"}],
+ "input_sets": {"Test": {"org_id": "9"}},
+ }
+ flows.save_flow("params", flow)
+ loaded = flows.load_flow("params")
+ assert loaded["inputs"][0]["name"] == "org_id"
+ assert loaded["input_sets"] == {"Test": {"org_id": "9"}}
+
+
+def test_input_without_name_rejected():
+ with pytest.raises(flows.InvalidFlow):
+ flows.save_flow("bad", {"steps": [], "settings": {}, "inputs": [{"label": "x"}]})
+
+
+def test_missing_flow_defaults_inputs():
+ flows.save_flow("plain", {"steps": [], "settings": {}})
+ loaded = flows.load_flow("plain")
+ assert loaded["inputs"] == [] and loaded["input_sets"] == {}
+
+
def test_layout_omitted_when_empty():
flows.save_flow("nolayout", {"steps": [], "settings": {}, "layout": {}})
import json
diff --git a/tests/test_run_vars.py b/tests/test_run_vars.py
new file mode 100644
index 0000000..7fc104c
--- /dev/null
+++ b/tests/test_run_vars.py
@@ -0,0 +1,54 @@
+"""initial_vars: värden som matas in vid körning (flödets 'inputs' / värde-set)."""
+
+import json
+
+import pytest
+
+from rpa import flow_engine, runs
+
+
+def test_run_flow_seeds_initial_vars(tmp_path, monkeypatch):
+ monkeypatch.setattr(flow_engine, "launch_context", lambda *a, **k: (_ for _ in ()).throw(AssertionError()))
+ monkeypatch.setattr(flow_engine.config, "EXPORT_DIR", tmp_path)
+
+ result: dict = {}
+ flow_engine.run_flow(
+ [
+ {"type": "set_var", "var": "hälsning", "text": "Hej {namn}"},
+ {"type": "save_var", "var": "hälsning", "filename": "ut.json"},
+ ],
+ log=lambda _m: None,
+ initial_vars={"namn": "Världen"},
+ on_finished=lambda err, v: result.update({"err": err, "vars": v}),
+ )
+ assert result["err"] is None
+ assert result["vars"]["namn"] == "Världen"
+ assert result["vars"]["hälsning"] == "Hej Världen"
+ assert json.loads((tmp_path / "ut.json").read_text(encoding="utf-8")) == "Hej Världen"
+
+
+def test_initial_vars_stringified():
+ """Motorn tvingar nycklar till str (frontend kan skicka annat)."""
+ result: dict = {}
+ flow_engine.run_flow(
+ [{"type": "set_var", "var": "x", "text": "{a}-{b}"}],
+ log=lambda _m: None,
+ initial_vars={"a": 1, "b": True},
+ on_finished=lambda err, v: result.update({"vars": v}),
+ )
+ assert result["vars"]["x"] == "1-True"
+
+
+def test_start_run_propagates_initial_vars(monkeypatch):
+ seen: dict = {}
+
+ def fake_run_flow(steps, **kw):
+ seen.update(kw)
+ kw.get("on_finished") and kw["on_finished"](None, {})
+
+ monkeypatch.setattr(runs, "run_flow", fake_run_flow)
+ runs.start_run([], initial_vars={"k": "v"})
+ import time
+
+ time.sleep(0.1)
+ assert seen.get("initial_vars") == {"k": "v"}
diff --git a/webui/app.py b/webui/app.py
index 6accb38..50f26b4 100644
--- a/webui/app.py
+++ b/webui/app.py
@@ -26,10 +26,13 @@ class Flow(BaseModel):
steps: list = []
settings: dict = {}
layout: dict = {}
+ inputs: list = []
+ input_sets: dict = {}
class RunOptions(BaseModel):
close_mode: str = "always"
+ initial_vars: dict = {}
class AssistRequest(BaseModel):
@@ -74,6 +77,7 @@ def step_schema() -> dict:
"step_types": schema.STEP_TYPES,
"condition_kinds": schema.CONDITION_KINDS,
"settings": schema.SETTINGS_SCHEMA,
+ "input_fields": schema.INPUT_FIELDS,
"close_modes": schema.CLOSE_MODES,
}
@@ -250,7 +254,13 @@ def run_flow_endpoint(name: str, options: RunOptions = RunOptions()) -> dict:
except FlowNotFound as exc:
raise HTTPException(404, "Flödet finns inte") from exc
close_mode = options.close_mode if options.close_mode in CLOSE_MODES else "always"
- run_id = start_run(flow.get("steps", []), close_mode=close_mode, settings=flow.get("settings", {}))
+ initial_vars = {str(k): str(v) for k, v in (options.initial_vars or {}).items()}
+ run_id = start_run(
+ flow.get("steps", []),
+ close_mode=close_mode,
+ settings=flow.get("settings", {}),
+ initial_vars=initial_vars,
+ )
return {"run_id": run_id}
diff --git a/webui/frontend/src/App.tsx b/webui/frontend/src/App.tsx
index 3002a6d..df040c6 100644
--- a/webui/frontend/src/App.tsx
+++ b/webui/frontend/src/App.tsx
@@ -4,6 +4,7 @@ import type { Schema } from "./lib/schema";
import { makeT, type Lang } from "./lib/i18n";
import { ensureIds, flowToGraph } from "./lib/graph";
import { newStep } from "./lib/stepops";
+import { flowHasRunParams } from "./lib/runvars";
import { Header } from "./components/Header";
import { Canvas, type CanvasHandle } from "./components/Canvas";
import { Palette } from "./components/Palette";
@@ -12,8 +13,10 @@ import { VarsPanel } from "./components/VarsPanel";
import { AssistPanel } from "./components/AssistPanel";
import { SettingsDialog } from "./components/SettingsDialog";
import { InspectDialog } from "./components/InspectDialog";
+import { RunDialog } from "./components/RunDialog";
+import { InputsEditor } from "./components/InputsEditor";
-const EMPTY: Flow = { steps: [], settings: {}, layout: {} };
+const EMPTY: Flow = { steps: [], settings: {}, layout: {}, inputs: [], input_sets: {} };
export default function App() {
const [schema, setSchema] = useState<Schema | null>(null);
@@ -26,6 +29,8 @@ export default function App() {
const [reloadToken, setReloadToken] = useState(0);
const [settingsOpen, setSettingsOpen] = useState(false);
const [inspectOpen, setInspectOpen] = useState(false);
+ const [inputsEditorOpen, setInputsEditorOpen] = useState(false);
+ const [runDialogOpen, setRunDialogOpen] = useState(false);
const [selectedIds, setSelectedIds] = useState<string[]>([]);
const [blocksRefreshKey, setBlocksRefreshKey] = useState(0);
const [toast, setToast] = useState<string | null>(null);
@@ -74,6 +79,8 @@ export default function App() {
f.steps = (f.steps ?? []).map((s) => ensureIds({ ...s }));
f.settings = f.settings ?? {};
f.layout = f.layout ?? {};
+ f.inputs = f.inputs ?? [];
+ f.input_sets = f.input_sets ?? {};
setCurrentName(name);
setFlow(f);
setDirty(false);
@@ -137,7 +144,7 @@ export default function App() {
async function newFlow() {
const name = prompt(t("new_flow_prompt"));
if (!name || !schema) return;
- const f: Flow = { steps: [], settings: {}, layout: {} };
+ const f: Flow = { steps: [], settings: {}, layout: {}, inputs: [], input_sets: {} };
setCurrentName(name);
setFlow(f);
setReloadToken((n) => n + 1);
@@ -178,16 +185,27 @@ export default function App() {
});
}, []);
- async function runFlow() {
+ async function startRunWithVars(initialVars: Record<string, string>) {
if (!currentName) return;
await save();
stopPoll();
setRun(null);
- const { run_id } = await api.runFlow(currentName, closeMode);
+ const { run_id } = await api.runFlow(currentName, closeMode, initialVars);
setRunId(run_id);
poll(run_id);
}
+ function onClickRun() {
+ if (!currentName) return;
+ if (flowHasRunParams(flow)) setRunDialogOpen(true);
+ else startRunWithVars({});
+ }
+
+ function saveValueSet(name: string, values: Record<string, string>) {
+ setFlow((prev) => ({ ...prev, input_sets: { ...(prev.input_sets ?? {}), [name]: values } }));
+ setDirty(true);
+ }
+
useEffect(() => stopPoll, []);
if (!schema) return <div className="loading">…</div>;
@@ -204,13 +222,14 @@ export default function App() {
onNew={newFlow}
onDelete={deleteFlow}
onSave={save}
- onRun={runFlow}
+ onRun={onClickRun}
dirty={dirty}
running={run?.status === "running"}
closeMode={closeMode}
setCloseMode={setCloseMode}
onOpenSettings={() => setSettingsOpen(true)}
onOpenInspect={() => setInspectOpen(true)}
+ onOpenInputs={() => setInputsEditorOpen(true)}
/>
<main>
@@ -277,6 +296,29 @@ export default function App() {
}}
/>
+ <InputsEditor
+ open={inputsEditorOpen}
+ t={t}
+ lang={lang}
+ schema={schema}
+ flow={flow}
+ onClose={() => setInputsEditorOpen(false)}
+ onChange={({ inputs, input_sets }) => {
+ setFlow((prev) => ({ ...prev, inputs, input_sets }));
+ setDirty(true);
+ }}
+ />
+
+ <RunDialog
+ open={runDialogOpen}
+ t={t}
+ flow={flow}
+ flowName={currentName}
+ onClose={() => setRunDialogOpen(false)}
+ onRun={startRunWithVars}
+ onSaveSet={saveValueSet}
+ />
+
{toast && (
<div className="toast" onClick={() => setToast(null)}>
{toast}
diff --git a/webui/frontend/src/components/Header.tsx b/webui/frontend/src/components/Header.tsx
index b4665aa..7d46408 100644
--- a/webui/frontend/src/components/Header.tsx
+++ b/webui/frontend/src/components/Header.tsx
@@ -18,6 +18,7 @@ interface Props {
setCloseMode: (m: string) => void;
onOpenSettings: () => void;
onOpenInspect: () => void;
+ onOpenInputs: () => void;
}
export function Header(p: Props) {
@@ -54,6 +55,7 @@ export function Header(p: Props) {
onDelete={p.onDelete}
onOpenSettings={p.onOpenSettings}
onOpenInspect={p.onOpenInspect}
+ onOpenInputs={p.onOpenInputs}
/>
</header>
);
diff --git a/webui/frontend/src/components/InputsEditor.tsx b/webui/frontend/src/components/InputsEditor.tsx
new file mode 100644
index 0000000..4fd525a
--- /dev/null
+++ b/webui/frontend/src/components/InputsEditor.tsx
@@ -0,0 +1,116 @@
+import { useEffect, useRef, useState } from "react";
+import type { Flow, FlowInput } from "../lib/api";
+import type { Schema } from "../lib/schema";
+import { fieldLabel } from "../lib/schema";
+import type { Lang, T } from "../lib/i18n";
+
+interface Props {
+ open: boolean;
+ t: T;
+ lang: Lang;
+ schema: Schema;
+ flow: Flow;
+ onChange: (patch: { inputs: FlowInput[]; input_sets: Record<string, Record<string, string>> }) => void;
+ onClose: () => void;
+}
+
+export function InputsEditor({ open, t, lang, schema, flow, onChange, onClose }: Props) {
+ const ref = useRef<HTMLDialogElement>(null);
+ const [inputs, setInputs] = useState<FlowInput[]>([]);
+ const [sets, setSets] = useState<Record<string, Record<string, string>>>({});
+
+ useEffect(() => {
+ const d = ref.current;
+ if (!d) return;
+ if (open && !d.open) {
+ d.showModal();
+ setInputs((flow.inputs ?? []).map((i) => ({ ...i })));
+ setSets({ ...(flow.input_sets ?? {}) });
+ }
+ if (!open && d.open) d.close();
+ }, [open, flow.inputs, flow.input_sets]);
+
+ const fieldDefs = schema.input_fields ?? [];
+
+ function setInput(i: number, patch: Partial<FlowInput>) {
+ setInputs((prev) => prev.map((x, j) => (j === i ? { ...x, ...patch } : x)));
+ }
+
+ function save() {
+ const cleaned = inputs.filter((i) => (i.name ?? "").trim());
+ onChange({ inputs: cleaned, input_sets: sets });
+ onClose();
+ }
+
+ return (
+ <dialog ref={ref} onClose={onClose}>
+ <h2>{t("inputs_title")}</h2>
+ <p className="hint">{t("inputs_hint")}</p>
+
+ <div className="inputs-list">
+ {inputs.map((inp, i) => (
+ <div className="input-row" key={i}>
+ <div className="fields">
+ {fieldDefs.map((f) => (
+ <label className="field" key={f.key} title={f.help}>
+ <span>{fieldLabel(f, lang)}</span>
+ <input
+ type="text"
+ value={String(inp[f.key as keyof FlowInput] ?? "")}
+ onChange={(e) => setInput(i, { [f.key]: e.target.value } as Partial<FlowInput>)}
+ />
+ </label>
+ ))}
+ </div>
+ <button className="danger tiny" onClick={() => setInputs((prev) => prev.filter((_, j) => j !== i))}>
+ {t("remove")}
+ </button>
+ </div>
+ ))}
+ <button className="secondary" onClick={() => setInputs((prev) => [...prev, { name: "" }])}>
+ {t("inputs_add")}
+ </button>
+ </div>
+
+ {Object.keys(sets).length > 0 && (
+ <>
+ <strong className="inputs-sets-title">{t("inputs_sets")}</strong>
+ {Object.entries(sets).map(([name, vals]) => (
+ <div className="set-row" key={name}>
+ <span>
+ {name} <span className="hint">({Object.keys(vals).length})</span>
+ </span>
+ <span className="spacer" />
+ <button
+ className="secondary tiny"
+ onClick={() => {
+ const nn = prompt(t("inputs_set_rename"), name);
+ if (nn && nn !== name) {
+ setSets(({ [name]: v, ...rest }) => ({ ...rest, [nn]: v }));
+ }
+ }}
+ >
+ {t("inputs_set_rename")}
+ </button>
+ <button
+ className="danger tiny"
+ onClick={() => setSets(({ [name]: _drop, ...rest }) => rest)}
+ >
+ {t("remove")}
+ </button>
+ </div>
+ ))}
+ </>
+ )}
+
+ <div className="dialog-actions">
+ <button type="button" className="secondary" onClick={onClose}>
+ {t("cancel")}
+ </button>
+ <button type="button" onClick={save}>
+ {t("save")}
+ </button>
+ </div>
+ </dialog>
+ );
+}
diff --git a/webui/frontend/src/components/Menu.tsx b/webui/frontend/src/components/Menu.tsx
index 699e889..4640f42 100644
--- a/webui/frontend/src/components/Menu.tsx
+++ b/webui/frontend/src/components/Menu.tsx
@@ -13,6 +13,7 @@ interface Props {
onDelete: () => void;
onOpenSettings: () => void;
onOpenInspect: () => void;
+ onOpenInputs: () => void;
}
export function Menu(p: Props) {
@@ -75,6 +76,9 @@ export function Menu(p: Props) {
<button className="menu-item" onClick={act(p.onOpenSettings)}>
{t("run_settings")}
</button>
+ <button className="menu-item" onClick={act(p.onOpenInputs)}>
+ {t("run_params_menu")}
+ </button>
<div className="menu-section">{t("menu_view")}</div>
<label className="menu-item menu-field">
diff --git a/webui/frontend/src/components/RunDialog.tsx b/webui/frontend/src/components/RunDialog.tsx
new file mode 100644
index 0000000..7d81a5c
--- /dev/null
+++ b/webui/frontend/src/components/RunDialog.tsx
@@ -0,0 +1,152 @@
+import { useEffect, useMemo, useRef, useState } from "react";
+import type { Flow } from "../lib/api";
+import type { T } from "../lib/i18n";
+import { defaultsFor, parseOptions, resolveRunVars } from "../lib/runvars";
+
+interface Props {
+ open: boolean;
+ t: T;
+ flow: Flow;
+ flowName: string | null;
+ onRun: (initialVars: Record<string, string>) => void;
+ onSaveSet: (name: string, values: Record<string, string>) => void;
+ onClose: () => void;
+}
+
+export function RunDialog({ open, t, flow, flowName, onRun, onSaveSet, onClose }: Props) {
+ const ref = useRef<HTMLDialogElement>(null);
+ const inputs = useMemo(() => flow.inputs ?? [], [flow.inputs]);
+ const sets = flow.input_sets ?? {};
+ const setNames = Object.keys(sets);
+
+ const [chosenSet, setChosenSet] = useState("");
+ const [values, setValues] = useState<Record<string, string>>({});
+ const [adhoc, setAdhoc] = useState<{ name: string; value: string }[]>([]);
+
+ useEffect(() => {
+ const d = ref.current;
+ if (!d) return;
+ if (open && !d.open) {
+ d.showModal();
+ let seed = defaultsFor(inputs);
+ try {
+ const last = JSON.parse(localStorage.getItem("rpa_runvars_" + flowName) || "{}");
+ seed = { ...seed, ...last };
+ } catch {
+ /* ignore */
+ }
+ setValues(seed);
+ setChosenSet("");
+ setAdhoc([]);
+ }
+ if (!open && d.open) d.close();
+ }, [open, inputs, flowName]);
+
+ function pickSet(name: string) {
+ setChosenSet(name);
+ if (name && sets[name]) setValues((v) => ({ ...v, ...sets[name] }));
+ }
+
+ function run() {
+ const vars = resolveRunVars(values, adhoc);
+ try {
+ localStorage.setItem("rpa_runvars_" + flowName, JSON.stringify(vars));
+ } catch {
+ /* ignore */
+ }
+ onRun(vars);
+ onClose();
+ }
+
+ function saveAsSet() {
+ const name = prompt(t("runp_set_name_prompt"));
+ if (name) onSaveSet(name, resolveRunVars(values, adhoc));
+ }
+
+ return (
+ <dialog ref={ref} onClose={onClose}>
+ <h2>{t("runp_title")}</h2>
+ <p className="hint">{t("runp_hint")}</p>
+
+ {setNames.length > 0 && (
+ <label className="field">
+ <span>{t("runp_set")}</span>
+ <select value={chosenSet} onChange={(e) => pickSet(e.target.value)}>
+ <option value="">{t("runp_set_none")}</option>
+ {setNames.map((n) => (
+ <option key={n} value={n}>
+ {n}
+ </option>
+ ))}
+ </select>
+ </label>
+ )}
+
+ <div className="fields">
+ {inputs.map((inp) => {
+ const opts = parseOptions(inp.options);
+ const val = values[inp.name] ?? "";
+ return (
+ <label className="field" key={inp.name} title={inp.description}>
+ <span>{inp.label || inp.name}</span>
+ {opts.length > 0 ? (
+ <select value={val} onChange={(e) => setValues((v) => ({ ...v, [inp.name]: e.target.value }))}>
+ {!opts.includes(val) && <option value={val}>{val || "—"}</option>}
+ {opts.map((o) => (
+ <option key={o} value={o}>
+ {o}
+ </option>
+ ))}
+ </select>
+ ) : (
+ <input
+ type="text"
+ value={val}
+ onChange={(e) => setValues((v) => ({ ...v, [inp.name]: e.target.value }))}
+ />
+ )}
+ </label>
+ );
+ })}
+ </div>
+
+ <div className="adhoc">
+ {adhoc.map((row, i) => (
+ <div className="adhoc-row" key={i}>
+ <input
+ type="text"
+ placeholder={t("runp_var_name")}
+ value={row.name}
+ onChange={(e) => setAdhoc((a) => a.map((r, j) => (j === i ? { ...r, name: e.target.value } : r)))}
+ />
+ <input
+ type="text"
+ placeholder={t("runp_var_value")}
+ value={row.value}
+ onChange={(e) => setAdhoc((a) => a.map((r, j) => (j === i ? { ...r, value: e.target.value } : r)))}
+ />
+ <button className="danger tiny" onClick={() => setAdhoc((a) => a.filter((_, j) => j !== i))}>
+ ✕
+ </button>
+ </div>
+ ))}
+ <button className="secondary tiny" onClick={() => setAdhoc((a) => [...a, { name: "", value: "" }])}>
+ {t("runp_add_var")}
+ </button>
+ </div>
+
+ <div className="dialog-actions">
+ <button type="button" className="secondary" onClick={saveAsSet}>
+ {t("runp_save_set")}
+ </button>
+ <span className="spacer" />
+ <button type="button" className="secondary" onClick={onClose}>
+ {t("cancel")}
+ </button>
+ <button type="button" onClick={run}>
+ {t("run")}
+ </button>
+ </div>
+ </dialog>
+ );
+}
diff --git a/webui/frontend/src/lib/api.ts b/webui/frontend/src/lib/api.ts
index b073872..4e1298b 100644
--- a/webui/frontend/src/lib/api.ts
+++ b/webui/frontend/src/lib/api.ts
@@ -1,9 +1,20 @@
import type { Schema } from "./schema";
+export interface FlowInput {
+ name: string;
+ label?: string;
+ default?: string;
+ description?: string;
+ /** komma-separerad sträng i JSON:en; parsas till string[] i UI:t */
+ options?: string;
+}
+
export interface Flow {
steps: Step[];
settings: Record<string, unknown>;
layout?: Record<string, { x: number; y: number }>;
+ inputs?: FlowInput[];
+ input_sets?: Record<string, Record<string, string>>;
}
export interface Step {
@@ -103,11 +114,11 @@ export const api = {
}).then((r) => j<{ ok: boolean }>(r)),
deleteFlow: (name: string) =>
fetch(`/api/flows/${encodeURIComponent(name)}`, { method: "DELETE" }).then((r) => j<{ ok: boolean }>(r)),
- runFlow: (name: string, closeMode: string) =>
+ runFlow: (name: string, closeMode: string, initialVars: Record<string, string> = {}) =>
fetch(`/api/flows/${encodeURIComponent(name)}/run`, {
method: "POST",
headers: { "Content-Type": "application/json" },
- body: JSON.stringify({ close_mode: closeMode }),
+ body: JSON.stringify({ close_mode: closeMode, initial_vars: initialVars }),
}).then((r) => j<{ run_id: string }>(r)),
assist: (name: string, instruction: string, flow: Flow) =>
fetch(`/api/flows/${encodeURIComponent(name)}/assist`, {
diff --git a/webui/frontend/src/lib/i18n.ts b/webui/frontend/src/lib/i18n.ts
index f5ca00e..886b99a 100644
--- a/webui/frontend/src/lib/i18n.ts
+++ b/webui/frontend/src/lib/i18n.ts
@@ -94,6 +94,21 @@ const STRINGS = {
block_saved: "Block saved.",
block_select_first: "Select one or more nodes on the canvas first.",
change_type: "Change step type",
+ run_params_menu: "Run parameters / inputs",
+ runp_title: "Run parameters",
+ runp_hint: "Fill in the flow's input variables, or pick a saved value set. Used as {name} in the steps.",
+ runp_set: "Value set",
+ runp_set_none: "(none)",
+ runp_save_set: "💾 Save as set",
+ runp_set_name_prompt: "Name for the value set:",
+ runp_add_var: "+ Add variable",
+ runp_var_name: "name",
+ runp_var_value: "value",
+ inputs_title: "Run parameters / inputs",
+ inputs_hint: "Declare the variables the flow expects at run time. They appear in the run dialog and resolve as {name}.",
+ inputs_add: "+ Add input",
+ inputs_sets: "Saved value sets",
+ inputs_set_rename: "Rename",
},
sv: {
app_title: "RPA-verktyg",
@@ -185,6 +200,21 @@ const STRINGS = {
block_saved: "Blocket sparat.",
block_select_first: "Markera en eller flera noder på canvasen först.",
change_type: "Byt stegtyp",
+ run_params_menu: "Kör-parametrar / indata",
+ runp_title: "Kör-parametrar",
+ runp_hint: "Fyll i flödets indata-variabler, eller välj ett sparat värde-set. Används som {name} i stegen.",
+ runp_set: "Värde-set",
+ runp_set_none: "(inget)",
+ runp_save_set: "💾 Spara som set",
+ runp_set_name_prompt: "Namn på värde-setet:",
+ runp_add_var: "+ Lägg till variabel",
+ runp_var_name: "namn",
+ runp_var_value: "värde",
+ inputs_title: "Kör-parametrar / indata",
+ inputs_hint: "Deklarera vilka variabler flödet förväntar sig vid körning. De dyker upp i kördialogen och löses som {name}.",
+ inputs_add: "+ Lägg till indata",
+ inputs_sets: "Sparade värde-set",
+ inputs_set_rename: "Döp om",
},
} as const;
diff --git a/webui/frontend/src/lib/runvars.test.ts b/webui/frontend/src/lib/runvars.test.ts
new file mode 100644
index 0000000..f25a2e0
--- /dev/null
+++ b/webui/frontend/src/lib/runvars.test.ts
@@ -0,0 +1,37 @@
+import { describe, expect, it } from "vitest";
+import { defaultsFor, flowHasRunParams, parseOptions, resolveRunVars } from "./runvars";
+
+describe("runvars", () => {
+ it("parseOptions splits and trims", () => {
+ expect(parseOptions("a, b ,c")).toEqual(["a", "b", "c"]);
+ expect(parseOptions("")).toEqual([]);
+ expect(parseOptions(undefined)).toEqual([]);
+ });
+
+ it("defaultsFor only includes inputs with a non-empty default", () => {
+ expect(
+ defaultsFor([
+ { name: "a", default: "4" },
+ { name: "b", default: "" },
+ { name: "c" },
+ ]),
+ ).toEqual({ a: "4" });
+ });
+
+ it("resolveRunVars: adhoc overrides fields, blank adhoc names skipped", () => {
+ expect(
+ resolveRunVars({ org: "4", kö: "20" }, [
+ { name: "org", value: "9" },
+ { name: " ", value: "ignored" },
+ { name: "ny", value: "x" },
+ ]),
+ ).toEqual({ org: "9", kö: "20", ny: "x" });
+ });
+
+ it("flowHasRunParams", () => {
+ expect(flowHasRunParams({})).toBe(false);
+ expect(flowHasRunParams({ inputs: [] })).toBe(false);
+ expect(flowHasRunParams({ inputs: [{ name: "a" }] })).toBe(true);
+ expect(flowHasRunParams({ input_sets: { Test: {} } })).toBe(true);
+ });
+});
diff --git a/webui/frontend/src/lib/runvars.ts b/webui/frontend/src/lib/runvars.ts
new file mode 100644
index 0000000..6ab6fdd
--- /dev/null
+++ b/webui/frontend/src/lib/runvars.ts
@@ -0,0 +1,37 @@
+import type { FlowInput } from "./api";
+
+export function parseOptions(opt?: string): string[] {
+ return (opt ?? "")
+ .split(",")
+ .map((s) => s.trim())
+ .filter(Boolean);
+}
+
+/** Standardvärden ur flödets deklarerade inputs. */
+export function defaultsFor(inputs: FlowInput[]): Record<string, string> {
+ const out: Record<string, string> = {};
+ for (const i of inputs) {
+ if (i.name && i.default != null && i.default !== "") out[i.name] = String(i.default);
+ }
+ return out;
+}
+
+/** Slår ihop fältvärdena med ad-hoc-raderna (ad-hoc vinner). */
+export function resolveRunVars(
+ fieldValues: Record<string, string>,
+ adhoc: { name: string; value: string }[],
+): Record<string, string> {
+ const out: Record<string, string> = { ...fieldValues };
+ for (const a of adhoc) {
+ const n = a.name.trim();
+ if (n) out[n] = a.value;
+ }
+ return out;
+}
+
+export function flowHasRunParams(flow: {
+ inputs?: FlowInput[];
+ input_sets?: Record<string, unknown>;
+}): boolean {
+ return (flow.inputs?.length ?? 0) > 0 || Object.keys(flow.input_sets ?? {}).length > 0;
+}
diff --git a/webui/frontend/src/lib/schema.ts b/webui/frontend/src/lib/schema.ts
index f9d6de8..556e1b6 100644
--- a/webui/frontend/src/lib/schema.ts
+++ b/webui/frontend/src/lib/schema.ts
@@ -48,6 +48,7 @@ export interface Schema {
step_types: StepType[];
condition_kinds: ConditionKind[];
settings: Setting[];
+ input_fields: Field[];
close_modes: string[];
}
diff --git a/webui/frontend/src/styles.css b/webui/frontend/src/styles.css
index bb50390..fc02bb6 100644
--- a/webui/frontend/src/styles.css
+++ b/webui/frontend/src/styles.css
@@ -132,6 +132,17 @@ main { flex: 1; display: grid; grid-template-columns: 210px minmax(0, 1fr) 360px
.inspect-name { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inspect-aid { color: var(--muted); }
+/* --- Kör-parametrar / indata --- */
+.adhoc { margin: 10px 0; }
+.adhoc-row { display: flex; gap: 6px; margin-bottom: 6px; }
+.adhoc-row input { flex: 1; }
+.inputs-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
+.input-row { border: 1px solid var(--border); border-radius: 6px; padding: 8px; display: flex; gap: 8px; align-items: flex-start; }
+.input-row .fields { flex: 1; }
+.inputs-sets-title { display: block; margin: 10px 0 6px; font-size: 13px; }
+.set-row { display: flex; align-items: center; gap: 6px; padding: 6px 4px; border-bottom: 1px solid var(--border); font-size: 13px; }
+dialog h2 ~ .fields { margin-bottom: 10px; }
+
.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-ACtCHcrU.js b/webui/static/assets/index-ACtCHcrU.js
new file mode 100644
index 0000000..3cdbf81
--- /dev/null
+++ b/webui/static/assets/index-ACtCHcrU.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 fh(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var wu={exports:{}},ti={},_u={exports:{}},je={};/**
+ * @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 Vd;function V0(){if(Vd)return je;Vd=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"),h=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),v=Symbol.iterator;function m(P){return P===null||typeof P!="object"?null:(P=v&&P[v]||P["@@iterator"],typeof P=="function"?P:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},S=Object.assign,j={};function C(P,z,te){this.props=P,this.context=z,this.refs=j,this.updater=te||w}C.prototype.isReactComponent={},C.prototype.setState=function(P,z){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,z,"setState")},C.prototype.forceUpdate=function(P){this.updater.enqueueForceUpdate(this,P,"forceUpdate")};function E(){}E.prototype=C.prototype;function T(P,z,te){this.props=P,this.context=z,this.refs=j,this.updater=te||w}var k=T.prototype=new E;k.constructor=T,S(k,C.prototype),k.isPureReactComponent=!0;var M=Array.isArray,$=Object.prototype.hasOwnProperty,L={current:null},B={key:!0,ref:!0,__self:!0,__source:!0};function Y(P,z,te){var ne,ce={},de=null,fe=null;if(z!=null)for(ne in z.ref!==void 0&&(fe=z.ref),z.key!==void 0&&(de=""+z.key),z)$.call(z,ne)&&!B.hasOwnProperty(ne)&&(ce[ne]=z[ne]);var q=arguments.length-2;if(q===1)ce.children=te;else if(1<q){for(var se=Array(q),he=0;he<q;he++)se[he]=arguments[he+2];ce.children=se}if(P&&P.defaultProps)for(ne in q=P.defaultProps,q)ce[ne]===void 0&&(ce[ne]=q[ne]);return{$$typeof:t,type:P,key:de,ref:fe,props:ce,_owner:L.current}}function Q(P,z){return{$$typeof:t,type:P.type,key:z,ref:P.ref,props:P.props,_owner:P._owner}}function ee(P){return typeof P=="object"&&P!==null&&P.$$typeof===t}function J(P){var z={"=":"=0",":":"=2"};return"$"+P.replace(/[=:]/g,function(te){return z[te]})}var X=/\/+/g;function W(P,z){return typeof P=="object"&&P!==null&&P.key!=null?J(""+P.key):z.toString(36)}function N(P,z,te,ne,ce){var de=typeof P;(de==="undefined"||de==="boolean")&&(P=null);var fe=!1;if(P===null)fe=!0;else switch(de){case"string":case"number":fe=!0;break;case"object":switch(P.$$typeof){case t:case r:fe=!0}}if(fe)return fe=P,ce=ce(fe),P=ne===""?"."+W(fe,0):ne,M(ce)?(te="",P!=null&&(te=P.replace(X,"$&/")+"/"),N(ce,z,te,"",function(he){return he})):ce!=null&&(ee(ce)&&(ce=Q(ce,te+(!ce.key||fe&&fe.key===ce.key?"":(""+ce.key).replace(X,"$&/")+"/")+P)),z.push(ce)),1;if(fe=0,ne=ne===""?".":ne+":",M(P))for(var q=0;q<P.length;q++){de=P[q];var se=ne+W(de,q);fe+=N(de,z,te,se,ce)}else if(se=m(P),typeof se=="function")for(P=se.call(P),q=0;!(de=P.next()).done;)de=de.value,se=ne+W(de,q++),fe+=N(de,z,te,se,ce);else if(de==="object")throw z=String(P),Error("Objects are not valid as a React child (found: "+(z==="[object Object]"?"object with keys {"+Object.keys(P).join(", ")+"}":z)+"). If you meant to render a collection of children, use an array instead.");return fe}function H(P,z,te){if(P==null)return P;var ne=[],ce=0;return N(P,ne,"","",function(de){return z.call(te,de,ce++)}),ne}function F(P){if(P._status===-1){var z=P._result;z=z(),z.then(function(te){(P._status===0||P._status===-1)&&(P._status=1,P._result=te)},function(te){(P._status===0||P._status===-1)&&(P._status=2,P._result=te)}),P._status===-1&&(P._status=0,P._result=z)}if(P._status===1)return P._result.default;throw P._result}var U={current:null},A={transition:null},D={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:A,ReactCurrentOwner:L};function O(){throw Error("act(...) is not supported in production builds of React.")}return je.Children={map:H,forEach:function(P,z,te){H(P,function(){z.apply(this,arguments)},te)},count:function(P){var z=0;return H(P,function(){z++}),z},toArray:function(P){return H(P,function(z){return z})||[]},only:function(P){if(!ee(P))throw Error("React.Children.only expected to receive a single React element child.");return P}},je.Component=C,je.Fragment=i,je.Profiler=a,je.PureComponent=T,je.StrictMode=l,je.Suspense=h,je.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=D,je.act=O,je.cloneElement=function(P,z,te){if(P==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+P+".");var ne=S({},P.props),ce=P.key,de=P.ref,fe=P._owner;if(z!=null){if(z.ref!==void 0&&(de=z.ref,fe=L.current),z.key!==void 0&&(ce=""+z.key),P.type&&P.type.defaultProps)var q=P.type.defaultProps;for(se in z)$.call(z,se)&&!B.hasOwnProperty(se)&&(ne[se]=z[se]===void 0&&q!==void 0?q[se]:z[se])}var se=arguments.length-2;if(se===1)ne.children=te;else if(1<se){q=Array(se);for(var he=0;he<se;he++)q[he]=arguments[he+2];ne.children=q}return{$$typeof:t,type:P.type,key:ce,ref:de,props:ne,_owner:fe}},je.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},je.createElement=Y,je.createFactory=function(P){var z=Y.bind(null,P);return z.type=P,z},je.createRef=function(){return{current:null}},je.forwardRef=function(P){return{$$typeof:d,render:P}},je.isValidElement=ee,je.lazy=function(P){return{$$typeof:y,_payload:{_status:-1,_result:P},_init:F}},je.memo=function(P,z){return{$$typeof:g,type:P,compare:z===void 0?null:z}},je.startTransition=function(P){var z=A.transition;A.transition={};try{P()}finally{A.transition=z}},je.unstable_act=O,je.useCallback=function(P,z){return U.current.useCallback(P,z)},je.useContext=function(P){return U.current.useContext(P)},je.useDebugValue=function(){},je.useDeferredValue=function(P){return U.current.useDeferredValue(P)},je.useEffect=function(P,z){return U.current.useEffect(P,z)},je.useId=function(){return U.current.useId()},je.useImperativeHandle=function(P,z,te){return U.current.useImperativeHandle(P,z,te)},je.useInsertionEffect=function(P,z){return U.current.useInsertionEffect(P,z)},je.useLayoutEffect=function(P,z){return U.current.useLayoutEffect(P,z)},je.useMemo=function(P,z){return U.current.useMemo(P,z)},je.useReducer=function(P,z,te){return U.current.useReducer(P,z,te)},je.useRef=function(P){return U.current.useRef(P)},je.useState=function(P){return U.current.useState(P)},je.useSyncExternalStore=function(P,z,te){return U.current.useSyncExternalStore(P,z,te)},je.useTransition=function(){return U.current.useTransition()},je.version="18.3.1",je}var Bd;function vi(){return Bd||(Bd=1,_u.exports=V0()),_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 Ud;function B0(){if(Ud)return ti;Ud=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,h,g){var y,v={},m=null,w=null;g!==void 0&&(m=""+g),h.key!==void 0&&(m=""+h.key),h.ref!==void 0&&(w=h.ref);for(y in h)l.call(h,y)&&!u.hasOwnProperty(y)&&(v[y]=h[y]);if(d&&d.defaultProps)for(y in h=d.defaultProps,h)v[y]===void 0&&(v[y]=h[y]);return{$$typeof:r,type:d,key:m,ref:w,props:v,_owner:a.current}}return ti.Fragment=i,ti.jsx=c,ti.jsxs=c,ti}var Wd;function U0(){return Wd||(Wd=1,wu.exports=B0()),wu.exports}var x=U0(),R=vi();const dh=fh(R);var Bs={},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 Yd;function W0(){return Yd||(Yd=1,(function(t){function r(A,D){var O=A.length;A.push(D);e:for(;0<O;){var P=O-1>>>1,z=A[P];if(0<a(z,D))A[P]=D,A[O]=z,O=P;else break e}}function i(A){return A.length===0?null:A[0]}function l(A){if(A.length===0)return null;var D=A[0],O=A.pop();if(O!==D){A[0]=O;e:for(var P=0,z=A.length,te=z>>>1;P<te;){var ne=2*(P+1)-1,ce=A[ne],de=ne+1,fe=A[de];if(0>a(ce,O))de<z&&0>a(fe,ce)?(A[P]=fe,A[de]=O,P=de):(A[P]=ce,A[ne]=O,P=ne);else if(de<z&&0>a(fe,O))A[P]=fe,A[de]=O,P=de;else break e}}return D}function a(A,D){var O=A.sortIndex-D.sortIndex;return O!==0?O:A.id-D.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 h=[],g=[],y=1,v=null,m=3,w=!1,S=!1,j=!1,C=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,T=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(A){for(var D=i(g);D!==null;){if(D.callback===null)l(g);else if(D.startTime<=A)l(g),D.sortIndex=D.expirationTime,r(h,D);else break;D=i(g)}}function M(A){if(j=!1,k(A),!S)if(i(h)!==null)S=!0,F($);else{var D=i(g);D!==null&&U(M,D.startTime-A)}}function $(A,D){S=!1,j&&(j=!1,E(Y),Y=-1),w=!0;var O=m;try{for(k(D),v=i(h);v!==null&&(!(v.expirationTime>D)||A&&!J());){var P=v.callback;if(typeof P=="function"){v.callback=null,m=v.priorityLevel;var z=P(v.expirationTime<=D);D=t.unstable_now(),typeof z=="function"?v.callback=z:v===i(h)&&l(h),k(D)}else l(h);v=i(h)}if(v!==null)var te=!0;else{var ne=i(g);ne!==null&&U(M,ne.startTime-D),te=!1}return te}finally{v=null,m=O,w=!1}}var L=!1,B=null,Y=-1,Q=5,ee=-1;function J(){return!(t.unstable_now()-ee<Q)}function X(){if(B!==null){var A=t.unstable_now();ee=A;var D=!0;try{D=B(!0,A)}finally{D?W():(L=!1,B=null)}}else L=!1}var W;if(typeof T=="function")W=function(){T(X)};else if(typeof MessageChannel<"u"){var N=new MessageChannel,H=N.port2;N.port1.onmessage=X,W=function(){H.postMessage(null)}}else W=function(){C(X,0)};function F(A){B=A,L||(L=!0,W())}function U(A,D){Y=C(function(){A(t.unstable_now())},D)}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(A){A.callback=null},t.unstable_continueExecution=function(){S||w||(S=!0,F($))},t.unstable_forceFrameRate=function(A){0>A||125<A?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Q=0<A?Math.floor(1e3/A):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_getFirstCallbackNode=function(){return i(h)},t.unstable_next=function(A){switch(m){case 1:case 2:case 3:var D=3;break;default:D=m}var O=m;m=D;try{return A()}finally{m=O}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(A,D){switch(A){case 1:case 2:case 3:case 4:case 5:break;default:A=3}var O=m;m=A;try{return D()}finally{m=O}},t.unstable_scheduleCallback=function(A,D,O){var P=t.unstable_now();switch(typeof O=="object"&&O!==null?(O=O.delay,O=typeof O=="number"&&0<O?P+O:P):O=P,A){case 1:var z=-1;break;case 2:z=250;break;case 5:z=1073741823;break;case 4:z=1e4;break;default:z=5e3}return z=O+z,A={id:y++,callback:D,priorityLevel:A,startTime:O,expirationTime:z,sortIndex:-1},O>P?(A.sortIndex=O,r(g,A),i(h)===null&&A===i(g)&&(j?(E(Y),Y=-1):j=!0,U(M,O-P))):(A.sortIndex=z,r(h,A),S||w||(S=!0,F($))),A},t.unstable_shouldYield=J,t.unstable_wrapCallback=function(A){var D=m;return function(){var O=m;m=D;try{return A.apply(this,arguments)}finally{m=O}}}})(Eu)),Eu}var Xd;function Y0(){return Xd||(Xd=1,ku.exports=W0()),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 Kd;function X0(){if(Kd)return yt;Kd=1;var t=vi(),r=Y0();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"),h=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]*$/,y={},v={};function m(e){return h.call(v,e)?!0:h.call(y,e)?!1:g.test(e)?v[e]=!0:(y[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 j(e,n,o,s,f,p,_){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=p,this.removeEmptyString=_}var C={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){C[e]=new j(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];C[n]=new j(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){C[e]=new j(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){C[e]=new j(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){C[e]=new j(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){C[e]=new j(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){C[e]=new j(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){C[e]=new j(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){C[e]=new j(e,5,!1,e.toLowerCase(),null,!1,!1)});var E=/[\-:]([a-z])/g;function T(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,T);C[n]=new j(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,T);C[n]=new j(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,T);C[n]=new j(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){C[e]=new j(e,1,!1,e.toLowerCase(),null,!1,!1)}),C.xlinkHref=new j("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){C[e]=new j(e,1,!1,e.toLowerCase(),null,!0,!0)});function k(e,n,o,s){var f=C.hasOwnProperty(n)?C[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 M=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,$=Symbol.for("react.element"),L=Symbol.for("react.portal"),B=Symbol.for("react.fragment"),Y=Symbol.for("react.strict_mode"),Q=Symbol.for("react.profiler"),ee=Symbol.for("react.provider"),J=Symbol.for("react.context"),X=Symbol.for("react.forward_ref"),W=Symbol.for("react.suspense"),N=Symbol.for("react.suspense_list"),H=Symbol.for("react.memo"),F=Symbol.for("react.lazy"),U=Symbol.for("react.offscreen"),A=Symbol.iterator;function D(e){return e===null||typeof e!="object"?null:(e=A&&e[A]||e["@@iterator"],typeof e=="function"?e:null)}var O=Object.assign,P;function z(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 te=!1;function ne(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(Z){var s=Z}Reflect.construct(e,[],n)}else{try{n.call()}catch(Z){s=Z}e.call(n.prototype)}else{try{throw Error()}catch(Z){s=Z}e()}}catch(Z){if(Z&&s&&typeof Z.stack=="string"){for(var f=Z.stack.split(`
+`),p=s.stack.split(`
+`),_=f.length-1,I=p.length-1;1<=_&&0<=I&&f[_]!==p[I];)I--;for(;1<=_&&0<=I;_--,I--)if(f[_]!==p[I]){if(_!==1||I!==1)do if(_--,I--,0>I||f[_]!==p[I]){var b=`
+`+f[_].replace(" at new "," at ");return e.displayName&&b.includes("<anonymous>")&&(b=b.replace("<anonymous>",e.displayName)),b}while(1<=_&&0<=I);break}}}finally{te=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?z(e):""}function ce(e){switch(e.tag){case 5:return z(e.type);case 16:return z("Lazy");case 13:return z("Suspense");case 19:return z("SuspenseList");case 0:case 2:case 15:return e=ne(e.type,!1),e;case 11:return e=ne(e.type.render,!1),e;case 1:return e=ne(e.type,!0),e;default:return""}}function de(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 B:return"Fragment";case L:return"Portal";case Q:return"Profiler";case Y:return"StrictMode";case W:return"Suspense";case N:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case J:return(e.displayName||"Context")+".Consumer";case ee:return(e._context.displayName||"Context")+".Provider";case X:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case H:return n=e.displayName||null,n!==null?n:de(e.type)||"Memo";case F:n=e._payload,e=e._init;try{return de(e(n))}catch{}}return null}function fe(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 de(n);case 8:return n===Y?"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 se(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function he(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,p=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return f.call(this)},set:function(_){s=""+_,p.call(this,_)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return s},setValue:function(_){s=""+_},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function we(e){e._valueTracker||(e._valueTracker=he(e))}function xe(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 Se(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 ie(e,n){var o=n.checked;return O({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function ae(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 ke(e,n){n=n.checked,n!=null&&k(e,"checked",n,!1)}function Me(e,n){ke(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 Je(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"||Se(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var nt=Array.isArray;function rt(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 O({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Gt(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(nt(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 qt(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 jt(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"?jt(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Pt,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(Pt=Pt||document.createElement("div"),Pt.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=Pt.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 Gn={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},jl=["Webkit","ms","Moz","O"];Object.keys(Gn).forEach(function(e){jl.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Gn[n]=Gn[e]})});function Ci(e,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||Gn.hasOwnProperty(e)&&Gn[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 Pl=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 fo(e,n){if(n){if(Pl[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 po(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 ho=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,Sn=null,kn=null;function ji(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 Pi(e){Sn?kn?kn.push(e):kn=[e]:Sn=e}function Ti(){if(Sn){var e=Sn,n=kn;if(kn=Sn=null,ji(e),n)for(e=0;e<n.length;e++)ji(n[e])}}function Ii(e,n){return e(n)}function Ri(){}var yo=!1;function zi(e,n,o){if(yo)return e(n,o);yo=!0;try{return Ii(e,n,o)}finally{yo=!1,(Sn!==null||kn!==null)&&(Ri(),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 vo=!1;if(d)try{var Zn={};Object.defineProperty(Zn,"passive",{get:function(){vo=!0}}),window.addEventListener("test",Zn,Zn),window.removeEventListener("test",Zn,Zn)}catch{vo=!1}function Tl(e,n,o,s,f,p,_,I,b){var Z=Array.prototype.slice.call(arguments,3);try{n.apply(o,Z)}catch(oe){this.onError(oe)}}var Jn=!1,Nr=null,Cr=!1,xo=null,Il={onError:function(e){Jn=!0,Nr=e}};function Rl(e,n,o,s,f,p,_,I,b){Jn=!1,Nr=null,Tl.apply(Il,arguments)}function zl(e,n,o,s,f,p,_,I,b){if(Rl.apply(this,arguments),Jn){if(Jn){var Z=Nr;Jn=!1,Nr=null}else throw Error(i(198));Cr||(Cr=!0,xo=Z)}}function Zt(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(Zt(e)!==e)throw Error(i(188))}function Ll(e){var n=e.alternate;if(!n){if(n=Zt(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 p=f.alternate;if(p===null){if(s=f.return,s!==null){o=s;continue}break}if(f.child===p.child){for(p=f.child;p;){if(p===o)return _o(f),e;if(p===s)return _o(f),n;p=p.sibling}throw Error(i(188))}if(o.return!==s.return)o=f,s=p;else{for(var _=!1,I=f.child;I;){if(I===o){_=!0,o=f,s=p;break}if(I===s){_=!0,s=f,o=p;break}I=I.sibling}if(!_){for(I=p.child;I;){if(I===o){_=!0,o=p,s=f;break}if(I===s){_=!0,s=p,o=f;break}I=I.sibling}if(!_)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=Ll(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,bi=r.unstable_cancelCallback,Al=r.unstable_shouldYield,$i=r.unstable_requestPaint,Oe=r.unstable_now,Dl=r.unstable_getCurrentPriorityLevel,So=r.unstable_ImmediatePriority,Oi=r.unstable_UserBlockingPriority,Mr=r.unstable_NormalPriority,bl=r.unstable_LowPriority,Fi=r.unstable_IdlePriority,jr=null,wt=null;function $l(e){if(wt&&typeof wt.onCommitFiberRoot=="function")try{wt.onCommitFiberRoot(jr,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 Pr=64,Tr=4194304;function er(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,p=e.pingedLanes,_=o&268435455;if(_!==0){var I=_&~f;I!==0?s=er(I):(p&=_,p!==0&&(s=er(p)))}else _=o&~f,_!==0?s=er(_):p!==0&&(s=er(p));if(s===0)return 0;if(n!==0&&n!==s&&(n&f)===0&&(f=s&-s,p=n&-n,f>=p||f===16&&(p&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 Vl(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,p=e.pendingLanes;0<p;){var _=31-_t(p),I=1<<_,b=f[_];b===-1?((I&o)===0||(I&s)!==0)&&(f[_]=Vl(I,n)):b<=n&&(e.expiredLanes|=I),p&=~I}}function ko(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Vi(){var e=Pr;return Pr<<=1,(Pr&4194240)===0&&(Pr=64),e}function tr(e){for(var n=[],o=0;31>o;o++)n.push(e);return n}function nr(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 Bl(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),p=1<<f;n[f]=0,s[f]=-1,e[f]=-1,o&=~p}}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 Re=0;function xc(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var wc,Ul,_c,Sc,kc,Wl=!1,Bi=[],En=null,Nn=null,Cn=null,Eo=new Map,No=new Map,Mn=[],cm="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 Ec(e,n){switch(e){case"focusin":case"focusout":En=null;break;case"dragenter":case"dragleave":Nn=null;break;case"mouseover":case"mouseout":Cn=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,p){return e===null||e.nativeEvent!==p?(e={blockedOn:n,domEventName:o,eventSystemFlags:s,nativeEvent:p,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 fm(e,n,o,s,f){switch(n){case"focusin":return En=Co(En,e,n,o,s,f),!0;case"dragenter":return Nn=Co(Nn,e,n,o,s,f),!0;case"mouseover":return Cn=Co(Cn,e,n,o,s,f),!0;case"pointerover":var p=f.pointerId;return Eo.set(p,Co(Eo.get(p)||null,e,n,o,s,f)),!0;case"gotpointercapture":return p=f.pointerId,No.set(p,Co(No.get(p)||null,e,n,o,s,f)),!0}return!1}function Nc(e){var n=rr(e.target);if(n!==null){var o=Zt(n);if(o!==null){if(n=o.tag,n===13){if(n=wo(o),n!==null){e.blockedOn=n,kc(e.priority,function(){_c(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);ho=s,o.target.dispatchEvent(s),ho=null}else return n=Fo(o),n!==null&&Ul(n),e.blockedOn=o,!1;n.shift()}return!0}function Cc(e,n,o){Ui(e)&&o.delete(n)}function dm(){Wl=!1,En!==null&&Ui(En)&&(En=null),Nn!==null&&Ui(Nn)&&(Nn=null),Cn!==null&&Ui(Cn)&&(Cn=null),Eo.forEach(Cc),No.forEach(Cc)}function Mo(e,n){e.blockedOn===n&&(e.blockedOn=null,Wl||(Wl=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,dm)))}function jo(e){function n(f){return Mo(f,e)}if(0<Bi.length){Mo(Bi[0],e);for(var o=1;o<Bi.length;o++){var s=Bi[o];s.blockedOn===e&&(s.blockedOn=null)}}for(En!==null&&Mo(En,e),Nn!==null&&Mo(Nn,e),Cn!==null&&Mo(Cn,e),Eo.forEach(n),No.forEach(n),o=0;o<Mn.length;o++)s=Mn[o],s.blockedOn===e&&(s.blockedOn=null);for(;0<Mn.length&&(o=Mn[0],o.blockedOn===null);)Nc(o),o.blockedOn===null&&Mn.shift()}var Rr=M.ReactCurrentBatchConfig,Wi=!0;function pm(e,n,o,s){var f=Re,p=Rr.transition;Rr.transition=null;try{Re=1,Yl(e,n,o,s)}finally{Re=f,Rr.transition=p}}function hm(e,n,o,s){var f=Re,p=Rr.transition;Rr.transition=null;try{Re=4,Yl(e,n,o,s)}finally{Re=f,Rr.transition=p}}function Yl(e,n,o,s){if(Wi){var f=Xl(e,n,o,s);if(f===null)ca(e,n,s,Yi,o),Ec(e,s);else if(fm(f,e,n,o,s))s.stopPropagation();else if(Ec(e,s),n&4&&-1<cm.indexOf(e)){for(;f!==null;){var p=Fo(f);if(p!==null&&wc(p),p=Xl(e,n,o,s),p===null&&ca(e,n,s,Yi,o),p===f)break;f=p}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=rr(e),e!==null)if(n=Zt(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 Mc(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 bl:return 16;case Fi:return 536870912;default:return 16}default:return 16}}var jn=null,Kl=null,Xi=null;function jc(){if(Xi)return Xi;var e,n=Kl,o=n.length,s,f="value"in jn?jn.value:jn.textContent,p=f.length;for(e=0;e<o&&n[e]===f[e];e++);var _=o-e;for(s=1;s<=_&&n[o-s]===f[p-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 Pc(){return!1}function St(e){function n(o,s,f,p,_){this._reactName=o,this._targetInst=f,this.type=s,this.nativeEvent=p,this.target=_,this.currentTarget=null;for(var I in e)e.hasOwnProperty(I)&&(o=e[I],this[I]=o?o(p):p[I]);return this.isDefaultPrevented=(p.defaultPrevented!=null?p.defaultPrevented:p.returnValue===!1)?Qi:Pc,this.isPropagationStopped=Pc,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=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 zr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Ql=St(zr),Po=O({},zr,{view:0,detail:0}),gm=St(Po),Gl,ql,To,Gi=O({},Po,{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}}),Tc=St(Gi),mm=O({},Gi,{dataTransfer:0}),ym=St(mm),vm=O({},Po,{relatedTarget:0}),Zl=St(vm),xm=O({},zr,{animationName:0,elapsedTime:0,pseudoElement:0}),wm=St(xm),_m=O({},zr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Sm=St(_m),km=O({},zr,{data:0}),Ic=St(km),Em={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Nm={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"},Cm={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Mm(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=Cm[e])?!!n[e]:!1}function Jl(){return Mm}var jm=O({},Po,{key:function(e){if(e.key){var n=Em[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"?Nm[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(jm),Tm=O({},Gi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Rc=St(Tm),Im=O({},Po,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Jl}),Rm=St(Im),zm=O({},zr,{propertyName:0,elapsedTime:0,pseudoElement:0}),Lm=St(zm),Am=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}),Dm=St(Am),bm=[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,zc=d&&(!ea||Io&&8<Io&&11>=Io),Lc=" ",Ac=!1;function Dc(e,n){switch(e){case"keyup":return bm.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Lr=!1;function Om(e,n){switch(e){case"compositionend":return bc(n);case"keypress":return n.which!==32?null:(Ac=!0,Lc);case"textInput":return e=n.data,e===Lc&&Ac?null:e;default:return null}}function Fm(e,n){if(Lr)return e==="compositionend"||!ea&&Dc(e,n)?(e=jc(),Xi=Kl=jn=null,Lr=!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 Hm={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 $c(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!Hm[e.type]:n==="textarea"}function Oc(e,n,o,s){Pi(s),n=ts(n,"onChange"),0<n.length&&(o=new Ql("onChange","change",null,o,s),e.push({event:o,listeners:n}))}var Ro=null,zo=null;function Vm(e){rf(e,0)}function qi(e){var n=Or(e);if(xe(n))return e}function Bm(e,n){if(e==="change")return n}var Fc=!1;if(d){var ta;if(d){var na="oninput"in document;if(!na){var Hc=document.createElement("div");Hc.setAttribute("oninput","return;"),na=typeof Hc.oninput=="function"}ta=na}else ta=!1;Fc=ta&&(!document.documentMode||9<document.documentMode)}function Vc(){Ro&&(Ro.detachEvent("onpropertychange",Bc),zo=Ro=null)}function Bc(e){if(e.propertyName==="value"&&qi(zo)){var n=[];Oc(n,zo,e,go(e)),zi(Vm,n)}}function Um(e,n,o){e==="focusin"?(Vc(),Ro=n,zo=o,Ro.attachEvent("onpropertychange",Bc)):e==="focusout"&&Vc()}function Wm(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return qi(zo)}function Ym(e,n){if(e==="click")return qi(n)}function Xm(e,n){if(e==="input"||e==="change")return qi(n)}function Km(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Dt=typeof Object.is=="function"?Object.is:Km;function Lo(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(!h.call(n,f)||!Dt(e[f],n[f]))return!1}return!0}function Uc(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Wc(e,n){var o=Uc(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=Uc(o)}}function Yc(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Yc(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Xc(){for(var e=window,n=Se();n instanceof e.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)e=n.contentWindow;else break;n=Se(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 Qm(e){var n=Xc(),o=e.focusedElem,s=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&Yc(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,p=Math.min(s.start,f);s=s.end===void 0?p:Math.min(s.end,f),!e.extend&&p>s&&(f=s,s=p,p=f),f=Wc(o,p);var _=Wc(o,s);f&&_&&(e.rangeCount!==1||e.anchorNode!==f.node||e.anchorOffset!==f.offset||e.focusNode!==_.node||e.focusOffset!==_.offset)&&(n=n.createRange(),n.setStart(f.node,f.offset),e.removeAllRanges(),p>s?(e.addRange(n),e.extend(_.node,_.offset)):(n.setEnd(_.node,_.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 Gm=d&&"documentMode"in document&&11>=document.documentMode,Ar=null,oa=null,Ao=null,ia=!1;function Kc(e,n,o){var s=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;ia||Ar==null||Ar!==Se(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&&Lo(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 Gc=Ji("animationend"),qc=Ji("animationiteration"),Zc=Ji("animationstart"),Jc=Ji("transitionend"),ef=new Map,tf="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){ef.set(e,n),u(n,[e])}for(var la=0;la<tf.length;la++){var aa=tf[la],qm=aa.toLowerCase(),Zm=aa[0].toUpperCase()+aa.slice(1);Pn(qm,"on"+Zm)}Pn(Gc,"onAnimationEnd"),Pn(qc,"onAnimationIteration"),Pn(Zc,"onAnimationStart"),Pn("dblclick","onDoubleClick"),Pn("focusin","onFocus"),Pn("focusout","onBlur"),Pn(Jc,"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(" "),Jm=new Set("cancel close invalid load scroll toggle".split(" ").concat(Do));function nf(e,n,o){var s=e.type||"unknown-event";e.currentTarget=o,zl(s,n,void 0,e),e.currentTarget=null}function rf(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 p=void 0;if(n)for(var _=s.length-1;0<=_;_--){var I=s[_],b=I.instance,Z=I.currentTarget;if(I=I.listener,b!==p&&f.isPropagationStopped())break e;nf(f,I,Z),p=b}else for(_=0;_<s.length;_++){if(I=s[_],b=I.instance,Z=I.currentTarget,I=I.listener,b!==p&&f.isPropagationStopped())break e;nf(f,I,Z),p=b}}}if(Cr)throw e=xo,Cr=!1,xo=null,e}function Le(e,n){var o=n[ma];o===void 0&&(o=n[ma]=new Set);var s=e+"__bubble";o.has(s)||(of(n,e,2,!1),o.add(s))}function ua(e,n,o){var s=0;n&&(s|=4),of(o,e,s,n)}var es="_reactListening"+Math.random().toString(36).slice(2);function bo(e){if(!e[es]){e[es]=!0,l.forEach(function(o){o!=="selectionchange"&&(Jm.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 of(e,n,o,s){switch(Mc(n)){case 1:var f=pm;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 p=s;if((n&1)===0&&(n&2)===0&&s!==null)e:for(;;){if(s===null)return;var _=s.tag;if(_===3||_===4){var I=s.stateNode.containerInfo;if(I===f||I.nodeType===8&&I.parentNode===f)break;if(_===4)for(_=s.return;_!==null;){var b=_.tag;if((b===3||b===4)&&(b=_.stateNode.containerInfo,b===f||b.nodeType===8&&b.parentNode===f))return;_=_.return}for(;I!==null;){if(_=rr(I),_===null)return;if(b=_.tag,b===5||b===6){s=p=_;continue e}I=I.parentNode}}s=s.return}zi(function(){var Z=p,oe=go(o),le=[];e:{var re=ef.get(e);if(re!==void 0){var pe=Ql,me=e;switch(e){case"keypress":if(Ki(o)===0)break e;case"keydown":case"keyup":pe=Pm;break;case"focusin":me="focus",pe=Zl;break;case"focusout":me="blur",pe=Zl;break;case"beforeblur":case"afterblur":pe=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":pe=Tc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":pe=ym;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":pe=Rm;break;case Gc:case qc:case Zc:pe=wm;break;case Jc:pe=Lm;break;case"scroll":pe=gm;break;case"wheel":pe=Dm;break;case"copy":case"cut":case"paste":pe=Sm;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":pe=Rc}var ye=(n&4)!==0,Ue=!ye&&e==="scroll",K=ye?re!==null?re+"Capture":null:re;ye=[];for(var V=Z,G;V!==null;){G=V;var ue=G.stateNode;if(G.tag===5&&ue!==null&&(G=ue,K!==null&&(ue=qn(V,K),ue!=null&&ye.push($o(V,ue,G)))),Ue)break;V=V.return}0<ye.length&&(re=new pe(re,me,null,o,oe),le.push({event:re,listeners:ye}))}}if((n&7)===0){e:{if(re=e==="mouseover"||e==="pointerover",pe=e==="mouseout"||e==="pointerout",re&&o!==ho&&(me=o.relatedTarget||o.fromElement)&&(rr(me)||me[cn]))break e;if((pe||re)&&(re=oe.window===oe?oe:(re=oe.ownerDocument)?re.defaultView||re.parentWindow:window,pe?(me=o.relatedTarget||o.toElement,pe=Z,me=me?rr(me):null,me!==null&&(Ue=Zt(me),me!==Ue||me.tag!==5&&me.tag!==6)&&(me=null)):(pe=null,me=Z),pe!==me)){if(ye=Tc,ue="onMouseLeave",K="onMouseEnter",V="mouse",(e==="pointerout"||e==="pointerover")&&(ye=Rc,ue="onPointerLeave",K="onPointerEnter",V="pointer"),Ue=pe==null?re:Or(pe),G=me==null?re:Or(me),re=new ye(ue,V+"leave",pe,o,oe),re.target=Ue,re.relatedTarget=G,ue=null,rr(oe)===Z&&(ye=new ye(K,V+"enter",me,o,oe),ye.target=G,ye.relatedTarget=Ue,ue=ye),Ue=ue,pe&&me)t:{for(ye=pe,K=me,V=0,G=ye;G;G=br(G))V++;for(G=0,ue=K;ue;ue=br(ue))G++;for(;0<V-G;)ye=br(ye),V--;for(;0<G-V;)K=br(K),G--;for(;V--;){if(ye===K||K!==null&&ye===K.alternate)break t;ye=br(ye),K=br(K)}ye=null}else ye=null;pe!==null&&sf(le,re,pe,ye,!1),me!==null&&Ue!==null&&sf(le,Ue,me,ye,!0)}}e:{if(re=Z?Or(Z):window,pe=re.nodeName&&re.nodeName.toLowerCase(),pe==="select"||pe==="input"&&re.type==="file")var ve=Bm;else if($c(re))if(Fc)ve=Xm;else{ve=Wm;var Ee=Um}else(pe=re.nodeName)&&pe.toLowerCase()==="input"&&(re.type==="checkbox"||re.type==="radio")&&(ve=Ym);if(ve&&(ve=ve(e,Z))){Oc(le,ve,o,oe);break e}Ee&&Ee(e,re,Z),e==="focusout"&&(Ee=re._wrapperState)&&Ee.controlled&&re.type==="number"&&ct(re,"number",re.value)}switch(Ee=Z?Or(Z):window,e){case"focusin":($c(Ee)||Ee.contentEditable==="true")&&(Ar=Ee,oa=Z,Ao=null);break;case"focusout":Ao=oa=Ar=null;break;case"mousedown":ia=!0;break;case"contextmenu":case"mouseup":case"dragend":ia=!1,Kc(le,o,oe);break;case"selectionchange":if(Gm)break;case"keydown":case"keyup":Kc(le,o,oe)}var Ne;if(ea)e:{switch(e){case"compositionstart":var Ce="onCompositionStart";break e;case"compositionend":Ce="onCompositionEnd";break e;case"compositionupdate":Ce="onCompositionUpdate";break e}Ce=void 0}else Lr?Dc(e,o)&&(Ce="onCompositionEnd"):e==="keydown"&&o.keyCode===229&&(Ce="onCompositionStart");Ce&&(zc&&o.locale!=="ko"&&(Lr||Ce!=="onCompositionStart"?Ce==="onCompositionEnd"&&Lr&&(Ne=jc()):(jn=oe,Kl="value"in jn?jn.value:jn.textContent,Lr=!0)),Ee=ts(Z,Ce),0<Ee.length&&(Ce=new Ic(Ce,e,null,o,oe),le.push({event:Ce,listeners:Ee}),Ne?Ce.data=Ne:(Ne=bc(o),Ne!==null&&(Ce.data=Ne)))),(Ne=$m?Om(e,o):Fm(e,o))&&(Z=ts(Z,"onBeforeInput"),0<Z.length&&(oe=new Ic("onBeforeInput","beforeinput",null,o,oe),le.push({event:oe,listeners:Z}),oe.data=Ne))}rf(le,n)})}function $o(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,p=f.stateNode;f.tag===5&&p!==null&&(f=p,p=qn(e,o),p!=null&&s.unshift($o(e,p,f)),p=qn(e,n),p!=null&&s.push($o(e,p,f))),e=e.return}return s}function br(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function sf(e,n,o,s,f){for(var p=n._reactName,_=[];o!==null&&o!==s;){var I=o,b=I.alternate,Z=I.stateNode;if(b!==null&&b===s)break;I.tag===5&&Z!==null&&(I=Z,f?(b=qn(o,p),b!=null&&_.unshift($o(o,b,I))):f||(b=qn(o,p),b!=null&&_.push($o(o,b,I)))),o=o.return}_.length!==0&&e.push({event:n,listeners:_})}var e0=/\r\n?/g,t0=/\u0000|\uFFFD/g;function lf(e){return(typeof e=="string"?e:""+e).replace(e0,`
+`).replace(t0,"")}function ns(e,n,o){if(n=lf(n),lf(e)!==n&&o)throw Error(i(425))}function rs(){}var fa=null,da=null;function pa(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 ha=typeof setTimeout=="function"?setTimeout:void 0,n0=typeof clearTimeout=="function"?clearTimeout:void 0,af=typeof Promise=="function"?Promise:void 0,r0=typeof queueMicrotask=="function"?queueMicrotask:typeof af<"u"?function(e){return af.resolve(null).then(e).catch(o0)}:ha;function o0(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),jo(n);return}s--}else o!=="$"&&o!=="$?"&&o!=="$!"||s++;o=f}while(o);jo(n)}function Tn(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 uf(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 $r=Math.random().toString(36).slice(2),Jt="__reactFiber$"+$r,Oo="__reactProps$"+$r,cn="__reactContainer$"+$r,ma="__reactEvents$"+$r,i0="__reactListeners$"+$r,s0="__reactHandles$"+$r;function rr(e){var n=e[Jt];if(n)return n;for(var o=e.parentNode;o;){if(n=o[cn]||o[Jt]){if(o=n.alternate,n.child!==null||o!==null&&o.child!==null)for(e=uf(e);e!==null;){if(o=e[Jt])return o;e=uf(e)}return n}e=o,o=e.parentNode}return null}function Fo(e){return e=e[Jt]||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 In(e){return{current:e}}function Ae(e){0>Fr||(e.current=ya[Fr],ya[Fr]=null,Fr--)}function ze(e,n){Fr++,ya[Fr]=e.current,e.current=n}var Rn={},ot=In(Rn),dt=In(!1),or=Rn;function Hr(e,n){var o=e.type.contextTypes;if(!o)return Rn;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===n)return s.__reactInternalMemoizedMaskedChildContext;var f={},p;for(p in o)f[p]=n[p];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=f),f}function pt(e){return e=e.childContextTypes,e!=null}function is(){Ae(dt),Ae(ot)}function cf(e,n,o){if(ot.current!==Rn)throw Error(i(168));ze(ot,n),ze(dt,o)}function ff(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,fe(e)||"Unknown",f));return O({},o,s)}function ss(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Rn,or=ot.current,ze(ot,e),ze(dt,dt.current),!0}function df(e,n,o){var s=e.stateNode;if(!s)throw Error(i(169));o?(e=ff(e,n,or),s.__reactInternalMemoizedMergedChildContext=e,Ae(dt),Ae(ot),ze(ot,e)):Ae(dt),ze(dt,o)}var fn=null,ls=!1,va=!1;function pf(e){fn===null?fn=[e]:fn.push(e)}function l0(e){ls=!0,pf(e)}function zn(){if(!va&&fn!==null){va=!0;var e=0,n=Re;try{var o=fn;for(Re=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{Re=n,va=!1}}return null}var Vr=[],Br=0,as=null,us=0,Tt=[],It=0,ir=null,dn=1,pn="";function sr(e,n){Vr[Br++]=us,Vr[Br++]=as,as=e,us=n}function hf(e,n,o){Tt[It++]=dn,Tt[It++]=pn,Tt[It++]=ir,ir=e;var s=dn;e=pn;var f=32-_t(s)-1;s&=~(1<<f),o+=1;var p=32-_t(n)+f;if(30<p){var _=f-f%5;p=(s&(1<<_)-1).toString(32),s>>=_,f-=_,dn=1<<32-_t(n)+f|o<<f|s,pn=p+e}else dn=1<<p|o<<f|s,pn=e}function xa(e){e.return!==null&&(sr(e,1),hf(e,1,0))}function wa(e){for(;e===as;)as=Vr[--Br],Vr[Br]=null,us=Vr[--Br],Vr[Br]=null;for(;e===ir;)ir=Tt[--It],Tt[It]=null,pn=Tt[--It],Tt[It]=null,dn=Tt[--It],Tt[It]=null}var kt=null,Et=null,be=!1,bt=null;function gf(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 mf(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=Tn(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=ir!==null?{id:dn,overflow:pn}: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(be){var n=Et;if(n){var o=n;if(!mf(e,n)){if(_a(e))throw Error(i(418));n=Tn(o.nextSibling);var s=kt;n&&mf(e,n)?gf(s,o):(e.flags=e.flags&-4097|2,be=!1,kt=e)}}else{if(_a(e))throw Error(i(418));e.flags=e.flags&-4097|2,be=!1,kt=e}}}function yf(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(!be)return yf(e),be=!0,!1;var n;if((n=e.tag!==3)&&!(n=e.tag!==5)&&(n=e.type,n=n!=="head"&&n!=="body"&&!pa(e.type,e.memoizedProps)),n&&(n=Et)){if(_a(e))throw vf(),Error(i(418));for(;n;)gf(e,n),n=Tn(n.nextSibling)}if(yf(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=Tn(e.nextSibling);break e}n--}else o!=="$"&&o!=="$!"&&o!=="$?"||n++}e=e.nextSibling}Et=null}}else Et=kt?Tn(e.stateNode.nextSibling):null;return!0}function vf(){for(var e=Et;e;)e=Tn(e.nextSibling)}function Ur(){Et=kt=null,be=!1}function ka(e){bt===null?bt=[e]:bt.push(e)}var a0=M.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,p=""+e;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===p?n.ref:(n=function(_){var I=f.refs;_===null?delete I[p]:I[p]=_},n._stringRef=p,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 xf(e){var n=e._init;return n(e._payload)}function wf(e){function n(K,V){if(e){var G=K.deletions;G===null?(K.deletions=[V],K.flags|=16):G.push(V)}}function o(K,V){if(!e)return null;for(;V!==null;)n(K,V),V=V.sibling;return null}function s(K,V){for(K=new Map;V!==null;)V.key!==null?K.set(V.key,V):K.set(V.index,V),V=V.sibling;return K}function f(K,V){return K=Hn(K,V),K.index=0,K.sibling=null,K}function p(K,V,G){return K.index=G,e?(G=K.alternate,G!==null?(G=G.index,G<V?(K.flags|=2,V):G):(K.flags|=2,V)):(K.flags|=1048576,V)}function _(K){return e&&K.alternate===null&&(K.flags|=2),K}function I(K,V,G,ue){return V===null||V.tag!==6?(V=hu(G,K.mode,ue),V.return=K,V):(V=f(V,G),V.return=K,V)}function b(K,V,G,ue){var ve=G.type;return ve===B?oe(K,V,G.props.children,ue,G.key):V!==null&&(V.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===F&&xf(ve)===V.type)?(ue=f(V,G.props),ue.ref=Ho(K,V,G),ue.return=K,ue):(ue=As(G.type,G.key,G.props,null,K.mode,ue),ue.ref=Ho(K,V,G),ue.return=K,ue)}function Z(K,V,G,ue){return V===null||V.tag!==4||V.stateNode.containerInfo!==G.containerInfo||V.stateNode.implementation!==G.implementation?(V=gu(G,K.mode,ue),V.return=K,V):(V=f(V,G.children||[]),V.return=K,V)}function oe(K,V,G,ue,ve){return V===null||V.tag!==7?(V=hr(G,K.mode,ue,ve),V.return=K,V):(V=f(V,G),V.return=K,V)}function le(K,V,G){if(typeof V=="string"&&V!==""||typeof V=="number")return V=hu(""+V,K.mode,G),V.return=K,V;if(typeof V=="object"&&V!==null){switch(V.$$typeof){case $:return G=As(V.type,V.key,V.props,null,K.mode,G),G.ref=Ho(K,null,V),G.return=K,G;case L:return V=gu(V,K.mode,G),V.return=K,V;case F:var ue=V._init;return le(K,ue(V._payload),G)}if(nt(V)||D(V))return V=hr(V,K.mode,G,null),V.return=K,V;fs(K,V)}return null}function re(K,V,G,ue){var ve=V!==null?V.key:null;if(typeof G=="string"&&G!==""||typeof G=="number")return ve!==null?null:I(K,V,""+G,ue);if(typeof G=="object"&&G!==null){switch(G.$$typeof){case $:return G.key===ve?b(K,V,G,ue):null;case L:return G.key===ve?Z(K,V,G,ue):null;case F:return ve=G._init,re(K,V,ve(G._payload),ue)}if(nt(G)||D(G))return ve!==null?null:oe(K,V,G,ue,null);fs(K,G)}return null}function pe(K,V,G,ue,ve){if(typeof ue=="string"&&ue!==""||typeof ue=="number")return K=K.get(G)||null,I(V,K,""+ue,ve);if(typeof ue=="object"&&ue!==null){switch(ue.$$typeof){case $:return K=K.get(ue.key===null?G:ue.key)||null,b(V,K,ue,ve);case L:return K=K.get(ue.key===null?G:ue.key)||null,Z(V,K,ue,ve);case F:var Ee=ue._init;return pe(K,V,G,Ee(ue._payload),ve)}if(nt(ue)||D(ue))return K=K.get(G)||null,oe(V,K,ue,ve,null);fs(V,ue)}return null}function me(K,V,G,ue){for(var ve=null,Ee=null,Ne=V,Ce=V=0,Ze=null;Ne!==null&&Ce<G.length;Ce++){Ne.index>Ce?(Ze=Ne,Ne=null):Ze=Ne.sibling;var Ie=re(K,Ne,G[Ce],ue);if(Ie===null){Ne===null&&(Ne=Ze);break}e&&Ne&&Ie.alternate===null&&n(K,Ne),V=p(Ie,V,Ce),Ee===null?ve=Ie:Ee.sibling=Ie,Ee=Ie,Ne=Ze}if(Ce===G.length)return o(K,Ne),be&&sr(K,Ce),ve;if(Ne===null){for(;Ce<G.length;Ce++)Ne=le(K,G[Ce],ue),Ne!==null&&(V=p(Ne,V,Ce),Ee===null?ve=Ne:Ee.sibling=Ne,Ee=Ne);return be&&sr(K,Ce),ve}for(Ne=s(K,Ne);Ce<G.length;Ce++)Ze=pe(Ne,K,Ce,G[Ce],ue),Ze!==null&&(e&&Ze.alternate!==null&&Ne.delete(Ze.key===null?Ce:Ze.key),V=p(Ze,V,Ce),Ee===null?ve=Ze:Ee.sibling=Ze,Ee=Ze);return e&&Ne.forEach(function(Vn){return n(K,Vn)}),be&&sr(K,Ce),ve}function ye(K,V,G,ue){var ve=D(G);if(typeof ve!="function")throw Error(i(150));if(G=ve.call(G),G==null)throw Error(i(151));for(var Ee=ve=null,Ne=V,Ce=V=0,Ze=null,Ie=G.next();Ne!==null&&!Ie.done;Ce++,Ie=G.next()){Ne.index>Ce?(Ze=Ne,Ne=null):Ze=Ne.sibling;var Vn=re(K,Ne,Ie.value,ue);if(Vn===null){Ne===null&&(Ne=Ze);break}e&&Ne&&Vn.alternate===null&&n(K,Ne),V=p(Vn,V,Ce),Ee===null?ve=Vn:Ee.sibling=Vn,Ee=Vn,Ne=Ze}if(Ie.done)return o(K,Ne),be&&sr(K,Ce),ve;if(Ne===null){for(;!Ie.done;Ce++,Ie=G.next())Ie=le(K,Ie.value,ue),Ie!==null&&(V=p(Ie,V,Ce),Ee===null?ve=Ie:Ee.sibling=Ie,Ee=Ie);return be&&sr(K,Ce),ve}for(Ne=s(K,Ne);!Ie.done;Ce++,Ie=G.next())Ie=pe(Ne,K,Ce,Ie.value,ue),Ie!==null&&(e&&Ie.alternate!==null&&Ne.delete(Ie.key===null?Ce:Ie.key),V=p(Ie,V,Ce),Ee===null?ve=Ie:Ee.sibling=Ie,Ee=Ie);return e&&Ne.forEach(function(H0){return n(K,H0)}),be&&sr(K,Ce),ve}function Ue(K,V,G,ue){if(typeof G=="object"&&G!==null&&G.type===B&&G.key===null&&(G=G.props.children),typeof G=="object"&&G!==null){switch(G.$$typeof){case $:e:{for(var ve=G.key,Ee=V;Ee!==null;){if(Ee.key===ve){if(ve=G.type,ve===B){if(Ee.tag===7){o(K,Ee.sibling),V=f(Ee,G.props.children),V.return=K,K=V;break e}}else if(Ee.elementType===ve||typeof ve=="object"&&ve!==null&&ve.$$typeof===F&&xf(ve)===Ee.type){o(K,Ee.sibling),V=f(Ee,G.props),V.ref=Ho(K,Ee,G),V.return=K,K=V;break e}o(K,Ee);break}else n(K,Ee);Ee=Ee.sibling}G.type===B?(V=hr(G.props.children,K.mode,ue,G.key),V.return=K,K=V):(ue=As(G.type,G.key,G.props,null,K.mode,ue),ue.ref=Ho(K,V,G),ue.return=K,K=ue)}return _(K);case L:e:{for(Ee=G.key;V!==null;){if(V.key===Ee)if(V.tag===4&&V.stateNode.containerInfo===G.containerInfo&&V.stateNode.implementation===G.implementation){o(K,V.sibling),V=f(V,G.children||[]),V.return=K,K=V;break e}else{o(K,V);break}else n(K,V);V=V.sibling}V=gu(G,K.mode,ue),V.return=K,K=V}return _(K);case F:return Ee=G._init,Ue(K,V,Ee(G._payload),ue)}if(nt(G))return me(K,V,G,ue);if(D(G))return ye(K,V,G,ue);fs(K,G)}return typeof G=="string"&&G!==""||typeof G=="number"?(G=""+G,V!==null&&V.tag===6?(o(K,V.sibling),V=f(V,G),V.return=K,K=V):(o(K,V),V=hu(G,K.mode,ue),V.return=K,K=V),_(K)):o(K,V)}return Ue}var Wr=wf(!0),_f=wf(!1),ds=In(null),ps=null,Yr=null,Ea=null;function Na(){Ea=Yr=ps=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){ps=e,Ea=Yr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(ht=!0),e.firstContext=null)}function Rt(e){var n=e._currentValue;if(Ea!==e)if(e={context:e,memoizedValue:n,next:null},Yr===null){if(ps===null)throw Error(i(308));Yr=e,ps.dependencies={lanes:0,firstContext:e}}else Yr=Yr.next=e;return n}var lr=null;function ja(e){lr===null?lr=[e]:lr.push(e)}function Sf(e,n,o,s){var f=n.interleaved;return f===null?(o.next=o,ja(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 Ln=!1;function Pa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function kf(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 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,ja(s)):(n.next=f.next,f.next=n),s.interleaved=n,hn(e,o)}function hs(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 Ef(e,n){var o=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,o===s)){var f=null,p=null;if(o=o.firstBaseUpdate,o!==null){do{var _={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};p===null?f=p=_:p=p.next=_,o=o.next}while(o!==null);p===null?f=p=n:p=p.next=n}else f=p=n;o={baseState:s.baseState,firstBaseUpdate:f,lastBaseUpdate:p,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 p=f.firstBaseUpdate,_=f.lastBaseUpdate,I=f.shared.pending;if(I!==null){f.shared.pending=null;var b=I,Z=b.next;b.next=null,_===null?p=Z:_.next=Z,_=b;var oe=e.alternate;oe!==null&&(oe=oe.updateQueue,I=oe.lastBaseUpdate,I!==_&&(I===null?oe.firstBaseUpdate=Z:I.next=Z,oe.lastBaseUpdate=b))}if(p!==null){var le=f.baseState;_=0,oe=Z=b=null,I=p;do{var re=I.lane,pe=I.eventTime;if((s&re)===re){oe!==null&&(oe=oe.next={eventTime:pe,lane:0,tag:I.tag,payload:I.payload,callback:I.callback,next:null});e:{var me=e,ye=I;switch(re=n,pe=o,ye.tag){case 1:if(me=ye.payload,typeof me=="function"){le=me.call(pe,le,re);break e}le=me;break e;case 3:me.flags=me.flags&-65537|128;case 0:if(me=ye.payload,re=typeof me=="function"?me.call(pe,le,re):me,re==null)break e;le=O({},le,re);break e;case 2:Ln=!0}}I.callback!==null&&I.lane!==0&&(e.flags|=64,re=f.effects,re===null?f.effects=[I]:re.push(I))}else pe={eventTime:pe,lane:re,tag:I.tag,payload:I.payload,callback:I.callback,next:null},oe===null?(Z=oe=pe,b=le):oe=oe.next=pe,_|=re;if(I=I.next,I===null){if(I=f.shared.pending,I===null)break;re=I,I=re.next,re.next=null,f.lastBaseUpdate=re,f.shared.pending=null}}while(!0);if(oe===null&&(b=le),f.baseState=b,f.firstBaseUpdate=Z,f.lastBaseUpdate=oe,n=f.shared.interleaved,n!==null){f=n;do _|=f.lane,f=f.next;while(f!==n)}else p===null&&(f.shared.lanes=0);cr|=_,e.lanes=_,e.memoizedState=le}}function Nf(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 Vo={},en=In(Vo),Bo=In(Vo),Uo=In(Vo);function ar(e){if(e===Vo)throw Error(i(174));return e}function Ta(e,n){switch(ze(Uo,n),ze(Bo,e),ze(en,Vo),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(en),ze(en,n)}function Kr(){Ae(en),Ae(Bo),Ae(Uo)}function Cf(e){ar(Uo.current);var n=ar(en.current),o=xt(n,e.type);n!==o&&(ze(Bo,e),ze(en,o))}function Ia(e){Bo.current===e&&(Ae(en),Ae(Bo))}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 Ra=[];function za(){for(var e=0;e<Ra.length;e++)Ra[e]._workInProgressVersionPrimary=null;Ra.length=0}var ys=M.ReactCurrentDispatcher,La=M.ReactCurrentBatchConfig,ur=0,He=null,Xe=null,Ge=null,vs=!1,Wo=!1,Yo=0,u0=0;function it(){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,p){if(ur=p,He=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,ys.current=e===null||e.memoizedState===null?p0:h0,e=o(s,f),Wo){p=0;do{if(Wo=!1,Yo=0,25<=p)throw Error(i(301));p+=1,Ge=Xe=null,n.updateQueue=null,ys.current=g0,e=o(s,f)}while(Wo)}if(ys.current=_s,n=Xe!==null&&Xe.next!==null,ur=0,Ge=Xe=He=null,vs=!1,n)throw Error(i(300));return e}function ba(){var e=Yo!==0;return Yo=0,e}function tn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ge===null?He.memoizedState=Ge=e:Ge=Ge.next=e,Ge}function zt(){if(Xe===null){var e=He.alternate;e=e!==null?e.memoizedState:null}else e=Xe.next;var n=Ge===null?He.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?He.memoizedState=Ge=e:Ge=Ge.next=e}return Ge}function Xo(e,n){return typeof n=="function"?n(e):n}function $a(e){var n=zt(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=Xe,f=s.baseQueue,p=o.pending;if(p!==null){if(f!==null){var _=f.next;f.next=p.next,p.next=_}s.baseQueue=f=p,o.pending=null}if(f!==null){p=f.next,s=s.baseState;var I=_=null,b=null,Z=p;do{var oe=Z.lane;if((ur&oe)===oe)b!==null&&(b=b.next={lane:0,action:Z.action,hasEagerState:Z.hasEagerState,eagerState:Z.eagerState,next:null}),s=Z.hasEagerState?Z.eagerState:e(s,Z.action);else{var le={lane:oe,action:Z.action,hasEagerState:Z.hasEagerState,eagerState:Z.eagerState,next:null};b===null?(I=b=le,_=s):b=b.next=le,He.lanes|=oe,cr|=oe}Z=Z.next}while(Z!==null&&Z!==p);b===null?_=s:b.next=I,Dt(s,n.memoizedState)||(ht=!0),n.memoizedState=s,n.baseState=_,n.baseQueue=b,o.lastRenderedState=s}if(e=o.interleaved,e!==null){f=e;do p=f.lane,He.lanes|=p,cr|=p,f=f.next;while(f!==e)}else f===null&&(o.lanes=0);return[n.memoizedState,o.dispatch]}function Oa(e){var n=zt(),o=n.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=e;var s=o.dispatch,f=o.pending,p=n.memoizedState;if(f!==null){o.pending=null;var _=f=f.next;do p=e(p,_.action),_=_.next;while(_!==f);Dt(p,n.memoizedState)||(ht=!0),n.memoizedState=p,n.baseQueue===null&&(n.baseState=p),o.lastRenderedState=p}return[p,s]}function Mf(){}function jf(e,n){var o=He,s=zt(),f=n(),p=!Dt(s.memoizedState,f);if(p&&(s.memoizedState=f,ht=!0),s=s.queue,Fa(If.bind(null,o,s,e),[e]),s.getSnapshot!==n||p||Ge!==null&&Ge.memoizedState.tag&1){if(o.flags|=2048,Ko(9,Tf.bind(null,o,s,f,n),void 0,null),qe===null)throw Error(i(349));(ur&30)!==0||Pf(o,n,f)}return f}function Pf(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 Tf(e,n,o,s){n.value=o,n.getSnapshot=s,Rf(n)&&zf(e)}function If(e,n,o){return o(function(){Rf(n)&&zf(e)})}function Rf(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&&Ht(n,e,1,-1)}function Lf(e){var n=tn();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=d0.bind(null,He,e),[n.memoizedState,e]}function Ko(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 zt().memoizedState}function xs(e,n,o,s){var f=tn();He.flags|=e,f.memoizedState=Ko(1|n,o,void 0,s===void 0?null:s)}function ws(e,n,o,s){var f=zt();s=s===void 0?null:s;var p=void 0;if(Xe!==null){var _=Xe.memoizedState;if(p=_.destroy,s!==null&&Aa(s,_.deps)){f.memoizedState=Ko(n,o,p,s);return}}He.flags|=e,f.memoizedState=Ko(1|n,o,p,s)}function Df(e,n){return xs(8390656,8,e,n)}function Fa(e,n){return ws(2048,8,e,n)}function bf(e,n){return ws(4,2,e,n)}function $f(e,n){return ws(4,4,e,n)}function Of(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 Ff(e,n,o){return o=o!=null?o.concat([e]):null,ws(4,4,Of.bind(null,n,e),o)}function Ha(){}function Hf(e,n){var o=zt();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 Vf(e,n){var o=zt();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 Bf(e,n,o){return(ur&21)===0?(e.baseState&&(e.baseState=!1,ht=!0),e.memoizedState=o):(Dt(o,n)||(o=Vi(),He.lanes|=o,cr|=o,e.baseState=!0),n)}function c0(e,n){var o=Re;Re=o!==0&&4>o?o:4,e(!0);var s=La.transition;La.transition={};try{e(!1),n()}finally{Re=o,La.transition=s}}function Uf(){return zt().memoizedState}function f0(e,n,o){var s=On(e);if(o={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null},Wf(e))Yf(n,o);else if(o=Sf(e,n,o,s),o!==null){var f=ut();Ht(o,e,s,f),Xf(o,n,s)}}function d0(e,n,o){var s=On(e),f={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null};if(Wf(e))Yf(n,f);else{var p=e.alternate;if(e.lanes===0&&(p===null||p.lanes===0)&&(p=n.lastRenderedReducer,p!==null))try{var _=n.lastRenderedState,I=p(_,o);if(f.hasEagerState=!0,f.eagerState=I,Dt(I,_)){var b=n.interleaved;b===null?(f.next=f,ja(n)):(f.next=b.next,b.next=f),n.interleaved=f;return}}catch{}finally{}o=Sf(e,n,f,s),o!==null&&(f=ut(),Ht(o,e,s,f),Xf(o,n,s))}}function Wf(e){var n=e.alternate;return e===He||n!==null&&n===He}function Yf(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 Xf(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:Rt,useCallback:it,useContext:it,useEffect:it,useImperativeHandle:it,useInsertionEffect:it,useLayoutEffect:it,useMemo:it,useReducer:it,useRef:it,useState:it,useDebugValue:it,useDeferredValue:it,useTransition:it,useMutableSource:it,useSyncExternalStore:it,useId:it,unstable_isNewReconciler:!1},p0={readContext:Rt,useCallback:function(e,n){return tn().memoizedState=[e,n===void 0?null:n],e},useContext:Rt,useEffect:Df,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,xs(4194308,4,Of.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=tn();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var s=tn();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=f0.bind(null,He,e),[s.memoizedState,e]},useRef:function(e){var n=tn();return e={current:e},n.memoizedState=e},useState:Lf,useDebugValue:Ha,useDeferredValue:function(e){return tn().memoizedState=e},useTransition:function(){var e=Lf(!1),n=e[0];return e=c0.bind(null,e[1]),tn().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var s=He,f=tn();if(be){if(o===void 0)throw Error(i(407));o=o()}else{if(o=n(),qe===null)throw Error(i(349));(ur&30)!==0||Pf(s,n,o)}f.memoizedState=o;var p={value:o,getSnapshot:n};return f.queue=p,Df(If.bind(null,s,p,e),[e]),s.flags|=2048,Ko(9,Tf.bind(null,s,p,o,n),void 0,null),o},useId:function(){var e=tn(),n=qe.identifierPrefix;if(be){var o=pn,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=u0++,n=":"+n+"r"+o.toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},h0={readContext:Rt,useCallback:Hf,useContext:Rt,useEffect:Fa,useImperativeHandle:Ff,useInsertionEffect:bf,useLayoutEffect:$f,useMemo:Vf,useReducer:$a,useRef:Af,useState:function(){return $a(Xo)},useDebugValue:Ha,useDeferredValue:function(e){var n=zt();return Bf(n,Xe.memoizedState,e)},useTransition:function(){var e=$a(Xo)[0],n=zt().memoizedState;return[e,n]},useMutableSource:Mf,useSyncExternalStore:jf,useId:Uf,unstable_isNewReconciler:!1},g0={readContext:Rt,useCallback:Hf,useContext:Rt,useEffect:Fa,useImperativeHandle:Ff,useInsertionEffect:bf,useLayoutEffect:$f,useMemo:Vf,useReducer:Oa,useRef:Af,useState:function(){return Oa(Xo)},useDebugValue:Ha,useDeferredValue:function(e){var n=zt();return Xe===null?n.memoizedState=e:Bf(n,Xe.memoizedState,e)},useTransition:function(){var e=Oa(Xo)[0],n=zt().memoizedState;return[e,n]},useMutableSource:Mf,useSyncExternalStore:jf,useId:Uf,unstable_isNewReconciler:!1};function $t(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 Va(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)?Zt(e)===e:!1},enqueueSetState:function(e,n,o){e=e._reactInternals;var s=ut(),f=On(e),p=gn(s,f);p.payload=n,o!=null&&(p.callback=o),n=An(e,p,f),n!==null&&(Ht(n,e,f,s),hs(n,e,f))},enqueueReplaceState:function(e,n,o){e=e._reactInternals;var s=ut(),f=On(e),p=gn(s,f);p.tag=1,p.payload=n,o!=null&&(p.callback=o),n=An(e,p,f),n!==null&&(Ht(n,e,f,s),hs(n,e,f))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var o=ut(),s=On(e),f=gn(o,s);f.tag=2,n!=null&&(f.callback=n),n=An(e,f,s),n!==null&&(Ht(n,e,s,o),hs(n,e,s))}};function Kf(e,n,o,s,f,p,_){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,p,_):n.prototype&&n.prototype.isPureReactComponent?!Lo(o,s)||!Lo(f,p):!0}function Qf(e,n,o){var s=!1,f=Rn,p=n.contextType;return typeof p=="object"&&p!==null?p=Rt(p):(f=pt(n)?or:ot.current,s=n.contextTypes,p=(s=s!=null)?Hr(e,f):Rn),n=new n(o,p),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=p),n}function Gf(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 Ba(e,n,o,s){var f=e.stateNode;f.props=o,f.state=e.memoizedState,f.refs={},Pa(e);var p=n.contextType;typeof p=="object"&&p!==null?f.context=Rt(p):(p=pt(n)?or:ot.current,f.context=Hr(e,p)),f.state=e.memoizedState,p=n.getDerivedStateFromProps,typeof p=="function"&&(Va(e,n,p,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(p){f=`
+Error generating stack: `+p.message+`
+`+p.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 m0=typeof WeakMap=="function"?WeakMap:Map;function qf(e,n,o){o=gn(-1,o),o.tag=3,o.payload={element:null};var s=n.value;return o.callback=function(){Ps||(Ps=!0,su=s),Wa(e,n)},o}function Zf(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 p=e.stateNode;return p!==null&&typeof p.componentDidCatch=="function"&&(o.callback=function(){Wa(e,n),typeof s!="function"&&(bn===null?bn=new Set([this]):bn.add(this));var _=n.stack;this.componentDidCatch(n.value,{componentStack:_!==null?_:""})}),o}function Jf(e,n,o){var s=e.pingCache;if(s===null){s=e.pingCache=new m0;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=T0.bind(null,e,n,o),n.then(e,e))}function ed(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 td(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,An(o,n,1))),o.lanes|=1),e):(e.flags|=65536,e.lanes=f,e)}var y0=M.ReactCurrentOwner,ht=!1;function at(e,n,o,s){n.child=e===null?_f(n,null,o,s):Wr(n,e.child,o,s)}function nd(e,n,o,s,f){o=o.render;var p=n.ref;return Xr(n,f),s=Da(e,n,o,s,p,f),o=ba(),e!==null&&!ht?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,mn(e,n,f)):(be&&o&&xa(n),n.flags|=1,at(e,n,s,f),n.child)}function rd(e,n,o,s,f){if(e===null){var p=o.type;return typeof p=="function"&&!pu(p)&&p.defaultProps===void 0&&o.compare===null&&o.defaultProps===void 0?(n.tag=15,n.type=p,od(e,n,p,s,f)):(e=As(o.type,null,s,n,n.mode,f),e.ref=n.ref,e.return=n,n.child=e)}if(p=e.child,(e.lanes&f)===0){var _=p.memoizedProps;if(o=o.compare,o=o!==null?o:Lo,o(_,s)&&e.ref===n.ref)return mn(e,n,f)}return n.flags|=1,e=Hn(p,s),e.ref=n.ref,e.return=n,n.child=e}function od(e,n,o,s,f){if(e!==null){var p=e.memoizedProps;if(Lo(p,s)&&e.ref===n.ref)if(ht=!1,n.pendingProps=s=p,(e.lanes&f)!==0)(e.flags&131072)!==0&&(ht=!0);else return n.lanes=e.lanes,mn(e,n,f)}return Ya(e,n,o,s,f)}function id(e,n,o){var s=n.pendingProps,f=s.children,p=e!==null?e.memoizedState:null;if(s.mode==="hidden")if((n.mode&1)===0)n.memoizedState={baseLanes:0,cachePool:null,transitions:null},ze(qr,Nt),Nt|=o;else{if((o&1073741824)===0)return e=p!==null?p.baseLanes|o:o,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,ze(qr,Nt),Nt|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=p!==null?p.baseLanes:o,ze(qr,Nt),Nt|=s}else p!==null?(s=p.baseLanes|o,n.memoizedState=null):s=o,ze(qr,Nt),Nt|=s;return at(e,n,f,o),n.child}function sd(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 p=pt(o)?or:ot.current;return p=Hr(n,p),Xr(n,f),o=Da(e,n,o,s,p,f),s=ba(),e!==null&&!ht?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~f,mn(e,n,f)):(be&&s&&xa(n),n.flags|=1,at(e,n,o,f),n.child)}function ld(e,n,o,s,f){if(pt(o)){var p=!0;ss(n)}else p=!1;if(Xr(n,f),n.stateNode===null)Es(e,n),Qf(n,o,s),Ba(n,o,s,f),s=!0;else if(e===null){var _=n.stateNode,I=n.memoizedProps;_.props=I;var b=_.context,Z=o.contextType;typeof Z=="object"&&Z!==null?Z=Rt(Z):(Z=pt(o)?or:ot.current,Z=Hr(n,Z));var oe=o.getDerivedStateFromProps,le=typeof oe=="function"||typeof _.getSnapshotBeforeUpdate=="function";le||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(I!==s||b!==Z)&&Gf(n,_,s,Z),Ln=!1;var re=n.memoizedState;_.state=re,gs(n,s,_,f),b=n.memoizedState,I!==s||re!==b||dt.current||Ln?(typeof oe=="function"&&(Va(n,o,oe,s),b=n.memoizedState),(I=Ln||Kf(n,o,I,s,re,b,Z))?(le||typeof _.UNSAFE_componentWillMount!="function"&&typeof _.componentWillMount!="function"||(typeof _.componentWillMount=="function"&&_.componentWillMount(),typeof _.UNSAFE_componentWillMount=="function"&&_.UNSAFE_componentWillMount()),typeof _.componentDidMount=="function"&&(n.flags|=4194308)):(typeof _.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=s,n.memoizedState=b),_.props=s,_.state=b,_.context=Z,s=I):(typeof _.componentDidMount=="function"&&(n.flags|=4194308),s=!1)}else{_=n.stateNode,kf(e,n),I=n.memoizedProps,Z=n.type===n.elementType?I:$t(n.type,I),_.props=Z,le=n.pendingProps,re=_.context,b=o.contextType,typeof b=="object"&&b!==null?b=Rt(b):(b=pt(o)?or:ot.current,b=Hr(n,b));var pe=o.getDerivedStateFromProps;(oe=typeof pe=="function"||typeof _.getSnapshotBeforeUpdate=="function")||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(I!==le||re!==b)&&Gf(n,_,s,b),Ln=!1,re=n.memoizedState,_.state=re,gs(n,s,_,f);var me=n.memoizedState;I!==le||re!==me||dt.current||Ln?(typeof pe=="function"&&(Va(n,o,pe,s),me=n.memoizedState),(Z=Ln||Kf(n,o,Z,s,re,me,b)||!1)?(oe||typeof _.UNSAFE_componentWillUpdate!="function"&&typeof _.componentWillUpdate!="function"||(typeof _.componentWillUpdate=="function"&&_.componentWillUpdate(s,me,b),typeof _.UNSAFE_componentWillUpdate=="function"&&_.UNSAFE_componentWillUpdate(s,me,b)),typeof _.componentDidUpdate=="function"&&(n.flags|=4),typeof _.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof _.componentDidUpdate!="function"||I===e.memoizedProps&&re===e.memoizedState||(n.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||I===e.memoizedProps&&re===e.memoizedState||(n.flags|=1024),n.memoizedProps=s,n.memoizedState=me),_.props=s,_.state=me,_.context=b,s=Z):(typeof _.componentDidUpdate!="function"||I===e.memoizedProps&&re===e.memoizedState||(n.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||I===e.memoizedProps&&re===e.memoizedState||(n.flags|=1024),s=!1)}return Xa(e,n,o,s,p,f)}function Xa(e,n,o,s,f,p){sd(e,n);var _=(n.flags&128)!==0;if(!s&&!_)return f&&df(n,o,!1),mn(e,n,p);s=n.stateNode,y0.current=n;var I=_&&typeof o.getDerivedStateFromError!="function"?null:s.render();return n.flags|=1,e!==null&&_?(n.child=Wr(n,e.child,null,p),n.child=Wr(n,null,I,p)):at(e,n,I,p),n.memoizedState=s.state,f&&df(n,o,!0),n.child}function ad(e){var n=e.stateNode;n.pendingContext?cf(e,n.pendingContext,n.pendingContext!==n.context):n.context&&cf(e,n.context,!1),Ta(e,n.containerInfo)}function ud(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 cd(e,n,o){var s=n.pendingProps,f=Fe.current,p=!1,_=(n.flags&128)!==0,I;if((I=_)||(I=e!==null&&e.memoizedState===null?!1:(f&2)!==0),I?(p=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(f|=1),ze(Fe,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):(_=s.children,e=s.fallback,p?(s=n.mode,p=n.child,_={mode:"hidden",children:_},(s&1)===0&&p!==null?(p.childLanes=0,p.pendingProps=_):p=Ds(_,s,0,null),e=hr(e,s,o,null),p.return=n,e.return=n,p.sibling=e,n.child=p,n.child.memoizedState=Qa(o),n.memoizedState=Ka,e):Ga(n,_));if(f=e.memoizedState,f!==null&&(I=f.dehydrated,I!==null))return v0(e,n,_,s,I,f,o);if(p){p=s.fallback,_=n.mode,f=e.child,I=f.sibling;var b={mode:"hidden",children:s.children};return(_&1)===0&&n.child!==f?(s=n.child,s.childLanes=0,s.pendingProps=b,n.deletions=null):(s=Hn(f,b),s.subtreeFlags=f.subtreeFlags&14680064),I!==null?p=Hn(I,p):(p=hr(p,_,o,null),p.flags|=2),p.return=n,s.return=n,s.sibling=p,n.child=s,s=p,p=n.child,_=e.child.memoizedState,_=_===null?Qa(o):{baseLanes:_.baseLanes|o,cachePool:null,transitions:_.transitions},p.memoizedState=_,p.childLanes=e.childLanes&~o,n.memoizedState=Ka,s}return p=e.child,e=p.sibling,s=Hn(p,{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 v0(e,n,o,s,f,p,_){if(o)return n.flags&256?(n.flags&=-257,s=Ua(Error(i(422))),ks(e,n,_,s)):n.memoizedState!==null?(n.child=e.child,n.flags|=128,null):(p=s.fallback,f=n.mode,s=Ds({mode:"visible",children:s.children},f,0,null),p=hr(p,f,_,null),p.flags|=2,s.return=n,p.return=n,s.sibling=p,n.child=s,(n.mode&1)!==0&&Wr(n,e.child,null,_),n.child.memoizedState=Qa(_),n.memoizedState=Ka,p);if((n.mode&1)===0)return ks(e,n,_,null);if(f.data==="$!"){if(s=f.nextSibling&&f.nextSibling.dataset,s)var I=s.dgst;return s=I,p=Error(i(419)),s=Ua(p,s,void 0),ks(e,n,_,s)}if(I=(_&e.childLanes)!==0,ht||I){if(s=qe,s!==null){switch(_&-_){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|_))!==0?0:f,f!==0&&f!==p.retryLane&&(p.retryLane=f,hn(e,f),Ht(s,e,f,-1))}return du(),s=Ua(Error(i(421))),ks(e,n,_,s)}return f.data==="$?"?(n.flags|=128,n.child=e.child,n=I0.bind(null,e),f._reactRetry=n,null):(e=p.treeContext,Et=Tn(f.nextSibling),kt=n,be=!0,bt=null,e!==null&&(Tt[It++]=dn,Tt[It++]=pn,Tt[It++]=ir,dn=e.id,pn=e.overflow,ir=n),n=Ga(n,s.children),n.flags|=4096,n)}function fd(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 p=e.memoizedState;p===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:s,tail:o,tailMode:f}:(p.isBackwards=n,p.rendering=null,p.renderingStartTime=0,p.last=s,p.tail=o,p.tailMode=f)}function dd(e,n,o){var s=n.pendingProps,f=s.revealOrder,p=s.tail;if(at(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&&fd(e,o,n);else if(e.tag===19)fd(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(ze(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),qa(n,!1,f,o,p);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,p);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),cr|=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=Hn(e,e.pendingProps),n.child=o,o.return=n;e.sibling!==null;)e=e.sibling,o=o.sibling=Hn(e,e.pendingProps),o.return=n;o.sibling=null}return n.child}function x0(e,n,o){switch(n.tag){case 3:ad(n),Ur();break;case 5:Cf(n);break;case 1:pt(n.type)&&ss(n);break;case 4:Ta(n,n.stateNode.containerInfo);break;case 10:var s=n.type._context,f=n.memoizedProps.value;ze(ds,s._currentValue),s._currentValue=f;break;case 13:if(s=n.memoizedState,s!==null)return s.dehydrated!==null?(ze(Fe,Fe.current&1),n.flags|=128,null):(o&n.child.childLanes)!==0?cd(e,n,o):(ze(Fe,Fe.current&1),e=mn(e,n,o),e!==null?e.sibling:null);ze(Fe,Fe.current&1);break;case 19:if(s=(o&n.childLanes)!==0,(e.flags&128)!==0){if(s)return dd(e,n,o);n.flags|=128}if(f=n.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),ze(Fe,Fe.current),s)break;return null;case 22:case 23:return n.lanes=0,id(e,n,o)}return mn(e,n,o)}var pd,Za,hd,gd;pd=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(){},hd=function(e,n,o,s){var f=e.memoizedProps;if(f!==s){e=n.stateNode,ar(en.current);var p=null;switch(o){case"input":f=ie(e,f),s=ie(e,s),p=[];break;case"select":f=O({},f,{value:void 0}),s=O({},s,{value:void 0}),p=[];break;case"textarea":f=ln(e,f),s=ln(e,s),p=[];break;default:typeof f.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=rs)}fo(o,s);var _;o=null;for(Z in f)if(!s.hasOwnProperty(Z)&&f.hasOwnProperty(Z)&&f[Z]!=null)if(Z==="style"){var I=f[Z];for(_ in I)I.hasOwnProperty(_)&&(o||(o={}),o[_]="")}else Z!=="dangerouslySetInnerHTML"&&Z!=="children"&&Z!=="suppressContentEditableWarning"&&Z!=="suppressHydrationWarning"&&Z!=="autoFocus"&&(a.hasOwnProperty(Z)?p||(p=[]):(p=p||[]).push(Z,null));for(Z in s){var b=s[Z];if(I=f!=null?f[Z]:void 0,s.hasOwnProperty(Z)&&b!==I&&(b!=null||I!=null))if(Z==="style")if(I){for(_ in I)!I.hasOwnProperty(_)||b&&b.hasOwnProperty(_)||(o||(o={}),o[_]="");for(_ in b)b.hasOwnProperty(_)&&I[_]!==b[_]&&(o||(o={}),o[_]=b[_])}else o||(p||(p=[]),p.push(Z,o)),o=b;else Z==="dangerouslySetInnerHTML"?(b=b?b.__html:void 0,I=I?I.__html:void 0,b!=null&&I!==b&&(p=p||[]).push(Z,b)):Z==="children"?typeof b!="string"&&typeof b!="number"||(p=p||[]).push(Z,""+b):Z!=="suppressContentEditableWarning"&&Z!=="suppressHydrationWarning"&&(a.hasOwnProperty(Z)?(b!=null&&Z==="onScroll"&&Le("scroll",e),p||I===b||(p=[])):(p=p||[]).push(Z,b))}o&&(p=p||[]).push("style",o);var Z=p;(n.updateQueue=Z)&&(n.flags|=4)}},gd=function(e,n,o,s){o!==s&&(n.flags|=4)};function Qo(e,n){if(!be)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 st(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 w0(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 st(n),null;case 1:return pt(n.type)&&is(),st(n),null;case 3:return s=n.stateNode,Kr(),Ae(dt),Ae(ot),za(),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,bt!==null&&(uu(bt),bt=null))),Za(e,n),st(n),null;case 5:Ia(n);var f=ar(Uo.current);if(o=n.type,e!==null&&n.stateNode!=null)hd(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 st(n),null}if(e=ar(en.current),cs(n)){s=n.stateNode,o=n.type;var p=n.memoizedProps;switch(s[Jt]=n,s[Oo]=p,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<Do.length;f++)Le(Do[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":ae(s,p),Le("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!p.multiple},Le("invalid",s);break;case"textarea":Gt(s,p),Le("invalid",s)}fo(o,p),f=null;for(var _ in p)if(p.hasOwnProperty(_)){var I=p[_];_==="children"?typeof I=="string"?s.textContent!==I&&(p.suppressHydrationWarning!==!0&&ns(s.textContent,I,e),f=["children",I]):typeof I=="number"&&s.textContent!==""+I&&(p.suppressHydrationWarning!==!0&&ns(s.textContent,I,e),f=["children",""+I]):a.hasOwnProperty(_)&&I!=null&&_==="onScroll"&&Le("scroll",s)}switch(o){case"input":we(s),Je(s,p,!0);break;case"textarea":we(s),ft(s);break;case"select":case"option":break;default:typeof p.onClick=="function"&&(s.onclick=rs)}s=f,n.updateQueue=s,s!==null&&(n.flags|=4)}else{_=f.nodeType===9?f:f.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=jt(o)),e==="http://www.w3.org/1999/xhtml"?o==="script"?(e=_.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=_.createElement(o,{is:s.is}):(e=_.createElement(o),o==="select"&&(_=e,s.multiple?_.multiple=!0:s.size&&(_.size=s.size))):e=_.createElementNS(e,o),e[Jt]=n,e[Oo]=s,pd(e,n,!1,!1),n.stateNode=e;e:{switch(_=po(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<Do.length;f++)Le(Do[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":ae(e,s),f=ie(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":Gt(e,s),f=ln(e,s),Le("invalid",e);break;default:f=s}fo(o,f),I=f;for(p in I)if(I.hasOwnProperty(p)){var b=I[p];p==="style"?Mi(e,b):p==="dangerouslySetInnerHTML"?(b=b?b.__html:void 0,b!=null&&Er(e,b)):p==="children"?typeof b=="string"?(o!=="textarea"||b!=="")&&an(e,b):typeof b=="number"&&an(e,""+b):p!=="suppressContentEditableWarning"&&p!=="suppressHydrationWarning"&&p!=="autoFocus"&&(a.hasOwnProperty(p)?b!=null&&p==="onScroll"&&Le("scroll",e):b!=null&&k(e,p,b,_))}switch(o){case"input":we(e),Je(e,s,!1);break;case"textarea":we(e),ft(e);break;case"option":s.value!=null&&e.setAttribute("value",""+q(s.value));break;case"select":e.multiple=!!s.multiple,p=s.value,p!=null?rt(e,!!s.multiple,p,!1):s.defaultValue!=null&&rt(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 st(n),null;case 6:if(e&&n.stateNode!=null)gd(e,n,e.memoizedProps,s);else{if(typeof s!="string"&&n.stateNode===null)throw Error(i(166));if(o=ar(Uo.current),ar(en.current),cs(n)){if(s=n.stateNode,o=n.memoizedProps,s[Jt]=n,(p=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)}p&&(n.flags|=4)}else s=(o.nodeType===9?o:o.ownerDocument).createTextNode(s),s[Jt]=n,n.stateNode=s}return st(n),null;case 13:if(Ae(Fe),s=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(be&&Et!==null&&(n.mode&1)!==0&&(n.flags&128)===0)vf(),Ur(),n.flags|=98560,p=!1;else if(p=cs(n),s!==null&&s.dehydrated!==null){if(e===null){if(!p)throw Error(i(318));if(p=n.memoizedState,p=p!==null?p.dehydrated:null,!p)throw Error(i(317));p[Jt]=n}else Ur(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;st(n),p=!1}else bt!==null&&(uu(bt),bt=null),p=!0;if(!p)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?Ke===0&&(Ke=3):du())),n.updateQueue!==null&&(n.flags|=4),st(n),null);case 4:return Kr(),Za(e,n),e===null&&bo(n.stateNode.containerInfo),st(n),null;case 10:return Ca(n.type._context),st(n),null;case 17:return pt(n.type)&&is(),st(n),null;case 19:if(Ae(Fe),p=n.memoizedState,p===null)return st(n),null;if(s=(n.flags&128)!==0,_=p.rendering,_===null)if(s)Qo(p,!1);else{if(Ke!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(_=ms(e),_!==null){for(n.flags|=128,Qo(p,!1),s=_.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),n.subtreeFlags=0,s=o,o=n.child;o!==null;)p=o,e=s,p.flags&=14680066,_=p.alternate,_===null?(p.childLanes=0,p.lanes=e,p.child=null,p.subtreeFlags=0,p.memoizedProps=null,p.memoizedState=null,p.updateQueue=null,p.dependencies=null,p.stateNode=null):(p.childLanes=_.childLanes,p.lanes=_.lanes,p.child=_.child,p.subtreeFlags=0,p.deletions=null,p.memoizedProps=_.memoizedProps,p.memoizedState=_.memoizedState,p.updateQueue=_.updateQueue,p.type=_.type,e=_.dependencies,p.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),o=o.sibling;return ze(Fe,Fe.current&1|2),n.child}e=e.sibling}p.tail!==null&&Oe()>Zr&&(n.flags|=128,s=!0,Qo(p,!1),n.lanes=4194304)}else{if(!s)if(e=ms(_),e!==null){if(n.flags|=128,s=!0,o=e.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),Qo(p,!0),p.tail===null&&p.tailMode==="hidden"&&!_.alternate&&!be)return st(n),null}else 2*Oe()-p.renderingStartTime>Zr&&o!==1073741824&&(n.flags|=128,s=!0,Qo(p,!1),n.lanes=4194304);p.isBackwards?(_.sibling=n.child,n.child=_):(o=p.last,o!==null?o.sibling=_:n.child=_,p.last=_)}return p.tail!==null?(n=p.tail,p.rendering=n,p.tail=n.sibling,p.renderingStartTime=Oe(),n.sibling=null,o=Fe.current,ze(Fe,s?o&1|2:o&1),n):(st(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&&(st(n),n.subtreeFlags&6&&(n.flags|=8192)):st(n),null;case 24:return null;case 25:return null}throw Error(i(156,n.tag))}function _0(e,n){switch(wa(n),n.tag){case 1:return pt(n.type)&&is(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Kr(),Ae(dt),Ae(ot),za(),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(Fe),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(Fe),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,lt=!1,S0=typeof WeakSet=="function"?WeakSet:Set,ge=null;function Gr(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 Ja(e,n,o){try{o()}catch(s){Be(e,n,s)}}var md=!1;function k0(e,n){if(fa=Wi,e=Xc(),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,p=s.focusNode;s=s.focusOffset;try{o.nodeType,p.nodeType}catch{o=null;break e}var _=0,I=-1,b=-1,Z=0,oe=0,le=e,re=null;t:for(;;){for(var pe;le!==o||f!==0&&le.nodeType!==3||(I=_+f),le!==p||s!==0&&le.nodeType!==3||(b=_+s),le.nodeType===3&&(_+=le.nodeValue.length),(pe=le.firstChild)!==null;)re=le,le=pe;for(;;){if(le===e)break t;if(re===o&&++Z===f&&(I=_),re===p&&++oe===s&&(b=_),(pe=le.nextSibling)!==null)break;le=re,re=le.parentNode}le=pe}o=I===-1||b===-1?null:{start:I,end:b}}else o=null}o=o||{start:0,end:0}}else o=null;for(da={focusedElem:e,selectionRange:o},Wi=!1,ge=n;ge!==null;)if(n=ge,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,ge=e;else for(;ge!==null;){n=ge;try{var me=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(me!==null){var ye=me.memoizedProps,Ue=me.memoizedState,K=n.stateNode,V=K.getSnapshotBeforeUpdate(n.elementType===n.type?ye:$t(n.type,ye),Ue);K.__reactInternalSnapshotBeforeUpdate=V}break;case 3:var G=n.stateNode.containerInfo;G.nodeType===1?G.textContent="":G.nodeType===9&&G.documentElement&&G.removeChild(G.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(ue){Be(n,n.return,ue)}if(e=n.sibling,e!==null){e.return=n.return,ge=e;break}ge=n.return}return me=md,md=!1,me}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 p=f.destroy;f.destroy=void 0,p!==void 0&&Ja(n,o,p)}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 yd(e){var n=e.alternate;n!==null&&(e.alternate=null,yd(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Jt],delete n[Oo],delete n[ma],delete n[i0],delete n[s0])),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 vd(e){return e.tag===5||e.tag===3||e.tag===4}function xd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||vd(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 et=null,Ot=!1;function Dn(e,n,o){for(o=o.child;o!==null;)wd(e,n,o),o=o.sibling}function wd(e,n,o){if(wt&&typeof wt.onCommitFiberUnmount=="function")try{wt.onCommitFiberUnmount(jr,o)}catch{}switch(o.tag){case 5:lt||Gr(o,n);case 6:var s=et,f=Ot;et=null,Dn(e,n,o),et=s,Ot=f,et!==null&&(Ot?(e=et,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):et.removeChild(o.stateNode));break;case 18:et!==null&&(Ot?(e=et,o=o.stateNode,e.nodeType===8?ga(e.parentNode,o):e.nodeType===1&&ga(e,o),jo(e)):ga(et,o.stateNode));break;case 4:s=et,f=Ot,et=o.stateNode.containerInfo,Ot=!0,Dn(e,n,o),et=s,Ot=f;break;case 0:case 11:case 14:case 15:if(!lt&&(s=o.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){f=s=s.next;do{var p=f,_=p.destroy;p=p.tag,_!==void 0&&((p&2)!==0||(p&4)!==0)&&Ja(o,n,_),f=f.next}while(f!==s)}Dn(e,n,o);break;case 1:if(!lt&&(Gr(o,n),s=o.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=o.memoizedProps,s.state=o.memoizedState,s.componentWillUnmount()}catch(I){Be(o,n,I)}Dn(e,n,o);break;case 21:Dn(e,n,o);break;case 22:o.mode&1?(lt=(s=lt)||o.memoizedState!==null,Dn(e,n,o),lt=s):Dn(e,n,o);break;default:Dn(e,n,o)}}function _d(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new S0),n.forEach(function(s){var f=R0.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 p=e,_=n,I=_;e:for(;I!==null;){switch(I.tag){case 5:et=I.stateNode,Ot=!1;break e;case 3:et=I.stateNode.containerInfo,Ot=!0;break e;case 4:et=I.stateNode.containerInfo,Ot=!0;break e}I=I.return}if(et===null)throw Error(i(160));wd(p,_,f),et=null,Ot=!1;var b=f.alternate;b!==null&&(b.return=null),f.return=null}catch(Z){Be(f,n,Z)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)Sd(n,e),n=n.sibling}function Sd(e,n){var o=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ft(n,e),nn(e),s&4){try{Go(3,e,e.return),Cs(3,e)}catch(ye){Be(e,e.return,ye)}try{Go(5,e,e.return)}catch(ye){Be(e,e.return,ye)}}break;case 1:Ft(n,e),nn(e),s&512&&o!==null&&Gr(o,o.return);break;case 5:if(Ft(n,e),nn(e),s&512&&o!==null&&Gr(o,o.return),e.flags&32){var f=e.stateNode;try{an(f,"")}catch(ye){Be(e,e.return,ye)}}if(s&4&&(f=e.stateNode,f!=null)){var p=e.memoizedProps,_=o!==null?o.memoizedProps:p,I=e.type,b=e.updateQueue;if(e.updateQueue=null,b!==null)try{I==="input"&&p.type==="radio"&&p.name!=null&&ke(f,p),po(I,_);var Z=po(I,p);for(_=0;_<b.length;_+=2){var oe=b[_],le=b[_+1];oe==="style"?Mi(f,le):oe==="dangerouslySetInnerHTML"?Er(f,le):oe==="children"?an(f,le):k(f,oe,le,Z)}switch(I){case"input":Me(f,p);break;case"textarea":qt(f,p);break;case"select":var re=f._wrapperState.wasMultiple;f._wrapperState.wasMultiple=!!p.multiple;var pe=p.value;pe!=null?rt(f,!!p.multiple,pe,!1):re!==!!p.multiple&&(p.defaultValue!=null?rt(f,!!p.multiple,p.defaultValue,!0):rt(f,!!p.multiple,p.multiple?[]:"",!1))}f[Oo]=p}catch(ye){Be(e,e.return,ye)}}break;case 6:if(Ft(n,e),nn(e),s&4){if(e.stateNode===null)throw Error(i(162));f=e.stateNode,p=e.memoizedProps;try{f.nodeValue=p}catch(ye){Be(e,e.return,ye)}}break;case 3:if(Ft(n,e),nn(e),s&4&&o!==null&&o.memoizedState.isDehydrated)try{jo(n.containerInfo)}catch(ye){Be(e,e.return,ye)}break;case 4:Ft(n,e),nn(e);break;case 13:Ft(n,e),nn(e),f=e.child,f.flags&8192&&(p=f.memoizedState!==null,f.stateNode.isHidden=p,!p||f.alternate!==null&&f.alternate.memoizedState!==null||(iu=Oe())),s&4&&_d(e);break;case 22:if(oe=o!==null&&o.memoizedState!==null,e.mode&1?(lt=(Z=lt)||oe,Ft(n,e),lt=Z):Ft(n,e),nn(e),s&8192){if(Z=e.memoizedState!==null,(e.stateNode.isHidden=Z)&&!oe&&(e.mode&1)!==0)for(ge=e,oe=e.child;oe!==null;){for(le=ge=oe;ge!==null;){switch(re=ge,pe=re.child,re.tag){case 0:case 11:case 14:case 15:Go(4,re,re.return);break;case 1:Gr(re,re.return);var me=re.stateNode;if(typeof me.componentWillUnmount=="function"){s=re,o=re.return;try{n=s,me.props=n.memoizedProps,me.state=n.memoizedState,me.componentWillUnmount()}catch(ye){Be(s,o,ye)}}break;case 5:Gr(re,re.return);break;case 22:if(re.memoizedState!==null){Nd(le);continue}}pe!==null?(pe.return=re,ge=pe):Nd(le)}oe=oe.sibling}e:for(oe=null,le=e;;){if(le.tag===5){if(oe===null){oe=le;try{f=le.stateNode,Z?(p=f.style,typeof p.setProperty=="function"?p.setProperty("display","none","important"):p.display="none"):(I=le.stateNode,b=le.memoizedProps.style,_=b!=null&&b.hasOwnProperty("display")?b.display:null,I.style.display=Ci("display",_))}catch(ye){Be(e,e.return,ye)}}}else if(le.tag===6){if(oe===null)try{le.stateNode.nodeValue=Z?"":le.memoizedProps}catch(ye){Be(e,e.return,ye)}}else if((le.tag!==22&&le.tag!==23||le.memoizedState===null||le===e)&&le.child!==null){le.child.return=le,le=le.child;continue}if(le===e)break e;for(;le.sibling===null;){if(le.return===null||le.return===e)break e;oe===le&&(oe=null),le=le.return}oe===le&&(oe=null),le.sibling.return=le.return,le=le.sibling}}break;case 19:Ft(n,e),nn(e),s&4&&_d(e);break;case 21:break;default:Ft(n,e),nn(e)}}function nn(e){var n=e.flags;if(n&2){try{e:{for(var o=e.return;o!==null;){if(vd(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 p=xd(e);nu(e,p,f);break;case 3:case 4:var _=s.stateNode.containerInfo,I=xd(e);tu(e,I,_);break;default:throw Error(i(161))}}catch(b){Be(e,e.return,b)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function E0(e,n,o){ge=e,kd(e)}function kd(e,n,o){for(var s=(e.mode&1)!==0;ge!==null;){var f=ge,p=f.child;if(f.tag===22&&s){var _=f.memoizedState!==null||Ns;if(!_){var I=f.alternate,b=I!==null&&I.memoizedState!==null||lt;I=Ns;var Z=lt;if(Ns=_,(lt=b)&&!Z)for(ge=f;ge!==null;)_=ge,b=_.child,_.tag===22&&_.memoizedState!==null?Cd(f):b!==null?(b.return=_,ge=b):Cd(f);for(;p!==null;)ge=p,kd(p),p=p.sibling;ge=f,Ns=I,lt=Z}Ed(e)}else(f.subtreeFlags&8772)!==0&&p!==null?(p.return=f,ge=p):Ed(e)}}function Ed(e){for(;ge!==null;){var n=ge;if((n.flags&8772)!==0){var o=n.alternate;try{if((n.flags&8772)!==0)switch(n.tag){case 0:case 11:case 15:lt||Cs(5,n);break;case 1:var s=n.stateNode;if(n.flags&4&&!lt)if(o===null)s.componentDidMount();else{var f=n.elementType===n.type?o.memoizedProps:$t(n.type,o.memoizedProps);s.componentDidUpdate(f,o.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var p=n.updateQueue;p!==null&&Nf(n,p,s);break;case 3:var _=n.updateQueue;if(_!==null){if(o=null,n.child!==null)switch(n.child.tag){case 5:o=n.child.stateNode;break;case 1:o=n.child.stateNode}Nf(n,_,o)}break;case 5:var I=n.stateNode;if(o===null&&n.flags&4){o=I;var b=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":b.autoFocus&&o.focus();break;case"img":b.src&&(o.src=b.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var Z=n.alternate;if(Z!==null){var oe=Z.memoizedState;if(oe!==null){var le=oe.dehydrated;le!==null&&jo(le)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}lt||n.flags&512&&eu(n)}catch(re){Be(n,n.return,re)}}if(n===e){ge=null;break}if(o=n.sibling,o!==null){o.return=n.return,ge=o;break}ge=n.return}}function Nd(e){for(;ge!==null;){var n=ge;if(n===e){ge=null;break}var o=n.sibling;if(o!==null){o.return=n.return,ge=o;break}ge=n.return}}function Cd(e){for(;ge!==null;){var n=ge;try{switch(n.tag){case 0:case 11:case 15:var o=n.return;try{Cs(4,n)}catch(b){Be(n,o,b)}break;case 1:var s=n.stateNode;if(typeof s.componentDidMount=="function"){var f=n.return;try{s.componentDidMount()}catch(b){Be(n,f,b)}}var p=n.return;try{eu(n)}catch(b){Be(n,p,b)}break;case 5:var _=n.return;try{eu(n)}catch(b){Be(n,_,b)}}}catch(b){Be(n,n.return,b)}if(n===e){ge=null;break}var I=n.sibling;if(I!==null){I.return=n.return,ge=I;break}ge=n.return}}var N0=Math.ceil,Ms=M.ReactCurrentDispatcher,ru=M.ReactCurrentOwner,Lt=M.ReactCurrentBatchConfig,Pe=0,qe=null,We=null,tt=0,Nt=0,qr=In(0),Ke=0,qo=null,cr=0,js=0,ou=0,Zo=null,gt=null,iu=0,Zr=1/0,yn=null,Ps=!1,su=null,bn=null,Ts=!1,$n=null,Is=0,Jo=0,lu=null,Rs=-1,zs=0;function ut(){return(Pe&6)!==0?Oe():Rs!==-1?Rs:Rs=Oe()}function On(e){return(e.mode&1)===0?1:(Pe&2)!==0&&tt!==0?tt&-tt:a0.transition!==null?(zs===0&&(zs=Vi()),zs):(e=Re,e!==0||(e=window.event,e=e===void 0?16:Mc(e.type)),e)}function Ht(e,n,o,s){if(50<Jo)throw Jo=0,lu=null,Error(i(185));nr(e,o,s),((Pe&2)===0||e!==qe)&&(e===qe&&((Pe&2)===0&&(js|=o),Ke===4&&Fn(e,tt)),mt(e,s),o===1&&Pe===0&&(n.mode&1)===0&&(Zr=Oe()+500,ls&&zn()))}function mt(e,n){var o=e.callbackNode;Hi(e,n);var s=un(e,e===qe?tt:0);if(s===0)o!==null&&bi(o),e.callbackNode=null,e.callbackPriority=0;else if(n=s&-s,e.callbackPriority!==n){if(o!=null&&bi(o),n===1)e.tag===0?l0(jd.bind(null,e)):pf(jd.bind(null,e)),r0(function(){(Pe&6)===0&&zn()}),o=null;else{switch(xc(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=Dd(o,Md.bind(null,e))}e.callbackPriority=n,e.callbackNode=o}}function Md(e,n){if(Rs=-1,zs=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?tt: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 p=Td();(qe!==e||tt!==n)&&(yn=null,Zr=Oe()+500,dr(e,n));do try{j0();break}catch(I){Pd(e,I)}while(!0);Na(),Ms.current=p,Pe=f,We!==null?n=0:(qe=null,tt=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,dr(e,0),Fn(e,s),mt(e,Oe()),o;if(n===6)Fn(e,s);else{if(f=e.current.alternate,(s&30)===0&&!C0(f)&&(n=Ls(e,s),n===2&&(p=ko(e),p!==0&&(s=p,n=au(e,p))),n===1))throw o=qo,dr(e,0),Fn(e,s),mt(e,Oe()),o;switch(e.finishedWork=f,e.finishedLanes=s,n){case 0:case 1:throw Error(i(345));case 2:pr(e,gt,yn);break;case 3:if(Fn(e,s),(s&130023424)===s&&(n=iu+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=ha(pr.bind(null,e,gt,yn),n);break}pr(e,gt,yn);break;case 4:if(Fn(e,s),(s&4194240)===s)break;for(n=e.eventTimes,f=-1;0<s;){var _=31-_t(s);p=1<<_,_=n[_],_>f&&(f=_),s&=~p}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*N0(s/1960))-s,10<s){e.timeoutHandle=ha(pr.bind(null,e,gt,yn),s);break}pr(e,gt,yn);break;case 5:pr(e,gt,yn);break;default:throw Error(i(329))}}}return mt(e,Oe()),e.callbackNode===o?Md.bind(null,e):null}function au(e,n){var o=Zo;return e.current.memoizedState.isDehydrated&&(dr(e,n).flags|=256),e=Ls(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 C0(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],p=f.getSnapshot;f=f.value;try{if(!Dt(p(),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 Fn(e,n){for(n&=~ou,n&=~js,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 jd(e){if((Pe&6)!==0)throw Error(i(327));Jr();var n=un(e,0);if((n&1)===0)return mt(e,Oe()),null;var o=Ls(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,dr(e,0),Fn(e,n),mt(e,Oe()),o;if(o===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,pr(e,gt,yn),mt(e,Oe()),null}function cu(e,n){var o=Pe;Pe|=1;try{return e(n)}finally{Pe=o,Pe===0&&(Zr=Oe()+500,ls&&zn())}}function fr(e){$n!==null&&$n.tag===0&&(Pe&6)===0&&Jr();var n=Pe;Pe|=1;var o=Lt.transition,s=Re;try{if(Lt.transition=null,Re=1,e)return e()}finally{Re=s,Lt.transition=o,Pe=n,(Pe&6)===0&&zn()}}function fu(){Nt=qr.current,Ae(qr)}function dr(e,n){e.finishedWork=null,e.finishedLanes=0;var o=e.timeoutHandle;if(o!==-1&&(e.timeoutHandle=-1,n0(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(ot),za();break;case 5:Ia(s);break;case 4:Kr();break;case 13:Ae(Fe);break;case 19:Ae(Fe);break;case 10:Ca(s.type._context);break;case 22:case 23:fu()}o=o.return}if(qe=e,We=e=Hn(e.current,null),tt=Nt=n,Ke=0,qo=null,ou=js=cr=0,gt=Zo=null,lr!==null){for(n=0;n<lr.length;n++)if(o=lr[n],s=o.interleaved,s!==null){o.interleaved=null;var f=s.next,p=o.pending;if(p!==null){var _=p.next;p.next=f,s.next=_}o.pending=s}lr=null}return e}function Pd(e,n){do{var o=We;try{if(Na(),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(ur=0,Ge=Xe=He=null,Wo=!1,Yo=0,ru.current=null,o===null||o.return===null){Ke=1,qo=n,We=null;break}e:{var p=e,_=o.return,I=o,b=n;if(n=tt,I.flags|=32768,b!==null&&typeof b=="object"&&typeof b.then=="function"){var Z=b,oe=I,le=oe.tag;if((oe.mode&1)===0&&(le===0||le===11||le===15)){var re=oe.alternate;re?(oe.updateQueue=re.updateQueue,oe.memoizedState=re.memoizedState,oe.lanes=re.lanes):(oe.updateQueue=null,oe.memoizedState=null)}var pe=ed(_);if(pe!==null){pe.flags&=-257,td(pe,_,I,p,n),pe.mode&1&&Jf(p,Z,n),n=pe,b=Z;var me=n.updateQueue;if(me===null){var ye=new Set;ye.add(b),n.updateQueue=ye}else me.add(b);break e}else{if((n&1)===0){Jf(p,Z,n),du();break e}b=Error(i(426))}}else if(be&&I.mode&1){var Ue=ed(_);if(Ue!==null){(Ue.flags&65536)===0&&(Ue.flags|=256),td(Ue,_,I,p,n),ka(Qr(b,I));break e}}p=b=Qr(b,I),Ke!==4&&(Ke=2),Zo===null?Zo=[p]:Zo.push(p),p=_;do{switch(p.tag){case 3:p.flags|=65536,n&=-n,p.lanes|=n;var K=qf(p,b,n);Ef(p,K);break e;case 1:I=b;var V=p.type,G=p.stateNode;if((p.flags&128)===0&&(typeof V.getDerivedStateFromError=="function"||G!==null&&typeof G.componentDidCatch=="function"&&(bn===null||!bn.has(G)))){p.flags|=65536,n&=-n,p.lanes|=n;var ue=Zf(p,I,n);Ef(p,ue);break e}}p=p.return}while(p!==null)}Rd(o)}catch(ve){n=ve,We===o&&o!==null&&(We=o=o.return);continue}break}while(!0)}function Td(){var e=Ms.current;return Ms.current=_s,e===null?_s:e}function du(){(Ke===0||Ke===3||Ke===2)&&(Ke=4),qe===null||(cr&268435455)===0&&(js&268435455)===0||Fn(qe,tt)}function Ls(e,n){var o=Pe;Pe|=2;var s=Td();(qe!==e||tt!==n)&&(yn=null,dr(e,n));do try{M0();break}catch(f){Pd(e,f)}while(!0);if(Na(),Pe=o,Ms.current=s,We!==null)throw Error(i(261));return qe=null,tt=0,Ke}function M0(){for(;We!==null;)Id(We)}function j0(){for(;We!==null&&!Al();)Id(We)}function Id(e){var n=Ad(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=w0(o,n,Nt),o!==null){We=o;return}}else{if(o=_0(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 pr(e,n,o){var s=Re,f=Lt.transition;try{Lt.transition=null,Re=1,P0(e,n,o,s)}finally{Lt.transition=f,Re=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 p=o.lanes|o.childLanes;if(Bl(e,p),e===qe&&(We=qe=null,tt=0),(o.subtreeFlags&2064)===0&&(o.flags&2064)===0||Ts||(Ts=!0,Dd(Mr,function(){return Jr(),null})),p=(o.flags&15990)!==0,(o.subtreeFlags&15990)!==0||p){p=Lt.transition,Lt.transition=null;var _=Re;Re=1;var I=Pe;Pe|=4,ru.current=null,k0(e,o),Sd(o,e),Qm(da),Wi=!!fa,da=fa=null,e.current=o,E0(o),$i(),Pe=I,Re=_,Lt.transition=p}else e.current=o;if(Ts&&(Ts=!1,$n=e,Is=f),p=e.pendingLanes,p===0&&(bn=null),$l(o.stateNode),mt(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(Ps)throw Ps=!1,e=su,su=null,e;return(Is&1)!==0&&e.tag!==0&&Jr(),p=e.pendingLanes,(p&1)!==0?e===lu?Jo++:(Jo=0,lu=e):Jo=0,zn(),null}function Jr(){if($n!==null){var e=xc(Is),n=Lt.transition,o=Re;try{if(Lt.transition=null,Re=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,ge=e.current;ge!==null;){var p=ge,_=p.child;if((ge.flags&16)!==0){var I=p.deletions;if(I!==null){for(var b=0;b<I.length;b++){var Z=I[b];for(ge=Z;ge!==null;){var oe=ge;switch(oe.tag){case 0:case 11:case 15:Go(8,oe,p)}var le=oe.child;if(le!==null)le.return=oe,ge=le;else for(;ge!==null;){oe=ge;var re=oe.sibling,pe=oe.return;if(yd(oe),oe===Z){ge=null;break}if(re!==null){re.return=pe,ge=re;break}ge=pe}}}var me=p.alternate;if(me!==null){var ye=me.child;if(ye!==null){me.child=null;do{var Ue=ye.sibling;ye.sibling=null,ye=Ue}while(ye!==null)}}ge=p}}if((p.subtreeFlags&2064)!==0&&_!==null)_.return=p,ge=_;else e:for(;ge!==null;){if(p=ge,(p.flags&2048)!==0)switch(p.tag){case 0:case 11:case 15:Go(9,p,p.return)}var K=p.sibling;if(K!==null){K.return=p.return,ge=K;break e}ge=p.return}}var V=e.current;for(ge=V;ge!==null;){_=ge;var G=_.child;if((_.subtreeFlags&2064)!==0&&G!==null)G.return=_,ge=G;else e:for(_=V;ge!==null;){if(I=ge,(I.flags&2048)!==0)try{switch(I.tag){case 0:case 11:case 15:Cs(9,I)}}catch(ve){Be(I,I.return,ve)}if(I===_){ge=null;break e}var ue=I.sibling;if(ue!==null){ue.return=I.return,ge=ue;break e}ge=I.return}}if(Pe=f,zn(),wt&&typeof wt.onPostCommitFiberRoot=="function")try{wt.onPostCommitFiberRoot(jr,e)}catch{}s=!0}return s}finally{Re=o,Lt.transition=n}}return!1}function zd(e,n,o){n=Qr(o,n),n=qf(e,n,1),e=An(e,n,1),n=ut(),e!==null&&(nr(e,1,n),mt(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"&&(bn===null||!bn.has(s))){e=Qr(o,e),e=Zf(n,e,1),n=An(n,e,1),e=ut(),n!==null&&(nr(n,1,e),mt(n,e));break}}n=n.return}}function T0(e,n,o){var s=e.pingCache;s!==null&&s.delete(n),n=ut(),e.pingedLanes|=e.suspendedLanes&o,qe===e&&(tt&o)===o&&(Ke===4||Ke===3&&(tt&130023424)===tt&&500>Oe()-iu?dr(e,0):ou|=o),mt(e,n)}function Ld(e,n){n===0&&((e.mode&1)===0?n=1:(n=Tr,Tr<<=1,(Tr&130023424)===0&&(Tr=4194304)));var o=ut();e=hn(e,n),e!==null&&(nr(e,n,o),mt(e,o))}function I0(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),Ld(e,o)}function R0(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),Ld(e,o)}var Ad;Ad=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||dt.current)ht=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return ht=!1,x0(e,n,o);ht=(e.flags&131072)!==0}else ht=!1,be&&(n.flags&1048576)!==0&&hf(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,ot.current);Xr(n,o),f=Da(null,n,s,e,f,o);var p=ba();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,pt(s)?(p=!0,ss(n)):p=!1,n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,Pa(n),f.updater=Ss,n.stateNode=f,f._reactInternals=n,Ba(n,s,e,o),n=Xa(null,n,s,!0,p,o)):(n.tag=0,be&&p&&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=$t(s,e),f){case 0:n=Ya(null,n,s,e,o);break e;case 1:n=ld(null,n,s,e,o);break e;case 11:n=nd(null,n,s,e,o);break e;case 14:n=rd(null,n,s,$t(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:$t(s,f),Ya(e,n,s,f,o);case 1:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:$t(s,f),ld(e,n,s,f,o);case 3:e:{if(ad(n),e===null)throw Error(i(387));s=n.pendingProps,p=n.memoizedState,f=p.element,kf(e,n),gs(n,s,null,o);var _=n.memoizedState;if(s=_.element,p.isDehydrated)if(p={element:s,isDehydrated:!1,cache:_.cache,pendingSuspenseBoundaries:_.pendingSuspenseBoundaries,transitions:_.transitions},n.updateQueue.baseState=p,n.memoizedState=p,n.flags&256){f=Qr(Error(i(423)),n),n=ud(e,n,s,o,f);break e}else if(s!==f){f=Qr(Error(i(424)),n),n=ud(e,n,s,o,f);break e}else for(Et=Tn(n.stateNode.containerInfo.firstChild),kt=n,be=!0,bt=null,o=_f(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 Cf(n),e===null&&Sa(n),s=n.type,f=n.pendingProps,p=e!==null?e.memoizedProps:null,_=f.children,pa(s,f)?_=null:p!==null&&pa(s,p)&&(n.flags|=32),sd(e,n),at(e,n,_,o),n.child;case 6:return e===null&&Sa(n),null;case 13:return cd(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:$t(s,f),nd(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,p=n.memoizedProps,_=f.value,ze(ds,s._currentValue),s._currentValue=_,p!==null)if(Dt(p.value,_)){if(p.children===f.children&&!dt.current){n=mn(e,n,o);break e}}else for(p=n.child,p!==null&&(p.return=n);p!==null;){var I=p.dependencies;if(I!==null){_=p.child;for(var b=I.firstContext;b!==null;){if(b.context===s){if(p.tag===1){b=gn(-1,o&-o),b.tag=2;var Z=p.updateQueue;if(Z!==null){Z=Z.shared;var oe=Z.pending;oe===null?b.next=b:(b.next=oe.next,oe.next=b),Z.pending=b}}p.lanes|=o,b=p.alternate,b!==null&&(b.lanes|=o),Ma(p.return,o,n),I.lanes|=o;break}b=b.next}}else if(p.tag===10)_=p.type===n.type?null:p.child;else if(p.tag===18){if(_=p.return,_===null)throw Error(i(341));_.lanes|=o,I=_.alternate,I!==null&&(I.lanes|=o),Ma(_,o,n),_=p.sibling}else _=p.child;if(_!==null)_.return=p;else for(_=p;_!==null;){if(_===n){_=null;break}if(p=_.sibling,p!==null){p.return=_.return,_=p;break}_=_.return}p=_}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=Rt(f),s=s(f),n.flags|=1,at(e,n,s,o),n.child;case 14:return s=n.type,f=$t(s,n.pendingProps),f=$t(s.type,f),rd(e,n,s,f,o);case 15:return od(e,n,n.type,n.pendingProps,o);case 17:return s=n.type,f=n.pendingProps,f=n.elementType===s?f:$t(s,f),Es(e,n),n.tag=1,pt(s)?(e=!0,ss(n)):e=!1,Xr(n,o),Qf(n,s,f),Ba(n,s,f,o),Xa(null,n,s,!0,e,o);case 19:return dd(e,n,o);case 22:return id(e,n,o)}throw Error(i(156,n.tag))};function Dd(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 pu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function L0(e){if(typeof e=="function")return pu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===X)return 11;if(e===H)return 14}return 2}function Hn(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,p){var _=2;if(s=e,typeof e=="function")pu(e)&&(_=1);else if(typeof e=="string")_=5;else e:switch(e){case B:return hr(o.children,f,p,n);case Y:_=8,f|=8;break;case Q:return e=At(12,o,n,f|2),e.elementType=Q,e.lanes=p,e;case W:return e=At(13,o,n,f),e.elementType=W,e.lanes=p,e;case N:return e=At(19,o,n,f),e.elementType=N,e.lanes=p,e;case U:return Ds(o,f,p,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ee:_=10;break e;case J:_=9;break e;case X:_=11;break e;case H:_=14;break e;case F:_=16,s=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return n=At(_,o,n,f),n.elementType=e,n.type=s,n.lanes=p,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=U,e.lanes=o,e.stateNode={isHidden:!1},e}function hu(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 A0(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=tr(0),this.expirationTimes=tr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=tr(0),this.identifierPrefix=s,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function mu(e,n,o,s,f,p,_,I,b){return e=new A0(e,n,o,I,b),n===1?(n=1,p===!0&&(n|=8)):n=0,p=At(3,null,null,n),e.current=p,p.stateNode=e,p.memoizedState={element:s,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Pa(p),e}function D0(e,n,o){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:L,key:s==null?null:""+s,children:e,containerInfo:n,implementation:o}}function bd(e){if(!e)return Rn;e=e._reactInternals;e:{if(Zt(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(pt(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(pt(o))return ff(e,o,n)}return n}function $d(e,n,o,s,f,p,_,I,b){return e=mu(o,s,!0,e,f,p,_,I,b),e.context=bd(null),o=e.current,s=ut(),f=On(o),p=gn(s,f),p.callback=n??null,An(o,p,f),e.current.lanes=f,nr(e,f,s),mt(e,s),e}function bs(e,n,o,s){var f=n.current,p=ut(),_=On(f);return o=bd(o),n.context===null?n.context=o:n.pendingContext=o,n=gn(p,_),n.payload={element:e},s=s===void 0?null:s,s!==null&&(n.callback=s),e=An(f,n,_),e!==null&&(Ht(e,f,_,p),hs(e,f,_)),_}function $s(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 Od(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){Od(e,n),(e=e.alternate)&&Od(e,n)}function b0(){return null}var Fd=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));bs(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;fr(function(){bs(null,e,null,null)}),n[cn]=null}};function Os(e){this._internalRoot=e}Os.prototype.unstable_scheduleHydration=function(e){if(e){var n=Sc();e={blockedOn:null,target:e,priority:n};for(var o=0;o<Mn.length&&n!==0&&n<Mn[o].priority;o++);Mn.splice(o,0,e),o===0&&Nc(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 Hd(){}function $0(e,n,o,s,f){if(f){if(typeof s=="function"){var p=s;s=function(){var Z=$s(_);p.call(Z)}}var _=$d(n,s,e,0,null,!1,!1,"",Hd);return e._reactRootContainer=_,e[cn]=_.current,bo(e.nodeType===8?e.parentNode:e),fr(),_}for(;f=e.lastChild;)e.removeChild(f);if(typeof s=="function"){var I=s;s=function(){var Z=$s(b);I.call(Z)}}var b=mu(e,0,!1,null,null,!1,!1,"",Hd);return e._reactRootContainer=b,e[cn]=b.current,bo(e.nodeType===8?e.parentNode:e),fr(function(){bs(n,b,o,s)}),b}function Hs(e,n,o,s,f){var p=o._reactRootContainer;if(p){var _=p;if(typeof f=="function"){var I=f;f=function(){var b=$s(_);I.call(b)}}bs(n,_,e,f)}else _=$0(o,n,e,f,s);return $s(_)}wc=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var o=er(n.pendingLanes);o!==0&&(Ir(n,o|1),mt(n,Oe()),(Pe&6)===0&&(Zr=Oe()+500,zn()))}break;case 13:fr(function(){var s=hn(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=hn(e,134217728);if(n!==null){var o=ut();Ht(n,e,134217728,o)}yu(e,134217728)}},_c=function(e){if(e.tag===13){var n=On(e),o=hn(e,n);if(o!==null){var s=ut();Ht(o,e,n,s)}yu(e,n)}},Sc=function(){return Re},kc=function(e,n){var o=Re;try{return Re=e,n()}finally{Re=o}},mo=function(e,n,o){switch(n){case"input":if(Me(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));xe(s),Me(s,f)}}}break;case"textarea":qt(e,o);break;case"select":n=o.value,n!=null&&rt(e,!!o.multiple,n,!1)}},Ii=cu,Ri=fr;var O0={usingClientEntryPoint:!1,Events:[Fo,Or,os,Pi,Ti,cu]},ei={findFiberByHostInstance:rr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},F0={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:M.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Li(e),e===null?null:e.stateNode},findFiberByHostInstance:ei.findFiberByHostInstance||b0,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 Vs=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Vs.isDisabled&&Vs.supportsFiber)try{jr=Vs.inject(F0),wt=Vs}catch{}}return yt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O0,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 D0(e,n,null,o)},yt.createRoot=function(e,n){if(!xu(e))throw Error(i(299));var o=!1,s="",f=Fd;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,bo(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=Li(n),e=e===null?null:e.stateNode,e},yt.flushSync=function(e){return fr(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,p="",_=Fd;if(o!=null&&(o.unstable_strictMode===!0&&(f=!0),o.identifierPrefix!==void 0&&(p=o.identifierPrefix),o.onRecoverableError!==void 0&&(_=o.onRecoverableError)),n=$d(n,null,e,1,o??null,f,!1,p,_),e[cn]=n.current,bo(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?(fr(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 ph(){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=X0(),Su.exports}var Gd;function K0(){if(Gd)return Bs;Gd=1;var t=ph();return Bs.createRoot=t.createRoot,Bs.hydrateRoot=t.hydrateRoot,Bs}var Q0=K0();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 $e={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,i={})=>fetch(`/api/flows/${encodeURIComponent(t)}/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({close_mode:r,initial_vars:i})}).then(l=>Qe(l)),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`},qd={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",palette_click_add:"Click + (or double-click) to add, or drag onto the canvas",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",run_params_menu:"Run parameters / inputs",runp_title:"Run parameters",runp_hint:"Fill in the flow's input variables, or pick a saved value set. Used as {name} in the steps.",runp_set:"Value set",runp_set_none:"(none)",runp_save_set:"💾 Save as set",runp_set_name_prompt:"Name for the value set:",runp_add_var:"+ Add variable",runp_var_name:"name",runp_var_value:"value",inputs_title:"Run parameters / inputs",inputs_hint:"Declare the variables the flow expects at run time. They appear in the run dialog and resolve as {name}.",inputs_add:"+ Add input",inputs_sets:"Saved value sets",inputs_set_rename:"Rename"},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",palette_click_add:"Klicka + (eller dubbelklicka) för att lägga till, eller dra till canvasen",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",run_params_menu:"Kör-parametrar / indata",runp_title:"Kör-parametrar",runp_hint:"Fyll i flödets indata-variabler, eller välj ett sparat värde-set. Används som {name} i stegen.",runp_set:"Värde-set",runp_set_none:"(inget)",runp_save_set:"💾 Spara som set",runp_set_name_prompt:"Namn på värde-setet:",runp_add_var:"+ Lägg till variabel",runp_var_name:"namn",runp_var_value:"värde",inputs_title:"Kör-parametrar / indata",inputs_hint:"Deklarera vilka variabler flödet förväntar sig vid körning. De dyker upp i kördialogen och löses som {name}.",inputs_add:"+ Lägg till indata",inputs_sets:"Sparade värde-set",inputs_set_rename:"Döp om"}};function G0(t){return(r,i)=>{let l=qd[t][r]??qd.en[r]??r;if(i)for(const[a,u]of Object.entries(i))l=l.replace(`{${a}}`,String(u));return l}}function ec(){try{return crypto.randomUUID().slice(0,12)}catch{return Math.random().toString(36).slice(2,14)}}const q0=150,Z0=0;function Ut(t){var r,i,l;return t.id||(t.id=ec()),(r=t.steps)==null||r.forEach(Ut),(i=t.else)==null||i.forEach(Ut),(l=t.branches)==null||l.forEach(a=>a.steps.forEach(Ut)),t}function hh(t){const r=(t.steps??[]).map(c=>Ut({...c})),i=t.layout??{},l=r.map((c,d)=>({id:c.id,step:c,position:i[c.id]??{x:Z0,y:d*q0}})),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 xn(t,r){const i=t.step_types.find(a=>a.type===r),l={type:r,id:ec()};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 gh(t,r,i){const l=xn(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 mh(t,r,i){const l=t.slice();return l.splice(r,0,i),l}function yh(t,r){const i=t.slice();return i.splice(r,1),i}function $u(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 J0(){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 h=Number(i??0);return{...c,branches:(c.branches??[]).map((g,y)=>y===h?{...g,steps:[...g.steps,l]}:g)}}return c}let d=c;if(c.steps){const h=Js(c.steps,r,i,l);h&&(a=!0,d={...d,steps:h})}if(c.branches){let h=!1;const g=c.branches.map(y=>{const v=Js(y.steps,r,i,l);return v?(h=!0,{...y,steps:v}):y});h&&(a=!0,d={...d,branches:g})}if(c.else){const h=Js(c.else,r,i,l);h&&(a=!0,d={...d,else:h})}return d});return a?u:null}function ey(t){return(t??"").split(",").map(r=>r.trim()).filter(Boolean)}function ty(t){const r={};for(const i of t)i.name&&i.default!=null&&i.default!==""&&(r[i.name]=String(i.default));return r}function Zd(t,r){const i={...t};for(const l of r){const a=l.name.trim();a&&(i[a]=l.value)}return i}function ny(t){var r;return(((r=t.inputs)==null?void 0:r.length)??0)>0||Object.keys(t.input_sets??{}).length>0}function ry(t){const{t:r}=t,[i,l]=R.useState(!1),a=R.useRef(null);R.useEffect(()=>{if(!i)return;const c=h=>{a.current&&!a.current.contains(h.target)&&l(!1)},d=h=>h.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 x.jsxs("div",{className:"menu-wrap",ref:a,children:[x.jsx("button",{className:"secondary",title:r("menu"),onClick:()=>l(c=>!c),children:"⚙"}),i&&x.jsxs("div",{className:"menu-popover",children:[x.jsx("div",{className:"menu-section",children:r("menu_flow")}),x.jsx("button",{className:"menu-item",onClick:u(t.onNew),children:r("new_flow")}),x.jsx("button",{className:"menu-item",onClick:u(t.onDelete),disabled:!t.currentName,children:r("delete_flow")}),x.jsx("a",{className:"menu-item",href:t.currentName?$e.exportUrl(t.currentName):void 0,target:"_blank",rel:"noopener",onClick:()=>l(!1),children:r("export")}),x.jsx("div",{className:"menu-section",children:r("menu_run")}),x.jsxs("label",{className:"menu-item menu-field",children:[x.jsx("span",{children:r("menu_run")}),x.jsxs("select",{value:t.closeMode,onChange:c=>t.setCloseMode(c.target.value),children:[x.jsx("option",{value:"always",children:r("close_always")}),x.jsx("option",{value:"on_success",children:r("close_on_success")}),x.jsx("option",{value:"never",children:r("close_never")})]})]}),x.jsx("button",{className:"menu-item",onClick:u(t.onOpenSettings),children:r("run_settings")}),x.jsx("button",{className:"menu-item",onClick:u(t.onOpenInputs),children:r("run_params_menu")}),x.jsx("div",{className:"menu-section",children:r("menu_view")}),x.jsxs("label",{className:"menu-item menu-field",children:[x.jsx("span",{children:r("language")}),x.jsxs("select",{value:t.lang,onChange:c=>t.setLang(c.target.value),children:[x.jsx("option",{value:"en",children:"English"}),x.jsx("option",{value:"sv",children:"Svenska"})]})]}),x.jsx("div",{className:"menu-section",children:r("menu_tools")}),x.jsx("button",{className:"menu-item",onClick:u(t.onOpenInspect),children:r("inspect_window")}),x.jsx("a",{className:"menu-item",href:"/wiki",target:"_blank",rel:"noopener",onClick:()=>l(!1),children:r("wiki")})]})]})}function oy(t){const{t:r}=t;return x.jsxs("header",{children:[x.jsx("h1",{children:r("app_title")}),x.jsx("select",{value:t.currentName??"",onChange:i=>t.onSelect(i.target.value),children:t.flowNames.map(i=>x.jsx("option",{value:i,children:i},i))}),x.jsx("span",{className:"spacer"}),x.jsx("span",{className:"dirty-dot "+(t.dirty?"on":""),title:t.dirty?r("unsaved"):r("saved")}),x.jsx("button",{className:"secondary",onClick:t.onSave,children:r("save")}),x.jsx("button",{onClick:t.onRun,disabled:t.running||!t.currentName,children:r("run")}),x.jsx(ry,{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,onOpenInputs:t.onOpenInputs})]})}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 iy={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 sy(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=sy(t+"",i),a,u=-1,c=l.length;if(arguments.length<2){for(;++u<c;)if((a=(t=l[u]).type)&&(a=ly(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]=Jd(i[a],t.name,r);else if(r==null)for(a in i)i[a]=Jd(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 ly(t,r){for(var i=0,l=t.length,a;i<l;++i)if((a=t[i]).name===r)return a.value}function Jd(t,r,i){for(var l=0,a=t.length;l<a;++l)if(t[l].name===r){t[l]=iy,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 ep={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)),ep.hasOwnProperty(r)?{space:ep[r],local:t}:t}function ay(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 uy(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function vh(t){var r=yl(t);return(r.local?uy:ay)(r)}function cy(){}function tc(t){return t==null?cy:function(){return this.querySelector(t)}}function fy(t){typeof t!="function"&&(t=tc(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),h,g,y=0;y<c;++y)(h=u[y])&&(g=t.call(h,h.__data__,y,u))&&("__data__"in h&&(g.__data__=h.__data__),d[y]=g);return new Mt(l,this._parents)}function dy(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function py(){return[]}function xh(t){return t==null?py:function(){return this.querySelectorAll(t)}}function hy(t){return function(){return dy(t.apply(this,arguments))}}function gy(t){typeof t=="function"?t=hy(t):t=xh(t);for(var r=this._groups,i=r.length,l=[],a=[],u=0;u<i;++u)for(var c=r[u],d=c.length,h,g=0;g<d;++g)(h=c[g])&&(l.push(t.call(h,h.__data__,g,c)),a.push(h));return new Mt(l,a)}function wh(t){return function(){return this.matches(t)}}function _h(t){return function(r){return r.matches(t)}}var my=Array.prototype.find;function yy(t){return function(){return my.call(this.children,t)}}function vy(){return this.firstElementChild}function xy(t){return this.select(t==null?vy:yy(typeof t=="function"?t:_h(t)))}var wy=Array.prototype.filter;function _y(){return Array.from(this.children)}function Sy(t){return function(){return wy.call(this.children,t)}}function ky(t){return this.selectAll(t==null?_y:Sy(typeof t=="function"?t:_h(t)))}function Ey(t){typeof t!="function"&&(t=wh(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]=[],h,g=0;g<c;++g)(h=u[g])&&t.call(h,h.__data__,g,u)&&d.push(h);return new Mt(l,this._parents)}function Sh(t){return new Array(t.length)}function Ny(){return new Mt(this._enter||this._groups.map(Sh),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 Cy(t){return function(){return t}}function My(t,r,i,l,a,u){for(var c=0,d,h=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<h;++c)(d=r[c])&&(a[c]=d)}function jy(t,r,i,l,a,u,c){var d,h,g=new Map,y=r.length,v=u.length,m=new Array(y),w;for(d=0;d<y;++d)(h=r[d])&&(m[d]=w=c.call(h,h.__data__,d,r)+"",g.has(w)?a[d]=h:g.set(w,h));for(d=0;d<v;++d)w=c.call(t,u[d],d,u)+"",(h=g.get(w))?(l[d]=h,h.__data__=u[d],g.delete(w)):i[d]=new il(t,u[d]);for(d=0;d<y;++d)(h=r[d])&&g.get(m[d])===h&&(a[d]=h)}function Py(t){return t.__data__}function Ty(t,r){if(!arguments.length)return Array.from(this,Py);var i=r?jy:My,l=this._parents,a=this._groups;typeof t!="function"&&(t=Cy(t));for(var u=a.length,c=new Array(u),d=new Array(u),h=new Array(u),g=0;g<u;++g){var y=l[g],v=a[g],m=v.length,w=Iy(t.call(y,y&&y.__data__,g,l)),S=w.length,j=d[g]=new Array(S),C=c[g]=new Array(S),E=h[g]=new Array(m);i(y,v,j,C,E,w,r);for(var T=0,k=0,M,$;T<S;++T)if(M=j[T]){for(T>=k&&(k=T+1);!($=C[k])&&++k<S;);M._next=$||null}}return c=new Mt(c,l),c._enter=d,c._exit=h,c}function Iy(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Ry(){return new Mt(this._exit||this._groups.map(Sh),this._parents)}function zy(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 Ly(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),h=0;h<c;++h)for(var g=i[h],y=l[h],v=g.length,m=d[h]=new Array(v),w,S=0;S<v;++S)(w=g[S]||y[S])&&(m[S]=w);for(;h<a;++h)d[h]=i[h];return new Mt(d,this._parents)}function Ay(){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 Dy(t){t||(t=by);function r(v,m){return v&&m?t(v.__data__,m.__data__):!v-!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,h=a[u]=new Array(d),g,y=0;y<d;++y)(g=c[y])&&(h[y]=g);h.sort(r)}return new Mt(a,this._parents).order()}function by(t,r){return t<r?-1:t>r?1:t>=r?0:NaN}function $y(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Oy(){return Array.from(this)}function Fy(){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 Hy(){let t=0;for(const r of this)++t;return t}function Vy(){return!this.node()}function By(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 Uy(t){return function(){this.removeAttribute(t)}}function Wy(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Yy(t,r){return function(){this.setAttribute(t,r)}}function Xy(t,r){return function(){this.setAttributeNS(t.space,t.local,r)}}function Ky(t,r){return function(){var i=r.apply(this,arguments);i==null?this.removeAttribute(t):this.setAttribute(t,i)}}function Qy(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 Gy(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?Wy:Uy:typeof r=="function"?i.local?Qy:Ky:i.local?Xy:Yy)(i,r))}function kh(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function qy(t){return function(){this.style.removeProperty(t)}}function Zy(t,r,i){return function(){this.style.setProperty(t,r,i)}}function Jy(t,r,i){return function(){var l=r.apply(this,arguments);l==null?this.style.removeProperty(t):this.style.setProperty(t,l,i)}}function ev(t,r,i){return arguments.length>1?this.each((r==null?qy:typeof r=="function"?Jy:Zy)(t,r,i??"")):oo(this.node(),t)}function oo(t,r){return t.style.getPropertyValue(r)||kh(t).getComputedStyle(t,null).getPropertyValue(r)}function tv(t){return function(){delete this[t]}}function nv(t,r){return function(){this[t]=r}}function rv(t,r){return function(){var i=r.apply(this,arguments);i==null?delete this[t]:this[t]=i}}function ov(t,r){return arguments.length>1?this.each((r==null?tv:typeof r=="function"?rv:nv)(t,r)):this.node()[t]}function Eh(t){return t.trim().split(/^|\s+/)}function nc(t){return t.classList||new Nh(t)}function Nh(t){this._node=t,this._names=Eh(t.getAttribute("class")||"")}Nh.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 Ch(t,r){for(var i=nc(t),l=-1,a=r.length;++l<a;)i.add(r[l])}function Mh(t,r){for(var i=nc(t),l=-1,a=r.length;++l<a;)i.remove(r[l])}function iv(t){return function(){Ch(this,t)}}function sv(t){return function(){Mh(this,t)}}function lv(t,r){return function(){(r.apply(this,arguments)?Ch:Mh)(this,t)}}function av(t,r){var i=Eh(t+"");if(arguments.length<2){for(var l=nc(this.node()),a=-1,u=i.length;++a<u;)if(!l.contains(i[a]))return!1;return!0}return this.each((typeof r=="function"?lv:r?iv:sv)(i,r))}function uv(){this.textContent=""}function cv(t){return function(){this.textContent=t}}function fv(t){return function(){var r=t.apply(this,arguments);this.textContent=r??""}}function dv(t){return arguments.length?this.each(t==null?uv:(typeof t=="function"?fv:cv)(t)):this.node().textContent}function pv(){this.innerHTML=""}function hv(t){return function(){this.innerHTML=t}}function gv(t){return function(){var r=t.apply(this,arguments);this.innerHTML=r??""}}function mv(t){return arguments.length?this.each(t==null?pv:(typeof t=="function"?gv:hv)(t)):this.node().innerHTML}function yv(){this.nextSibling&&this.parentNode.appendChild(this)}function vv(){return this.each(yv)}function xv(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function wv(){return this.each(xv)}function _v(t){var r=typeof t=="function"?t:vh(t);return this.select(function(){return this.appendChild(r.apply(this,arguments))})}function Sv(){return null}function kv(t,r){var i=typeof t=="function"?t:vh(t),l=r==null?Sv:typeof r=="function"?r:tc(r);return this.select(function(){return this.insertBefore(i.apply(this,arguments),l.apply(this,arguments)||null)})}function Ev(){var t=this.parentNode;t&&t.removeChild(this)}function Nv(){return this.each(Ev)}function Cv(){var t=this.cloneNode(!1),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function Mv(){var t=this.cloneNode(!0),r=this.parentNode;return r?r.insertBefore(t,this.nextSibling):t}function jv(t){return this.select(t?Mv:Cv)}function Pv(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Tv(t){return function(r){t.call(this,r,this.__data__)}}function Iv(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 Rv(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 zv(t,r,i){return function(){var l=this.__on,a,u=Tv(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 Lv(t,r,i){var l=Iv(t+""),a,u=l.length,c;if(arguments.length<2){var d=this.node().__on;if(d){for(var h=0,g=d.length,y;h<g;++h)for(a=0,y=d[h];a<u;++a)if((c=l[a]).type===y.type&&c.name===y.name)return y.value}return}for(d=r?zv:Rv,a=0;a<u;++a)this.each(d(l[a],r,i));return this}function jh(t,r,i){var l=kh(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 Av(t,r){return function(){return jh(this,t,r)}}function Dv(t,r){return function(){return jh(this,t,r.apply(this,arguments))}}function bv(t,r){return this.each((typeof r=="function"?Dv:Av)(t,r))}function*$v(){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 Ph=[null];function Mt(t,r){this._groups=t,this._parents=r}function xi(){return new Mt([[document.documentElement]],Ph)}function Ov(){return this}Mt.prototype=xi.prototype={constructor:Mt,select:fy,selectAll:gy,selectChild:xy,selectChildren:ky,filter:Ey,data:Ty,enter:Ny,exit:Ry,join:zy,merge:Ly,selection:Ov,order:Ay,sort:Dy,call:$y,nodes:Oy,node:Fy,size:Hy,empty:Vy,each:By,attr:Gy,style:ev,property:ov,classed:av,text:dv,html:mv,raise:vv,lower:wv,append:_v,insert:kv,remove:Nv,clone:jv,datum:Pv,on:Lv,dispatch:bv,[Symbol.iterator]:$v};function Ct(t){return typeof t=="string"?new Mt([[document.querySelector(t)]],[document.documentElement]):new Mt([[t]],Ph)}function Fv(t){let r;for(;r=t.sourceEvent;)t=r;return t}function Vt(t,r){if(t=Fv(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 Hv={passive:!1},ui={capture:!0,passive:!1};function Nu(t){t.stopImmediatePropagation()}function no(t){t.preventDefault(),t.stopImmediatePropagation()}function Th(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 Ih(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:h,dy:g,dispatch:y}){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:h,enumerable:!0,configurable:!0},dy:{value:g,enumerable:!0,configurable:!0},_:{value:y}})}Fu.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Vv(t){return!t.ctrlKey&&!t.button}function Bv(){return this.parentNode}function Uv(t,r){return r??{x:t.x,y:t.y}}function Wv(){return navigator.maxTouchPoints||"ontouchstart"in this}function Rh(){var t=Vv,r=Bv,i=Uv,l=Wv,a={},u=ml("start","drag","end"),c=0,d,h,g,y,v=0;function m(M){M.on("mousedown.drag",w).filter(l).on("touchstart.drag",C).on("touchmove.drag",E,Hv).on("touchend.drag touchcancel.drag",T).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function w(M,$){if(!(y||!t.call(this,M,$))){var L=k(this,r.call(this,M,$),M,$,"mouse");L&&(Ct(M.view).on("mousemove.drag",S,ui).on("mouseup.drag",j,ui),Th(M.view),Nu(M),g=!1,d=M.clientX,h=M.clientY,L("start",M))}}function S(M){if(no(M),!g){var $=M.clientX-d,L=M.clientY-h;g=$*$+L*L>v}a.mouse("drag",M)}function j(M){Ct(M.view).on("mousemove.drag mouseup.drag",null),Ih(M.view,g),no(M),a.mouse("end",M)}function C(M,$){if(t.call(this,M,$)){var L=M.changedTouches,B=r.call(this,M,$),Y=L.length,Q,ee;for(Q=0;Q<Y;++Q)(ee=k(this,B,M,$,L[Q].identifier,L[Q]))&&(Nu(M),ee("start",M,L[Q]))}}function E(M){var $=M.changedTouches,L=$.length,B,Y;for(B=0;B<L;++B)(Y=a[$[B].identifier])&&(no(M),Y("drag",M,$[B]))}function T(M){var $=M.changedTouches,L=$.length,B,Y;for(y&&clearTimeout(y),y=setTimeout(function(){y=null},500),B=0;B<L;++B)(Y=a[$[B].identifier])&&(Nu(M),Y("end",M,$[B]))}function k(M,$,L,B,Y,Q){var ee=u.copy(),J=Vt(Q||L,$),X,W,N;if((N=i.call(M,new Fu("beforestart",{sourceEvent:L,target:m,identifier:Y,active:c,x:J[0],y:J[1],dx:0,dy:0,dispatch:ee}),B))!=null)return X=N.x-J[0]||0,W=N.y-J[1]||0,function H(F,U,A){var D=J,O;switch(F){case"start":a[Y]=H,O=c++;break;case"end":delete a[Y],--c;case"drag":J=Vt(A||U,$),O=c;break}ee.call(F,M,new Fu(F,{sourceEvent:U,subject:N,target:m,identifier:Y,active:O,x:J[0]+X,y:J[1]+W,dx:J[0]-D[0],dy:J[1]-D[1],dispatch:ee}),B)}}return m.filter=function(M){return arguments.length?(t=typeof M=="function"?M:Us(!!M),m):t},m.container=function(M){return arguments.length?(r=typeof M=="function"?M:Us(M),m):r},m.subject=function(M){return arguments.length?(i=typeof M=="function"?M:Us(M),m):i},m.touchable=function(M){return arguments.length?(l=typeof M=="function"?M:Us(!!M),m):l},m.on=function(){var M=u.on.apply(u,arguments);return M===u?m:M},m.clickDistance=function(M){return arguments.length?(v=(M=+M)*M,m):Math.sqrt(v)},m}function rc(t,r,i){t.prototype=r.prototype=i,i.constructor=t}function zh(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*",Yv=/^#([0-9a-f]{3,8})$/,Xv=new RegExp(`^rgb\\(${ro},${ro},${ro}\\)$`),Kv=new RegExp(`^rgb\\(${on},${on},${on}\\)$`),Qv=new RegExp(`^rgba\\(${ro},${ro},${ro},${fi}\\)$`),Gv=new RegExp(`^rgba\\(${on},${on},${on},${fi}\\)$`),qv=new RegExp(`^hsl\\(${fi},${on},${on}\\)$`),Zv=new RegExp(`^hsla\\(${fi},${on},${on},${fi}\\)$`),tp={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};rc(wi,xr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:np,formatHex:np,formatHex8:Jv,formatHsl:ex,formatRgb:rp,toString:rp});function np(){return this.rgb().formatHex()}function Jv(){return this.rgb().formatHex8()}function ex(){return Lh(this).formatHsl()}function rp(){return this.rgb().formatRgb()}function xr(t){var r,i;return t=(t+"").trim().toLowerCase(),(r=Yv.exec(t))?(i=r[1].length,r=parseInt(r[1],16),i===6?op(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=Xv.exec(t))?new vt(r[1],r[2],r[3],1):(r=Kv.exec(t))?new vt(r[1]*255/100,r[2]*255/100,r[3]*255/100,1):(r=Qv.exec(t))?Ws(r[1],r[2],r[3],r[4]):(r=Gv.exec(t))?Ws(r[1]*255/100,r[2]*255/100,r[3]*255/100,r[4]):(r=qv.exec(t))?lp(r[1],r[2]/100,r[3]/100,1):(r=Zv.exec(t))?lp(r[1],r[2]/100,r[3]/100,r[4]):tp.hasOwnProperty(t)?op(tp[t]):t==="transparent"?new vt(NaN,NaN,NaN,0):null}function op(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 tx(t){return t instanceof wi||(t=xr(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?tx(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}rc(vt,Hu,zh(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(yr(this.r),yr(this.g),yr(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:ip,formatHex:ip,formatHex8:nx,formatRgb:sp,toString:sp}));function ip(){return`#${mr(this.r)}${mr(this.g)}${mr(this.b)}`}function nx(){return`#${mr(this.r)}${mr(this.g)}${mr(this.b)}${mr((isNaN(this.opacity)?1:this.opacity)*255)}`}function sp(){const t=ll(this.opacity);return`${t===1?"rgb(":"rgba("}${yr(this.r)}, ${yr(this.g)}, ${yr(this.b)}${t===1?")":`, ${t})`}`}function ll(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function yr(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function mr(t){return t=yr(t),(t<16?"0":"")+t.toString(16)}function lp(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 Lh(t){if(t instanceof Bt)return new Bt(t.h,t.s,t.l,t.opacity);if(t instanceof wi||(t=xr(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,a=Math.min(r,i,l),u=Math.max(r,i,l),c=NaN,d=u-a,h=(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/=h<.5?u+a:2-u-a,c*=60):d=h>0&&h<1?0:c,new Bt(c,d,h,t.opacity)}function rx(t,r,i,l){return arguments.length===1?Lh(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}rc(Bt,rx,zh(wi,{brighter(t){return t=t==null?sl:Math.pow(sl,t),new Bt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?ci:Math.pow(ci,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,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 Bt(ap(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("}${ap(this.h)}, ${Ys(this.s)*100}%, ${Ys(this.l)*100}%${t===1?")":`, ${t})`}`}}));function ap(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 oc=t=>()=>t;function ox(t,r){return function(i){return t+i*r}}function ix(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 sx(t){return(t=+t)==1?Ah:function(r,i){return i-r?ix(r,i,t):oc(isNaN(r)?i:r)}}function Ah(t,r){var i=r-t;return i?ox(t,i):oc(isNaN(t)?r:t)}const al=(function t(r){var i=sx(r);function l(a,u){var c=i((a=Hu(a)).r,(u=Hu(u)).r),d=i(a.g,u.g),h=i(a.b,u.b),g=Ah(a.opacity,u.opacity);return function(y){return a.r=c(y),a.g=d(y),a.b=h(y),a.opacity=g(y),a+""}}return l.gamma=t,l})(1);function lx(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 ax(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function ux(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 cx(t,r){var i=new Date;return t=+t,r=+r,function(l){return i.setTime(t*(1-l)+r*l),i}}function rn(t,r){return t=+t,r=+r,function(i){return t*(1-i)+r*i}}function fx(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 Vu=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Mu=new RegExp(Vu.source,"g");function dx(t){return function(){return t}}function px(t){return function(r){return t(r)+""}}function Dh(t,r){var i=Vu.lastIndex=Mu.lastIndex=0,l,a,u,c=-1,d=[],h=[];for(t=t+"",r=r+"";(l=Vu.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,h.push({i:c,x:rn(l,a)})),i=Mu.lastIndex;return i<r.length&&(u=r.slice(i),d[c]?d[c]+=u:d[++c]=u),d.length<2?h[0]?px(h[0].x):dx(r):(r=h.length,function(g){for(var y=0,v;y<r;++y)d[(v=h[y]).i]=v.x(g);return d.join("")})}function li(t,r){var i=typeof r,l;return r==null||i==="boolean"?oc(r):(i==="number"?rn:i==="string"?(l=xr(r))?(r=l,al):Dh:r instanceof xr?al:r instanceof Date?cx:ax(r)?lx:Array.isArray(r)?ux:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?fx:rn)(t,r)}var up=180/Math.PI,Bu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function bh(t,r,i,l,a,u){var c,d,h;return(c=Math.sqrt(t*t+r*r))&&(t/=c,r/=c),(h=t*i+r*l)&&(i-=t*h,l-=r*h),(d=Math.sqrt(i*i+l*l))&&(i/=d,l/=d,h/=d),t*l<r*i&&(t=-t,r=-r,h=-h,c=-c),{translateX:a,translateY:u,rotate:Math.atan2(r,t)*up,skewX:Math.atan(h)*up,scaleX:c,scaleY:d}}var Xs;function hx(t){const r=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return r.isIdentity?Bu:bh(r.a,r.b,r.c,r.d,r.e,r.f)}function gx(t){return t==null||(Xs||(Xs=document.createElementNS("http://www.w3.org/2000/svg","g")),Xs.setAttribute("transform",t),!(t=Xs.transform.baseVal.consolidate()))?Bu:(t=t.matrix,bh(t.a,t.b,t.c,t.d,t.e,t.f))}function $h(t,r,i,l){function a(g){return g.length?g.pop()+" ":""}function u(g,y,v,m,w,S){if(g!==v||y!==m){var j=w.push("translate(",null,r,null,i);S.push({i:j-4,x:rn(g,v)},{i:j-2,x:rn(y,m)})}else(v||m)&&w.push("translate("+v+r+m+i)}function c(g,y,v,m){g!==y?(g-y>180?y+=360:y-g>180&&(g+=360),m.push({i:v.push(a(v)+"rotate(",null,l)-2,x:rn(g,y)})):y&&v.push(a(v)+"rotate("+y+l)}function d(g,y,v,m){g!==y?m.push({i:v.push(a(v)+"skewX(",null,l)-2,x:rn(g,y)}):y&&v.push(a(v)+"skewX("+y+l)}function h(g,y,v,m,w,S){if(g!==v||y!==m){var j=w.push(a(w)+"scale(",null,",",null,")");S.push({i:j-4,x:rn(g,v)},{i:j-2,x:rn(y,m)})}else(v!==1||m!==1)&&w.push(a(w)+"scale("+v+","+m+")")}return function(g,y){var v=[],m=[];return g=t(g),y=t(y),u(g.translateX,g.translateY,y.translateX,y.translateY,v,m),c(g.rotate,y.rotate,v,m),d(g.skewX,y.skewX,v,m),h(g.scaleX,g.scaleY,y.scaleX,y.scaleY,v,m),g=y=null,function(w){for(var S=-1,j=m.length,C;++S<j;)v[(C=m[S]).i]=C.x(w);return v.join("")}}}var mx=$h(hx,"px, ","px)","deg)"),yx=$h(gx,", ",")",")"),vx=1e-12;function cp(t){return((t=Math.exp(t))+1/t)/2}function xx(t){return((t=Math.exp(t))-1/t)/2}function wx(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],h=u[1],g=u[2],y=c[0],v=c[1],m=c[2],w=y-d,S=v-h,j=w*w+S*S,C,E;if(j<vx)E=Math.log(m/g)/r,C=function(B){return[d+B*w,h+B*S,g*Math.exp(r*B*E)]};else{var T=Math.sqrt(j),k=(m*m-g*g+l*j)/(2*g*i*T),M=(m*m-g*g-l*j)/(2*m*i*T),$=Math.log(Math.sqrt(k*k+1)-k),L=Math.log(Math.sqrt(M*M+1)-M);E=(L-$)/r,C=function(B){var Y=B*E,Q=cp($),ee=g/(i*T)*(Q*wx(r*Y+$)-xx($));return[d+ee*w,h+ee*S,g*Q/cp(r*Y+$)]}}return C.duration=E*1e3*r/Math.SQRT2,C}return a.rho=function(u){var c=Math.max(.001,+u),d=c*c,h=d*d;return t(c,d,h)},a})(Math.SQRT2,2,4);var io=0,ii=0,ri=0,Oh=1e3,ul,si,cl=0,wr=0,vl=0,di=typeof performance=="object"&&performance.now?performance:Date,Fh=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ic(){return wr||(Fh(_x),wr=di.now()+vl)}function _x(){wr=0}function fl(){this._call=this._time=this._next=null}fl.prototype=Hh.prototype={constructor:fl,restart:function(t,r,i){if(typeof t!="function")throw new TypeError("callback is not a function");i=(i==null?ic():+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 Hh(t,r,i){var l=new fl;return l.restart(t,r,i),l}function Sx(){ic(),++io;for(var t=ul,r;t;)(r=wr-t._time)>=0&&t._call.call(void 0,r),t=t._next;--io}function fp(){wr=(cl=di.now())+vl,io=ii=0;try{Sx()}finally{io=0,Ex(),wr=0}}function kx(){var t=di.now(),r=t-cl;r>Oh&&(vl-=r,cl=t)}function Ex(){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-wr;r>24?(t<1/0&&(ii=setTimeout(fp,t-di.now()-vl)),ri&&(ri=clearInterval(ri))):(ri||(cl=di.now(),ri=setInterval(kx,Oh)),io=1,Fh(fp))}}function dp(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 Nx=ml("start","end","cancel","interrupt"),Cx=[],Vh=0,pp=1,Wu=2,nl=3,hp=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;Mx(t,i,{name:r,index:l,group:a,on:Nx,tween:Cx,time:u.time,delay:u.delay,duration:u.duration,ease:u.ease,timer:null,state:Vh})}function sc(t,r){var i=Kt(t,r);if(i.state>Vh)throw new Error("too late; already scheduled");return i}function sn(t,r){var i=Kt(t,r);if(i.state>nl)throw new Error("too late; already running");return i}function Kt(t,r){var i=t.__transition;if(!i||!(i=i[r]))throw new Error("transition not found");return i}function Mx(t,r,i){var l=t.__transition,a;l[r]=i,i.timer=Hh(u,0,i.time);function u(g){i.state=pp,i.timer.restart(c,i.delay,i.time),i.delay<=g&&c(g-i.delay)}function c(g){var y,v,m,w;if(i.state!==pp)return h();for(y in l)if(w=l[y],w.name===i.name){if(w.state===nl)return dp(c);w.state===hp?(w.state=rl,w.timer.stop(),w.on.call("interrupt",t,t.__data__,w.index,w.group),delete l[y]):+y<r&&(w.state=rl,w.timer.stop(),w.on.call("cancel",t,t.__data__,w.index,w.group),delete l[y])}if(dp(function(){i.state===nl&&(i.state=hp,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),y=0,v=-1;y<m;++y)(w=i.tween[y].value.call(t,t.__data__,i.index,i.group))&&(a[++v]=w);a.length=v+1}}function d(g){for(var y=g<i.duration?i.ease.call(null,g/i.duration):(i.timer.restart(h),i.state=Yu,1),v=-1,m=a.length;++v<m;)a[v].call(t,y);i.state===Yu&&(i.on.call("end",t,t.__data__,i.index,i.group),h())}function h(){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 jx(t){return this.each(function(){ol(this,t)})}function Px(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 Tx(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},h=0,g=a.length;h<g;++h)if(a[h].name===r){a[h]=d;break}h===g&&a.push(d)}u.tween=a}}function Ix(t,r){var i=this._id;if(t+="",arguments.length<2){for(var l=Kt(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?Px:Tx)(i,t,r))}function lc(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 Kt(a,l).value[r]}}function Bh(t,r){var i;return(typeof r=="number"?rn:r instanceof xr?al:(i=xr(r))?(r=i,al):Dh)(t,r)}function Rx(t){return function(){this.removeAttribute(t)}}function zx(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Lx(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 Ax(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 Dx(t,r,i){var l,a,u;return function(){var c,d=i(this),h;return d==null?void this.removeAttribute(t):(c=this.getAttribute(t),h=d+"",c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d)))}}function bx(t,r,i){var l,a,u;return function(){var c,d=i(this),h;return d==null?void this.removeAttributeNS(t.space,t.local):(c=this.getAttributeNS(t.space,t.local),h=d+"",c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d)))}}function $x(t,r){var i=yl(t),l=i==="transform"?yx:Bh;return this.attrTween(t,typeof r=="function"?(i.local?bx:Dx)(i,l,lc(this,"attr."+t,r)):r==null?(i.local?zx:Rx)(i):(i.local?Ax:Lx)(i,l,r))}function Ox(t,r){return function(i){this.setAttribute(t,r.call(this,i))}}function Fx(t,r){return function(i){this.setAttributeNS(t.space,t.local,r.call(this,i))}}function Hx(t,r){var i,l;function a(){var u=r.apply(this,arguments);return u!==l&&(i=(l=u)&&Fx(t,u)),i}return a._value=r,a}function Vx(t,r){var i,l;function a(){var u=r.apply(this,arguments);return u!==l&&(i=(l=u)&&Ox(t,u)),i}return a._value=r,a}function Bx(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?Hx:Vx)(l,r))}function Ux(t,r){return function(){sc(this,t).delay=+r.apply(this,arguments)}}function Wx(t,r){return r=+r,function(){sc(this,t).delay=r}}function Yx(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Ux:Wx)(r,t)):Kt(this.node(),r).delay}function Xx(t,r){return function(){sn(this,t).duration=+r.apply(this,arguments)}}function Kx(t,r){return r=+r,function(){sn(this,t).duration=r}}function Qx(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Xx:Kx)(r,t)):Kt(this.node(),r).duration}function Gx(t,r){if(typeof r!="function")throw new Error;return function(){sn(this,t).ease=r}}function qx(t){var r=this._id;return arguments.length?this.each(Gx(r,t)):Kt(this.node(),r).ease}function Zx(t,r){return function(){var i=r.apply(this,arguments);if(typeof i!="function")throw new Error;sn(this,t).ease=i}}function Jx(t){if(typeof t!="function")throw new Error;return this.each(Zx(this._id,t))}function ew(t){typeof t!="function"&&(t=wh(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]=[],h,g=0;g<c;++g)(h=u[g])&&t.call(h,h.__data__,g,u)&&d.push(h);return new _n(l,this._parents,this._name,this._id)}function tw(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 h=r[d],g=i[d],y=h.length,v=c[d]=new Array(y),m,w=0;w<y;++w)(m=h[w]||g[w])&&(v[w]=m);for(;d<l;++d)c[d]=r[d];return new _n(c,this._parents,this._name,this._id)}function nw(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 rw(t,r,i){var l,a,u=nw(r)?sc:sn;return function(){var c=u(this,t),d=c.on;d!==l&&(a=(l=d).copy()).on(r,i),c.on=a}}function ow(t,r){var i=this._id;return arguments.length<2?Kt(this.node(),i).on.on(t):this.each(rw(i,t,r))}function iw(t){return function(){var r=this.parentNode;for(var i in this.__transition)if(+i!==t)return;r&&r.removeChild(this)}}function sw(){return this.on("end.remove",iw(this._id))}function lw(t){var r=this._name,i=this._id;typeof t!="function"&&(t=tc(t));for(var l=this._groups,a=l.length,u=new Array(a),c=0;c<a;++c)for(var d=l[c],h=d.length,g=u[c]=new Array(h),y,v,m=0;m<h;++m)(y=d[m])&&(v=t.call(y,y.__data__,m,d))&&("__data__"in y&&(v.__data__=y.__data__),g[m]=v,xl(g[m],r,i,m,g,Kt(y,i)));return new _n(u,this._parents,r,i)}function aw(t){var r=this._name,i=this._id;typeof t!="function"&&(t=xh(t));for(var l=this._groups,a=l.length,u=[],c=[],d=0;d<a;++d)for(var h=l[d],g=h.length,y,v=0;v<g;++v)if(y=h[v]){for(var m=t.call(y,y.__data__,v,h),w,S=Kt(y,i),j=0,C=m.length;j<C;++j)(w=m[j])&&xl(w,r,i,j,m,S);u.push(m),c.push(y)}return new _n(u,c,r,i)}var uw=xi.prototype.constructor;function cw(){return new uw(this._groups,this._parents)}function fw(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 Uh(t){return function(){this.style.removeProperty(t)}}function dw(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 pw(t,r,i){var l,a,u;return function(){var c=oo(this,t),d=i(this),h=d+"";return d==null&&(h=d=(this.style.removeProperty(t),oo(this,t))),c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d))}}function hw(t,r){var i,l,a,u="style."+r,c="end."+u,d;return function(){var h=sn(this,t),g=h.on,y=h.value[u]==null?d||(d=Uh(r)):void 0;(g!==i||a!==y)&&(l=(i=g).copy()).on(c,a=y),h.on=l}}function gw(t,r,i){var l=(t+="")=="transform"?mx:Bh;return r==null?this.styleTween(t,fw(t,l)).on("end.style."+t,Uh(t)):typeof r=="function"?this.styleTween(t,pw(t,l,lc(this,"style."+t,r))).each(hw(this._id,t)):this.styleTween(t,dw(t,l,r),i).on("end.style."+t,null)}function mw(t,r,i){return function(l){this.style.setProperty(t,r.call(this,l),i)}}function yw(t,r,i){var l,a;function u(){var c=r.apply(this,arguments);return c!==a&&(l=(a=c)&&mw(t,c,i)),l}return u._value=r,u}function vw(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,yw(t,r,i??""))}function xw(t){return function(){this.textContent=t}}function ww(t){return function(){var r=t(this);this.textContent=r??""}}function _w(t){return this.tween("text",typeof t=="function"?ww(lc(this,"text",t)):xw(t==null?"":t+""))}function Sw(t){return function(r){this.textContent=t.call(this,r)}}function kw(t){var r,i;function l(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Sw(a)),r}return l._value=t,l}function Ew(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,kw(t))}function Nw(){for(var t=this._name,r=this._id,i=Wh(),l=this._groups,a=l.length,u=0;u<a;++u)for(var c=l[u],d=c.length,h,g=0;g<d;++g)if(h=c[g]){var y=Kt(h,r);xl(h,t,i,g,c,{time:y.time+y.delay+y.duration,delay:0,duration:y.duration,ease:y.ease})}return new _n(l,this._parents,t,i)}function Cw(){var t,r,i=this,l=i._id,a=i.size();return new Promise(function(u,c){var d={value:c},h={value:function(){--a===0&&u()}};i.each(function(){var g=sn(this,l),y=g.on;y!==t&&(r=(t=y).copy(),r._.cancel.push(d),r._.interrupt.push(d),r._.end.push(h)),g.on=r}),a===0&&u()})}var Mw=0;function _n(t,r,i,l){this._groups=t,this._parents=r,this._name=i,this._id=l}function Wh(){return++Mw}var vn=xi.prototype;_n.prototype={constructor:_n,select:lw,selectAll:aw,selectChild:vn.selectChild,selectChildren:vn.selectChildren,filter:ew,merge:tw,selection:cw,transition:Nw,call:vn.call,nodes:vn.nodes,node:vn.node,size:vn.size,empty:vn.empty,each:vn.each,on:ow,attr:$x,attrTween:Bx,style:gw,styleTween:vw,text:_w,textTween:Ew,remove:sw,tween:Ix,delay:Yx,duration:Qx,ease:qx,easeVarying:Jx,end:Cw,[Symbol.iterator]:vn[Symbol.iterator]};function jw(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Pw={time:null,delay:0,duration:250,ease:jw};function Tw(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 Iw(t){var r,i;t instanceof _n?(r=t._id,t=t._name):(r=Wh(),(i=Pw).time=ic(),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,h,g=0;g<d;++g)(h=c[g])&&xl(h,t,r,g,c,i||Tw(h,r));return new _n(l,this._parents,t,r)}xi.prototype.interrupt=jx;xi.prototype.transition=Iw;const Ks=t=>()=>t;function Rw(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 wn(t,r,i){this.k=t,this.x=r,this.y=i}wn.prototype={constructor:wn,scale:function(t){return t===1?this:new wn(this.k*t,this.x,this.y)},translate:function(t,r){return t===0&r===0?this:new wn(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 wn(1,0,0);Yh.prototype=wn.prototype;function Yh(t){for(;!t.__zoom;)if(!(t=t.parentNode))return wl;return t.__zoom}function ju(t){t.stopImmediatePropagation()}function oi(t){t.preventDefault(),t.stopImmediatePropagation()}function zw(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Lw(){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 gp(){return this.__zoom||wl}function Aw(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Dw(){return navigator.maxTouchPoints||"ontouchstart"in this}function bw(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 Xh(){var t=zw,r=Lw,i=bw,l=Aw,a=Dw,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,h=tl,g=ml("start","zoom","end"),y,v,m,w=500,S=150,j=0,C=10;function E(N){N.property("__zoom",gp).on("wheel.zoom",Y,{passive:!1}).on("mousedown.zoom",Q).on("dblclick.zoom",ee).filter(a).on("touchstart.zoom",J).on("touchmove.zoom",X).on("touchend.zoom touchcancel.zoom",W).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}E.transform=function(N,H,F,U){var A=N.selection?N.selection():N;A.property("__zoom",gp),N!==A?$(N,H,F,U):A.interrupt().each(function(){L(this,arguments).event(U).start().zoom(null,typeof H=="function"?H.apply(this,arguments):H).end()})},E.scaleBy=function(N,H,F,U){E.scaleTo(N,function(){var A=this.__zoom.k,D=typeof H=="function"?H.apply(this,arguments):H;return A*D},F,U)},E.scaleTo=function(N,H,F,U){E.transform(N,function(){var A=r.apply(this,arguments),D=this.__zoom,O=F==null?M(A):typeof F=="function"?F.apply(this,arguments):F,P=D.invert(O),z=typeof H=="function"?H.apply(this,arguments):H;return i(k(T(D,z),O,P),A,c)},F,U)},E.translateBy=function(N,H,F,U){E.transform(N,function(){return i(this.__zoom.translate(typeof H=="function"?H.apply(this,arguments):H,typeof F=="function"?F.apply(this,arguments):F),r.apply(this,arguments),c)},null,U)},E.translateTo=function(N,H,F,U,A){E.transform(N,function(){var D=r.apply(this,arguments),O=this.__zoom,P=U==null?M(D):typeof U=="function"?U.apply(this,arguments):U;return i(wl.translate(P[0],P[1]).scale(O.k).translate(typeof H=="function"?-H.apply(this,arguments):-H,typeof F=="function"?-F.apply(this,arguments):-F),D,c)},U,A)};function T(N,H){return H=Math.max(u[0],Math.min(u[1],H)),H===N.k?N:new wn(H,N.x,N.y)}function k(N,H,F){var U=H[0]-F[0]*N.k,A=H[1]-F[1]*N.k;return U===N.x&&A===N.y?N:new wn(N.k,U,A)}function M(N){return[(+N[0][0]+ +N[1][0])/2,(+N[0][1]+ +N[1][1])/2]}function $(N,H,F,U){N.on("start.zoom",function(){L(this,arguments).event(U).start()}).on("interrupt.zoom end.zoom",function(){L(this,arguments).event(U).end()}).tween("zoom",function(){var A=this,D=arguments,O=L(A,D).event(U),P=r.apply(A,D),z=F==null?M(P):typeof F=="function"?F.apply(A,D):F,te=Math.max(P[1][0]-P[0][0],P[1][1]-P[0][1]),ne=A.__zoom,ce=typeof H=="function"?H.apply(A,D):H,de=h(ne.invert(z).concat(te/ne.k),ce.invert(z).concat(te/ce.k));return function(fe){if(fe===1)fe=ce;else{var q=de(fe),se=te/q[2];fe=new wn(se,z[0]-q[0]*se,z[1]-q[1]*se)}O.zoom(null,fe)}})}function L(N,H,F){return!F&&N.__zooming||new B(N,H)}function B(N,H){this.that=N,this.args=H,this.active=0,this.sourceEvent=null,this.extent=r.apply(N,H),this.taps=0}B.prototype={event:function(N){return N&&(this.sourceEvent=N),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(N,H){return this.mouse&&N!=="mouse"&&(this.mouse[1]=H.invert(this.mouse[0])),this.touch0&&N!=="touch"&&(this.touch0[1]=H.invert(this.touch0[0])),this.touch1&&N!=="touch"&&(this.touch1[1]=H.invert(this.touch1[0])),this.that.__zoom=H,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(N){var H=Ct(this.that).datum();g.call(N,this.that,new Rw(N,{sourceEvent:this.sourceEvent,target:E,transform:this.that.__zoom,dispatch:g}),H)}};function Y(N,...H){if(!t.apply(this,arguments))return;var F=L(this,H).event(N),U=this.__zoom,A=Math.max(u[0],Math.min(u[1],U.k*Math.pow(2,l.apply(this,arguments)))),D=Vt(N);if(F.wheel)(F.mouse[0][0]!==D[0]||F.mouse[0][1]!==D[1])&&(F.mouse[1]=U.invert(F.mouse[0]=D)),clearTimeout(F.wheel);else{if(U.k===A)return;F.mouse=[D,U.invert(D)],ol(this),F.start()}oi(N),F.wheel=setTimeout(O,S),F.zoom("mouse",i(k(T(U,A),F.mouse[0],F.mouse[1]),F.extent,c));function O(){F.wheel=null,F.end()}}function Q(N,...H){if(m||!t.apply(this,arguments))return;var F=N.currentTarget,U=L(this,H,!0).event(N),A=Ct(N.view).on("mousemove.zoom",z,!0).on("mouseup.zoom",te,!0),D=Vt(N,F),O=N.clientX,P=N.clientY;Th(N.view),ju(N),U.mouse=[D,this.__zoom.invert(D)],ol(this),U.start();function z(ne){if(oi(ne),!U.moved){var ce=ne.clientX-O,de=ne.clientY-P;U.moved=ce*ce+de*de>j}U.event(ne).zoom("mouse",i(k(U.that.__zoom,U.mouse[0]=Vt(ne,F),U.mouse[1]),U.extent,c))}function te(ne){A.on("mousemove.zoom mouseup.zoom",null),Ih(ne.view,U.moved),oi(ne),U.event(ne).end()}}function ee(N,...H){if(t.apply(this,arguments)){var F=this.__zoom,U=Vt(N.changedTouches?N.changedTouches[0]:N,this),A=F.invert(U),D=F.k*(N.shiftKey?.5:2),O=i(k(T(F,D),U,A),r.apply(this,H),c);oi(N),d>0?Ct(this).transition().duration(d).call($,O,U,N):Ct(this).call(E.transform,O,U,N)}}function J(N,...H){if(t.apply(this,arguments)){var F=N.touches,U=F.length,A=L(this,H,N.changedTouches.length===U).event(N),D,O,P,z;for(ju(N),O=0;O<U;++O)P=F[O],z=Vt(P,this),z=[z,this.__zoom.invert(z),P.identifier],A.touch0?!A.touch1&&A.touch0[2]!==z[2]&&(A.touch1=z,A.taps=0):(A.touch0=z,D=!0,A.taps=1+!!y);y&&(y=clearTimeout(y)),D&&(A.taps<2&&(v=z[0],y=setTimeout(function(){y=null},w)),ol(this),A.start())}}function X(N,...H){if(this.__zooming){var F=L(this,H).event(N),U=N.changedTouches,A=U.length,D,O,P,z;for(oi(N),D=0;D<A;++D)O=U[D],P=Vt(O,this),F.touch0&&F.touch0[2]===O.identifier?F.touch0[0]=P:F.touch1&&F.touch1[2]===O.identifier&&(F.touch1[0]=P);if(O=F.that.__zoom,F.touch1){var te=F.touch0[0],ne=F.touch0[1],ce=F.touch1[0],de=F.touch1[1],fe=(fe=ce[0]-te[0])*fe+(fe=ce[1]-te[1])*fe,q=(q=de[0]-ne[0])*q+(q=de[1]-ne[1])*q;O=T(O,Math.sqrt(fe/q)),P=[(te[0]+ce[0])/2,(te[1]+ce[1])/2],z=[(ne[0]+de[0])/2,(ne[1]+de[1])/2]}else if(F.touch0)P=F.touch0[0],z=F.touch0[1];else return;F.zoom("touch",i(k(O,P,z),F.extent,c))}}function W(N,...H){if(this.__zooming){var F=L(this,H).event(N),U=N.changedTouches,A=U.length,D,O;for(ju(N),m&&clearTimeout(m),m=setTimeout(function(){m=null},w),D=0;D<A;++D)O=U[D],F.touch0&&F.touch0[2]===O.identifier?delete F.touch0:F.touch1&&F.touch1[2]===O.identifier&&delete F.touch1;if(F.touch1&&!F.touch0&&(F.touch0=F.touch1,delete F.touch1),F.touch0)F.touch0[1]=this.__zoom.invert(F.touch0[0]);else if(F.end(),F.taps===2&&(O=Vt(O,this),Math.hypot(v[0]-O[0],v[1]-O[1])<C)){var P=Ct(this).on("dblclick.zoom");P&&P.apply(this,arguments)}}}return E.wheelDelta=function(N){return arguments.length?(l=typeof N=="function"?N:Ks(+N),E):l},E.filter=function(N){return arguments.length?(t=typeof N=="function"?N:Ks(!!N),E):t},E.touchable=function(N){return arguments.length?(a=typeof N=="function"?N:Ks(!!N),E):a},E.extent=function(N){return arguments.length?(r=typeof N=="function"?N:Ks([[+N[0][0],+N[0][1]],[+N[1][0],+N[1][1]]]),E):r},E.scaleExtent=function(N){return arguments.length?(u[0]=+N[0],u[1]=+N[1],E):[u[0],u[1]]},E.translateExtent=function(N){return arguments.length?(c[0][0]=+N[0][0],c[1][0]=+N[1][0],c[0][1]=+N[0][1],c[1][1]=+N[1][1],E):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},E.constrain=function(N){return arguments.length?(i=N,E):i},E.duration=function(N){return arguments.length?(d=+N,E):d},E.interpolate=function(N){return arguments.length?(h=N,E):h},E.on=function(){var N=g.on.apply(g,arguments);return N===g?E:N},E.clickDistance=function(N){return arguments.length?(j=(N=+N)*N,E):Math.sqrt(j)},E.tapDistance=function(N){return arguments.length?(C=+N,E):C},E}const Xt={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.`},pi=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Kh=["Enter"," ","Escape"],Qh={"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 vr;(function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"})(vr||(vr={}));var hi;(function(t){t.Partial="partial",t.Full="full"})(hi||(hi={}));const Gh={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Yn;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(Yn||(Yn={}));var dl;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(dl||(dl={}));var _e;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(_e||(_e={}));const mp={[_e.Left]:_e.Right,[_e.Right]:_e.Left,[_e.Top]:_e.Bottom,[_e.Bottom]:_e.Top},qh=t=>!!t&&typeof t=="object"&&"id"in t&&"source"in t&&"target"in t,$w=t=>!!t&&typeof t=="object"&&"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),ac=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}=Qt(t),a=t.origin??r,u=i*a[0],c=l*a[1];return{x:t.position.x-u,y:t.position.y-c}},Ow=(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):ac(u)?u:r.nodeLookup.get(u.id)),d?(i=!0,_l(a,pl(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,pl(a)),l=!0)}),l?Sl(i):{x:0,y:0,width:0,height:0}},uc=(t,r,[i,l,a]=[0,0,1],u=!1,c=!1)=>{const d=(r.x-i)/a,h=(r.y-l)/a,g=r.width/a,y=r.height/a,v=[];for(const m of t.values()){const{measured:w,selectable:S=!0,hidden:j=!1}=m;if(c&&!S||j)continue;const C=w.width??m.width??m.initialWidth??0,E=w.height??m.height??m.initialHeight??0,{x:T,y:k}=m.internals.positionAbsolute,M=tg(d,h,g,y,T,k,C,E),$=C*E,L=u&&M>0;(!m.internals.handleBounds||L||M>=$||m.dragging)&&v.push(m)}return v},Fw=(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 Hw(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}=Qt(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 Vw({nodes:t,width:r,height:i,panZoom:l,minZoom:a,maxZoom:u},c){if(t.size===0)return!0;const d=Hw(t,c),h=Si(d),g=fc(h,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 Zh({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:h,y:g}=d?d.internals.positionAbsolute:{x:0,y:0},y=c.origin??l;let v=c.extent||a;if(c.extent==="parent"&&!c.expandParent)if(!d)u==null||u("005",Xt.error005());else{const{width:w,height:S}=Qt(d);w&&S&&(v=[[h,g],[h+w,g+S]])}else d&&Sr(c.extent)&&(v=[[c.extent[0][0]+h,c.extent[0][1]+g],[c.extent[1][0]+h,c.extent[1][1]+g]]);const m=Sr(v)?_r(r,v,c.measured):r;return(c.measured.width===void 0||c.measured.height===void 0)&&(u==null||u("015",Xt.error015())),{position:{x:m.x-h+(c.measured.width??0)*y[0],y:m.y-g+(c.measured.height??0)*y[1]},positionAbsolute:m}}async function Bw({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),S=!w&&m.parentId&&c.find(j=>j.id===m.parentId);(w||S)&&c.push(m)}const d=new Set(r.map(m=>m.id)),h=l.filter(m=>m.deletable!==!1),y=Fw(c,h);for(const m of h)d.has(m.id)&&!y.find(S=>S.id===m.id)&&y.push(m);if(!a)return{edges:y,nodes:c};const v=await a({nodes:c,edges:y});return typeof v=="boolean"?v?{edges:y,nodes:c}:{edges:[],nodes:[]}:v}const lo=(t,r=0,i=1)=>Math.min(Math.max(t,r),i),_r=(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 Jh(t,r,i){const{width:l,height:a}=Qt(i),{x:u,y:c}=i.internals.positionAbsolute;return _r(t,[[u,c],[u+l,c+a]],r)}const yp=(t,r,i)=>t<r?lo(Math.abs(t-r),1,r)/r:t>i?-lo(Math.abs(t-i),1,r)/r:0,cc=(t,r,i=15,l=40)=>{const a=yp(t.x,l,r.width-l)*i,u=yp(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}=ac(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}},pl=(t,r=[0,0])=>{var a,u;const{x:i,y:l}=ac(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)}},eg=(t,r)=>Sl(_l(Xu(t),Xu(r))),tg=(t,r,i,l,a,u,c,d)=>{const h=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(h*g)},hl=(t,r)=>tg(t.x,t.y,t.width,t.height,r.x,r.y,r.width,r.height),vp=t=>Wt(t.width)&&Wt(t.height)&&Wt(t.x)&&Wt(t.y),Wt=t=>!isNaN(t)&&isFinite(t),ng=(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 Uw(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 Ww(t,r,i,l,a,u){const{x:c,y:d}=ao(t,[r,i,l]),{x:h,y:g}=ao({x:t.x+t.width,y:t.y+t.height},[r,i,l]),y=a-h,v=u-g;return{left:Math.floor(c),top:Math.floor(d),right:Math.floor(y),bottom:Math.floor(v)}}const fc=(t,r,i,l,a,u)=>{const c=Uw(u,r,i),d=(r-c.x)/t.width,h=(i-c.y)/t.height,g=Math.min(d,h),y=lo(g,l,a),v=t.x+t.width/2,m=t.y+t.height/2,w=r/2-v*y,S=i/2-m*y,j=Ww(t,w,S,y,r,i),C={left:Math.min(j.left-c.left,0),top:Math.min(j.top-c.top,0),right:Math.min(j.right-c.right,0),bottom:Math.min(j.bottom-c.bottom,0)};return{x:w-C.left+C.right,y:S-C.top+C.bottom,zoom:y}},mi=()=>{var t;return typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)==null?void 0:t.indexOf("Mac"))>=0};function Sr(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 rg(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 og(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 xp(t,r){if(t.size!==r.size)return!1;for(const i of t)if(!r.has(i))return!1;return!0}function Yw(){let t,r;return{promise:new Promise((l,a)=>{t=l,r=a}),resolve:t,reject:r}}function Xw(t){return{...Qh,...t||{}}}function ig(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}=Yt(t),d=Ei({x:u-((a==null?void 0:a.left)??0),y:c-((a==null?void 0:a.top)??0)},l),{x:h,y:g}=i?ki(d,r):d;return{xSnapped:h,ySnapped:g,...d}}const dc=t=>({width:t.offsetWidth,height:t.offsetHeight}),sg=t=>{var r;return((r=t==null?void 0:t.getRootNode)==null?void 0:r.call(t))||(window==null?void 0:window.document)},Kw=["INPUT","SELECT","TEXTAREA"];function lg(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:Kw.includes(r.nodeName)||r.hasAttribute("contenteditable")||!!r.closest(".nokey")}const ag=t=>"clientX"in t,Yt=(t,r)=>{var u,c;const i=ag(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)}},wp=(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,...dc(c)}})};function ug({sourceX:t,sourceY:r,targetX:i,targetY:l,sourceControlX:a,sourceControlY:u,targetControlX:c,targetControlY:d}){const h=t*.125+a*.375+c*.375+i*.125,g=r*.125+u*.375+d*.375+l*.125,y=Math.abs(h-t),v=Math.abs(g-r);return[h,g,y,v]}function Qs(t,r){return t>=0?.5*t:r*25*Math.sqrt(-t)}function _p({pos:t,x1:r,y1:i,x2:l,y2:a,c:u}){switch(t){case _e.Left:return[r-Qs(r-l,u),i];case _e.Right:return[r+Qs(l-r,u),i];case _e.Top:return[r,i-Qs(i-a,u)];case _e.Bottom:return[r,i+Qs(a-i,u)]}}function cg({sourceX:t,sourceY:r,sourcePosition:i=_e.Bottom,targetX:l,targetY:a,targetPosition:u=_e.Top,curvature:c=.25}){const[d,h]=_p({pos:i,x1:t,y1:r,x2:l,y2:a,c}),[g,y]=_p({pos:u,x1:l,y1:a,x2:t,y2:r,c}),[v,m,w,S]=ug({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:d,sourceControlY:h,targetControlX:g,targetControlY:y});return[`M${t},${r} C${d},${h} ${g},${y} ${l},${a}`,v,m,w,S]}function fg({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 Qw({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 Gw({sourceNode:t,targetNode:r,width:i,height:l,transform:a}){const u=_l(pl(t),pl(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 hl(c,Sl(u))>0}const qw=({source:t,sourceHandle:r,target:i,targetHandle:l})=>`xy-edge__${t}${r||""}-${i}${l||""}`,Zw=(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)),Jw=(t,r,i={})=>{var u;if(!t.source||!t.target)return(u=i.onError)==null||u.call(i,"006",Xt.error006()),r;const l=i.getEdgeId||qw;let a;return qh(t)?a={...t}:a={...t,id:l(t)},Zw(a,r)?r:(a.sourceHandle===null&&delete a.sourceHandle,a.targetHandle===null&&delete a.targetHandle,r.concat(a))};function dg({sourceX:t,sourceY:r,targetX:i,targetY:l}){const[a,u,c,d]=fg({sourceX:t,sourceY:r,targetX:i,targetY:l});return[`M ${t},${r}L ${i},${l}`,a,u,c,d]}const Sp={[_e.Left]:{x:-1,y:0},[_e.Right]:{x:1,y:0},[_e.Top]:{x:0,y:-1},[_e.Bottom]:{x:0,y:1}},e1=({source:t,sourcePosition:r=_e.Bottom,target:i})=>r===_e.Left||r===_e.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},kp=(t,r)=>Math.sqrt(Math.pow(r.x-t.x,2)+Math.pow(r.y-t.y,2));function t1({source:t,sourcePosition:r=_e.Bottom,target:i,targetPosition:l=_e.Top,center:a,offset:u,stepPosition:c}){const d=Sp[r],h=Sp[l],g={x:t.x+d.x*u,y:t.y+d.y*u},y={x:i.x+h.x*u,y:i.y+h.y*u},v=e1({source:g,sourcePosition:r,target:y}),m=v.x!==0?"x":"y",w=v[m];let S=[],j,C;const E={x:0,y:0},T={x:0,y:0},[,,k,M]=fg({sourceX:t.x,sourceY:t.y,targetX:i.x,targetY:i.y});if(d[m]*h[m]===-1){m==="x"?(j=a.x??g.x+(y.x-g.x)*c,C=a.y??(g.y+y.y)/2):(j=a.x??(g.x+y.x)/2,C=a.y??g.y+(y.y-g.y)*c);const Y=[{x:j,y:g.y},{x:j,y:y.y}],Q=[{x:g.x,y:C},{x:y.x,y:C}];d[m]===w?S=m==="x"?Y:Q:S=m==="x"?Q:Y}else{const Y=[{x:g.x,y:y.y}],Q=[{x:y.x,y:g.y}];if(m==="x"?S=d.x===w?Q:Y:S=d.y===w?Y:Q,r===l){const N=Math.abs(t[m]-i[m]);if(N<=u){const H=Math.min(u-1,u-N);d[m]===w?E[m]=(g[m]>t[m]?-1:1)*H:T[m]=(y[m]>i[m]?-1:1)*H}}if(r!==l){const N=m==="x"?"y":"x",H=d[m]===h[N],F=g[N]>y[N],U=g[N]<y[N];(d[m]===1&&(!H&&F||H&&U)||d[m]!==1&&(!H&&U||H&&F))&&(S=m==="x"?Y:Q)}const ee={x:g.x+E.x,y:g.y+E.y},J={x:y.x+T.x,y:y.y+T.y},X=Math.max(Math.abs(ee.x-S[0].x),Math.abs(J.x-S[0].x)),W=Math.max(Math.abs(ee.y-S[0].y),Math.abs(J.y-S[0].y));X>=W?(j=(ee.x+J.x)/2,C=S[0].y):(j=S[0].x,C=(ee.y+J.y)/2)}const $={x:g.x+E.x,y:g.y+E.y},L={x:y.x+T.x,y:y.y+T.y};return[[t,...$.x!==S[0].x||$.y!==S[0].y?[$]:[],...S,...L.x!==S[S.length-1].x||L.y!==S[S.length-1].y?[L]:[],i],j,C,k,M]}function n1(t,r,i,l){const a=Math.min(kp(t,r)/2,kp(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,y=t.y<i.y?1:-1;return`L ${u+a*g},${c}Q ${u},${c} ${u},${c+a*y}`}const d=t.x<i.x?1:-1,h=t.y<i.y?-1:1;return`L ${u},${c+a*h}Q ${u},${c} ${u+a*d},${c}`}function Ku({sourceX:t,sourceY:r,sourcePosition:i=_e.Bottom,targetX:l,targetY:a,targetPosition:u=_e.Top,borderRadius:c=5,centerX:d,centerY:h,offset:g=20,stepPosition:y=.5}){const[v,m,w,S,j]=t1({source:{x:t,y:r},sourcePosition:i,target:{x:l,y:a},targetPosition:u,center:{x:d,y:h},offset:g,stepPosition:y});let C=`M${v[0].x} ${v[0].y}`;for(let E=1;E<v.length-1;E++)C+=n1(v[E-1],v[E],v[E+1],c);return C+=`L${v[v.length-1].x} ${v[v.length-1].y}`,[C,m,w,S,j]}function Ep(t){var r;return t&&!!(t.internals.handleBounds||(r=t.handles)!=null&&r.length)&&!!(t.measured.width||t.width||t.initialWidth)}function r1(t){var v;const{sourceNode:r,targetNode:i}=t;if(!Ep(r)||!Ep(i))return null;const l=r.internals.handleBounds||Np(r.handles),a=i.internals.handleBounds||Np(i.handles),u=Cp((l==null?void 0:l.source)??[],t.sourceHandle),c=Cp(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(v=t.onError)==null||v.call(t,"008",Xt.error008(u?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const d=(u==null?void 0:u.position)||_e.Bottom,h=(c==null?void 0:c.position)||_e.Top,g=kr(r,u,d),y=kr(i,c,h);return{sourceX:g.x,sourceY:g.y,targetX:y.x,targetY:y.y,sourcePosition:d,targetPosition:h}}function Np(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 kr(t,r,i=_e.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??Qt(t);if(l)return{x:a+c/2,y:u+d/2};switch((r==null?void 0:r.position)??i){case _e.Top:return{x:a+c/2,y:u};case _e.Right:return{x:a+c,y:u+d/2};case _e.Bottom:return{x:a+c/2,y:u+d};case _e.Left:return{x:a,y:u+d/2}}}function Cp(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 o1(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(h=>{if(h&&typeof h=="object"){const g=Qu(h,r);u.has(g)||(c.push({id:g,color:h.color||i,...h}),u.add(g))}}),c),[]).sort((c,d)=>c.id.localeCompare(d.id))}const pg=1e3,i1=10,pc={nodeOrigin:[0,0],nodeExtent:pi,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},s1={...pc,checkEquality:!0};function hc(t,r){const i={...t};for(const l in r)r[l]!==void 0&&(i[l]=r[l]);return i}function l1(t,r,i){const l=hc(pc,i);for(const a of t.values())if(a.parentId)mc(a,t,r,l);else{const u=_i(a,l.nodeOrigin),c=Sr(a.extent)?a.extent:l.nodeExtent,d=_r(u,c,Qt(a));a.internals.positionAbsolute=d}}function a1(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 gc(t){return t==="manual"}function Gu(t,r,i,l={}){var y,v;const a=hc(s1,l),u={i:0},c=new Map(r),d=a!=null&&a.elevateNodesOnSelect&&!gc(a.zIndexMode)?pg:0;let h=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 S=_i(m,a.nodeOrigin),j=Sr(m.extent)?m.extent:a.nodeExtent,C=_r(S,j,Qt(m));w={...a.defaults,...m,measured:{width:(y=m.measured)==null?void 0:y.width,height:(v=m.measured)==null?void 0:v.height},internals:{positionAbsolute:C,handleBounds:a1(m,w),z:hg(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&&(h=!1),m.parentId&&mc(w,r,i,l,u),g||(g=m.selected??!1)}return{nodesInitialized:h,hasSelectedNodes:g}}function u1(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 mc(t,r,i,l,a){const{elevateNodesOnSelect:u,nodeOrigin:c,nodeExtent:d,zIndexMode:h}=hc(pc,l),g=t.parentId,y=r.get(g);if(!y){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}u1(t,i),a&&!y.parentId&&y.internals.rootParentIndex===void 0&&h==="auto"&&(y.internals.rootParentIndex=++a.i,y.internals.z=y.internals.z+a.i*i1),a&&y.internals.rootParentIndex!==void 0&&(a.i=y.internals.rootParentIndex);const v=u&&!gc(h)?pg:0,{x:m,y:w,z:S}=c1(t,y,c,d,v,h),{positionAbsolute:j}=t.internals,C=m!==j.x||w!==j.y;(C||S!==t.internals.z)&&r.set(t.id,{...t,internals:{...t.internals,positionAbsolute:C?{x:m,y:w}:j,z:S}})}function hg(t,r,i){const l=Wt(t.zIndex)?t.zIndex:0;return gc(i)?l:l+(t.selected?r:0)}function c1(t,r,i,l,a,u){const{x:c,y:d}=r.internals.positionAbsolute,h=Qt(t),g=_i(t,i),y=Sr(t.extent)?_r(g,t.extent,h):g;let v=_r({x:c+y.x,y:d+y.y},l,h);t.extent==="parent"&&(v=Jh(v,h,r));const m=hg(t,a,u),w=r.internals.z??0;return{x:v.x,y:v.y,z:w>=m?w+1:m}}function yc(t,r,i,l=[0,0]){var c;const a=[],u=new Map;for(const d of t){const h=r.get(d.parentId);if(!h)continue;const g=((c=u.get(d.parentId))==null?void 0:c.expandedRect)??gi(h),y=eg(g,d.rect);u.set(d.parentId,{expandedRect:y,parent:h})}return u.size>0&&u.forEach(({expandedRect:d,parent:h},g)=>{var k;const y=h.internals.positionAbsolute,v=Qt(h),m=h.origin??l,w=d.x<y.x?Math.round(Math.abs(y.x-d.x)):0,S=d.y<y.y?Math.round(Math.abs(y.y-d.y)):0,j=Math.max(v.width,Math.round(d.width)),C=Math.max(v.height,Math.round(d.height)),E=(j-v.width)*m[0],T=(C-v.height)*m[1];(w>0||S>0||E||T)&&(a.push({id:g,type:"position",position:{x:h.position.x-w+E,y:h.position.y-S+T}}),(k=i.get(g))==null||k.forEach(M=>{t.some($=>$.id===M.id)||a.push({id:M.id,type:"position",position:{x:M.position.x+w,y:M.position.y+S}})})),(v.width<d.width||v.height<d.height||w||S)&&a.push({id:g,type:"dimensions",setAttributes:!0,dimensions:{width:j+(w?m[0]*w-E:0),height:C+(S?m[1]*S-T:0)}})}),a}function f1(t,r,i,l,a,u,c){const d=l==null?void 0:l.querySelector(".xyflow__viewport");let h=!1;if(!d)return{changes:[],updatedInternals:h};const g=[],y=window.getComputedStyle(d),{m22:v}=new window.DOMMatrixReadOnly(y.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}}),h=!0;continue}const j=dc(w.nodeElement),C=S.measured.width!==j.width||S.measured.height!==j.height;if(!!(j.width&&j.height&&(C||!S.internals.handleBounds||w.force))){const T=w.nodeElement.getBoundingClientRect(),k=Sr(S.extent)?S.extent:u;let{positionAbsolute:M}=S.internals;if(S.parentId&&S.extent==="parent"){const L=r.get(S.parentId);L&&(M=Jh(M,j,L))}else k&&(M=_r(M,k,j));const $={...S,measured:j,internals:{...S.internals,positionAbsolute:M,handleBounds:{source:wp("source",w.nodeElement,T,v,S.id),target:wp("target",w.nodeElement,T,v,S.id)}}};r.set(S.id,$),S.parentId&&mc($,r,i,{nodeOrigin:a,zIndexMode:c}),h=!0,C&&(g.push({id:S.id,type:"dimensions",dimensions:j}),S.expandParent&&S.parentId&&m.push({id:S.id,parentId:S.parentId,rect:gi($,a)}))}}if(m.length>0){const w=yc(m,r,i,a);g.push(...w)}return{changes:g,updatedInternals:h}}async function d1({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 Mp(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 h=l.get(c)||new Map;if(l.set(c,h.set(i,r)),u){c=`${a}-${t}-${u}`;const g=l.get(c)||new Map;l.set(c,g.set(i,r))}}function gg(t,r,i){t.clear(),r.clear();for(const l of i){const{source:a,target:u,sourceHandle:c=null,targetHandle:d=null}=l,h={edgeId:l.id,source:a,target:u,sourceHandle:c,targetHandle:d},g=`${a}-${c}--${u}-${d}`,y=`${u}-${d}--${a}-${c}`;Mp("source",h,y,t,a,c),Mp("target",h,g,t,u,d),r.set(l.id,l)}}function mg(t,r){if(!t.parentId)return!1;const i=r.get(t.parentId);return i?i.selected?!0:mg(i,r):!1}function jp(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 p1(t,r,i,l){const a=new Map;for(const[u,c]of t)if((c.selected||c.id===l)&&(!c.parentId||!mg(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 Pu({nodeId:t,dragItems:r,nodeLookup:i,dragging:l=!0}){var c,d,h;const a=[];for(const[g,y]of r){const v=(c=i.get(g))==null?void 0:c.internals.userNode;v&&a.push({...v,position:y.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:((h=r.get(t))==null?void 0:h.position)||u.position,dragging:l}:a[0],a]}function h1({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 g1({onNodeMouseDown:t,getStoreItems:r,onDragStart:i,onDrag:l,onDragStop:a}){let u={x:null,y:null},c=0,d=new Map,h=!1,g={x:0,y:0},y=null,v=!1,m=null,w=!1,S=!1,j=null;function C({noDragClassName:T,handleSelector:k,domNode:M,isSelectable:$,nodeId:L,nodeClickDistance:B=0}){m=Ct(M);function Y({x:X,y:W}){const{nodeLookup:N,nodeExtent:H,snapGrid:F,snapToGrid:U,nodeOrigin:A,onNodeDrag:D,onSelectionDrag:O,onError:P,updateNodePositions:z}=r();u={x:X,y:W};let te=!1;const ne=d.size>1,ce=ne&&H?Xu(Si(d)):null,de=ne&&U?h1({dragItems:d,snapGrid:F,x:X,y:W}):null;for(const[fe,q]of d){if(!N.has(fe))continue;let se={x:X-q.distance.x,y:W-q.distance.y};U&&(se=de?{x:Math.round(se.x+de.x),y:Math.round(se.y+de.y)}:ki(se,F));let he=null;if(ne&&H&&!q.extent&&ce){const{positionAbsolute:Se}=q.internals,ie=Se.x-ce.x+H[0][0],ae=Se.x+q.measured.width-ce.x2+H[1][0],ke=Se.y-ce.y+H[0][1],Me=Se.y+q.measured.height-ce.y2+H[1][1];he=[[ie,ke],[ae,Me]]}const{position:we,positionAbsolute:xe}=Zh({nodeId:fe,nextPosition:se,nodeLookup:N,nodeExtent:he||H,nodeOrigin:A,onError:P});te=te||q.position.x!==we.x||q.position.y!==we.y,q.position=we,q.internals.positionAbsolute=xe}if(S=S||te,!!te&&(z(d,!0),j&&(l||D||!L&&O))){const[fe,q]=Pu({nodeId:L,dragItems:d,nodeLookup:N});l==null||l(j,d,fe,q),D==null||D(j,fe,q),L||O==null||O(j,q)}}async function Q(){if(!y)return;const{transform:X,panBy:W,autoPanSpeed:N,autoPanOnNodeDrag:H}=r();if(!H){h=!1,cancelAnimationFrame(c);return}const[F,U]=cc(g,y,N);(F!==0||U!==0)&&(u.x=(u.x??0)-F/X[2],u.y=(u.y??0)-U/X[2],await W({x:F,y:U})&&Y(u)),c=requestAnimationFrame(Q)}function ee(X){var ne;const{nodeLookup:W,multiSelectionActive:N,nodesDraggable:H,transform:F,snapGrid:U,snapToGrid:A,selectNodesOnDrag:D,onNodeDragStart:O,onSelectionDragStart:P,unselectNodesAndEdges:z}=r();v=!0,(!D||!$)&&!N&&L&&((ne=W.get(L))!=null&&ne.selected||z()),$&&D&&L&&(t==null||t(L));const te=ai(X.sourceEvent,{transform:F,snapGrid:U,snapToGrid:A,containerBounds:y});if(u=te,d=p1(W,H,te,L),d.size>0&&(i||O||!L&&P)){const[ce,de]=Pu({nodeId:L,dragItems:d,nodeLookup:W});i==null||i(X.sourceEvent,d,ce,de),O==null||O(X.sourceEvent,ce,de),L||P==null||P(X.sourceEvent,de)}}const J=Rh().clickDistance(B).on("start",X=>{const{domNode:W,nodeDragThreshold:N,transform:H,snapGrid:F,snapToGrid:U}=r();y=(W==null?void 0:W.getBoundingClientRect())||null,w=!1,S=!1,j=X.sourceEvent,N===0&&ee(X),u=ai(X.sourceEvent,{transform:H,snapGrid:F,snapToGrid:U,containerBounds:y}),g=Yt(X.sourceEvent,y)}).on("drag",X=>{const{autoPanOnNodeDrag:W,transform:N,snapGrid:H,snapToGrid:F,nodeDragThreshold:U,nodeLookup:A}=r(),D=ai(X.sourceEvent,{transform:N,snapGrid:H,snapToGrid:F,containerBounds:y});if(j=X.sourceEvent,(X.sourceEvent.type==="touchmove"&&X.sourceEvent.touches.length>1||L&&!A.has(L))&&(w=!0),!w){if(!h&&W&&v&&(h=!0,Q()),!v){const O=Yt(X.sourceEvent,y),P=O.x-g.x,z=O.y-g.y;Math.sqrt(P*P+z*z)>U&&ee(X)}(u.x!==D.xSnapped||u.y!==D.ySnapped)&&d&&v&&(g=Yt(X.sourceEvent,y),Y(D))}}).on("end",X=>{if(!v||w){w&&d.size>0&&r().updateNodePositions(d,!1);return}if(h=!1,v=!1,cancelAnimationFrame(c),d.size>0){const{nodeLookup:W,updateNodePositions:N,onNodeDragStop:H,onSelectionDragStop:F}=r();if(S&&(N(d,!1),S=!1),a||H||!L&&F){const[U,A]=Pu({nodeId:L,dragItems:d,nodeLookup:W,dragging:!1});a==null||a(X.sourceEvent,d,U,A),H==null||H(X.sourceEvent,U,A),L||F==null||F(X.sourceEvent,A)}}}).filter(X=>{const W=X.target;return!X.button&&(!T||!jp(W,`.${T}`,M))&&(!k||jp(W,k,M))});m.call(J)}function E(){m==null||m.on(".drag",null)}return{update:C,destroy:E}}function m1(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())hl(a,gi(u))>0&&l.push(u);return l}const y1=250;function v1(t,r,i,l){var d,h;let a=[],u=1/0;const c=m1(t,i,r+y1);for(const g of c){const y=[...((d=g.internals.handleBounds)==null?void 0:d.source)??[],...((h=g.internals.handleBounds)==null?void 0:h.target)??[]];for(const v of y){if(l.nodeId===v.nodeId&&l.type===v.type&&l.id===v.id)continue;const{x:m,y:w}=kr(g,v,v.position,!0),S=Math.sqrt(Math.pow(m-t.x,2)+Math.pow(w-t.y,2));S>r||(S<u?(a=[{...v,x:m,y:w}],u=S):S===u&&a.push({...v,x:m,y:w}))}}if(!a.length)return null;if(a.length>1){const g=l.type==="source"?"target":"source";return a.find(y=>y.type===g)??a[0]}return a[0]}function yg(t,r,i,l,a,u=!1){var g,y,v;const c=l.get(t);if(!c)return null;const d=a==="strict"?(g=c.internals.handleBounds)==null?void 0:g[r]:[...((y=c.internals.handleBounds)==null?void 0:y.source)??[],...((v=c.internals.handleBounds)==null?void 0:v.target)??[]],h=(i?d==null?void 0:d.find(m=>m.id===i):d==null?void 0:d[0])??null;return h&&u?{...h,...kr(c,h,h.position,!0)}:h}function vg(t,r){return t||(r!=null&&r.classList.contains("target")?"target":r!=null&&r.classList.contains("source")?"source":null)}function x1(t,r){let i=null;return r?i=!0:t&&!r&&(i=!1),i}const xg=()=>!0;function w1(t,{connectionMode:r,connectionRadius:i,handleId:l,nodeId:a,edgeUpdaterType:u,isTarget:c,domNode:d,nodeLookup:h,lib:g,autoPanOnConnect:y,flowId:v,panBy:m,cancelConnection:w,onConnectStart:S,onConnect:j,onConnectEnd:C,isValidConnection:E=xg,onReconnectEnd:T,updateConnection:k,getTransform:M,getFromHandle:$,autoPanSpeed:L,dragThreshold:B=1,handleDomNode:Y}){const Q=sg(t.target);let ee=0,J;const{x:X,y:W}=Yt(t),N=vg(u,Y),H=d==null?void 0:d.getBoundingClientRect();let F=!1;if(!H||!N)return;const U=yg(a,N,l,h,r);if(!U)return;let A=Yt(t,H),D=!1,O=null,P=!1,z=null;function te(){if(!y||!H)return;const[we,xe]=cc(A,H,L);m({x:we,y:xe}),ee=requestAnimationFrame(te)}const ne={...U,nodeId:a,type:N,position:U.position},ce=h.get(a);let fe={inProgress:!0,isValid:null,from:kr(ce,ne,_e.Left,!0),fromHandle:ne,fromPosition:ne.position,fromNode:ce,to:A,toHandle:null,toPosition:mp[ne.position],toNode:null,pointer:A};function q(){F=!0,k(fe),S==null||S(t,{nodeId:a,handleId:l,handleType:N})}B===0&&q();function se(we){if(!F){const{x:Me,y:Je}=Yt(we),ct=Me-X,nt=Je-W;if(!(ct*ct+nt*nt>B*B))return;q()}if(!$()||!ne){he(we);return}const xe=M();A=Yt(we,H),J=v1(Ei(A,xe,!1,[1,1]),i,h,ne),D||(te(),D=!0);const Se=wg(we,{handle:J,connectionMode:r,fromNodeId:a,fromHandleId:l,fromType:c?"target":"source",isValidConnection:E,doc:Q,lib:g,flowId:v,nodeLookup:h});z=Se.handleDomNode,O=Se.connection,P=x1(!!J,Se.isValid);const ie=h.get(a),ae=ie?kr(ie,ne,_e.Left,!0):fe.from,ke={...fe,from:ae,isValid:P,to:Se.toHandle&&P?ao({x:Se.toHandle.x,y:Se.toHandle.y},xe):A,toHandle:Se.toHandle,toPosition:P&&Se.toHandle?Se.toHandle.position:mp[ne.position],toNode:Se.toHandle?h.get(Se.toHandle.nodeId):null,pointer:A};k(ke),fe=ke}function he(we){if(!("touches"in we&&we.touches.length>0)){if(F){(J||z)&&O&&P&&(j==null||j(O));const{inProgress:xe,...Se}=fe,ie={...Se,toPosition:fe.toHandle?fe.toPosition:null};C==null||C(we,ie),u&&(T==null||T(we,ie))}w(),cancelAnimationFrame(ee),D=!1,P=!1,O=null,z=null,Q.removeEventListener("mousemove",se),Q.removeEventListener("mouseup",he),Q.removeEventListener("touchmove",se),Q.removeEventListener("touchend",he)}}Q.addEventListener("mousemove",se),Q.addEventListener("mouseup",he),Q.addEventListener("touchmove",se),Q.addEventListener("touchend",he)}function wg(t,{handle:r,connectionMode:i,fromNodeId:l,fromHandleId:a,fromType:u,doc:c,lib:d,flowId:h,isValidConnection:g=xg,nodeLookup:y}){const v=u==="target",m=r?c.querySelector(`.${d}-flow__handle[data-id="${h}-${r==null?void 0:r.nodeId}-${r==null?void 0:r.id}-${r==null?void 0:r.type}"]`):null,{x:w,y:S}=Yt(t),j=c.elementFromPoint(w,S),C=j!=null&&j.classList.contains(`${d}-flow__handle`)?j:m,E={handleDomNode:C,isValid:!1,connection:null,toHandle:null};if(C){const T=vg(void 0,C),k=C.getAttribute("data-nodeid"),M=C.getAttribute("data-handleid"),$=C.classList.contains("connectable"),L=C.classList.contains("connectableend");if(!k||!T)return E;const B={source:v?k:l,sourceHandle:v?M:a,target:v?l:k,targetHandle:v?a:M};E.connection=B;const Q=$&&L&&(i===so.Strict?v&&T==="source"||!v&&T==="target":k!==l||M!==a);E.isValid=Q&&g(B),E.toHandle=yg(k,T,M,y,i,!0)}return E}const qu={onPointerDown:w1,isValid:wg};function _1({domNode:t,panZoom:r,getTransform:i,getViewScale:l}){const a=Ct(t);function u({translateExtent:d,width:h,height:g,zoomStep:y=1,pannable:v=!0,zoomable:m=!0,inversePan:w=!1}){const S=k=>{if(k.sourceEvent.type!=="wheel"||!r)return;const M=i(),$=k.sourceEvent.ctrlKey&&mi()?10:1,L=-k.sourceEvent.deltaY*(k.sourceEvent.deltaMode===1?.05:k.sourceEvent.deltaMode?1:.002)*y,B=M[2]*Math.pow(2,L*$);r.scaleTo(B)};let j=[0,0];const C=k=>{(k.sourceEvent.type==="mousedown"||k.sourceEvent.type==="touchstart")&&(j=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY])},E=k=>{const M=i();if(k.sourceEvent.type!=="mousemove"&&k.sourceEvent.type!=="touchmove"||!r)return;const $=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY],L=[$[0]-j[0],$[1]-j[1]];j=$;const B=l()*Math.max(M[2],Math.log(M[2]))*(w?-1:1),Y={x:M[0]-L[0]*B,y:M[1]-L[1]*B},Q=[[0,0],[h,g]];r.setViewportConstrained({x:Y.x,y:Y.y,zoom:M[2]},Q,d)},T=Xh().on("start",C).on("zoom",v?E:null).on("zoom.wheel",m?S:null);a.call(T,{})}function c(){a.on("zoom",null)}return{update:u,destroy:c,pointer:Vt}}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),Wn=(t,r)=>t.target.closest(`.${r}`),_g=(t,r)=>r===2&&Array.isArray(t)&&t.includes(2),S1=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,Iu=(t,r=0,i=S1,l=()=>{})=>{const a=typeof r=="number"&&r>0;return a||l(),a?t.transition().duration(r).ease(i).on("end",l):t},Sg=t=>{const r=t.ctrlKey&&mi()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*r};function k1({zoomPanValues:t,noWheelClassName:r,d3Selection:i,d3Zoom:l,panOnScrollMode:a,panOnScrollSpeed:u,zoomOnPinch:c,onPanZoomStart:d,onPanZoom:h,onPanZoomEnd:g}){return y=>{if(Wn(y,r))return y.ctrlKey&&y.preventDefault(),!1;y.preventDefault(),y.stopImmediatePropagation();const v=i.property("__zoom").k||1;if(y.ctrlKey&&c){const C=Vt(y),E=Sg(y),T=v*Math.pow(2,E);l.scaleTo(i,T,C,y);return}const m=y.deltaMode===1?20:1;let w=a===vr.Vertical?0:y.deltaX*m,S=a===vr.Horizontal?0:y.deltaY*m;!mi()&&y.shiftKey&&a!==vr.Vertical&&(w=y.deltaY*m,S=0),l.translateBy(i,-(w/v)*u,-(S/v)*u,{internal:!0});const j=kl(i.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?h==null||h(y,j):(t.isPanScrolling=!0,d==null||d(y,j)),t.panScrollTimeout=setTimeout(()=>{g==null||g(y,j),t.isPanScrolling=!1},150)}}function E1({noWheelClassName:t,preventScrolling:r,d3ZoomHandler:i}){return function(l,a){const u=l.type==="wheel",c=!r&&u&&!l.ctrlKey,d=Wn(l,t);if(l.ctrlKey&&u&&d&&l.preventDefault(),c||d)return null;l.preventDefault(),i.call(this,l,a)}}function N1({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 C1({zoomPanValues:t,panOnDrag:r,onPaneContextMenu:i,onTransformChange:l,onPanZoom:a}){return u=>{var c,d;t.usedRightMouseButton=!!(i&&_g(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 M1({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&&_g(r,t.mouseButton??0)&&!t.usedRightMouseButton&&c.sourceEvent&&u(c.sourceEvent),t.usedRightMouseButton=!1,l(!1),a)){const h=kl(c.transform);t.prevViewport=h,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{a==null||a(c.sourceEvent,h)},i?150:0)}}}function j1({panActivationKeyPressed:t,zoomActivationKeyPressed:r,zoomOnScroll:i,zoomOnPinch:l,panOnDrag:a,panOnScroll:u,zoomOnDoubleClick:c,userSelectionActive:d,noWheelClassName:h,noPanClassName:g,lib:y,connectionInProgress:v}){return m=>{var E;const w=r||i,S=l&&m.ctrlKey,j=m.type==="wheel";if(m.button===1&&m.type==="mousedown"&&(Wn(m,`${y}-flow__node`)||Wn(m,`${y}-flow__edge`)||Wn(m,`${y}-flow__selection`)||Wn(m,`${y}-flow__nodesselection`)))return!0;if(!a&&!w&&!u&&!c&&!l||d||v&&!j||Wn(m,h)&&j||Wn(m,g)&&(!j||u&&j&&!r)||!l&&m.ctrlKey&&j)return!1;if(!l&&m.type==="touchstart"&&((E=m.touches)==null?void 0:E.length)>1)return m.preventDefault(),!1;if(!w&&!u&&!S&&j||!a&&(m.type==="mousedown"||m.type==="touchstart")||Array.isArray(a)&&!a.includes(m.button)&&m.type==="mousedown")return!1;const C=Array.isArray(a)&&a.includes(m.button)||!m.button||m.button<=1;return(!m.ctrlKey||j||t)&&C}}function P1({domNode:t,minZoom:r,maxZoom:i,translateExtent:l,viewport:a,onPanZoom:u,onPanZoomStart:c,onPanZoomEnd:d,onDraggingChange:h}){const g={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},y=t.getBoundingClientRect();let v=[[0,0],[y.width,y.height]];const m=typeof ResizeObserver<"u"?new ResizeObserver(W=>{const N=W[0];N&&(v=[[0,0],[N.contentRect.width,N.contentRect.height]])}):null;m==null||m.observe(t);const w=Xh().extent(()=>v).scaleExtent([r,i]).translateExtent(l),S=Ct(t).call(w);M({x:a.x,y:a.y,zoom:lo(a.zoom,r,i)},[[0,0],[y.width,y.height]],l);const j=S.on("wheel.zoom"),C=S.on("dblclick.zoom");w.wheelDelta(Sg);async function E(W,N){return S?new Promise(H=>{w==null||w.interpolate((N==null?void 0:N.interpolate)==="linear"?li:tl).transform(Iu(S,N==null?void 0:N.duration,N==null?void 0:N.ease,()=>H(!0)),W)}):!1}function T({noWheelClassName:W,noPanClassName:N,onPaneContextMenu:H,userSelectionActive:F,panOnScroll:U,panOnDrag:A,panOnScrollMode:D,panOnScrollSpeed:O,preventScrolling:P,zoomOnPinch:z,zoomOnScroll:te,zoomOnDoubleClick:ne,panActivationKeyPressed:ce=!1,zoomActivationKeyPressed:de,lib:fe,onTransformChange:q,connectionInProgress:se,paneClickDistance:he,selectionOnDrag:we}){F&&!g.isZoomingOrPanning&&k();const xe=U&&!de&&!F;w.clickDistance(we?1/0:!Wt(he)||he<0?0:he);const Se=xe?k1({zoomPanValues:g,noWheelClassName:W,d3Selection:S,d3Zoom:w,panOnScrollMode:D,panOnScrollSpeed:O,zoomOnPinch:z,onPanZoomStart:c,onPanZoom:u,onPanZoomEnd:d}):E1({noWheelClassName:W,preventScrolling:P,d3ZoomHandler:j});S.on("wheel.zoom",Se,{passive:!1});const ie=N1({zoomPanValues:g,onDraggingChange:h,onPanZoomStart:c});w.on("start",ie);const ae=C1({zoomPanValues:g,panOnDrag:A,onPaneContextMenu:!!H,onPanZoom:u,onTransformChange:q});w.on("zoom",ae);const ke=M1({zoomPanValues:g,panOnDrag:A,panOnScroll:U,onPaneContextMenu:H,onPanZoomEnd:d,onDraggingChange:h});w.on("end",ke);const Me=j1({panActivationKeyPressed:ce,zoomActivationKeyPressed:de,panOnDrag:A,zoomOnScroll:te,panOnScroll:U,zoomOnDoubleClick:ne,zoomOnPinch:z,userSelectionActive:F,noPanClassName:N,noWheelClassName:W,lib:fe,connectionInProgress:se});w.filter(Me),ne?S.on("dblclick.zoom",C):S.on("dblclick.zoom",null)}function k(){w.on("zoom",null)}async function M(W,N,H){const F=Tu(W),U=w==null?void 0:w.constrain()(F,N,H);return U&&await E(U),U}async function $(W,N){const H=Tu(W);return await E(H,N),H}function L(W){if(S){const N=Tu(W),H=S.property("__zoom");(H.k!==W.zoom||H.x!==W.x||H.y!==W.y)&&(w==null||w.transform(S,N,null,{sync:!0}))}}function B(){const W=S?Yh(S.node()):{x:0,y:0,k:1};return{x:W.x,y:W.y,zoom:W.k}}async function Y(W,N){return S?new Promise(H=>{w==null||w.interpolate((N==null?void 0:N.interpolate)==="linear"?li:tl).scaleTo(Iu(S,N==null?void 0:N.duration,N==null?void 0:N.ease,()=>H(!0)),W)}):!1}async function Q(W,N){return S?new Promise(H=>{w==null||w.interpolate((N==null?void 0:N.interpolate)==="linear"?li:tl).scaleBy(Iu(S,N==null?void 0:N.duration,N==null?void 0:N.ease,()=>H(!0)),W)}):!1}function ee(W){w==null||w.scaleExtent(W)}function J(W){w==null||w.translateExtent(W)}function X(W){const N=!Wt(W)||W<0?0:W;w==null||w.clickDistance(N)}return{update:T,destroy:k,setViewport:$,setViewportConstrained:M,getViewport:B,scaleTo:Y,scaleBy:Q,setScaleExtent:ee,setTranslateExtent:J,syncViewport:L,setClickDistance:X}}var uo;(function(t){t.Line="line",t.Handle="handle"})(uo||(uo={}));function T1({width:t,prevWidth:r,height:i,prevHeight:l,affectsX:a,affectsY:u}){const c=t-r,d=i-l,h=[c>0?1:c<0?-1:0,d>0?1:d<0?-1:0];return c&&a&&(h[0]=h[0]*-1),d&&u&&(h[1]=h[1]*-1),h}function Pp(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 Un(t,r){return Math.max(0,t-r)}function Gs(t,r,i){return Math.max(0,r-t,t-i)}function Tp(t,r){return t?!r:r}function I1(t,r,i,l,a,u,c,d){let{affectsX:h,affectsY:g}=r;const{isHorizontal:y,isVertical:v}=r,m=y&&v,{xSnapped:w,ySnapped:S}=i,{minWidth:j,maxWidth:C,minHeight:E,maxHeight:T}=l,{x:k,y:M,width:$,height:L,aspectRatio:B}=t;let Y=Math.floor(y?w-t.pointerX:0),Q=Math.floor(v?S-t.pointerY:0);const ee=$+(h?-Y:Y),J=L+(g?-Q:Q),X=-u[0]*$,W=-u[1]*L;let N=Gs(ee,j,C),H=Gs(J,E,T);if(c){let A=0,D=0;h&&Y<0?A=Bn(k+Y+X,c[0][0]):!h&&Y>0&&(A=Un(k+ee+X,c[1][0])),g&&Q<0?D=Bn(M+Q+W,c[0][1]):!g&&Q>0&&(D=Un(M+J+W,c[1][1])),N=Math.max(N,A),H=Math.max(H,D)}if(d){let A=0,D=0;h&&Y>0?A=Un(k+Y,d[0][0]):!h&&Y<0&&(A=Bn(k+ee,d[1][0])),g&&Q>0?D=Un(M+Q,d[0][1]):!g&&Q<0&&(D=Bn(M+J,d[1][1])),N=Math.max(N,A),H=Math.max(H,D)}if(a){if(y){const A=Gs(ee/B,E,T)*B;if(N=Math.max(N,A),c){let D=0;!h&&!g||h&&!g&&m?D=Un(M+W+ee/B,c[1][1])*B:D=Bn(M+W+(h?Y:-Y)/B,c[0][1])*B,N=Math.max(N,D)}if(d){let D=0;!h&&!g||h&&!g&&m?D=Bn(M+ee/B,d[1][1])*B:D=Un(M+(h?Y:-Y)/B,d[0][1])*B,N=Math.max(N,D)}}if(v){const A=Gs(J*B,j,C)/B;if(H=Math.max(H,A),c){let D=0;!h&&!g||g&&!h&&m?D=Un(k+J*B+X,c[1][0])/B:D=Bn(k+(g?Q:-Q)*B+X,c[0][0])/B,H=Math.max(H,D)}if(d){let D=0;!h&&!g||g&&!h&&m?D=Bn(k+J*B,d[1][0])/B:D=Un(k+(g?Q:-Q)*B,d[0][0])/B,H=Math.max(H,D)}}}Q=Q+(Q<0?H:-H),Y=Y+(Y<0?N:-N),a&&(m?ee>J*B?Q=(Tp(h,g)?-Y:Y)/B:Y=(Tp(h,g)?-Q:Q)*B:y?(Q=Y/B,g=h):(Y=Q*B,h=g));const F=h?k+Y:k,U=g?M+Q:M;return{width:$+(h?-Y:Y),height:L+(g?-Q:Q),x:u[0]*Y*(h?-1:1)+F,y:u[1]*Q*(g?-1:1)+U}}const kg={width:0,height:0,x:0,y:0},R1={...kg,pointerX:0,pointerY:0,aspectRatio:1};function z1(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,h=i[1]*c;return[[l-d,a-h],[l+u-d,a+c-h]]}function L1({domNode:t,nodeId:r,getStoreItems:i,onChange:l,onEnd:a}){const u=Ct(t);let c={controlDirection:Pp("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:y,keepAspectRatio:v,resizeDirection:m,onResizeStart:w,onResize:S,onResizeEnd:j,shouldResize:C}){let E={...kg},T={...R1};c={boundaries:y,resizeDirection:m,keepAspectRatio:v,controlDirection:Pp(g)};let k,M=null,$=[],L,B,Y,Q=!1;const ee=Rh().on("start",J=>{const{nodeLookup:X,transform:W,snapGrid:N,snapToGrid:H,nodeOrigin:F,paneDomNode:U}=i();if(k=X.get(r),!k)return;M=(U==null?void 0:U.getBoundingClientRect())??null;const{xSnapped:A,ySnapped:D}=ai(J.sourceEvent,{transform:W,snapGrid:N,snapToGrid:H,containerBounds:M});E={width:k.measured.width??0,height:k.measured.height??0,x:k.position.x??0,y:k.position.y??0},T={...E,pointerX:A,pointerY:D,aspectRatio:E.width/E.height},L=void 0,B=Sr(k.extent)?k.extent:void 0,k.parentId&&(k.extent==="parent"||k.expandParent)&&(L=X.get(k.parentId)),L&&k.extent==="parent"&&(B=[[0,0],[L.measured.width,L.measured.height]]),$=[],Y=void 0;for(const[O,P]of X)if(P.parentId===r&&($.push({id:O,position:{...P.position},extent:P.extent}),P.extent==="parent"||P.expandParent)){const z=z1(P,k,P.origin??F);Y?Y=[[Math.min(z[0][0],Y[0][0]),Math.min(z[0][1],Y[0][1])],[Math.max(z[1][0],Y[1][0]),Math.max(z[1][1],Y[1][1])]]:Y=z}w==null||w(J,{...E})}).on("drag",J=>{const{transform:X,snapGrid:W,snapToGrid:N,nodeOrigin:H}=i(),F=ai(J.sourceEvent,{transform:X,snapGrid:W,snapToGrid:N,containerBounds:M}),U=[];if(!k)return;const{x:A,y:D,width:O,height:P}=E,z={},te=k.origin??H,{width:ne,height:ce,x:de,y:fe}=I1(T,c.controlDirection,F,c.boundaries,c.keepAspectRatio,te,B,Y),q=ne!==O,se=ce!==P,he=de!==A&&q,we=fe!==D&&se;if(!he&&!we&&!q&&!se)return;if((he||we||te[0]===1||te[1]===1)&&(z.x=he?de:E.x,z.y=we?fe:E.y,E.x=z.x,E.y=z.y,$.length>0)){const ae=de-A,ke=fe-D;for(const Me of $)Me.position={x:Me.position.x-ae+te[0]*(ne-O),y:Me.position.y-ke+te[1]*(ce-P)},U.push(Me)}if((q||se)&&(z.width=q&&(!c.resizeDirection||c.resizeDirection==="horizontal")?ne:E.width,z.height=se&&(!c.resizeDirection||c.resizeDirection==="vertical")?ce:E.height,E.width=z.width,E.height=z.height),L&&k.expandParent){const ae=te[0]*(z.width??0);z.x&&z.x<ae&&(E.x=ae,T.x=T.x-(z.x-ae));const ke=te[1]*(z.height??0);z.y&&z.y<ke&&(E.y=ke,T.y=T.y-(z.y-ke))}const xe=T1({width:E.width,prevWidth:O,height:E.height,prevHeight:P,affectsX:c.controlDirection.affectsX,affectsY:c.controlDirection.affectsY}),Se={...E,direction:xe};(C==null?void 0:C(J,Se))!==!1&&(Q=!0,S==null||S(J,Se),l(z,U))}).on("end",J=>{Q&&(j==null||j(J,{...E}),a==null||a({...E}),Q=!1)});u.call(ee)}function h(){u.on(".drag",null)}return{update:d,destroy:h}}var Ru={exports:{}},zu={},Lu={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 Ip;function A1(){if(Ip)return Au;Ip=1;var t=vi();function r(v,m){return v===m&&(v!==0||1/v===1/m)||v!==v&&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(v,m){var w=m(),S=l({inst:{value:w,getSnapshot:m}}),j=S[0].inst,C=S[1];return u(function(){j.value=w,j.getSnapshot=m,h(j)&&C({inst:j})},[v,w,m]),a(function(){return h(j)&&C({inst:j}),v(function(){h(j)&&C({inst:j})})},[v]),c(w),w}function h(v){var m=v.getSnapshot;v=v.value;try{var w=m();return!i(v,w)}catch{return!0}}function g(v,m){return m()}var y=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?g:d;return Au.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:y,Au}var Rp;function D1(){return Rp||(Rp=1,Lu.exports=A1()),Lu.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 zp;function b1(){if(zp)return zu;zp=1;var t=vi(),r=D1();function i(g,y){return g===y&&(g!==0||1/g===1/y)||g!==g&&y!==y}var l=typeof Object.is=="function"?Object.is:i,a=r.useSyncExternalStore,u=t.useRef,c=t.useEffect,d=t.useMemo,h=t.useDebugValue;return zu.useSyncExternalStoreWithSelector=function(g,y,v,m,w){var S=u(null);if(S.current===null){var j={hasValue:!1,value:null};S.current=j}else j=S.current;S=d(function(){function E(L){if(!T){if(T=!0,k=L,L=m(L),w!==void 0&&j.hasValue){var B=j.value;if(w(B,L))return M=B}return M=L}if(B=M,l(k,L))return B;var Y=m(L);return w!==void 0&&w(B,Y)?(k=L,B):(k=L,M=Y)}var T=!1,k,M,$=v===void 0?null:v;return[function(){return E(y())},$===null?void 0:function(){return E($())}]},[y,v,m,w]);var C=a(g,S[0],S[1]);return c(function(){j.hasValue=!0,j.value=C},[C]),h(C),C},zu}var Lp;function $1(){return Lp||(Lp=1,Ru.exports=b1()),Ru.exports}var O1=$1();const F1=fh(O1),H1={},Ap=t=>{let r;const i=new Set,l=(y,v)=>{const m=typeof y=="function"?y(r):y;if(!Object.is(m,r)){const w=r;r=v??(typeof m!="object"||m===null)?m:Object.assign({},r,m),i.forEach(S=>S(r,w))}},a=()=>r,h={setState:l,getState:a,getInitialState:()=>g,subscribe:y=>(i.add(y),()=>i.delete(y)),destroy:()=>{(H1?"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,h);return h},V1=t=>t?Ap(t):Ap,{useDebugValue:B1}=dh,{useSyncExternalStoreWithSelector:U1}=F1,W1=t=>t;function Eg(t,r=W1,i){const l=U1(t.subscribe,t.getState,t.getServerState||t.getInitialState,r,i);return B1(l),l}const Dp=(t,r)=>{const i=V1(t),l=(a,u=r)=>Eg(i,a,u);return Object.assign(l,i),l},Y1=(t,r)=>t?Dp(t,r):Dp;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,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}ph();const El=R.createContext(null),X1=El.Provider,Ng=Xt.error001("react");function Te(t,r){const i=R.useContext(El);if(i===null)throw new Error(Ng);return Eg(i,t,r)}function De(){const t=R.useContext(El);if(t===null)throw new Error(Ng);return R.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe}),[t])}const bp={display:"none"},K1={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Cg="react-flow__node-desc",Mg="react-flow__edge-desc",Q1="react-flow__aria-live",G1=t=>t.ariaLiveMessage,q1=t=>t.ariaLabelConfig;function Z1({rfId:t}){const r=Te(G1);return x.jsx("div",{id:`${Q1}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:K1,children:r})}function J1({rfId:t,disableKeyboardA11y:r}){const i=Te(q1);return x.jsxs(x.Fragment,{children:[x.jsx("div",{id:`${Cg}-${t}`,style:bp,children:r?i["node.a11yDescription.default"]:i["node.a11yDescription.keyboardDisabled"]}),x.jsx("div",{id:`${Mg}-${t}`,style:bp,children:i["edge.a11yDescription.default"]}),!r&&x.jsx(Z1,{rfId:t})]})}const Ni=R.forwardRef(({position:t="top-left",children:r,className:i,style:l,...a},u)=>{const c=`${t}`.split("-");return x.jsx("div",{className:Ye(["react-flow__panel",i,...c]),style:l,ref:u,...a,children:r})});Ni.displayName="Panel";const $p="https://reactflow.dev?utm_source=attribution";function e_({proOptions:t,position:r="bottom-right"}){return R.useEffect(()=>{},[]),t!=null&&t.hideAttribution?null:x.jsx(Ni,{position:r,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${$p}`,children:x.jsx("a",{href:$p,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const t_=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 n_(t,r){return Ve(t.selectedNodes.map(qs),r.selectedNodes.map(qs))&&Ve(t.selectedEdges.map(qs),r.selectedEdges.map(qs))}function r_({onSelectionChange:t}){const r=De(),{selectedNodes:i,selectedEdges:l}=Te(t_,n_);return R.useEffect(()=>{const a={nodes:i,edges:l};t==null||t(a),r.getState().onSelectionChangeHandlers.forEach(u=>u(a))},[i,l,t]),null}const o_=t=>!!t.onSelectionChangeHandlers;function i_({onSelectionChange:t}){const r=Te(o_);return t||r?x.jsx(r_,{onSelectionChange:t}):null}const jg=[0,0],s_={x:0,y:0,zoom:1},l_=["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"],Op=[...l_,"rfId"],a_=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}),Fp={translateExtent:pi,nodeOrigin:jg,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function u_(t){const{setNodes:r,setEdges:i,setMinZoom:l,setMaxZoom:a,setTranslateExtent:u,setNodeExtent:c,reset:d,setDefaultNodesAndEdges:h}=Te(a_,Ve),g=De();R.useEffect(()=>(h(t.defaultNodes,t.defaultEdges),()=>{y.current=Fp,d()}),[]);const y=R.useRef(Fp);return R.useEffect(()=>{for(const v of Op){const m=t[v],w=y.current[v];m!==w&&(typeof t[v]>"u"||(v==="nodes"?r(m):v==="edges"?i(m):v==="minZoom"?l(m):v==="maxZoom"?a(m):v==="translateExtent"?u(m):v==="nodeExtent"?c(m):v==="ariaLabelConfig"?g.setState({ariaLabelConfig:Xw(m)}):v==="fitView"?g.setState({fitViewQueued:m}):v==="fitViewOptions"?g.setState({fitViewOptions:m}):g.setState({[v]:m})))}y.current=t},Op.map(v=>t[v])),null}function Hp(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function c_(t){var l;const[r,i]=R.useState(t==="system"?null:t);return R.useEffect(()=>{if(t!=="system"){i(t);return}const a=Hp(),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=Hp())!=null&&l.matches?"dark":"light"}const Vp=typeof document<"u"?document:null;function yi(t=null,r={target:Vp,actInsideInputWithModifier:!0}){const[i,l]=R.useState(!1),a=R.useRef(!1),u=R.useRef(new Set([])),[c,d]=R.useMemo(()=>{if(t!==null){const g=(Array.isArray(t)?t:[t]).filter(v=>typeof v=="string").map(v=>v.replace(/\+/g,`
+`).replace(`
+
+`,`
++`).split(`
+`)),y=g.reduce((v,m)=>v.concat(...m),[]);return[g,y]}return[[],[]]},[t]);return R.useEffect(()=>{const h=(r==null?void 0:r.target)??Vp,g=(r==null?void 0:r.actInsideInputWithModifier)??!0;if(t!==null){const y=w=>{var C,E;if(a.current=w.ctrlKey||w.metaKey||w.shiftKey||w.altKey,(!a.current||a.current&&!g)&&lg(w))return!1;const j=Up(w.code,d);if(u.current.add(w[j]),Bp(c,u.current,!1)){const T=((E=(C=w.composedPath)==null?void 0:C.call(w))==null?void 0:E[0])||w.target,k=(T==null?void 0:T.nodeName)==="BUTTON"||(T==null?void 0:T.nodeName)==="A";r.preventDefault!==!1&&(a.current||!k)&&w.preventDefault(),l(!0)}},v=w=>{const S=Up(w.code,d);Bp(c,u.current,!0)?(l(!1),u.current.clear()):u.current.delete(w[S]),w.key==="Meta"&&u.current.clear(),a.current=!1},m=()=>{u.current.clear(),l(!1)};return h==null||h.addEventListener("keydown",y),h==null||h.addEventListener("keyup",v),window.addEventListener("blur",m),window.addEventListener("contextmenu",m),()=>{h==null||h.removeEventListener("keydown",y),h==null||h.removeEventListener("keyup",v),window.removeEventListener("blur",m),window.removeEventListener("contextmenu",m)}}},[t,l]),i}function Bp(t,r,i){return t.filter(l=>i||l.length===r.size).some(l=>l.every(a=>r.has(a)))}function Up(t,r){return r.includes(t)?"code":"key"}const f_=()=>{const t=De();return R.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(),h=fc(r,l,a,u,c,(i==null?void 0:i.padding)??.1);return d?(await d.setViewport(h,{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:h}=c.getBoundingClientRect(),g={x:r.x-d,y:r.y-h},y=i.snapGrid??a,v=i.snapToGrid??u;return Ei(g,l,v,y)},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 Pg(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 h of c)d_(h,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 d_(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 p_(t,r){return Pg(t,r)}function h_(t,r){return Pg(t,r)}function gr(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(gr(u.id,c)))}return l}function Wp({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),h=((a=d==null?void 0:d.internals)==null?void 0:a.userNode)??d;h!==void 0&&h!==c&&i.push({id:c.id,item:c,type:"replace"}),h===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 Yp(t){return{id:t.id,type:"remove"}}const g_=ng();function m_(t,r,i={}){return Jw(t,r,{...i,onError:i.onError??g_})}const Xp=t=>$w(t),y_=t=>qh(t);function Tg(t){return R.forwardRef(t)}const Ig=typeof window<"u"?R.useLayoutEffect:R.useEffect;function Kp(t){const[r,i]=R.useState(BigInt(0)),[l]=R.useState(()=>v_(()=>i(a=>a+BigInt(1))));return Ig(()=>{const a=l.get();a.length&&(t(a),l.reset())},[r]),l}function v_(t){let r=[];return{get:()=>r,reset:()=>{r=[]},push:i=>{r.push(i),t()}}}const Rg=R.createContext(null);function x_({children:t}){const r=De(),i=R.useCallback(d=>{const{nodes:h=[],setNodes:g,hasDefaultNodes:y,onNodesChange:v,nodeLookup:m,fitViewQueued:w,onNodesChangeMiddlewareMap:S}=r.getState();let j=h;for(const E of d)j=typeof E=="function"?E(j):E;let C=Wp({items:j,lookup:m});for(const E of S.values())C=E(C);y&&g(j),C.length>0?v==null||v(C):w&&window.requestAnimationFrame(()=>{const{fitViewQueued:E,nodes:T,setNodes:k}=r.getState();E&&k(T)})},[]),l=Kp(i),a=R.useCallback(d=>{const{edges:h=[],setEdges:g,hasDefaultEdges:y,onEdgesChange:v,edgeLookup:m}=r.getState();let w=h;for(const S of d)w=typeof S=="function"?S(w):S;y?g(w):v&&v(Wp({items:w,lookup:m}))},[]),u=Kp(a),c=R.useMemo(()=>({nodeQueue:l,edgeQueue:u}),[]);return x.jsx(Rg.Provider,{value:c,children:t})}function w_(){const t=R.useContext(Rg);if(!t)throw new Error("useBatchContext must be used within a BatchProvider");return t}const __=t=>!!t.panZoom;function Nl(){const t=f_(),r=De(),i=w_(),l=Te(__),a=R.useMemo(()=>{const u=v=>r.getState().nodeLookup.get(v),c=v=>{i.nodeQueue.push(v)},d=v=>{i.edgeQueue.push(v)},h=v=>{var E,T;const{nodeLookup:m,nodeOrigin:w}=r.getState(),S=Xp(v)?v:m.get(v.id),j=S.parentId?og(S.position,S.measured,S.parentId,m,w):S.position,C={...S,position:j,width:((E=S.measured)==null?void 0:E.width)??S.width,height:((T=S.measured)==null?void 0:T.height)??S.height};return gi(C)},g=(v,m,w={replace:!1})=>{c(S=>S.map(j=>{if(j.id===v){const C=typeof m=="function"?m(j):m;return w.replace&&Xp(C)?C:{...j,...C}}return j}))},y=(v,m,w={replace:!1})=>{d(S=>S.map(j=>{if(j.id===v){const C=typeof m=="function"?m(j):m;return w.replace&&y_(C)?C:{...j,...C}}return j}))};return{getNodes:()=>r.getState().nodes.map(v=>({...v})),getNode:v=>{var m;return(m=u(v))==null?void 0:m.internals.userNode},getInternalNode:u,getEdges:()=>{const{edges:v=[]}=r.getState();return v.map(m=>({...m}))},getEdge:v=>r.getState().edgeLookup.get(v),setNodes:c,setEdges:d,addNodes:v=>{const m=Array.isArray(v)?v:[v];i.nodeQueue.push(w=>[...w,...m])},addEdges:v=>{const m=Array.isArray(v)?v:[v];i.edgeQueue.push(w=>[...w,...m])},toObject:()=>{const{nodes:v=[],edges:m=[],transform:w}=r.getState(),[S,j,C]=w;return{nodes:v.map(E=>({...E})),edges:m.map(E=>({...E})),viewport:{x:S,y:j,zoom:C}}},deleteElements:async({nodes:v=[],edges:m=[]})=>{const{nodes:w,edges:S,onNodesDelete:j,onEdgesDelete:C,triggerNodeChanges:E,triggerEdgeChanges:T,onDelete:k,onBeforeDelete:M}=r.getState(),{nodes:$,edges:L}=await Bw({nodesToRemove:v,edgesToRemove:m,nodes:w,edges:S,onBeforeDelete:M}),B=L.length>0,Y=$.length>0;if(B){const Q=L.map(Yp);C==null||C(L),T(Q)}if(Y){const Q=$.map(Yp);j==null||j($),E(Q)}return(Y||B)&&(k==null||k({nodes:$,edges:L})),{deletedNodes:$,deletedEdges:L}},getIntersectingNodes:(v,m=!0,w)=>{const S=vp(v),j=S?v:h(v),C=w!==void 0;return j?(w||r.getState().nodes).filter(E=>{const T=r.getState().nodeLookup.get(E.id);if(T&&!S&&(E.id===v.id||!T.internals.positionAbsolute))return!1;const k=gi(C?E:T),M=hl(k,j);return m&&M>0||M>=k.width*k.height||M>=j.width*j.height}):[]},isNodeIntersecting:(v,m,w=!0)=>{const j=vp(v)?v:h(v);if(!j)return!1;const C=hl(j,m);return w&&C>0||C>=m.width*m.height||C>=j.width*j.height},updateNode:g,updateNodeData:(v,m,w={replace:!1})=>{g(v,S=>{const j=typeof m=="function"?m(S):m;return w.replace?{...S,data:j}:{...S,data:{...S.data,...j}}},w)},updateEdge:y,updateEdgeData:(v,m,w={replace:!1})=>{y(v,S=>{const j=typeof m=="function"?m(S):m;return w.replace?{...S,data:j}:{...S,data:{...S.data,...j}}},w)},getNodesBounds:v=>{const{nodeLookup:m,nodeOrigin:w}=r.getState();return Ow(v,{nodeLookup:m,nodeOrigin:w})},getHandleConnections:({type:v,id:m,nodeId:w})=>{var S;return Array.from(((S=r.getState().connectionLookup.get(`${w}-${v}${m?`-${m}`:""}`))==null?void 0:S.values())??[])},getNodeConnections:({type:v,handleId:m,nodeId:w})=>{var S;return Array.from(((S=r.getState().connectionLookup.get(`${w}${v?m?`-${v}-${m}`:`-${v}`:""}`))==null?void 0:S.values())??[])},fitView:async v=>{const m=r.getState().fitViewResolver??Yw();return r.setState({fitViewQueued:!0,fitViewOptions:v,fitViewResolver:m}),i.nodeQueue.push(w=>[...w]),m.promise}}},[]);return R.useMemo(()=>({...a,...t,viewportInitialized:l}),[l])}const Qp=t=>t.selected,S_=typeof window<"u"?window:void 0;function k_({deleteKeyCode:t,multiSelectionKeyCode:r}){const i=De(),{deleteElements:l}=Nl(),a=yi(t,{actInsideInputWithModifier:!1}),u=yi(r,{target:S_});R.useEffect(()=>{if(a){const{edges:c,nodes:d}=i.getState();l({nodes:d.filter(Qp),edges:c.filter(Qp)}),i.setState({nodesSelectionActive:!1})}},[a]),R.useEffect(()=>{i.setState({multiSelectionActive:u})},[u])}function E_(t){const r=De();R.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=dc(t.current);(l.height===0||l.width===0)&&((d=(c=r.getState()).onError)==null||d.call(c,"004",Xt.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},N_=t=>({userSelectionActive:t.userSelectionActive,lib:t.lib,connectionInProgress:t.connection.inProgress});function C_({onPaneContextMenu:t,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:l=!1,panActivationKeyPressed:a,panOnScrollSpeed:u=.5,panOnScrollMode:c=vr.Free,zoomOnDoubleClick:d=!0,panOnDrag:h=!0,defaultViewport:g,translateExtent:y,minZoom:v,maxZoom:m,zoomActivationKeyCode:w,preventScrolling:S=!0,children:j,noWheelClassName:C,noPanClassName:E,onViewportChange:T,isControlledViewport:k,paneClickDistance:M,selectionOnDrag:$}){const L=De(),B=R.useRef(null),{userSelectionActive:Y,lib:Q,connectionInProgress:ee}=Te(N_,Ve),J=yi(w),X=R.useRef();E_(B);const W=R.useCallback(N=>{T==null||T({x:N[0],y:N[1],zoom:N[2]}),k||L.setState({transform:N})},[T,k]);return R.useEffect(()=>{if(B.current){X.current=P1({domNode:B.current,minZoom:v,maxZoom:m,translateExtent:y,viewport:g,onDraggingChange:U=>L.setState(A=>A.paneDragging===U?A:{paneDragging:U}),onPanZoomStart:(U,A)=>{const{onViewportChangeStart:D,onMoveStart:O}=L.getState();O==null||O(U,A),D==null||D(A)},onPanZoom:(U,A)=>{const{onViewportChange:D,onMove:O}=L.getState();O==null||O(U,A),D==null||D(A)},onPanZoomEnd:(U,A)=>{const{onViewportChangeEnd:D,onMoveEnd:O}=L.getState();O==null||O(U,A),D==null||D(A)}});const{x:N,y:H,zoom:F}=X.current.getViewport();return L.setState({panZoom:X.current,transform:[N,H,F],domNode:B.current.closest(".react-flow")}),()=>{var U;(U=X.current)==null||U.destroy()}}},[]),R.useEffect(()=>{var N;(N=X.current)==null||N.update({onPaneContextMenu:t,zoomOnScroll:r,zoomOnPinch:i,panOnScroll:l,panActivationKeyPressed:a,panOnScrollSpeed:u,panOnScrollMode:c,zoomOnDoubleClick:d,panOnDrag:h,zoomActivationKeyPressed:J,preventScrolling:S,noPanClassName:E,userSelectionActive:Y,noWheelClassName:C,lib:Q,onTransformChange:W,connectionInProgress:ee,selectionOnDrag:$,paneClickDistance:M})},[t,r,i,l,a,u,c,d,h,J,S,E,Y,C,Q,W,ee,$,M]),x.jsx("div",{className:"react-flow__renderer",ref:B,style:Cl,children:j})}const M_=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function j_(){const{userSelectionActive:t,userSelectionRect:r}=Te(M_,Ve);return t&&r?x.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))},P_=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,dragging:t.paneDragging,panBy:t.panBy,autoPanSpeed:t.autoPanSpeed});function T_({isSelecting:t,selectionKeyPressed:r,selectionMode:i=hi.Full,panOnDrag:l,autoPanOnSelection:a,paneClickDistance:u,selectionOnDrag:c,onSelectionStart:d,onSelectionEnd:h,onPaneClick:g,onPaneContextMenu:y,onPaneScroll:v,onPaneMouseEnter:m,onPaneMouseMove:w,onPaneMouseLeave:S,children:j}){const C=R.useRef(0),E=De(),{userSelectionActive:T,elementsSelectable:k,dragging:M,panBy:$,autoPanSpeed:L}=Te(P_,Ve),B=k&&(t||T),Y=R.useRef(null),Q=R.useRef(),ee=R.useRef(new Set),J=R.useRef(new Set),X=R.useRef(!1),W=R.useRef(!1),N=R.useRef({x:0,y:0}),H=R.useRef(!1),F=q=>{if(W.current||X.current||E.getState().connection.inProgress){W.current=!1,X.current=!1;return}g==null||g(q),E.getState().resetSelectedElements(),E.setState({nodesSelectionActive:!1})},U=q=>{if(Array.isArray(l)&&(l!=null&&l.includes(2))){q.preventDefault();return}y==null||y(q)},A=v?q=>v(q):void 0,D=q=>{W.current&&(q.stopPropagation(),W.current=!1)},O=q=>{var Me,Je;if(q.pointerType==="touch"&&l!==!1&&!r)return;const{domNode:se,transform:he}=E.getState();if(Q.current=se==null?void 0:se.getBoundingClientRect(),!Q.current)return;const we=q.target===Y.current;if(!we&&!!q.target.closest(".nokey")||!t||!(c&&we||r)||q.button!==0||!q.isPrimary)return;(Je=(Me=q.target)==null?void 0:Me.setPointerCapture)==null||Je.call(Me,q.pointerId),W.current=!1;const{x:ie,y:ae}=Yt(q.nativeEvent,Q.current),ke=Ei({x:ie,y:ae},he);E.setState({userSelectionRect:{width:0,height:0,startX:ke.x,startY:ke.y,x:ie,y:ae}}),we||(q.stopPropagation(),q.preventDefault())};function P(q,se){const{userSelectionRect:he}=E.getState();if(!he)return;const{transform:we,nodeLookup:xe,edgeLookup:Se,connectionLookup:ie,triggerNodeChanges:ae,triggerEdgeChanges:ke,defaultEdgeOptions:Me}=E.getState(),Je={x:he.startX,y:he.startY},{x:ct,y:nt}=ao(Je,we),rt={startX:Je.x,startY:Je.y,x:q<ct?q:ct,y:se<nt?se:nt,width:Math.abs(q-ct),height:Math.abs(se-nt)},ln=ee.current,Gt=J.current;ee.current=new Set(uc(xe,rt,we,i===hi.Partial,!0).map(ft=>ft.id)),J.current=new Set;const qt=(Me==null?void 0:Me.selectable)??!0;for(const ft of ee.current){const jt=ie.get(ft);if(jt)for(const{edgeId:xt}of jt.values()){const Pt=Se.get(xt);Pt&&(Pt.selectable??qt)&&J.current.add(xt)}}if(!xp(ln,ee.current)){const ft=to(xe,ee.current,!0);ae(ft)}if(!xp(Gt,J.current)){const ft=to(Se,J.current);ke(ft)}E.setState({userSelectionRect:rt,userSelectionActive:!0,nodesSelectionActive:!1})}function z(){if(!a||!Q.current)return;const[q,se]=cc(N.current,Q.current,L);$({x:q,y:se}).then(he=>{if(!W.current||!he){C.current=requestAnimationFrame(z);return}const{x:we,y:xe}=N.current;P(we,xe),C.current=requestAnimationFrame(z)})}const te=()=>{cancelAnimationFrame(C.current),C.current=0,H.current=!1};R.useEffect(()=>()=>te(),[]);const ne=q=>{const{userSelectionRect:se,transform:he,resetSelectedElements:we}=E.getState();if(!Q.current||!se)return;const{x:xe,y:Se}=Yt(q.nativeEvent,Q.current);N.current={x:xe,y:Se};const ie=ao({x:se.startX,y:se.startY},he);if(!W.current){const ae=r?0:u;if(Math.hypot(xe-ie.x,Se-ie.y)<=ae)return;we(),d==null||d(q)}W.current=!0,H.current||(z(),H.current=!0),P(xe,Se)},ce=q=>{var se,he;if(!B){q.target===Y.current&&E.getState().connection.inProgress&&(X.current=!0);return}q.button===0&&((he=(se=q.target)==null?void 0:se.releasePointerCapture)==null||he.call(se,q.pointerId),!T&&q.target===Y.current&&E.getState().userSelectionRect&&(F==null||F(q)),E.setState({userSelectionActive:!1,userSelectionRect:null}),W.current&&(h==null||h(q),E.setState({nodesSelectionActive:ee.current.size>0})),te())},de=q=>{var se,he;(he=(se=q.target)==null?void 0:se.releasePointerCapture)==null||he.call(se,q.pointerId),te()},fe=l===!0||Array.isArray(l)&&l.includes(0);return x.jsxs("div",{className:Ye(["react-flow__pane",{draggable:fe,dragging:M,selection:t}]),onClick:B?void 0:Du(F,Y),onContextMenu:Du(U,Y),onWheel:Du(A,Y),onPointerEnter:B?void 0:m,onPointerMove:B?ne:w,onPointerUp:ce,onPointerCancel:B?de:void 0,onPointerDownCapture:B?O:void 0,onClickCapture:B?D:void 0,onPointerLeave:S,ref:Y,style:Cl,children:[j,x.jsx(j_,{})]})}function Zu({id:t,store:r,unselect:i=!1,nodeRef:l}){const{addSelectedNodes:a,unselectNodesAndEdges:u,multiSelectionActive:c,nodeLookup:d,onError:h}=r.getState(),g=d.get(t);if(!g){h==null||h("012",Xt.error012(t));return}r.setState({nodesSelectionActive:!1}),g.selected?(i||g.selected&&c)&&(u({nodes:[g],edges:[]}),requestAnimationFrame(()=>{var y;return(y=l==null?void 0:l.current)==null?void 0:y.blur()})):a([t])}function zg({nodeRef:t,disabled:r=!1,noDragClassName:i,handleSelector:l,nodeId:a,isSelectable:u,nodeClickDistance:c}){const d=De(),[h,g]=R.useState(!1),y=R.useRef();return R.useEffect(()=>{if(!r)return y.current=g1({getStoreItems:()=>d.getState(),onNodeMouseDown:v=>{Zu({id:v,store:d,nodeRef:t})},onDragStart:()=>{g(!0)},onDragStop:()=>{g(!1)}}),()=>{var v;(v=y.current)==null||v.destroy(),y.current=void 0}},[r,d,t]),R.useEffect(()=>{r||!t.current||!y.current||y.current.update({noDragClassName:i,handleSelector:l,domNode:t.current,isSelectable:u,nodeId:a,nodeClickDistance:c})},[i,l,r,u,t,a,c]),h}const I_=t=>r=>r.selected&&(r.draggable||t&&typeof r.draggable>"u");function Lg(){const t=De();return R.useCallback(i=>{const{nodeExtent:l,snapToGrid:a,snapGrid:u,nodesDraggable:c,onError:d,updateNodePositions:h,nodeLookup:g,nodeOrigin:y}=t.getState(),v=new Map,m=I_(c),w=a?u[0]:5,S=a?u[1]:5,j=i.direction.x*w*i.factor,C=i.direction.y*S*i.factor;for(const[,E]of g){if(!m(E))continue;let T={x:E.internals.positionAbsolute.x+j,y:E.internals.positionAbsolute.y+C};a&&(T=ki(T,u));const{position:k,positionAbsolute:M}=Zh({nodeId:E.id,nextPosition:T,nodeLookup:g,nodeExtent:l,nodeOrigin:y,onError:d});E.position=k,E.internals.positionAbsolute=M,v.set(E.id,E)}h(v)},[])}const vc=R.createContext(null),R_=vc.Provider;vc.Consumer;const Ag=()=>R.useContext(vc),z_=t=>({connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName,rfId:t.rfId}),Dg=R.createContext(null);function L_({children:t}){const r=Te(z_,Ve);return x.jsx(Dg.Provider,{value:r,children:t})}function A_(){const t=R.useContext(Dg);if(!t)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return t}const D_={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},b_=(t,r,i)=>l=>{const{connectionClickStartHandle:a,connectionMode:u,connection:c}=l,{fromHandle:d,toHandle:h,isValid:g}=c;if(!d&&!a)return D_;const y=(h==null?void 0:h.nodeId)===t&&(h==null?void 0:h.id)===r&&(h==null?void 0:h.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:y,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:y&&g}};function $_({type:t="source",position:r=_e.Top,isValidConnection:i,isConnectable:l=!0,isConnectableStart:a=!0,isConnectableEnd:u=!0,id:c,onConnect:d,children:h,className:g,onMouseDown:y,onTouchStart:v,...m},w){var H,F;const S=c||null,j=t==="target",C=De(),E=Ag(),{connectOnClick:T,noPanClassName:k,rfId:M}=A_(),{connectingFrom:$,connectingTo:L,clickConnecting:B,isPossibleEndHandle:Y,connectionInProcess:Q,clickConnectionInProcess:ee,valid:J}=Te(b_(E,S,t),Ve);E||(F=(H=C.getState()).onError)==null||F.call(H,"010",Xt.error010());const X=U=>{const{defaultEdgeOptions:A,onConnect:D,hasDefaultEdges:O}=C.getState(),P={...A,...U};if(O){const{edges:z,setEdges:te,onError:ne}=C.getState();te(m_(P,z,{onError:ne}))}D==null||D(P),d==null||d(P)},W=U=>{if(!E)return;const A=ag(U.nativeEvent);if(a&&(A&&U.button===0||!A)){const D=C.getState();qu.onPointerDown(U.nativeEvent,{handleDomNode:U.currentTarget,autoPanOnConnect:D.autoPanOnConnect,connectionMode:D.connectionMode,connectionRadius:D.connectionRadius,domNode:D.domNode,nodeLookup:D.nodeLookup,lib:D.lib,isTarget:j,handleId:S,nodeId:E,flowId:D.rfId,panBy:D.panBy,cancelConnection:D.cancelConnection,onConnectStart:D.onConnectStart,onConnectEnd:(...O)=>{var P,z;return(z=(P=C.getState()).onConnectEnd)==null?void 0:z.call(P,...O)},updateConnection:D.updateConnection,onConnect:X,isValidConnection:i||((...O)=>{var P,z;return((z=(P=C.getState()).isValidConnection)==null?void 0:z.call(P,...O))??!0}),getTransform:()=>C.getState().transform,getFromHandle:()=>C.getState().connection.fromHandle,autoPanSpeed:D.autoPanSpeed,dragThreshold:D.connectionDragThreshold})}A?y==null||y(U):v==null||v(U)},N=U=>{const{onClickConnectStart:A,onClickConnectEnd:D,connectionClickStartHandle:O,connectionMode:P,isValidConnection:z,lib:te,rfId:ne,nodeLookup:ce,connection:de}=C.getState();if(!E||!O&&!a)return;if(!O){A==null||A(U.nativeEvent,{nodeId:E,handleId:S,handleType:t}),C.setState({connectionClickStartHandle:{nodeId:E,type:t,id:S}});return}const fe=sg(U.target),q=i||z,{connection:se,isValid:he}=qu.isValid(U.nativeEvent,{handle:{nodeId:E,id:S,type:t},connectionMode:P,fromNodeId:O.nodeId,fromHandleId:O.id||null,fromType:O.type,isValidConnection:q,flowId:ne,doc:fe,lib:te,nodeLookup:ce});he&&se&&X(se);const we=structuredClone(de);delete we.inProgress,we.toPosition=we.toHandle?we.toHandle.position:null,D==null||D(U,we),C.setState({connectionClickStartHandle:null})};return x.jsx("div",{"data-handleid":S,"data-nodeid":E,"data-handlepos":r,"data-id":`${M}-${E}-${S}-${t}`,className:Ye(["react-flow__handle",`react-flow__handle-${r}`,"nodrag",k,g,{source:!j,target:j,connectable:l,connectablestart:a,connectableend:u,clickconnecting:B,connectingfrom:$,connectingto:L,valid:J,connectionindicator:l&&(!Q||Y)&&(Q||ee?u:a)}]),onMouseDown:W,onTouchStart:W,onClick:T?N:void 0,ref:w,...m,children:h})}const co=R.memo(Tg($_));function O_({data:t,isConnectable:r,sourcePosition:i=_e.Bottom}){return x.jsxs(x.Fragment,{children:[t==null?void 0:t.label,x.jsx(co,{type:"source",position:i,isConnectable:r})]})}function F_({data:t,isConnectable:r,targetPosition:i=_e.Top,sourcePosition:l=_e.Bottom}){return x.jsxs(x.Fragment,{children:[x.jsx(co,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label,x.jsx(co,{type:"source",position:l,isConnectable:r})]})}function H_(){return null}function V_({data:t,isConnectable:r,targetPosition:i=_e.Top}){return x.jsxs(x.Fragment,{children:[x.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}},Gp={input:O_,default:F_,output:V_,group:H_};function B_(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 U_=t=>{const{width:r,height:i,x:l,y:a}=Si(t.nodeLookup,{filter:u=>!!u.selected});return{width:Wt(r)?r:null,height:Wt(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 W_({onSelectionContextMenu:t,noPanClassName:r,disableKeyboardA11y:i}){const l=De(),{width:a,height:u,transformString:c,userSelectionActive:d}=Te(U_,Ve),h=Lg(),g=R.useRef(null);R.useEffect(()=>{var w;i||(w=g.current)==null||w.focus({preventScroll:!0})},[i]);const y=!d&&a!==null&&u!==null;if(zg({nodeRef:g,disabled:!y}),!y)return null;const v=t?w=>{const S=l.getState().nodes.filter(j=>j.selected);t(w,S)}:void 0,m=w=>{Object.prototype.hasOwnProperty.call(gl,w.key)&&(w.preventDefault(),h({direction:gl[w.key],factor:w.shiftKey?4:1}))};return x.jsx("div",{className:Ye(["react-flow__nodesselection","react-flow__container",r]),style:{transform:c},children:x.jsx("div",{ref:g,className:"react-flow__nodesselection-rect",onContextMenu:v,tabIndex:i?void 0:-1,onKeyDown:i?void 0:m,style:{width:a,height:u}})})}const qp=typeof window<"u"?window:void 0,Y_=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:h,selectionKeyCode:g,selectionOnDrag:y,selectionMode:v,onSelectionStart:m,onSelectionEnd:w,multiSelectionKeyCode:S,panActivationKeyCode:j,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:T,zoomOnPinch:k,panOnScroll:M,panOnScrollSpeed:$,panOnScrollMode:L,zoomOnDoubleClick:B,panOnDrag:Y,autoPanOnSelection:Q,defaultViewport:ee,translateExtent:J,minZoom:X,maxZoom:W,preventScrolling:N,onSelectionContextMenu:H,noWheelClassName:F,noPanClassName:U,disableKeyboardA11y:A,onViewportChange:D,isControlledViewport:O}){const{nodesSelectionActive:P,userSelectionActive:z}=Te(Y_,Ve),te=yi(g,{target:qp}),ne=yi(j,{target:qp}),ce=ne||Y,de=ne||M,fe=y&&ce!==!0,q=te||z||fe;return k_({deleteKeyCode:h,multiSelectionKeyCode:S}),x.jsx(C_,{onPaneContextMenu:u,elementsSelectable:E,zoomOnScroll:T,zoomOnPinch:k,panOnScroll:de,panActivationKeyPressed:ne,panOnScrollSpeed:$,panOnScrollMode:L,zoomOnDoubleClick:B,panOnDrag:!te&&ce,defaultViewport:ee,translateExtent:J,minZoom:X,maxZoom:W,zoomActivationKeyCode:C,preventScrolling:N,noWheelClassName:F,noPanClassName:U,onViewportChange:D,isControlledViewport:O,paneClickDistance:d,selectionOnDrag:fe,children:x.jsxs(T_,{onSelectionStart:m,onSelectionEnd:w,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:a,onPaneContextMenu:u,onPaneScroll:c,panOnDrag:ce,autoPanOnSelection:Q,isSelecting:!!q,selectionMode:v,selectionKeyPressed:te,paneClickDistance:d,selectionOnDrag:fe,children:[t,P&&x.jsx(W_,{onSelectionContextMenu:H,noPanClassName:U,disableKeyboardA11y:A})]})})}bg.displayName="FlowRenderer";const X_=R.memo(bg),K_=t=>r=>t?uc(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 Q_(t){return Te(R.useCallback(K_(t),[t]),Ve)}const G_=t=>t.updateNodeInternals;function q_(){const t=Te(G_),[r]=R.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 R.useEffect(()=>()=>{r==null||r.disconnect()},[r]),r}function Z_({node:t,nodeType:r,hasDimensions:i,resizeObserver:l}){const a=De(),u=R.useRef(null),c=R.useRef(null),d=R.useRef(t.sourcePosition),h=R.useRef(t.targetPosition),g=R.useRef(r),y=i&&!!t.internals.handleBounds;return R.useEffect(()=>{u.current&&!t.hidden&&(!y||c.current!==u.current)&&(c.current&&(l==null||l.unobserve(c.current)),l==null||l.observe(u.current),c.current=u.current)},[y,t.hidden]),R.useEffect(()=>()=>{c.current&&(l==null||l.unobserve(c.current),c.current=null)},[]),R.useEffect(()=>{if(u.current){const v=g.current!==r,m=d.current!==t.sourcePosition,w=h.current!==t.targetPosition;(v||m||w)&&(g.current=r,d.current=t.sourcePosition,h.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 J_({id:t,onClick:r,onMouseEnter:i,onMouseMove:l,onMouseLeave:a,onContextMenu:u,onDoubleClick:c,nodesDraggable:d,elementsSelectable:h,nodesConnectable:g,nodesFocusable:y,resizeObserver:v,noDragClassName:m,noPanClassName:w,disableKeyboardA11y:S,rfId:j,nodeTypes:C,nodeClickDistance:E,onError:T}){const{node:k,internals:M,isParent:$}=Te(q=>{const se=q.nodeLookup.get(t),he=q.parentLookup.has(t);return{node:se,internals:se.internals,isParent:he}},Ve);let L=k.type||"default",B=(C==null?void 0:C[L])||Gp[L];B===void 0&&(T==null||T("003",Xt.error003(L)),L="default",B=(C==null?void 0:C.default)||Gp.default);const Y=!!(k.draggable||d&&typeof k.draggable>"u"),Q=!!(k.selectable||h&&typeof k.selectable>"u"),ee=!!(k.connectable||g&&typeof k.connectable>"u"),J=!!(k.focusable||y&&typeof k.focusable>"u"),X=De(),W=rg(k),N=Z_({node:k,nodeType:L,hasDimensions:W,resizeObserver:v}),H=zg({nodeRef:N,disabled:k.hidden||!Y,noDragClassName:m,handleSelector:k.dragHandle,nodeId:t,isSelectable:Q,nodeClickDistance:E}),F=Lg();if(k.hidden)return null;const U=Qt(k),A=B_(k),D=Q||Y||r||i||l||a,O=i?q=>i(q,{...M.userNode}):void 0,P=l?q=>l(q,{...M.userNode}):void 0,z=a?q=>a(q,{...M.userNode}):void 0,te=u?q=>u(q,{...M.userNode}):void 0,ne=c?q=>c(q,{...M.userNode}):void 0,ce=q=>{const{selectNodesOnDrag:se,nodeDragThreshold:he}=X.getState();Q&&(!se||!Y||he>0)&&Zu({id:t,store:X,nodeRef:N}),r&&r(q,{...M.userNode})},de=q=>{if(!(lg(q.nativeEvent)||S)){if(Kh.includes(q.key)&&Q){const se=q.key==="Escape";Zu({id:t,store:X,unselect:se,nodeRef:N})}else if(Y&&k.selected&&Object.prototype.hasOwnProperty.call(gl,q.key)){q.preventDefault();const{ariaLabelConfig:se}=X.getState();X.setState({ariaLiveMessage:se["node.a11yDescription.ariaLiveMessage"]({direction:q.key.replace("Arrow","").toLowerCase(),x:~~M.positionAbsolute.x,y:~~M.positionAbsolute.y})}),F({direction:gl[q.key],factor:q.shiftKey?4:1})}}},fe=()=>{var ie;if(S||!((ie=N.current)!=null&&ie.matches(":focus-visible")))return;const{transform:q,width:se,height:he,autoPanOnNodeFocus:we,setCenter:xe}=X.getState();if(!we)return;uc(new Map([[t,k]]),{x:0,y:0,width:se,height:he},q,!0).length>0||xe(k.position.x+U.width/2,k.position.y+U.height/2,{zoom:q[2]})};return x.jsx("div",{className:Ye(["react-flow__node",`react-flow__node-${L}`,{[w]:Y},k.className,{selected:k.selected,selectable:Q,parent:$,draggable:Y,dragging:H}]),ref:N,style:{zIndex:M.z,transform:`translate(${M.positionAbsolute.x}px,${M.positionAbsolute.y}px)`,pointerEvents:D?"all":"none",visibility:W?"visible":"hidden",...k.style,...A},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:O,onMouseMove:P,onMouseLeave:z,onContextMenu:te,onClick:ce,onDoubleClick:ne,onKeyDown:J?de:void 0,tabIndex:J?0:void 0,onFocus:J?fe:void 0,role:k.ariaRole??(J?"group":void 0),"aria-roledescription":"node","aria-describedby":S?void 0:`${Cg}-${j}`,"aria-label":k.ariaLabel,...k.domAttributes,children:x.jsx(R_,{value:t,children:x.jsx(B,{id:t,data:k.data,type:L,positionAbsoluteX:M.positionAbsolute.x,positionAbsoluteY:M.positionAbsolute.y,selected:k.selected??!1,selectable:Q,draggable:Y,deletable:k.deletable??!0,isConnectable:ee,sourcePosition:k.sourcePosition,targetPosition:k.targetPosition,dragging:H,dragHandle:k.dragHandle,zIndex:M.z,parentId:k.parentId,...U})})})}var eS=R.memo(J_);const tS=t=>({nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,onError:t.onError});function $g(t){const{nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,onError:a}=Te(tS,Ve),u=Q_(t.onlyRenderVisibleElements),c=q_();return x.jsx("div",{className:"react-flow__nodes",style:Cl,children:u.map(d=>x.jsx(eS,{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))})}$g.displayName="NodeRenderer";const nS=R.memo($g);function rS(t){return Te(R.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&&Gw({sourceNode:u,targetNode:c,width:i.width,height:i.height,transform:i.transform})&&l.push(a.id)}return l},[t]),Ve)}const oS=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t}};return x.jsx("polyline",{className:"arrow",style:i,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},iS=({color:t="none",strokeWidth:r=1})=>{const i={strokeWidth:r,...t&&{stroke:t,fill:t}};return x.jsx("polyline",{className:"arrowclosed",style:i,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Zp={[dl.Arrow]:oS,[dl.ArrowClosed]:iS};function sS(t){const r=De();return R.useMemo(()=>{var a,u;return Object.prototype.hasOwnProperty.call(Zp,t)?Zp[t]:((u=(a=r.getState()).onError)==null||u.call(a,"009",Xt.error009(t)),null)},[t])}const lS=({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 h=sS(r);return h?x.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:x.jsx(h,{color:i,strokeWidth:c})}):null},Og=({defaultColor:t,rfId:r})=>{const i=Te(u=>u.edges),l=Te(u=>u.defaultEdgeOptions),a=R.useMemo(()=>o1(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?x.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:x.jsx("defs",{children:a.map(u=>x.jsx(lS,{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};Og.displayName="MarkerDefinitions";var aS=R.memo(Og);function Fg({x:t,y:r,label:i,labelStyle:l,labelShowBg:a=!0,labelBgStyle:u,labelBgPadding:c=[2,4],labelBgBorderRadius:d=2,children:h,className:g,...y}){const[v,m]=R.useState({x:1,y:0,width:0,height:0}),w=Ye(["react-flow__edge-textwrapper",g]),S=R.useRef(null);return R.useEffect(()=>{if(S.current){const j=S.current.getBBox();m({x:j.x,y:j.y,width:j.width,height:j.height})}},[i]),i?x.jsxs("g",{transform:`translate(${t-v.width/2} ${r-v.height/2})`,className:w,visibility:v.width?"visible":"hidden",...y,children:[a&&x.jsx("rect",{width:v.width+2*c[0],x:-c[0],y:-c[1],height:v.height+2*c[1],className:"react-flow__edge-textbg",style:u,rx:d,ry:d}),x.jsx("text",{className:"react-flow__edge-text",y:v.height/2,dy:"0.3em",ref:S,style:l,children:i}),h]}):null}Fg.displayName="EdgeText";const uS=R.memo(Fg);function Ml({path:t,labelX:r,labelY:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:h,interactionWidth:g=20,...y}){return x.jsxs(x.Fragment,{children:[x.jsx("path",{...y,d:t,fill:"none",className:Ye(["react-flow__edge-path",y.className])}),g?x.jsx("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:g,className:"react-flow__edge-interaction"}):null,l&&Wt(r)&&Wt(i)?x.jsx(uS,{x:r,y:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:h}):null]})}function Jp({pos:t,x1:r,y1:i,x2:l,y2:a}){return t===_e.Left||t===_e.Right?[.5*(r+l),i]:[r,.5*(i+a)]}function Hg({sourceX:t,sourceY:r,sourcePosition:i=_e.Bottom,targetX:l,targetY:a,targetPosition:u=_e.Top}){const[c,d]=Jp({pos:i,x1:t,y1:r,x2:l,y2:a}),[h,g]=Jp({pos:u,x1:l,y1:a,x2:t,y2:r}),[y,v,m,w]=ug({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:c,sourceControlY:d,targetControlX:h,targetControlY:g});return[`M${t},${r} C${c},${d} ${h},${g} ${l},${a}`,y,v,m,w]}function Vg(t){return R.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c,targetPosition:d,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:v,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:j,markerStart:C,interactionWidth:E})=>{const[T,k,M]=Hg({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d}),$=t.isInternal?void 0:r;return x.jsx(Ml,{id:$,path:T,labelX:k,labelY:M,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:v,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:j,markerStart:C,interactionWidth:E})})}const cS=Vg({isInternal:!1}),Bg=Vg({isInternal:!0});cS.displayName="SimpleBezierEdge";Bg.displayName="SimpleBezierEdgeInternal";function Ug(t){return R.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:v,style:m,sourcePosition:w=_e.Bottom,targetPosition:S=_e.Top,markerEnd:j,markerStart:C,pathOptions:E,interactionWidth:T})=>{const[k,M,$]=Ku({sourceX:i,sourceY:l,sourcePosition:w,targetX:a,targetY:u,targetPosition:S,borderRadius:E==null?void 0:E.borderRadius,offset:E==null?void 0:E.offset,stepPosition:E==null?void 0:E.stepPosition}),L=t.isInternal?void 0:r;return x.jsx(Ml,{id:L,path:k,labelX:M,labelY:$,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:v,style:m,markerEnd:j,markerStart:C,interactionWidth:T})})}const Wg=Ug({isInternal:!1}),Yg=Ug({isInternal:!0});Wg.displayName="SmoothStepEdge";Yg.displayName="SmoothStepEdgeInternal";function Xg(t){return R.memo(({id:r,...i})=>{var a;const l=t.isInternal?void 0:r;return x.jsx(Wg,{...i,id:l,pathOptions:R.useMemo(()=>{var u;return{borderRadius:0,offset:(u=i.pathOptions)==null?void 0:u.offset}},[(a=i.pathOptions)==null?void 0:a.offset])})})}const fS=Xg({isInternal:!1}),Kg=Xg({isInternal:!0});fS.displayName="StepEdge";Kg.displayName="StepEdgeInternal";function Qg(t){return R.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:v,style:m,markerEnd:w,markerStart:S,interactionWidth:j})=>{const[C,E,T]=dg({sourceX:i,sourceY:l,targetX:a,targetY:u}),k=t.isInternal?void 0:r;return x.jsx(Ml,{id:k,path:C,labelX:E,labelY:T,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:v,style:m,markerEnd:w,markerStart:S,interactionWidth:j})})}const dS=Qg({isInternal:!1}),Gg=Qg({isInternal:!0});dS.displayName="StraightEdge";Gg.displayName="StraightEdgeInternal";function qg(t){return R.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c=_e.Bottom,targetPosition:d=_e.Top,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:v,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:j,markerStart:C,pathOptions:E,interactionWidth:T})=>{const[k,M,$]=cg({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d,curvature:E==null?void 0:E.curvature}),L=t.isInternal?void 0:r;return x.jsx(Ml,{id:L,path:k,labelX:M,labelY:$,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:v,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:j,markerStart:C,interactionWidth:T})})}const pS=qg({isInternal:!1}),Zg=qg({isInternal:!0});pS.displayName="BezierEdge";Zg.displayName="BezierEdgeInternal";const eh={default:Zg,straight:Gg,step:Kg,smoothstep:Yg,simplebezier:Bg},th={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},hS=(t,r,i)=>i===_e.Left?t-r:i===_e.Right?t+r:t,gS=(t,r,i)=>i===_e.Top?t-r:i===_e.Bottom?t+r:t,nh="react-flow__edgeupdater";function rh({position:t,centerX:r,centerY:i,radius:l=10,onMouseDown:a,onMouseEnter:u,onMouseOut:c,type:d}){return x.jsx("circle",{onMouseDown:a,onMouseEnter:u,onMouseOut:c,className:Ye([nh,`${nh}-${d}`]),cx:hS(r,l,t),cy:gS(i,l,t),r:l,stroke:"transparent",fill:"transparent"})}function mS({isReconnectable:t,reconnectRadius:r,edge:i,sourceX:l,sourceY:a,targetX:u,targetY:c,sourcePosition:d,targetPosition:h,onReconnect:g,onReconnectStart:y,onReconnectEnd:v,setReconnecting:m,setUpdateHover:w}){const S=De(),j=(M,$)=>{if(M.button!==0)return;const{autoPanOnConnect:L,domNode:B,connectionMode:Y,connectionRadius:Q,lib:ee,onConnectStart:J,cancelConnection:X,nodeLookup:W,rfId:N,panBy:H,updateConnection:F}=S.getState(),U=$.type==="target",A=(P,z)=>{m(!1),v==null||v(P,i,$.type,z)},D=P=>g==null?void 0:g(i,P),O=(P,z)=>{m(!0),y==null||y(M,i,$.type),J==null||J(P,z)};qu.onPointerDown(M.nativeEvent,{autoPanOnConnect:L,connectionMode:Y,connectionRadius:Q,domNode:B,handleId:$.id,nodeId:$.nodeId,nodeLookup:W,isTarget:U,edgeUpdaterType:$.type,lib:ee,flowId:N,cancelConnection:X,panBy:H,isValidConnection:(...P)=>{var z,te;return((te=(z=S.getState()).isValidConnection)==null?void 0:te.call(z,...P))??!0},onConnect:D,onConnectStart:O,onConnectEnd:(...P)=>{var z,te;return(te=(z=S.getState()).onConnectEnd)==null?void 0:te.call(z,...P)},onReconnectEnd:A,updateConnection:F,getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,dragThreshold:S.getState().connectionDragThreshold,handleDomNode:M.currentTarget})},C=M=>j(M,{nodeId:i.target,id:i.targetHandle??null,type:"target"}),E=M=>j(M,{nodeId:i.source,id:i.sourceHandle??null,type:"source"}),T=()=>w(!0),k=()=>w(!1);return x.jsxs(x.Fragment,{children:[(t===!0||t==="source")&&x.jsx(rh,{position:d,centerX:l,centerY:a,radius:r,onMouseDown:C,onMouseEnter:T,onMouseOut:k,type:"source"}),(t===!0||t==="target")&&x.jsx(rh,{position:h,centerX:u,centerY:c,radius:r,onMouseDown:E,onMouseEnter:T,onMouseOut:k,type:"target"})]})}function yS({id:t,edgesFocusable:r,edgesReconnectable:i,elementsSelectable:l,onClick:a,onDoubleClick:u,onContextMenu:c,onMouseEnter:d,onMouseMove:h,onMouseLeave:g,reconnectRadius:y,onReconnect:v,onReconnectStart:m,onReconnectEnd:w,rfId:S,edgeTypes:j,noPanClassName:C,onError:E,disableKeyboardA11y:T}){let k=Te(xe=>xe.edgeLookup.get(t));const M=Te(xe=>xe.defaultEdgeOptions);k=M?{...M,...k}:k;let $=k.type||"default",L=(j==null?void 0:j[$])||eh[$];L===void 0&&(E==null||E("011",Xt.error011($)),$="default",L=(j==null?void 0:j.default)||eh.default);const B=!!(k.focusable||r&&typeof k.focusable>"u"),Y=typeof v<"u"&&(k.reconnectable||i&&typeof k.reconnectable>"u"),Q=!!(k.selectable||l&&typeof k.selectable>"u"),ee=R.useRef(null),[J,X]=R.useState(!1),[W,N]=R.useState(!1),H=De(),{zIndex:F=k.zIndex,sourceX:U,sourceY:A,targetX:D,targetY:O,sourcePosition:P,targetPosition:z}=Te(R.useCallback(xe=>{const Se=xe.nodeLookup.get(k.source),ie=xe.nodeLookup.get(k.target);if(!Se||!ie)return th;const ae=r1({id:t,sourceNode:Se,targetNode:ie,sourceHandle:k.sourceHandle||null,targetHandle:k.targetHandle||null,connectionMode:xe.connectionMode,onError:E}),ke=Qw({selected:k.selected,zIndex:k.zIndex,sourceNode:Se,targetNode:ie,elevateOnSelect:xe.elevateEdgesOnSelect,zIndexMode:xe.zIndexMode});return{...ae||th,zIndex:ke}},[k.source,k.target,k.sourceHandle,k.targetHandle,k.selected,k.zIndex,E]),Ve),te=R.useMemo(()=>k.markerStart?`url('#${Qu(k.markerStart,S)}')`:void 0,[k.markerStart,S]),ne=R.useMemo(()=>k.markerEnd?`url('#${Qu(k.markerEnd,S)}')`:void 0,[k.markerEnd,S]);if(k.hidden||U===null||A===null||D===null||O===null)return null;const ce=xe=>{var ke;const{addSelectedEdges:Se,unselectNodesAndEdges:ie,multiSelectionActive:ae}=H.getState();Q&&(H.setState({nodesSelectionActive:!1}),k.selected&&ae?(ie({nodes:[],edges:[k]}),(ke=ee.current)==null||ke.blur()):Se([t])),a&&a(xe,k)},de=u?xe=>{u(xe,{...k})}:void 0,fe=c?xe=>{c(xe,{...k})}:void 0,q=d?xe=>{d(xe,{...k})}:void 0,se=h?xe=>{h(xe,{...k})}:void 0,he=g?xe=>{g(xe,{...k})}:void 0,we=xe=>{var Se;if(!T&&Kh.includes(xe.key)&&Q){const{unselectNodesAndEdges:ie,addSelectedEdges:ae}=H.getState();xe.key==="Escape"?((Se=ee.current)==null||Se.blur(),ie({edges:[k]})):ae([t])}};return x.jsx("svg",{style:{zIndex:F},children:x.jsxs("g",{className:Ye(["react-flow__edge",`react-flow__edge-${$}`,k.className,C,{selected:k.selected,animated:k.animated,inactive:!Q&&!a,updating:J,selectable:Q}]),onClick:ce,onDoubleClick:de,onContextMenu:fe,onMouseEnter:q,onMouseMove:se,onMouseLeave:he,onKeyDown:B?we:void 0,tabIndex:B?0:void 0,role:k.ariaRole??(B?"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":B?`${Mg}-${S}`:void 0,ref:ee,...k.domAttributes,children:[!W&&x.jsx(L,{id:t,source:k.source,target:k.target,type:k.type,selected:k.selected,animated:k.animated,selectable:Q,deletable:k.deletable??!0,label:k.label,labelStyle:k.labelStyle,labelShowBg:k.labelShowBg,labelBgStyle:k.labelBgStyle,labelBgPadding:k.labelBgPadding,labelBgBorderRadius:k.labelBgBorderRadius,sourceX:U,sourceY:A,targetX:D,targetY:O,sourcePosition:P,targetPosition:z,data:k.data,style:k.style,sourceHandleId:k.sourceHandle,targetHandleId:k.targetHandle,markerStart:te,markerEnd:ne,pathOptions:"pathOptions"in k?k.pathOptions:void 0,interactionWidth:k.interactionWidth}),Y&&x.jsx(mS,{edge:k,isReconnectable:Y,reconnectRadius:y,onReconnect:v,onReconnectStart:m,onReconnectEnd:w,sourceX:U,sourceY:A,targetX:D,targetY:O,sourcePosition:P,targetPosition:z,setUpdateHover:X,setReconnecting:N})]})})}var vS=R.memo(yS);const xS=t=>({edgesFocusable:t.edgesFocusable,edgesReconnectable:t.edgesReconnectable,elementsSelectable:t.elementsSelectable,connectionMode:t.connectionMode,onError:t.onError});function Jg({defaultMarkerColor:t,onlyRenderVisibleElements:r,rfId:i,edgeTypes:l,noPanClassName:a,onReconnect:u,onEdgeContextMenu:c,onEdgeMouseEnter:d,onEdgeMouseMove:h,onEdgeMouseLeave:g,onEdgeClick:y,reconnectRadius:v,onEdgeDoubleClick:m,onReconnectStart:w,onReconnectEnd:S,disableKeyboardA11y:j}){const{edgesFocusable:C,edgesReconnectable:E,elementsSelectable:T,onError:k}=Te(xS,Ve),M=rS(r);return x.jsxs("div",{className:"react-flow__edges",children:[x.jsx(aS,{defaultColor:t,rfId:i}),M.map($=>x.jsx(vS,{id:$,edgesFocusable:C,edgesReconnectable:E,elementsSelectable:T,noPanClassName:a,onReconnect:u,onContextMenu:c,onMouseEnter:d,onMouseMove:h,onMouseLeave:g,onClick:y,reconnectRadius:v,onDoubleClick:m,onReconnectStart:w,onReconnectEnd:S,rfId:i,onError:k,edgeTypes:l,disableKeyboardA11y:j},$))]})}Jg.displayName="EdgeRenderer";const wS=R.memo(Jg),oh=t=>`translate(${t[0]}px,${t[1]}px) scale(${t[2]})`;function _S({children:t}){const r=De(),i=R.useRef(null),[l]=R.useState(()=>r.getState().transform);return Ig(()=>{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=oh(c)))};return u(),r.subscribe(u)},[r]),x.jsx("div",{ref:i,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:oh(l)},children:t})}function SS(t){const r=Nl(),i=R.useRef(!1);R.useEffect(()=>{!i.current&&r.viewportInitialized&&t&&(setTimeout(()=>t(r),1),i.current=!0)},[t,r.viewportInitialized])}const kS=t=>{var r;return(r=t.panZoom)==null?void 0:r.syncViewport};function ES(t){const r=Te(kS),i=De();return R.useEffect(()=>{t&&(r==null||r(t),i.setState({transform:[t.x,t.y,t.zoom]}))},[t,r]),null}function NS(t){return t.connection.inProgress?{...t.connection,to:Ei(t.connection.to,t.transform)}:{...t.connection}}function CS(t){return NS}function MS(t){const r=CS();return Te(r,Ve)}const jS=t=>({nodesConnectable:t.nodesConnectable,isValid:t.connection.isValid,inProgress:t.connection.inProgress,width:t.width,height:t.height});function PS({containerStyle:t,style:r,type:i,component:l}){const{nodesConnectable:a,width:u,height:c,isValid:d,inProgress:h}=Te(jS,Ve);return!(u&&a&&h)?null:x.jsx("svg",{style:t,width:u,height:c,className:"react-flow__connectionline react-flow__container",children:x.jsx("g",{className:Ye(["react-flow__connection",ig(d)]),children:x.jsx(em,{style:r,type:i,CustomComponent:l,isValid:d})})})}const em=({style:t,type:r=Yn.Bezier,CustomComponent:i,isValid:l})=>{const{inProgress:a,from:u,fromNode:c,fromHandle:d,fromPosition:h,to:g,toNode:y,toHandle:v,toPosition:m,pointer:w}=MS();if(!a)return;if(i)return x.jsx(i,{connectionLineType:r,connectionLineStyle:t,fromNode:c,fromHandle:d,fromX:u.x,fromY:u.y,toX:g.x,toY:g.y,fromPosition:h,toPosition:m,connectionStatus:ig(l),toNode:y,toHandle:v,pointer:w});let S="";const j={sourceX:u.x,sourceY:u.y,sourcePosition:h,targetX:g.x,targetY:g.y,targetPosition:m};switch(r){case Yn.Bezier:[S]=cg(j);break;case Yn.SimpleBezier:[S]=Hg(j);break;case Yn.Step:[S]=Ku({...j,borderRadius:0});break;case Yn.SmoothStep:[S]=Ku(j);break;default:[S]=dg(j)}return x.jsx("path",{d:S,fill:"none",className:"react-flow__connection-path",style:t})};em.displayName="ConnectionLine";const TS={};function ih(t=TS){R.useRef(t),De(),R.useEffect(()=>{},[t])}function IS(){De(),R.useRef(!1),R.useEffect(()=>{},[])}function tm({nodeTypes:t,edgeTypes:r,onInit:i,onNodeClick:l,onEdgeClick:a,onNodeDoubleClick:u,onEdgeDoubleClick:c,onNodeMouseEnter:d,onNodeMouseMove:h,onNodeMouseLeave:g,onNodeContextMenu:y,onSelectionContextMenu:v,onSelectionStart:m,onSelectionEnd:w,connectionLineType:S,connectionLineStyle:j,connectionLineComponent:C,connectionLineContainerStyle:E,selectionKeyCode:T,selectionOnDrag:k,selectionMode:M,multiSelectionKeyCode:$,panActivationKeyCode:L,zoomActivationKeyCode:B,deleteKeyCode:Y,onlyRenderVisibleElements:Q,elementsSelectable:ee,defaultViewport:J,translateExtent:X,minZoom:W,maxZoom:N,preventScrolling:H,defaultMarkerColor:F,zoomOnScroll:U,zoomOnPinch:A,panOnScroll:D,panOnScrollSpeed:O,panOnScrollMode:P,zoomOnDoubleClick:z,panOnDrag:te,autoPanOnSelection:ne,onPaneClick:ce,onPaneMouseEnter:de,onPaneMouseMove:fe,onPaneMouseLeave:q,onPaneScroll:se,onPaneContextMenu:he,paneClickDistance:we,nodeClickDistance:xe,onEdgeContextMenu:Se,onEdgeMouseEnter:ie,onEdgeMouseMove:ae,onEdgeMouseLeave:ke,reconnectRadius:Me,onReconnect:Je,onReconnectStart:ct,onReconnectEnd:nt,noDragClassName:rt,noWheelClassName:ln,noPanClassName:Gt,disableKeyboardA11y:qt,nodeExtent:ft,rfId:jt,viewport:xt,onViewportChange:Pt,nodesDraggable:Er}){return ih(t),ih(r),IS(),SS(i),ES(xt),x.jsx(X_,{onPaneClick:ce,onPaneMouseEnter:de,onPaneMouseMove:fe,onPaneMouseLeave:q,onPaneContextMenu:he,onPaneScroll:se,paneClickDistance:we,deleteKeyCode:Y,selectionKeyCode:T,selectionOnDrag:k,selectionMode:M,onSelectionStart:m,onSelectionEnd:w,multiSelectionKeyCode:$,panActivationKeyCode:L,zoomActivationKeyCode:B,elementsSelectable:ee,zoomOnScroll:U,zoomOnPinch:A,zoomOnDoubleClick:z,panOnScroll:D,panOnScrollSpeed:O,panOnScrollMode:P,panOnDrag:te,autoPanOnSelection:ne,defaultViewport:J,translateExtent:X,minZoom:W,maxZoom:N,onSelectionContextMenu:v,preventScrolling:H,noDragClassName:rt,noWheelClassName:ln,noPanClassName:Gt,disableKeyboardA11y:qt,onViewportChange:Pt,isControlledViewport:!!xt,children:x.jsxs(_S,{children:[x.jsx(wS,{edgeTypes:r,onEdgeClick:a,onEdgeDoubleClick:c,onReconnect:Je,onReconnectStart:ct,onReconnectEnd:nt,onlyRenderVisibleElements:Q,onEdgeContextMenu:Se,onEdgeMouseEnter:ie,onEdgeMouseMove:ae,onEdgeMouseLeave:ke,reconnectRadius:Me,defaultMarkerColor:F,noPanClassName:Gt,disableKeyboardA11y:qt,rfId:jt}),x.jsx(PS,{style:j,type:S,component:C,containerStyle:E}),x.jsx("div",{className:"react-flow__edgelabel-renderer"}),x.jsx(nS,{nodeTypes:t,onNodeClick:l,onNodeDoubleClick:u,onNodeMouseEnter:d,onNodeMouseMove:h,onNodeMouseLeave:g,onNodeContextMenu:y,nodeClickDistance:xe,onlyRenderVisibleElements:Q,noPanClassName:Gt,noDragClassName:rt,disableKeyboardA11y:qt,nodeExtent:ft,rfId:jt,nodesDraggable:Er}),x.jsx("div",{className:"react-flow__viewport-portal"})]})})}tm.displayName="GraphView";const RS=R.memo(tm),zS=ng(),sh=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h=.5,maxZoom:g=2,nodeOrigin:y,nodeExtent:v,zIndexMode:m="basic"}={})=>{const w=new Map,S=new Map,j=new Map,C=new Map,E=l??r??[],T=i??t??[],k=y??[0,0],M=v??pi;gg(j,C,E);const{nodesInitialized:$}=Gu(T,w,S,{nodeOrigin:k,nodeExtent:M,zIndexMode:m});let L=[0,0,1];if(c&&a&&u){const B=Si(w,{filter:J=>!!((J.width||J.initialWidth)&&(J.height||J.initialHeight))}),{x:Y,y:Q,zoom:ee}=fc(B,a,u,h,g,(d==null?void 0:d.padding)??.1);L=[Y,Q,ee]}return{rfId:"1",width:a??0,height:u??0,transform:L,nodes:T,nodesInitialized:$,nodeLookup:w,parentLookup:S,edges:E,edgeLookup:C,connectionLookup:j,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:i!==void 0,hasDefaultEdges:l!==void 0,panZoom:null,minZoom:h,maxZoom:g,translateExtent:pi,nodeExtent:M,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:{...Gh},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:zS,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Qh,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}},LS=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h,maxZoom:g,nodeOrigin:y,nodeExtent:v,zIndexMode:m})=>Y1((w,S)=>{async function j(){const{nodeLookup:C,panZoom:E,fitViewOptions:T,fitViewResolver:k,width:M,height:$,minZoom:L,maxZoom:B}=S();E&&(await Vw({nodes:C,width:M,height:$,panZoom:E,minZoom:L,maxZoom:B},T),k==null||k.resolve(!0),w({fitViewResolver:null}))}return{...sh({nodes:t,edges:r,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h,maxZoom:g,nodeOrigin:y,nodeExtent:v,defaultNodes:i,defaultEdges:l,zIndexMode:m}),setNodes:C=>{const{nodeLookup:E,parentLookup:T,nodeOrigin:k,nodeExtent:M,elevateNodesOnSelect:$,fitViewQueued:L,zIndexMode:B,nodesSelectionActive:Y}=S(),{nodesInitialized:Q,hasSelectedNodes:ee}=Gu(C,E,T,{nodeOrigin:k,nodeExtent:M,elevateNodesOnSelect:$,checkEquality:!0,zIndexMode:B}),J=Y&ⅇL&&Q?(j(),w({nodes:C,nodesInitialized:Q,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:J})):w({nodes:C,nodesInitialized:Q,nodesSelectionActive:J})},setEdges:C=>{const{connectionLookup:E,edgeLookup:T}=S();gg(E,T,C),w({edges:C})},setDefaultNodesAndEdges:(C,E)=>{if(C){const{setNodes:T}=S();T(C),w({hasDefaultNodes:!0})}if(E){const{setEdges:T}=S();T(E),w({hasDefaultEdges:!0})}},updateNodeInternals:C=>{const{triggerNodeChanges:E,nodeLookup:T,parentLookup:k,domNode:M,nodeOrigin:$,nodeExtent:L,debug:B,fitViewQueued:Y,zIndexMode:Q}=S(),{changes:ee,updatedInternals:J}=f1(C,T,k,M,$,L,Q);J&&(l1(T,k,{nodeOrigin:$,nodeExtent:L,zIndexMode:Q}),Y?(j(),w({fitViewQueued:!1,fitViewOptions:void 0})):w({}),(ee==null?void 0:ee.length)>0&&(B&&console.log("React Flow: trigger node changes",ee),E==null||E(ee)))},updateNodePositions:(C,E=!1)=>{const T=[];let k=[];const{nodeLookup:M,triggerNodeChanges:$,connection:L,updateConnection:B,onNodesChangeMiddlewareMap:Y}=S();for(const[Q,ee]of C){const J=M.get(Q),X=!!(J!=null&&J.expandParent&&(J!=null&&J.parentId)&&(ee!=null&&ee.position)),W={id:Q,type:"position",position:X?{x:Math.max(0,ee.position.x),y:Math.max(0,ee.position.y)}:ee.position,dragging:E};if(J&&L.inProgress&&L.fromNode.id===J.id){const N=kr(J,L.fromHandle,_e.Left,!0);B({...L,from:N})}X&&J.parentId&&T.push({id:Q,parentId:J.parentId,rect:{...ee.internals.positionAbsolute,width:ee.measured.width??0,height:ee.measured.height??0}}),k.push(W)}if(T.length>0){const{parentLookup:Q,nodeOrigin:ee}=S(),J=yc(T,M,Q,ee);k.push(...J)}for(const Q of Y.values())k=Q(k);$(k)},triggerNodeChanges:C=>{const{onNodesChange:E,setNodes:T,nodes:k,hasDefaultNodes:M,debug:$}=S();if(C!=null&&C.length){if(M){const L=p_(C,k);T(L)}$&&console.log("React Flow: trigger node changes",C),E==null||E(C)}},triggerEdgeChanges:C=>{const{onEdgesChange:E,setEdges:T,edges:k,hasDefaultEdges:M,debug:$}=S();if(C!=null&&C.length){if(M){const L=h_(C,k);T(L)}$&&console.log("React Flow: trigger edge changes",C),E==null||E(C)}},addSelectedNodes:C=>{const{multiSelectionActive:E,edgeLookup:T,nodeLookup:k,triggerNodeChanges:M,triggerEdgeChanges:$}=S();if(E){const L=C.map(B=>gr(B,!0));M(L);return}M(to(k,new Set([...C]),!0)),$(to(T))},addSelectedEdges:C=>{const{multiSelectionActive:E,edgeLookup:T,nodeLookup:k,triggerNodeChanges:M,triggerEdgeChanges:$}=S();if(E){const L=C.map(B=>gr(B,!0));$(L);return}$(to(T,new Set([...C]))),M(to(k,new Set,!0))},unselectNodesAndEdges:({nodes:C,edges:E}={})=>{const{edges:T,nodes:k,nodeLookup:M,triggerNodeChanges:$,triggerEdgeChanges:L}=S(),B=C||k,Y=E||T,Q=[];for(const J of B){if(!J.selected)continue;const X=M.get(J.id);X&&(X.selected=!1),Q.push(gr(J.id,!1))}const ee=[];for(const J of Y)J.selected&&ee.push(gr(J.id,!1));$(Q),L(ee)},setMinZoom:C=>{const{panZoom:E,maxZoom:T}=S();E==null||E.setScaleExtent([C,T]),w({minZoom:C})},setMaxZoom:C=>{const{panZoom:E,minZoom:T}=S();E==null||E.setScaleExtent([T,C]),w({maxZoom:C})},setTranslateExtent:C=>{var E;(E=S().panZoom)==null||E.setTranslateExtent(C),w({translateExtent:C})},resetSelectedElements:()=>{const{edges:C,nodes:E,triggerNodeChanges:T,triggerEdgeChanges:k,elementsSelectable:M}=S();if(!M)return;const $=E.reduce((B,Y)=>Y.selected?[...B,gr(Y.id,!1)]:B,[]),L=C.reduce((B,Y)=>Y.selected?[...B,gr(Y.id,!1)]:B,[]);T($),k(L)},setNodeExtent:C=>{const{nodes:E,nodeLookup:T,parentLookup:k,nodeOrigin:M,elevateNodesOnSelect:$,nodeExtent:L,zIndexMode:B}=S();C[0][0]===L[0][0]&&C[0][1]===L[0][1]&&C[1][0]===L[1][0]&&C[1][1]===L[1][1]||(Gu(E,T,k,{nodeOrigin:M,nodeExtent:C,elevateNodesOnSelect:$,checkEquality:!1,zIndexMode:B}),w({nodeExtent:C}))},panBy:C=>{const{transform:E,width:T,height:k,panZoom:M,translateExtent:$}=S();return d1({delta:C,panZoom:M,transform:E,translateExtent:$,width:T,height:k})},setCenter:async(C,E,T)=>{const{width:k,height:M,maxZoom:$,panZoom:L}=S();if(!L)return!1;const B=typeof(T==null?void 0:T.zoom)<"u"?T.zoom:$;return await L.setViewport({x:k/2-C*B,y:M/2-E*B,zoom:B},{duration:T==null?void 0:T.duration,ease:T==null?void 0:T.ease,interpolate:T==null?void 0:T.interpolate}),!0},cancelConnection:()=>{w({connection:{...Gh}})},updateConnection:C=>{w({connection:C})},reset:()=>w({...sh()})}},Object.is);function nm({initialNodes:t,initialEdges:r,defaultNodes:i,defaultEdges:l,initialWidth:a,initialHeight:u,initialMinZoom:c,initialMaxZoom:d,initialFitViewOptions:h,fitView:g,nodeOrigin:y,nodeExtent:v,zIndexMode:m,children:w}){const[S]=R.useState(()=>LS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:g,minZoom:c,maxZoom:d,fitViewOptions:h,nodeOrigin:y,nodeExtent:v,zIndexMode:m}));return x.jsx(X1,{value:S,children:x.jsx(x_,{children:x.jsx(L_,{children:w})})})}function AS({children:t,nodes:r,edges:i,defaultNodes:l,defaultEdges:a,width:u,height:c,fitView:d,fitViewOptions:h,minZoom:g,maxZoom:y,nodeOrigin:v,nodeExtent:m,zIndexMode:w}){return R.useContext(El)?x.jsx(x.Fragment,{children:t}):x.jsx(nm,{initialNodes:r,initialEdges:i,defaultNodes:l,defaultEdges:a,initialWidth:u,initialHeight:c,fitView:d,initialFitViewOptions:h,initialMinZoom:g,initialMaxZoom:y,nodeOrigin:v,nodeExtent:m,zIndexMode:w,children:t})}const DS={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function bS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,className:a,nodeTypes:u,edgeTypes:c,onNodeClick:d,onEdgeClick:h,onInit:g,onMove:y,onMoveStart:v,onMoveEnd:m,onConnect:w,onConnectStart:S,onConnectEnd:j,onClickConnectStart:C,onClickConnectEnd:E,onNodeMouseEnter:T,onNodeMouseMove:k,onNodeMouseLeave:M,onNodeContextMenu:$,onNodeDoubleClick:L,onNodeDragStart:B,onNodeDrag:Y,onNodeDragStop:Q,onNodesDelete:ee,onEdgesDelete:J,onDelete:X,onSelectionChange:W,onSelectionDragStart:N,onSelectionDrag:H,onSelectionDragStop:F,onSelectionContextMenu:U,onSelectionStart:A,onSelectionEnd:D,onBeforeDelete:O,connectionMode:P,connectionLineType:z=Yn.Bezier,connectionLineStyle:te,connectionLineComponent:ne,connectionLineContainerStyle:ce,deleteKeyCode:de="Backspace",selectionKeyCode:fe="Shift",selectionOnDrag:q=!1,selectionMode:se=hi.Full,panActivationKeyCode:he="Space",multiSelectionKeyCode:we=mi()?"Meta":"Control",zoomActivationKeyCode:xe=mi()?"Meta":"Control",snapToGrid:Se,snapGrid:ie,onlyRenderVisibleElements:ae=!1,selectNodesOnDrag:ke,nodesDraggable:Me,autoPanOnNodeFocus:Je,nodesConnectable:ct,nodesFocusable:nt,nodeOrigin:rt=jg,edgesFocusable:ln,edgesReconnectable:Gt,elementsSelectable:qt=!0,defaultViewport:ft=s_,minZoom:jt=.5,maxZoom:xt=2,translateExtent:Pt=pi,preventScrolling:Er=!0,nodeExtent:an,defaultMarkerColor:Gn="#b1b1b7",zoomOnScroll:jl=!0,zoomOnPinch:Ci=!0,panOnScroll:Mi=!1,panOnScrollSpeed:Pl=.5,panOnScrollMode:fo=vr.Free,zoomOnDoubleClick:po=!0,panOnDrag:ho=!0,onPaneClick:go,onPaneMouseEnter:mo,onPaneMouseMove:Sn,onPaneMouseLeave:kn,onPaneScroll:ji,onPaneContextMenu:Pi,paneClickDistance:Ti=1,nodeClickDistance:Ii=0,children:Ri,onReconnect:yo,onReconnectStart:zi,onReconnectEnd:qn,onEdgeContextMenu:vo,onEdgeDoubleClick:Zn,onEdgeMouseEnter:Tl,onEdgeMouseMove:Jn,onEdgeMouseLeave:Nr,reconnectRadius:Cr=10,onNodesChange:xo,onEdgesChange:Il,noDragClassName:Rl="nodrag",noWheelClassName:zl="nowheel",noPanClassName:Zt="nopan",fitView:wo,fitViewOptions:_o,connectOnClick:Ll,attributionPosition:Li,proOptions:Ai,defaultEdgeOptions:Di,elevateNodesOnSelect:bi=!0,elevateEdgesOnSelect:Al=!1,disableKeyboardA11y:$i=!1,autoPanOnConnect:Oe,autoPanOnNodeDrag:Dl,autoPanOnSelection:So=!0,autoPanSpeed:Oi,connectionRadius:Mr,isValidConnection:bl,onError:Fi,style:jr,id:wt,nodeDragThreshold:$l,connectionDragThreshold:_t,viewport:Ol,onViewportChange:Fl,width:Hl,height:Pr,colorMode:Tr="light",debug:er,onScroll:un,ariaLabelConfig:Vl,zIndexMode:Hi="basic",...ko},Vi){const tr=wt||"1",nr=c_(Tr),Bl=R.useCallback(Ir=>{Ir.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),un==null||un(Ir)},[un]);return x.jsx("div",{"data-testid":"rf__wrapper",...ko,onScroll:Bl,style:{...jr,...DS},ref:Vi,className:Ye(["react-flow",a,nr]),id:wt,role:"application",children:x.jsxs(AS,{nodes:t,edges:r,width:Hl,height:Pr,fitView:wo,fitViewOptions:_o,minZoom:jt,maxZoom:xt,nodeOrigin:rt,nodeExtent:an,zIndexMode:Hi,children:[x.jsx(u_,{nodes:t,edges:r,defaultNodes:i,defaultEdges:l,onConnect:w,onConnectStart:S,onConnectEnd:j,onClickConnectStart:C,onClickConnectEnd:E,nodesDraggable:Me,autoPanOnNodeFocus:Je,nodesConnectable:ct,nodesFocusable:nt,edgesFocusable:ln,edgesReconnectable:Gt,elementsSelectable:qt,elevateNodesOnSelect:bi,elevateEdgesOnSelect:Al,minZoom:jt,maxZoom:xt,nodeExtent:an,onNodesChange:xo,onEdgesChange:Il,snapToGrid:Se,snapGrid:ie,connectionMode:P,translateExtent:Pt,connectOnClick:Ll,defaultEdgeOptions:Di,fitView:wo,fitViewOptions:_o,onNodesDelete:ee,onEdgesDelete:J,onDelete:X,onNodeDragStart:B,onNodeDrag:Y,onNodeDragStop:Q,onSelectionDrag:H,onSelectionDragStart:N,onSelectionDragStop:F,onMove:y,onMoveStart:v,onMoveEnd:m,noPanClassName:Zt,nodeOrigin:rt,rfId:tr,autoPanOnConnect:Oe,autoPanOnNodeDrag:Dl,autoPanSpeed:Oi,onError:Fi,connectionRadius:Mr,isValidConnection:bl,selectNodesOnDrag:ke,nodeDragThreshold:$l,connectionDragThreshold:_t,onBeforeDelete:O,debug:er,ariaLabelConfig:Vl,zIndexMode:Hi}),x.jsx(RS,{onInit:g,onNodeClick:d,onEdgeClick:h,onNodeMouseEnter:T,onNodeMouseMove:k,onNodeMouseLeave:M,onNodeContextMenu:$,onNodeDoubleClick:L,nodeTypes:u,edgeTypes:c,connectionLineType:z,connectionLineStyle:te,connectionLineComponent:ne,connectionLineContainerStyle:ce,selectionKeyCode:fe,selectionOnDrag:q,selectionMode:se,deleteKeyCode:de,multiSelectionKeyCode:we,panActivationKeyCode:he,zoomActivationKeyCode:xe,onlyRenderVisibleElements:ae,defaultViewport:ft,translateExtent:Pt,minZoom:jt,maxZoom:xt,preventScrolling:Er,zoomOnScroll:jl,zoomOnPinch:Ci,zoomOnDoubleClick:po,panOnScroll:Mi,panOnScrollSpeed:Pl,panOnScrollMode:fo,panOnDrag:ho,autoPanOnSelection:So,onPaneClick:go,onPaneMouseEnter:mo,onPaneMouseMove:Sn,onPaneMouseLeave:kn,onPaneScroll:ji,onPaneContextMenu:Pi,paneClickDistance:Ti,nodeClickDistance:Ii,onSelectionContextMenu:U,onSelectionStart:A,onSelectionEnd:D,onReconnect:yo,onReconnectStart:zi,onReconnectEnd:qn,onEdgeContextMenu:vo,onEdgeDoubleClick:Zn,onEdgeMouseEnter:Tl,onEdgeMouseMove:Jn,onEdgeMouseLeave:Nr,reconnectRadius:Cr,defaultMarkerColor:Gn,noDragClassName:Rl,noWheelClassName:zl,noPanClassName:Zt,rfId:tr,disableKeyboardA11y:$i,nodeExtent:an,viewport:Ol,onViewportChange:Fl,nodesDraggable:Me}),x.jsx(i_,{onSelectionChange:W}),Ri,x.jsx(e_,{proOptions:Ai,position:Li}),x.jsx(J1,{rfId:tr,disableKeyboardA11y:$i})]})})}var $S=Tg(bS);function OS({dimensions:t,lineWidth:r,variant:i,className:l}){return x.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 FS({radius:t,className:r}){return x.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 HS={[Xn.Dots]:1,[Xn.Lines]:1,[Xn.Cross]:6},VS=t=>({transform:t.transform,patternId:`pattern-${t.rfId}`});function rm({id:t,variant:r=Xn.Dots,gap:i=20,size:l,lineWidth:a=1,offset:u=0,color:c,bgColor:d,style:h,className:g,patternClassName:y}){const v=R.useRef(null),{transform:m,patternId:w}=Te(VS,Ve),S=l||HS[r],j=r===Xn.Dots,C=r===Xn.Cross,E=Array.isArray(i)?i:[i,i],T=[E[0]*m[2]||1,E[1]*m[2]||1],k=S*m[2],M=Array.isArray(u)?u:[u,u],$=C?[k,k]:T,L=[M[0]*m[2]+$[0]/2,M[1]*m[2]+$[1]/2],B=`${w}${t||""}`;return x.jsxs("svg",{className:Ye(["react-flow__background",g]),style:{...h,...Cl,"--xy-background-color-props":d,"--xy-background-pattern-color-props":c},ref:v,"data-testid":"rf__background",children:[x.jsx("pattern",{id:B,x:m[0]%T[0],y:m[1]%T[1],width:T[0],height:T[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${L[0]},-${L[1]})`,children:j?x.jsx(FS,{radius:k/2,className:y}):x.jsx(OS,{dimensions:$,lineWidth:a,variant:r,className:y})}),x.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${B})`})]})}rm.displayName="Background";const BS=R.memo(rm);function US(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:x.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function WS(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:x.jsx("path",{d:"M0 0h32v4.2H0z"})})}function YS(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:x.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 XS(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:x.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 KS(){return x.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:x.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 x.jsx("button",{type:"button",className:Ye(["react-flow__controls-button",r]),...i,children:t})}const QS=t=>({isInteractive:t.nodesDraggable||t.nodesConnectable||t.elementsSelectable,minZoomReached:t.transform[2]<=t.minZoom,maxZoomReached:t.transform[2]>=t.maxZoom,ariaLabelConfig:t.ariaLabelConfig});function om({style:t,showZoom:r=!0,showFitView:i=!0,showInteractive:l=!0,fitViewOptions:a,onZoomIn:u,onZoomOut:c,onFitView:d,onInteractiveChange:h,className:g,children:y,position:v="bottom-left",orientation:m="vertical","aria-label":w}){const S=De(),{isInteractive:j,minZoomReached:C,maxZoomReached:E,ariaLabelConfig:T}=Te(QS,Ve),{zoomIn:k,zoomOut:M,fitView:$}=Nl(),L=()=>{k(),u==null||u()},B=()=>{M(),c==null||c()},Y=()=>{$(a),d==null||d()},Q=()=>{S.setState({nodesDraggable:!j,nodesConnectable:!j,elementsSelectable:!j}),h==null||h(!j)},ee=m==="horizontal"?"horizontal":"vertical";return x.jsxs(Ni,{className:Ye(["react-flow__controls",ee,g]),position:v,style:t,"data-testid":"rf__controls","aria-label":w??T["controls.ariaLabel"],children:[r&&x.jsxs(x.Fragment,{children:[x.jsx(Zs,{onClick:L,className:"react-flow__controls-zoomin",title:T["controls.zoomIn.ariaLabel"],"aria-label":T["controls.zoomIn.ariaLabel"],disabled:E,children:x.jsx(US,{})}),x.jsx(Zs,{onClick:B,className:"react-flow__controls-zoomout",title:T["controls.zoomOut.ariaLabel"],"aria-label":T["controls.zoomOut.ariaLabel"],disabled:C,children:x.jsx(WS,{})})]}),i&&x.jsx(Zs,{className:"react-flow__controls-fitview",onClick:Y,title:T["controls.fitView.ariaLabel"],"aria-label":T["controls.fitView.ariaLabel"],children:x.jsx(YS,{})}),l&&x.jsx(Zs,{className:"react-flow__controls-interactive",onClick:Q,title:T["controls.interactive.ariaLabel"],"aria-label":T["controls.interactive.ariaLabel"],children:j?x.jsx(KS,{}):x.jsx(XS,{})}),y]})}om.displayName="Controls";const GS=R.memo(om);function qS({id:t,x:r,y:i,width:l,height:a,style:u,color:c,strokeColor:d,strokeWidth:h,className:g,borderRadius:y,shapeRendering:v,selected:m,onClick:w}){const{background:S,backgroundColor:j}=u||{},C=c||S||j;return x.jsx("rect",{className:Ye(["react-flow__minimap-node",{selected:m},g]),x:r,y:i,rx:y,ry:y,width:l,height:a,style:{fill:C,stroke:d,strokeWidth:h},shapeRendering:v,onClick:w?E=>w(E,t):void 0})}const ZS=R.memo(qS),JS=t=>t.nodes.map(r=>r.id),bu=t=>t instanceof Function?t:()=>t;function ek({nodeStrokeColor:t,nodeColor:r,nodeClassName:i="",nodeBorderRadius:l=5,nodeStrokeWidth:a,nodeComponent:u=ZS,onClick:c}){const d=Te(JS,Ve),h=bu(r),g=bu(t),y=bu(i),v=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return x.jsx(x.Fragment,{children:d.map(m=>x.jsx(nk,{id:m,nodeColorFunc:h,nodeStrokeColorFunc:g,nodeClassNameFunc:y,nodeBorderRadius:l,nodeStrokeWidth:a,NodeComponent:u,onClick:c,shapeRendering:v},m))})}function tk({id:t,nodeColorFunc:r,nodeStrokeColorFunc:i,nodeClassNameFunc:l,nodeBorderRadius:a,nodeStrokeWidth:u,shapeRendering:c,NodeComponent:d,onClick:h}){const{node:g,x:y,y:v,width:m,height:w}=Te(S=>{const j=S.nodeLookup.get(t);if(!j)return{node:void 0,x:0,y:0,width:0,height:0};const C=j.internals.userNode,{x:E,y:T}=j.internals.positionAbsolute,{width:k,height:M}=Qt(C);return{node:C,x:E,y:T,width:k,height:M}},Ve);return!g||g.hidden||!rg(g)?null:x.jsx(d,{x:y,y:v,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:h,id:g.id})}const nk=R.memo(tk);var rk=R.memo(ek);const ok=200,ik=150,sk=t=>!t.hidden,lk=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?eg(Si(t.nodeLookup,{filter:sk}),r):r,rfId:t.rfId,panZoom:t.panZoom,translateExtent:t.translateExtent,flowWidth:t.width,flowHeight:t.height,ariaLabelConfig:t.ariaLabelConfig}},lh=(t,r)=>t.x===r.x&&t.y===r.y&&t.width===r.width&&t.height===r.height,ak=(t,r)=>lh(t.viewBB,r.viewBB)&&lh(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,uk="react-flow__minimap-desc";function im({style:t,className:r,nodeStrokeColor:i,nodeColor:l,nodeClassName:a="",nodeBorderRadius:u=5,nodeStrokeWidth:c,nodeComponent:d,bgColor:h,maskColor:g,maskStrokeColor:y,maskStrokeWidth:v,position:m="bottom-right",onClick:w,onNodeClick:S,pannable:j=!1,zoomable:C=!1,ariaLabel:E,inversePan:T,zoomStep:k=1,offsetScale:M=5}){const $=De(),L=R.useRef(null),{boundingRect:B,panZoom:Y,viewBB:Q,rfId:ee,translateExtent:J,flowWidth:X,flowHeight:W,ariaLabelConfig:N}=Te(lk,ak),H=(t==null?void 0:t.width)??ok,F=(t==null?void 0:t.height)??ik,U=B.width/H,A=B.height/F,D=Math.max(U,A),O=D*H,P=D*F,z=M*D,te=B.x-(O-B.width)/2-z,ne=B.y-(P-B.height)/2-z,ce=O+z*2,de=P+z*2,fe=`${uk}-${ee}`,q=R.useRef(0),se=R.useRef();q.current=D,R.useEffect(()=>{const ie=$.getState().panZoom;if(L.current&&ie)return se.current=_1({domNode:L.current,panZoom:ie,getTransform:()=>$.getState().transform,getViewScale:()=>q.current}),()=>{var ae;(ae=se.current)==null||ae.destroy()}},[Y]),R.useEffect(()=>{var ie;(ie=se.current)==null||ie.update({translateExtent:J,width:X,height:W,inversePan:T,pannable:j,zoomStep:k,zoomable:C})},[j,C,T,k,J,X,W]);const he=w?ie=>{var Me;const[ae,ke]=((Me=se.current)==null?void 0:Me.pointer(ie))||[0,0];w(ie,{x:ae,y:ke})}:void 0,we=R.useCallback((ie,ae)=>{const ke=$.getState().nodeLookup.get(ae).internals.userNode;S==null||S(ie,ke)},[S]),xe=S?we:void 0,Se=E??N["minimap.ariaLabel"];return x.jsx(Ni,{position:m,style:{...t,"--xy-minimap-background-color-props":typeof h=="string"?h:void 0,"--xy-minimap-mask-background-color-props":typeof g=="string"?g:void 0,"--xy-minimap-mask-stroke-color-props":typeof y=="string"?y:void 0,"--xy-minimap-mask-stroke-width-props":typeof v=="number"?v*D: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:x.jsxs("svg",{width:H,height:F,viewBox:`${te} ${ne} ${ce} ${de}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":fe,ref:L,onClick:he,children:[Se&&x.jsx("title",{id:fe,children:Se}),x.jsx(rk,{onClick:xe,nodeColor:l,nodeStrokeColor:i,nodeBorderRadius:u,nodeClassName:a,nodeStrokeWidth:c,nodeComponent:d}),x.jsx("path",{className:"react-flow__minimap-mask",d:`M${te-z},${ne-z}h${ce+z*2}v${de+z*2}h${-ce-z*2}z
+ M${Q.x},${Q.y}h${Q.width}v${Q.height}h${-Q.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}im.displayName="MiniMap";const ck=R.memo(im),fk=t=>r=>t?`${Math.max(1/r.transform[2],1)}`:void 0,dk={[uo.Line]:"right",[uo.Handle]:"bottom-right"};function pk({nodeId:t,position:r,variant:i=uo.Handle,className:l,style:a=void 0,children:u,color:c,minWidth:d=10,minHeight:h=10,maxWidth:g=Number.MAX_VALUE,maxHeight:y=Number.MAX_VALUE,keepAspectRatio:v=!1,resizeDirection:m,autoScale:w=!0,shouldResize:S,onResizeStart:j,onResize:C,onResizeEnd:E}){const T=Ag(),k=typeof t=="string"?t:T,M=De(),$=R.useRef(null),L=i===uo.Handle,B=Te(R.useCallback(fk(L&&w),[L,w]),Ve),Y=R.useRef(null),Q=r??dk[i];R.useEffect(()=>{if(!(!$.current||!k))return Y.current||(Y.current=L1({domNode:$.current,nodeId:k,getStoreItems:()=>{const{nodeLookup:J,transform:X,snapGrid:W,snapToGrid:N,nodeOrigin:H,domNode:F}=M.getState();return{nodeLookup:J,transform:X,snapGrid:W,snapToGrid:N,nodeOrigin:H,paneDomNode:F}},onChange:(J,X)=>{const{triggerNodeChanges:W,nodeLookup:N,parentLookup:H,nodeOrigin:F}=M.getState(),U=[],A={x:J.x,y:J.y},D=N.get(k);if(D&&D.expandParent&&D.parentId){const O=D.origin??F,P=J.width??D.measured.width??0,z=J.height??D.measured.height??0,te={id:D.id,parentId:D.parentId,rect:{width:P,height:z,...og({x:J.x??D.position.x,y:J.y??D.position.y},{width:P,height:z},D.parentId,N,O)}},ne=yc([te],N,H,F);U.push(...ne),A.x=J.x?Math.max(O[0]*P,J.x):void 0,A.y=J.y?Math.max(O[1]*z,J.y):void 0}if(A.x!==void 0&&A.y!==void 0){const O={id:k,type:"position",position:{...A}};U.push(O)}if(J.width!==void 0&&J.height!==void 0){const P={id:k,type:"dimensions",resizing:!0,setAttributes:m?m==="horizontal"?"width":"height":!0,dimensions:{width:J.width,height:J.height}};U.push(P)}for(const O of X){const P={...O,type:"position"};U.push(P)}W(U)},onEnd:({width:J,height:X})=>{const W={id:k,type:"dimensions",resizing:!1,dimensions:{width:J,height:X}};M.getState().triggerNodeChanges([W])}})),Y.current.update({controlPosition:Q,boundaries:{minWidth:d,minHeight:h,maxWidth:g,maxHeight:y},keepAspectRatio:v,resizeDirection:m,onResizeStart:j,onResize:C,onResizeEnd:E,shouldResize:S}),()=>{var J;(J=Y.current)==null||J.destroy()}},[Q,d,h,g,y,v,j,C,E,S]);const ee=Q.split("-");return x.jsx("div",{className:Ye(["react-flow__resize-control","nodrag",...ee,i,l]),ref:$,style:{...a,scale:B,...c&&{[L?"backgroundColor":"borderColor"]:c}},children:u})}R.memo(pk);const ah=40,uh=180,hk=0;function gk(t,r,i={}){var u,c;const l={};let a=0;for(const d of t){if(i[d]){l[d]=i[d];const h=((u=r.get(d))==null?void 0:u.height)??uh;a=Math.max(a,i[d].y+h+ah);continue}l[d]={x:hk,y:a},a+=(((c=r.get(d))==null?void 0:c.height)??uh)+ah}return l}function mk(t,r){return t.condition_kinds.find(i=>i.kind===r)}function Qn(t,r){return r==="sv"?t.label_sv:t.label_en}function yk({label:t,value:r,onChange:i}){const[l,a]=R.useState([]),[u,c]=R.useState(!1),[d,h]=R.useState(null),g=()=>$e.listDesktopImages().then(a).catch(()=>{});R.useEffect(()=>{g()},[]);async function y(){const m=r.replace(/\.png$/i,"")||`bild ${l.length+1}`,w=window.prompt("Namn på referensbilden:",m);if(w!==null){c(!0),h(null);try{const S=await $e.captureDesktopImage(w.trim());i(S.name),await g()}catch(S){h(S instanceof Kn?String(S.detail):String(S))}finally{c(!1)}}}const v=r&&l.includes(r);return x.jsxs("label",{className:"field image-field",children:[x.jsx("span",{children:t}),x.jsxs("div",{className:"image-field-row",children:[x.jsx("input",{type:"text",list:"desktop-images",value:r??"",placeholder:"filnamn.png",onChange:m=>i(m.target.value)}),x.jsx("datalist",{id:"desktop-images",children:l.map(m=>x.jsx("option",{value:m},m))}),x.jsx("button",{type:"button",className:"secondary tiny",disabled:u,onClick:y,children:u?"…":"📷 Fånga"})]}),v&&x.jsx("img",{className:"image-field-preview",src:$e.desktopImageUrl(r),alt:r}),d&&x.jsx("span",{className:"assist-msg error",children:d})]})}function sm({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:x.jsx("div",{className:"fields",children:u.map(c=>x.jsx(vk,{field:c,value:t[c.key],lang:i,onChange:d=>a({[c.key]:d})},c.key))})}function vk({field:t,value:r,lang:i,onChange:l}){var d;const a=Qn(t,i),u=t.help??a;if(t.kind==="image")return x.jsx(yk,{label:a,value:String(r??""),onChange:l});let c;return t.kind==="select"?c=x.jsx("select",{value:String(r??t.default??((d=t.options)==null?void 0:d[0])??""),title:u,onChange:h=>l(h.target.value),children:(t.options??[]).map(h=>x.jsx("option",{value:h,children:h===""?"—":h},h))}):t.kind==="bool"?c=x.jsx("input",{type:"checkbox",checked:r===!0||r==="true",title:u,onChange:h=>l(h.target.checked)}):t.kind==="number"?c=x.jsx("input",{type:"number",value:r==null?"":String(r),title:u,onChange:h=>l(h.target.value===""?void 0:Number(h.target.value))}):c=x.jsx("input",{type:"text",value:r==null?"":String(r),title:u,onChange:h=>l(h.target.value)}),x.jsxs("label",{className:"field"+(t.kind==="bool"?" field-bool":""),children:[x.jsx("span",{children:a}),c]})}function xk({condition:t,schema:r,lang:i,t:l,showScope:a,onChange:u}){const c=mk(r,t.kind);return x.jsxs("div",{className:"condition",children:[x.jsxs("label",{className:"field",children:[x.jsx("span",{children:l("condition")}),x.jsx("select",{value:t.kind,onChange:d=>u({kind:d.target.value}),children:r.condition_kinds.map(d=>x.jsx("option",{value:d.kind,children:Qn(d,i)},d.kind))})]}),c&&x.jsx(sm,{values:t,fields:c.fields,lang:i,showScope:a,onChange:d=>u({...t,...d})})]})}function wk({fields:t,t:r,onChange:i}){const l=(a,u)=>i(t.map((c,d)=>d===a?{...c,...u}:c));return x.jsxs("div",{className:"row-fields",children:[t.map((a,u)=>x.jsxs("div",{className:"row-field",children:[x.jsxs("div",{className:"row-field-head",children:[x.jsx("input",{type:"text",placeholder:r("column_name"),value:a.name,onChange:c=>l(u,{name:c.target.value})}),x.jsx("button",{className:"danger",onClick:()=>i(t.filter((c,d)=>d!==u)),children:r("remove")})]}),x.jsxs("div",{className:"fields",children:[x.jsxs("label",{className:"field",children:[x.jsx("span",{children:"by"}),x.jsx("select",{value:a.by??"css",onChange:c=>l(u,{by:c.target.value}),children:["text","css","role"].map(c=>x.jsx("option",{children:c},c))})]}),x.jsxs("label",{className:"field",children:[x.jsx("span",{children:"value"}),x.jsx("input",{type:"text",value:a.value??"",onChange:c=>l(u,{value:c.target.value})})]}),x.jsxs("label",{className:"field",children:[x.jsx("span",{children:"role"}),x.jsx("input",{type:"text",value:a.role??"",onChange:c=>l(u,{role:c.target.value})})]})]})]},u)),x.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,xn(r,"click")]);return x.jsxs("div",{className:"nested-steps",children:[t.map((d,h)=>x.jsxs("div",{className:"mini-card"+(d.enabled===!1?" disabled":""),children:[x.jsxs("div",{className:"mini-head",children:[x.jsx("input",{type:"checkbox",checked:d.enabled!==!1,title:l("enabled_title"),onChange:g=>u(ni(t,h,{...d,enabled:g.target.checked?void 0:!1}))}),x.jsx("select",{value:d.type,onChange:g=>u(ni(t,h,gh(r,d,g.target.value))),children:r.step_types.map(g=>x.jsx("option",{value:g.type,children:Qn(g,i)},g.type))}),x.jsx("input",{type:"text",className:"label-input",placeholder:l("label_ph"),value:d.label??"",onChange:g=>u(ni(t,h,{...d,label:g.target.value||void 0}))}),x.jsxs("select",{value:d.on_error==="continue"?"continue":"stop",onChange:g=>u(ni(t,h,{...d,on_error:g.target.value==="continue"?"continue":void 0})),children:[x.jsx("option",{value:"stop",children:l("on_error_stop")}),x.jsx("option",{value:"continue",children:l("on_error_continue")})]}),x.jsx("span",{className:"spacer"}),x.jsx("button",{className:"icon",title:l("move_up"),disabled:h===0,onClick:()=>u($u(t,h,h-1)),children:"↑"}),x.jsx("button",{className:"icon",title:l("move_down"),disabled:h===t.length-1,onClick:()=>u($u(t,h,h+1)),children:"↓"}),x.jsx("button",{className:"danger",onClick:()=>u(yh(t,h)),children:l("remove")})]}),x.jsx(lm,{step:d,schema:r,lang:i,t:l,inLoop:a||d.type==="loop",onChange:g=>u(ni(t,h,g))}),x.jsx("button",{className:"secondary tiny",onClick:()=>u(mh(t,h+1,xn(r,"click"))),children:"+"})]},d.id??h)),x.jsx("button",{className:"secondary",onClick:c,children:l("add_step_in")})]})}function lm({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 x.jsxs("div",{className:"hint",children:["Okänd stegtyp: ",t.type]});const d=g=>{const y={...t};for(const[v,m]of Object.entries(g))m===void 0||m===""?delete y[v]:y[v]=m;u(y)},h=a||t.type==="loop"||t.type==="extract_row";return x.jsxs(x.Fragment,{children:[x.jsx(sm,{values:t,fields:c.fields,lang:i,showScope:h,onChange:d}),t.type==="extract_row"&&x.jsx(wk,{fields:t.fields??[],lang:i,t:l,onChange:g=>u({...t,fields:g})}),t.type==="loop"&&x.jsx("div",{className:"nested","data-container-id":t.id,children:x.jsx(Ju,{steps:t.steps??[],schema:r,lang:i,t:l,inLoop:!0,onChange:g=>u({...t,steps:g})})}),t.type==="if"&&x.jsx(_k,{step:t,schema:r,lang:i,t:l,inLoop:a,onChange:u})]})}function _k({step:t,schema:r,lang:i,t:l,inLoop:a,onChange:u}){const c=t.branches??[{condition:{kind:"element_exists"},steps:[]}],d=(h,g)=>u({...t,branches:c.map((y,v)=>v===h?g:y)});return x.jsxs("div",{className:"nested",children:[c.map((h,g)=>x.jsxs("div",{className:"branch","data-container-id":t.id,"data-branch":g,children:[x.jsxs("div",{className:"branch-head",children:[x.jsx("strong",{children:l(g===0?"branch_if":"branch_else_if")}),g>0&&x.jsx("button",{className:"danger",onClick:()=>u({...t,branches:c.filter((y,v)=>v!==g)}),children:l("remove_branch")})]}),x.jsx(xk,{condition:h.condition,schema:r,lang:i,t:l,showScope:a,onChange:y=>d(g,{...h,condition:y})}),x.jsx(Ju,{steps:h.steps,schema:r,lang:i,t:l,inLoop:a,onChange:y=>d(g,{...h,steps:y})})]},g)),x.jsx("button",{className:"secondary",onClick:()=>u({...t,branches:[...c,J0()]}),children:l("add_branch")}),x.jsxs("label",{className:"branch else-toggle",children:[x.jsx("input",{type:"checkbox",checked:Array.isArray(t.else),onChange:h=>u({...t,else:h.target.checked?[]:void 0})}),x.jsx("span",{children:l("else_toggle")})]}),Array.isArray(t.else)&&x.jsx("div",{className:"branch","data-container-id":t.id,"data-branch":"else",children:x.jsx(Ju,{steps:t.else,schema:r,lang:i,t:l,inLoop:a,onChange:h=>u({...t,else:h})})})]})}function Sk({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 x.jsxs("div",{className:"step-node cat-"+((c==null?void 0:c.category)??"x")+(i.enabled===!1?" disabled":""),children:[x.jsx(co,{type:"target",position:_e.Top}),x.jsxs("div",{className:"node-head",children:[x.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})}),x.jsx("select",{className:"nodrag type-select",value:i.type,onChange:d=>r.onChange(gh(l,i,d.target.value)),children:l.step_types.map(d=>x.jsx("option",{value:d.type,children:Qn(d,a)},d.type))}),x.jsx("span",{className:"spacer"}),x.jsx("button",{className:"icon nodrag",title:u("move_up"),disabled:r.index===0,onClick:()=>r.onMove(-1),children:"↑"}),x.jsx("button",{className:"icon nodrag",title:u("move_down"),disabled:r.index===r.count-1,onClick:()=>r.onMove(1),children:"↓"}),x.jsx("button",{className:"danger nodrag",onClick:r.onDelete,children:"✕"})]}),x.jsxs("div",{className:"node-subhead",children:[x.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})}),x.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:[x.jsx("option",{value:"stop",children:u("on_error_stop")}),x.jsx("option",{value:"continue",children:u("on_error_continue")})]})]}),x.jsx("div",{className:"node-body nodrag",children:x.jsx(lm,{step:i,schema:l,lang:a,t:u,inLoop:!1,onChange:r.onChange})}),x.jsx("button",{className:"add-after nodrag",title:u("add_step_after"),onClick:r.onAddAfter,children:"+"}),x.jsx(co,{type:"source",position:_e.Bottom})]})}const am="application/rpa-step",um="application/rpa-block",kk=["navigation","interaction","data","control","files","desktop"],Ek={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 Nk({schema:t,lang:r,t:i,blocksRefreshKey:l,onSaveSelectionAsBlock:a,onAddStep:u,onInsertBlock:c}){const[d,h]=R.useState("steps"),[g,y]=R.useState(""),[v,m]=R.useState(new Set),[w,S]=R.useState([]);R.useEffect(()=>{$e.listBlocks().then(S).catch(()=>S([]))},[l]);const j=R.useMemo(()=>{var T;const C=g.trim().toLowerCase(),E={};for(const k of t.step_types){const M=Qn(k,r).toLowerCase();C&&!M.includes(C)&&!k.type.includes(C)||(E[T=k.category]??(E[T]=[])).push(k)}return kk.filter(k=>{var M;return(M=E[k])==null?void 0:M.length}).map(k=>({cat:k,steps:E[k]}))},[t,r,g]);return x.jsxs("div",{className:"palette",children:[x.jsxs("div",{className:"palette-tabs",children:[x.jsx("button",{className:d==="steps"?"on":"",onClick:()=>h("steps"),children:i("palette")}),x.jsx("button",{className:d==="blocks"?"on":"",onClick:()=>h("blocks"),children:i("palette_blocks")})]}),d==="steps"&&x.jsxs(x.Fragment,{children:[x.jsx("input",{className:"palette-search",placeholder:i("palette_search"),value:g,onChange:C=>y(C.target.value)}),x.jsx("div",{className:"palette-scroll",children:j.map(({cat:C,steps:E})=>{var k;const T=v.has(C)&&!g;return x.jsxs("div",{className:"palette-group",children:[x.jsxs("button",{className:"palette-group-head",onClick:()=>m(M=>{const $=new Set(M);return $.has(C)?$.delete(C):$.add(C),$}),children:[T?"▸":"▾"," ",((k=Ek[C])==null?void 0:k[r])??C]}),!T&&E.map(M=>x.jsxs("div",{className:"palette-item cat-"+M.category,draggable:!0,title:(M.help??"")+" · "+i("palette_click_add"),onDragStart:$=>{$.dataTransfer.setData(am,M.type),$.dataTransfer.setData("text/plain",M.type),$.dataTransfer.effectAllowed="copy"},onDoubleClick:()=>u(M.type),children:[Qn(M,r),x.jsx("button",{className:"palette-add",title:i("palette_click_add"),onClick:()=>u(M.type),children:"+"})]},M.type))]},C)})})]}),d==="blocks"&&x.jsxs("div",{className:"palette-scroll",children:[x.jsx("button",{className:"secondary palette-save-block",onClick:a,children:i("block_save_selection")}),w.length===0&&x.jsx("p",{className:"hint",children:i("block_none")}),w.map(C=>x.jsxs("div",{className:"palette-block",draggable:!0,title:C.description,onDragStart:E=>{E.dataTransfer.setData(um,C.name),E.dataTransfer.setData("text/plain",C.name),E.dataTransfer.effectAllowed="copy"},onDoubleClick:()=>c(C.name),children:[x.jsxs("div",{className:"palette-block-name",children:[C.name,x.jsx("button",{className:"palette-add",title:i("block_insert"),onClick:()=>c(C.name),children:i("block_insert")})]}),x.jsx("div",{className:"hint",children:C.description||`${C.step_count} steg`})]},C.name))]})]})}const Ck={step:Sk};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 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}const jk=R.forwardRef(function(r,i){return x.jsx(nm,{children:x.jsx(Pk,{...r,innerRef:i})})});function Pk({flow:t,schema:r,lang:i,t:l,onChange:a,onSelectionChange:u,innerRef:c}){const d=Nl(),h=R.useRef(null),[g,y]=R.useState(()=>hh(t).nodes.map(X=>X.step)),[v,m]=R.useState(()=>({...t.layout??{}})),w=R.useRef(new Map),S=R.useRef(!0),j=R.useMemo(()=>{const X=new Map;for(const W of g)X.set(W.id,w.current.get(W.id)??{width:340,height:Mk(W)});return gk(g.map(W=>W.id),X,v)},[g,v]);R.useEffect(()=>{if(S.current){S.current=!1;return}a({steps:g,layout:v})},[g,v,a]);const C=R.useCallback((X,W)=>y(N=>N.map(H=>H.id===X?W:H)),[]),E=R.useCallback(()=>{window.setTimeout(()=>d.fitView({duration:300,padding:.15}),60)},[d]);R.useImperativeHandle(c,()=>({addStep:X=>{y(W=>[...W,Ut({...X})]),E()},addStepType:X=>{y(W=>[...W,xn(r,X)]),E()},insertSteps:X=>{y(W=>[...W,...X.map(N=>Ut({...N}))]),E()}}),[r,E]);const T=R.useMemo(()=>g.map((X,W)=>({id:X.id,type:"step",position:j[X.id]??{x:0,y:W*200},data:{step:X,schema:r,lang:i,t:l,index:W,count:g.length,onChange:N=>C(X.id,N),onDelete:()=>y(N=>yh(N,N.findIndex(H=>H.id===X.id))),onMove:N=>y(H=>{const F=H.findIndex(U=>U.id===X.id);return $u(H,F,F+N)}),onAddAfter:()=>y(N=>{const H=N.findIndex(F=>F.id===X.id);return mh(N,H+1,xn(r,"click"))})}})),[g,j,r,i,l,C]),k=R.useMemo(()=>{const X=[];for(let N=0;N<g.length-1;N++)X.push({id:`seq-${g[N].id}-${g[N+1].id}`,source:g[N].id,target:g[N+1].id});const W=new Map;for(const N of g)N.label&&W.set(N.label,N.id);for(const N of g)N.type==="jump_to_label"&&typeof N.target=="string"&&W.has(N.target)&&X.push({id:`jump-${N.id}`,source:N.id,target:W.get(N.target),style:{stroke:"#d1453b",strokeDasharray:"5 5"},label:"goto"});return X},[g]),M=R.useCallback(X=>{for(const W of X)W.type==="dimensions"&&W.dimensions&&w.current.set(W.id,{width:W.dimensions.width,height:W.dimensions.height});m(W=>{let N=W;for(const H of X)H.type==="position"&&H.position&&H.dragging&&(N===W&&(N={...W}),N[H.id]={x:Math.round(H.position.x),y:Math.round(H.position.y)});return N})},[]),$=R.useCallback(()=>{y(X=>[...X].sort((W,N)=>{var H,F;return(((H=j[W.id])==null?void 0:H.y)??0)-(((F=j[N.id])==null?void 0:F.y)??0)}))},[j]),L=R.useRef(""),B=R.useCallback(({nodes:X})=>{const W=X.map(H=>H.id).sort(),N=W.join(",");N!==L.current&&(L.current=N,u(W))},[u]),Y=R.useCallback(()=>{document.querySelectorAll(".drop-hover").forEach(X=>X.classList.remove("drop-hover"))},[]),Q=R.useCallback(X=>{var N,H;X.preventDefault(),X.dataTransfer.dropEffect="copy";const W=((H=(N=X.target)==null?void 0:N.closest)==null?void 0:H.call(N,"[data-container-id]"))??null;document.querySelectorAll(".drop-hover").forEach(F=>F!==W&&F.classList.remove("drop-hover")),W&&W.classList.add("drop-hover")},[]),ee=R.useCallback((X,W,N,H)=>{if(W){const F=W.getAttribute("data-container-id"),U=W.getAttribute("data-branch");y(A=>Js(A,F,U,X)??[...A,X]);return}try{const F=d.screenToFlowPosition({x:N,y:H});m(U=>({...U,[X.id]:{x:Math.round(F.x),y:Math.round(F.y)}}))}catch{}y(F=>[...F,X])},[d]),J=R.useCallback(async X=>{var F,U;X.preventDefault(),Y();const W=X.dataTransfer.getData(am),N=X.dataTransfer.getData(um),H=((U=(F=X.target)==null?void 0:F.closest)==null?void 0:U.call(F,"[data-container-id]"))??null;if(W){ee(xn(r,W),H,X.clientX,X.clientY);return}if(N)try{const D=((await $e.getBlock(N)).steps??[]).map(O=>Ut({...O}));y(O=>[...O,...D])}catch{}},[r,ee,Y]);return x.jsx("div",{className:"canvas",ref:h,children:x.jsxs($S,{nodes:T,edges:k,nodeTypes:Ck,onNodesChange:M,onNodeDragStop:$,onSelectionChange:B,onDragOver:Q,onDrop:J,onDragLeave:Y,nodesConnectable:!1,fitView:!0,minZoom:.2,proOptions:{hideAttribution:!0},children:[x.jsx(BS,{}),x.jsx(ck,{pannable:!0,zoomable:!0}),x.jsx(GS,{}),x.jsxs(Ni,{position:"top-left",className:"canvas-panel",children:[x.jsx("button",{className:"secondary",onClick:()=>{y(X=>[...X,xn(r,"goto")]),E()},children:l("add_step")}),x.jsx("button",{className:"secondary",onClick:()=>m({}),children:l("relayout")})]})]})})}function Tk({t,runId:r,run:i}){const l=R.useRef(null);R.useEffect(()=>{l.current&&(l.current.scrollTop=l.current.scrollHeight)},[i==null?void 0:i.logs]);const a=i==null?void 0:i.status;return x.jsxs("div",{className:"panel",children:[x.jsxs("div",{className:"panel-head",children:[x.jsx("strong",{children:t("run_log")}),a&&x.jsx("span",{className:"badge badge-"+a,children:t(a==="running"?"status_running":a==="done"?"status_done":"status_error")}),x.jsx("span",{className:"spacer"}),(i==null?void 0:i.browser_open)&&r&&x.jsx("button",{className:"secondary",onClick:()=>$e.closeBrowser(r),children:t("close_browser")}),(i==null?void 0:i.trace_ready)&&r&&x.jsx("button",{className:"secondary",onClick:()=>$e.showTrace(r),children:t("show_trace")})]}),x.jsx("pre",{className:"log",ref:l,children:((i==null?void 0:i.logs)??[]).join(`
+`)})]})}function Ik(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 Rk({t,vars:r}){const[i,l]=R.useState(new Set),a=Object.keys(r??{});return x.jsxs("div",{className:"panel",children:[x.jsx("strong",{children:t("variables")}),x.jsx("p",{className:"hint",children:t("vars_hint")}),a.length===0&&x.jsx("p",{className:"hint",children:t("no_vars")}),a.map(u=>{const c=i.has(u),d=r[u];return x.jsxs("div",{className:"var-row",children:[x.jsxs("div",{className:"var-head",onClick:()=>l(h=>{const g=new Set(h);return g.has(u)?g.delete(u):g.add(u),g}),children:[u," ",x.jsxs("span",{className:"hint",children:["(",Ik(t,d),")"]})]}),c&&x.jsx("pre",{className:"var-value",children:typeof d=="string"?d:JSON.stringify(d,null,2)})]},u)})]})}function zk({t,currentName:r,flow:i,onApply:l}){const[a,u]=R.useState(""),[c,d]=R.useState(!1),[h,g]=R.useState(null);async function y(){if(!(!a.trim()||!r)){d(!0),g(null);try{const v=await $e.assist(r,a.trim(),i);l({steps:v.steps,settings:v.settings,layout:{}}),g({text:t("assist_applied")+(v.explanation?`
+
+`+v.explanation:""),error:!1})}catch(v){if(v instanceof Kn&&v.status===501)g({text:t("assist_unavailable"),error:!0});else{const m=v instanceof Kn?String(v.detail):String(v);g({text:t("assist_failed",{msg:m}),error:!0})}}finally{d(!1)}}}return x.jsxs("div",{className:"panel",children:[x.jsx("strong",{children:t("assist_title")}),x.jsx("p",{className:"hint",children:t("assist_hint")}),x.jsx("textarea",{rows:3,placeholder:t("assist_ph"),value:a,onChange:v=>u(v.target.value)}),x.jsx("button",{onClick:y,disabled:c||!r,children:t(c?"assist_working":"assist_btn")}),h&&x.jsx("p",{className:"assist-msg"+(h.error?" error":""),children:h.text})]})}function Lk({open:t,schema:r,lang:i,t:l,settings:a,onClose:u,onSave:c}){const d=R.useRef(null);R.useEffect(()=>{const g=d.current;g&&(t&&!g.open&&g.showModal(),!t&&g.open&&g.close())},[t]);function h(g){g.preventDefault();const y=g.currentTarget,v={};for(const m of r.settings){const w=y.elements.namedItem(m.key);w&&(m.kind==="bool"?v[m.key]=w.checked:m.kind==="number"?v[m.key]=Number(w.value)||Number(m.default)||0:v[m.key]=w.value||String(m.default))}c(v)}return x.jsx("dialog",{ref:d,onClose:u,children:x.jsxs("form",{onSubmit:h,method:"dialog",children:[x.jsx("h2",{children:l("settings")}),x.jsx("p",{className:"hint",children:l("settings_hint")}),x.jsx("div",{className:"fields",children:r.settings.map(g=>x.jsxs("label",{className:"field"+(g.kind==="bool"?" field-bool":""),children:[x.jsx("span",{children:Qn(g,i)}),g.kind==="bool"?x.jsx("input",{type:"checkbox",name:g.key,defaultChecked:a[g.key]===!0}):x.jsx("input",{type:g.kind==="number"?"number":"text",name:g.key,defaultValue:String(a[g.key]??g.default)})]},g.key))}),x.jsxs("div",{className:"dialog-actions",children:[x.jsx("button",{type:"button",className:"secondary",onClick:u,children:l("cancel")}),x.jsx("button",{type:"submit",children:l("save")})]})]})})}function Ak({open:t,t:r,onClose:i,onCreateStep:l}){const a=R.useRef(null),[u,c]=R.useState([]),[d,h]=R.useState(""),[g,y]=R.useState([]),[v,m]=R.useState(null),[w,S]=R.useState(!1);R.useEffect(()=>{const T=a.current;T&&(t&&!T.open&&(T.showModal(),m(null),y([]),$e.desktopWindows().then(k=>{c(k),k.length&&h(k[0])}).catch(k=>m(k instanceof Kn&&k.status===501?r("inspect_unavailable"):String(k)))),!t&&T.open&&T.close())},[t,r]);async function j(){if(d){S(!0),m(null);try{y(await $e.inspectWindow(d))}catch(T){m(T instanceof Kn?String(T.detail):String(T))}finally{S(!1)}}}function C(T){return T.auto_id?{by:"auto_id",value:T.auto_id}:T.name?{by:"name",value:T.name}:T.class_name?{by:"class_name",value:T.class_name}:{by:"name",value:""}}function E(T,k){const M=C(T),$={type:k,id:ec(),by:M.by,value:M.value};T.control_type&&($.control_type=T.control_type),k==="desktop_type"&&($.text=""),l($)}return x.jsxs("dialog",{ref:a,onClose:i,className:"inspect-dialog",children:[x.jsx("h2",{children:r("inspect_window")}),x.jsx("p",{className:"hint",children:r("inspect_hint")}),x.jsxs("div",{className:"inspect-controls",children:[x.jsxs("select",{value:d,onChange:T=>h(T.target.value),children:[u.length===0&&x.jsx("option",{value:"",children:r("inspect_none")}),u.map(T=>x.jsx("option",{value:T,children:T},T))]}),x.jsx("button",{onClick:j,disabled:w||!d,children:w?"…":r("inspect_load")}),x.jsx("span",{className:"spacer"}),x.jsx("button",{type:"button",className:"secondary",onClick:i,children:r("cancel")})]}),v&&x.jsx("p",{className:"assist-msg error",children:v}),g.length>0&&x.jsx("div",{className:"inspect-table",children:g.map((T,k)=>{const M=C(T);return x.jsxs("div",{className:"inspect-row",style:{paddingLeft:8+T.depth*14},children:[x.jsx("code",{className:"inspect-ct",children:T.control_type||"?"}),x.jsx("span",{className:"inspect-name",children:T.name||x.jsx("em",{children:"—"})}),T.auto_id&&x.jsxs("code",{className:"inspect-aid",children:["#",T.auto_id]}),x.jsx("span",{className:"spacer"}),x.jsx("button",{className:"secondary tiny",title:`${M.by}=${M.value}`,onClick:()=>{var $;return($=navigator.clipboard)==null?void 0:$.writeText(`${M.by}=${M.value}`)},children:r("inspect_copy")}),x.jsx("button",{className:"secondary tiny",onClick:()=>E(T,"desktop_click"),children:r("inspect_make_click")}),x.jsx("button",{className:"secondary tiny",onClick:()=>E(T,"desktop_type"),children:r("inspect_make_type")})]},k)})})]})}function Dk({open:t,t:r,flow:i,flowName:l,onRun:a,onSaveSet:u,onClose:c}){const d=R.useRef(null),h=R.useMemo(()=>i.inputs??[],[i.inputs]),g=i.input_sets??{},y=Object.keys(g),[v,m]=R.useState(""),[w,S]=R.useState({}),[j,C]=R.useState([]);R.useEffect(()=>{const M=d.current;if(M){if(t&&!M.open){M.showModal();let $=ty(h);try{const L=JSON.parse(localStorage.getItem("rpa_runvars_"+l)||"{}");$={...$,...L}}catch{}S($),m(""),C([])}!t&&M.open&&M.close()}},[t,h,l]);function E(M){m(M),M&&g[M]&&S($=>({...$,...g[M]}))}function T(){const M=Zd(w,j);try{localStorage.setItem("rpa_runvars_"+l,JSON.stringify(M))}catch{}a(M),c()}function k(){const M=prompt(r("runp_set_name_prompt"));M&&u(M,Zd(w,j))}return x.jsxs("dialog",{ref:d,onClose:c,children:[x.jsx("h2",{children:r("runp_title")}),x.jsx("p",{className:"hint",children:r("runp_hint")}),y.length>0&&x.jsxs("label",{className:"field",children:[x.jsx("span",{children:r("runp_set")}),x.jsxs("select",{value:v,onChange:M=>E(M.target.value),children:[x.jsx("option",{value:"",children:r("runp_set_none")}),y.map(M=>x.jsx("option",{value:M,children:M},M))]})]}),x.jsx("div",{className:"fields",children:h.map(M=>{const $=ey(M.options),L=w[M.name]??"";return x.jsxs("label",{className:"field",title:M.description,children:[x.jsx("span",{children:M.label||M.name}),$.length>0?x.jsxs("select",{value:L,onChange:B=>S(Y=>({...Y,[M.name]:B.target.value})),children:[!$.includes(L)&&x.jsx("option",{value:L,children:L||"—"}),$.map(B=>x.jsx("option",{value:B,children:B},B))]}):x.jsx("input",{type:"text",value:L,onChange:B=>S(Y=>({...Y,[M.name]:B.target.value}))})]},M.name)})}),x.jsxs("div",{className:"adhoc",children:[j.map((M,$)=>x.jsxs("div",{className:"adhoc-row",children:[x.jsx("input",{type:"text",placeholder:r("runp_var_name"),value:M.name,onChange:L=>C(B=>B.map((Y,Q)=>Q===$?{...Y,name:L.target.value}:Y))}),x.jsx("input",{type:"text",placeholder:r("runp_var_value"),value:M.value,onChange:L=>C(B=>B.map((Y,Q)=>Q===$?{...Y,value:L.target.value}:Y))}),x.jsx("button",{className:"danger tiny",onClick:()=>C(L=>L.filter((B,Y)=>Y!==$)),children:"✕"})]},$)),x.jsx("button",{className:"secondary tiny",onClick:()=>C(M=>[...M,{name:"",value:""}]),children:r("runp_add_var")})]}),x.jsxs("div",{className:"dialog-actions",children:[x.jsx("button",{type:"button",className:"secondary",onClick:k,children:r("runp_save_set")}),x.jsx("span",{className:"spacer"}),x.jsx("button",{type:"button",className:"secondary",onClick:c,children:r("cancel")}),x.jsx("button",{type:"button",onClick:T,children:r("run")})]})]})}function bk({open:t,t:r,lang:i,schema:l,flow:a,onChange:u,onClose:c}){const d=R.useRef(null),[h,g]=R.useState([]),[y,v]=R.useState({});R.useEffect(()=>{const j=d.current;j&&(t&&!j.open&&(j.showModal(),g((a.inputs??[]).map(C=>({...C}))),v({...a.input_sets??{}})),!t&&j.open&&j.close())},[t,a.inputs,a.input_sets]);const m=l.input_fields??[];function w(j,C){g(E=>E.map((T,k)=>k===j?{...T,...C}:T))}function S(){const j=h.filter(C=>(C.name??"").trim());u({inputs:j,input_sets:y}),c()}return x.jsxs("dialog",{ref:d,onClose:c,children:[x.jsx("h2",{children:r("inputs_title")}),x.jsx("p",{className:"hint",children:r("inputs_hint")}),x.jsxs("div",{className:"inputs-list",children:[h.map((j,C)=>x.jsxs("div",{className:"input-row",children:[x.jsx("div",{className:"fields",children:m.map(E=>x.jsxs("label",{className:"field",title:E.help,children:[x.jsx("span",{children:Qn(E,i)}),x.jsx("input",{type:"text",value:String(j[E.key]??""),onChange:T=>w(C,{[E.key]:T.target.value})})]},E.key))}),x.jsx("button",{className:"danger tiny",onClick:()=>g(E=>E.filter((T,k)=>k!==C)),children:r("remove")})]},C)),x.jsx("button",{className:"secondary",onClick:()=>g(j=>[...j,{name:""}]),children:r("inputs_add")})]}),Object.keys(y).length>0&&x.jsxs(x.Fragment,{children:[x.jsx("strong",{className:"inputs-sets-title",children:r("inputs_sets")}),Object.entries(y).map(([j,C])=>x.jsxs("div",{className:"set-row",children:[x.jsxs("span",{children:[j," ",x.jsxs("span",{className:"hint",children:["(",Object.keys(C).length,")"]})]}),x.jsx("span",{className:"spacer"}),x.jsx("button",{className:"secondary tiny",onClick:()=>{const E=prompt(r("inputs_set_rename"),j);E&&E!==j&&v(({[j]:T,...k})=>({...k,[E]:T}))},children:r("inputs_set_rename")}),x.jsx("button",{className:"danger tiny",onClick:()=>v(({[j]:E,...T})=>T),children:r("remove")})]},j))]}),x.jsxs("div",{className:"dialog-actions",children:[x.jsx("button",{type:"button",className:"secondary",onClick:c,children:r("cancel")}),x.jsx("button",{type:"button",onClick:S,children:r("save")})]})]})}const ch={steps:[],settings:{},layout:{},inputs:[],input_sets:{}};function $k(){const[t,r]=R.useState(null),[i,l]=R.useState(()=>localStorage.getItem("rpa_lang")||"en"),[a,u]=R.useState(()=>localStorage.getItem("rpa_close_mode")||"always"),[c,d]=R.useState([]),[h,g]=R.useState(null),[y,v]=R.useState(ch),[m,w]=R.useState(!1),[S,j]=R.useState(0),[C,E]=R.useState(!1),[T,k]=R.useState(!1),[M,$]=R.useState(!1),[L,B]=R.useState(!1),[Y,Q]=R.useState([]),[ee,J]=R.useState(0),[X,W]=R.useState(null),[N,H]=R.useState(null),[F,U]=R.useState(null),A=R.useRef(null),D=R.useRef(null),O=R.useMemo(()=>G0(i),[i]);R.useEffect(()=>{localStorage.setItem("rpa_lang",i),document.title=O("page_title")},[i]),R.useEffect(()=>localStorage.setItem("rpa_close_mode",a),[a]),R.useEffect(()=>{(async()=>{const ie=await $e.schema();r(ie);const ae=await $e.listFlows();if(d(ae),ae.length)await P(ae[0]);else{const ke={steps:[Ut(xn(ie,"goto")),Ut(xn(ie,"wait_for_login"))],settings:{},layout:{}};ke.steps[0].url="https://www.1177.se/",g("standard"),v(ke),w(!0),j(Me=>Me+1)}})()},[]);const P=R.useCallback(async ie=>{const ae=await $e.getFlow(ie);ae.steps=(ae.steps??[]).map(ke=>Ut({...ke})),ae.settings=ae.settings??{},ae.layout=ae.layout??{},ae.inputs=ae.inputs??[],ae.input_sets=ae.input_sets??{},g(ie),v(ae),w(!1),j(ke=>ke+1)},[]),z=R.useCallback(ie=>{v(ae=>({...ae,steps:ie.steps,layout:ie.layout})),w(!0)},[]),te=R.useCallback(ie=>{var ae;return(ae=D.current)==null?void 0:ae.addStepType(ie)},[]),ne=R.useCallback(async ie=>{var ae;try{const ke=await $e.getBlock(ie);(ae=D.current)==null||ae.insertSteps(ke.steps??[])}catch{}},[]);async function ce(){const ie=y.steps.filter(Me=>Y.includes(Me.id));if(ie.length===0){W(O("block_select_first"));return}const ae=prompt(O("block_name_prompt"));if(!ae)return;const ke=prompt(O("block_desc_prompt"))||"";try{await $e.saveBlock(ae,{name:ae,description:ke,steps:ie,settings:{}}),J(Me=>Me+1),W(O("block_saved"))}catch(Me){const Je=Me instanceof Kn?JSON.stringify(Me.detail):String(Me);W(O("save_failed",{msg:Je}))}}const de=R.useCallback(async()=>{if(!h)return!1;try{await $e.saveFlow(h,y),w(!1);const ie=await $e.listFlows();return d(ie),!0}catch(ie){const ae=ie instanceof Kn?JSON.stringify(ie.detail):String(ie);return W(O("save_failed",{msg:ae})),!1}},[h,y,O]);async function fe(){const ie=prompt(O("new_flow_prompt"));if(!ie||!t)return;const ae={steps:[],settings:{},layout:{},inputs:[],input_sets:{}};g(ie),v(ae),j(ke=>ke+1);try{await $e.saveFlow(ie,ae),d(await $e.listFlows()),w(!1)}catch{w(!0)}}async function q(){if(!h||!confirm(O("delete_flow_confirm",{name:h})))return;await $e.deleteFlow(h);const ie=await $e.listFlows();d(ie),ie.length?await P(ie[0]):(g(null),v(ch),j(ae=>ae+1))}const se=()=>{A.current&&window.clearTimeout(A.current),A.current=null},he=R.useCallback(ie=>{$e.run(ie).then(ae=>{U(ae),(ae.status==="running"||ae.browser_open)&&(A.current=window.setTimeout(()=>he(ie),1e3))})},[]);async function we(ie){if(!h)return;await de(),se(),U(null);const{run_id:ae}=await $e.runFlow(h,a,ie);H(ae),he(ae)}function xe(){h&&(ny(y)?B(!0):we({}))}function Se(ie,ae){v(ke=>({...ke,input_sets:{...ke.input_sets??{},[ie]:ae}})),w(!0)}return R.useEffect(()=>se,[]),t?x.jsxs("div",{className:"app",children:[x.jsx(oy,{t:O,lang:i,setLang:l,flowNames:c,currentName:h,onSelect:P,onNew:fe,onDelete:q,onSave:de,onRun:xe,dirty:m,running:(F==null?void 0:F.status)==="running",closeMode:a,setCloseMode:u,onOpenSettings:()=>E(!0),onOpenInspect:()=>k(!0),onOpenInputs:()=>$(!0)}),x.jsxs("main",{children:[x.jsx(Nk,{schema:t,lang:i,t:O,blocksRefreshKey:ee,onSaveSelectionAsBlock:ce,onAddStep:te,onInsertBlock:ne}),x.jsx(jk,{ref:D,flow:y,schema:t,lang:i,t:O,onChange:z,onSelectionChange:Q},S),x.jsxs("aside",{className:"side",children:[x.jsx(zk,{t:O,currentName:h,flow:y,onApply:ie=>{ie.steps=ie.steps.map(ae=>Ut({...ae})),ie.layout=ie.layout??{},hh(ie),v(ie),w(!0),j(ae=>ae+1)}}),x.jsx(Tk,{t:O,runId:N,run:F}),x.jsx(Rk,{t:O,vars:(F==null?void 0:F.vars)??{}})]})]}),x.jsx(Lk,{open:C,schema:t,lang:i,t:O,settings:y.settings,onClose:()=>E(!1),onSave:ie=>{v(ae=>({...ae,settings:ie})),w(!0),E(!1)}}),x.jsx(Ak,{open:T,t:O,onClose:()=>k(!1),onCreateStep:ie=>{var ae;(ae=D.current)==null||ae.addStep(ie),k(!1)}}),x.jsx(bk,{open:M,t:O,lang:i,schema:t,flow:y,onClose:()=>$(!1),onChange:({inputs:ie,input_sets:ae})=>{v(ke=>({...ke,inputs:ie,input_sets:ae})),w(!0)}}),x.jsx(Dk,{open:L,t:O,flow:y,flowName:h,onClose:()=>B(!1),onRun:we,onSaveSet:Se}),X&&x.jsx("div",{className:"toast",onClick:()=>W(null),children:X})]}):x.jsx("div",{className:"loading",children:"…"})}Q0.createRoot(document.getElementById("root")).render(x.jsx(dh.StrictMode,{children:x.jsx($k,{})}));
diff --git a/webui/static/assets/index-Ba9Cdbwv.js b/webui/static/assets/index-Ba9Cdbwv.js
deleted file mode 100644
index 2ebf362..0000000
--- a/webui/static/assets/index-Ba9Cdbwv.js
+++ /dev/null
@@ -1,65 +0,0 @@
-(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 ch(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 Bd;function H0(){if(Bd)return Ce;Bd=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"),h=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),v=Symbol.iterator;function m(T){return T===null||typeof T!="object"?null:(T=v&&T[v]||T["@@iterator"],typeof T=="function"?T:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},S=Object.assign,M={};function C(T,L,ne){this.props=T,this.context=L,this.refs=M,this.updater=ne||w}C.prototype.isReactComponent={},C.prototype.setState=function(T,L){if(typeof T!="object"&&typeof T!="function"&&T!=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,T,L,"setState")},C.prototype.forceUpdate=function(T){this.updater.enqueueForceUpdate(this,T,"forceUpdate")};function N(){}N.prototype=C.prototype;function j(T,L,ne){this.props=T,this.context=L,this.refs=M,this.updater=ne||w}var k=j.prototype=new N;k.constructor=j,S(k,C.prototype),k.isPureReactComponent=!0;var P=Array.isArray,H=Object.prototype.hasOwnProperty,O={current:null},W={key:!0,ref:!0,__self:!0,__source:!0};function q(T,L,ne){var re,ae={},ce=null,ue=null;if(L!=null)for(re in L.ref!==void 0&&(ue=L.ref),L.key!==void 0&&(ce=""+L.key),L)H.call(L,re)&&!W.hasOwnProperty(re)&&(ae[re]=L[re]);var B=arguments.length-2;if(B===1)ae.children=ne;else if(1<B){for(var ee=Array(B),fe=0;fe<B;fe++)ee[fe]=arguments[fe+2];ae.children=ee}if(T&&T.defaultProps)for(re in B=T.defaultProps,B)ae[re]===void 0&&(ae[re]=B[re]);return{$$typeof:t,type:T,key:ce,ref:ue,props:ae,_owner:O.current}}function Q(T,L){return{$$typeof:t,type:T.type,key:L,ref:T.ref,props:T.props,_owner:T._owner}}function te(T){return typeof T=="object"&&T!==null&&T.$$typeof===t}function J(T){var L={"=":"=0",":":"=2"};return"$"+T.replace(/[=:]/g,function(ne){return L[ne]})}var X=/\/+/g;function Y(T,L){return typeof T=="object"&&T!==null&&T.key!=null?J(""+T.key):L.toString(36)}function E(T,L,ne,re,ae){var ce=typeof T;(ce==="undefined"||ce==="boolean")&&(T=null);var ue=!1;if(T===null)ue=!0;else switch(ce){case"string":case"number":ue=!0;break;case"object":switch(T.$$typeof){case t:case r:ue=!0}}if(ue)return ue=T,ae=ae(ue),T=re===""?"."+Y(ue,0):re,P(ae)?(ne="",T!=null&&(ne=T.replace(X,"$&/")+"/"),E(ae,L,ne,"",function(fe){return fe})):ae!=null&&(te(ae)&&(ae=Q(ae,ne+(!ae.key||ue&&ue.key===ae.key?"":(""+ae.key).replace(X,"$&/")+"/")+T)),L.push(ae)),1;if(ue=0,re=re===""?".":re+":",P(T))for(var B=0;B<T.length;B++){ce=T[B];var ee=re+Y(ce,B);ue+=E(ce,L,ne,ee,ae)}else if(ee=m(T),typeof ee=="function")for(T=ee.call(T),B=0;!(ce=T.next()).done;)ce=ce.value,ee=re+Y(ce,B++),ue+=E(ce,L,ne,ee,ae);else if(ce==="object")throw L=String(T),Error("Objects are not valid as a React child (found: "+(L==="[object Object]"?"object with keys {"+Object.keys(T).join(", ")+"}":L)+"). If you meant to render a collection of children, use an array instead.");return ue}function $(T,L,ne){if(T==null)return T;var re=[],ae=0;return E(T,re,"","",function(ce){return L.call(ne,ce,ae++)}),re}function z(T){if(T._status===-1){var L=T._result;L=L(),L.then(function(ne){(T._status===0||T._status===-1)&&(T._status=1,T._result=ne)},function(ne){(T._status===0||T._status===-1)&&(T._status=2,T._result=ne)}),T._status===-1&&(T._status=0,T._result=L)}if(T._status===1)return T._result.default;throw T._result}var U={current:null},A={transition:null},D={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:A,ReactCurrentOwner:O};function V(){throw Error("act(...) is not supported in production builds of React.")}return Ce.Children={map:$,forEach:function(T,L,ne){$(T,function(){L.apply(this,arguments)},ne)},count:function(T){var L=0;return $(T,function(){L++}),L},toArray:function(T){return $(T,function(L){return L})||[]},only:function(T){if(!te(T))throw Error("React.Children.only expected to receive a single React element child.");return T}},Ce.Component=C,Ce.Fragment=i,Ce.Profiler=a,Ce.PureComponent=j,Ce.StrictMode=l,Ce.Suspense=h,Ce.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=D,Ce.act=V,Ce.cloneElement=function(T,L,ne){if(T==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+T+".");var re=S({},T.props),ae=T.key,ce=T.ref,ue=T._owner;if(L!=null){if(L.ref!==void 0&&(ce=L.ref,ue=O.current),L.key!==void 0&&(ae=""+L.key),T.type&&T.type.defaultProps)var B=T.type.defaultProps;for(ee in L)H.call(L,ee)&&!W.hasOwnProperty(ee)&&(re[ee]=L[ee]===void 0&&B!==void 0?B[ee]:L[ee])}var ee=arguments.length-2;if(ee===1)re.children=ne;else if(1<ee){B=Array(ee);for(var fe=0;fe<ee;fe++)B[fe]=arguments[fe+2];re.children=B}return{$$typeof:t,type:T.type,key:ae,ref:ce,props:re,_owner:ue}},Ce.createContext=function(T){return T={$$typeof:c,_currentValue:T,_currentValue2:T,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},T.Provider={$$typeof:u,_context:T},T.Consumer=T},Ce.createElement=q,Ce.createFactory=function(T){var L=q.bind(null,T);return L.type=T,L},Ce.createRef=function(){return{current:null}},Ce.forwardRef=function(T){return{$$typeof:d,render:T}},Ce.isValidElement=te,Ce.lazy=function(T){return{$$typeof:y,_payload:{_status:-1,_result:T},_init:z}},Ce.memo=function(T,L){return{$$typeof:g,type:T,compare:L===void 0?null:L}},Ce.startTransition=function(T){var L=A.transition;A.transition={};try{T()}finally{A.transition=L}},Ce.unstable_act=V,Ce.useCallback=function(T,L){return U.current.useCallback(T,L)},Ce.useContext=function(T){return U.current.useContext(T)},Ce.useDebugValue=function(){},Ce.useDeferredValue=function(T){return U.current.useDeferredValue(T)},Ce.useEffect=function(T,L){return U.current.useEffect(T,L)},Ce.useId=function(){return U.current.useId()},Ce.useImperativeHandle=function(T,L,ne){return U.current.useImperativeHandle(T,L,ne)},Ce.useInsertionEffect=function(T,L){return U.current.useInsertionEffect(T,L)},Ce.useLayoutEffect=function(T,L){return U.current.useLayoutEffect(T,L)},Ce.useMemo=function(T,L){return U.current.useMemo(T,L)},Ce.useReducer=function(T,L,ne){return U.current.useReducer(T,L,ne)},Ce.useRef=function(T){return U.current.useRef(T)},Ce.useState=function(T){return U.current.useState(T)},Ce.useSyncExternalStore=function(T,L,ne){return U.current.useSyncExternalStore(T,L,ne)},Ce.useTransition=function(){return U.current.useTransition()},Ce.version="18.3.1",Ce}var Vd;function vi(){return Vd||(Vd=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 Ud;function B0(){if(Ud)return ti;Ud=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,h,g){var y,v={},m=null,w=null;g!==void 0&&(m=""+g),h.key!==void 0&&(m=""+h.key),h.ref!==void 0&&(w=h.ref);for(y in h)l.call(h,y)&&!u.hasOwnProperty(y)&&(v[y]=h[y]);if(d&&d.defaultProps)for(y in h=d.defaultProps,h)v[y]===void 0&&(v[y]=h[y]);return{$$typeof:r,type:d,key:m,ref:w,props:v,_owner:a.current}}return ti.Fragment=i,ti.jsx=c,ti.jsxs=c,ti}var Wd;function V0(){return Wd||(Wd=1,wu.exports=B0()),wu.exports}var _=V0(),b=vi();const fh=ch(b);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 Yd;function U0(){return Yd||(Yd=1,(function(t){function r(A,D){var V=A.length;A.push(D);e:for(;0<V;){var T=V-1>>>1,L=A[T];if(0<a(L,D))A[T]=D,A[V]=L,V=T;else break e}}function i(A){return A.length===0?null:A[0]}function l(A){if(A.length===0)return null;var D=A[0],V=A.pop();if(V!==D){A[0]=V;e:for(var T=0,L=A.length,ne=L>>>1;T<ne;){var re=2*(T+1)-1,ae=A[re],ce=re+1,ue=A[ce];if(0>a(ae,V))ce<L&&0>a(ue,ae)?(A[T]=ue,A[ce]=V,T=ce):(A[T]=ae,A[re]=V,T=re);else if(ce<L&&0>a(ue,V))A[T]=ue,A[ce]=V,T=ce;else break e}}return D}function a(A,D){var V=A.sortIndex-D.sortIndex;return V!==0?V:A.id-D.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 h=[],g=[],y=1,v=null,m=3,w=!1,S=!1,M=!1,C=typeof setTimeout=="function"?setTimeout:null,N=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(A){for(var D=i(g);D!==null;){if(D.callback===null)l(g);else if(D.startTime<=A)l(g),D.sortIndex=D.expirationTime,r(h,D);else break;D=i(g)}}function P(A){if(M=!1,k(A),!S)if(i(h)!==null)S=!0,z(H);else{var D=i(g);D!==null&&U(P,D.startTime-A)}}function H(A,D){S=!1,M&&(M=!1,N(q),q=-1),w=!0;var V=m;try{for(k(D),v=i(h);v!==null&&(!(v.expirationTime>D)||A&&!J());){var T=v.callback;if(typeof T=="function"){v.callback=null,m=v.priorityLevel;var L=T(v.expirationTime<=D);D=t.unstable_now(),typeof L=="function"?v.callback=L:v===i(h)&&l(h),k(D)}else l(h);v=i(h)}if(v!==null)var ne=!0;else{var re=i(g);re!==null&&U(P,re.startTime-D),ne=!1}return ne}finally{v=null,m=V,w=!1}}var O=!1,W=null,q=-1,Q=5,te=-1;function J(){return!(t.unstable_now()-te<Q)}function X(){if(W!==null){var A=t.unstable_now();te=A;var D=!0;try{D=W(!0,A)}finally{D?Y():(O=!1,W=null)}}else O=!1}var Y;if(typeof j=="function")Y=function(){j(X)};else if(typeof MessageChannel<"u"){var E=new MessageChannel,$=E.port2;E.port1.onmessage=X,Y=function(){$.postMessage(null)}}else Y=function(){C(X,0)};function z(A){W=A,O||(O=!0,Y())}function U(A,D){q=C(function(){A(t.unstable_now())},D)}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(A){A.callback=null},t.unstable_continueExecution=function(){S||w||(S=!0,z(H))},t.unstable_forceFrameRate=function(A){0>A||125<A?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Q=0<A?Math.floor(1e3/A):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_getFirstCallbackNode=function(){return i(h)},t.unstable_next=function(A){switch(m){case 1:case 2:case 3:var D=3;break;default:D=m}var V=m;m=D;try{return A()}finally{m=V}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(A,D){switch(A){case 1:case 2:case 3:case 4:case 5:break;default:A=3}var V=m;m=A;try{return D()}finally{m=V}},t.unstable_scheduleCallback=function(A,D,V){var T=t.unstable_now();switch(typeof V=="object"&&V!==null?(V=V.delay,V=typeof V=="number"&&0<V?T+V:T):V=T,A){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=V+L,A={id:y++,callback:D,priorityLevel:A,startTime:V,expirationTime:L,sortIndex:-1},V>T?(A.sortIndex=V,r(g,A),i(h)===null&&A===i(g)&&(M?(N(q),q=-1):M=!0,U(P,V-T))):(A.sortIndex=L,r(h,A),S||w||(S=!0,z(H))),A},t.unstable_shouldYield=J,t.unstable_wrapCallback=function(A){var D=m;return function(){var V=m;m=D;try{return A.apply(this,arguments)}finally{m=V}}}})(Eu)),Eu}var Xd;function W0(){return Xd||(Xd=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 Kd;function Y0(){if(Kd)return yt;Kd=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"),h=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]*$/,y={},v={};function m(e){return h.call(v,e)?!0:h.call(y,e)?!1:g.test(e)?v[e]=!0:(y[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 M(e,n,o,s,f,p,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=p,this.removeEmptyString=x}var C={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){C[e]=new M(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];C[n]=new M(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){C[e]=new M(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){C[e]=new M(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){C[e]=new M(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){C[e]=new M(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){C[e]=new M(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){C[e]=new M(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){C[e]=new M(e,5,!1,e.toLowerCase(),null,!1,!1)});var N=/[\-:]([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(N,j);C[n]=new M(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(N,j);C[n]=new M(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(N,j);C[n]=new M(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){C[e]=new M(e,1,!1,e.toLowerCase(),null,!1,!1)}),C.xlinkHref=new M("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){C[e]=new M(e,1,!1,e.toLowerCase(),null,!0,!0)});function k(e,n,o,s){var f=C.hasOwnProperty(n)?C[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 P=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,H=Symbol.for("react.element"),O=Symbol.for("react.portal"),W=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),Q=Symbol.for("react.profiler"),te=Symbol.for("react.provider"),J=Symbol.for("react.context"),X=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),E=Symbol.for("react.suspense_list"),$=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),U=Symbol.for("react.offscreen"),A=Symbol.iterator;function D(e){return e===null||typeof e!="object"?null:(e=A&&e[A]||e["@@iterator"],typeof e=="function"?e:null)}var V=Object.assign,T;function L(e){if(T===void 0)try{throw Error()}catch(o){var n=o.stack.trim().match(/\n( *(at )?)/);T=n&&n[1]||""}return`
-`+T+e}var ne=!1;function re(e,n){if(!e||ne)return"";ne=!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(Z){var s=Z}Reflect.construct(e,[],n)}else{try{n.call()}catch(Z){s=Z}e.call(n.prototype)}else{try{throw Error()}catch(Z){s=Z}e()}}catch(Z){if(Z&&s&&typeof Z.stack=="string"){for(var f=Z.stack.split(`
-`),p=s.stack.split(`
-`),x=f.length-1,I=p.length-1;1<=x&&0<=I&&f[x]!==p[I];)I--;for(;1<=x&&0<=I;x--,I--)if(f[x]!==p[I]){if(x!==1||I!==1)do if(x--,I--,0>I||f[x]!==p[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{ne=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?L(e):""}function ae(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 W:return"Fragment";case O:return"Portal";case Q:return"Profiler";case q:return"StrictMode";case Y:return"Suspense";case E:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case J:return(e.displayName||"Context")+".Consumer";case te:return(e._context.displayName||"Context")+".Provider";case X: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:ce(e.type)||"Memo";case z:n=e._payload,e=e._init;try{return ce(e(n))}catch{}}return null}function ue(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 B(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ee(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function fe(e){var n=ee(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,p=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return f.call(this)},set:function(x){s=""+x,p.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 ge(e){e._valueTracker||(e._valueTracker=fe(e))}function ve(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var o=n.getValue(),s="";return e&&(s=ee(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 V({},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=B(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=B(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,B(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=""+B(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 V({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Gt(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:B(o)}}function qt(e,n){var o=B(n.value),s=B(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 Tt,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(Tt=Tt||document.createElement("div"),Tt.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=Tt.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 Tl=V({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(Tl[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 po(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 ho=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,Sn=null,kn=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 Ti(e){Sn?kn?kn.push(e):kn=[e]:Sn=e}function ji(){if(Sn){var e=Sn,n=kn;if(kn=Sn=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,(Sn!==null||kn!==null)&&(zi(),ji())}}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 jl(e,n,o,s,f,p,x,I,R){var Z=Array.prototype.slice.call(arguments,3);try{n.apply(o,Z)}catch(ie){this.onError(ie)}}var Zn=!1,Nr=null,Cr=!1,xo=null,Il={onError:function(e){Zn=!0,Nr=e}};function zl(e,n,o,s,f,p,x,I,R){Zn=!1,Nr=null,jl.apply(Il,arguments)}function Ll(e,n,o,s,f,p,x,I,R){if(zl.apply(this,arguments),Zn){if(Zn){var Z=Nr;Zn=!1,Nr=null}else throw Error(i(198));Cr||(Cr=!0,xo=Z)}}function Zt(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(Zt(e)!==e)throw Error(i(188))}function Rl(e){var n=e.alternate;if(!n){if(n=Zt(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 p=f.alternate;if(p===null){if(s=f.return,s!==null){o=s;continue}break}if(f.child===p.child){for(p=f.child;p;){if(p===o)return _o(f),e;if(p===s)return _o(f),n;p=p.sibling}throw Error(i(188))}if(o.return!==s.return)o=f,s=p;else{for(var x=!1,I=f.child;I;){if(I===o){x=!0,o=f,s=p;break}if(I===s){x=!0,s=f,o=p;break}I=I.sibling}if(!x){for(I=p.child;I;){if(I===o){x=!0,o=p,s=f;break}if(I===s){x=!0,s=p,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,Oe=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 Tr=64,jr=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,p=e.pingedLanes,x=o&268435455;if(x!==0){var I=x&~f;I!==0?s=Jn(I):(p&=x,p!==0&&(s=Jn(p)))}else x=o&~f,x!==0?s=Jn(x):p!==0&&(s=Jn(p));if(s===0)return 0;if(n!==0&&n!==s&&(n&f)===0&&(f=s&-s,p=n&-n,f>=p||f===16&&(p&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,p=e.pendingLanes;0<p;){var x=31-_t(p),I=1<<x,R=f[x];R===-1?((I&o)===0||(I&s)!==0)&&(f[x]=Bl(I,n)):R<=n&&(e.expiredLanes|=I),p&=~I}}function ko(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Bi(){var e=Tr;return Tr<<=1,(Tr&4194240)===0&&(Tr=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),p=1<<f;n[f]=0,s[f]=-1,e[f]=-1,o&=~p}}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 xc(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var wc,Ul,_c,Sc,kc,Wl=!1,Vi=[],En=null,Nn=null,Cn=null,Eo=new Map,No=new Map,Mn=[],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 Ec(e,n){switch(e){case"focusin":case"focusout":En=null;break;case"dragenter":case"dragleave":Nn=null;break;case"mouseover":case"mouseout":Cn=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,p){return e===null||e.nativeEvent!==p?(e={blockedOn:n,domEventName:o,eventSystemFlags:s,nativeEvent:p,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 En=Co(En,e,n,o,s,f),!0;case"dragenter":return Nn=Co(Nn,e,n,o,s,f),!0;case"mouseover":return Cn=Co(Cn,e,n,o,s,f),!0;case"pointerover":var p=f.pointerId;return Eo.set(p,Co(Eo.get(p)||null,e,n,o,s,f)),!0;case"gotpointercapture":return p=f.pointerId,No.set(p,Co(No.get(p)||null,e,n,o,s,f)),!0}return!1}function Nc(e){var n=nr(e.target);if(n!==null){var o=Zt(n);if(o!==null){if(n=o.tag,n===13){if(n=wo(o),n!==null){e.blockedOn=n,kc(e.priority,function(){_c(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);ho=s,o.target.dispatchEvent(s),ho=null}else return n=Fo(o),n!==null&&Ul(n),e.blockedOn=o,!1;n.shift()}return!0}function Cc(e,n,o){Ui(e)&&o.delete(n)}function fm(){Wl=!1,En!==null&&Ui(En)&&(En=null),Nn!==null&&Ui(Nn)&&(Nn=null),Cn!==null&&Ui(Cn)&&(Cn=null),Eo.forEach(Cc),No.forEach(Cc)}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(En!==null&&Mo(En,e),Nn!==null&&Mo(Nn,e),Cn!==null&&Mo(Cn,e),Eo.forEach(n),No.forEach(n),o=0;o<Mn.length;o++)s=Mn[o],s.blockedOn===e&&(s.blockedOn=null);for(;0<Mn.length&&(o=Mn[0],o.blockedOn===null);)Nc(o),o.blockedOn===null&&Mn.shift()}var zr=P.ReactCurrentBatchConfig,Wi=!0;function dm(e,n,o,s){var f=ze,p=zr.transition;zr.transition=null;try{ze=1,Yl(e,n,o,s)}finally{ze=f,zr.transition=p}}function pm(e,n,o,s){var f=ze,p=zr.transition;zr.transition=null;try{ze=4,Yl(e,n,o,s)}finally{ze=f,zr.transition=p}}function Yl(e,n,o,s){if(Wi){var f=Xl(e,n,o,s);if(f===null)ca(e,n,s,Yi,o),Ec(e,s);else if(cm(f,e,n,o,s))s.stopPropagation();else if(Ec(e,s),n&4&&-1<um.indexOf(e)){for(;f!==null;){var p=Fo(f);if(p!==null&&wc(p),p=Xl(e,n,o,s),p===null&&ca(e,n,s,Yi,o),p===f)break;f=p}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=Zt(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 Mc(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 Pn=null,Kl=null,Xi=null;function Pc(){if(Xi)return Xi;var e,n=Kl,o=n.length,s,f="value"in Pn?Pn.value:Pn.textContent,p=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[p-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 Tc(){return!1}function St(e){function n(o,s,f,p,x){this._reactName=o,this._targetInst=f,this.type=s,this.nativeEvent=p,this.target=x,this.currentTarget=null;for(var I in e)e.hasOwnProperty(I)&&(o=e[I],this[I]=o?o(p):p[I]);return this.isDefaultPrevented=(p.defaultPrevented!=null?p.defaultPrevented:p.returnValue===!1)?Qi:Tc,this.isPropagationStopped=Tc,this}return V(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),To=V({},Lr,{view:0,detail:0}),hm=St(To),Gl,ql,jo,Gi=V({},To,{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!==jo&&(jo&&e.type==="mousemove"?(Gl=e.screenX-jo.screenX,ql=e.screenY-jo.screenY):ql=Gl=0,jo=e),Gl)},movementY:function(e){return"movementY"in e?e.movementY:ql}}),jc=St(Gi),gm=V({},Gi,{dataTransfer:0}),mm=St(gm),ym=V({},To,{relatedTarget:0}),Zl=St(ym),vm=V({},Lr,{animationName:0,elapsedTime:0,pseudoElement:0}),xm=St(vm),wm=V({},Lr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),_m=St(wm),Sm=V({},Lr,{data:0}),Ic=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=V({},To,{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),Tm=V({},Gi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),zc=St(Tm),jm=V({},To,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Jl}),Im=St(jm),zm=V({},Lr,{propertyName:0,elapsedTime:0,pseudoElement:0}),Lm=St(zm),Rm=V({},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,Lc=d&&(!ea||Io&&8<Io&&11>=Io),Rc=" ",Ac=!1;function Dc(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 $c(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 $c(n);case"keypress":return n.which!==32?null:(Ac=!0,Rc);case"textInput":return e=n.data,e===Rc&&Ac?null:e;default:return null}}function Om(e,n){if(Rr)return e==="compositionend"||!ea&&Dc(e,n)?(e=Pc(),Xi=Kl=Pn=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 Lc&&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 bc(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!Fm[e.type]:n==="textarea"}function Oc(e,n,o,s){Ti(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){rf(e,0)}function qi(e){var n=Or(e);if(ve(n))return e}function Bm(e,n){if(e==="change")return n}var Fc=!1;if(d){var ta;if(d){var na="oninput"in document;if(!na){var Hc=document.createElement("div");Hc.setAttribute("oninput","return;"),na=typeof Hc.oninput=="function"}ta=na}else ta=!1;Fc=ta&&(!document.documentMode||9<document.documentMode)}function Bc(){zo&&(zo.detachEvent("onpropertychange",Vc),Lo=zo=null)}function Vc(e){if(e.propertyName==="value"&&qi(Lo)){var n=[];Oc(n,Lo,e,go(e)),Li(Hm,n)}}function Vm(e,n,o){e==="focusin"?(Bc(),zo=n,Lo=o,zo.attachEvent("onpropertychange",Vc)):e==="focusout"&&Bc()}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(!h.call(n,f)||!Dt(e[f],n[f]))return!1}return!0}function Uc(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Wc(e,n){var o=Uc(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=Uc(o)}}function Yc(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Yc(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Xc(){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=Xc(),o=e.focusedElem,s=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&Yc(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,p=Math.min(s.start,f);s=s.end===void 0?p:Math.min(s.end,f),!e.extend&&p>s&&(f=s,s=p,p=f),f=Wc(o,p);var x=Wc(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(),p>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 Kc(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 Gc=Ji("animationend"),qc=Ji("animationiteration"),Zc=Ji("animationstart"),Jc=Ji("transitionend"),ef=new Map,tf="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 Tn(e,n){ef.set(e,n),u(n,[e])}for(var la=0;la<tf.length;la++){var aa=tf[la],Gm=aa.toLowerCase(),qm=aa[0].toUpperCase()+aa.slice(1);Tn(Gm,"on"+qm)}Tn(Gc,"onAnimationEnd"),Tn(qc,"onAnimationIteration"),Tn(Zc,"onAnimationStart"),Tn("dblclick","onDoubleClick"),Tn("focusin","onFocus"),Tn("focusout","onBlur"),Tn(Jc,"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 nf(e,n,o){var s=e.type||"unknown-event";e.currentTarget=o,Ll(s,n,void 0,e),e.currentTarget=null}function rf(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 p=void 0;if(n)for(var x=s.length-1;0<=x;x--){var I=s[x],R=I.instance,Z=I.currentTarget;if(I=I.listener,R!==p&&f.isPropagationStopped())break e;nf(f,I,Z),p=R}else for(x=0;x<s.length;x++){if(I=s[x],R=I.instance,Z=I.currentTarget,I=I.listener,R!==p&&f.isPropagationStopped())break e;nf(f,I,Z),p=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)||(of(n,e,2,!1),o.add(s))}function ua(e,n,o){var s=0;n&&(s|=4),of(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 of(e,n,o,s){switch(Mc(n)){case 1:var f=dm;break;case 4:f=pm;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 p=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=p=x;continue e}I=I.parentNode}}s=s.return}Li(function(){var Z=p,ie=go(o),se=[];e:{var oe=ef.get(e);if(oe!==void 0){var de=Ql,he=e;switch(e){case"keypress":if(Ki(o)===0)break e;case"keydown":case"keyup":de=Pm;break;case"focusin":he="focus",de=Zl;break;case"focusout":he="blur",de=Zl;break;case"beforeblur":case"afterblur":de=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":de=jc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":de=mm;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":de=Im;break;case Gc:case qc:case Zc:de=xm;break;case Jc:de=Lm;break;case"scroll":de=hm;break;case"wheel":de=Am;break;case"copy":case"cut":case"paste":de=_m;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":de=zc}var me=(n&4)!==0,Ue=!me&&e==="scroll",K=me?oe!==null?oe+"Capture":null:oe;me=[];for(var F=Z,G;F!==null;){G=F;var le=G.stateNode;if(G.tag===5&&le!==null&&(G=le,K!==null&&(le=Gn(F,K),le!=null&&me.push(bo(F,le,G)))),Ue)break;F=F.return}0<me.length&&(oe=new de(oe,he,null,o,ie),se.push({event:oe,listeners:me}))}}if((n&7)===0){e:{if(oe=e==="mouseover"||e==="pointerover",de=e==="mouseout"||e==="pointerout",oe&&o!==ho&&(he=o.relatedTarget||o.fromElement)&&(nr(he)||he[cn]))break e;if((de||oe)&&(oe=ie.window===ie?ie:(oe=ie.ownerDocument)?oe.defaultView||oe.parentWindow:window,de?(he=o.relatedTarget||o.toElement,de=Z,he=he?nr(he):null,he!==null&&(Ue=Zt(he),he!==Ue||he.tag!==5&&he.tag!==6)&&(he=null)):(de=null,he=Z),de!==he)){if(me=jc,le="onMouseLeave",K="onMouseEnter",F="mouse",(e==="pointerout"||e==="pointerover")&&(me=zc,le="onPointerLeave",K="onPointerEnter",F="pointer"),Ue=de==null?oe:Or(de),G=he==null?oe:Or(he),oe=new me(le,F+"leave",de,o,ie),oe.target=Ue,oe.relatedTarget=G,le=null,nr(ie)===Z&&(me=new me(K,F+"enter",he,o,ie),me.target=G,me.relatedTarget=Ue,le=me),Ue=le,de&&he)t:{for(me=de,K=he,F=0,G=me;G;G=$r(G))F++;for(G=0,le=K;le;le=$r(le))G++;for(;0<F-G;)me=$r(me),F--;for(;0<G-F;)K=$r(K),G--;for(;F--;){if(me===K||K!==null&&me===K.alternate)break t;me=$r(me),K=$r(K)}me=null}else me=null;de!==null&&sf(se,oe,de,me,!1),he!==null&&Ue!==null&&sf(se,Ue,he,me,!0)}}e:{if(oe=Z?Or(Z):window,de=oe.nodeName&&oe.nodeName.toLowerCase(),de==="select"||de==="input"&&oe.type==="file")var ye=Bm;else if(bc(oe))if(Fc)ye=Ym;else{ye=Um;var _e=Vm}else(de=oe.nodeName)&&de.toLowerCase()==="input"&&(oe.type==="checkbox"||oe.type==="radio")&&(ye=Wm);if(ye&&(ye=ye(e,Z))){Oc(se,ye,o,ie);break e}_e&&_e(e,oe,Z),e==="focusout"&&(_e=oe._wrapperState)&&_e.controlled&&oe.type==="number"&&ct(oe,"number",oe.value)}switch(_e=Z?Or(Z):window,e){case"focusin":(bc(_e)||_e.contentEditable==="true")&&(Ar=_e,oa=Z,Ao=null);break;case"focusout":Ao=oa=Ar=null;break;case"mousedown":ia=!0;break;case"contextmenu":case"mouseup":case"dragend":ia=!1,Kc(se,o,ie);break;case"selectionchange":if(Qm)break;case"keydown":case"keyup":Kc(se,o,ie)}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?Dc(e,o)&&(Ee="onCompositionEnd"):e==="keydown"&&o.keyCode===229&&(Ee="onCompositionStart");Ee&&(Lc&&o.locale!=="ko"&&(Rr||Ee!=="onCompositionStart"?Ee==="onCompositionEnd"&&Rr&&(Se=Pc()):(Pn=ie,Kl="value"in Pn?Pn.value:Pn.textContent,Rr=!0)),_e=ts(Z,Ee),0<_e.length&&(Ee=new Ic(Ee,e,null,o,ie),se.push({event:Ee,listeners:_e}),Se?Ee.data=Se:(Se=$c(o),Se!==null&&(Ee.data=Se)))),(Se=$m?bm(e,o):Om(e,o))&&(Z=ts(Z,"onBeforeInput"),0<Z.length&&(ie=new Ic("onBeforeInput","beforeinput",null,o,ie),se.push({event:ie,listeners:Z}),ie.data=Se))}rf(se,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,p=f.stateNode;f.tag===5&&p!==null&&(f=p,p=Gn(e,o),p!=null&&s.unshift(bo(e,p,f)),p=Gn(e,n),p!=null&&s.push(bo(e,p,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 sf(e,n,o,s,f){for(var p=n._reactName,x=[];o!==null&&o!==s;){var I=o,R=I.alternate,Z=I.stateNode;if(R!==null&&R===s)break;I.tag===5&&Z!==null&&(I=Z,f?(R=Gn(o,p),R!=null&&x.unshift(bo(o,R,I))):f||(R=Gn(o,p),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 lf(e){return(typeof e=="string"?e:""+e).replace(Jm,`
-`).replace(e0,"")}function ns(e,n,o){if(n=lf(n),lf(e)!==n&&o)throw Error(i(425))}function rs(){}var fa=null,da=null;function pa(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 ha=typeof setTimeout=="function"?setTimeout:void 0,t0=typeof clearTimeout=="function"?clearTimeout:void 0,af=typeof Promise=="function"?Promise:void 0,n0=typeof queueMicrotask=="function"?queueMicrotask:typeof af<"u"?function(e){return af.resolve(null).then(e).catch(r0)}:ha;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 uf(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),Jt="__reactFiber$"+br,Oo="__reactProps$"+br,cn="__reactContainer$"+br,ma="__reactEvents$"+br,o0="__reactListeners$"+br,i0="__reactHandles$"+br;function nr(e){var n=e[Jt];if(n)return n;for(var o=e.parentNode;o;){if(n=o[cn]||o[Jt]){if(o=n.alternate,n.child!==null||o!==null&&o.child!==null)for(e=uf(e);e!==null;){if(o=e[Jt])return o;e=uf(e)}return n}e=o,o=e.parentNode}return null}function Fo(e){return e=e[Jt]||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 In(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 zn={},rt=In(zn),dt=In(!1),rr=zn;function Hr(e,n){var o=e.type.contextTypes;if(!o)return zn;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===n)return s.__reactInternalMemoizedMaskedChildContext;var f={},p;for(p in o)f[p]=n[p];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=f),f}function pt(e){return e=e.childContextTypes,e!=null}function is(){Ae(dt),Ae(rt)}function cf(e,n,o){if(rt.current!==zn)throw Error(i(168));Le(rt,n),Le(dt,o)}function ff(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,ue(e)||"Unknown",f));return V({},o,s)}function ss(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||zn,rr=rt.current,Le(rt,e),Le(dt,dt.current),!0}function df(e,n,o){var s=e.stateNode;if(!s)throw Error(i(169));o?(e=ff(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 pf(e){fn===null?fn=[e]:fn.push(e)}function s0(e){ls=!0,pf(e)}function Ln(){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,Ln),f}finally{ze=n,va=!1}}return null}var Br=[],Vr=0,as=null,us=0,jt=[],It=0,or=null,dn=1,pn="";function ir(e,n){Br[Vr++]=us,Br[Vr++]=as,as=e,us=n}function hf(e,n,o){jt[It++]=dn,jt[It++]=pn,jt[It++]=or,or=e;var s=dn;e=pn;var f=32-_t(s)-1;s&=~(1<<f),o+=1;var p=32-_t(n)+f;if(30<p){var x=f-f%5;p=(s&(1<<x)-1).toString(32),s>>=x,f-=x,dn=1<<32-_t(n)+f|o<<f|s,pn=p+e}else dn=1<<p|o<<f|s,pn=e}function xa(e){e.return!==null&&(ir(e,1),hf(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=jt[--It],jt[It]=null,pn=jt[--It],jt[It]=null,dn=jt[--It],jt[It]=null}var kt=null,Et=null,$e=!1,$t=null;function gf(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 mf(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:pn}: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(!mf(e,n)){if(_a(e))throw Error(i(418));n=jn(o.nextSibling);var s=kt;n&&mf(e,n)?gf(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 yf(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 yf(e),$e=!0,!1;var n;if((n=e.tag!==3)&&!(n=e.tag!==5)&&(n=e.type,n=n!=="head"&&n!=="body"&&!pa(e.type,e.memoizedProps)),n&&(n=Et)){if(_a(e))throw vf(),Error(i(418));for(;n;)gf(e,n),n=jn(n.nextSibling)}if(yf(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 vf(){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=P.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,p=""+e;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===p?n.ref:(n=function(x){var I=f.refs;x===null?delete I[p]:I[p]=x},n._stringRef=p,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 xf(e){var n=e._init;return n(e._payload)}function wf(e){function n(K,F){if(e){var G=K.deletions;G===null?(K.deletions=[F],K.flags|=16):G.push(F)}}function o(K,F){if(!e)return null;for(;F!==null;)n(K,F),F=F.sibling;return null}function s(K,F){for(K=new Map;F!==null;)F.key!==null?K.set(F.key,F):K.set(F.index,F),F=F.sibling;return K}function f(K,F){return K=Hn(K,F),K.index=0,K.sibling=null,K}function p(K,F,G){return K.index=G,e?(G=K.alternate,G!==null?(G=G.index,G<F?(K.flags|=2,F):G):(K.flags|=2,F)):(K.flags|=1048576,F)}function x(K){return e&&K.alternate===null&&(K.flags|=2),K}function I(K,F,G,le){return F===null||F.tag!==6?(F=hu(G,K.mode,le),F.return=K,F):(F=f(F,G),F.return=K,F)}function R(K,F,G,le){var ye=G.type;return ye===W?ie(K,F,G.props.children,le,G.key):F!==null&&(F.elementType===ye||typeof ye=="object"&&ye!==null&&ye.$$typeof===z&&xf(ye)===F.type)?(le=f(F,G.props),le.ref=Ho(K,F,G),le.return=K,le):(le=As(G.type,G.key,G.props,null,K.mode,le),le.ref=Ho(K,F,G),le.return=K,le)}function Z(K,F,G,le){return F===null||F.tag!==4||F.stateNode.containerInfo!==G.containerInfo||F.stateNode.implementation!==G.implementation?(F=gu(G,K.mode,le),F.return=K,F):(F=f(F,G.children||[]),F.return=K,F)}function ie(K,F,G,le,ye){return F===null||F.tag!==7?(F=pr(G,K.mode,le,ye),F.return=K,F):(F=f(F,G),F.return=K,F)}function se(K,F,G){if(typeof F=="string"&&F!==""||typeof F=="number")return F=hu(""+F,K.mode,G),F.return=K,F;if(typeof F=="object"&&F!==null){switch(F.$$typeof){case H:return G=As(F.type,F.key,F.props,null,K.mode,G),G.ref=Ho(K,null,F),G.return=K,G;case O:return F=gu(F,K.mode,G),F.return=K,F;case z:var le=F._init;return se(K,le(F._payload),G)}if(tt(F)||D(F))return F=pr(F,K.mode,G,null),F.return=K,F;fs(K,F)}return null}function oe(K,F,G,le){var ye=F!==null?F.key:null;if(typeof G=="string"&&G!==""||typeof G=="number")return ye!==null?null:I(K,F,""+G,le);if(typeof G=="object"&&G!==null){switch(G.$$typeof){case H:return G.key===ye?R(K,F,G,le):null;case O:return G.key===ye?Z(K,F,G,le):null;case z:return ye=G._init,oe(K,F,ye(G._payload),le)}if(tt(G)||D(G))return ye!==null?null:ie(K,F,G,le,null);fs(K,G)}return null}function de(K,F,G,le,ye){if(typeof le=="string"&&le!==""||typeof le=="number")return K=K.get(G)||null,I(F,K,""+le,ye);if(typeof le=="object"&&le!==null){switch(le.$$typeof){case H:return K=K.get(le.key===null?G:le.key)||null,R(F,K,le,ye);case O:return K=K.get(le.key===null?G:le.key)||null,Z(F,K,le,ye);case z:var _e=le._init;return de(K,F,G,_e(le._payload),ye)}if(tt(le)||D(le))return K=K.get(G)||null,ie(F,K,le,ye,null);fs(F,le)}return null}function he(K,F,G,le){for(var ye=null,_e=null,Se=F,Ee=F=0,Ze=null;Se!==null&&Ee<G.length;Ee++){Se.index>Ee?(Ze=Se,Se=null):Ze=Se.sibling;var je=oe(K,Se,G[Ee],le);if(je===null){Se===null&&(Se=Ze);break}e&&Se&&je.alternate===null&&n(K,Se),F=p(je,F,Ee),_e===null?ye=je:_e.sibling=je,_e=je,Se=Ze}if(Ee===G.length)return o(K,Se),$e&&ir(K,Ee),ye;if(Se===null){for(;Ee<G.length;Ee++)Se=se(K,G[Ee],le),Se!==null&&(F=p(Se,F,Ee),_e===null?ye=Se:_e.sibling=Se,_e=Se);return $e&&ir(K,Ee),ye}for(Se=s(K,Se);Ee<G.length;Ee++)Ze=de(Se,K,Ee,G[Ee],le),Ze!==null&&(e&&Ze.alternate!==null&&Se.delete(Ze.key===null?Ee:Ze.key),F=p(Ze,F,Ee),_e===null?ye=Ze:_e.sibling=Ze,_e=Ze);return e&&Se.forEach(function(Bn){return n(K,Bn)}),$e&&ir(K,Ee),ye}function me(K,F,G,le){var ye=D(G);if(typeof ye!="function")throw Error(i(150));if(G=ye.call(G),G==null)throw Error(i(151));for(var _e=ye=null,Se=F,Ee=F=0,Ze=null,je=G.next();Se!==null&&!je.done;Ee++,je=G.next()){Se.index>Ee?(Ze=Se,Se=null):Ze=Se.sibling;var Bn=oe(K,Se,je.value,le);if(Bn===null){Se===null&&(Se=Ze);break}e&&Se&&Bn.alternate===null&&n(K,Se),F=p(Bn,F,Ee),_e===null?ye=Bn:_e.sibling=Bn,_e=Bn,Se=Ze}if(je.done)return o(K,Se),$e&&ir(K,Ee),ye;if(Se===null){for(;!je.done;Ee++,je=G.next())je=se(K,je.value,le),je!==null&&(F=p(je,F,Ee),_e===null?ye=je:_e.sibling=je,_e=je);return $e&&ir(K,Ee),ye}for(Se=s(K,Se);!je.done;Ee++,je=G.next())je=de(Se,K,Ee,je.value,le),je!==null&&(e&&je.alternate!==null&&Se.delete(je.key===null?Ee:je.key),F=p(je,F,Ee),_e===null?ye=je:_e.sibling=je,_e=je);return e&&Se.forEach(function(F0){return n(K,F0)}),$e&&ir(K,Ee),ye}function Ue(K,F,G,le){if(typeof G=="object"&&G!==null&&G.type===W&&G.key===null&&(G=G.props.children),typeof G=="object"&&G!==null){switch(G.$$typeof){case H:e:{for(var ye=G.key,_e=F;_e!==null;){if(_e.key===ye){if(ye=G.type,ye===W){if(_e.tag===7){o(K,_e.sibling),F=f(_e,G.props.children),F.return=K,K=F;break e}}else if(_e.elementType===ye||typeof ye=="object"&&ye!==null&&ye.$$typeof===z&&xf(ye)===_e.type){o(K,_e.sibling),F=f(_e,G.props),F.ref=Ho(K,_e,G),F.return=K,K=F;break e}o(K,_e);break}else n(K,_e);_e=_e.sibling}G.type===W?(F=pr(G.props.children,K.mode,le,G.key),F.return=K,K=F):(le=As(G.type,G.key,G.props,null,K.mode,le),le.ref=Ho(K,F,G),le.return=K,K=le)}return x(K);case O:e:{for(_e=G.key;F!==null;){if(F.key===_e)if(F.tag===4&&F.stateNode.containerInfo===G.containerInfo&&F.stateNode.implementation===G.implementation){o(K,F.sibling),F=f(F,G.children||[]),F.return=K,K=F;break e}else{o(K,F);break}else n(K,F);F=F.sibling}F=gu(G,K.mode,le),F.return=K,K=F}return x(K);case z:return _e=G._init,Ue(K,F,_e(G._payload),le)}if(tt(G))return he(K,F,G,le);if(D(G))return me(K,F,G,le);fs(K,G)}return typeof G=="string"&&G!==""||typeof G=="number"?(G=""+G,F!==null&&F.tag===6?(o(K,F.sibling),F=f(F,G),F.return=K,K=F):(o(K,F),F=hu(G,K.mode,le),F.return=K,K=F),x(K)):o(K,F)}return Ue}var Wr=wf(!0),_f=wf(!1),ds=In(null),ps=null,Yr=null,Ea=null;function Na(){Ea=Yr=ps=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){ps=e,Ea=Yr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(ht=!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(ps===null)throw Error(i(308));Yr=e,ps.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 Sf(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,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 Rn=!1;function Ta(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function kf(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 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,Pa(s)):(n.next=f.next,f.next=n),s.interleaved=n,hn(e,o)}function hs(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 Ef(e,n){var o=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,o===s)){var f=null,p=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};p===null?f=p=x:p=p.next=x,o=o.next}while(o!==null);p===null?f=p=n:p=p.next=n}else f=p=n;o={baseState:s.baseState,firstBaseUpdate:f,lastBaseUpdate:p,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;Rn=!1;var p=f.firstBaseUpdate,x=f.lastBaseUpdate,I=f.shared.pending;if(I!==null){f.shared.pending=null;var R=I,Z=R.next;R.next=null,x===null?p=Z:x.next=Z,x=R;var ie=e.alternate;ie!==null&&(ie=ie.updateQueue,I=ie.lastBaseUpdate,I!==x&&(I===null?ie.firstBaseUpdate=Z:I.next=Z,ie.lastBaseUpdate=R))}if(p!==null){var se=f.baseState;x=0,ie=Z=R=null,I=p;do{var oe=I.lane,de=I.eventTime;if((s&oe)===oe){ie!==null&&(ie=ie.next={eventTime:de,lane:0,tag:I.tag,payload:I.payload,callback:I.callback,next:null});e:{var he=e,me=I;switch(oe=n,de=o,me.tag){case 1:if(he=me.payload,typeof he=="function"){se=he.call(de,se,oe);break e}se=he;break e;case 3:he.flags=he.flags&-65537|128;case 0:if(he=me.payload,oe=typeof he=="function"?he.call(de,se,oe):he,oe==null)break e;se=V({},se,oe);break e;case 2:Rn=!0}}I.callback!==null&&I.lane!==0&&(e.flags|=64,oe=f.effects,oe===null?f.effects=[I]:oe.push(I))}else de={eventTime:de,lane:oe,tag:I.tag,payload:I.payload,callback:I.callback,next:null},ie===null?(Z=ie=de,R=se):ie=ie.next=de,x|=oe;if(I=I.next,I===null){if(I=f.shared.pending,I===null)break;oe=I,I=oe.next,oe.next=null,f.lastBaseUpdate=oe,f.shared.pending=null}}while(!0);if(ie===null&&(R=se),f.baseState=R,f.firstBaseUpdate=Z,f.lastBaseUpdate=ie,n=f.shared.interleaved,n!==null){f=n;do x|=f.lane,f=f.next;while(f!==n)}else p===null&&(f.shared.lanes=0);ur|=x,e.lanes=x,e.memoizedState=se}}function Nf(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={},en=In(Bo),Vo=In(Bo),Uo=In(Bo);function lr(e){if(e===Bo)throw Error(i(174));return e}function ja(e,n){switch(Le(Uo,n),Le(Vo,e),Le(en,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(en),Le(en,n)}function Kr(){Ae(en),Ae(Vo),Ae(Uo)}function Cf(e){lr(Uo.current);var n=lr(en.current),o=xt(n,e.type);n!==o&&(Le(Vo,e),Le(en,o))}function Ia(e){Vo.current===e&&(Ae(en),Ae(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 za=[];function La(){for(var e=0;e<za.length;e++)za[e]._workInProgressVersionPrimary=null;za.length=0}var ys=P.ReactCurrentDispatcher,Ra=P.ReactCurrentBatchConfig,ar=0,He=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,p){if(ar=p,He=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,ys.current=e===null||e.memoizedState===null?d0:p0,e=o(s,f),Wo){p=0;do{if(Wo=!1,Yo=0,25<=p)throw Error(i(301));p+=1,Ge=Xe=null,n.updateQueue=null,ys.current=h0,e=o(s,f)}while(Wo)}if(ys.current=_s,n=Xe!==null&&Xe.next!==null,ar=0,Ge=Xe=He=null,vs=!1,n)throw Error(i(300));return e}function $a(){var e=Yo!==0;return Yo=0,e}function tn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ge===null?He.memoizedState=Ge=e:Ge=Ge.next=e,Ge}function Lt(){if(Xe===null){var e=He.alternate;e=e!==null?e.memoizedState:null}else e=Xe.next;var n=Ge===null?He.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?He.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,p=o.pending;if(p!==null){if(f!==null){var x=f.next;f.next=p.next,p.next=x}s.baseQueue=f=p,o.pending=null}if(f!==null){p=f.next,s=s.baseState;var I=x=null,R=null,Z=p;do{var ie=Z.lane;if((ar&ie)===ie)R!==null&&(R=R.next={lane:0,action:Z.action,hasEagerState:Z.hasEagerState,eagerState:Z.eagerState,next:null}),s=Z.hasEagerState?Z.eagerState:e(s,Z.action);else{var se={lane:ie,action:Z.action,hasEagerState:Z.hasEagerState,eagerState:Z.eagerState,next:null};R===null?(I=R=se,x=s):R=R.next=se,He.lanes|=ie,ur|=ie}Z=Z.next}while(Z!==null&&Z!==p);R===null?x=s:R.next=I,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 p=f.lane,He.lanes|=p,ur|=p,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,p=n.memoizedState;if(f!==null){o.pending=null;var x=f=f.next;do p=e(p,x.action),x=x.next;while(x!==f);Dt(p,n.memoizedState)||(ht=!0),n.memoizedState=p,n.baseQueue===null&&(n.baseState=p),o.lastRenderedState=p}return[p,s]}function Mf(){}function Pf(e,n){var o=He,s=Lt(),f=n(),p=!Dt(s.memoizedState,f);if(p&&(s.memoizedState=f,ht=!0),s=s.queue,Fa(If.bind(null,o,s,e),[e]),s.getSnapshot!==n||p||Ge!==null&&Ge.memoizedState.tag&1){if(o.flags|=2048,Ko(9,jf.bind(null,o,s,f,n),void 0,null),qe===null)throw Error(i(349));(ar&30)!==0||Tf(o,n,f)}return f}function Tf(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 jf(e,n,o,s){n.value=o,n.getSnapshot=s,zf(n)&&Lf(e)}function If(e,n,o){return o(function(){zf(n)&&Lf(e)})}function zf(e){var n=e.getSnapshot;e=e.value;try{var o=n();return!Dt(e,o)}catch{return!0}}function Lf(e){var n=hn(e,1);n!==null&&Ht(n,e,1,-1)}function Rf(e){var n=tn();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,He,e),[n.memoizedState,e]}function Ko(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 Lt().memoizedState}function xs(e,n,o,s){var f=tn();He.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 p=void 0;if(Xe!==null){var x=Xe.memoizedState;if(p=x.destroy,s!==null&&Aa(s,x.deps)){f.memoizedState=Ko(n,o,p,s);return}}He.flags|=e,f.memoizedState=Ko(1|n,o,p,s)}function Df(e,n){return xs(8390656,8,e,n)}function Fa(e,n){return ws(2048,8,e,n)}function $f(e,n){return ws(4,2,e,n)}function bf(e,n){return ws(4,4,e,n)}function Of(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 Ff(e,n,o){return o=o!=null?o.concat([e]):null,ws(4,4,Of.bind(null,n,e),o)}function Ha(){}function Hf(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 Bf(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 Vf(e,n,o){return(ar&21)===0?(e.baseState&&(e.baseState=!1,ht=!0),e.memoizedState=o):(Dt(o,n)||(o=Bi(),He.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 Uf(){return Lt().memoizedState}function c0(e,n,o){var s=On(e);if(o={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null},Wf(e))Yf(n,o);else if(o=Sf(e,n,o,s),o!==null){var f=ut();Ht(o,e,s,f),Xf(o,n,s)}}function f0(e,n,o){var s=On(e),f={lane:s,action:o,hasEagerState:!1,eagerState:null,next:null};if(Wf(e))Yf(n,f);else{var p=e.alternate;if(e.lanes===0&&(p===null||p.lanes===0)&&(p=n.lastRenderedReducer,p!==null))try{var x=n.lastRenderedState,I=p(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=Sf(e,n,f,s),o!==null&&(f=ut(),Ht(o,e,s,f),Xf(o,n,s))}}function Wf(e){var n=e.alternate;return e===He||n!==null&&n===He}function Yf(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 Xf(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 tn().memoizedState=[e,n===void 0?null:n],e},useContext:zt,useEffect:Df,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,xs(4194308,4,Of.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=tn();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var s=tn();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,He,e),[s.memoizedState,e]},useRef:function(e){var n=tn();return e={current:e},n.memoizedState=e},useState:Rf,useDebugValue:Ha,useDeferredValue:function(e){return tn().memoizedState=e},useTransition:function(){var e=Rf(!1),n=e[0];return e=u0.bind(null,e[1]),tn().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var s=He,f=tn();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||Tf(s,n,o)}f.memoizedState=o;var p={value:o,getSnapshot:n};return f.queue=p,Df(If.bind(null,s,p,e),[e]),s.flags|=2048,Ko(9,jf.bind(null,s,p,o,n),void 0,null),o},useId:function(){var e=tn(),n=qe.identifierPrefix;if($e){var o=pn,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},p0={readContext:zt,useCallback:Hf,useContext:zt,useEffect:Fa,useImperativeHandle:Ff,useInsertionEffect:$f,useLayoutEffect:bf,useMemo:Bf,useReducer:ba,useRef:Af,useState:function(){return ba(Xo)},useDebugValue:Ha,useDeferredValue:function(e){var n=Lt();return Vf(n,Xe.memoizedState,e)},useTransition:function(){var e=ba(Xo)[0],n=Lt().memoizedState;return[e,n]},useMutableSource:Mf,useSyncExternalStore:Pf,useId:Uf,unstable_isNewReconciler:!1},h0={readContext:zt,useCallback:Hf,useContext:zt,useEffect:Fa,useImperativeHandle:Ff,useInsertionEffect:$f,useLayoutEffect:bf,useMemo:Bf,useReducer:Oa,useRef:Af,useState:function(){return Oa(Xo)},useDebugValue:Ha,useDeferredValue:function(e){var n=Lt();return Xe===null?n.memoizedState=e:Vf(n,Xe.memoizedState,e)},useTransition:function(){var e=Oa(Xo)[0],n=Lt().memoizedState;return[e,n]},useMutableSource:Mf,useSyncExternalStore:Pf,useId:Uf,unstable_isNewReconciler:!1};function bt(e,n){if(e&&e.defaultProps){n=V({},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:V({},n,o),e.memoizedState=o,e.lanes===0&&(e.updateQueue.baseState=o)}var Ss={isMounted:function(e){return(e=e._reactInternals)?Zt(e)===e:!1},enqueueSetState:function(e,n,o){e=e._reactInternals;var s=ut(),f=On(e),p=gn(s,f);p.payload=n,o!=null&&(p.callback=o),n=An(e,p,f),n!==null&&(Ht(n,e,f,s),hs(n,e,f))},enqueueReplaceState:function(e,n,o){e=e._reactInternals;var s=ut(),f=On(e),p=gn(s,f);p.tag=1,p.payload=n,o!=null&&(p.callback=o),n=An(e,p,f),n!==null&&(Ht(n,e,f,s),hs(n,e,f))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var o=ut(),s=On(e),f=gn(o,s);f.tag=2,n!=null&&(f.callback=n),n=An(e,f,s),n!==null&&(Ht(n,e,s,o),hs(n,e,s))}};function Kf(e,n,o,s,f,p,x){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,p,x):n.prototype&&n.prototype.isPureReactComponent?!Ro(o,s)||!Ro(f,p):!0}function Qf(e,n,o){var s=!1,f=zn,p=n.contextType;return typeof p=="object"&&p!==null?p=zt(p):(f=pt(n)?rr:rt.current,s=n.contextTypes,p=(s=s!=null)?Hr(e,f):zn),n=new n(o,p),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=p),n}function Gf(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={},Ta(e);var p=n.contextType;typeof p=="object"&&p!==null?f.context=zt(p):(p=pt(n)?rr:rt.current,f.context=Hr(e,p)),f.state=e.memoizedState,p=n.getDerivedStateFromProps,typeof p=="function"&&(Ba(e,n,p,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+=ae(s),s=s.return;while(s);var f=o}catch(p){f=`
-Error generating stack: `+p.message+`
-`+p.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 qf(e,n,o){o=gn(-1,o),o.tag=3,o.payload={element:null};var s=n.value;return o.callback=function(){Ts||(Ts=!0,su=s),Wa(e,n)},o}function Zf(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 p=e.stateNode;return p!==null&&typeof p.componentDidCatch=="function"&&(o.callback=function(){Wa(e,n),typeof s!="function"&&($n===null?$n=new Set([this]):$n.add(this));var x=n.stack;this.componentDidCatch(n.value,{componentStack:x!==null?x:""})}),o}function Jf(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=T0.bind(null,e,n,o),n.then(e,e))}function ed(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 td(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,An(o,n,1))),o.lanes|=1),e):(e.flags|=65536,e.lanes=f,e)}var m0=P.ReactCurrentOwner,ht=!1;function at(e,n,o,s){n.child=e===null?_f(n,null,o,s):Wr(n,e.child,o,s)}function nd(e,n,o,s,f){o=o.render;var p=n.ref;return Xr(n,f),s=Da(e,n,o,s,p,f),o=$a(),e!==null&&!ht?(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 rd(e,n,o,s,f){if(e===null){var p=o.type;return typeof p=="function"&&!pu(p)&&p.defaultProps===void 0&&o.compare===null&&o.defaultProps===void 0?(n.tag=15,n.type=p,od(e,n,p,s,f)):(e=As(o.type,null,s,n,n.mode,f),e.ref=n.ref,e.return=n,n.child=e)}if(p=e.child,(e.lanes&f)===0){var x=p.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=Hn(p,s),e.ref=n.ref,e.return=n,n.child=e}function od(e,n,o,s,f){if(e!==null){var p=e.memoizedProps;if(Ro(p,s)&&e.ref===n.ref)if(ht=!1,n.pendingProps=s=p,(e.lanes&f)!==0)(e.flags&131072)!==0&&(ht=!0);else return n.lanes=e.lanes,mn(e,n,f)}return Ya(e,n,o,s,f)}function id(e,n,o){var s=n.pendingProps,f=s.children,p=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=p!==null?p.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=p!==null?p.baseLanes:o,Le(qr,Nt),Nt|=s}else p!==null?(s=p.baseLanes|o,n.memoizedState=null):s=o,Le(qr,Nt),Nt|=s;return at(e,n,f,o),n.child}function sd(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 p=pt(o)?rr:rt.current;return p=Hr(n,p),Xr(n,f),o=Da(e,n,o,s,p,f),s=$a(),e!==null&&!ht?(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 ld(e,n,o,s,f){if(pt(o)){var p=!0;ss(n)}else p=!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,Z=o.contextType;typeof Z=="object"&&Z!==null?Z=zt(Z):(Z=pt(o)?rr:rt.current,Z=Hr(n,Z));var ie=o.getDerivedStateFromProps,se=typeof ie=="function"||typeof x.getSnapshotBeforeUpdate=="function";se||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(I!==s||R!==Z)&&Gf(n,x,s,Z),Rn=!1;var oe=n.memoizedState;x.state=oe,gs(n,s,x,f),R=n.memoizedState,I!==s||oe!==R||dt.current||Rn?(typeof ie=="function"&&(Ba(n,o,ie,s),R=n.memoizedState),(I=Rn||Kf(n,o,I,s,oe,R,Z))?(se||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=Z,s=I):(typeof x.componentDidMount=="function"&&(n.flags|=4194308),s=!1)}else{x=n.stateNode,kf(e,n),I=n.memoizedProps,Z=n.type===n.elementType?I:bt(n.type,I),x.props=Z,se=n.pendingProps,oe=x.context,R=o.contextType,typeof R=="object"&&R!==null?R=zt(R):(R=pt(o)?rr:rt.current,R=Hr(n,R));var de=o.getDerivedStateFromProps;(ie=typeof de=="function"||typeof x.getSnapshotBeforeUpdate=="function")||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(I!==se||oe!==R)&&Gf(n,x,s,R),Rn=!1,oe=n.memoizedState,x.state=oe,gs(n,s,x,f);var he=n.memoizedState;I!==se||oe!==he||dt.current||Rn?(typeof de=="function"&&(Ba(n,o,de,s),he=n.memoizedState),(Z=Rn||Kf(n,o,Z,s,oe,he,R)||!1)?(ie||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"||I===e.memoizedProps&&oe===e.memoizedState||(n.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||I===e.memoizedProps&&oe===e.memoizedState||(n.flags|=1024),n.memoizedProps=s,n.memoizedState=he),x.props=s,x.state=he,x.context=R,s=Z):(typeof x.componentDidUpdate!="function"||I===e.memoizedProps&&oe===e.memoizedState||(n.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||I===e.memoizedProps&&oe===e.memoizedState||(n.flags|=1024),s=!1)}return Xa(e,n,o,s,p,f)}function Xa(e,n,o,s,f,p){sd(e,n);var x=(n.flags&128)!==0;if(!s&&!x)return f&&df(n,o,!1),mn(e,n,p);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,p),n.child=Wr(n,null,I,p)):at(e,n,I,p),n.memoizedState=s.state,f&&df(n,o,!0),n.child}function ad(e){var n=e.stateNode;n.pendingContext?cf(e,n.pendingContext,n.pendingContext!==n.context):n.context&&cf(e,n.context,!1),ja(e,n.containerInfo)}function ud(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 cd(e,n,o){var s=n.pendingProps,f=Fe.current,p=!1,x=(n.flags&128)!==0,I;if((I=x)||(I=e!==null&&e.memoizedState===null?!1:(f&2)!==0),I?(p=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(f|=1),Le(Fe,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,p?(s=n.mode,p=n.child,x={mode:"hidden",children:x},(s&1)===0&&p!==null?(p.childLanes=0,p.pendingProps=x):p=Ds(x,s,0,null),e=pr(e,s,o,null),p.return=n,e.return=n,p.sibling=e,n.child=p,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(p){p=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=Hn(f,R),s.subtreeFlags=f.subtreeFlags&14680064),I!==null?p=Hn(I,p):(p=pr(p,x,o,null),p.flags|=2),p.return=n,s.return=n,s.sibling=p,n.child=s,s=p,p=n.child,x=e.child.memoizedState,x=x===null?Qa(o):{baseLanes:x.baseLanes|o,cachePool:null,transitions:x.transitions},p.memoizedState=x,p.childLanes=e.childLanes&~o,n.memoizedState=Ka,s}return p=e.child,e=p.sibling,s=Hn(p,{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,p,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):(p=s.fallback,f=n.mode,s=Ds({mode:"visible",children:s.children},f,0,null),p=pr(p,f,x,null),p.flags|=2,s.return=n,p.return=n,s.sibling=p,n.child=s,(n.mode&1)!==0&&Wr(n,e.child,null,x),n.child.memoizedState=Qa(x),n.memoizedState=Ka,p);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,p=Error(i(419)),s=Ua(p,s,void 0),ks(e,n,x,s)}if(I=(x&e.childLanes)!==0,ht||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!==p.retryLane&&(p.retryLane=f,hn(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=j0.bind(null,e),f._reactRetry=n,null):(e=p.treeContext,Et=jn(f.nextSibling),kt=n,$e=!0,$t=null,e!==null&&(jt[It++]=dn,jt[It++]=pn,jt[It++]=or,dn=e.id,pn=e.overflow,or=n),n=Ga(n,s.children),n.flags|=4096,n)}function fd(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 p=e.memoizedState;p===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:s,tail:o,tailMode:f}:(p.isBackwards=n,p.rendering=null,p.renderingStartTime=0,p.last=s,p.tail=o,p.tailMode=f)}function dd(e,n,o){var s=n.pendingProps,f=s.revealOrder,p=s.tail;if(at(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&&fd(e,o,n);else if(e.tag===19)fd(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(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),qa(n,!1,f,o,p);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,p);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=Hn(e,e.pendingProps),n.child=o,o.return=n;e.sibling!==null;)e=e.sibling,o=o.sibling=Hn(e,e.pendingProps),o.return=n;o.sibling=null}return n.child}function v0(e,n,o){switch(n.tag){case 3:ad(n),Ur();break;case 5:Cf(n);break;case 1:pt(n.type)&&ss(n);break;case 4:ja(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(Fe,Fe.current&1),n.flags|=128,null):(o&n.child.childLanes)!==0?cd(e,n,o):(Le(Fe,Fe.current&1),e=mn(e,n,o),e!==null?e.sibling:null);Le(Fe,Fe.current&1);break;case 19:if(s=(o&n.childLanes)!==0,(e.flags&128)!==0){if(s)return dd(e,n,o);n.flags|=128}if(f=n.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),Le(Fe,Fe.current),s)break;return null;case 22:case 23:return n.lanes=0,id(e,n,o)}return mn(e,n,o)}var pd,Za,hd,gd;pd=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(){},hd=function(e,n,o,s){var f=e.memoizedProps;if(f!==s){e=n.stateNode,lr(en.current);var p=null;switch(o){case"input":f=ke(e,f),s=ke(e,s),p=[];break;case"select":f=V({},f,{value:void 0}),s=V({},s,{value:void 0}),p=[];break;case"textarea":f=ln(e,f),s=ln(e,s),p=[];break;default:typeof f.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=rs)}fo(o,s);var x;o=null;for(Z in f)if(!s.hasOwnProperty(Z)&&f.hasOwnProperty(Z)&&f[Z]!=null)if(Z==="style"){var I=f[Z];for(x in I)I.hasOwnProperty(x)&&(o||(o={}),o[x]="")}else Z!=="dangerouslySetInnerHTML"&&Z!=="children"&&Z!=="suppressContentEditableWarning"&&Z!=="suppressHydrationWarning"&&Z!=="autoFocus"&&(a.hasOwnProperty(Z)?p||(p=[]):(p=p||[]).push(Z,null));for(Z in s){var R=s[Z];if(I=f!=null?f[Z]:void 0,s.hasOwnProperty(Z)&&R!==I&&(R!=null||I!=null))if(Z==="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||(p||(p=[]),p.push(Z,o)),o=R;else Z==="dangerouslySetInnerHTML"?(R=R?R.__html:void 0,I=I?I.__html:void 0,R!=null&&I!==R&&(p=p||[]).push(Z,R)):Z==="children"?typeof R!="string"&&typeof R!="number"||(p=p||[]).push(Z,""+R):Z!=="suppressContentEditableWarning"&&Z!=="suppressHydrationWarning"&&(a.hasOwnProperty(Z)?(R!=null&&Z==="onScroll"&&Re("scroll",e),p||I===R||(p=[])):(p=p||[]).push(Z,R))}o&&(p=p||[]).push("style",o);var Z=p;(n.updateQueue=Z)&&(n.flags|=4)}},gd=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 pt(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)hd(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(en.current),cs(n)){s=n.stateNode,o=n.type;var p=n.memoizedProps;switch(s[Jt]=n,s[Oo]=p,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,p),Re("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!p.multiple},Re("invalid",s);break;case"textarea":Gt(s,p),Re("invalid",s)}fo(o,p),f=null;for(var x in p)if(p.hasOwnProperty(x)){var I=p[x];x==="children"?typeof I=="string"?s.textContent!==I&&(p.suppressHydrationWarning!==!0&&ns(s.textContent,I,e),f=["children",I]):typeof I=="number"&&s.textContent!==""+I&&(p.suppressHydrationWarning!==!0&&ns(s.textContent,I,e),f=["children",""+I]):a.hasOwnProperty(x)&&I!=null&&x==="onScroll"&&Re("scroll",s)}switch(o){case"input":ge(s),lt(s,p,!0);break;case"textarea":ge(s),ft(s);break;case"select":case"option":break;default:typeof p.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[Jt]=n,e[Oo]=s,pd(e,n,!1,!1),n.stateNode=e;e:{switch(x=po(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=V({},s,{value:void 0}),Re("invalid",e);break;case"textarea":Gt(e,s),f=ln(e,s),Re("invalid",e);break;default:f=s}fo(o,f),I=f;for(p in I)if(I.hasOwnProperty(p)){var R=I[p];p==="style"?Mi(e,R):p==="dangerouslySetInnerHTML"?(R=R?R.__html:void 0,R!=null&&Er(e,R)):p==="children"?typeof R=="string"?(o!=="textarea"||R!=="")&&an(e,R):typeof R=="number"&&an(e,""+R):p!=="suppressContentEditableWarning"&&p!=="suppressHydrationWarning"&&p!=="autoFocus"&&(a.hasOwnProperty(p)?R!=null&&p==="onScroll"&&Re("scroll",e):R!=null&&k(e,p,R,x))}switch(o){case"input":ge(e),lt(e,s,!1);break;case"textarea":ge(e),ft(e);break;case"option":s.value!=null&&e.setAttribute("value",""+B(s.value));break;case"select":e.multiple=!!s.multiple,p=s.value,p!=null?nt(e,!!s.multiple,p,!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)gd(e,n,e.memoizedProps,s);else{if(typeof s!="string"&&n.stateNode===null)throw Error(i(166));if(o=lr(Uo.current),lr(en.current),cs(n)){if(s=n.stateNode,o=n.memoizedProps,s[Jt]=n,(p=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)}p&&(n.flags|=4)}else s=(o.nodeType===9?o:o.ownerDocument).createTextNode(s),s[Jt]=n,n.stateNode=s}return it(n),null;case 13:if(Ae(Fe),s=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if($e&&Et!==null&&(n.mode&1)!==0&&(n.flags&128)===0)vf(),Ur(),n.flags|=98560,p=!1;else if(p=cs(n),s!==null&&s.dehydrated!==null){if(e===null){if(!p)throw Error(i(318));if(p=n.memoizedState,p=p!==null?p.dehydrated:null,!p)throw Error(i(317));p[Jt]=n}else Ur(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;it(n),p=!1}else $t!==null&&(uu($t),$t=null),p=!0;if(!p)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?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 pt(n.type)&&is(),it(n),null;case 19:if(Ae(Fe),p=n.memoizedState,p===null)return it(n),null;if(s=(n.flags&128)!==0,x=p.rendering,x===null)if(s)Qo(p,!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(p,!1),s=x.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),n.subtreeFlags=0,s=o,o=n.child;o!==null;)p=o,e=s,p.flags&=14680066,x=p.alternate,x===null?(p.childLanes=0,p.lanes=e,p.child=null,p.subtreeFlags=0,p.memoizedProps=null,p.memoizedState=null,p.updateQueue=null,p.dependencies=null,p.stateNode=null):(p.childLanes=x.childLanes,p.lanes=x.lanes,p.child=x.child,p.subtreeFlags=0,p.deletions=null,p.memoizedProps=x.memoizedProps,p.memoizedState=x.memoizedState,p.updateQueue=x.updateQueue,p.type=x.type,e=x.dependencies,p.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),o=o.sibling;return Le(Fe,Fe.current&1|2),n.child}e=e.sibling}p.tail!==null&&Oe()>Zr&&(n.flags|=128,s=!0,Qo(p,!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(p,!0),p.tail===null&&p.tailMode==="hidden"&&!x.alternate&&!$e)return it(n),null}else 2*Oe()-p.renderingStartTime>Zr&&o!==1073741824&&(n.flags|=128,s=!0,Qo(p,!1),n.lanes=4194304);p.isBackwards?(x.sibling=n.child,n.child=x):(o=p.last,o!==null?o.sibling=x:n.child=x,p.last=x)}return p.tail!==null?(n=p.tail,p.rendering=n,p.tail=n.sibling,p.renderingStartTime=Oe(),n.sibling=null,o=Fe.current,Le(Fe,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 pt(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(Fe),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(Fe),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,pe=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 md=!1;function S0(e,n){if(fa=Wi,e=Xc(),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,p=s.focusNode;s=s.focusOffset;try{o.nodeType,p.nodeType}catch{o=null;break e}var x=0,I=-1,R=-1,Z=0,ie=0,se=e,oe=null;t:for(;;){for(var de;se!==o||f!==0&&se.nodeType!==3||(I=x+f),se!==p||s!==0&&se.nodeType!==3||(R=x+s),se.nodeType===3&&(x+=se.nodeValue.length),(de=se.firstChild)!==null;)oe=se,se=de;for(;;){if(se===e)break t;if(oe===o&&++Z===f&&(I=x),oe===p&&++ie===s&&(R=x),(de=se.nextSibling)!==null)break;se=oe,oe=se.parentNode}se=de}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,pe=n;pe!==null;)if(n=pe,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,pe=e;else for(;pe!==null;){n=pe;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 me=he.memoizedProps,Ue=he.memoizedState,K=n.stateNode,F=K.getSnapshotBeforeUpdate(n.elementType===n.type?me:bt(n.type,me),Ue);K.__reactInternalSnapshotBeforeUpdate=F}break;case 3:var G=n.stateNode.containerInfo;G.nodeType===1?G.textContent="":G.nodeType===9&&G.documentElement&&G.removeChild(G.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(le){Ve(n,n.return,le)}if(e=n.sibling,e!==null){e.return=n.return,pe=e;break}pe=n.return}return he=md,md=!1,he}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 p=f.destroy;f.destroy=void 0,p!==void 0&&Ja(n,o,p)}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 yd(e){var n=e.alternate;n!==null&&(e.alternate=null,yd(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Jt],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 vd(e){return e.tag===5||e.tag===3||e.tag===4}function xd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||vd(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 Dn(e,n,o){for(o=o.child;o!==null;)wd(e,n,o),o=o.sibling}function wd(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,Dn(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,Dn(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 p=f,x=p.destroy;p=p.tag,x!==void 0&&((p&2)!==0||(p&4)!==0)&&Ja(o,n,x),f=f.next}while(f!==s)}Dn(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)}Dn(e,n,o);break;case 21:Dn(e,n,o);break;case 22:o.mode&1?(st=(s=st)||o.memoizedState!==null,Dn(e,n,o),st=s):Dn(e,n,o);break;default:Dn(e,n,o)}}function _d(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 p=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));wd(p,x,f),Je=null,Ot=!1;var R=f.alternate;R!==null&&(R.return=null),f.return=null}catch(Z){Ve(f,n,Z)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)Sd(n,e),n=n.sibling}function Sd(e,n){var o=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ft(n,e),nn(e),s&4){try{Go(3,e,e.return),Cs(3,e)}catch(me){Ve(e,e.return,me)}try{Go(5,e,e.return)}catch(me){Ve(e,e.return,me)}}break;case 1:Ft(n,e),nn(e),s&512&&o!==null&&Gr(o,o.return);break;case 5:if(Ft(n,e),nn(e),s&512&&o!==null&&Gr(o,o.return),e.flags&32){var f=e.stateNode;try{an(f,"")}catch(me){Ve(e,e.return,me)}}if(s&4&&(f=e.stateNode,f!=null)){var p=e.memoizedProps,x=o!==null?o.memoizedProps:p,I=e.type,R=e.updateQueue;if(e.updateQueue=null,R!==null)try{I==="input"&&p.type==="radio"&&p.name!=null&&Me(f,p),po(I,x);var Z=po(I,p);for(x=0;x<R.length;x+=2){var ie=R[x],se=R[x+1];ie==="style"?Mi(f,se):ie==="dangerouslySetInnerHTML"?Er(f,se):ie==="children"?an(f,se):k(f,ie,se,Z)}switch(I){case"input":Ie(f,p);break;case"textarea":qt(f,p);break;case"select":var oe=f._wrapperState.wasMultiple;f._wrapperState.wasMultiple=!!p.multiple;var de=p.value;de!=null?nt(f,!!p.multiple,de,!1):oe!==!!p.multiple&&(p.defaultValue!=null?nt(f,!!p.multiple,p.defaultValue,!0):nt(f,!!p.multiple,p.multiple?[]:"",!1))}f[Oo]=p}catch(me){Ve(e,e.return,me)}}break;case 6:if(Ft(n,e),nn(e),s&4){if(e.stateNode===null)throw Error(i(162));f=e.stateNode,p=e.memoizedProps;try{f.nodeValue=p}catch(me){Ve(e,e.return,me)}}break;case 3:if(Ft(n,e),nn(e),s&4&&o!==null&&o.memoizedState.isDehydrated)try{Po(n.containerInfo)}catch(me){Ve(e,e.return,me)}break;case 4:Ft(n,e),nn(e);break;case 13:Ft(n,e),nn(e),f=e.child,f.flags&8192&&(p=f.memoizedState!==null,f.stateNode.isHidden=p,!p||f.alternate!==null&&f.alternate.memoizedState!==null||(iu=Oe())),s&4&&_d(e);break;case 22:if(ie=o!==null&&o.memoizedState!==null,e.mode&1?(st=(Z=st)||ie,Ft(n,e),st=Z):Ft(n,e),nn(e),s&8192){if(Z=e.memoizedState!==null,(e.stateNode.isHidden=Z)&&!ie&&(e.mode&1)!==0)for(pe=e,ie=e.child;ie!==null;){for(se=pe=ie;pe!==null;){switch(oe=pe,de=oe.child,oe.tag){case 0:case 11:case 14:case 15:Go(4,oe,oe.return);break;case 1:Gr(oe,oe.return);var he=oe.stateNode;if(typeof he.componentWillUnmount=="function"){s=oe,o=oe.return;try{n=s,he.props=n.memoizedProps,he.state=n.memoizedState,he.componentWillUnmount()}catch(me){Ve(s,o,me)}}break;case 5:Gr(oe,oe.return);break;case 22:if(oe.memoizedState!==null){Nd(se);continue}}de!==null?(de.return=oe,pe=de):Nd(se)}ie=ie.sibling}e:for(ie=null,se=e;;){if(se.tag===5){if(ie===null){ie=se;try{f=se.stateNode,Z?(p=f.style,typeof p.setProperty=="function"?p.setProperty("display","none","important"):p.display="none"):(I=se.stateNode,R=se.memoizedProps.style,x=R!=null&&R.hasOwnProperty("display")?R.display:null,I.style.display=Ci("display",x))}catch(me){Ve(e,e.return,me)}}}else if(se.tag===6){if(ie===null)try{se.stateNode.nodeValue=Z?"":se.memoizedProps}catch(me){Ve(e,e.return,me)}}else if((se.tag!==22&&se.tag!==23||se.memoizedState===null||se===e)&&se.child!==null){se.child.return=se,se=se.child;continue}if(se===e)break e;for(;se.sibling===null;){if(se.return===null||se.return===e)break e;ie===se&&(ie=null),se=se.return}ie===se&&(ie=null),se.sibling.return=se.return,se=se.sibling}}break;case 19:Ft(n,e),nn(e),s&4&&_d(e);break;case 21:break;default:Ft(n,e),nn(e)}}function nn(e){var n=e.flags;if(n&2){try{e:{for(var o=e.return;o!==null;){if(vd(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 p=xd(e);nu(e,p,f);break;case 3:case 4:var x=s.stateNode.containerInfo,I=xd(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){pe=e,kd(e)}function kd(e,n,o){for(var s=(e.mode&1)!==0;pe!==null;){var f=pe,p=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 Z=st;if(Ns=x,(st=R)&&!Z)for(pe=f;pe!==null;)x=pe,R=x.child,x.tag===22&&x.memoizedState!==null?Cd(f):R!==null?(R.return=x,pe=R):Cd(f);for(;p!==null;)pe=p,kd(p),p=p.sibling;pe=f,Ns=I,st=Z}Ed(e)}else(f.subtreeFlags&8772)!==0&&p!==null?(p.return=f,pe=p):Ed(e)}}function Ed(e){for(;pe!==null;){var n=pe;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 p=n.updateQueue;p!==null&&Nf(n,p,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}Nf(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 Z=n.alternate;if(Z!==null){var ie=Z.memoizedState;if(ie!==null){var se=ie.dehydrated;se!==null&&Po(se)}}}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(oe){Ve(n,n.return,oe)}}if(n===e){pe=null;break}if(o=n.sibling,o!==null){o.return=n.return,pe=o;break}pe=n.return}}function Nd(e){for(;pe!==null;){var n=pe;if(n===e){pe=null;break}var o=n.sibling;if(o!==null){o.return=n.return,pe=o;break}pe=n.return}}function Cd(e){for(;pe!==null;){var n=pe;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 p=n.return;try{eu(n)}catch(R){Ve(n,p,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){pe=null;break}var I=n.sibling;if(I!==null){I.return=n.return,pe=I;break}pe=n.return}}var E0=Math.ceil,Ms=P.ReactCurrentDispatcher,ru=P.ReactCurrentOwner,Rt=P.ReactCurrentBatchConfig,Pe=0,qe=null,We=null,et=0,Nt=0,qr=In(0),Ke=0,qo=null,ur=0,Ps=0,ou=0,Zo=null,gt=null,iu=0,Zr=1/0,yn=null,Ts=!1,su=null,$n=null,js=!1,bn=null,Is=0,Jo=0,lu=null,zs=-1,Ls=0;function ut(){return(Pe&6)!==0?Oe():zs!==-1?zs:zs=Oe()}function On(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:Mc(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&&Fn(e,et)),mt(e,s),o===1&&Pe===0&&(n.mode&1)===0&&(Zr=Oe()+500,ls&&Ln()))}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(Pd.bind(null,e)):pf(Pd.bind(null,e)),n0(function(){(Pe&6)===0&&Ln()}),o=null;else{switch(xc(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=Dd(o,Md.bind(null,e))}e.callbackPriority=n,e.callbackNode=o}}function Md(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 p=jd();(qe!==e||et!==n)&&(yn=null,Zr=Oe()+500,fr(e,n));do try{M0();break}catch(I){Td(e,I)}while(!0);Na(),Ms.current=p,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),Fn(e,s),mt(e,Oe()),o;if(n===6)Fn(e,s);else{if(f=e.current.alternate,(s&30)===0&&!N0(f)&&(n=Rs(e,s),n===2&&(p=ko(e),p!==0&&(s=p,n=au(e,p))),n===1))throw o=qo,fr(e,0),Fn(e,s),mt(e,Oe()),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(Fn(e,s),(s&130023424)===s&&(n=iu+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=ha(dr.bind(null,e,gt,yn),n);break}dr(e,gt,yn);break;case 4:if(Fn(e,s),(s&4194240)===s)break;for(n=e.eventTimes,f=-1;0<s;){var x=31-_t(s);p=1<<x,x=n[x],x>f&&(f=x),s&=~p}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*E0(s/1960))-s,10<s){e.timeoutHandle=ha(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,Oe()),e.callbackNode===o?Md.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],p=f.getSnapshot;f=f.value;try{if(!Dt(p(),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 Fn(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 Pd(e){if((Pe&6)!==0)throw Error(i(327));Jr();var n=un(e,0);if((n&1)===0)return mt(e,Oe()),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),Fn(e,n),mt(e,Oe()),o;if(o===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,dr(e,gt,yn),mt(e,Oe()),null}function cu(e,n){var o=Pe;Pe|=1;try{return e(n)}finally{Pe=o,Pe===0&&(Zr=Oe()+500,ls&&Ln())}}function cr(e){bn!==null&&bn.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&&Ln()}}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(Fe);break;case 19:Ae(Fe);break;case 10:Ca(s.type._context);break;case 22:case 23:fu()}o=o.return}if(qe=e,We=e=Hn(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,p=o.pending;if(p!==null){var x=p.next;p.next=f,s.next=x}o.pending=s}sr=null}return e}function Td(e,n){do{var o=We;try{if(Na(),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(ar=0,Ge=Xe=He=null,Wo=!1,Yo=0,ru.current=null,o===null||o.return===null){Ke=1,qo=n,We=null;break}e:{var p=e,x=o.return,I=o,R=n;if(n=et,I.flags|=32768,R!==null&&typeof R=="object"&&typeof R.then=="function"){var Z=R,ie=I,se=ie.tag;if((ie.mode&1)===0&&(se===0||se===11||se===15)){var oe=ie.alternate;oe?(ie.updateQueue=oe.updateQueue,ie.memoizedState=oe.memoizedState,ie.lanes=oe.lanes):(ie.updateQueue=null,ie.memoizedState=null)}var de=ed(x);if(de!==null){de.flags&=-257,td(de,x,I,p,n),de.mode&1&&Jf(p,Z,n),n=de,R=Z;var he=n.updateQueue;if(he===null){var me=new Set;me.add(R),n.updateQueue=me}else he.add(R);break e}else{if((n&1)===0){Jf(p,Z,n),du();break e}R=Error(i(426))}}else if($e&&I.mode&1){var Ue=ed(x);if(Ue!==null){(Ue.flags&65536)===0&&(Ue.flags|=256),td(Ue,x,I,p,n),ka(Qr(R,I));break e}}p=R=Qr(R,I),Ke!==4&&(Ke=2),Zo===null?Zo=[p]:Zo.push(p),p=x;do{switch(p.tag){case 3:p.flags|=65536,n&=-n,p.lanes|=n;var K=qf(p,R,n);Ef(p,K);break e;case 1:I=R;var F=p.type,G=p.stateNode;if((p.flags&128)===0&&(typeof F.getDerivedStateFromError=="function"||G!==null&&typeof G.componentDidCatch=="function"&&($n===null||!$n.has(G)))){p.flags|=65536,n&=-n,p.lanes|=n;var le=Zf(p,I,n);Ef(p,le);break e}}p=p.return}while(p!==null)}zd(o)}catch(ye){n=ye,We===o&&o!==null&&(We=o=o.return);continue}break}while(!0)}function jd(){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||Fn(qe,et)}function Rs(e,n){var o=Pe;Pe|=2;var s=jd();(qe!==e||et!==n)&&(yn=null,fr(e,n));do try{C0();break}catch(f){Td(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;)Id(We)}function M0(){for(;We!==null&&!Al();)Id(We)}function Id(e){var n=Ad(e.alternate,e,Nt);e.memoizedProps=e.pendingProps,n===null?zd(e):We=n,ru.current=null}function zd(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(bn!==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 p=o.lanes|o.childLanes;if(Vl(e,p),e===qe&&(We=qe=null,et=0),(o.subtreeFlags&2064)===0&&(o.flags&2064)===0||js||(js=!0,Dd(Mr,function(){return Jr(),null})),p=(o.flags&15990)!==0,(o.subtreeFlags&15990)!==0||p){p=Rt.transition,Rt.transition=null;var x=ze;ze=1;var I=Pe;Pe|=4,ru.current=null,S0(e,o),Sd(o,e),Km(da),Wi=!!fa,da=fa=null,e.current=o,k0(o),bi(),Pe=I,ze=x,Rt.transition=p}else e.current=o;if(js&&(js=!1,bn=e,Is=f),p=e.pendingLanes,p===0&&($n=null),bl(o.stateNode),mt(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(Ts)throw Ts=!1,e=su,su=null,e;return(Is&1)!==0&&e.tag!==0&&Jr(),p=e.pendingLanes,(p&1)!==0?e===lu?Jo++:(Jo=0,lu=e):Jo=0,Ln(),null}function Jr(){if(bn!==null){var e=xc(Is),n=Rt.transition,o=ze;try{if(Rt.transition=null,ze=16>e?16:e,bn===null)var s=!1;else{if(e=bn,bn=null,Is=0,(Pe&6)!==0)throw Error(i(331));var f=Pe;for(Pe|=4,pe=e.current;pe!==null;){var p=pe,x=p.child;if((pe.flags&16)!==0){var I=p.deletions;if(I!==null){for(var R=0;R<I.length;R++){var Z=I[R];for(pe=Z;pe!==null;){var ie=pe;switch(ie.tag){case 0:case 11:case 15:Go(8,ie,p)}var se=ie.child;if(se!==null)se.return=ie,pe=se;else for(;pe!==null;){ie=pe;var oe=ie.sibling,de=ie.return;if(yd(ie),ie===Z){pe=null;break}if(oe!==null){oe.return=de,pe=oe;break}pe=de}}}var he=p.alternate;if(he!==null){var me=he.child;if(me!==null){he.child=null;do{var Ue=me.sibling;me.sibling=null,me=Ue}while(me!==null)}}pe=p}}if((p.subtreeFlags&2064)!==0&&x!==null)x.return=p,pe=x;else e:for(;pe!==null;){if(p=pe,(p.flags&2048)!==0)switch(p.tag){case 0:case 11:case 15:Go(9,p,p.return)}var K=p.sibling;if(K!==null){K.return=p.return,pe=K;break e}pe=p.return}}var F=e.current;for(pe=F;pe!==null;){x=pe;var G=x.child;if((x.subtreeFlags&2064)!==0&&G!==null)G.return=x,pe=G;else e:for(x=F;pe!==null;){if(I=pe,(I.flags&2048)!==0)try{switch(I.tag){case 0:case 11:case 15:Cs(9,I)}}catch(ye){Ve(I,I.return,ye)}if(I===x){pe=null;break e}var le=I.sibling;if(le!==null){le.return=I.return,pe=le;break e}pe=I.return}}if(Pe=f,Ln(),wt&&typeof wt.onPostCommitFiberRoot=="function")try{wt.onPostCommitFiberRoot(Pr,e)}catch{}s=!0}return s}finally{ze=o,Rt.transition=n}}return!1}function Ld(e,n,o){n=Qr(o,n),n=qf(e,n,1),e=An(e,n,1),n=ut(),e!==null&&(tr(e,1,n),mt(e,n))}function Ve(e,n,o){if(e.tag===3)Ld(e,e,o);else for(;n!==null;){if(n.tag===3){Ld(n,e,o);break}else if(n.tag===1){var s=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&($n===null||!$n.has(s))){e=Qr(o,e),e=Zf(n,e,1),n=An(n,e,1),e=ut(),n!==null&&(tr(n,1,e),mt(n,e));break}}n=n.return}}function T0(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>Oe()-iu?fr(e,0):ou|=o),mt(e,n)}function Rd(e,n){n===0&&((e.mode&1)===0?n=1:(n=jr,jr<<=1,(jr&130023424)===0&&(jr=4194304)));var o=ut();e=hn(e,n),e!==null&&(tr(e,n,o),mt(e,o))}function j0(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),Rd(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),Rd(e,o)}var Ad;Ad=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||dt.current)ht=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return ht=!1,v0(e,n,o);ht=(e.flags&131072)!==0}else ht=!1,$e&&(n.flags&1048576)!==0&&hf(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 p=$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,pt(s)?(p=!0,ss(n)):p=!1,n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,Ta(n),f.updater=Ss,n.stateNode=f,f._reactInternals=n,Va(n,s,e,o),n=Xa(null,n,s,!0,p,o)):(n.tag=0,$e&&p&&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=ld(null,n,s,e,o);break e;case 11:n=nd(null,n,s,e,o);break e;case 14:n=rd(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),ld(e,n,s,f,o);case 3:e:{if(ad(n),e===null)throw Error(i(387));s=n.pendingProps,p=n.memoizedState,f=p.element,kf(e,n),gs(n,s,null,o);var x=n.memoizedState;if(s=x.element,p.isDehydrated)if(p={element:s,isDehydrated:!1,cache:x.cache,pendingSuspenseBoundaries:x.pendingSuspenseBoundaries,transitions:x.transitions},n.updateQueue.baseState=p,n.memoizedState=p,n.flags&256){f=Qr(Error(i(423)),n),n=ud(e,n,s,o,f);break e}else if(s!==f){f=Qr(Error(i(424)),n),n=ud(e,n,s,o,f);break e}else for(Et=jn(n.stateNode.containerInfo.firstChild),kt=n,$e=!0,$t=null,o=_f(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 Cf(n),e===null&&Sa(n),s=n.type,f=n.pendingProps,p=e!==null?e.memoizedProps:null,x=f.children,pa(s,f)?x=null:p!==null&&pa(s,p)&&(n.flags|=32),sd(e,n),at(e,n,x,o),n.child;case 6:return e===null&&Sa(n),null;case 13:return cd(e,n,o);case 4:return ja(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),nd(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,p=n.memoizedProps,x=f.value,Le(ds,s._currentValue),s._currentValue=x,p!==null)if(Dt(p.value,x)){if(p.children===f.children&&!dt.current){n=mn(e,n,o);break e}}else for(p=n.child,p!==null&&(p.return=n);p!==null;){var I=p.dependencies;if(I!==null){x=p.child;for(var R=I.firstContext;R!==null;){if(R.context===s){if(p.tag===1){R=gn(-1,o&-o),R.tag=2;var Z=p.updateQueue;if(Z!==null){Z=Z.shared;var ie=Z.pending;ie===null?R.next=R:(R.next=ie.next,ie.next=R),Z.pending=R}}p.lanes|=o,R=p.alternate,R!==null&&(R.lanes|=o),Ma(p.return,o,n),I.lanes|=o;break}R=R.next}}else if(p.tag===10)x=p.type===n.type?null:p.child;else if(p.tag===18){if(x=p.return,x===null)throw Error(i(341));x.lanes|=o,I=x.alternate,I!==null&&(I.lanes|=o),Ma(x,o,n),x=p.sibling}else x=p.child;if(x!==null)x.return=p;else for(x=p;x!==null;){if(x===n){x=null;break}if(p=x.sibling,p!==null){p.return=x.return,x=p;break}x=x.return}p=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),rd(e,n,s,f,o);case 15:return od(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,pt(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 dd(e,n,o);case 22:return id(e,n,o)}throw Error(i(156,n.tag))};function Dd(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 pu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function L0(e){if(typeof e=="function")return pu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===X)return 11;if(e===$)return 14}return 2}function Hn(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,p){var x=2;if(s=e,typeof e=="function")pu(e)&&(x=1);else if(typeof e=="string")x=5;else e:switch(e){case W:return pr(o.children,f,p,n);case q:x=8,f|=8;break;case Q:return e=At(12,o,n,f|2),e.elementType=Q,e.lanes=p,e;case Y:return e=At(13,o,n,f),e.elementType=Y,e.lanes=p,e;case E:return e=At(19,o,n,f),e.elementType=E,e.lanes=p,e;case U:return Ds(o,f,p,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case te:x=10;break e;case J:x=9;break e;case X:x=11;break e;case $:x=14;break e;case z: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=p,n}function pr(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=U,e.lanes=o,e.stateNode={isHidden:!1},e}function hu(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,p,x,I,R){return e=new R0(e,n,o,I,R),n===1?(n=1,p===!0&&(n|=8)):n=0,p=At(3,null,null,n),e.current=p,p.stateNode=e,p.memoizedState={element:s,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ta(p),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 $d(e){if(!e)return zn;e=e._reactInternals;e:{if(Zt(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(pt(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(pt(o))return ff(e,o,n)}return n}function bd(e,n,o,s,f,p,x,I,R){return e=mu(o,s,!0,e,f,p,x,I,R),e.context=$d(null),o=e.current,s=ut(),f=On(o),p=gn(s,f),p.callback=n??null,An(o,p,f),e.current.lanes=f,tr(e,f,s),mt(e,s),e}function $s(e,n,o,s){var f=n.current,p=ut(),x=On(f);return o=$d(o),n.context===null?n.context=o:n.pendingContext=o,n=gn(p,x),n.payload={element:e},s=s===void 0?null:s,s!==null&&(n.callback=s),e=An(f,n,x),e!==null&&(Ht(e,f,x,p),hs(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 Od(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){Od(e,n),(e=e.alternate)&&Od(e,n)}function D0(){return null}var Fd=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=Sc();e={blockedOn:null,target:e,priority:n};for(var o=0;o<Mn.length&&n!==0&&n<Mn[o].priority;o++);Mn.splice(o,0,e),o===0&&Nc(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 Hd(){}function $0(e,n,o,s,f){if(f){if(typeof s=="function"){var p=s;s=function(){var Z=bs(x);p.call(Z)}}var x=bd(n,s,e,0,null,!1,!1,"",Hd);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 Z=bs(R);I.call(Z)}}var R=mu(e,0,!1,null,null,!1,!1,"",Hd);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 p=o._reactRootContainer;if(p){var x=p;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)}wc=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,Oe()),(Pe&6)===0&&(Zr=Oe()+500,Ln()))}break;case 13:cr(function(){var s=hn(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=hn(e,134217728);if(n!==null){var o=ut();Ht(n,e,134217728,o)}yu(e,134217728)}},_c=function(e){if(e.tag===13){var n=On(e),o=hn(e,n);if(o!==null){var s=ut();Ht(o,e,n,s)}yu(e,n)}},Sc=function(){return ze},kc=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));ve(s),Ie(s,f)}}}break;case"textarea":qt(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,Ti,ji,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:P.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=Fd;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,p="",x=Fd;if(o!=null&&(o.unstable_strictMode===!0&&(f=!0),o.identifierPrefix!==void 0&&(p=o.identifierPrefix),o.onRecoverableError!==void 0&&(x=o.onRecoverableError)),n=bd(n,null,e,1,o??null,f,!1,p,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 dh(){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 Gd;function X0(){if(Gd)return Vs;Gd=1;var t=dh();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 be={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`},qd={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",palette_click_add:"Click + (or double-click) to add, or drag onto the canvas",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",palette_click_add:"Klicka + (eller dubbelklicka) för att lägga till, eller dra till canvasen",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=qd[t][r]??qd.en[r]??r;if(i)for(const[a,u]of Object.entries(i))l=l.replace(`{${a}}`,String(u));return l}}function ec(){try{return crypto.randomUUID().slice(0,12)}catch{return Math.random().toString(36).slice(2,14)}}const G0=150,q0=0;function Ut(t){var r,i,l;return t.id||(t.id=ec()),(r=t.steps)==null||r.forEach(Ut),(i=t.else)==null||i.forEach(Ut),(l=t.branches)==null||l.forEach(a=>a.steps.forEach(Ut)),t}function ph(t){const r=(t.steps??[]).map(c=>Ut({...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 xn(t,r){const i=t.step_types.find(a=>a.type===r),l={type:r,id:ec()};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 hh(t,r,i){const l=xn(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 gh(t,r,i){const l=t.slice();return l.splice(r,0,i),l}function mh(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 h=Number(i??0);return{...c,branches:(c.branches??[]).map((g,y)=>y===h?{...g,steps:[...g.steps,l]}:g)}}return c}let d=c;if(c.steps){const h=Js(c.steps,r,i,l);h&&(a=!0,d={...d,steps:h})}if(c.branches){let h=!1;const g=c.branches.map(y=>{const v=Js(y.steps,r,i,l);return v?(h=!0,{...y,steps:v}):y});h&&(a=!0,d={...d,branches:g})}if(c.else){const h=Js(c.else,r,i,l);h&&(a=!0,d={...d,else:h})}return d});return a?u:null}function J0(t){const{t:r}=t,[i,l]=b.useState(!1),a=b.useRef(null);b.useEffect(()=>{if(!i)return;const c=h=>{a.current&&!a.current.contains(h.target)&&l(!1)},d=h=>h.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 _.jsxs("div",{className:"menu-wrap",ref:a,children:[_.jsx("button",{className:"secondary",title:r("menu"),onClick:()=>l(c=>!c),children:"⚙"}),i&&_.jsxs("div",{className:"menu-popover",children:[_.jsx("div",{className:"menu-section",children:r("menu_flow")}),_.jsx("button",{className:"menu-item",onClick:u(t.onNew),children:r("new_flow")}),_.jsx("button",{className:"menu-item",onClick:u(t.onDelete),disabled:!t.currentName,children:r("delete_flow")}),_.jsx("a",{className:"menu-item",href:t.currentName?be.exportUrl(t.currentName):void 0,target:"_blank",rel:"noopener",onClick:()=>l(!1),children:r("export")}),_.jsx("div",{className:"menu-section",children:r("menu_run")}),_.jsxs("label",{className:"menu-item menu-field",children:[_.jsx("span",{children:r("menu_run")}),_.jsxs("select",{value:t.closeMode,onChange:c=>t.setCloseMode(c.target.value),children:[_.jsx("option",{value:"always",children:r("close_always")}),_.jsx("option",{value:"on_success",children:r("close_on_success")}),_.jsx("option",{value:"never",children:r("close_never")})]})]}),_.jsx("button",{className:"menu-item",onClick:u(t.onOpenSettings),children:r("run_settings")}),_.jsx("div",{className:"menu-section",children:r("menu_view")}),_.jsxs("label",{className:"menu-item menu-field",children:[_.jsx("span",{children:r("language")}),_.jsxs("select",{value:t.lang,onChange:c=>t.setLang(c.target.value),children:[_.jsx("option",{value:"en",children:"English"}),_.jsx("option",{value:"sv",children:"Svenska"})]})]}),_.jsx("div",{className:"menu-section",children:r("menu_tools")}),_.jsx("button",{className:"menu-item",onClick:u(t.onOpenInspect),children:r("inspect_window")}),_.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 _.jsxs("header",{children:[_.jsx("h1",{children:r("app_title")}),_.jsx("select",{value:t.currentName??"",onChange:i=>t.onSelect(i.target.value),children:t.flowNames.map(i=>_.jsx("option",{value:i,children:i},i))}),_.jsx("span",{className:"spacer"}),_.jsx("span",{className:"dirty-dot "+(t.dirty?"on":""),title:t.dirty?r("unsaved"):r("saved")}),_.jsx("button",{className:"secondary",onClick:t.onSave,children:r("save")}),_.jsx("button",{onClick:t.onRun,disabled:t.running||!t.currentName,children:r("run")}),_.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]=Zd(i[a],t.name,r);else if(r==null)for(a in i)i[a]=Zd(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 Zd(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 Jd={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)),Jd.hasOwnProperty(r)?{space:Jd[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 yh(t){var r=yl(t);return(r.local?iy:oy)(r)}function sy(){}function tc(t){return t==null?sy:function(){return this.querySelector(t)}}function ly(t){typeof t!="function"&&(t=tc(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),h,g,y=0;y<c;++y)(h=u[y])&&(g=t.call(h,h.__data__,y,u))&&("__data__"in h&&(g.__data__=h.__data__),d[y]=g);return new Mt(l,this._parents)}function ay(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function uy(){return[]}function vh(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=vh(t);for(var r=this._groups,i=r.length,l=[],a=[],u=0;u<i;++u)for(var c=r[u],d=c.length,h,g=0;g<d;++g)(h=c[g])&&(l.push(t.call(h,h.__data__,g,c)),a.push(h));return new Mt(l,a)}function xh(t){return function(){return this.matches(t)}}function wh(t){return function(r){return r.matches(t)}}var dy=Array.prototype.find;function py(t){return function(){return dy.call(this.children,t)}}function hy(){return this.firstElementChild}function gy(t){return this.select(t==null?hy:py(typeof t=="function"?t:wh(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:wh(t)))}function wy(t){typeof t!="function"&&(t=xh(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]=[],h,g=0;g<c;++g)(h=u[g])&&t.call(h,h.__data__,g,u)&&d.push(h);return new Mt(l,this._parents)}function _h(t){return new Array(t.length)}function _y(){return new Mt(this._enter||this._groups.map(_h),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,h=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<h;++c)(d=r[c])&&(a[c]=d)}function Ey(t,r,i,l,a,u,c){var d,h,g=new Map,y=r.length,v=u.length,m=new Array(y),w;for(d=0;d<y;++d)(h=r[d])&&(m[d]=w=c.call(h,h.__data__,d,r)+"",g.has(w)?a[d]=h:g.set(w,h));for(d=0;d<v;++d)w=c.call(t,u[d],d,u)+"",(h=g.get(w))?(l[d]=h,h.__data__=u[d],g.delete(w)):i[d]=new il(t,u[d]);for(d=0;d<y;++d)(h=r[d])&&g.get(m[d])===h&&(a[d]=h)}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),h=new Array(u),g=0;g<u;++g){var y=l[g],v=a[g],m=v.length,w=My(t.call(y,y&&y.__data__,g,l)),S=w.length,M=d[g]=new Array(S),C=c[g]=new Array(S),N=h[g]=new Array(m);i(y,v,M,C,N,w,r);for(var j=0,k=0,P,H;j<S;++j)if(P=M[j]){for(j>=k&&(k=j+1);!(H=C[k])&&++k<S;);P._next=H||null}}return c=new Mt(c,l),c._enter=d,c._exit=h,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(_h),this._parents)}function Ty(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 jy(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),h=0;h<c;++h)for(var g=i[h],y=l[h],v=g.length,m=d[h]=new Array(v),w,S=0;S<v;++S)(w=g[S]||y[S])&&(m[S]=w);for(;h<a;++h)d[h]=i[h];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(v,m){return v&&m?t(v.__data__,m.__data__):!v-!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,h=a[u]=new Array(d),g,y=0;y<d;++y)(g=c[y])&&(h[y]=g);h.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 Sh(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)||Sh(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 kh(t){return t.trim().split(/^|\s+/)}function nc(t){return t.classList||new Eh(t)}function Eh(t){this._node=t,this._names=kh(t.getAttribute("class")||"")}Eh.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 Nh(t,r){for(var i=nc(t),l=-1,a=r.length;++l<a;)i.add(r[l])}function Ch(t,r){for(var i=nc(t),l=-1,a=r.length;++l<a;)i.remove(r[l])}function tv(t){return function(){Nh(this,t)}}function nv(t){return function(){Ch(this,t)}}function rv(t,r){return function(){(r.apply(this,arguments)?Nh:Ch)(this,t)}}function ov(t,r){var i=kh(t+"");if(arguments.length<2){for(var l=nc(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 pv(){this.nextSibling&&this.parentNode.appendChild(this)}function hv(){return this.each(pv)}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:yh(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:yh(t),l=r==null?vv:typeof r=="function"?r:tc(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 Tv(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 jv(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 h=0,g=d.length,y;h<g;++h)for(a=0,y=d[h];a<u;++a)if((c=l[a]).type===y.type&&c.name===y.name)return y.value}return}for(d=r?Tv:Pv,a=0;a<u;++a)this.each(d(l[a],r,i));return this}function Mh(t,r,i){var l=Sh(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 Mh(this,t,r)}}function zv(t,r){return function(){return Mh(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 Ph=[null];function Mt(t,r){this._groups=t,this._parents=r}function xi(){return new Mt([[document.documentElement]],Ph)}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:Ty,merge:jy,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:hv,lower:mv,append:yv,insert:xv,remove:_v,clone:Ev,datum:Nv,on:jv,dispatch:Lv,[Symbol.iterator]:Rv};function Ct(t){return typeof t=="string"?new Mt([[document.querySelector(t)]],[document.documentElement]):new Mt([[t]],Ph)}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 Th(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 jh(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:h,dy:g,dispatch:y}){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:h,enumerable:!0,configurable:!0},dy:{value:g,enumerable:!0,configurable:!0},_:{value:y}})}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 Ih(){var t=bv,r=Ov,i=Fv,l=Hv,a={},u=ml("start","drag","end"),c=0,d,h,g,y,v=0;function m(P){P.on("mousedown.drag",w).filter(l).on("touchstart.drag",C).on("touchmove.drag",N,$v).on("touchend.drag touchcancel.drag",j).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function w(P,H){if(!(y||!t.call(this,P,H))){var O=k(this,r.call(this,P,H),P,H,"mouse");O&&(Ct(P.view).on("mousemove.drag",S,ui).on("mouseup.drag",M,ui),Th(P.view),Nu(P),g=!1,d=P.clientX,h=P.clientY,O("start",P))}}function S(P){if(no(P),!g){var H=P.clientX-d,O=P.clientY-h;g=H*H+O*O>v}a.mouse("drag",P)}function M(P){Ct(P.view).on("mousemove.drag mouseup.drag",null),jh(P.view,g),no(P),a.mouse("end",P)}function C(P,H){if(t.call(this,P,H)){var O=P.changedTouches,W=r.call(this,P,H),q=O.length,Q,te;for(Q=0;Q<q;++Q)(te=k(this,W,P,H,O[Q].identifier,O[Q]))&&(Nu(P),te("start",P,O[Q]))}}function N(P){var H=P.changedTouches,O=H.length,W,q;for(W=0;W<O;++W)(q=a[H[W].identifier])&&(no(P),q("drag",P,H[W]))}function j(P){var H=P.changedTouches,O=H.length,W,q;for(y&&clearTimeout(y),y=setTimeout(function(){y=null},500),W=0;W<O;++W)(q=a[H[W].identifier])&&(Nu(P),q("end",P,H[W]))}function k(P,H,O,W,q,Q){var te=u.copy(),J=Bt(Q||O,H),X,Y,E;if((E=i.call(P,new Fu("beforestart",{sourceEvent:O,target:m,identifier:q,active:c,x:J[0],y:J[1],dx:0,dy:0,dispatch:te}),W))!=null)return X=E.x-J[0]||0,Y=E.y-J[1]||0,function $(z,U,A){var D=J,V;switch(z){case"start":a[q]=$,V=c++;break;case"end":delete a[q],--c;case"drag":J=Bt(A||U,H),V=c;break}te.call(z,P,new Fu(z,{sourceEvent:U,subject:E,target:m,identifier:q,active:V,x:J[0]+X,y:J[1]+Y,dx:J[0]-D[0],dy:J[1]-D[1],dispatch:te}),W)}}return m.filter=function(P){return arguments.length?(t=typeof P=="function"?P:Us(!!P),m):t},m.container=function(P){return arguments.length?(r=typeof P=="function"?P:Us(P),m):r},m.subject=function(P){return arguments.length?(i=typeof P=="function"?P:Us(P),m):i},m.touchable=function(P){return arguments.length?(l=typeof P=="function"?P:Us(!!P),m):l},m.on=function(){var P=u.on.apply(u,arguments);return P===u?m:P},m.clickDistance=function(P){return arguments.length?(v=(P=+P)*P,m):Math.sqrt(v)},m}function rc(t,r,i){t.prototype=r.prototype=i,i.constructor=t}function zh(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}\\)$`),ep={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};rc(wi,vr,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:tp,formatHex:tp,formatHex8:Qv,formatHsl:Gv,formatRgb:np,toString:np});function tp(){return this.rgb().formatHex()}function Qv(){return this.rgb().formatHex8()}function Gv(){return Lh(this).formatHsl()}function np(){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?rp(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))?sp(r[1],r[2]/100,r[3]/100,1):(r=Kv.exec(t))?sp(r[1],r[2]/100,r[3]/100,r[4]):ep.hasOwnProperty(t)?rp(ep[t]):t==="transparent"?new vt(NaN,NaN,NaN,0):null}function rp(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}rc(vt,Hu,zh(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:op,formatHex:op,formatHex8:Zv,formatRgb:ip,toString:ip}));function op(){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 ip(){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 sp(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 Lh(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,h=(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/=h<.5?u+a:2-u-a,c*=60):d=h>0&&h<1?0:c,new Vt(c,d,h,t.opacity)}function Jv(t,r,i,l){return arguments.length===1?Lh(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}rc(Vt,Jv,zh(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(lp(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("}${lp(this.h)}, ${Ys(this.s)*100}%, ${Ys(this.l)*100}%${t===1?")":`, ${t})`}`}}));function lp(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 oc=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?Rh:function(r,i){return i-r?tx(r,i,t):oc(isNaN(r)?i:r)}}function Rh(t,r){var i=r-t;return i?ex(t,i):oc(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),h=i(a.b,u.b),g=Rh(a.opacity,u.opacity);return function(y){return a.r=c(y),a.g=d(y),a.b=h(y),a.opacity=g(y),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 rn(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 Ah(t,r){var i=Bu.lastIndex=Mu.lastIndex=0,l,a,u,c=-1,d=[],h=[];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,h.push({i:c,x:rn(l,a)})),i=Mu.lastIndex;return i<r.length&&(u=r.slice(i),d[c]?d[c]+=u:d[++c]=u),d.length<2?h[0]?ux(h[0].x):ax(r):(r=h.length,function(g){for(var y=0,v;y<r;++y)d[(v=h[y]).i]=v.x(g);return d.join("")})}function li(t,r){var i=typeof r,l;return r==null||i==="boolean"?oc(r):(i==="number"?rn:i==="string"?(l=vr(r))?(r=l,al):Ah: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:rn)(t,r)}var ap=180/Math.PI,Vu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Dh(t,r,i,l,a,u){var c,d,h;return(c=Math.sqrt(t*t+r*r))&&(t/=c,r/=c),(h=t*i+r*l)&&(i-=t*h,l-=r*h),(d=Math.sqrt(i*i+l*l))&&(i/=d,l/=d,h/=d),t*l<r*i&&(t=-t,r=-r,h=-h,c=-c),{translateX:a,translateY:u,rotate:Math.atan2(r,t)*ap,skewX:Math.atan(h)*ap,scaleX:c,scaleY:d}}var Xs;function cx(t){const r=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return r.isIdentity?Vu:Dh(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,Dh(t.a,t.b,t.c,t.d,t.e,t.f))}function $h(t,r,i,l){function a(g){return g.length?g.pop()+" ":""}function u(g,y,v,m,w,S){if(g!==v||y!==m){var M=w.push("translate(",null,r,null,i);S.push({i:M-4,x:rn(g,v)},{i:M-2,x:rn(y,m)})}else(v||m)&&w.push("translate("+v+r+m+i)}function c(g,y,v,m){g!==y?(g-y>180?y+=360:y-g>180&&(g+=360),m.push({i:v.push(a(v)+"rotate(",null,l)-2,x:rn(g,y)})):y&&v.push(a(v)+"rotate("+y+l)}function d(g,y,v,m){g!==y?m.push({i:v.push(a(v)+"skewX(",null,l)-2,x:rn(g,y)}):y&&v.push(a(v)+"skewX("+y+l)}function h(g,y,v,m,w,S){if(g!==v||y!==m){var M=w.push(a(w)+"scale(",null,",",null,")");S.push({i:M-4,x:rn(g,v)},{i:M-2,x:rn(y,m)})}else(v!==1||m!==1)&&w.push(a(w)+"scale("+v+","+m+")")}return function(g,y){var v=[],m=[];return g=t(g),y=t(y),u(g.translateX,g.translateY,y.translateX,y.translateY,v,m),c(g.rotate,y.rotate,v,m),d(g.skewX,y.skewX,v,m),h(g.scaleX,g.scaleY,y.scaleX,y.scaleY,v,m),g=y=null,function(w){for(var S=-1,M=m.length,C;++S<M;)v[(C=m[S]).i]=C.x(w);return v.join("")}}}var dx=$h(cx,"px, ","px)","deg)"),px=$h(fx,", ",")",")"),hx=1e-12;function up(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],h=u[1],g=u[2],y=c[0],v=c[1],m=c[2],w=y-d,S=v-h,M=w*w+S*S,C,N;if(M<hx)N=Math.log(m/g)/r,C=function(W){return[d+W*w,h+W*S,g*Math.exp(r*W*N)]};else{var j=Math.sqrt(M),k=(m*m-g*g+l*M)/(2*g*i*j),P=(m*m-g*g-l*M)/(2*m*i*j),H=Math.log(Math.sqrt(k*k+1)-k),O=Math.log(Math.sqrt(P*P+1)-P);N=(O-H)/r,C=function(W){var q=W*N,Q=up(H),te=g/(i*j)*(Q*mx(r*q+H)-gx(H));return[d+te*w,h+te*S,g*Q/up(r*q+H)]}}return C.duration=N*1e3*r/Math.SQRT2,C}return a.rho=function(u){var c=Math.max(.001,+u),d=c*c,h=d*d;return t(c,d,h)},a})(Math.SQRT2,2,4);var io=0,ii=0,ri=0,bh=1e3,ul,si,cl=0,xr=0,vl=0,di=typeof performance=="object"&&performance.now?performance:Date,Oh=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ic(){return xr||(Oh(yx),xr=di.now()+vl)}function yx(){xr=0}function fl(){this._call=this._time=this._next=null}fl.prototype=Fh.prototype={constructor:fl,restart:function(t,r,i){if(typeof t!="function")throw new TypeError("callback is not a function");i=(i==null?ic():+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 Fh(t,r,i){var l=new fl;return l.restart(t,r,i),l}function vx(){ic(),++io;for(var t=ul,r;t;)(r=xr-t._time)>=0&&t._call.call(void 0,r),t=t._next;--io}function cp(){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>bh&&(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(cp,t-di.now()-vl)),ri&&(ri=clearInterval(ri))):(ri||(cl=di.now(),ri=setInterval(xx,bh)),io=1,Oh(cp))}}function fp(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=[],Hh=0,dp=1,Wu=2,nl=3,pp=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:Hh})}function sc(t,r){var i=Kt(t,r);if(i.state>Hh)throw new Error("too late; already scheduled");return i}function sn(t,r){var i=Kt(t,r);if(i.state>nl)throw new Error("too late; already running");return i}function Kt(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=Fh(u,0,i.time);function u(g){i.state=dp,i.timer.restart(c,i.delay,i.time),i.delay<=g&&c(g-i.delay)}function c(g){var y,v,m,w;if(i.state!==dp)return h();for(y in l)if(w=l[y],w.name===i.name){if(w.state===nl)return fp(c);w.state===pp?(w.state=rl,w.timer.stop(),w.on.call("interrupt",t,t.__data__,w.index,w.group),delete l[y]):+y<r&&(w.state=rl,w.timer.stop(),w.on.call("cancel",t,t.__data__,w.index,w.group),delete l[y])}if(fp(function(){i.state===nl&&(i.state=pp,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),y=0,v=-1;y<m;++y)(w=i.tween[y].value.call(t,t.__data__,i.index,i.group))&&(a[++v]=w);a.length=v+1}}function d(g){for(var y=g<i.duration?i.ease.call(null,g/i.duration):(i.timer.restart(h),i.state=Yu,1),v=-1,m=a.length;++v<m;)a[v].call(t,y);i.state===Yu&&(i.on.call("end",t,t.__data__,i.index,i.group),h())}function h(){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},h=0,g=a.length;h<g;++h)if(a[h].name===r){a[h]=d;break}h===g&&a.push(d)}u.tween=a}}function Mx(t,r){var i=this._id;if(t+="",arguments.length<2){for(var l=Kt(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 lc(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 Kt(a,l).value[r]}}function Bh(t,r){var i;return(typeof r=="number"?rn:r instanceof vr?al:(i=vr(r))?(r=i,al):Ah)(t,r)}function Px(t){return function(){this.removeAttribute(t)}}function Tx(t){return function(){this.removeAttributeNS(t.space,t.local)}}function jx(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),h;return d==null?void this.removeAttribute(t):(c=this.getAttribute(t),h=d+"",c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d)))}}function Lx(t,r,i){var l,a,u;return function(){var c,d=i(this),h;return d==null?void this.removeAttributeNS(t.space,t.local):(c=this.getAttributeNS(t.space,t.local),h=d+"",c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d)))}}function Rx(t,r){var i=yl(t),l=i==="transform"?px:Bh;return this.attrTween(t,typeof r=="function"?(i.local?Lx:zx)(i,l,lc(this,"attr."+t,r)):r==null?(i.local?Tx:Px)(i):(i.local?Ix:jx)(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(){sc(this,t).delay=+r.apply(this,arguments)}}function Hx(t,r){return r=+r,function(){sc(this,t).delay=r}}function Bx(t){var r=this._id;return arguments.length?this.each((typeof t=="function"?Fx:Hx)(r,t)):Kt(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)):Kt(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)):Kt(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=xh(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]=[],h,g=0;g<c;++g)(h=u[g])&&t.call(h,h.__data__,g,u)&&d.push(h);return new _n(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 h=r[d],g=i[d],y=h.length,v=c[d]=new Array(y),m,w=0;w<y;++w)(m=h[w]||g[w])&&(v[w]=m);for(;d<l;++d)c[d]=r[d];return new _n(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)?sc: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?Kt(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=tc(t));for(var l=this._groups,a=l.length,u=new Array(a),c=0;c<a;++c)for(var d=l[c],h=d.length,g=u[c]=new Array(h),y,v,m=0;m<h;++m)(y=d[m])&&(v=t.call(y,y.__data__,m,d))&&("__data__"in y&&(v.__data__=y.__data__),g[m]=v,xl(g[m],r,i,m,g,Kt(y,i)));return new _n(u,this._parents,r,i)}function ow(t){var r=this._name,i=this._id;typeof t!="function"&&(t=vh(t));for(var l=this._groups,a=l.length,u=[],c=[],d=0;d<a;++d)for(var h=l[d],g=h.length,y,v=0;v<g;++v)if(y=h[v]){for(var m=t.call(y,y.__data__,v,h),w,S=Kt(y,i),M=0,C=m.length;M<C;++M)(w=m[M])&&xl(w,r,i,M,m,S);u.push(m),c.push(y)}return new _n(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 Vh(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),h=d+"";return d==null&&(h=d=(this.style.removeProperty(t),oo(this,t))),c===h?null:c===l&&h===a?u:(a=h,u=r(l=c,d))}}function cw(t,r){var i,l,a,u="style."+r,c="end."+u,d;return function(){var h=sn(this,t),g=h.on,y=h.value[u]==null?d||(d=Vh(r)):void 0;(g!==i||a!==y)&&(l=(i=g).copy()).on(c,a=y),h.on=l}}function fw(t,r,i){var l=(t+="")=="transform"?dx:Bh;return r==null?this.styleTween(t,lw(t,l)).on("end.style."+t,Vh(t)):typeof r=="function"?this.styleTween(t,uw(t,l,lc(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 pw(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 hw(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,pw(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(lc(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=Uh(),l=this._groups,a=l.length,u=0;u<a;++u)for(var c=l[u],d=c.length,h,g=0;g<d;++g)if(h=c[g]){var y=Kt(h,r);xl(h,t,i,g,c,{time:y.time+y.delay+y.duration,delay:0,duration:y.duration,ease:y.ease})}return new _n(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},h={value:function(){--a===0&&u()}};i.each(function(){var g=sn(this,l),y=g.on;y!==t&&(r=(t=y).copy(),r._.cancel.push(d),r._.interrupt.push(d),r._.end.push(h)),g.on=r}),a===0&&u()})}var kw=0;function _n(t,r,i,l){this._groups=t,this._parents=r,this._name=i,this._id=l}function Uh(){return++kw}var vn=xi.prototype;_n.prototype={constructor:_n,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:hw,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 _n?(r=t._id,t=t._name):(r=Uh(),(i=Nw).time=ic(),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,h,g=0;g<d;++g)(h=c[g])&&xl(h,t,r,g,c,i||Cw(h,r));return new _n(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 wn(t,r,i){this.k=t,this.x=r,this.y=i}wn.prototype={constructor:wn,scale:function(t){return t===1?this:new wn(this.k*t,this.x,this.y)},translate:function(t,r){return t===0&r===0?this:new wn(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 wn(1,0,0);Wh.prototype=wn.prototype;function Wh(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 Tw(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function jw(){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 hp(){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 Yh(){var t=Tw,r=jw,i=Lw,l=Iw,a=zw,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,h=tl,g=ml("start","zoom","end"),y,v,m,w=500,S=150,M=0,C=10;function N(E){E.property("__zoom",hp).on("wheel.zoom",q,{passive:!1}).on("mousedown.zoom",Q).on("dblclick.zoom",te).filter(a).on("touchstart.zoom",J).on("touchmove.zoom",X).on("touchend.zoom touchcancel.zoom",Y).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}N.transform=function(E,$,z,U){var A=E.selection?E.selection():E;A.property("__zoom",hp),E!==A?H(E,$,z,U):A.interrupt().each(function(){O(this,arguments).event(U).start().zoom(null,typeof $=="function"?$.apply(this,arguments):$).end()})},N.scaleBy=function(E,$,z,U){N.scaleTo(E,function(){var A=this.__zoom.k,D=typeof $=="function"?$.apply(this,arguments):$;return A*D},z,U)},N.scaleTo=function(E,$,z,U){N.transform(E,function(){var A=r.apply(this,arguments),D=this.__zoom,V=z==null?P(A):typeof z=="function"?z.apply(this,arguments):z,T=D.invert(V),L=typeof $=="function"?$.apply(this,arguments):$;return i(k(j(D,L),V,T),A,c)},z,U)},N.translateBy=function(E,$,z,U){N.transform(E,function(){return i(this.__zoom.translate(typeof $=="function"?$.apply(this,arguments):$,typeof z=="function"?z.apply(this,arguments):z),r.apply(this,arguments),c)},null,U)},N.translateTo=function(E,$,z,U,A){N.transform(E,function(){var D=r.apply(this,arguments),V=this.__zoom,T=U==null?P(D):typeof U=="function"?U.apply(this,arguments):U;return i(wl.translate(T[0],T[1]).scale(V.k).translate(typeof $=="function"?-$.apply(this,arguments):-$,typeof z=="function"?-z.apply(this,arguments):-z),D,c)},U,A)};function j(E,$){return $=Math.max(u[0],Math.min(u[1],$)),$===E.k?E:new wn($,E.x,E.y)}function k(E,$,z){var U=$[0]-z[0]*E.k,A=$[1]-z[1]*E.k;return U===E.x&&A===E.y?E:new wn(E.k,U,A)}function P(E){return[(+E[0][0]+ +E[1][0])/2,(+E[0][1]+ +E[1][1])/2]}function H(E,$,z,U){E.on("start.zoom",function(){O(this,arguments).event(U).start()}).on("interrupt.zoom end.zoom",function(){O(this,arguments).event(U).end()}).tween("zoom",function(){var A=this,D=arguments,V=O(A,D).event(U),T=r.apply(A,D),L=z==null?P(T):typeof z=="function"?z.apply(A,D):z,ne=Math.max(T[1][0]-T[0][0],T[1][1]-T[0][1]),re=A.__zoom,ae=typeof $=="function"?$.apply(A,D):$,ce=h(re.invert(L).concat(ne/re.k),ae.invert(L).concat(ne/ae.k));return function(ue){if(ue===1)ue=ae;else{var B=ce(ue),ee=ne/B[2];ue=new wn(ee,L[0]-B[0]*ee,L[1]-B[1]*ee)}V.zoom(null,ue)}})}function O(E,$,z){return!z&&E.__zooming||new W(E,$)}function W(E,$){this.that=E,this.args=$,this.active=0,this.sourceEvent=null,this.extent=r.apply(E,$),this.taps=0}W.prototype={event:function(E){return E&&(this.sourceEvent=E),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(E,$){return this.mouse&&E!=="mouse"&&(this.mouse[1]=$.invert(this.mouse[0])),this.touch0&&E!=="touch"&&(this.touch0[1]=$.invert(this.touch0[0])),this.touch1&&E!=="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(E){var $=Ct(this.that).datum();g.call(E,this.that,new Pw(E,{sourceEvent:this.sourceEvent,target:N,transform:this.that.__zoom,dispatch:g}),$)}};function q(E,...$){if(!t.apply(this,arguments))return;var z=O(this,$).event(E),U=this.__zoom,A=Math.max(u[0],Math.min(u[1],U.k*Math.pow(2,l.apply(this,arguments)))),D=Bt(E);if(z.wheel)(z.mouse[0][0]!==D[0]||z.mouse[0][1]!==D[1])&&(z.mouse[1]=U.invert(z.mouse[0]=D)),clearTimeout(z.wheel);else{if(U.k===A)return;z.mouse=[D,U.invert(D)],ol(this),z.start()}oi(E),z.wheel=setTimeout(V,S),z.zoom("mouse",i(k(j(U,A),z.mouse[0],z.mouse[1]),z.extent,c));function V(){z.wheel=null,z.end()}}function Q(E,...$){if(m||!t.apply(this,arguments))return;var z=E.currentTarget,U=O(this,$,!0).event(E),A=Ct(E.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",ne,!0),D=Bt(E,z),V=E.clientX,T=E.clientY;Th(E.view),Pu(E),U.mouse=[D,this.__zoom.invert(D)],ol(this),U.start();function L(re){if(oi(re),!U.moved){var ae=re.clientX-V,ce=re.clientY-T;U.moved=ae*ae+ce*ce>M}U.event(re).zoom("mouse",i(k(U.that.__zoom,U.mouse[0]=Bt(re,z),U.mouse[1]),U.extent,c))}function ne(re){A.on("mousemove.zoom mouseup.zoom",null),jh(re.view,U.moved),oi(re),U.event(re).end()}}function te(E,...$){if(t.apply(this,arguments)){var z=this.__zoom,U=Bt(E.changedTouches?E.changedTouches[0]:E,this),A=z.invert(U),D=z.k*(E.shiftKey?.5:2),V=i(k(j(z,D),U,A),r.apply(this,$),c);oi(E),d>0?Ct(this).transition().duration(d).call(H,V,U,E):Ct(this).call(N.transform,V,U,E)}}function J(E,...$){if(t.apply(this,arguments)){var z=E.touches,U=z.length,A=O(this,$,E.changedTouches.length===U).event(E),D,V,T,L;for(Pu(E),V=0;V<U;++V)T=z[V],L=Bt(T,this),L=[L,this.__zoom.invert(L),T.identifier],A.touch0?!A.touch1&&A.touch0[2]!==L[2]&&(A.touch1=L,A.taps=0):(A.touch0=L,D=!0,A.taps=1+!!y);y&&(y=clearTimeout(y)),D&&(A.taps<2&&(v=L[0],y=setTimeout(function(){y=null},w)),ol(this),A.start())}}function X(E,...$){if(this.__zooming){var z=O(this,$).event(E),U=E.changedTouches,A=U.length,D,V,T,L;for(oi(E),D=0;D<A;++D)V=U[D],T=Bt(V,this),z.touch0&&z.touch0[2]===V.identifier?z.touch0[0]=T:z.touch1&&z.touch1[2]===V.identifier&&(z.touch1[0]=T);if(V=z.that.__zoom,z.touch1){var ne=z.touch0[0],re=z.touch0[1],ae=z.touch1[0],ce=z.touch1[1],ue=(ue=ae[0]-ne[0])*ue+(ue=ae[1]-ne[1])*ue,B=(B=ce[0]-re[0])*B+(B=ce[1]-re[1])*B;V=j(V,Math.sqrt(ue/B)),T=[(ne[0]+ae[0])/2,(ne[1]+ae[1])/2],L=[(re[0]+ce[0])/2,(re[1]+ce[1])/2]}else if(z.touch0)T=z.touch0[0],L=z.touch0[1];else return;z.zoom("touch",i(k(V,T,L),z.extent,c))}}function Y(E,...$){if(this.__zooming){var z=O(this,$).event(E),U=E.changedTouches,A=U.length,D,V;for(Pu(E),m&&clearTimeout(m),m=setTimeout(function(){m=null},w),D=0;D<A;++D)V=U[D],z.touch0&&z.touch0[2]===V.identifier?delete z.touch0:z.touch1&&z.touch1[2]===V.identifier&&delete z.touch1;if(z.touch1&&!z.touch0&&(z.touch0=z.touch1,delete z.touch1),z.touch0)z.touch0[1]=this.__zoom.invert(z.touch0[0]);else if(z.end(),z.taps===2&&(V=Bt(V,this),Math.hypot(v[0]-V[0],v[1]-V[1])<C)){var T=Ct(this).on("dblclick.zoom");T&&T.apply(this,arguments)}}}return N.wheelDelta=function(E){return arguments.length?(l=typeof E=="function"?E:Ks(+E),N):l},N.filter=function(E){return arguments.length?(t=typeof E=="function"?E:Ks(!!E),N):t},N.touchable=function(E){return arguments.length?(a=typeof E=="function"?E:Ks(!!E),N):a},N.extent=function(E){return arguments.length?(r=typeof E=="function"?E:Ks([[+E[0][0],+E[0][1]],[+E[1][0],+E[1][1]]]),N):r},N.scaleExtent=function(E){return arguments.length?(u[0]=+E[0],u[1]=+E[1],N):[u[0],u[1]]},N.translateExtent=function(E){return arguments.length?(c[0][0]=+E[0][0],c[1][0]=+E[1][0],c[0][1]=+E[0][1],c[1][1]=+E[1][1],N):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},N.constrain=function(E){return arguments.length?(i=E,N):i},N.duration=function(E){return arguments.length?(d=+E,N):d},N.interpolate=function(E){return arguments.length?(h=E,N):h},N.on=function(){var E=g.on.apply(g,arguments);return E===g?N:E},N.clickDistance=function(E){return arguments.length?(M=(E=+E)*E,N):Math.sqrt(M)},N.tapDistance=function(E){return arguments.length?(C=+E,N):C},N}const Xt={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.`},pi=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Xh=["Enter"," ","Escape"],Kh={"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 hi;(function(t){t.Partial="partial",t.Full="full"})(hi||(hi={}));const Qh={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Yn;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(Yn||(Yn={}));var dl;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(dl||(dl={}));var xe;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(xe||(xe={}));const gp={[xe.Left]:xe.Right,[xe.Right]:xe.Left,[xe.Top]:xe.Bottom,[xe.Bottom]:xe.Top},Gh=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),ac=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}=Qt(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):ac(u)?u:r.nodeLookup.get(u.id)),d?(i=!0,_l(a,pl(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,pl(a)),l=!0)}),l?Sl(i):{x:0,y:0,width:0,height:0}},uc=(t,r,[i,l,a]=[0,0,1],u=!1,c=!1)=>{const d=(r.x-i)/a,h=(r.y-l)/a,g=r.width/a,y=r.height/a,v=[];for(const m of t.values()){const{measured:w,selectable:S=!0,hidden:M=!1}=m;if(c&&!S||M)continue;const C=w.width??m.width??m.initialWidth??0,N=w.height??m.height??m.initialHeight??0,{x:j,y:k}=m.internals.positionAbsolute,P=eg(d,h,g,y,j,k,C,N),H=C*N,O=u&&P>0;(!m.internals.handleBounds||O||P>=H||m.dragging)&&v.push(m)}return v},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}=Qt(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),h=Si(d),g=fc(h,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 qh({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:h,y:g}=d?d.internals.positionAbsolute:{x:0,y:0},y=c.origin??l;let v=c.extent||a;if(c.extent==="parent"&&!c.expandParent)if(!d)u==null||u("005",Xt.error005());else{const{width:w,height:S}=Qt(d);w&&S&&(v=[[h,g],[h+w,g+S]])}else d&&_r(c.extent)&&(v=[[c.extent[0][0]+h,c.extent[0][1]+g],[c.extent[1][0]+h,c.extent[1][1]+g]]);const m=_r(v)?wr(r,v,c.measured):r;return(c.measured.width===void 0||c.measured.height===void 0)&&(u==null||u("015",Xt.error015())),{position:{x:m.x-h+(c.measured.width??0)*y[0],y:m.y-g+(c.measured.height??0)*y[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),S=!w&&m.parentId&&c.find(M=>M.id===m.parentId);(w||S)&&c.push(m)}const d=new Set(r.map(m=>m.id)),h=l.filter(m=>m.deletable!==!1),y=Dw(c,h);for(const m of h)d.has(m.id)&&!y.find(S=>S.id===m.id)&&y.push(m);if(!a)return{edges:y,nodes:c};const v=await a({nodes:c,edges:y});return typeof v=="boolean"?v?{edges:y,nodes:c}:{edges:[],nodes:[]}:v}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 Zh(t,r,i){const{width:l,height:a}=Qt(i),{x:u,y:c}=i.internals.positionAbsolute;return wr(t,[[u,c],[u+l,c+a]],r)}const mp=(t,r,i)=>t<r?lo(Math.abs(t-r),1,r)/r:t>i?-lo(Math.abs(t-i),1,r)/r:0,cc=(t,r,i=15,l=40)=>{const a=mp(t.x,l,r.width-l)*i,u=mp(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}=ac(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}},pl=(t,r=[0,0])=>{var a,u;const{x:i,y:l}=ac(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)}},Jh=(t,r)=>Sl(_l(Xu(t),Xu(r))),eg=(t,r,i,l,a,u,c,d)=>{const h=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(h*g)},hl=(t,r)=>eg(t.x,t.y,t.width,t.height,r.x,r.y,r.width,r.height),yp=t=>Wt(t.width)&&Wt(t.height)&&Wt(t.x)&&Wt(t.y),Wt=t=>!isNaN(t)&&isFinite(t),tg=(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:h,y:g}=ao({x:t.x+t.width,y:t.y+t.height},[r,i,l]),y=a-h,v=u-g;return{left:Math.floor(c),top:Math.floor(d),right:Math.floor(y),bottom:Math.floor(v)}}const fc=(t,r,i,l,a,u)=>{const c=Fw(u,r,i),d=(r-c.x)/t.width,h=(i-c.y)/t.height,g=Math.min(d,h),y=lo(g,l,a),v=t.x+t.width/2,m=t.y+t.height/2,w=r/2-v*y,S=i/2-m*y,M=Hw(t,w,S,y,r,i),C={left:Math.min(M.left-c.left,0),top:Math.min(M.top-c.top,0),right:Math.min(M.right-c.right,0),bottom:Math.min(M.bottom-c.bottom,0)};return{x:w-C.left+C.right,y:S-C.top+C.bottom,zoom:y}},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 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 ng(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 rg(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 vp(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{...Kh,...t||{}}}function og(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}=Yt(t),d=Ei({x:u-((a==null?void 0:a.left)??0),y:c-((a==null?void 0:a.top)??0)},l),{x:h,y:g}=i?ki(d,r):d;return{xSnapped:h,ySnapped:g,...d}}const dc=t=>({width:t.offsetWidth,height:t.offsetHeight}),ig=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 sg(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 lg=t=>"clientX"in t,Yt=(t,r)=>{var u,c;const i=lg(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)}},xp=(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,...dc(c)}})};function ag({sourceX:t,sourceY:r,targetX:i,targetY:l,sourceControlX:a,sourceControlY:u,targetControlX:c,targetControlY:d}){const h=t*.125+a*.375+c*.375+i*.125,g=r*.125+u*.375+d*.375+l*.125,y=Math.abs(h-t),v=Math.abs(g-r);return[h,g,y,v]}function Qs(t,r){return t>=0?.5*t:r*25*Math.sqrt(-t)}function wp({pos:t,x1:r,y1:i,x2:l,y2:a,c:u}){switch(t){case xe.Left:return[r-Qs(r-l,u),i];case xe.Right:return[r+Qs(l-r,u),i];case xe.Top:return[r,i-Qs(i-a,u)];case xe.Bottom:return[r,i+Qs(a-i,u)]}}function ug({sourceX:t,sourceY:r,sourcePosition:i=xe.Bottom,targetX:l,targetY:a,targetPosition:u=xe.Top,curvature:c=.25}){const[d,h]=wp({pos:i,x1:t,y1:r,x2:l,y2:a,c}),[g,y]=wp({pos:u,x1:l,y1:a,x2:t,y2:r,c}),[v,m,w,S]=ag({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:d,sourceControlY:h,targetControlX:g,targetControlY:y});return[`M${t},${r} C${d},${h} ${g},${y} ${l},${a}`,v,m,w,S]}function cg({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(pl(t),pl(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 hl(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",Xt.error006()),r;const l=i.getEdgeId||Xw;let a;return Gh(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 fg({sourceX:t,sourceY:r,targetX:i,targetY:l}){const[a,u,c,d]=cg({sourceX:t,sourceY:r,targetX:i,targetY:l});return[`M ${t},${r}L ${i},${l}`,a,u,c,d]}const _p={[xe.Left]:{x:-1,y:0},[xe.Right]:{x:1,y:0},[xe.Top]:{x:0,y:-1},[xe.Bottom]:{x:0,y:1}},Gw=({source:t,sourcePosition:r=xe.Bottom,target:i})=>r===xe.Left||r===xe.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},Sp=(t,r)=>Math.sqrt(Math.pow(r.x-t.x,2)+Math.pow(r.y-t.y,2));function qw({source:t,sourcePosition:r=xe.Bottom,target:i,targetPosition:l=xe.Top,center:a,offset:u,stepPosition:c}){const d=_p[r],h=_p[l],g={x:t.x+d.x*u,y:t.y+d.y*u},y={x:i.x+h.x*u,y:i.y+h.y*u},v=Gw({source:g,sourcePosition:r,target:y}),m=v.x!==0?"x":"y",w=v[m];let S=[],M,C;const N={x:0,y:0},j={x:0,y:0},[,,k,P]=cg({sourceX:t.x,sourceY:t.y,targetX:i.x,targetY:i.y});if(d[m]*h[m]===-1){m==="x"?(M=a.x??g.x+(y.x-g.x)*c,C=a.y??(g.y+y.y)/2):(M=a.x??(g.x+y.x)/2,C=a.y??g.y+(y.y-g.y)*c);const q=[{x:M,y:g.y},{x:M,y:y.y}],Q=[{x:g.x,y:C},{x:y.x,y:C}];d[m]===w?S=m==="x"?q:Q:S=m==="x"?Q:q}else{const q=[{x:g.x,y:y.y}],Q=[{x:y.x,y:g.y}];if(m==="x"?S=d.x===w?Q:q:S=d.y===w?q:Q,r===l){const E=Math.abs(t[m]-i[m]);if(E<=u){const $=Math.min(u-1,u-E);d[m]===w?N[m]=(g[m]>t[m]?-1:1)*$:j[m]=(y[m]>i[m]?-1:1)*$}}if(r!==l){const E=m==="x"?"y":"x",$=d[m]===h[E],z=g[E]>y[E],U=g[E]<y[E];(d[m]===1&&(!$&&z||$&&U)||d[m]!==1&&(!$&&U||$&&z))&&(S=m==="x"?q:Q)}const te={x:g.x+N.x,y:g.y+N.y},J={x:y.x+j.x,y:y.y+j.y},X=Math.max(Math.abs(te.x-S[0].x),Math.abs(J.x-S[0].x)),Y=Math.max(Math.abs(te.y-S[0].y),Math.abs(J.y-S[0].y));X>=Y?(M=(te.x+J.x)/2,C=S[0].y):(M=S[0].x,C=(te.y+J.y)/2)}const H={x:g.x+N.x,y:g.y+N.y},O={x:y.x+j.x,y:y.y+j.y};return[[t,...H.x!==S[0].x||H.y!==S[0].y?[H]:[],...S,...O.x!==S[S.length-1].x||O.y!==S[S.length-1].y?[O]:[],i],M,C,k,P]}function Zw(t,r,i,l){const a=Math.min(Sp(t,r)/2,Sp(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,y=t.y<i.y?1:-1;return`L ${u+a*g},${c}Q ${u},${c} ${u},${c+a*y}`}const d=t.x<i.x?1:-1,h=t.y<i.y?-1:1;return`L ${u},${c+a*h}Q ${u},${c} ${u+a*d},${c}`}function Ku({sourceX:t,sourceY:r,sourcePosition:i=xe.Bottom,targetX:l,targetY:a,targetPosition:u=xe.Top,borderRadius:c=5,centerX:d,centerY:h,offset:g=20,stepPosition:y=.5}){const[v,m,w,S,M]=qw({source:{x:t,y:r},sourcePosition:i,target:{x:l,y:a},targetPosition:u,center:{x:d,y:h},offset:g,stepPosition:y});let C=`M${v[0].x} ${v[0].y}`;for(let N=1;N<v.length-1;N++)C+=Zw(v[N-1],v[N],v[N+1],c);return C+=`L${v[v.length-1].x} ${v[v.length-1].y}`,[C,m,w,S,M]}function kp(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 v;const{sourceNode:r,targetNode:i}=t;if(!kp(r)||!kp(i))return null;const l=r.internals.handleBounds||Ep(r.handles),a=i.internals.handleBounds||Ep(i.handles),u=Np((l==null?void 0:l.source)??[],t.sourceHandle),c=Np(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(v=t.onError)==null||v.call(t,"008",Xt.error008(u?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const d=(u==null?void 0:u.position)||xe.Bottom,h=(c==null?void 0:c.position)||xe.Top,g=Sr(r,u,d),y=Sr(i,c,h);return{sourceX:g.x,sourceY:g.y,targetX:y.x,targetY:y.y,sourcePosition:d,targetPosition:h}}function Ep(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=xe.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??Qt(t);if(l)return{x:a+c/2,y:u+d/2};switch((r==null?void 0:r.position)??i){case xe.Top:return{x:a+c/2,y:u};case xe.Right:return{x:a+c,y:u+d/2};case xe.Bottom:return{x:a+c/2,y:u+d};case xe.Left:return{x:a,y:u+d/2}}}function Np(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(h=>{if(h&&typeof h=="object"){const g=Qu(h,r);u.has(g)||(c.push({id:g,color:h.color||i,...h}),u.add(g))}}),c),[]).sort((c,d)=>c.id.localeCompare(d.id))}const dg=1e3,t1=10,pc={nodeOrigin:[0,0],nodeExtent:pi,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},n1={...pc,checkEquality:!0};function hc(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=hc(pc,i);for(const a of t.values())if(a.parentId)mc(a,t,r,l);else{const u=_i(a,l.nodeOrigin),c=_r(a.extent)?a.extent:l.nodeExtent,d=wr(u,c,Qt(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 gc(t){return t==="manual"}function Gu(t,r,i,l={}){var y,v;const a=hc(n1,l),u={i:0},c=new Map(r),d=a!=null&&a.elevateNodesOnSelect&&!gc(a.zIndexMode)?dg:0;let h=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 S=_i(m,a.nodeOrigin),M=_r(m.extent)?m.extent:a.nodeExtent,C=wr(S,M,Qt(m));w={...a.defaults,...m,measured:{width:(y=m.measured)==null?void 0:y.width,height:(v=m.measured)==null?void 0:v.height},internals:{positionAbsolute:C,handleBounds:o1(m,w),z:pg(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&&(h=!1),m.parentId&&mc(w,r,i,l,u),g||(g=m.selected??!1)}return{nodesInitialized:h,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 mc(t,r,i,l,a){const{elevateNodesOnSelect:u,nodeOrigin:c,nodeExtent:d,zIndexMode:h}=hc(pc,l),g=t.parentId,y=r.get(g);if(!y){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&&!y.parentId&&y.internals.rootParentIndex===void 0&&h==="auto"&&(y.internals.rootParentIndex=++a.i,y.internals.z=y.internals.z+a.i*t1),a&&y.internals.rootParentIndex!==void 0&&(a.i=y.internals.rootParentIndex);const v=u&&!gc(h)?dg:0,{x:m,y:w,z:S}=s1(t,y,c,d,v,h),{positionAbsolute:M}=t.internals,C=m!==M.x||w!==M.y;(C||S!==t.internals.z)&&r.set(t.id,{...t,internals:{...t.internals,positionAbsolute:C?{x:m,y:w}:M,z:S}})}function pg(t,r,i){const l=Wt(t.zIndex)?t.zIndex:0;return gc(i)?l:l+(t.selected?r:0)}function s1(t,r,i,l,a,u){const{x:c,y:d}=r.internals.positionAbsolute,h=Qt(t),g=_i(t,i),y=_r(t.extent)?wr(g,t.extent,h):g;let v=wr({x:c+y.x,y:d+y.y},l,h);t.extent==="parent"&&(v=Zh(v,h,r));const m=pg(t,a,u),w=r.internals.z??0;return{x:v.x,y:v.y,z:w>=m?w+1:m}}function yc(t,r,i,l=[0,0]){var c;const a=[],u=new Map;for(const d of t){const h=r.get(d.parentId);if(!h)continue;const g=((c=u.get(d.parentId))==null?void 0:c.expandedRect)??gi(h),y=Jh(g,d.rect);u.set(d.parentId,{expandedRect:y,parent:h})}return u.size>0&&u.forEach(({expandedRect:d,parent:h},g)=>{var k;const y=h.internals.positionAbsolute,v=Qt(h),m=h.origin??l,w=d.x<y.x?Math.round(Math.abs(y.x-d.x)):0,S=d.y<y.y?Math.round(Math.abs(y.y-d.y)):0,M=Math.max(v.width,Math.round(d.width)),C=Math.max(v.height,Math.round(d.height)),N=(M-v.width)*m[0],j=(C-v.height)*m[1];(w>0||S>0||N||j)&&(a.push({id:g,type:"position",position:{x:h.position.x-w+N,y:h.position.y-S+j}}),(k=i.get(g))==null||k.forEach(P=>{t.some(H=>H.id===P.id)||a.push({id:P.id,type:"position",position:{x:P.position.x+w,y:P.position.y+S}})})),(v.width<d.width||v.height<d.height||w||S)&&a.push({id:g,type:"dimensions",setAttributes:!0,dimensions:{width:M+(w?m[0]*w-N:0),height:C+(S?m[1]*S-j:0)}})}),a}function l1(t,r,i,l,a,u,c){const d=l==null?void 0:l.querySelector(".xyflow__viewport");let h=!1;if(!d)return{changes:[],updatedInternals:h};const g=[],y=window.getComputedStyle(d),{m22:v}=new window.DOMMatrixReadOnly(y.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}}),h=!0;continue}const M=dc(w.nodeElement),C=S.measured.width!==M.width||S.measured.height!==M.height;if(!!(M.width&&M.height&&(C||!S.internals.handleBounds||w.force))){const j=w.nodeElement.getBoundingClientRect(),k=_r(S.extent)?S.extent:u;let{positionAbsolute:P}=S.internals;if(S.parentId&&S.extent==="parent"){const O=r.get(S.parentId);O&&(P=Zh(P,M,O))}else k&&(P=wr(P,k,M));const H={...S,measured:M,internals:{...S.internals,positionAbsolute:P,handleBounds:{source:xp("source",w.nodeElement,j,v,S.id),target:xp("target",w.nodeElement,j,v,S.id)}}};r.set(S.id,H),S.parentId&&mc(H,r,i,{nodeOrigin:a,zIndexMode:c}),h=!0,C&&(g.push({id:S.id,type:"dimensions",dimensions:M}),S.expandParent&&S.parentId&&m.push({id:S.id,parentId:S.parentId,rect:gi(H,a)}))}}if(m.length>0){const w=yc(m,r,i,a);g.push(...w)}return{changes:g,updatedInternals:h}}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 Cp(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 h=l.get(c)||new Map;if(l.set(c,h.set(i,r)),u){c=`${a}-${t}-${u}`;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:a,target:u,sourceHandle:c=null,targetHandle:d=null}=l,h={edgeId:l.id,source:a,target:u,sourceHandle:c,targetHandle:d},g=`${a}-${c}--${u}-${d}`,y=`${u}-${d}--${a}-${c}`;Cp("source",h,y,t,a,c),Cp("target",h,g,t,u,d),r.set(l.id,l)}}function gg(t,r){if(!t.parentId)return!1;const i=r.get(t.parentId);return i?i.selected?!0:gg(i,r):!1}function Mp(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||!gg(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 Tu({nodeId:t,dragItems:r,nodeLookup:i,dragging:l=!0}){var c,d,h;const a=[];for(const[g,y]of r){const v=(c=i.get(g))==null?void 0:c.internals.userNode;v&&a.push({...v,position:y.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:((h=r.get(t))==null?void 0:h.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,h=!1,g={x:0,y:0},y=null,v=!1,m=null,w=!1,S=!1,M=null;function C({noDragClassName:j,handleSelector:k,domNode:P,isSelectable:H,nodeId:O,nodeClickDistance:W=0}){m=Ct(P);function q({x:X,y:Y}){const{nodeLookup:E,nodeExtent:$,snapGrid:z,snapToGrid:U,nodeOrigin:A,onNodeDrag:D,onSelectionDrag:V,onError:T,updateNodePositions:L}=r();u={x:X,y:Y};let ne=!1;const re=d.size>1,ae=re&&$?Xu(Si(d)):null,ce=re&&U?c1({dragItems:d,snapGrid:z,x:X,y:Y}):null;for(const[ue,B]of d){if(!E.has(ue))continue;let ee={x:X-B.distance.x,y:Y-B.distance.y};U&&(ee=ce?{x:Math.round(ee.x+ce.x),y:Math.round(ee.y+ce.y)}:ki(ee,z));let fe=null;if(re&&$&&!B.extent&&ae){const{positionAbsolute:we}=B.internals,ke=we.x-ae.x+$[0][0],Ne=we.x+B.measured.width-ae.x2+$[1][0],Me=we.y-ae.y+$[0][1],Ie=we.y+B.measured.height-ae.y2+$[1][1];fe=[[ke,Me],[Ne,Ie]]}const{position:ge,positionAbsolute:ve}=qh({nodeId:ue,nextPosition:ee,nodeLookup:E,nodeExtent:fe||$,nodeOrigin:A,onError:T});ne=ne||B.position.x!==ge.x||B.position.y!==ge.y,B.position=ge,B.internals.positionAbsolute=ve}if(S=S||ne,!!ne&&(L(d,!0),M&&(l||D||!O&&V))){const[ue,B]=Tu({nodeId:O,dragItems:d,nodeLookup:E});l==null||l(M,d,ue,B),D==null||D(M,ue,B),O||V==null||V(M,B)}}async function Q(){if(!y)return;const{transform:X,panBy:Y,autoPanSpeed:E,autoPanOnNodeDrag:$}=r();if(!$){h=!1,cancelAnimationFrame(c);return}const[z,U]=cc(g,y,E);(z!==0||U!==0)&&(u.x=(u.x??0)-z/X[2],u.y=(u.y??0)-U/X[2],await Y({x:z,y:U})&&q(u)),c=requestAnimationFrame(Q)}function te(X){var re;const{nodeLookup:Y,multiSelectionActive:E,nodesDraggable:$,transform:z,snapGrid:U,snapToGrid:A,selectNodesOnDrag:D,onNodeDragStart:V,onSelectionDragStart:T,unselectNodesAndEdges:L}=r();v=!0,(!D||!H)&&!E&&O&&((re=Y.get(O))!=null&&re.selected||L()),H&&D&&O&&(t==null||t(O));const ne=ai(X.sourceEvent,{transform:z,snapGrid:U,snapToGrid:A,containerBounds:y});if(u=ne,d=u1(Y,$,ne,O),d.size>0&&(i||V||!O&&T)){const[ae,ce]=Tu({nodeId:O,dragItems:d,nodeLookup:Y});i==null||i(X.sourceEvent,d,ae,ce),V==null||V(X.sourceEvent,ae,ce),O||T==null||T(X.sourceEvent,ce)}}const J=Ih().clickDistance(W).on("start",X=>{const{domNode:Y,nodeDragThreshold:E,transform:$,snapGrid:z,snapToGrid:U}=r();y=(Y==null?void 0:Y.getBoundingClientRect())||null,w=!1,S=!1,M=X.sourceEvent,E===0&&te(X),u=ai(X.sourceEvent,{transform:$,snapGrid:z,snapToGrid:U,containerBounds:y}),g=Yt(X.sourceEvent,y)}).on("drag",X=>{const{autoPanOnNodeDrag:Y,transform:E,snapGrid:$,snapToGrid:z,nodeDragThreshold:U,nodeLookup:A}=r(),D=ai(X.sourceEvent,{transform:E,snapGrid:$,snapToGrid:z,containerBounds:y});if(M=X.sourceEvent,(X.sourceEvent.type==="touchmove"&&X.sourceEvent.touches.length>1||O&&!A.has(O))&&(w=!0),!w){if(!h&&Y&&v&&(h=!0,Q()),!v){const V=Yt(X.sourceEvent,y),T=V.x-g.x,L=V.y-g.y;Math.sqrt(T*T+L*L)>U&&te(X)}(u.x!==D.xSnapped||u.y!==D.ySnapped)&&d&&v&&(g=Yt(X.sourceEvent,y),q(D))}}).on("end",X=>{if(!v||w){w&&d.size>0&&r().updateNodePositions(d,!1);return}if(h=!1,v=!1,cancelAnimationFrame(c),d.size>0){const{nodeLookup:Y,updateNodePositions:E,onNodeDragStop:$,onSelectionDragStop:z}=r();if(S&&(E(d,!1),S=!1),a||$||!O&&z){const[U,A]=Tu({nodeId:O,dragItems:d,nodeLookup:Y,dragging:!1});a==null||a(X.sourceEvent,d,U,A),$==null||$(X.sourceEvent,U,A),O||z==null||z(X.sourceEvent,A)}}}).filter(X=>{const Y=X.target;return!X.button&&(!j||!Mp(Y,`.${j}`,P))&&(!k||Mp(Y,k,P))});m.call(J)}function N(){m==null||m.on(".drag",null)}return{update:C,destroy:N}}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())hl(a,gi(u))>0&&l.push(u);return l}const p1=250;function h1(t,r,i,l){var d,h;let a=[],u=1/0;const c=d1(t,i,r+p1);for(const g of c){const y=[...((d=g.internals.handleBounds)==null?void 0:d.source)??[],...((h=g.internals.handleBounds)==null?void 0:h.target)??[]];for(const v of y){if(l.nodeId===v.nodeId&&l.type===v.type&&l.id===v.id)continue;const{x:m,y:w}=Sr(g,v,v.position,!0),S=Math.sqrt(Math.pow(m-t.x,2)+Math.pow(w-t.y,2));S>r||(S<u?(a=[{...v,x:m,y:w}],u=S):S===u&&a.push({...v,x:m,y:w}))}}if(!a.length)return null;if(a.length>1){const g=l.type==="source"?"target":"source";return a.find(y=>y.type===g)??a[0]}return a[0]}function mg(t,r,i,l,a,u=!1){var g,y,v;const c=l.get(t);if(!c)return null;const d=a==="strict"?(g=c.internals.handleBounds)==null?void 0:g[r]:[...((y=c.internals.handleBounds)==null?void 0:y.source)??[],...((v=c.internals.handleBounds)==null?void 0:v.target)??[]],h=(i?d==null?void 0:d.find(m=>m.id===i):d==null?void 0:d[0])??null;return h&&u?{...h,...Sr(c,h,h.position,!0)}:h}function yg(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 vg=()=>!0;function m1(t,{connectionMode:r,connectionRadius:i,handleId:l,nodeId:a,edgeUpdaterType:u,isTarget:c,domNode:d,nodeLookup:h,lib:g,autoPanOnConnect:y,flowId:v,panBy:m,cancelConnection:w,onConnectStart:S,onConnect:M,onConnectEnd:C,isValidConnection:N=vg,onReconnectEnd:j,updateConnection:k,getTransform:P,getFromHandle:H,autoPanSpeed:O,dragThreshold:W=1,handleDomNode:q}){const Q=ig(t.target);let te=0,J;const{x:X,y:Y}=Yt(t),E=yg(u,q),$=d==null?void 0:d.getBoundingClientRect();let z=!1;if(!$||!E)return;const U=mg(a,E,l,h,r);if(!U)return;let A=Yt(t,$),D=!1,V=null,T=!1,L=null;function ne(){if(!y||!$)return;const[ge,ve]=cc(A,$,O);m({x:ge,y:ve}),te=requestAnimationFrame(ne)}const re={...U,nodeId:a,type:E,position:U.position},ae=h.get(a);let ue={inProgress:!0,isValid:null,from:Sr(ae,re,xe.Left,!0),fromHandle:re,fromPosition:re.position,fromNode:ae,to:A,toHandle:null,toPosition:gp[re.position],toNode:null,pointer:A};function B(){z=!0,k(ue),S==null||S(t,{nodeId:a,handleId:l,handleType:E})}W===0&&B();function ee(ge){if(!z){const{x:Ie,y:lt}=Yt(ge),ct=Ie-X,tt=lt-Y;if(!(ct*ct+tt*tt>W*W))return;B()}if(!H()||!re){fe(ge);return}const ve=P();A=Yt(ge,$),J=h1(Ei(A,ve,!1,[1,1]),i,h,re),D||(ne(),D=!0);const we=xg(ge,{handle:J,connectionMode:r,fromNodeId:a,fromHandleId:l,fromType:c?"target":"source",isValidConnection:N,doc:Q,lib:g,flowId:v,nodeLookup:h});L=we.handleDomNode,V=we.connection,T=g1(!!J,we.isValid);const ke=h.get(a),Ne=ke?Sr(ke,re,xe.Left,!0):ue.from,Me={...ue,from:Ne,isValid:T,to:we.toHandle&&T?ao({x:we.toHandle.x,y:we.toHandle.y},ve):A,toHandle:we.toHandle,toPosition:T&&we.toHandle?we.toHandle.position:gp[re.position],toNode:we.toHandle?h.get(we.toHandle.nodeId):null,pointer:A};k(Me),ue=Me}function fe(ge){if(!("touches"in ge&&ge.touches.length>0)){if(z){(J||L)&&V&&T&&(M==null||M(V));const{inProgress:ve,...we}=ue,ke={...we,toPosition:ue.toHandle?ue.toPosition:null};C==null||C(ge,ke),u&&(j==null||j(ge,ke))}w(),cancelAnimationFrame(te),D=!1,T=!1,V=null,L=null,Q.removeEventListener("mousemove",ee),Q.removeEventListener("mouseup",fe),Q.removeEventListener("touchmove",ee),Q.removeEventListener("touchend",fe)}}Q.addEventListener("mousemove",ee),Q.addEventListener("mouseup",fe),Q.addEventListener("touchmove",ee),Q.addEventListener("touchend",fe)}function xg(t,{handle:r,connectionMode:i,fromNodeId:l,fromHandleId:a,fromType:u,doc:c,lib:d,flowId:h,isValidConnection:g=vg,nodeLookup:y}){const v=u==="target",m=r?c.querySelector(`.${d}-flow__handle[data-id="${h}-${r==null?void 0:r.nodeId}-${r==null?void 0:r.id}-${r==null?void 0:r.type}"]`):null,{x:w,y:S}=Yt(t),M=c.elementFromPoint(w,S),C=M!=null&&M.classList.contains(`${d}-flow__handle`)?M:m,N={handleDomNode:C,isValid:!1,connection:null,toHandle:null};if(C){const j=yg(void 0,C),k=C.getAttribute("data-nodeid"),P=C.getAttribute("data-handleid"),H=C.classList.contains("connectable"),O=C.classList.contains("connectableend");if(!k||!j)return N;const W={source:v?k:l,sourceHandle:v?P:a,target:v?l:k,targetHandle:v?a:P};N.connection=W;const Q=H&&O&&(i===so.Strict?v&&j==="source"||!v&&j==="target":k!==l||P!==a);N.isValid=Q&&g(W),N.toHandle=mg(k,j,P,y,i,!0)}return N}const qu={onPointerDown:m1,isValid:xg};function y1({domNode:t,panZoom:r,getTransform:i,getViewScale:l}){const a=Ct(t);function u({translateExtent:d,width:h,height:g,zoomStep:y=1,pannable:v=!0,zoomable:m=!0,inversePan:w=!1}){const S=k=>{if(k.sourceEvent.type!=="wheel"||!r)return;const P=i(),H=k.sourceEvent.ctrlKey&&mi()?10:1,O=-k.sourceEvent.deltaY*(k.sourceEvent.deltaMode===1?.05:k.sourceEvent.deltaMode?1:.002)*y,W=P[2]*Math.pow(2,O*H);r.scaleTo(W)};let M=[0,0];const C=k=>{(k.sourceEvent.type==="mousedown"||k.sourceEvent.type==="touchstart")&&(M=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY])},N=k=>{const P=i();if(k.sourceEvent.type!=="mousemove"&&k.sourceEvent.type!=="touchmove"||!r)return;const H=[k.sourceEvent.clientX??k.sourceEvent.touches[0].clientX,k.sourceEvent.clientY??k.sourceEvent.touches[0].clientY],O=[H[0]-M[0],H[1]-M[1]];M=H;const W=l()*Math.max(P[2],Math.log(P[2]))*(w?-1:1),q={x:P[0]-O[0]*W,y:P[1]-O[1]*W},Q=[[0,0],[h,g]];r.setViewportConstrained({x:q.x,y:q.y,zoom:P[2]},Q,d)},j=Yh().on("start",C).on("zoom",v?N:null).on("zoom.wheel",m?S: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}),ju=({x:t,y:r,zoom:i})=>wl.translate(t,r).scale(i),Wn=(t,r)=>t.target.closest(`.${r}`),wg=(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},_g=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:h,onPanZoomEnd:g}){return y=>{if(Wn(y,r))return y.ctrlKey&&y.preventDefault(),!1;y.preventDefault(),y.stopImmediatePropagation();const v=i.property("__zoom").k||1;if(y.ctrlKey&&c){const C=Bt(y),N=_g(y),j=v*Math.pow(2,N);l.scaleTo(i,j,C,y);return}const m=y.deltaMode===1?20:1;let w=a===yr.Vertical?0:y.deltaX*m,S=a===yr.Horizontal?0:y.deltaY*m;!mi()&&y.shiftKey&&a!==yr.Vertical&&(w=y.deltaY*m,S=0),l.translateBy(i,-(w/v)*u,-(S/v)*u,{internal:!0});const M=kl(i.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?h==null||h(y,M):(t.isPanScrolling=!0,d==null||d(y,M)),t.panScrollTimeout=setTimeout(()=>{g==null||g(y,M),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=Wn(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&&wg(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&&wg(r,t.mouseButton??0)&&!t.usedRightMouseButton&&c.sourceEvent&&u(c.sourceEvent),t.usedRightMouseButton=!1,l(!1),a)){const h=kl(c.transform);t.prevViewport=h,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{a==null||a(c.sourceEvent,h)},i?150:0)}}}function E1({panActivationKeyPressed:t,zoomActivationKeyPressed:r,zoomOnScroll:i,zoomOnPinch:l,panOnDrag:a,panOnScroll:u,zoomOnDoubleClick:c,userSelectionActive:d,noWheelClassName:h,noPanClassName:g,lib:y,connectionInProgress:v}){return m=>{var N;const w=r||i,S=l&&m.ctrlKey,M=m.type==="wheel";if(m.button===1&&m.type==="mousedown"&&(Wn(m,`${y}-flow__node`)||Wn(m,`${y}-flow__edge`)||Wn(m,`${y}-flow__selection`)||Wn(m,`${y}-flow__nodesselection`)))return!0;if(!a&&!w&&!u&&!c&&!l||d||v&&!M||Wn(m,h)&&M||Wn(m,g)&&(!M||u&&M&&!r)||!l&&m.ctrlKey&&M)return!1;if(!l&&m.type==="touchstart"&&((N=m.touches)==null?void 0:N.length)>1)return m.preventDefault(),!1;if(!w&&!u&&!S&&M||!a&&(m.type==="mousedown"||m.type==="touchstart")||Array.isArray(a)&&!a.includes(m.button)&&m.type==="mousedown")return!1;const C=Array.isArray(a)&&a.includes(m.button)||!m.button||m.button<=1;return(!m.ctrlKey||M||t)&&C}}function N1({domNode:t,minZoom:r,maxZoom:i,translateExtent:l,viewport:a,onPanZoom:u,onPanZoomStart:c,onPanZoomEnd:d,onDraggingChange:h}){const g={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},y=t.getBoundingClientRect();let v=[[0,0],[y.width,y.height]];const m=typeof ResizeObserver<"u"?new ResizeObserver(Y=>{const E=Y[0];E&&(v=[[0,0],[E.contentRect.width,E.contentRect.height]])}):null;m==null||m.observe(t);const w=Yh().extent(()=>v).scaleExtent([r,i]).translateExtent(l),S=Ct(t).call(w);P({x:a.x,y:a.y,zoom:lo(a.zoom,r,i)},[[0,0],[y.width,y.height]],l);const M=S.on("wheel.zoom"),C=S.on("dblclick.zoom");w.wheelDelta(_g);async function N(Y,E){return S?new Promise($=>{w==null||w.interpolate((E==null?void 0:E.interpolate)==="linear"?li:tl).transform(Iu(S,E==null?void 0:E.duration,E==null?void 0:E.ease,()=>$(!0)),Y)}):!1}function j({noWheelClassName:Y,noPanClassName:E,onPaneContextMenu:$,userSelectionActive:z,panOnScroll:U,panOnDrag:A,panOnScrollMode:D,panOnScrollSpeed:V,preventScrolling:T,zoomOnPinch:L,zoomOnScroll:ne,zoomOnDoubleClick:re,panActivationKeyPressed:ae=!1,zoomActivationKeyPressed:ce,lib:ue,onTransformChange:B,connectionInProgress:ee,paneClickDistance:fe,selectionOnDrag:ge}){z&&!g.isZoomingOrPanning&&k();const ve=U&&!ce&&!z;w.clickDistance(ge?1/0:!Wt(fe)||fe<0?0:fe);const we=ve?x1({zoomPanValues:g,noWheelClassName:Y,d3Selection:S,d3Zoom:w,panOnScrollMode:D,panOnScrollSpeed:V,zoomOnPinch:L,onPanZoomStart:c,onPanZoom:u,onPanZoomEnd:d}):w1({noWheelClassName:Y,preventScrolling:T,d3ZoomHandler:M});S.on("wheel.zoom",we,{passive:!1});const ke=_1({zoomPanValues:g,onDraggingChange:h,onPanZoomStart:c});w.on("start",ke);const Ne=S1({zoomPanValues:g,panOnDrag:A,onPaneContextMenu:!!$,onPanZoom:u,onTransformChange:B});w.on("zoom",Ne);const Me=k1({zoomPanValues:g,panOnDrag:A,panOnScroll:U,onPaneContextMenu:$,onPanZoomEnd:d,onDraggingChange:h});w.on("end",Me);const Ie=E1({panActivationKeyPressed:ae,zoomActivationKeyPressed:ce,panOnDrag:A,zoomOnScroll:ne,panOnScroll:U,zoomOnDoubleClick:re,zoomOnPinch:L,userSelectionActive:z,noPanClassName:E,noWheelClassName:Y,lib:ue,connectionInProgress:ee});w.filter(Ie),re?S.on("dblclick.zoom",C):S.on("dblclick.zoom",null)}function k(){w.on("zoom",null)}async function P(Y,E,$){const z=ju(Y),U=w==null?void 0:w.constrain()(z,E,$);return U&&await N(U),U}async function H(Y,E){const $=ju(Y);return await N($,E),$}function O(Y){if(S){const E=ju(Y),$=S.property("__zoom");($.k!==Y.zoom||$.x!==Y.x||$.y!==Y.y)&&(w==null||w.transform(S,E,null,{sync:!0}))}}function W(){const Y=S?Wh(S.node()):{x:0,y:0,k:1};return{x:Y.x,y:Y.y,zoom:Y.k}}async function q(Y,E){return S?new Promise($=>{w==null||w.interpolate((E==null?void 0:E.interpolate)==="linear"?li:tl).scaleTo(Iu(S,E==null?void 0:E.duration,E==null?void 0:E.ease,()=>$(!0)),Y)}):!1}async function Q(Y,E){return S?new Promise($=>{w==null||w.interpolate((E==null?void 0:E.interpolate)==="linear"?li:tl).scaleBy(Iu(S,E==null?void 0:E.duration,E==null?void 0:E.ease,()=>$(!0)),Y)}):!1}function te(Y){w==null||w.scaleExtent(Y)}function J(Y){w==null||w.translateExtent(Y)}function X(Y){const E=!Wt(Y)||Y<0?0:Y;w==null||w.clickDistance(E)}return{update:j,destroy:k,setViewport:H,setViewportConstrained:P,getViewport:W,scaleTo:q,scaleBy:Q,setScaleExtent:te,setTranslateExtent:J,syncViewport:O,setClickDistance:X}}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,h=[c>0?1:c<0?-1:0,d>0?1:d<0?-1:0];return c&&a&&(h[0]=h[0]*-1),d&&u&&(h[1]=h[1]*-1),h}function Pp(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 Vn(t,r){return Math.max(0,r-t)}function Un(t,r){return Math.max(0,t-r)}function Gs(t,r,i){return Math.max(0,r-t,t-i)}function Tp(t,r){return t?!r:r}function M1(t,r,i,l,a,u,c,d){let{affectsX:h,affectsY:g}=r;const{isHorizontal:y,isVertical:v}=r,m=y&&v,{xSnapped:w,ySnapped:S}=i,{minWidth:M,maxWidth:C,minHeight:N,maxHeight:j}=l,{x:k,y:P,width:H,height:O,aspectRatio:W}=t;let q=Math.floor(y?w-t.pointerX:0),Q=Math.floor(v?S-t.pointerY:0);const te=H+(h?-q:q),J=O+(g?-Q:Q),X=-u[0]*H,Y=-u[1]*O;let E=Gs(te,M,C),$=Gs(J,N,j);if(c){let A=0,D=0;h&&q<0?A=Vn(k+q+X,c[0][0]):!h&&q>0&&(A=Un(k+te+X,c[1][0])),g&&Q<0?D=Vn(P+Q+Y,c[0][1]):!g&&Q>0&&(D=Un(P+J+Y,c[1][1])),E=Math.max(E,A),$=Math.max($,D)}if(d){let A=0,D=0;h&&q>0?A=Un(k+q,d[0][0]):!h&&q<0&&(A=Vn(k+te,d[1][0])),g&&Q>0?D=Un(P+Q,d[0][1]):!g&&Q<0&&(D=Vn(P+J,d[1][1])),E=Math.max(E,A),$=Math.max($,D)}if(a){if(y){const A=Gs(te/W,N,j)*W;if(E=Math.max(E,A),c){let D=0;!h&&!g||h&&!g&&m?D=Un(P+Y+te/W,c[1][1])*W:D=Vn(P+Y+(h?q:-q)/W,c[0][1])*W,E=Math.max(E,D)}if(d){let D=0;!h&&!g||h&&!g&&m?D=Vn(P+te/W,d[1][1])*W:D=Un(P+(h?q:-q)/W,d[0][1])*W,E=Math.max(E,D)}}if(v){const A=Gs(J*W,M,C)/W;if($=Math.max($,A),c){let D=0;!h&&!g||g&&!h&&m?D=Un(k+J*W+X,c[1][0])/W:D=Vn(k+(g?Q:-Q)*W+X,c[0][0])/W,$=Math.max($,D)}if(d){let D=0;!h&&!g||g&&!h&&m?D=Vn(k+J*W,d[1][0])/W:D=Un(k+(g?Q:-Q)*W,d[0][0])/W,$=Math.max($,D)}}}Q=Q+(Q<0?$:-$),q=q+(q<0?E:-E),a&&(m?te>J*W?Q=(Tp(h,g)?-q:q)/W:q=(Tp(h,g)?-Q:Q)*W:y?(Q=q/W,g=h):(q=Q*W,h=g));const z=h?k+q:k,U=g?P+Q:P;return{width:H+(h?-q:q),height:O+(g?-Q:Q),x:u[0]*q*(h?-1:1)+z,y:u[1]*Q*(g?-1:1)+U}}const Sg={width:0,height:0,x:0,y:0},P1={...Sg,pointerX:0,pointerY:0,aspectRatio:1};function T1(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,h=i[1]*c;return[[l-d,a-h],[l+u-d,a+c-h]]}function j1({domNode:t,nodeId:r,getStoreItems:i,onChange:l,onEnd:a}){const u=Ct(t);let c={controlDirection:Pp("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:y,keepAspectRatio:v,resizeDirection:m,onResizeStart:w,onResize:S,onResizeEnd:M,shouldResize:C}){let N={...Sg},j={...P1};c={boundaries:y,resizeDirection:m,keepAspectRatio:v,controlDirection:Pp(g)};let k,P=null,H=[],O,W,q,Q=!1;const te=Ih().on("start",J=>{const{nodeLookup:X,transform:Y,snapGrid:E,snapToGrid:$,nodeOrigin:z,paneDomNode:U}=i();if(k=X.get(r),!k)return;P=(U==null?void 0:U.getBoundingClientRect())??null;const{xSnapped:A,ySnapped:D}=ai(J.sourceEvent,{transform:Y,snapGrid:E,snapToGrid:$,containerBounds:P});N={width:k.measured.width??0,height:k.measured.height??0,x:k.position.x??0,y:k.position.y??0},j={...N,pointerX:A,pointerY:D,aspectRatio:N.width/N.height},O=void 0,W=_r(k.extent)?k.extent:void 0,k.parentId&&(k.extent==="parent"||k.expandParent)&&(O=X.get(k.parentId)),O&&k.extent==="parent"&&(W=[[0,0],[O.measured.width,O.measured.height]]),H=[],q=void 0;for(const[V,T]of X)if(T.parentId===r&&(H.push({id:V,position:{...T.position},extent:T.extent}),T.extent==="parent"||T.expandParent)){const L=T1(T,k,T.origin??z);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(J,{...N})}).on("drag",J=>{const{transform:X,snapGrid:Y,snapToGrid:E,nodeOrigin:$}=i(),z=ai(J.sourceEvent,{transform:X,snapGrid:Y,snapToGrid:E,containerBounds:P}),U=[];if(!k)return;const{x:A,y:D,width:V,height:T}=N,L={},ne=k.origin??$,{width:re,height:ae,x:ce,y:ue}=M1(j,c.controlDirection,z,c.boundaries,c.keepAspectRatio,ne,W,q),B=re!==V,ee=ae!==T,fe=ce!==A&&B,ge=ue!==D&ⅇif(!fe&&!ge&&!B&&!ee)return;if((fe||ge||ne[0]===1||ne[1]===1)&&(L.x=fe?ce:N.x,L.y=ge?ue:N.y,N.x=L.x,N.y=L.y,H.length>0)){const Ne=ce-A,Me=ue-D;for(const Ie of H)Ie.position={x:Ie.position.x-Ne+ne[0]*(re-V),y:Ie.position.y-Me+ne[1]*(ae-T)},U.push(Ie)}if((B||ee)&&(L.width=B&&(!c.resizeDirection||c.resizeDirection==="horizontal")?re:N.width,L.height=ee&&(!c.resizeDirection||c.resizeDirection==="vertical")?ae:N.height,N.width=L.width,N.height=L.height),O&&k.expandParent){const Ne=ne[0]*(L.width??0);L.x&&L.x<Ne&&(N.x=Ne,j.x=j.x-(L.x-Ne));const Me=ne[1]*(L.height??0);L.y&&L.y<Me&&(N.y=Me,j.y=j.y-(L.y-Me))}const ve=C1({width:N.width,prevWidth:V,height:N.height,prevHeight:T,affectsX:c.controlDirection.affectsX,affectsY:c.controlDirection.affectsY}),we={...N,direction:ve};(C==null?void 0:C(J,we))!==!1&&(Q=!0,S==null||S(J,we),l(L,U))}).on("end",J=>{Q&&(M==null||M(J,{...N}),a==null||a({...N}),Q=!1)});u.call(te)}function h(){u.on(".drag",null)}return{update:d,destroy:h}}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 jp;function I1(){if(jp)return Au;jp=1;var t=vi();function r(v,m){return v===m&&(v!==0||1/v===1/m)||v!==v&&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(v,m){var w=m(),S=l({inst:{value:w,getSnapshot:m}}),M=S[0].inst,C=S[1];return u(function(){M.value=w,M.getSnapshot=m,h(M)&&C({inst:M})},[v,w,m]),a(function(){return h(M)&&C({inst:M}),v(function(){h(M)&&C({inst:M})})},[v]),c(w),w}function h(v){var m=v.getSnapshot;v=v.value;try{var w=m();return!i(v,w)}catch{return!0}}function g(v,m){return m()}var y=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?g:d;return Au.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:y,Au}var Ip;function z1(){return Ip||(Ip=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 zp;function L1(){if(zp)return Lu;zp=1;var t=vi(),r=z1();function i(g,y){return g===y&&(g!==0||1/g===1/y)||g!==g&&y!==y}var l=typeof Object.is=="function"?Object.is:i,a=r.useSyncExternalStore,u=t.useRef,c=t.useEffect,d=t.useMemo,h=t.useDebugValue;return Lu.useSyncExternalStoreWithSelector=function(g,y,v,m,w){var S=u(null);if(S.current===null){var M={hasValue:!1,value:null};S.current=M}else M=S.current;S=d(function(){function N(O){if(!j){if(j=!0,k=O,O=m(O),w!==void 0&&M.hasValue){var W=M.value;if(w(W,O))return P=W}return P=O}if(W=P,l(k,O))return W;var q=m(O);return w!==void 0&&w(W,q)?(k=O,W):(k=O,P=q)}var j=!1,k,P,H=v===void 0?null:v;return[function(){return N(y())},H===null?void 0:function(){return N(H())}]},[y,v,m,w]);var C=a(g,S[0],S[1]);return c(function(){M.hasValue=!0,M.value=C},[C]),h(C),C},Lu}var Lp;function R1(){return Lp||(Lp=1,zu.exports=L1()),zu.exports}var A1=R1();const D1=ch(A1),$1={},Rp=t=>{let r;const i=new Set,l=(y,v)=>{const m=typeof y=="function"?y(r):y;if(!Object.is(m,r)){const w=r;r=v??(typeof m!="object"||m===null)?m:Object.assign({},r,m),i.forEach(S=>S(r,w))}},a=()=>r,h={setState:l,getState:a,getInitialState:()=>g,subscribe:y=>(i.add(y),()=>i.delete(y)),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,h);return h},b1=t=>t?Rp(t):Rp,{useDebugValue:O1}=fh,{useSyncExternalStoreWithSelector:F1}=D1,H1=t=>t;function kg(t,r=H1,i){const l=F1(t.subscribe,t.getState,t.getServerState||t.getInitialState,r,i);return O1(l),l}const Ap=(t,r)=>{const i=b1(t),l=(a,u=r)=>kg(i,a,u);return Object.assign(l,i),l},B1=(t,r)=>t?Ap(t,r):Ap;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}dh();const El=b.createContext(null),V1=El.Provider,Eg=Xt.error001("react");function Te(t,r){const i=b.useContext(El);if(i===null)throw new Error(Eg);return kg(i,t,r)}function De(){const t=b.useContext(El);if(t===null)throw new Error(Eg);return b.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe}),[t])}const Dp={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%)"},Ng="react-flow__node-desc",Cg="react-flow__edge-desc",W1="react-flow__aria-live",Y1=t=>t.ariaLiveMessage,X1=t=>t.ariaLabelConfig;function K1({rfId:t}){const r=Te(Y1);return _.jsx("div",{id:`${W1}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:U1,children:r})}function Q1({rfId:t,disableKeyboardA11y:r}){const i=Te(X1);return _.jsxs(_.Fragment,{children:[_.jsx("div",{id:`${Ng}-${t}`,style:Dp,children:r?i["node.a11yDescription.default"]:i["node.a11yDescription.keyboardDisabled"]}),_.jsx("div",{id:`${Cg}-${t}`,style:Dp,children:i["edge.a11yDescription.default"]}),!r&&_.jsx(K1,{rfId:t})]})}const Ni=b.forwardRef(({position:t="top-left",children:r,className:i,style:l,...a},u)=>{const c=`${t}`.split("-");return _.jsx("div",{className:Ye(["react-flow__panel",i,...c]),style:l,ref:u,...a,children:r})});Ni.displayName="Panel";const $p="https://reactflow.dev?utm_source=attribution";function G1({proOptions:t,position:r="bottom-right"}){return b.useEffect(()=>{},[]),t!=null&&t.hideAttribution?null:_.jsx(Ni,{position:r,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${$p}`,children:_.jsx("a",{href:$p,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}=Te(q1,Z1);return b.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=Te(e_);return t||r?_.jsx(J1,{onSelectionChange:t}):null}const Mg=[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"],bp=[...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}),Op={translateExtent:pi,nodeOrigin:Mg,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:h}=Te(o_,Be),g=De();b.useEffect(()=>(h(t.defaultNodes,t.defaultEdges),()=>{y.current=Op,d()}),[]);const y=b.useRef(Op);return b.useEffect(()=>{for(const v of bp){const m=t[v],w=y.current[v];m!==w&&(typeof t[v]>"u"||(v==="nodes"?r(m):v==="edges"?i(m):v==="minZoom"?l(m):v==="maxZoom"?a(m):v==="translateExtent"?u(m):v==="nodeExtent"?c(m):v==="ariaLabelConfig"?g.setState({ariaLabelConfig:Vw(m)}):v==="fitView"?g.setState({fitViewQueued:m}):v==="fitViewOptions"?g.setState({fitViewOptions:m}):g.setState({[v]:m})))}y.current=t},bp.map(v=>t[v])),null}function Fp(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function s_(t){var l;const[r,i]=b.useState(t==="system"?null:t);return b.useEffect(()=>{if(t!=="system"){i(t);return}const a=Fp(),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=Fp())!=null&&l.matches?"dark":"light"}const Hp=typeof document<"u"?document:null;function yi(t=null,r={target:Hp,actInsideInputWithModifier:!0}){const[i,l]=b.useState(!1),a=b.useRef(!1),u=b.useRef(new Set([])),[c,d]=b.useMemo(()=>{if(t!==null){const g=(Array.isArray(t)?t:[t]).filter(v=>typeof v=="string").map(v=>v.replace(/\+/g,`
-`).replace(`
-
-`,`
-+`).split(`
-`)),y=g.reduce((v,m)=>v.concat(...m),[]);return[g,y]}return[[],[]]},[t]);return b.useEffect(()=>{const h=(r==null?void 0:r.target)??Hp,g=(r==null?void 0:r.actInsideInputWithModifier)??!0;if(t!==null){const y=w=>{var C,N;if(a.current=w.ctrlKey||w.metaKey||w.shiftKey||w.altKey,(!a.current||a.current&&!g)&&sg(w))return!1;const M=Vp(w.code,d);if(u.current.add(w[M]),Bp(c,u.current,!1)){const j=((N=(C=w.composedPath)==null?void 0:C.call(w))==null?void 0:N[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)}},v=w=>{const S=Vp(w.code,d);Bp(c,u.current,!0)?(l(!1),u.current.clear()):u.current.delete(w[S]),w.key==="Meta"&&u.current.clear(),a.current=!1},m=()=>{u.current.clear(),l(!1)};return h==null||h.addEventListener("keydown",y),h==null||h.addEventListener("keyup",v),window.addEventListener("blur",m),window.addEventListener("contextmenu",m),()=>{h==null||h.removeEventListener("keydown",y),h==null||h.removeEventListener("keyup",v),window.removeEventListener("blur",m),window.removeEventListener("contextmenu",m)}}},[t,l]),i}function Bp(t,r,i){return t.filter(l=>i||l.length===r.size).some(l=>l.every(a=>r.has(a)))}function Vp(t,r){return r.includes(t)?"code":"key"}const l_=()=>{const t=De();return b.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(),h=fc(r,l,a,u,c,(i==null?void 0:i.padding)??.1);return d?(await d.setViewport(h,{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:h}=c.getBoundingClientRect(),g={x:r.x-d,y:r.y-h},y=i.snapGrid??a,v=i.snapToGrid??u;return Ei(g,l,v,y)},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 Pg(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 h of c)a_(h,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 Pg(t,r)}function c_(t,r){return Pg(t,r)}function hr(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(hr(u.id,c)))}return l}function Up({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),h=((a=d==null?void 0:d.internals)==null?void 0:a.userNode)??d;h!==void 0&&h!==c&&i.push({id:c.id,item:c,type:"replace"}),h===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 Wp(t){return{id:t.id,type:"remove"}}const f_=tg();function d_(t,r,i={}){return Qw(t,r,{...i,onError:i.onError??f_})}const Yp=t=>Rw(t),p_=t=>Gh(t);function Tg(t){return b.forwardRef(t)}const jg=typeof window<"u"?b.useLayoutEffect:b.useEffect;function Xp(t){const[r,i]=b.useState(BigInt(0)),[l]=b.useState(()=>h_(()=>i(a=>a+BigInt(1))));return jg(()=>{const a=l.get();a.length&&(t(a),l.reset())},[r]),l}function h_(t){let r=[];return{get:()=>r,reset:()=>{r=[]},push:i=>{r.push(i),t()}}}const Ig=b.createContext(null);function g_({children:t}){const r=De(),i=b.useCallback(d=>{const{nodes:h=[],setNodes:g,hasDefaultNodes:y,onNodesChange:v,nodeLookup:m,fitViewQueued:w,onNodesChangeMiddlewareMap:S}=r.getState();let M=h;for(const N of d)M=typeof N=="function"?N(M):N;let C=Up({items:M,lookup:m});for(const N of S.values())C=N(C);y&&g(M),C.length>0?v==null||v(C):w&&window.requestAnimationFrame(()=>{const{fitViewQueued:N,nodes:j,setNodes:k}=r.getState();N&&k(j)})},[]),l=Xp(i),a=b.useCallback(d=>{const{edges:h=[],setEdges:g,hasDefaultEdges:y,onEdgesChange:v,edgeLookup:m}=r.getState();let w=h;for(const S of d)w=typeof S=="function"?S(w):S;y?g(w):v&&v(Up({items:w,lookup:m}))},[]),u=Xp(a),c=b.useMemo(()=>({nodeQueue:l,edgeQueue:u}),[]);return _.jsx(Ig.Provider,{value:c,children:t})}function m_(){const t=b.useContext(Ig);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=Te(y_),a=b.useMemo(()=>{const u=v=>r.getState().nodeLookup.get(v),c=v=>{i.nodeQueue.push(v)},d=v=>{i.edgeQueue.push(v)},h=v=>{var N,j;const{nodeLookup:m,nodeOrigin:w}=r.getState(),S=Yp(v)?v:m.get(v.id),M=S.parentId?rg(S.position,S.measured,S.parentId,m,w):S.position,C={...S,position:M,width:((N=S.measured)==null?void 0:N.width)??S.width,height:((j=S.measured)==null?void 0:j.height)??S.height};return gi(C)},g=(v,m,w={replace:!1})=>{c(S=>S.map(M=>{if(M.id===v){const C=typeof m=="function"?m(M):m;return w.replace&&Yp(C)?C:{...M,...C}}return M}))},y=(v,m,w={replace:!1})=>{d(S=>S.map(M=>{if(M.id===v){const C=typeof m=="function"?m(M):m;return w.replace&&p_(C)?C:{...M,...C}}return M}))};return{getNodes:()=>r.getState().nodes.map(v=>({...v})),getNode:v=>{var m;return(m=u(v))==null?void 0:m.internals.userNode},getInternalNode:u,getEdges:()=>{const{edges:v=[]}=r.getState();return v.map(m=>({...m}))},getEdge:v=>r.getState().edgeLookup.get(v),setNodes:c,setEdges:d,addNodes:v=>{const m=Array.isArray(v)?v:[v];i.nodeQueue.push(w=>[...w,...m])},addEdges:v=>{const m=Array.isArray(v)?v:[v];i.edgeQueue.push(w=>[...w,...m])},toObject:()=>{const{nodes:v=[],edges:m=[],transform:w}=r.getState(),[S,M,C]=w;return{nodes:v.map(N=>({...N})),edges:m.map(N=>({...N})),viewport:{x:S,y:M,zoom:C}}},deleteElements:async({nodes:v=[],edges:m=[]})=>{const{nodes:w,edges:S,onNodesDelete:M,onEdgesDelete:C,triggerNodeChanges:N,triggerEdgeChanges:j,onDelete:k,onBeforeDelete:P}=r.getState(),{nodes:H,edges:O}=await Ow({nodesToRemove:v,edgesToRemove:m,nodes:w,edges:S,onBeforeDelete:P}),W=O.length>0,q=H.length>0;if(W){const Q=O.map(Wp);C==null||C(O),j(Q)}if(q){const Q=H.map(Wp);M==null||M(H),N(Q)}return(q||W)&&(k==null||k({nodes:H,edges:O})),{deletedNodes:H,deletedEdges:O}},getIntersectingNodes:(v,m=!0,w)=>{const S=yp(v),M=S?v:h(v),C=w!==void 0;return M?(w||r.getState().nodes).filter(N=>{const j=r.getState().nodeLookup.get(N.id);if(j&&!S&&(N.id===v.id||!j.internals.positionAbsolute))return!1;const k=gi(C?N:j),P=hl(k,M);return m&&P>0||P>=k.width*k.height||P>=M.width*M.height}):[]},isNodeIntersecting:(v,m,w=!0)=>{const M=yp(v)?v:h(v);if(!M)return!1;const C=hl(M,m);return w&&C>0||C>=m.width*m.height||C>=M.width*M.height},updateNode:g,updateNodeData:(v,m,w={replace:!1})=>{g(v,S=>{const M=typeof m=="function"?m(S):m;return w.replace?{...S,data:M}:{...S,data:{...S.data,...M}}},w)},updateEdge:y,updateEdgeData:(v,m,w={replace:!1})=>{y(v,S=>{const M=typeof m=="function"?m(S):m;return w.replace?{...S,data:M}:{...S,data:{...S.data,...M}}},w)},getNodesBounds:v=>{const{nodeLookup:m,nodeOrigin:w}=r.getState();return Aw(v,{nodeLookup:m,nodeOrigin:w})},getHandleConnections:({type:v,id:m,nodeId:w})=>{var S;return Array.from(((S=r.getState().connectionLookup.get(`${w}-${v}${m?`-${m}`:""}`))==null?void 0:S.values())??[])},getNodeConnections:({type:v,handleId:m,nodeId:w})=>{var S;return Array.from(((S=r.getState().connectionLookup.get(`${w}${v?m?`-${v}-${m}`:`-${v}`:""}`))==null?void 0:S.values())??[])},fitView:async v=>{const m=r.getState().fitViewResolver??Bw();return r.setState({fitViewQueued:!0,fitViewOptions:v,fitViewResolver:m}),i.nodeQueue.push(w=>[...w]),m.promise}}},[]);return b.useMemo(()=>({...a,...t,viewportInitialized:l}),[l])}const Kp=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_});b.useEffect(()=>{if(a){const{edges:c,nodes:d}=i.getState();l({nodes:d.filter(Kp),edges:c.filter(Kp)}),i.setState({nodesSelectionActive:!1})}},[a]),b.useEffect(()=>{i.setState({multiSelectionActive:u})},[u])}function w_(t){const r=De();b.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=dc(t.current);(l.height===0||l.width===0)&&((d=(c=r.getState()).onError)==null||d.call(c,"004",Xt.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:h=!0,defaultViewport:g,translateExtent:y,minZoom:v,maxZoom:m,zoomActivationKeyCode:w,preventScrolling:S=!0,children:M,noWheelClassName:C,noPanClassName:N,onViewportChange:j,isControlledViewport:k,paneClickDistance:P,selectionOnDrag:H}){const O=De(),W=b.useRef(null),{userSelectionActive:q,lib:Q,connectionInProgress:te}=Te(__,Be),J=yi(w),X=b.useRef();w_(W);const Y=b.useCallback(E=>{j==null||j({x:E[0],y:E[1],zoom:E[2]}),k||O.setState({transform:E})},[j,k]);return b.useEffect(()=>{if(W.current){X.current=N1({domNode:W.current,minZoom:v,maxZoom:m,translateExtent:y,viewport:g,onDraggingChange:U=>O.setState(A=>A.paneDragging===U?A:{paneDragging:U}),onPanZoomStart:(U,A)=>{const{onViewportChangeStart:D,onMoveStart:V}=O.getState();V==null||V(U,A),D==null||D(A)},onPanZoom:(U,A)=>{const{onViewportChange:D,onMove:V}=O.getState();V==null||V(U,A),D==null||D(A)},onPanZoomEnd:(U,A)=>{const{onViewportChangeEnd:D,onMoveEnd:V}=O.getState();V==null||V(U,A),D==null||D(A)}});const{x:E,y:$,zoom:z}=X.current.getViewport();return O.setState({panZoom:X.current,transform:[E,$,z],domNode:W.current.closest(".react-flow")}),()=>{var U;(U=X.current)==null||U.destroy()}}},[]),b.useEffect(()=>{var E;(E=X.current)==null||E.update({onPaneContextMenu:t,zoomOnScroll:r,zoomOnPinch:i,panOnScroll:l,panActivationKeyPressed:a,panOnScrollSpeed:u,panOnScrollMode:c,zoomOnDoubleClick:d,panOnDrag:h,zoomActivationKeyPressed:J,preventScrolling:S,noPanClassName:N,userSelectionActive:q,noWheelClassName:C,lib:Q,onTransformChange:Y,connectionInProgress:te,selectionOnDrag:H,paneClickDistance:P})},[t,r,i,l,a,u,c,d,h,J,S,N,q,C,Q,Y,te,H,P]),_.jsx("div",{className:"react-flow__renderer",ref:W,style:Cl,children:M})}const k_=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function E_(){const{userSelectionActive:t,userSelectionRect:r}=Te(k_,Be);return t&&r?_.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=hi.Full,panOnDrag:l,autoPanOnSelection:a,paneClickDistance:u,selectionOnDrag:c,onSelectionStart:d,onSelectionEnd:h,onPaneClick:g,onPaneContextMenu:y,onPaneScroll:v,onPaneMouseEnter:m,onPaneMouseMove:w,onPaneMouseLeave:S,children:M}){const C=b.useRef(0),N=De(),{userSelectionActive:j,elementsSelectable:k,dragging:P,panBy:H,autoPanSpeed:O}=Te(N_,Be),W=k&&(t||j),q=b.useRef(null),Q=b.useRef(),te=b.useRef(new Set),J=b.useRef(new Set),X=b.useRef(!1),Y=b.useRef(!1),E=b.useRef({x:0,y:0}),$=b.useRef(!1),z=B=>{if(Y.current||X.current||N.getState().connection.inProgress){Y.current=!1,X.current=!1;return}g==null||g(B),N.getState().resetSelectedElements(),N.setState({nodesSelectionActive:!1})},U=B=>{if(Array.isArray(l)&&(l!=null&&l.includes(2))){B.preventDefault();return}y==null||y(B)},A=v?B=>v(B):void 0,D=B=>{Y.current&&(B.stopPropagation(),Y.current=!1)},V=B=>{var Ie,lt;if(B.pointerType==="touch"&&l!==!1&&!r)return;const{domNode:ee,transform:fe}=N.getState();if(Q.current=ee==null?void 0:ee.getBoundingClientRect(),!Q.current)return;const ge=B.target===q.current;if(!ge&&!!B.target.closest(".nokey")||!t||!(c&&ge||r)||B.button!==0||!B.isPrimary)return;(lt=(Ie=B.target)==null?void 0:Ie.setPointerCapture)==null||lt.call(Ie,B.pointerId),Y.current=!1;const{x:ke,y:Ne}=Yt(B.nativeEvent,Q.current),Me=Ei({x:ke,y:Ne},fe);N.setState({userSelectionRect:{width:0,height:0,startX:Me.x,startY:Me.y,x:ke,y:Ne}}),ge||(B.stopPropagation(),B.preventDefault())};function T(B,ee){const{userSelectionRect:fe}=N.getState();if(!fe)return;const{transform:ge,nodeLookup:ve,edgeLookup:we,connectionLookup:ke,triggerNodeChanges:Ne,triggerEdgeChanges:Me,defaultEdgeOptions:Ie}=N.getState(),lt={x:fe.startX,y:fe.startY},{x:ct,y:tt}=ao(lt,ge),nt={startX:lt.x,startY:lt.y,x:B<ct?B:ct,y:ee<tt?ee:tt,width:Math.abs(B-ct),height:Math.abs(ee-tt)},ln=te.current,Gt=J.current;te.current=new Set(uc(ve,nt,ge,i===hi.Partial,!0).map(ft=>ft.id)),J.current=new Set;const qt=(Ie==null?void 0:Ie.selectable)??!0;for(const ft of te.current){const Pt=ke.get(ft);if(Pt)for(const{edgeId:xt}of Pt.values()){const Tt=we.get(xt);Tt&&(Tt.selectable??qt)&&J.current.add(xt)}}if(!vp(ln,te.current)){const ft=to(ve,te.current,!0);Ne(ft)}if(!vp(Gt,J.current)){const ft=to(we,J.current);Me(ft)}N.setState({userSelectionRect:nt,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!a||!Q.current)return;const[B,ee]=cc(E.current,Q.current,O);H({x:B,y:ee}).then(fe=>{if(!Y.current||!fe){C.current=requestAnimationFrame(L);return}const{x:ge,y:ve}=E.current;T(ge,ve),C.current=requestAnimationFrame(L)})}const ne=()=>{cancelAnimationFrame(C.current),C.current=0,$.current=!1};b.useEffect(()=>()=>ne(),[]);const re=B=>{const{userSelectionRect:ee,transform:fe,resetSelectedElements:ge}=N.getState();if(!Q.current||!ee)return;const{x:ve,y:we}=Yt(B.nativeEvent,Q.current);E.current={x:ve,y:we};const ke=ao({x:ee.startX,y:ee.startY},fe);if(!Y.current){const Ne=r?0:u;if(Math.hypot(ve-ke.x,we-ke.y)<=Ne)return;ge(),d==null||d(B)}Y.current=!0,$.current||(L(),$.current=!0),T(ve,we)},ae=B=>{var ee,fe;if(!W){B.target===q.current&&N.getState().connection.inProgress&&(X.current=!0);return}B.button===0&&((fe=(ee=B.target)==null?void 0:ee.releasePointerCapture)==null||fe.call(ee,B.pointerId),!j&&B.target===q.current&&N.getState().userSelectionRect&&(z==null||z(B)),N.setState({userSelectionActive:!1,userSelectionRect:null}),Y.current&&(h==null||h(B),N.setState({nodesSelectionActive:te.current.size>0})),ne())},ce=B=>{var ee,fe;(fe=(ee=B.target)==null?void 0:ee.releasePointerCapture)==null||fe.call(ee,B.pointerId),ne()},ue=l===!0||Array.isArray(l)&&l.includes(0);return _.jsxs("div",{className:Ye(["react-flow__pane",{draggable:ue,dragging:P,selection:t}]),onClick:W?void 0:Du(z,q),onContextMenu:Du(U,q),onWheel:Du(A,q),onPointerEnter:W?void 0:m,onPointerMove:W?re:w,onPointerUp:ae,onPointerCancel:W?ce:void 0,onPointerDownCapture:W?V:void 0,onClickCapture:W?D:void 0,onPointerLeave:S,ref:q,style:Cl,children:[M,_.jsx(E_,{})]})}function Zu({id:t,store:r,unselect:i=!1,nodeRef:l}){const{addSelectedNodes:a,unselectNodesAndEdges:u,multiSelectionActive:c,nodeLookup:d,onError:h}=r.getState(),g=d.get(t);if(!g){h==null||h("012",Xt.error012(t));return}r.setState({nodesSelectionActive:!1}),g.selected?(i||g.selected&&c)&&(u({nodes:[g],edges:[]}),requestAnimationFrame(()=>{var y;return(y=l==null?void 0:l.current)==null?void 0:y.blur()})):a([t])}function zg({nodeRef:t,disabled:r=!1,noDragClassName:i,handleSelector:l,nodeId:a,isSelectable:u,nodeClickDistance:c}){const d=De(),[h,g]=b.useState(!1),y=b.useRef();return b.useEffect(()=>{if(!r)return y.current=f1({getStoreItems:()=>d.getState(),onNodeMouseDown:v=>{Zu({id:v,store:d,nodeRef:t})},onDragStart:()=>{g(!0)},onDragStop:()=>{g(!1)}}),()=>{var v;(v=y.current)==null||v.destroy(),y.current=void 0}},[r,d,t]),b.useEffect(()=>{r||!t.current||!y.current||y.current.update({noDragClassName:i,handleSelector:l,domNode:t.current,isSelectable:u,nodeId:a,nodeClickDistance:c})},[i,l,r,u,t,a,c]),h}const M_=t=>r=>r.selected&&(r.draggable||t&&typeof r.draggable>"u");function Lg(){const t=De();return b.useCallback(i=>{const{nodeExtent:l,snapToGrid:a,snapGrid:u,nodesDraggable:c,onError:d,updateNodePositions:h,nodeLookup:g,nodeOrigin:y}=t.getState(),v=new Map,m=M_(c),w=a?u[0]:5,S=a?u[1]:5,M=i.direction.x*w*i.factor,C=i.direction.y*S*i.factor;for(const[,N]of g){if(!m(N))continue;let j={x:N.internals.positionAbsolute.x+M,y:N.internals.positionAbsolute.y+C};a&&(j=ki(j,u));const{position:k,positionAbsolute:P}=qh({nodeId:N.id,nextPosition:j,nodeLookup:g,nodeExtent:l,nodeOrigin:y,onError:d});N.position=k,N.internals.positionAbsolute=P,v.set(N.id,N)}h(v)},[])}const vc=b.createContext(null),P_=vc.Provider;vc.Consumer;const Rg=()=>b.useContext(vc),T_=t=>({connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName,rfId:t.rfId}),Ag=b.createContext(null);function j_({children:t}){const r=Te(T_,Be);return _.jsx(Ag.Provider,{value:r,children:t})}function I_(){const t=b.useContext(Ag);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:h,isValid:g}=c;if(!d&&!a)return z_;const y=(h==null?void 0:h.nodeId)===t&&(h==null?void 0:h.id)===r&&(h==null?void 0:h.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:y,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:y&&g}};function R_({type:t="source",position:r=xe.Top,isValidConnection:i,isConnectable:l=!0,isConnectableStart:a=!0,isConnectableEnd:u=!0,id:c,onConnect:d,children:h,className:g,onMouseDown:y,onTouchStart:v,...m},w){var $,z;const S=c||null,M=t==="target",C=De(),N=Rg(),{connectOnClick:j,noPanClassName:k,rfId:P}=I_(),{connectingFrom:H,connectingTo:O,clickConnecting:W,isPossibleEndHandle:q,connectionInProcess:Q,clickConnectionInProcess:te,valid:J}=Te(L_(N,S,t),Be);N||(z=($=C.getState()).onError)==null||z.call($,"010",Xt.error010());const X=U=>{const{defaultEdgeOptions:A,onConnect:D,hasDefaultEdges:V}=C.getState(),T={...A,...U};if(V){const{edges:L,setEdges:ne,onError:re}=C.getState();ne(d_(T,L,{onError:re}))}D==null||D(T),d==null||d(T)},Y=U=>{if(!N)return;const A=lg(U.nativeEvent);if(a&&(A&&U.button===0||!A)){const D=C.getState();qu.onPointerDown(U.nativeEvent,{handleDomNode:U.currentTarget,autoPanOnConnect:D.autoPanOnConnect,connectionMode:D.connectionMode,connectionRadius:D.connectionRadius,domNode:D.domNode,nodeLookup:D.nodeLookup,lib:D.lib,isTarget:M,handleId:S,nodeId:N,flowId:D.rfId,panBy:D.panBy,cancelConnection:D.cancelConnection,onConnectStart:D.onConnectStart,onConnectEnd:(...V)=>{var T,L;return(L=(T=C.getState()).onConnectEnd)==null?void 0:L.call(T,...V)},updateConnection:D.updateConnection,onConnect:X,isValidConnection:i||((...V)=>{var T,L;return((L=(T=C.getState()).isValidConnection)==null?void 0:L.call(T,...V))??!0}),getTransform:()=>C.getState().transform,getFromHandle:()=>C.getState().connection.fromHandle,autoPanSpeed:D.autoPanSpeed,dragThreshold:D.connectionDragThreshold})}A?y==null||y(U):v==null||v(U)},E=U=>{const{onClickConnectStart:A,onClickConnectEnd:D,connectionClickStartHandle:V,connectionMode:T,isValidConnection:L,lib:ne,rfId:re,nodeLookup:ae,connection:ce}=C.getState();if(!N||!V&&!a)return;if(!V){A==null||A(U.nativeEvent,{nodeId:N,handleId:S,handleType:t}),C.setState({connectionClickStartHandle:{nodeId:N,type:t,id:S}});return}const ue=ig(U.target),B=i||L,{connection:ee,isValid:fe}=qu.isValid(U.nativeEvent,{handle:{nodeId:N,id:S,type:t},connectionMode:T,fromNodeId:V.nodeId,fromHandleId:V.id||null,fromType:V.type,isValidConnection:B,flowId:re,doc:ue,lib:ne,nodeLookup:ae});fe&&ee&&X(ee);const ge=structuredClone(ce);delete ge.inProgress,ge.toPosition=ge.toHandle?ge.toHandle.position:null,D==null||D(U,ge),C.setState({connectionClickStartHandle:null})};return _.jsx("div",{"data-handleid":S,"data-nodeid":N,"data-handlepos":r,"data-id":`${P}-${N}-${S}-${t}`,className:Ye(["react-flow__handle",`react-flow__handle-${r}`,"nodrag",k,g,{source:!M,target:M,connectable:l,connectablestart:a,connectableend:u,clickconnecting:W,connectingfrom:H,connectingto:O,valid:J,connectionindicator:l&&(!Q||q)&&(Q||te?u:a)}]),onMouseDown:Y,onTouchStart:Y,onClick:j?E:void 0,ref:w,...m,children:h})}const co=b.memo(Tg(R_));function A_({data:t,isConnectable:r,sourcePosition:i=xe.Bottom}){return _.jsxs(_.Fragment,{children:[t==null?void 0:t.label,_.jsx(co,{type:"source",position:i,isConnectable:r})]})}function D_({data:t,isConnectable:r,targetPosition:i=xe.Top,sourcePosition:l=xe.Bottom}){return _.jsxs(_.Fragment,{children:[_.jsx(co,{type:"target",position:i,isConnectable:r}),t==null?void 0:t.label,_.jsx(co,{type:"source",position:l,isConnectable:r})]})}function $_(){return null}function b_({data:t,isConnectable:r,targetPosition:i=xe.Top}){return _.jsxs(_.Fragment,{children:[_.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}},Qp={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:Wt(r)?r:null,height:Wt(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}=Te(F_,Be),h=Lg(),g=b.useRef(null);b.useEffect(()=>{var w;i||(w=g.current)==null||w.focus({preventScroll:!0})},[i]);const y=!d&&a!==null&&u!==null;if(zg({nodeRef:g,disabled:!y}),!y)return null;const v=t?w=>{const S=l.getState().nodes.filter(M=>M.selected);t(w,S)}:void 0,m=w=>{Object.prototype.hasOwnProperty.call(gl,w.key)&&(w.preventDefault(),h({direction:gl[w.key],factor:w.shiftKey?4:1}))};return _.jsx("div",{className:Ye(["react-flow__nodesselection","react-flow__container",r]),style:{transform:c},children:_.jsx("div",{ref:g,className:"react-flow__nodesselection-rect",onContextMenu:v,tabIndex:i?void 0:-1,onKeyDown:i?void 0:m,style:{width:a,height:u}})})}const Gp=typeof window<"u"?window:void 0,B_=t=>({nodesSelectionActive:t.nodesSelectionActive,userSelectionActive:t.userSelectionActive});function Dg({children:t,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:a,onPaneContextMenu:u,onPaneScroll:c,paneClickDistance:d,deleteKeyCode:h,selectionKeyCode:g,selectionOnDrag:y,selectionMode:v,onSelectionStart:m,onSelectionEnd:w,multiSelectionKeyCode:S,panActivationKeyCode:M,zoomActivationKeyCode:C,elementsSelectable:N,zoomOnScroll:j,zoomOnPinch:k,panOnScroll:P,panOnScrollSpeed:H,panOnScrollMode:O,zoomOnDoubleClick:W,panOnDrag:q,autoPanOnSelection:Q,defaultViewport:te,translateExtent:J,minZoom:X,maxZoom:Y,preventScrolling:E,onSelectionContextMenu:$,noWheelClassName:z,noPanClassName:U,disableKeyboardA11y:A,onViewportChange:D,isControlledViewport:V}){const{nodesSelectionActive:T,userSelectionActive:L}=Te(B_,Be),ne=yi(g,{target:Gp}),re=yi(M,{target:Gp}),ae=re||q,ce=re||P,ue=y&&ae!==!0,B=ne||L||ue;return x_({deleteKeyCode:h,multiSelectionKeyCode:S}),_.jsx(S_,{onPaneContextMenu:u,elementsSelectable:N,zoomOnScroll:j,zoomOnPinch:k,panOnScroll:ce,panActivationKeyPressed:re,panOnScrollSpeed:H,panOnScrollMode:O,zoomOnDoubleClick:W,panOnDrag:!ne&&ae,defaultViewport:te,translateExtent:J,minZoom:X,maxZoom:Y,zoomActivationKeyCode:C,preventScrolling:E,noWheelClassName:z,noPanClassName:U,onViewportChange:D,isControlledViewport:V,paneClickDistance:d,selectionOnDrag:ue,children:_.jsxs(C_,{onSelectionStart:m,onSelectionEnd:w,onPaneClick:r,onPaneMouseEnter:i,onPaneMouseMove:l,onPaneMouseLeave:a,onPaneContextMenu:u,onPaneScroll:c,panOnDrag:ae,autoPanOnSelection:Q,isSelecting:!!B,selectionMode:v,selectionKeyPressed:ne,paneClickDistance:d,selectionOnDrag:ue,children:[t,T&&_.jsx(H_,{onSelectionContextMenu:$,noPanClassName:U,disableKeyboardA11y:A})]})})}Dg.displayName="FlowRenderer";const V_=b.memo(Dg),U_=t=>r=>t?uc(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 Te(b.useCallback(U_(t),[t]),Be)}const Y_=t=>t.updateNodeInternals;function X_(){const t=Te(Y_),[r]=b.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 b.useEffect(()=>()=>{r==null||r.disconnect()},[r]),r}function K_({node:t,nodeType:r,hasDimensions:i,resizeObserver:l}){const a=De(),u=b.useRef(null),c=b.useRef(null),d=b.useRef(t.sourcePosition),h=b.useRef(t.targetPosition),g=b.useRef(r),y=i&&!!t.internals.handleBounds;return b.useEffect(()=>{u.current&&!t.hidden&&(!y||c.current!==u.current)&&(c.current&&(l==null||l.unobserve(c.current)),l==null||l.observe(u.current),c.current=u.current)},[y,t.hidden]),b.useEffect(()=>()=>{c.current&&(l==null||l.unobserve(c.current),c.current=null)},[]),b.useEffect(()=>{if(u.current){const v=g.current!==r,m=d.current!==t.sourcePosition,w=h.current!==t.targetPosition;(v||m||w)&&(g.current=r,d.current=t.sourcePosition,h.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:h,nodesConnectable:g,nodesFocusable:y,resizeObserver:v,noDragClassName:m,noPanClassName:w,disableKeyboardA11y:S,rfId:M,nodeTypes:C,nodeClickDistance:N,onError:j}){const{node:k,internals:P,isParent:H}=Te(B=>{const ee=B.nodeLookup.get(t),fe=B.parentLookup.has(t);return{node:ee,internals:ee.internals,isParent:fe}},Be);let O=k.type||"default",W=(C==null?void 0:C[O])||Qp[O];W===void 0&&(j==null||j("003",Xt.error003(O)),O="default",W=(C==null?void 0:C.default)||Qp.default);const q=!!(k.draggable||d&&typeof k.draggable>"u"),Q=!!(k.selectable||h&&typeof k.selectable>"u"),te=!!(k.connectable||g&&typeof k.connectable>"u"),J=!!(k.focusable||y&&typeof k.focusable>"u"),X=De(),Y=ng(k),E=K_({node:k,nodeType:O,hasDimensions:Y,resizeObserver:v}),$=zg({nodeRef:E,disabled:k.hidden||!q,noDragClassName:m,handleSelector:k.dragHandle,nodeId:t,isSelectable:Q,nodeClickDistance:N}),z=Lg();if(k.hidden)return null;const U=Qt(k),A=O_(k),D=Q||q||r||i||l||a,V=i?B=>i(B,{...P.userNode}):void 0,T=l?B=>l(B,{...P.userNode}):void 0,L=a?B=>a(B,{...P.userNode}):void 0,ne=u?B=>u(B,{...P.userNode}):void 0,re=c?B=>c(B,{...P.userNode}):void 0,ae=B=>{const{selectNodesOnDrag:ee,nodeDragThreshold:fe}=X.getState();Q&&(!ee||!q||fe>0)&&Zu({id:t,store:X,nodeRef:E}),r&&r(B,{...P.userNode})},ce=B=>{if(!(sg(B.nativeEvent)||S)){if(Xh.includes(B.key)&&Q){const ee=B.key==="Escape";Zu({id:t,store:X,unselect:ee,nodeRef:E})}else if(q&&k.selected&&Object.prototype.hasOwnProperty.call(gl,B.key)){B.preventDefault();const{ariaLabelConfig:ee}=X.getState();X.setState({ariaLiveMessage:ee["node.a11yDescription.ariaLiveMessage"]({direction:B.key.replace("Arrow","").toLowerCase(),x:~~P.positionAbsolute.x,y:~~P.positionAbsolute.y})}),z({direction:gl[B.key],factor:B.shiftKey?4:1})}}},ue=()=>{var ke;if(S||!((ke=E.current)!=null&&ke.matches(":focus-visible")))return;const{transform:B,width:ee,height:fe,autoPanOnNodeFocus:ge,setCenter:ve}=X.getState();if(!ge)return;uc(new Map([[t,k]]),{x:0,y:0,width:ee,height:fe},B,!0).length>0||ve(k.position.x+U.width/2,k.position.y+U.height/2,{zoom:B[2]})};return _.jsx("div",{className:Ye(["react-flow__node",`react-flow__node-${O}`,{[w]:q},k.className,{selected:k.selected,selectable:Q,parent:H,draggable:q,dragging:$}]),ref:E,style:{zIndex:P.z,transform:`translate(${P.positionAbsolute.x}px,${P.positionAbsolute.y}px)`,pointerEvents:D?"all":"none",visibility:Y?"visible":"hidden",...k.style,...A},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:V,onMouseMove:T,onMouseLeave:L,onContextMenu:ne,onClick:ae,onDoubleClick:re,onKeyDown:J?ce:void 0,tabIndex:J?0:void 0,onFocus:J?ue:void 0,role:k.ariaRole??(J?"group":void 0),"aria-roledescription":"node","aria-describedby":S?void 0:`${Ng}-${M}`,"aria-label":k.ariaLabel,...k.domAttributes,children:_.jsx(P_,{value:t,children:_.jsx(W,{id:t,data:k.data,type:O,positionAbsoluteX:P.positionAbsolute.x,positionAbsoluteY:P.positionAbsolute.y,selected:k.selected??!1,selectable:Q,draggable:q,deletable:k.deletable??!0,isConnectable:te,sourcePosition:k.sourcePosition,targetPosition:k.targetPosition,dragging:$,dragHandle:k.dragHandle,zIndex:P.z,parentId:k.parentId,...U})})})}var G_=b.memo(Q_);const q_=t=>({nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,onError:t.onError});function $g(t){const{nodesConnectable:r,nodesFocusable:i,elementsSelectable:l,onError:a}=Te(q_,Be),u=W_(t.onlyRenderVisibleElements),c=X_();return _.jsx("div",{className:"react-flow__nodes",style:Cl,children:u.map(d=>_.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))})}$g.displayName="NodeRenderer";const Z_=b.memo($g);function J_(t){return Te(b.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 _.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 _.jsx("polyline",{className:"arrowclosed",style:i,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},qp={[dl.Arrow]:eS,[dl.ArrowClosed]:tS};function nS(t){const r=De();return b.useMemo(()=>{var a,u;return Object.prototype.hasOwnProperty.call(qp,t)?qp[t]:((u=(a=r.getState()).onError)==null||u.call(a,"009",Xt.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 h=nS(r);return h?_.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:_.jsx(h,{color:i,strokeWidth:c})}):null},bg=({defaultColor:t,rfId:r})=>{const i=Te(u=>u.edges),l=Te(u=>u.defaultEdgeOptions),a=b.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?_.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:_.jsx("defs",{children:a.map(u=>_.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};bg.displayName="MarkerDefinitions";var oS=b.memo(bg);function Og({x:t,y:r,label:i,labelStyle:l,labelShowBg:a=!0,labelBgStyle:u,labelBgPadding:c=[2,4],labelBgBorderRadius:d=2,children:h,className:g,...y}){const[v,m]=b.useState({x:1,y:0,width:0,height:0}),w=Ye(["react-flow__edge-textwrapper",g]),S=b.useRef(null);return b.useEffect(()=>{if(S.current){const M=S.current.getBBox();m({x:M.x,y:M.y,width:M.width,height:M.height})}},[i]),i?_.jsxs("g",{transform:`translate(${t-v.width/2} ${r-v.height/2})`,className:w,visibility:v.width?"visible":"hidden",...y,children:[a&&_.jsx("rect",{width:v.width+2*c[0],x:-c[0],y:-c[1],height:v.height+2*c[1],className:"react-flow__edge-textbg",style:u,rx:d,ry:d}),_.jsx("text",{className:"react-flow__edge-text",y:v.height/2,dy:"0.3em",ref:S,style:l,children:i}),h]}):null}Og.displayName="EdgeText";const iS=b.memo(Og);function Ml({path:t,labelX:r,labelY:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:h,interactionWidth:g=20,...y}){return _.jsxs(_.Fragment,{children:[_.jsx("path",{...y,d:t,fill:"none",className:Ye(["react-flow__edge-path",y.className])}),g?_.jsx("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:g,className:"react-flow__edge-interaction"}):null,l&&Wt(r)&&Wt(i)?_.jsx(iS,{x:r,y:i,label:l,labelStyle:a,labelShowBg:u,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:h}):null]})}function Zp({pos:t,x1:r,y1:i,x2:l,y2:a}){return t===xe.Left||t===xe.Right?[.5*(r+l),i]:[r,.5*(i+a)]}function Fg({sourceX:t,sourceY:r,sourcePosition:i=xe.Bottom,targetX:l,targetY:a,targetPosition:u=xe.Top}){const[c,d]=Zp({pos:i,x1:t,y1:r,x2:l,y2:a}),[h,g]=Zp({pos:u,x1:l,y1:a,x2:t,y2:r}),[y,v,m,w]=ag({sourceX:t,sourceY:r,targetX:l,targetY:a,sourceControlX:c,sourceControlY:d,targetControlX:h,targetControlY:g});return[`M${t},${r} C${c},${d} ${h},${g} ${l},${a}`,y,v,m,w]}function Hg(t){return b.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c,targetPosition:d,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:v,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:M,markerStart:C,interactionWidth:N})=>{const[j,k,P]=Fg({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d}),H=t.isInternal?void 0:r;return _.jsx(Ml,{id:H,path:j,labelX:k,labelY:P,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:v,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:M,markerStart:C,interactionWidth:N})})}const sS=Hg({isInternal:!1}),Bg=Hg({isInternal:!0});sS.displayName="SimpleBezierEdge";Bg.displayName="SimpleBezierEdgeInternal";function Vg(t){return b.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:v,style:m,sourcePosition:w=xe.Bottom,targetPosition:S=xe.Top,markerEnd:M,markerStart:C,pathOptions:N,interactionWidth:j})=>{const[k,P,H]=Ku({sourceX:i,sourceY:l,sourcePosition:w,targetX:a,targetY:u,targetPosition:S,borderRadius:N==null?void 0:N.borderRadius,offset:N==null?void 0:N.offset,stepPosition:N==null?void 0:N.stepPosition}),O=t.isInternal?void 0:r;return _.jsx(Ml,{id:O,path:k,labelX:P,labelY:H,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:v,style:m,markerEnd:M,markerStart:C,interactionWidth:j})})}const Ug=Vg({isInternal:!1}),Wg=Vg({isInternal:!0});Ug.displayName="SmoothStepEdge";Wg.displayName="SmoothStepEdgeInternal";function Yg(t){return b.memo(({id:r,...i})=>{var a;const l=t.isInternal?void 0:r;return _.jsx(Ug,{...i,id:l,pathOptions:b.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=Yg({isInternal:!1}),Xg=Yg({isInternal:!0});lS.displayName="StepEdge";Xg.displayName="StepEdgeInternal";function Kg(t){return b.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:v,style:m,markerEnd:w,markerStart:S,interactionWidth:M})=>{const[C,N,j]=fg({sourceX:i,sourceY:l,targetX:a,targetY:u}),k=t.isInternal?void 0:r;return _.jsx(Ml,{id:k,path:C,labelX:N,labelY:j,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:v,style:m,markerEnd:w,markerStart:S,interactionWidth:M})})}const aS=Kg({isInternal:!1}),Qg=Kg({isInternal:!0});aS.displayName="StraightEdge";Qg.displayName="StraightEdgeInternal";function Gg(t){return b.memo(({id:r,sourceX:i,sourceY:l,targetX:a,targetY:u,sourcePosition:c=xe.Bottom,targetPosition:d=xe.Top,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:v,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:M,markerStart:C,pathOptions:N,interactionWidth:j})=>{const[k,P,H]=ug({sourceX:i,sourceY:l,sourcePosition:c,targetX:a,targetY:u,targetPosition:d,curvature:N==null?void 0:N.curvature}),O=t.isInternal?void 0:r;return _.jsx(Ml,{id:O,path:k,labelX:P,labelY:H,label:h,labelStyle:g,labelShowBg:y,labelBgStyle:v,labelBgPadding:m,labelBgBorderRadius:w,style:S,markerEnd:M,markerStart:C,interactionWidth:j})})}const uS=Gg({isInternal:!1}),qg=Gg({isInternal:!0});uS.displayName="BezierEdge";qg.displayName="BezierEdgeInternal";const Jp={default:qg,straight:Qg,step:Xg,smoothstep:Wg,simplebezier:Bg},eh={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},cS=(t,r,i)=>i===xe.Left?t-r:i===xe.Right?t+r:t,fS=(t,r,i)=>i===xe.Top?t-r:i===xe.Bottom?t+r:t,th="react-flow__edgeupdater";function nh({position:t,centerX:r,centerY:i,radius:l=10,onMouseDown:a,onMouseEnter:u,onMouseOut:c,type:d}){return _.jsx("circle",{onMouseDown:a,onMouseEnter:u,onMouseOut:c,className:Ye([th,`${th}-${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:h,onReconnect:g,onReconnectStart:y,onReconnectEnd:v,setReconnecting:m,setUpdateHover:w}){const S=De(),M=(P,H)=>{if(P.button!==0)return;const{autoPanOnConnect:O,domNode:W,connectionMode:q,connectionRadius:Q,lib:te,onConnectStart:J,cancelConnection:X,nodeLookup:Y,rfId:E,panBy:$,updateConnection:z}=S.getState(),U=H.type==="target",A=(T,L)=>{m(!1),v==null||v(T,i,H.type,L)},D=T=>g==null?void 0:g(i,T),V=(T,L)=>{m(!0),y==null||y(P,i,H.type),J==null||J(T,L)};qu.onPointerDown(P.nativeEvent,{autoPanOnConnect:O,connectionMode:q,connectionRadius:Q,domNode:W,handleId:H.id,nodeId:H.nodeId,nodeLookup:Y,isTarget:U,edgeUpdaterType:H.type,lib:te,flowId:E,cancelConnection:X,panBy:$,isValidConnection:(...T)=>{var L,ne;return((ne=(L=S.getState()).isValidConnection)==null?void 0:ne.call(L,...T))??!0},onConnect:D,onConnectStart:V,onConnectEnd:(...T)=>{var L,ne;return(ne=(L=S.getState()).onConnectEnd)==null?void 0:ne.call(L,...T)},onReconnectEnd:A,updateConnection:z,getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,dragThreshold:S.getState().connectionDragThreshold,handleDomNode:P.currentTarget})},C=P=>M(P,{nodeId:i.target,id:i.targetHandle??null,type:"target"}),N=P=>M(P,{nodeId:i.source,id:i.sourceHandle??null,type:"source"}),j=()=>w(!0),k=()=>w(!1);return _.jsxs(_.Fragment,{children:[(t===!0||t==="source")&&_.jsx(nh,{position:d,centerX:l,centerY:a,radius:r,onMouseDown:C,onMouseEnter:j,onMouseOut:k,type:"source"}),(t===!0||t==="target")&&_.jsx(nh,{position:h,centerX:u,centerY:c,radius:r,onMouseDown:N,onMouseEnter:j,onMouseOut:k,type:"target"})]})}function pS({id:t,edgesFocusable:r,edgesReconnectable:i,elementsSelectable:l,onClick:a,onDoubleClick:u,onContextMenu:c,onMouseEnter:d,onMouseMove:h,onMouseLeave:g,reconnectRadius:y,onReconnect:v,onReconnectStart:m,onReconnectEnd:w,rfId:S,edgeTypes:M,noPanClassName:C,onError:N,disableKeyboardA11y:j}){let k=Te(ve=>ve.edgeLookup.get(t));const P=Te(ve=>ve.defaultEdgeOptions);k=P?{...P,...k}:k;let H=k.type||"default",O=(M==null?void 0:M[H])||Jp[H];O===void 0&&(N==null||N("011",Xt.error011(H)),H="default",O=(M==null?void 0:M.default)||Jp.default);const W=!!(k.focusable||r&&typeof k.focusable>"u"),q=typeof v<"u"&&(k.reconnectable||i&&typeof k.reconnectable>"u"),Q=!!(k.selectable||l&&typeof k.selectable>"u"),te=b.useRef(null),[J,X]=b.useState(!1),[Y,E]=b.useState(!1),$=De(),{zIndex:z=k.zIndex,sourceX:U,sourceY:A,targetX:D,targetY:V,sourcePosition:T,targetPosition:L}=Te(b.useCallback(ve=>{const we=ve.nodeLookup.get(k.source),ke=ve.nodeLookup.get(k.target);if(!we||!ke)return eh;const Ne=Jw({id:t,sourceNode:we,targetNode:ke,sourceHandle:k.sourceHandle||null,targetHandle:k.targetHandle||null,connectionMode:ve.connectionMode,onError:N}),Me=Ww({selected:k.selected,zIndex:k.zIndex,sourceNode:we,targetNode:ke,elevateOnSelect:ve.elevateEdgesOnSelect,zIndexMode:ve.zIndexMode});return{...Ne||eh,zIndex:Me}},[k.source,k.target,k.sourceHandle,k.targetHandle,k.selected,k.zIndex,N]),Be),ne=b.useMemo(()=>k.markerStart?`url('#${Qu(k.markerStart,S)}')`:void 0,[k.markerStart,S]),re=b.useMemo(()=>k.markerEnd?`url('#${Qu(k.markerEnd,S)}')`:void 0,[k.markerEnd,S]);if(k.hidden||U===null||A===null||D===null||V===null)return null;const ae=ve=>{var Me;const{addSelectedEdges:we,unselectNodesAndEdges:ke,multiSelectionActive:Ne}=$.getState();Q&&($.setState({nodesSelectionActive:!1}),k.selected&&Ne?(ke({nodes:[],edges:[k]}),(Me=te.current)==null||Me.blur()):we([t])),a&&a(ve,k)},ce=u?ve=>{u(ve,{...k})}:void 0,ue=c?ve=>{c(ve,{...k})}:void 0,B=d?ve=>{d(ve,{...k})}:void 0,ee=h?ve=>{h(ve,{...k})}:void 0,fe=g?ve=>{g(ve,{...k})}:void 0,ge=ve=>{var we;if(!j&&Xh.includes(ve.key)&&Q){const{unselectNodesAndEdges:ke,addSelectedEdges:Ne}=$.getState();ve.key==="Escape"?((we=te.current)==null||we.blur(),ke({edges:[k]})):Ne([t])}};return _.jsx("svg",{style:{zIndex:z},children:_.jsxs("g",{className:Ye(["react-flow__edge",`react-flow__edge-${H}`,k.className,C,{selected:k.selected,animated:k.animated,inactive:!Q&&!a,updating:J,selectable:Q}]),onClick:ae,onDoubleClick:ce,onContextMenu:ue,onMouseEnter:B,onMouseMove:ee,onMouseLeave:fe,onKeyDown:W?ge:void 0,tabIndex:W?0:void 0,role:k.ariaRole??(W?"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":W?`${Cg}-${S}`:void 0,ref:te,...k.domAttributes,children:[!Y&&_.jsx(O,{id:t,source:k.source,target:k.target,type:k.type,selected:k.selected,animated:k.animated,selectable:Q,deletable:k.deletable??!0,label:k.label,labelStyle:k.labelStyle,labelShowBg:k.labelShowBg,labelBgStyle:k.labelBgStyle,labelBgPadding:k.labelBgPadding,labelBgBorderRadius:k.labelBgBorderRadius,sourceX:U,sourceY:A,targetX:D,targetY:V,sourcePosition:T,targetPosition:L,data:k.data,style:k.style,sourceHandleId:k.sourceHandle,targetHandleId:k.targetHandle,markerStart:ne,markerEnd:re,pathOptions:"pathOptions"in k?k.pathOptions:void 0,interactionWidth:k.interactionWidth}),q&&_.jsx(dS,{edge:k,isReconnectable:q,reconnectRadius:y,onReconnect:v,onReconnectStart:m,onReconnectEnd:w,sourceX:U,sourceY:A,targetX:D,targetY:V,sourcePosition:T,targetPosition:L,setUpdateHover:X,setReconnecting:E})]})})}var hS=b.memo(pS);const gS=t=>({edgesFocusable:t.edgesFocusable,edgesReconnectable:t.edgesReconnectable,elementsSelectable:t.elementsSelectable,connectionMode:t.connectionMode,onError:t.onError});function Zg({defaultMarkerColor:t,onlyRenderVisibleElements:r,rfId:i,edgeTypes:l,noPanClassName:a,onReconnect:u,onEdgeContextMenu:c,onEdgeMouseEnter:d,onEdgeMouseMove:h,onEdgeMouseLeave:g,onEdgeClick:y,reconnectRadius:v,onEdgeDoubleClick:m,onReconnectStart:w,onReconnectEnd:S,disableKeyboardA11y:M}){const{edgesFocusable:C,edgesReconnectable:N,elementsSelectable:j,onError:k}=Te(gS,Be),P=J_(r);return _.jsxs("div",{className:"react-flow__edges",children:[_.jsx(oS,{defaultColor:t,rfId:i}),P.map(H=>_.jsx(hS,{id:H,edgesFocusable:C,edgesReconnectable:N,elementsSelectable:j,noPanClassName:a,onReconnect:u,onContextMenu:c,onMouseEnter:d,onMouseMove:h,onMouseLeave:g,onClick:y,reconnectRadius:v,onDoubleClick:m,onReconnectStart:w,onReconnectEnd:S,rfId:i,onError:k,edgeTypes:l,disableKeyboardA11y:M},H))]})}Zg.displayName="EdgeRenderer";const mS=b.memo(Zg),rh=t=>`translate(${t[0]}px,${t[1]}px) scale(${t[2]})`;function yS({children:t}){const r=De(),i=b.useRef(null),[l]=b.useState(()=>r.getState().transform);return jg(()=>{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=rh(c)))};return u(),r.subscribe(u)},[r]),_.jsx("div",{ref:i,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:rh(l)},children:t})}function vS(t){const r=Nl(),i=b.useRef(!1);b.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=Te(xS),i=De();return b.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 Te(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:h}=Te(ES,Be);return!(u&&a&&h)?null:_.jsx("svg",{style:t,width:u,height:c,className:"react-flow__connectionline react-flow__container",children:_.jsx("g",{className:Ye(["react-flow__connection",og(d)]),children:_.jsx(Jg,{style:r,type:i,CustomComponent:l,isValid:d})})})}const Jg=({style:t,type:r=Yn.Bezier,CustomComponent:i,isValid:l})=>{const{inProgress:a,from:u,fromNode:c,fromHandle:d,fromPosition:h,to:g,toNode:y,toHandle:v,toPosition:m,pointer:w}=kS();if(!a)return;if(i)return _.jsx(i,{connectionLineType:r,connectionLineStyle:t,fromNode:c,fromHandle:d,fromX:u.x,fromY:u.y,toX:g.x,toY:g.y,fromPosition:h,toPosition:m,connectionStatus:og(l),toNode:y,toHandle:v,pointer:w});let S="";const M={sourceX:u.x,sourceY:u.y,sourcePosition:h,targetX:g.x,targetY:g.y,targetPosition:m};switch(r){case Yn.Bezier:[S]=ug(M);break;case Yn.SimpleBezier:[S]=Fg(M);break;case Yn.Step:[S]=Ku({...M,borderRadius:0});break;case Yn.SmoothStep:[S]=Ku(M);break;default:[S]=fg(M)}return _.jsx("path",{d:S,fill:"none",className:"react-flow__connection-path",style:t})};Jg.displayName="ConnectionLine";const CS={};function oh(t=CS){b.useRef(t),De(),b.useEffect(()=>{},[t])}function MS(){De(),b.useRef(!1),b.useEffect(()=>{},[])}function em({nodeTypes:t,edgeTypes:r,onInit:i,onNodeClick:l,onEdgeClick:a,onNodeDoubleClick:u,onEdgeDoubleClick:c,onNodeMouseEnter:d,onNodeMouseMove:h,onNodeMouseLeave:g,onNodeContextMenu:y,onSelectionContextMenu:v,onSelectionStart:m,onSelectionEnd:w,connectionLineType:S,connectionLineStyle:M,connectionLineComponent:C,connectionLineContainerStyle:N,selectionKeyCode:j,selectionOnDrag:k,selectionMode:P,multiSelectionKeyCode:H,panActivationKeyCode:O,zoomActivationKeyCode:W,deleteKeyCode:q,onlyRenderVisibleElements:Q,elementsSelectable:te,defaultViewport:J,translateExtent:X,minZoom:Y,maxZoom:E,preventScrolling:$,defaultMarkerColor:z,zoomOnScroll:U,zoomOnPinch:A,panOnScroll:D,panOnScrollSpeed:V,panOnScrollMode:T,zoomOnDoubleClick:L,panOnDrag:ne,autoPanOnSelection:re,onPaneClick:ae,onPaneMouseEnter:ce,onPaneMouseMove:ue,onPaneMouseLeave:B,onPaneScroll:ee,onPaneContextMenu:fe,paneClickDistance:ge,nodeClickDistance:ve,onEdgeContextMenu:we,onEdgeMouseEnter:ke,onEdgeMouseMove:Ne,onEdgeMouseLeave:Me,reconnectRadius:Ie,onReconnect:lt,onReconnectStart:ct,onReconnectEnd:tt,noDragClassName:nt,noWheelClassName:ln,noPanClassName:Gt,disableKeyboardA11y:qt,nodeExtent:ft,rfId:Pt,viewport:xt,onViewportChange:Tt,nodesDraggable:Er}){return oh(t),oh(r),MS(),vS(i),wS(xt),_.jsx(V_,{onPaneClick:ae,onPaneMouseEnter:ce,onPaneMouseMove:ue,onPaneMouseLeave:B,onPaneContextMenu:fe,onPaneScroll:ee,paneClickDistance:ge,deleteKeyCode:q,selectionKeyCode:j,selectionOnDrag:k,selectionMode:P,onSelectionStart:m,onSelectionEnd:w,multiSelectionKeyCode:H,panActivationKeyCode:O,zoomActivationKeyCode:W,elementsSelectable:te,zoomOnScroll:U,zoomOnPinch:A,zoomOnDoubleClick:L,panOnScroll:D,panOnScrollSpeed:V,panOnScrollMode:T,panOnDrag:ne,autoPanOnSelection:re,defaultViewport:J,translateExtent:X,minZoom:Y,maxZoom:E,onSelectionContextMenu:v,preventScrolling:$,noDragClassName:nt,noWheelClassName:ln,noPanClassName:Gt,disableKeyboardA11y:qt,onViewportChange:Tt,isControlledViewport:!!xt,children:_.jsxs(yS,{children:[_.jsx(mS,{edgeTypes:r,onEdgeClick:a,onEdgeDoubleClick:c,onReconnect:lt,onReconnectStart:ct,onReconnectEnd:tt,onlyRenderVisibleElements:Q,onEdgeContextMenu:we,onEdgeMouseEnter:ke,onEdgeMouseMove:Ne,onEdgeMouseLeave:Me,reconnectRadius:Ie,defaultMarkerColor:z,noPanClassName:Gt,disableKeyboardA11y:qt,rfId:Pt}),_.jsx(NS,{style:M,type:S,component:C,containerStyle:N}),_.jsx("div",{className:"react-flow__edgelabel-renderer"}),_.jsx(Z_,{nodeTypes:t,onNodeClick:l,onNodeDoubleClick:u,onNodeMouseEnter:d,onNodeMouseMove:h,onNodeMouseLeave:g,onNodeContextMenu:y,nodeClickDistance:ve,onlyRenderVisibleElements:Q,noPanClassName:Gt,noDragClassName:nt,disableKeyboardA11y:qt,nodeExtent:ft,rfId:Pt,nodesDraggable:Er}),_.jsx("div",{className:"react-flow__viewport-portal"})]})})}em.displayName="GraphView";const PS=b.memo(em),TS=tg(),ih=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h=.5,maxZoom:g=2,nodeOrigin:y,nodeExtent:v,zIndexMode:m="basic"}={})=>{const w=new Map,S=new Map,M=new Map,C=new Map,N=l??r??[],j=i??t??[],k=y??[0,0],P=v??pi;hg(M,C,N);const{nodesInitialized:H}=Gu(j,w,S,{nodeOrigin:k,nodeExtent:P,zIndexMode:m});let O=[0,0,1];if(c&&a&&u){const W=Si(w,{filter:J=>!!((J.width||J.initialWidth)&&(J.height||J.initialHeight))}),{x:q,y:Q,zoom:te}=fc(W,a,u,h,g,(d==null?void 0:d.padding)??.1);O=[q,Q,te]}return{rfId:"1",width:a??0,height:u??0,transform:O,nodes:j,nodesInitialized:H,nodeLookup:w,parentLookup:S,edges:N,edgeLookup:C,connectionLookup:M,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:i!==void 0,hasDefaultEdges:l!==void 0,panZoom:null,minZoom:h,maxZoom:g,translateExtent:pi,nodeExtent:P,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:{...Qh},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:TS,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Kh,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}},jS=({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h,maxZoom:g,nodeOrigin:y,nodeExtent:v,zIndexMode:m})=>B1((w,S)=>{async function M(){const{nodeLookup:C,panZoom:N,fitViewOptions:j,fitViewResolver:k,width:P,height:H,minZoom:O,maxZoom:W}=S();N&&(await bw({nodes:C,width:P,height:H,panZoom:N,minZoom:O,maxZoom:W},j),k==null||k.resolve(!0),w({fitViewResolver:null}))}return{...ih({nodes:t,edges:r,width:a,height:u,fitView:c,fitViewOptions:d,minZoom:h,maxZoom:g,nodeOrigin:y,nodeExtent:v,defaultNodes:i,defaultEdges:l,zIndexMode:m}),setNodes:C=>{const{nodeLookup:N,parentLookup:j,nodeOrigin:k,nodeExtent:P,elevateNodesOnSelect:H,fitViewQueued:O,zIndexMode:W,nodesSelectionActive:q}=S(),{nodesInitialized:Q,hasSelectedNodes:te}=Gu(C,N,j,{nodeOrigin:k,nodeExtent:P,elevateNodesOnSelect:H,checkEquality:!0,zIndexMode:W}),J=q&&te;O&&Q?(M(),w({nodes:C,nodesInitialized:Q,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:J})):w({nodes:C,nodesInitialized:Q,nodesSelectionActive:J})},setEdges:C=>{const{connectionLookup:N,edgeLookup:j}=S();hg(N,j,C),w({edges:C})},setDefaultNodesAndEdges:(C,N)=>{if(C){const{setNodes:j}=S();j(C),w({hasDefaultNodes:!0})}if(N){const{setEdges:j}=S();j(N),w({hasDefaultEdges:!0})}},updateNodeInternals:C=>{const{triggerNodeChanges:N,nodeLookup:j,parentLookup:k,domNode:P,nodeOrigin:H,nodeExtent:O,debug:W,fitViewQueued:q,zIndexMode:Q}=S(),{changes:te,updatedInternals:J}=l1(C,j,k,P,H,O,Q);J&&(r1(j,k,{nodeOrigin:H,nodeExtent:O,zIndexMode:Q}),q?(M(),w({fitViewQueued:!1,fitViewOptions:void 0})):w({}),(te==null?void 0:te.length)>0&&(W&&console.log("React Flow: trigger node changes",te),N==null||N(te)))},updateNodePositions:(C,N=!1)=>{const j=[];let k=[];const{nodeLookup:P,triggerNodeChanges:H,connection:O,updateConnection:W,onNodesChangeMiddlewareMap:q}=S();for(const[Q,te]of C){const J=P.get(Q),X=!!(J!=null&&J.expandParent&&(J!=null&&J.parentId)&&(te!=null&&te.position)),Y={id:Q,type:"position",position:X?{x:Math.max(0,te.position.x),y:Math.max(0,te.position.y)}:te.position,dragging:N};if(J&&O.inProgress&&O.fromNode.id===J.id){const E=Sr(J,O.fromHandle,xe.Left,!0);W({...O,from:E})}X&&J.parentId&&j.push({id:Q,parentId:J.parentId,rect:{...te.internals.positionAbsolute,width:te.measured.width??0,height:te.measured.height??0}}),k.push(Y)}if(j.length>0){const{parentLookup:Q,nodeOrigin:te}=S(),J=yc(j,P,Q,te);k.push(...J)}for(const Q of q.values())k=Q(k);H(k)},triggerNodeChanges:C=>{const{onNodesChange:N,setNodes:j,nodes:k,hasDefaultNodes:P,debug:H}=S();if(C!=null&&C.length){if(P){const O=u_(C,k);j(O)}H&&console.log("React Flow: trigger node changes",C),N==null||N(C)}},triggerEdgeChanges:C=>{const{onEdgesChange:N,setEdges:j,edges:k,hasDefaultEdges:P,debug:H}=S();if(C!=null&&C.length){if(P){const O=c_(C,k);j(O)}H&&console.log("React Flow: trigger edge changes",C),N==null||N(C)}},addSelectedNodes:C=>{const{multiSelectionActive:N,edgeLookup:j,nodeLookup:k,triggerNodeChanges:P,triggerEdgeChanges:H}=S();if(N){const O=C.map(W=>hr(W,!0));P(O);return}P(to(k,new Set([...C]),!0)),H(to(j))},addSelectedEdges:C=>{const{multiSelectionActive:N,edgeLookup:j,nodeLookup:k,triggerNodeChanges:P,triggerEdgeChanges:H}=S();if(N){const O=C.map(W=>hr(W,!0));H(O);return}H(to(j,new Set([...C]))),P(to(k,new Set,!0))},unselectNodesAndEdges:({nodes:C,edges:N}={})=>{const{edges:j,nodes:k,nodeLookup:P,triggerNodeChanges:H,triggerEdgeChanges:O}=S(),W=C||k,q=N||j,Q=[];for(const J of W){if(!J.selected)continue;const X=P.get(J.id);X&&(X.selected=!1),Q.push(hr(J.id,!1))}const te=[];for(const J of q)J.selected&&te.push(hr(J.id,!1));H(Q),O(te)},setMinZoom:C=>{const{panZoom:N,maxZoom:j}=S();N==null||N.setScaleExtent([C,j]),w({minZoom:C})},setMaxZoom:C=>{const{panZoom:N,minZoom:j}=S();N==null||N.setScaleExtent([j,C]),w({maxZoom:C})},setTranslateExtent:C=>{var N;(N=S().panZoom)==null||N.setTranslateExtent(C),w({translateExtent:C})},resetSelectedElements:()=>{const{edges:C,nodes:N,triggerNodeChanges:j,triggerEdgeChanges:k,elementsSelectable:P}=S();if(!P)return;const H=N.reduce((W,q)=>q.selected?[...W,hr(q.id,!1)]:W,[]),O=C.reduce((W,q)=>q.selected?[...W,hr(q.id,!1)]:W,[]);j(H),k(O)},setNodeExtent:C=>{const{nodes:N,nodeLookup:j,parentLookup:k,nodeOrigin:P,elevateNodesOnSelect:H,nodeExtent:O,zIndexMode:W}=S();C[0][0]===O[0][0]&&C[0][1]===O[0][1]&&C[1][0]===O[1][0]&&C[1][1]===O[1][1]||(Gu(N,j,k,{nodeOrigin:P,nodeExtent:C,elevateNodesOnSelect:H,checkEquality:!1,zIndexMode:W}),w({nodeExtent:C}))},panBy:C=>{const{transform:N,width:j,height:k,panZoom:P,translateExtent:H}=S();return a1({delta:C,panZoom:P,transform:N,translateExtent:H,width:j,height:k})},setCenter:async(C,N,j)=>{const{width:k,height:P,maxZoom:H,panZoom:O}=S();if(!O)return!1;const W=typeof(j==null?void 0:j.zoom)<"u"?j.zoom:H;return await O.setViewport({x:k/2-C*W,y:P/2-N*W,zoom:W},{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:{...Qh}})},updateConnection:C=>{w({connection:C})},reset:()=>w({...ih()})}},Object.is);function tm({initialNodes:t,initialEdges:r,defaultNodes:i,defaultEdges:l,initialWidth:a,initialHeight:u,initialMinZoom:c,initialMaxZoom:d,initialFitViewOptions:h,fitView:g,nodeOrigin:y,nodeExtent:v,zIndexMode:m,children:w}){const[S]=b.useState(()=>jS({nodes:t,edges:r,defaultNodes:i,defaultEdges:l,width:a,height:u,fitView:g,minZoom:c,maxZoom:d,fitViewOptions:h,nodeOrigin:y,nodeExtent:v,zIndexMode:m}));return _.jsx(V1,{value:S,children:_.jsx(g_,{children:_.jsx(j_,{children:w})})})}function IS({children:t,nodes:r,edges:i,defaultNodes:l,defaultEdges:a,width:u,height:c,fitView:d,fitViewOptions:h,minZoom:g,maxZoom:y,nodeOrigin:v,nodeExtent:m,zIndexMode:w}){return b.useContext(El)?_.jsx(_.Fragment,{children:t}):_.jsx(tm,{initialNodes:r,initialEdges:i,defaultNodes:l,defaultEdges:a,initialWidth:u,initialHeight:c,fitView:d,initialFitViewOptions:h,initialMinZoom:g,initialMaxZoom:y,nodeOrigin:v,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:h,onInit:g,onMove:y,onMoveStart:v,onMoveEnd:m,onConnect:w,onConnectStart:S,onConnectEnd:M,onClickConnectStart:C,onClickConnectEnd:N,onNodeMouseEnter:j,onNodeMouseMove:k,onNodeMouseLeave:P,onNodeContextMenu:H,onNodeDoubleClick:O,onNodeDragStart:W,onNodeDrag:q,onNodeDragStop:Q,onNodesDelete:te,onEdgesDelete:J,onDelete:X,onSelectionChange:Y,onSelectionDragStart:E,onSelectionDrag:$,onSelectionDragStop:z,onSelectionContextMenu:U,onSelectionStart:A,onSelectionEnd:D,onBeforeDelete:V,connectionMode:T,connectionLineType:L=Yn.Bezier,connectionLineStyle:ne,connectionLineComponent:re,connectionLineContainerStyle:ae,deleteKeyCode:ce="Backspace",selectionKeyCode:ue="Shift",selectionOnDrag:B=!1,selectionMode:ee=hi.Full,panActivationKeyCode:fe="Space",multiSelectionKeyCode:ge=mi()?"Meta":"Control",zoomActivationKeyCode:ve=mi()?"Meta":"Control",snapToGrid:we,snapGrid:ke,onlyRenderVisibleElements:Ne=!1,selectNodesOnDrag:Me,nodesDraggable:Ie,autoPanOnNodeFocus:lt,nodesConnectable:ct,nodesFocusable:tt,nodeOrigin:nt=Mg,edgesFocusable:ln,edgesReconnectable:Gt,elementsSelectable:qt=!0,defaultViewport:ft=n_,minZoom:Pt=.5,maxZoom:xt=2,translateExtent:Tt=pi,preventScrolling:Er=!0,nodeExtent:an,defaultMarkerColor:Qn="#b1b1b7",zoomOnScroll:Pl=!0,zoomOnPinch:Ci=!0,panOnScroll:Mi=!1,panOnScrollSpeed:Tl=.5,panOnScrollMode:fo=yr.Free,zoomOnDoubleClick:po=!0,panOnDrag:ho=!0,onPaneClick:go,onPaneMouseEnter:mo,onPaneMouseMove:Sn,onPaneMouseLeave:kn,onPaneScroll:Pi,onPaneContextMenu:Ti,paneClickDistance:ji=1,nodeClickDistance:Ii=0,children:zi,onReconnect:yo,onReconnectStart:Li,onReconnectEnd:Gn,onEdgeContextMenu:vo,onEdgeDoubleClick:qn,onEdgeMouseEnter:jl,onEdgeMouseMove:Zn,onEdgeMouseLeave:Nr,reconnectRadius:Cr=10,onNodesChange:xo,onEdgesChange:Il,noDragClassName:zl="nodrag",noWheelClassName:Ll="nowheel",noPanClassName:Zt="nopan",fitView:wo,fitViewOptions:_o,connectOnClick:Rl,attributionPosition:Ri,proOptions:Ai,defaultEdgeOptions:Di,elevateNodesOnSelect:$i=!0,elevateEdgesOnSelect:Al=!1,disableKeyboardA11y:bi=!1,autoPanOnConnect:Oe,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:Tr,colorMode:jr="light",debug:Jn,onScroll:un,ariaLabelConfig:Bl,zIndexMode:Hi="basic",...ko},Bi){const er=wt||"1",tr=s_(jr),Vl=b.useCallback(Ir=>{Ir.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),un==null||un(Ir)},[un]);return _.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:_.jsxs(IS,{nodes:t,edges:r,width:Hl,height:Tr,fitView:wo,fitViewOptions:_o,minZoom:Pt,maxZoom:xt,nodeOrigin:nt,nodeExtent:an,zIndexMode:Hi,children:[_.jsx(i_,{nodes:t,edges:r,defaultNodes:i,defaultEdges:l,onConnect:w,onConnectStart:S,onConnectEnd:M,onClickConnectStart:C,onClickConnectEnd:N,nodesDraggable:Ie,autoPanOnNodeFocus:lt,nodesConnectable:ct,nodesFocusable:tt,edgesFocusable:ln,edgesReconnectable:Gt,elementsSelectable:qt,elevateNodesOnSelect:$i,elevateEdgesOnSelect:Al,minZoom:Pt,maxZoom:xt,nodeExtent:an,onNodesChange:xo,onEdgesChange:Il,snapToGrid:we,snapGrid:ke,connectionMode:T,translateExtent:Tt,connectOnClick:Rl,defaultEdgeOptions:Di,fitView:wo,fitViewOptions:_o,onNodesDelete:te,onEdgesDelete:J,onDelete:X,onNodeDragStart:W,onNodeDrag:q,onNodeDragStop:Q,onSelectionDrag:$,onSelectionDragStart:E,onSelectionDragStop:z,onMove:y,onMoveStart:v,onMoveEnd:m,noPanClassName:Zt,nodeOrigin:nt,rfId:er,autoPanOnConnect:Oe,autoPanOnNodeDrag:Dl,autoPanSpeed:Oi,onError:Fi,connectionRadius:Mr,isValidConnection:$l,selectNodesOnDrag:Me,nodeDragThreshold:bl,connectionDragThreshold:_t,onBeforeDelete:V,debug:Jn,ariaLabelConfig:Bl,zIndexMode:Hi}),_.jsx(PS,{onInit:g,onNodeClick:d,onEdgeClick:h,onNodeMouseEnter:j,onNodeMouseMove:k,onNodeMouseLeave:P,onNodeContextMenu:H,onNodeDoubleClick:O,nodeTypes:u,edgeTypes:c,connectionLineType:L,connectionLineStyle:ne,connectionLineComponent:re,connectionLineContainerStyle:ae,selectionKeyCode:ue,selectionOnDrag:B,selectionMode:ee,deleteKeyCode:ce,multiSelectionKeyCode:ge,panActivationKeyCode:fe,zoomActivationKeyCode:ve,onlyRenderVisibleElements:Ne,defaultViewport:ft,translateExtent:Tt,minZoom:Pt,maxZoom:xt,preventScrolling:Er,zoomOnScroll:Pl,zoomOnPinch:Ci,zoomOnDoubleClick:po,panOnScroll:Mi,panOnScrollSpeed:Tl,panOnScrollMode:fo,panOnDrag:ho,autoPanOnSelection:So,onPaneClick:go,onPaneMouseEnter:mo,onPaneMouseMove:Sn,onPaneMouseLeave:kn,onPaneScroll:Pi,onPaneContextMenu:Ti,paneClickDistance:ji,nodeClickDistance:Ii,onSelectionContextMenu:U,onSelectionStart:A,onSelectionEnd:D,onReconnect:yo,onReconnectStart:Li,onReconnectEnd:Gn,onEdgeContextMenu:vo,onEdgeDoubleClick:qn,onEdgeMouseEnter:jl,onEdgeMouseMove:Zn,onEdgeMouseLeave:Nr,reconnectRadius:Cr,defaultMarkerColor:Qn,noDragClassName:zl,noWheelClassName:Ll,noPanClassName:Zt,rfId:er,disableKeyboardA11y:bi,nodeExtent:an,viewport:Ol,onViewportChange:Fl,nodesDraggable:Ie}),_.jsx(t_,{onSelectionChange:Y}),zi,_.jsx(G1,{proOptions:Ai,position:Ri}),_.jsx(Q1,{rfId:er,disableKeyboardA11y:bi})]})})}var RS=Tg(LS);function AS({dimensions:t,lineWidth:r,variant:i,className:l}){return _.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 _.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 nm({id:t,variant:r=Xn.Dots,gap:i=20,size:l,lineWidth:a=1,offset:u=0,color:c,bgColor:d,style:h,className:g,patternClassName:y}){const v=b.useRef(null),{transform:m,patternId:w}=Te(bS,Be),S=l||$S[r],M=r===Xn.Dots,C=r===Xn.Cross,N=Array.isArray(i)?i:[i,i],j=[N[0]*m[2]||1,N[1]*m[2]||1],k=S*m[2],P=Array.isArray(u)?u:[u,u],H=C?[k,k]:j,O=[P[0]*m[2]+H[0]/2,P[1]*m[2]+H[1]/2],W=`${w}${t||""}`;return _.jsxs("svg",{className:Ye(["react-flow__background",g]),style:{...h,...Cl,"--xy-background-color-props":d,"--xy-background-pattern-color-props":c},ref:v,"data-testid":"rf__background",children:[_.jsx("pattern",{id:W,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:M?_.jsx(DS,{radius:k/2,className:y}):_.jsx(AS,{dimensions:H,lineWidth:a,variant:r,className:y})}),_.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${W})`})]})}nm.displayName="Background";const OS=b.memo(nm);function FS(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:_.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function HS(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:_.jsx("path",{d:"M0 0h32v4.2H0z"})})}function BS(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:_.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 _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:_.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 _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:_.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 _.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 rm({style:t,showZoom:r=!0,showFitView:i=!0,showInteractive:l=!0,fitViewOptions:a,onZoomIn:u,onZoomOut:c,onFitView:d,onInteractiveChange:h,className:g,children:y,position:v="bottom-left",orientation:m="vertical","aria-label":w}){const S=De(),{isInteractive:M,minZoomReached:C,maxZoomReached:N,ariaLabelConfig:j}=Te(WS,Be),{zoomIn:k,zoomOut:P,fitView:H}=Nl(),O=()=>{k(),u==null||u()},W=()=>{P(),c==null||c()},q=()=>{H(a),d==null||d()},Q=()=>{S.setState({nodesDraggable:!M,nodesConnectable:!M,elementsSelectable:!M}),h==null||h(!M)},te=m==="horizontal"?"horizontal":"vertical";return _.jsxs(Ni,{className:Ye(["react-flow__controls",te,g]),position:v,style:t,"data-testid":"rf__controls","aria-label":w??j["controls.ariaLabel"],children:[r&&_.jsxs(_.Fragment,{children:[_.jsx(Zs,{onClick:O,className:"react-flow__controls-zoomin",title:j["controls.zoomIn.ariaLabel"],"aria-label":j["controls.zoomIn.ariaLabel"],disabled:N,children:_.jsx(FS,{})}),_.jsx(Zs,{onClick:W,className:"react-flow__controls-zoomout",title:j["controls.zoomOut.ariaLabel"],"aria-label":j["controls.zoomOut.ariaLabel"],disabled:C,children:_.jsx(HS,{})})]}),i&&_.jsx(Zs,{className:"react-flow__controls-fitview",onClick:q,title:j["controls.fitView.ariaLabel"],"aria-label":j["controls.fitView.ariaLabel"],children:_.jsx(BS,{})}),l&&_.jsx(Zs,{className:"react-flow__controls-interactive",onClick:Q,title:j["controls.interactive.ariaLabel"],"aria-label":j["controls.interactive.ariaLabel"],children:M?_.jsx(US,{}):_.jsx(VS,{})}),y]})}rm.displayName="Controls";const YS=b.memo(rm);function XS({id:t,x:r,y:i,width:l,height:a,style:u,color:c,strokeColor:d,strokeWidth:h,className:g,borderRadius:y,shapeRendering:v,selected:m,onClick:w}){const{background:S,backgroundColor:M}=u||{},C=c||S||M;return _.jsx("rect",{className:Ye(["react-flow__minimap-node",{selected:m},g]),x:r,y:i,rx:y,ry:y,width:l,height:a,style:{fill:C,stroke:d,strokeWidth:h},shapeRendering:v,onClick:w?N=>w(N,t):void 0})}const KS=b.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=Te(QS,Be),h=$u(r),g=$u(t),y=$u(i),v=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return _.jsx(_.Fragment,{children:d.map(m=>_.jsx(ZS,{id:m,nodeColorFunc:h,nodeStrokeColorFunc:g,nodeClassNameFunc:y,nodeBorderRadius:l,nodeStrokeWidth:a,NodeComponent:u,onClick:c,shapeRendering:v},m))})}function qS({id:t,nodeColorFunc:r,nodeStrokeColorFunc:i,nodeClassNameFunc:l,nodeBorderRadius:a,nodeStrokeWidth:u,shapeRendering:c,NodeComponent:d,onClick:h}){const{node:g,x:y,y:v,width:m,height:w}=Te(S=>{const M=S.nodeLookup.get(t);if(!M)return{node:void 0,x:0,y:0,width:0,height:0};const C=M.internals.userNode,{x:N,y:j}=M.internals.positionAbsolute,{width:k,height:P}=Qt(C);return{node:C,x:N,y:j,width:k,height:P}},Be);return!g||g.hidden||!ng(g)?null:_.jsx(d,{x:y,y:v,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:h,id:g.id})}const ZS=b.memo(qS);var JS=b.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?Jh(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}},sh=(t,r)=>t.x===r.x&&t.y===r.y&&t.width===r.width&&t.height===r.height,ok=(t,r)=>sh(t.viewBB,r.viewBB)&&sh(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 om({style:t,className:r,nodeStrokeColor:i,nodeColor:l,nodeClassName:a="",nodeBorderRadius:u=5,nodeStrokeWidth:c,nodeComponent:d,bgColor:h,maskColor:g,maskStrokeColor:y,maskStrokeWidth:v,position:m="bottom-right",onClick:w,onNodeClick:S,pannable:M=!1,zoomable:C=!1,ariaLabel:N,inversePan:j,zoomStep:k=1,offsetScale:P=5}){const H=De(),O=b.useRef(null),{boundingRect:W,panZoom:q,viewBB:Q,rfId:te,translateExtent:J,flowWidth:X,flowHeight:Y,ariaLabelConfig:E}=Te(rk,ok),$=(t==null?void 0:t.width)??ek,z=(t==null?void 0:t.height)??tk,U=W.width/$,A=W.height/z,D=Math.max(U,A),V=D*$,T=D*z,L=P*D,ne=W.x-(V-W.width)/2-L,re=W.y-(T-W.height)/2-L,ae=V+L*2,ce=T+L*2,ue=`${ik}-${te}`,B=b.useRef(0),ee=b.useRef();B.current=D,b.useEffect(()=>{const ke=H.getState().panZoom;if(O.current&&ke)return ee.current=y1({domNode:O.current,panZoom:ke,getTransform:()=>H.getState().transform,getViewScale:()=>B.current}),()=>{var Ne;(Ne=ee.current)==null||Ne.destroy()}},[q]),b.useEffect(()=>{var ke;(ke=ee.current)==null||ke.update({translateExtent:J,width:X,height:Y,inversePan:j,pannable:M,zoomStep:k,zoomable:C})},[M,C,j,k,J,X,Y]);const fe=w?ke=>{var Ie;const[Ne,Me]=((Ie=ee.current)==null?void 0:Ie.pointer(ke))||[0,0];w(ke,{x:Ne,y:Me})}:void 0,ge=b.useCallback((ke,Ne)=>{const Me=H.getState().nodeLookup.get(Ne).internals.userNode;S==null||S(ke,Me)},[S]),ve=S?ge:void 0,we=N??E["minimap.ariaLabel"];return _.jsx(Ni,{position:m,style:{...t,"--xy-minimap-background-color-props":typeof h=="string"?h:void 0,"--xy-minimap-mask-background-color-props":typeof g=="string"?g:void 0,"--xy-minimap-mask-stroke-color-props":typeof y=="string"?y:void 0,"--xy-minimap-mask-stroke-width-props":typeof v=="number"?v*D: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:_.jsxs("svg",{width:$,height:z,viewBox:`${ne} ${re} ${ae} ${ce}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":ue,ref:O,onClick:fe,children:[we&&_.jsx("title",{id:ue,children:we}),_.jsx(JS,{onClick:ve,nodeColor:l,nodeStrokeColor:i,nodeBorderRadius:u,nodeClassName:a,nodeStrokeWidth:c,nodeComponent:d}),_.jsx("path",{className:"react-flow__minimap-mask",d:`M${ne-L},${re-L}h${ae+L*2}v${ce+L*2}h${-ae-L*2}z
- M${Q.x},${Q.y}h${Q.width}v${Q.height}h${-Q.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}om.displayName="MiniMap";const sk=b.memo(om),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:h=10,maxWidth:g=Number.MAX_VALUE,maxHeight:y=Number.MAX_VALUE,keepAspectRatio:v=!1,resizeDirection:m,autoScale:w=!0,shouldResize:S,onResizeStart:M,onResize:C,onResizeEnd:N}){const j=Rg(),k=typeof t=="string"?t:j,P=De(),H=b.useRef(null),O=i===uo.Handle,W=Te(b.useCallback(lk(O&&w),[O,w]),Be),q=b.useRef(null),Q=r??ak[i];b.useEffect(()=>{if(!(!H.current||!k))return q.current||(q.current=j1({domNode:H.current,nodeId:k,getStoreItems:()=>{const{nodeLookup:J,transform:X,snapGrid:Y,snapToGrid:E,nodeOrigin:$,domNode:z}=P.getState();return{nodeLookup:J,transform:X,snapGrid:Y,snapToGrid:E,nodeOrigin:$,paneDomNode:z}},onChange:(J,X)=>{const{triggerNodeChanges:Y,nodeLookup:E,parentLookup:$,nodeOrigin:z}=P.getState(),U=[],A={x:J.x,y:J.y},D=E.get(k);if(D&&D.expandParent&&D.parentId){const V=D.origin??z,T=J.width??D.measured.width??0,L=J.height??D.measured.height??0,ne={id:D.id,parentId:D.parentId,rect:{width:T,height:L,...rg({x:J.x??D.position.x,y:J.y??D.position.y},{width:T,height:L},D.parentId,E,V)}},re=yc([ne],E,$,z);U.push(...re),A.x=J.x?Math.max(V[0]*T,J.x):void 0,A.y=J.y?Math.max(V[1]*L,J.y):void 0}if(A.x!==void 0&&A.y!==void 0){const V={id:k,type:"position",position:{...A}};U.push(V)}if(J.width!==void 0&&J.height!==void 0){const T={id:k,type:"dimensions",resizing:!0,setAttributes:m?m==="horizontal"?"width":"height":!0,dimensions:{width:J.width,height:J.height}};U.push(T)}for(const V of X){const T={...V,type:"position"};U.push(T)}Y(U)},onEnd:({width:J,height:X})=>{const Y={id:k,type:"dimensions",resizing:!1,dimensions:{width:J,height:X}};P.getState().triggerNodeChanges([Y])}})),q.current.update({controlPosition:Q,boundaries:{minWidth:d,minHeight:h,maxWidth:g,maxHeight:y},keepAspectRatio:v,resizeDirection:m,onResizeStart:M,onResize:C,onResizeEnd:N,shouldResize:S}),()=>{var J;(J=q.current)==null||J.destroy()}},[Q,d,h,g,y,v,M,C,N,S]);const te=Q.split("-");return _.jsx("div",{className:Ye(["react-flow__resize-control","nodrag",...te,i,l]),ref:H,style:{...a,scale:W,...c&&{[O?"backgroundColor":"borderColor"]:c}},children:u})}b.memo(uk);const lh=40,ah=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 h=((u=r.get(d))==null?void 0:u.height)??ah;a=Math.max(a,i[d].y+h+lh);continue}l[d]={x:ck,y:a},a+=(((c=r.get(d))==null?void 0:c.height)??ah)+lh}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 pk({label:t,value:r,onChange:i}){const[l,a]=b.useState([]),[u,c]=b.useState(!1),[d,h]=b.useState(null),g=()=>be.listDesktopImages().then(a).catch(()=>{});b.useEffect(()=>{g()},[]);async function y(){const m=r.replace(/\.png$/i,"")||`bild ${l.length+1}`,w=window.prompt("Namn på referensbilden:",m);if(w!==null){c(!0),h(null);try{const S=await be.captureDesktopImage(w.trim());i(S.name),await g()}catch(S){h(S instanceof Kn?String(S.detail):String(S))}finally{c(!1)}}}const v=r&&l.includes(r);return _.jsxs("label",{className:"field image-field",children:[_.jsx("span",{children:t}),_.jsxs("div",{className:"image-field-row",children:[_.jsx("input",{type:"text",list:"desktop-images",value:r??"",placeholder:"filnamn.png",onChange:m=>i(m.target.value)}),_.jsx("datalist",{id:"desktop-images",children:l.map(m=>_.jsx("option",{value:m},m))}),_.jsx("button",{type:"button",className:"secondary tiny",disabled:u,onClick:y,children:u?"…":"📷 Fånga"})]}),v&&_.jsx("img",{className:"image-field-preview",src:be.desktopImageUrl(r),alt:r}),d&&_.jsx("span",{className:"assist-msg error",children:d})]})}function im({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:_.jsx("div",{className:"fields",children:u.map(c=>_.jsx(hk,{field:c,value:t[c.key],lang:i,onChange:d=>a({[c.key]:d})},c.key))})}function hk({field:t,value:r,lang:i,onChange:l}){var d;const a=kr(t,i),u=t.help??a;if(t.kind==="image")return _.jsx(pk,{label:a,value:String(r??""),onChange:l});let c;return t.kind==="select"?c=_.jsx("select",{value:String(r??t.default??((d=t.options)==null?void 0:d[0])??""),title:u,onChange:h=>l(h.target.value),children:(t.options??[]).map(h=>_.jsx("option",{value:h,children:h===""?"—":h},h))}):t.kind==="bool"?c=_.jsx("input",{type:"checkbox",checked:r===!0||r==="true",title:u,onChange:h=>l(h.target.checked)}):t.kind==="number"?c=_.jsx("input",{type:"number",value:r==null?"":String(r),title:u,onChange:h=>l(h.target.value===""?void 0:Number(h.target.value))}):c=_.jsx("input",{type:"text",value:r==null?"":String(r),title:u,onChange:h=>l(h.target.value)}),_.jsxs("label",{className:"field"+(t.kind==="bool"?" field-bool":""),children:[_.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 _.jsxs("div",{className:"condition",children:[_.jsxs("label",{className:"field",children:[_.jsx("span",{children:l("condition")}),_.jsx("select",{value:t.kind,onChange:d=>u({kind:d.target.value}),children:r.condition_kinds.map(d=>_.jsx("option",{value:d.kind,children:kr(d,i)},d.kind))})]}),c&&_.jsx(im,{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 _.jsxs("div",{className:"row-fields",children:[t.map((a,u)=>_.jsxs("div",{className:"row-field",children:[_.jsxs("div",{className:"row-field-head",children:[_.jsx("input",{type:"text",placeholder:r("column_name"),value:a.name,onChange:c=>l(u,{name:c.target.value})}),_.jsx("button",{className:"danger",onClick:()=>i(t.filter((c,d)=>d!==u)),children:r("remove")})]}),_.jsxs("div",{className:"fields",children:[_.jsxs("label",{className:"field",children:[_.jsx("span",{children:"by"}),_.jsx("select",{value:a.by??"css",onChange:c=>l(u,{by:c.target.value}),children:["text","css","role"].map(c=>_.jsx("option",{children:c},c))})]}),_.jsxs("label",{className:"field",children:[_.jsx("span",{children:"value"}),_.jsx("input",{type:"text",value:a.value??"",onChange:c=>l(u,{value:c.target.value})})]}),_.jsxs("label",{className:"field",children:[_.jsx("span",{children:"role"}),_.jsx("input",{type:"text",value:a.role??"",onChange:c=>l(u,{role:c.target.value})})]})]})]},u)),_.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,xn(r,"click")]);return _.jsxs("div",{className:"nested-steps",children:[t.map((d,h)=>_.jsxs("div",{className:"mini-card"+(d.enabled===!1?" disabled":""),children:[_.jsxs("div",{className:"mini-head",children:[_.jsx("input",{type:"checkbox",checked:d.enabled!==!1,title:l("enabled_title"),onChange:g=>u(ni(t,h,{...d,enabled:g.target.checked?void 0:!1}))}),_.jsx("select",{value:d.type,onChange:g=>u(ni(t,h,hh(r,d,g.target.value))),children:r.step_types.map(g=>_.jsx("option",{value:g.type,children:kr(g,i)},g.type))}),_.jsx("input",{type:"text",className:"label-input",placeholder:l("label_ph"),value:d.label??"",onChange:g=>u(ni(t,h,{...d,label:g.target.value||void 0}))}),_.jsxs("select",{value:d.on_error==="continue"?"continue":"stop",onChange:g=>u(ni(t,h,{...d,on_error:g.target.value==="continue"?"continue":void 0})),children:[_.jsx("option",{value:"stop",children:l("on_error_stop")}),_.jsx("option",{value:"continue",children:l("on_error_continue")})]}),_.jsx("span",{className:"spacer"}),_.jsx("button",{className:"icon",title:l("move_up"),disabled:h===0,onClick:()=>u(bu(t,h,h-1)),children:"↑"}),_.jsx("button",{className:"icon",title:l("move_down"),disabled:h===t.length-1,onClick:()=>u(bu(t,h,h+1)),children:"↓"}),_.jsx("button",{className:"danger",onClick:()=>u(mh(t,h)),children:l("remove")})]}),_.jsx(sm,{step:d,schema:r,lang:i,t:l,inLoop:a||d.type==="loop",onChange:g=>u(ni(t,h,g))}),_.jsx("button",{className:"secondary tiny",onClick:()=>u(gh(t,h+1,xn(r,"click"))),children:"+"})]},d.id??h)),_.jsx("button",{className:"secondary",onClick:c,children:l("add_step_in")})]})}function sm({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 _.jsxs("div",{className:"hint",children:["Okänd stegtyp: ",t.type]});const d=g=>{const y={...t};for(const[v,m]of Object.entries(g))m===void 0||m===""?delete y[v]:y[v]=m;u(y)},h=a||t.type==="loop"||t.type==="extract_row";return _.jsxs(_.Fragment,{children:[_.jsx(im,{values:t,fields:c.fields,lang:i,showScope:h,onChange:d}),t.type==="extract_row"&&_.jsx(mk,{fields:t.fields??[],lang:i,t:l,onChange:g=>u({...t,fields:g})}),t.type==="loop"&&_.jsx("div",{className:"nested","data-container-id":t.id,children:_.jsx(Ju,{steps:t.steps??[],schema:r,lang:i,t:l,inLoop:!0,onChange:g=>u({...t,steps:g})})}),t.type==="if"&&_.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=(h,g)=>u({...t,branches:c.map((y,v)=>v===h?g:y)});return _.jsxs("div",{className:"nested",children:[c.map((h,g)=>_.jsxs("div",{className:"branch","data-container-id":t.id,"data-branch":g,children:[_.jsxs("div",{className:"branch-head",children:[_.jsx("strong",{children:l(g===0?"branch_if":"branch_else_if")}),g>0&&_.jsx("button",{className:"danger",onClick:()=>u({...t,branches:c.filter((y,v)=>v!==g)}),children:l("remove_branch")})]}),_.jsx(gk,{condition:h.condition,schema:r,lang:i,t:l,showScope:a,onChange:y=>d(g,{...h,condition:y})}),_.jsx(Ju,{steps:h.steps,schema:r,lang:i,t:l,inLoop:a,onChange:y=>d(g,{...h,steps:y})})]},g)),_.jsx("button",{className:"secondary",onClick:()=>u({...t,branches:[...c,Z0()]}),children:l("add_branch")}),_.jsxs("label",{className:"branch else-toggle",children:[_.jsx("input",{type:"checkbox",checked:Array.isArray(t.else),onChange:h=>u({...t,else:h.target.checked?[]:void 0})}),_.jsx("span",{children:l("else_toggle")})]}),Array.isArray(t.else)&&_.jsx("div",{className:"branch","data-container-id":t.id,"data-branch":"else",children:_.jsx(Ju,{steps:t.else,schema:r,lang:i,t:l,inLoop:a,onChange:h=>u({...t,else:h})})})]})}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 _.jsxs("div",{className:"step-node cat-"+((c==null?void 0:c.category)??"x")+(i.enabled===!1?" disabled":""),children:[_.jsx(co,{type:"target",position:xe.Top}),_.jsxs("div",{className:"node-head",children:[_.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})}),_.jsx("select",{className:"nodrag type-select",value:i.type,onChange:d=>r.onChange(hh(l,i,d.target.value)),children:l.step_types.map(d=>_.jsx("option",{value:d.type,children:kr(d,a)},d.type))}),_.jsx("span",{className:"spacer"}),_.jsx("button",{className:"icon nodrag",title:u("move_up"),disabled:r.index===0,onClick:()=>r.onMove(-1),children:"↑"}),_.jsx("button",{className:"icon nodrag",title:u("move_down"),disabled:r.index===r.count-1,onClick:()=>r.onMove(1),children:"↓"}),_.jsx("button",{className:"danger nodrag",onClick:r.onDelete,children:"✕"})]}),_.jsxs("div",{className:"node-subhead",children:[_.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})}),_.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:[_.jsx("option",{value:"stop",children:u("on_error_stop")}),_.jsx("option",{value:"continue",children:u("on_error_continue")})]})]}),_.jsx("div",{className:"node-body nodrag",children:_.jsx(sm,{step:i,schema:l,lang:a,t:u,inLoop:!1,onChange:r.onChange})}),_.jsx("button",{className:"add-after nodrag",title:u("add_step_after"),onClick:r.onAddAfter,children:"+"}),_.jsx(co,{type:"source",position:xe.Bottom})]})}const lm="application/rpa-step",am="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,onAddStep:u,onInsertBlock:c}){const[d,h]=b.useState("steps"),[g,y]=b.useState(""),[v,m]=b.useState(new Set),[w,S]=b.useState([]);b.useEffect(()=>{be.listBlocks().then(S).catch(()=>S([]))},[l]);const M=b.useMemo(()=>{var j;const C=g.trim().toLowerCase(),N={};for(const k of t.step_types){const P=kr(k,r).toLowerCase();C&&!P.includes(C)&&!k.type.includes(C)||(N[j=k.category]??(N[j]=[])).push(k)}return xk.filter(k=>{var P;return(P=N[k])==null?void 0:P.length}).map(k=>({cat:k,steps:N[k]}))},[t,r,g]);return _.jsxs("div",{className:"palette",children:[_.jsxs("div",{className:"palette-tabs",children:[_.jsx("button",{className:d==="steps"?"on":"",onClick:()=>h("steps"),children:i("palette")}),_.jsx("button",{className:d==="blocks"?"on":"",onClick:()=>h("blocks"),children:i("palette_blocks")})]}),d==="steps"&&_.jsxs(_.Fragment,{children:[_.jsx("input",{className:"palette-search",placeholder:i("palette_search"),value:g,onChange:C=>y(C.target.value)}),_.jsx("div",{className:"palette-scroll",children:M.map(({cat:C,steps:N})=>{var k;const j=v.has(C)&&!g;return _.jsxs("div",{className:"palette-group",children:[_.jsxs("button",{className:"palette-group-head",onClick:()=>m(P=>{const H=new Set(P);return H.has(C)?H.delete(C):H.add(C),H}),children:[j?"▸":"▾"," ",((k=wk[C])==null?void 0:k[r])??C]}),!j&&N.map(P=>_.jsxs("div",{className:"palette-item cat-"+P.category,draggable:!0,title:(P.help??"")+" · "+i("palette_click_add"),onDragStart:H=>{H.dataTransfer.setData(lm,P.type),H.dataTransfer.setData("text/plain",P.type),H.dataTransfer.effectAllowed="copy"},onDoubleClick:()=>u(P.type),children:[kr(P,r),_.jsx("button",{className:"palette-add",title:i("palette_click_add"),onClick:()=>u(P.type),children:"+"})]},P.type))]},C)})})]}),d==="blocks"&&_.jsxs("div",{className:"palette-scroll",children:[_.jsx("button",{className:"secondary palette-save-block",onClick:a,children:i("block_save_selection")}),w.length===0&&_.jsx("p",{className:"hint",children:i("block_none")}),w.map(C=>_.jsxs("div",{className:"palette-block",draggable:!0,title:C.description,onDragStart:N=>{N.dataTransfer.setData(am,C.name),N.dataTransfer.setData("text/plain",C.name),N.dataTransfer.effectAllowed="copy"},onDoubleClick:()=>c(C.name),children:[_.jsxs("div",{className:"palette-block-name",children:[C.name,_.jsx("button",{className:"palette-add",title:i("block_insert"),onClick:()=>c(C.name),children:i("block_insert")})]}),_.jsx("div",{className:"hint",children:C.description||`${C.step_count} steg`})]},C.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}const Ek=b.forwardRef(function(r,i){return _.jsx(tm,{children:_.jsx(Nk,{...r,innerRef:i})})});function Nk({flow:t,schema:r,lang:i,t:l,onChange:a,onSelectionChange:u,innerRef:c}){const d=Nl(),h=b.useRef(null),[g,y]=b.useState(()=>ph(t).nodes.map(X=>X.step)),[v,m]=b.useState(()=>({...t.layout??{}})),w=b.useRef(new Map),S=b.useRef(!0),M=b.useMemo(()=>{const X=new Map;for(const Y of g)X.set(Y.id,w.current.get(Y.id)??{width:340,height:kk(Y)});return fk(g.map(Y=>Y.id),X,v)},[g,v]);b.useEffect(()=>{if(S.current){S.current=!1;return}a({steps:g,layout:v})},[g,v,a]);const C=b.useCallback((X,Y)=>y(E=>E.map($=>$.id===X?Y:$)),[]),N=b.useCallback(()=>{window.setTimeout(()=>d.fitView({duration:300,padding:.15}),60)},[d]);b.useImperativeHandle(c,()=>({addStep:X=>{y(Y=>[...Y,Ut({...X})]),N()},addStepType:X=>{y(Y=>[...Y,xn(r,X)]),N()},insertSteps:X=>{y(Y=>[...Y,...X.map(E=>Ut({...E}))]),N()}}),[r,N]);const j=b.useMemo(()=>g.map((X,Y)=>({id:X.id,type:"step",position:M[X.id]??{x:0,y:Y*200},data:{step:X,schema:r,lang:i,t:l,index:Y,count:g.length,onChange:E=>C(X.id,E),onDelete:()=>y(E=>mh(E,E.findIndex($=>$.id===X.id))),onMove:E=>y($=>{const z=$.findIndex(U=>U.id===X.id);return bu($,z,z+E)}),onAddAfter:()=>y(E=>{const $=E.findIndex(z=>z.id===X.id);return gh(E,$+1,xn(r,"click"))})}})),[g,M,r,i,l,C]),k=b.useMemo(()=>{const X=[];for(let E=0;E<g.length-1;E++)X.push({id:`seq-${g[E].id}-${g[E+1].id}`,source:g[E].id,target:g[E+1].id});const Y=new Map;for(const E of g)E.label&&Y.set(E.label,E.id);for(const E of g)E.type==="jump_to_label"&&typeof E.target=="string"&&Y.has(E.target)&&X.push({id:`jump-${E.id}`,source:E.id,target:Y.get(E.target),style:{stroke:"#d1453b",strokeDasharray:"5 5"},label:"goto"});return X},[g]),P=b.useCallback(X=>{for(const Y of X)Y.type==="dimensions"&&Y.dimensions&&w.current.set(Y.id,{width:Y.dimensions.width,height:Y.dimensions.height});m(Y=>{let E=Y;for(const $ of X)$.type==="position"&&$.position&&$.dragging&&(E===Y&&(E={...Y}),E[$.id]={x:Math.round($.position.x),y:Math.round($.position.y)});return E})},[]),H=b.useCallback(()=>{y(X=>[...X].sort((Y,E)=>{var $,z;return((($=M[Y.id])==null?void 0:$.y)??0)-(((z=M[E.id])==null?void 0:z.y)??0)}))},[M]),O=b.useRef(""),W=b.useCallback(({nodes:X})=>{const Y=X.map($=>$.id).sort(),E=Y.join(",");E!==O.current&&(O.current=E,u(Y))},[u]),q=b.useCallback(()=>{document.querySelectorAll(".drop-hover").forEach(X=>X.classList.remove("drop-hover"))},[]),Q=b.useCallback(X=>{var E,$;X.preventDefault(),X.dataTransfer.dropEffect="copy";const Y=(($=(E=X.target)==null?void 0:E.closest)==null?void 0:$.call(E,"[data-container-id]"))??null;document.querySelectorAll(".drop-hover").forEach(z=>z!==Y&&z.classList.remove("drop-hover")),Y&&Y.classList.add("drop-hover")},[]),te=b.useCallback((X,Y,E,$)=>{if(Y){const z=Y.getAttribute("data-container-id"),U=Y.getAttribute("data-branch");y(A=>Js(A,z,U,X)??[...A,X]);return}try{const z=d.screenToFlowPosition({x:E,y:$});m(U=>({...U,[X.id]:{x:Math.round(z.x),y:Math.round(z.y)}}))}catch{}y(z=>[...z,X])},[d]),J=b.useCallback(async X=>{var z,U;X.preventDefault(),q();const Y=X.dataTransfer.getData(lm),E=X.dataTransfer.getData(am),$=((U=(z=X.target)==null?void 0:z.closest)==null?void 0:U.call(z,"[data-container-id]"))??null;if(Y){te(xn(r,Y),$,X.clientX,X.clientY);return}if(E)try{const D=((await be.getBlock(E)).steps??[]).map(V=>Ut({...V}));y(V=>[...V,...D])}catch{}},[r,te,q]);return _.jsx("div",{className:"canvas",ref:h,children:_.jsxs(RS,{nodes:j,edges:k,nodeTypes:Sk,onNodesChange:P,onNodeDragStop:H,onSelectionChange:W,onDragOver:Q,onDrop:J,onDragLeave:q,nodesConnectable:!1,fitView:!0,minZoom:.2,proOptions:{hideAttribution:!0},children:[_.jsx(OS,{}),_.jsx(sk,{pannable:!0,zoomable:!0}),_.jsx(YS,{}),_.jsxs(Ni,{position:"top-left",className:"canvas-panel",children:[_.jsx("button",{className:"secondary",onClick:()=>{y(X=>[...X,xn(r,"goto")]),N()},children:l("add_step")}),_.jsx("button",{className:"secondary",onClick:()=>m({}),children:l("relayout")})]})]})})}function Ck({t,runId:r,run:i}){const l=b.useRef(null);b.useEffect(()=>{l.current&&(l.current.scrollTop=l.current.scrollHeight)},[i==null?void 0:i.logs]);const a=i==null?void 0:i.status;return _.jsxs("div",{className:"panel",children:[_.jsxs("div",{className:"panel-head",children:[_.jsx("strong",{children:t("run_log")}),a&&_.jsx("span",{className:"badge badge-"+a,children:t(a==="running"?"status_running":a==="done"?"status_done":"status_error")}),_.jsx("span",{className:"spacer"}),(i==null?void 0:i.browser_open)&&r&&_.jsx("button",{className:"secondary",onClick:()=>be.closeBrowser(r),children:t("close_browser")}),(i==null?void 0:i.trace_ready)&&r&&_.jsx("button",{className:"secondary",onClick:()=>be.showTrace(r),children:t("show_trace")})]}),_.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]=b.useState(new Set),a=Object.keys(r??{});return _.jsxs("div",{className:"panel",children:[_.jsx("strong",{children:t("variables")}),_.jsx("p",{className:"hint",children:t("vars_hint")}),a.length===0&&_.jsx("p",{className:"hint",children:t("no_vars")}),a.map(u=>{const c=i.has(u),d=r[u];return _.jsxs("div",{className:"var-row",children:[_.jsxs("div",{className:"var-head",onClick:()=>l(h=>{const g=new Set(h);return g.has(u)?g.delete(u):g.add(u),g}),children:[u," ",_.jsxs("span",{className:"hint",children:["(",Mk(t,d),")"]})]}),c&&_.jsx("pre",{className:"var-value",children:typeof d=="string"?d:JSON.stringify(d,null,2)})]},u)})]})}function Tk({t,currentName:r,flow:i,onApply:l}){const[a,u]=b.useState(""),[c,d]=b.useState(!1),[h,g]=b.useState(null);async function y(){if(!(!a.trim()||!r)){d(!0),g(null);try{const v=await be.assist(r,a.trim(),i);l({steps:v.steps,settings:v.settings,layout:{}}),g({text:t("assist_applied")+(v.explanation?`
-
-`+v.explanation:""),error:!1})}catch(v){if(v instanceof Kn&&v.status===501)g({text:t("assist_unavailable"),error:!0});else{const m=v instanceof Kn?String(v.detail):String(v);g({text:t("assist_failed",{msg:m}),error:!0})}}finally{d(!1)}}}return _.jsxs("div",{className:"panel",children:[_.jsx("strong",{children:t("assist_title")}),_.jsx("p",{className:"hint",children:t("assist_hint")}),_.jsx("textarea",{rows:3,placeholder:t("assist_ph"),value:a,onChange:v=>u(v.target.value)}),_.jsx("button",{onClick:y,disabled:c||!r,children:t(c?"assist_working":"assist_btn")}),h&&_.jsx("p",{className:"assist-msg"+(h.error?" error":""),children:h.text})]})}function jk({open:t,schema:r,lang:i,t:l,settings:a,onClose:u,onSave:c}){const d=b.useRef(null);b.useEffect(()=>{const g=d.current;g&&(t&&!g.open&&g.showModal(),!t&&g.open&&g.close())},[t]);function h(g){g.preventDefault();const y=g.currentTarget,v={};for(const m of r.settings){const w=y.elements.namedItem(m.key);w&&(m.kind==="bool"?v[m.key]=w.checked:m.kind==="number"?v[m.key]=Number(w.value)||Number(m.default)||0:v[m.key]=w.value||String(m.default))}c(v)}return _.jsx("dialog",{ref:d,onClose:u,children:_.jsxs("form",{onSubmit:h,method:"dialog",children:[_.jsx("h2",{children:l("settings")}),_.jsx("p",{className:"hint",children:l("settings_hint")}),_.jsx("div",{className:"fields",children:r.settings.map(g=>_.jsxs("label",{className:"field"+(g.kind==="bool"?" field-bool":""),children:[_.jsx("span",{children:kr(g,i)}),g.kind==="bool"?_.jsx("input",{type:"checkbox",name:g.key,defaultChecked:a[g.key]===!0}):_.jsx("input",{type:g.kind==="number"?"number":"text",name:g.key,defaultValue:String(a[g.key]??g.default)})]},g.key))}),_.jsxs("div",{className:"dialog-actions",children:[_.jsx("button",{type:"button",className:"secondary",onClick:u,children:l("cancel")}),_.jsx("button",{type:"submit",children:l("save")})]})]})})}function Ik({open:t,t:r,onClose:i,onCreateStep:l}){const a=b.useRef(null),[u,c]=b.useState([]),[d,h]=b.useState(""),[g,y]=b.useState([]),[v,m]=b.useState(null),[w,S]=b.useState(!1);b.useEffect(()=>{const j=a.current;j&&(t&&!j.open&&(j.showModal(),m(null),y([]),be.desktopWindows().then(k=>{c(k),k.length&&h(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 M(){if(d){S(!0),m(null);try{y(await be.inspectWindow(d))}catch(j){m(j instanceof Kn?String(j.detail):String(j))}finally{S(!1)}}}function C(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 N(j,k){const P=C(j),H={type:k,id:ec(),by:P.by,value:P.value};j.control_type&&(H.control_type=j.control_type),k==="desktop_type"&&(H.text=""),l(H)}return _.jsxs("dialog",{ref:a,onClose:i,className:"inspect-dialog",children:[_.jsx("h2",{children:r("inspect_window")}),_.jsx("p",{className:"hint",children:r("inspect_hint")}),_.jsxs("div",{className:"inspect-controls",children:[_.jsxs("select",{value:d,onChange:j=>h(j.target.value),children:[u.length===0&&_.jsx("option",{value:"",children:r("inspect_none")}),u.map(j=>_.jsx("option",{value:j,children:j},j))]}),_.jsx("button",{onClick:M,disabled:w||!d,children:w?"…":r("inspect_load")}),_.jsx("span",{className:"spacer"}),_.jsx("button",{type:"button",className:"secondary",onClick:i,children:r("cancel")})]}),v&&_.jsx("p",{className:"assist-msg error",children:v}),g.length>0&&_.jsx("div",{className:"inspect-table",children:g.map((j,k)=>{const P=C(j);return _.jsxs("div",{className:"inspect-row",style:{paddingLeft:8+j.depth*14},children:[_.jsx("code",{className:"inspect-ct",children:j.control_type||"?"}),_.jsx("span",{className:"inspect-name",children:j.name||_.jsx("em",{children:"—"})}),j.auto_id&&_.jsxs("code",{className:"inspect-aid",children:["#",j.auto_id]}),_.jsx("span",{className:"spacer"}),_.jsx("button",{className:"secondary tiny",title:`${P.by}=${P.value}`,onClick:()=>{var H;return(H=navigator.clipboard)==null?void 0:H.writeText(`${P.by}=${P.value}`)},children:r("inspect_copy")}),_.jsx("button",{className:"secondary tiny",onClick:()=>N(j,"desktop_click"),children:r("inspect_make_click")}),_.jsx("button",{className:"secondary tiny",onClick:()=>N(j,"desktop_type"),children:r("inspect_make_type")})]},k)})})]})}const uh={steps:[],settings:{},layout:{}};function zk(){const[t,r]=b.useState(null),[i,l]=b.useState(()=>localStorage.getItem("rpa_lang")||"en"),[a,u]=b.useState(()=>localStorage.getItem("rpa_close_mode")||"always"),[c,d]=b.useState([]),[h,g]=b.useState(null),[y,v]=b.useState(uh),[m,w]=b.useState(!1),[S,M]=b.useState(0),[C,N]=b.useState(!1),[j,k]=b.useState(!1),[P,H]=b.useState([]),[O,W]=b.useState(0),[q,Q]=b.useState(null),[te,J]=b.useState(null),[X,Y]=b.useState(null),E=b.useRef(null),$=b.useRef(null),z=b.useMemo(()=>Q0(i),[i]);b.useEffect(()=>{localStorage.setItem("rpa_lang",i),document.title=z("page_title")},[i]),b.useEffect(()=>localStorage.setItem("rpa_close_mode",a),[a]),b.useEffect(()=>{(async()=>{const B=await be.schema();r(B);const ee=await be.listFlows();if(d(ee),ee.length)await U(ee[0]);else{const fe={steps:[Ut(xn(B,"goto")),Ut(xn(B,"wait_for_login"))],settings:{},layout:{}};fe.steps[0].url="https://www.1177.se/",g("standard"),v(fe),w(!0),M(ge=>ge+1)}})()},[]);const U=b.useCallback(async B=>{const ee=await be.getFlow(B);ee.steps=(ee.steps??[]).map(fe=>Ut({...fe})),ee.settings=ee.settings??{},ee.layout=ee.layout??{},g(B),v(ee),w(!1),M(fe=>fe+1)},[]),A=b.useCallback(B=>{v(ee=>({...ee,steps:B.steps,layout:B.layout})),w(!0)},[]),D=b.useCallback(B=>{var ee;return(ee=$.current)==null?void 0:ee.addStepType(B)},[]),V=b.useCallback(async B=>{var ee;try{const fe=await be.getBlock(B);(ee=$.current)==null||ee.insertSteps(fe.steps??[])}catch{}},[]);async function T(){const B=y.steps.filter(ge=>P.includes(ge.id));if(B.length===0){Q(z("block_select_first"));return}const ee=prompt(z("block_name_prompt"));if(!ee)return;const fe=prompt(z("block_desc_prompt"))||"";try{await be.saveBlock(ee,{name:ee,description:fe,steps:B,settings:{}}),W(ge=>ge+1),Q(z("block_saved"))}catch(ge){const ve=ge instanceof Kn?JSON.stringify(ge.detail):String(ge);Q(z("save_failed",{msg:ve}))}}const L=b.useCallback(async()=>{if(!h)return!1;try{await be.saveFlow(h,y),w(!1);const B=await be.listFlows();return d(B),!0}catch(B){const ee=B instanceof Kn?JSON.stringify(B.detail):String(B);return Q(z("save_failed",{msg:ee})),!1}},[h,y,z]);async function ne(){const B=prompt(z("new_flow_prompt"));if(!B||!t)return;const ee={steps:[],settings:{},layout:{}};g(B),v(ee),M(fe=>fe+1);try{await be.saveFlow(B,ee),d(await be.listFlows()),w(!1)}catch{w(!0)}}async function re(){if(!h||!confirm(z("delete_flow_confirm",{name:h})))return;await be.deleteFlow(h);const B=await be.listFlows();d(B),B.length?await U(B[0]):(g(null),v(uh),M(ee=>ee+1))}const ae=()=>{E.current&&window.clearTimeout(E.current),E.current=null},ce=b.useCallback(B=>{be.run(B).then(ee=>{Y(ee),(ee.status==="running"||ee.browser_open)&&(E.current=window.setTimeout(()=>ce(B),1e3))})},[]);async function ue(){if(!h)return;await L(),ae(),Y(null);const{run_id:B}=await be.runFlow(h,a);J(B),ce(B)}return b.useEffect(()=>ae,[]),t?_.jsxs("div",{className:"app",children:[_.jsx(ey,{t:z,lang:i,setLang:l,flowNames:c,currentName:h,onSelect:U,onNew:ne,onDelete:re,onSave:L,onRun:ue,dirty:m,running:(X==null?void 0:X.status)==="running",closeMode:a,setCloseMode:u,onOpenSettings:()=>N(!0),onOpenInspect:()=>k(!0)}),_.jsxs("main",{children:[_.jsx(_k,{schema:t,lang:i,t:z,blocksRefreshKey:O,onSaveSelectionAsBlock:T,onAddStep:D,onInsertBlock:V}),_.jsx(Ek,{ref:$,flow:y,schema:t,lang:i,t:z,onChange:A,onSelectionChange:H},S),_.jsxs("aside",{className:"side",children:[_.jsx(Tk,{t:z,currentName:h,flow:y,onApply:B=>{B.steps=B.steps.map(ee=>Ut({...ee})),B.layout=B.layout??{},ph(B),v(B),w(!0),M(ee=>ee+1)}}),_.jsx(Ck,{t:z,runId:te,run:X}),_.jsx(Pk,{t:z,vars:(X==null?void 0:X.vars)??{}})]})]}),_.jsx(jk,{open:C,schema:t,lang:i,t:z,settings:y.settings,onClose:()=>N(!1),onSave:B=>{v(ee=>({...ee,settings:B})),w(!0),N(!1)}}),_.jsx(Ik,{open:j,t:z,onClose:()=>k(!1),onCreateStep:B=>{var ee;(ee=$.current)==null||ee.addStep(B),k(!1)}}),q&&_.jsx("div",{className:"toast",onClick:()=>Q(null),children:q})]}):_.jsx("div",{className:"loading",children:"…"})}K0.createRoot(document.getElementById("root")).render(_.jsx(fh.StrictMode,{children:_.jsx(zk,{})}));
diff --git a/webui/static/assets/index-DQHRsE2y.css b/webui/static/assets/index-CVytgFkz.css
similarity index 82%
rename from webui/static/assets/index-DQHRsE2y.css
rename to webui/static/assets/index-CVytgFkz.css
index 8c6d505..4f900b2 100644
--- a/webui/static/assets/index-DQHRsE2y.css
+++ b/webui/static/assets/index-CVytgFkz.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: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;display:flex;align-items:center;justify-content:space-between;gap:6px}.palette-item:hover,.palette-block:hover{border-color:var(--accent)}.palette-add{flex:0 0 auto;padding:0 6px;line-height:1.6;font-size:11px;background:transparent;color:var(--accent);border:1px solid var(--border);border-radius:4px;opacity:0;transition:opacity .1s}.palette-item:hover .palette-add,.palette-block:hover .palette-add{opacity:1}.palette-block{flex-direction:column;align-items:stretch}.palette-block-name{display:flex;align-items:center;justify-content:space-between;font-weight:600}.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}
+.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;display:flex;align-items:center;justify-content:space-between;gap:6px}.palette-item:hover,.palette-block:hover{border-color:var(--accent)}.palette-add{flex:0 0 auto;padding:0 6px;line-height:1.6;font-size:11px;background:transparent;color:var(--accent);border:1px solid var(--border);border-radius:4px;opacity:0;transition:opacity .1s}.palette-item:hover .palette-add,.palette-block:hover .palette-add{opacity:1}.palette-block{flex-direction:column;align-items:stretch}.palette-block-name{display:flex;align-items:center;justify-content:space-between;font-weight:600}.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)}.adhoc{margin:10px 0}.adhoc-row{display:flex;gap:6px;margin-bottom:6px}.adhoc-row input{flex:1}.inputs-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.input-row{border:1px solid var(--border);border-radius:6px;padding:8px;display:flex;gap:8px;align-items:flex-start}.input-row .fields{flex:1}.inputs-sets-title{display:block;margin:10px 0 6px;font-size:13px}.set-row{display:flex;align-items:center;gap:6px;padding:6px 4px;border-bottom:1px solid var(--border);font-size:13px}dialog h2~.fields{margin-bottom:10px}.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/index.html b/webui/static/index.html
index 377e100..4404b1c 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-Ba9Cdbwv.js"></script>
- <link rel="stylesheet" crossorigin href="/assets/index-DQHRsE2y.css">
+ <script type="module" crossorigin src="/assets/index-ACtCHcrU.js"></script>
+ <link rel="stylesheet" crossorigin href="/assets/index-CVytgFkz.css">
</head>
<body>
<div id="root"></div>