From 680504769c80bab7720e3bfaa8cdcd92596016e2 Mon Sep 17 00:00:00 2001 From: Maxime Gueguin Date: Tue, 28 Jul 2026 16:18:20 +0200 Subject: [PATCH 01/10] [dev] add docker capabailities --- csauto/solvers/__init__.py | 6 ++- csauto/solvers/code_aster.py | 73 ++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 csauto/solvers/code_aster.py diff --git a/csauto/solvers/__init__.py b/csauto/solvers/__init__.py index ae2195f..b38e8cc 100644 --- a/csauto/solvers/__init__.py +++ b/csauto/solvers/__init__.py @@ -15,7 +15,7 @@ from .base import SolverAdapter, SolverAdapterBase DEFAULT_SOLVER = "code_saturne" -_SOLVER_NAMES = ("code_saturne", "stub") +_SOLVER_NAMES = ("code_saturne", "stub", "code_aster") def available_solvers() -> tuple[str, ...]: @@ -37,6 +37,10 @@ def _adapter_for(normalized: str) -> SolverAdapter: from .stub import StubAdapter return StubAdapter() + if normalized == "code_aster": + from .code_aster import CodeAsterAdapter + + return CodeAsterAdapter() choices = ", ".join(available_solvers()) raise ValueError(f"Unknown solver: {normalized!r}. Choices: {choices}") diff --git a/csauto/solvers/code_aster.py b/csauto/solvers/code_aster.py new file mode 100644 index 0000000..9af8c4a --- /dev/null +++ b/csauto/solvers/code_aster.py @@ -0,0 +1,73 @@ +"""Fake solver adapter used by integration tests. + +Runs as a short python script (native runtime with ``saturne_bin`` pointing at +a Python interpreter) that writes ``OUT/run_0001/stub.log`` with one ``step N`` +line per requested step and a final completion marker. It exercises the whole +prepare -> run -> status pipeline without any code_saturne convention on disk. +""" + +from __future__ import annotations + +import re + +from collections.abc import Sequence +from pathlib import Path +from typing import Any, ClassVar + +from ..logs import read_tail_lines +from ..registry import STATUS_DONE, STATUS_FAILED +from .base import CompareKind, SolverAdapterBase + +CODE_ASTER_EXPORT_EXTENSION = "export" +CODE_ASTER_LOG_EXTENSION = "mess" +CODE_ASTER_DONE_MARKER = "--- DIAGNOSTIC JOB : OK" +CODE_ASTER_ALARM_MARKER = "--- DIAGNOSTIC JOB : _ALARM" + +class CodeAsterAdapter(SolverAdapterBase): + name: ClassVar[str] = "code_aster" + native_bin_name: ClassVar[str] = "run_aster" + container_bin_name: ClassVar[str] = "cave run" + container_root: ClassVar[str] = "/home/user" + results_dirname: ClassVar[str] = "RESULTS" + shared_dir_names: ClassVar[tuple[str, ...]] = ("MESH", ) + export_file: ClassVar[str] = "study.export" + + def run_argv(self, case_path: str | Path, nprocs: int, nt: int, run_args: Sequence[str] | None = None) -> list[str]: + filename = str(self.export_file).split('/')[-1] + return ["bash", "-i", "-c", f"source /opt/activate.sh && run_aster {filename}"] + + def find_setup_file(self, template_dir: Path) -> Path: + files = list(Path(template_dir).glob(f"*.{CODE_ASTER_EXPORT_EXTENSION}")) + if len(files) == 1 and files[0].is_file(): + self.export_file = files[0] + return files[0] + raise FileNotFoundError(f".export file not found in template: {template_dir}") + + def detect_outcome(self, case_dir: Path, start_time: str | None = None) -> str | None: + success_patterns = [ + re.compile(r"DIAGNOSTIC JOB : OK", re.IGNORECASE), + re.compile(r"DIAGNOSTIC JOB : _ALARM", re.IGNORECASE) + ] + failure_patterns = [ + re.compile(r"DIAGNOSTIC JOB : _ABNORMAL_ABORT", re.IGNORECASE), + re.compile(r"DIAGNOSTIC JOB : _SYNTAX_ERROR", re.IGNORECASE), + re.compile(r"DIAGNOSTIC JOB : _MEMORY_ERROR", re.IGNORECASE), + re.compile(r"DIAGNOSTIC JOB : _NO_CONVERGENCE", re.IGNORECASE), + re.compile(r"DIAGNOSTIC JOB : _CPU_LIMIT", re.IGNORECASE), + re.compile(r"DIAGNOSTIC JOB : _ERROR", re.IGNORECASE), + re.compile(r"DIAGNOSTIC JOB : NO_TEST_RESU", re.IGNORECASE), + re.compile(r"DIAGNOSTIC JOB : NOOK_TEST_RESU", re.IGNORECASE) + ] + files = list(Path(case_dir).glob(f"*.{CODE_ASTER_LOG_EXTENSION}")) + if len(files) == 0: + return None + elif len(files) == 1: + lines = read_tail_lines(files[0], lines=40) + joined = "\n".join(lines) + if any(p.search(joined) for p in success_patterns): + return STATUS_DONE + if any(p.search(joined) for p in failure_patterns): + return STATUS_FAILED + else: + raise + return None From 0a56c509618ce51380f71c0fab11bb20bf90bf78 Mon Sep 17 00:00:00 2001 From: Maxime Gueguin Date: Tue, 28 Jul 2026 18:37:28 +0200 Subject: [PATCH 02/10] [dev] handle binding shared floder --- csauto/solvers/code_aster.py | 40 ++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/csauto/solvers/code_aster.py b/csauto/solvers/code_aster.py index 9af8c4a..be52cc9 100644 --- a/csauto/solvers/code_aster.py +++ b/csauto/solvers/code_aster.py @@ -10,9 +10,13 @@ import re -from collections.abc import Sequence +from abc import ABC, abstractmethod +from collections.abc import Mapping, Sequence from pathlib import Path -from typing import Any, ClassVar +from typing import TYPE_CHECKING, Any, ClassVar, NamedTuple, Protocol, runtime_checkable + +if TYPE_CHECKING: + from ..execution import RuntimeSelection from ..logs import read_tail_lines from ..registry import STATUS_DONE, STATUS_FAILED @@ -32,6 +36,38 @@ class CodeAsterAdapter(SolverAdapterBase): shared_dir_names: ClassVar[tuple[str, ...]] = ("MESH", ) export_file: ClassVar[str] = "study.export" + def build_run_command( + self, + case_dir: Path, + nprocs: int, + nt: int, + selection: RuntimeSelection, + *, + cidfile: Path | None = None, + run_args: Sequence[str] | None = None, + cleanenv: bool = False, + env_vars: Mapping[str, str] | None = None, + ) -> list[str]: + """Build the docker command to launch a case.""" + runs_root = case_dir.parent.resolve() + container_root = self.container_root + container_case = f"{container_root}/{case_dir.name}" + from ..execution import shared_dir_symlink_mounts + + cmd: list[str] = ["nohup", "docker", "run", "-v", f"{runs_root}:{container_root}"] + for i, shared_data in enumerate(shared_dir_symlink_mounts(runs_root, self.shared_dir_names)): + readonly = shared_data[1] + linked = f"{shared_data[0]}:{container_case}/{list(self.shared_dir_names)[i]}" + cmd.extend(["-v", f"{linked}:ro" if readonly else f"{linked}"]) + for key, value in sorted((env_vars or {}).items()): + cmd.extend(["-e", f"{key}={value}"]) + cmd.extend(["--label", f"csauto.case_id={case_dir.name}"]) + if cidfile: + cmd.extend(["--cidfile", str(cidfile)]) + cmd.extend(["-w", container_case, selection.docker_image]) + cmd.extend(self.run_argv(container_case, nprocs, nt, run_args)) + return cmd + def run_argv(self, case_path: str | Path, nprocs: int, nt: int, run_args: Sequence[str] | None = None) -> list[str]: filename = str(self.export_file).split('/')[-1] return ["bash", "-i", "-c", f"source /opt/activate.sh && run_aster {filename}"] From dcf0bf4d0febec02c7431395ea34c30c2f9cb59d Mon Sep 17 00:00:00 2001 From: Maxime Gueguin Date: Tue, 28 Jul 2026 19:32:57 +0200 Subject: [PATCH 03/10] [dev] add code_aster logo --- frontend/src/assets/code-aster.svg | 40 +++++++++++++++++++ .../src/lib/components/hero/HeroBanner.svelte | 3 ++ frontend/static/code-aster.svg | 40 +++++++++++++++++++ frontend/static/favicon-code_aster.svg | 40 +++++++++++++++++++ 4 files changed, 123 insertions(+) create mode 100644 frontend/src/assets/code-aster.svg create mode 100644 frontend/static/code-aster.svg create mode 100644 frontend/static/favicon-code_aster.svg diff --git a/frontend/src/assets/code-aster.svg b/frontend/src/assets/code-aster.svg new file mode 100644 index 0000000..0bf402f --- /dev/null +++ b/frontend/src/assets/code-aster.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/lib/components/hero/HeroBanner.svelte b/frontend/src/lib/components/hero/HeroBanner.svelte index 9fc5f48..082ab26 100644 --- a/frontend/src/lib/components/hero/HeroBanner.svelte +++ b/frontend/src/lib/components/hero/HeroBanner.svelte @@ -9,6 +9,7 @@ import { Settings } from "lucide-svelte"; import codeSaturneLogo from "../../../assets/code-saturne.svg"; + import codeAsterLogo from "../../../assets/code-aster.svg"; import { getAppConfig } from "$lib/stores/appConfig.svelte"; interface Props { @@ -40,6 +41,8 @@
{#if !getAppConfig() || getAppConfig()?.solver === "code_saturne"} CODE_SATURNE + {:else if getAppConfig()?.solver === "code_aster"} + CODE_ASTER {:else} {getAppConfig()?.solver} + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/static/favicon-code_aster.svg b/frontend/static/favicon-code_aster.svg new file mode 100644 index 0000000..baf0ec0 --- /dev/null +++ b/frontend/static/favicon-code_aster.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 562e8db59caa18a72fe5cb359b2ac8c1b9612285 Mon Sep 17 00:00:00 2001 From: Maxime Gueguin Date: Wed, 29 Jul 2026 08:20:14 +0200 Subject: [PATCH 04/10] [dev] handle docker for code_aster --- csauto/solvers/code_aster.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/csauto/solvers/code_aster.py b/csauto/solvers/code_aster.py index be52cc9..641185f 100644 --- a/csauto/solvers/code_aster.py +++ b/csauto/solvers/code_aster.py @@ -65,12 +65,12 @@ def build_run_command( if cidfile: cmd.extend(["--cidfile", str(cidfile)]) cmd.extend(["-w", container_case, selection.docker_image]) - cmd.extend(self.run_argv(container_case, nprocs, nt, run_args)) + filename = self.run_argv(container_case, nprocs, nt, run_args)[0] + cmd.extend(["bash", "-i", "-c", f"source /opt/activate.sh && run_aster {filename}"]) return cmd def run_argv(self, case_path: str | Path, nprocs: int, nt: int, run_args: Sequence[str] | None = None) -> list[str]: - filename = str(self.export_file).split('/')[-1] - return ["bash", "-i", "-c", f"source /opt/activate.sh && run_aster {filename}"] + return [str(self.export_file).split('/')[-1]] def find_setup_file(self, template_dir: Path) -> Path: files = list(Path(template_dir).glob(f"*.{CODE_ASTER_EXPORT_EXTENSION}")) From d3fdcf2e2cac8d4ab92736112db7b28451a4cc12 Mon Sep 17 00:00:00 2001 From: Maxime Gueguin Date: Thu, 30 Jul 2026 20:19:42 +0200 Subject: [PATCH 05/10] [dev] add singularity option --- csauto/docker.py | 4 +-- csauto/execution.py | 5 +-- csauto/solvers/code_aster.py | 69 ++++++++++++++++++++++++++---------- 3 files changed, 55 insertions(+), 23 deletions(-) diff --git a/csauto/docker.py b/csauto/docker.py index fdaae5e..83130a6 100644 --- a/csauto/docker.py +++ b/csauto/docker.py @@ -22,7 +22,7 @@ def build_run_command( case_dir: Path, nprocs: int, nt: int, - docker_image: str, + docker_image: str = "", cidfile: Path | None = None, run_args: Sequence[str] | None = None, env_vars: Mapping[str, str] | None = None, @@ -60,7 +60,7 @@ def build_run_command( def build_gui_command( case_dir: Path, - docker_image: str | None = None, + docker_image: str = "", adapter: SolverAdapter | None = None, ) -> list[str]: """Build the docker command to launch the solver GUI for a case.""" diff --git a/csauto/execution.py b/csauto/execution.py index a8789d2..dd842f5 100644 --- a/csauto/execution.py +++ b/csauto/execution.py @@ -126,7 +126,7 @@ def singularity_selection() -> RuntimeSelection: raise FileNotFoundError("apptainer/singularity executable not found in PATH.") return RuntimeSelection( runtime=RUNTIME_SINGULARITY, - docker_image=docker_image, + docker_image="", singularity_image=image, singularity_bin=sbin, ) @@ -154,7 +154,7 @@ def docker_selection() -> RuntimeSelection: if resolved_native: return RuntimeSelection( runtime=RUNTIME_NATIVE, - docker_image=docker_image, + docker_image="", saturne_bin=resolved_native, ) raise FileNotFoundError( @@ -280,6 +280,7 @@ def build_runtime_run_command( cmd.append(selection.singularity_image) cmd.append(adapter.container_bin_name) cmd.extend(adapter.run_argv(container_case, nprocs, nt, run_args)) + print(cmd) return cmd raise ValueError(f"Unsupported runtime: {selection.runtime}") diff --git a/csauto/solvers/code_aster.py b/csauto/solvers/code_aster.py index 641185f..57fe799 100644 --- a/csauto/solvers/code_aster.py +++ b/csauto/solvers/code_aster.py @@ -15,8 +15,7 @@ from pathlib import Path from typing import TYPE_CHECKING, Any, ClassVar, NamedTuple, Protocol, runtime_checkable -if TYPE_CHECKING: - from ..execution import RuntimeSelection +from ..execution import shared_dir_symlink_mounts, RuntimeSelection, RUNTIME_DOCKER, RUNTIME_NATIVE, RUNTIME_SINGULARITY from ..logs import read_tail_lines from ..registry import STATUS_DONE, STATUS_FAILED @@ -24,14 +23,13 @@ CODE_ASTER_EXPORT_EXTENSION = "export" CODE_ASTER_LOG_EXTENSION = "mess" -CODE_ASTER_DONE_MARKER = "--- DIAGNOSTIC JOB : OK" -CODE_ASTER_ALARM_MARKER = "--- DIAGNOSTIC JOB : _ALARM" class CodeAsterAdapter(SolverAdapterBase): name: ClassVar[str] = "code_aster" native_bin_name: ClassVar[str] = "run_aster" - container_bin_name: ClassVar[str] = "cave run" + container_bin_name: ClassVar[str] = "" container_root: ClassVar[str] = "/home/user" + default_docker_image: ClassVar[str] = "simvia/code_aster:17.4.0" results_dirname: ClassVar[str] = "RESULTS" shared_dir_names: ClassVar[tuple[str, ...]] = ("MESH", ) export_file: ClassVar[str] = "study.export" @@ -45,32 +43,65 @@ def build_run_command( *, cidfile: Path | None = None, run_args: Sequence[str] | None = None, - cleanenv: bool = False, + cleanenv: bool = True, env_vars: Mapping[str, str] | None = None, ) -> list[str]: """Build the docker command to launch a case.""" runs_root = case_dir.parent.resolve() container_root = self.container_root container_case = f"{container_root}/{case_dir.name}" - from ..execution import shared_dir_symlink_mounts + filename = str(self.export_file).split('/')[-1] - cmd: list[str] = ["nohup", "docker", "run", "-v", f"{runs_root}:{container_root}"] + links = [] for i, shared_data in enumerate(shared_dir_symlink_mounts(runs_root, self.shared_dir_names)): readonly = shared_data[1] linked = f"{shared_data[0]}:{container_case}/{list(self.shared_dir_names)[i]}" - cmd.extend(["-v", f"{linked}:ro" if readonly else f"{linked}"]) - for key, value in sorted((env_vars or {}).items()): - cmd.extend(["-e", f"{key}={value}"]) - cmd.extend(["--label", f"csauto.case_id={case_dir.name}"]) - if cidfile: - cmd.extend(["--cidfile", str(cidfile)]) - cmd.extend(["-w", container_case, selection.docker_image]) - filename = self.run_argv(container_case, nprocs, nt, run_args)[0] - cmd.extend(["bash", "-i", "-c", f"source /opt/activate.sh && run_aster {filename}"]) + links.append(f"{linked}:ro" if readonly else f"{linked}") + + if selection.runtime == RUNTIME_DOCKER: + cmd: list[str] = ["nohup", "docker", "run", "-v", f"{runs_root}:{container_root}"] + for link in links: + cmd.extend(["-v", link]) + for key, value in sorted((env_vars or {}).items()): + cmd.extend(["-e", f"{key}={value}"]) + cmd.extend(["--label", f"csauto.case_id={case_dir.name}"]) + if cidfile: + cmd.extend(["--cidfile", str(cidfile)]) + cmd.extend(["-w", container_case, selection.docker_image]) + launch_cmd = "source /opt/activate.sh &&" + launch_cmd += f" run_aster {filename}" + # launch_cmd += f" --wrkdir {container_case}/tmp/ && rm -r {container_case}/tmp/" + cmd.extend(["bash", "-i", "-c", launch_cmd]) + elif selection.runtime == RUNTIME_SINGULARITY: + cmd = [ + "nohup", + "bash", + "-c", + f"mkdir -p ~/apptainer_tmp && " + f"export APPTAINER_TMPDIR=~/apptainer_tmp && " + f"export TMPDIR=~/apptainer_tmp && " + f"{selection.singularity_bin} exec " + f"--bind {runs_root}:{container_root} " + f"--bind {links[0]} " + f"--pwd {container_case} " + f"{selection.singularity_image} " + f"bash -c 'source /opt/activate.sh && run_aster {filename}' && " + f"rm -rf ~/apptainer_tmp && " + f"unset APPTAINER_TMPDIR TMPDIR" + ] + elif selection.runtime == RUNTIME_NATIVE: + #TODO + raise NotImplementedError(f"{RUNTIME_NATIVE} must be implemented for code_aster.") + else: + raise NotImplementedError(f"{selection.runtime} not in the development roadmap of code_aster.") + return cmd - def run_argv(self, case_path: str | Path, nprocs: int, nt: int, run_args: Sequence[str] | None = None) -> list[str]: - return [str(self.export_file).split('/')[-1]] + def run_argv( + self, case_path: str | Path, nprocs: int, nt: int, run_args: Sequence[str] | None = None + ) -> list[str]: + #return [str(self.export_file).split('/')[-1]] + return [""] def find_setup_file(self, template_dir: Path) -> Path: files = list(Path(template_dir).glob(f"*.{CODE_ASTER_EXPORT_EXTENSION}")) From d108c4b7675aeb0780c5b01ee3c9e5f8d46286ea Mon Sep 17 00:00:00 2001 From: Maxime Gueguin Date: Fri, 31 Jul 2026 10:21:30 +0200 Subject: [PATCH 06/10] [dev] full working version docker - singularity code_aster --- csauto/solvers/code_aster.py | 90 ++++++++++++++++++++++++------------ 1 file changed, 60 insertions(+), 30 deletions(-) diff --git a/csauto/solvers/code_aster.py b/csauto/solvers/code_aster.py index 57fe799..1389f08 100644 --- a/csauto/solvers/code_aster.py +++ b/csauto/solvers/code_aster.py @@ -22,7 +22,6 @@ from .base import CompareKind, SolverAdapterBase CODE_ASTER_EXPORT_EXTENSION = "export" -CODE_ASTER_LOG_EXTENSION = "mess" class CodeAsterAdapter(SolverAdapterBase): name: ClassVar[str] = "code_aster" @@ -30,8 +29,9 @@ class CodeAsterAdapter(SolverAdapterBase): container_bin_name: ClassVar[str] = "" container_root: ClassVar[str] = "/home/user" default_docker_image: ClassVar[str] = "simvia/code_aster:17.4.0" - results_dirname: ClassVar[str] = "RESULTS" - shared_dir_names: ClassVar[tuple[str, ...]] = ("MESH", ) + results_dirname: ClassVar[str] = "RESU" + logs_dirname: ClassVar[str] = "LOGS" + shared_dir_names: ClassVar[tuple[str, ...]] = ("MESH", "RESU", ) export_file: ClassVar[str] = "study.export" def build_run_command( @@ -45,62 +45,92 @@ def build_run_command( run_args: Sequence[str] | None = None, cleanenv: bool = True, env_vars: Mapping[str, str] | None = None, + tmp_name: str = "TMP" ) -> list[str]: """Build the docker command to launch a case.""" runs_root = case_dir.parent.resolve() container_root = self.container_root container_case = f"{container_root}/{case_dir.name}" - filename = str(self.export_file).split('/')[-1] + exportfile = str(self.export_file).split('/')[-1] + host_tmpdir = f"{runs_root}/{case_dir.name}/{tmp_name}" + solverlogpath = f"{self.results_dirname}/{self.logs_dirname}/run_solver.log" - links = [] + with open(f"{runs_root}/{case_dir.name}/{exportfile}", "a") as f: + f.write(f"F mess {solverlogpath} R 6\n") + + links = [ f"{runs_root}:{container_root}" ] for i, shared_data in enumerate(shared_dir_symlink_mounts(runs_root, self.shared_dir_names)): readonly = shared_data[1] linked = f"{shared_data[0]}:{container_case}/{list(self.shared_dir_names)[i]}" links.append(f"{linked}:ro" if readonly else f"{linked}") + #TODO: Pour relier le fichier de message temporaire + #solverlogfile = Path(f"{runs_root}/{case_dir.name}/{solverlogpath}") + #links.append(f"{runs_root}/{case_dir.name}/{solverlogpath}:{container_case}/{tmp_name}/proc.0/fort.6") + + #TODO : Ajouter la suppression de tous les dossiers partagé sauf celui de resultats + rmdir = [ f"{host_tmpdir}" ] + if selection.runtime == RUNTIME_DOCKER: - cmd: list[str] = ["nohup", "docker", "run", "-v", f"{runs_root}:{container_root}"] - for link in links: - cmd.extend(["-v", link]) - for key, value in sorted((env_vars or {}).items()): - cmd.extend(["-e", f"{key}={value}"]) - cmd.extend(["--label", f"csauto.case_id={case_dir.name}"]) - if cidfile: - cmd.extend(["--cidfile", str(cidfile)]) - cmd.extend(["-w", container_case, selection.docker_image]) - launch_cmd = "source /opt/activate.sh &&" - launch_cmd += f" run_aster {filename}" - # launch_cmd += f" --wrkdir {container_case}/tmp/ && rm -r {container_case}/tmp/" - cmd.extend(["bash", "-i", "-c", launch_cmd]) + add_cid = f"--cidfile {str(cidfile)}" if cidfile else "" + + bind_links = " ".join(f"-v {link}" for link in links) + removed_dirs = " ".join(f"rm -rf {dire}" for dire in rmdir) + + cmd = [ + "nohup", + "bash", + "-c", + f"docker run " + f"{bind_links} " + f"-w {container_case} " + f"--label csauto.case_id={case_dir.name} " + f"{add_cid} " + f"{selection.docker_image} " + f"bash -c 'source /opt/activate.sh && run_aster {exportfile} --wrkdir {container_case}/{tmp_name}/'; " + f"{removed_dirs}" + ] elif selection.runtime == RUNTIME_SINGULARITY: + host_apptainer = f"~/apptainer_tmp_{case_dir.name}" + rmdir.append(f"{host_apptainer}") + + bind_links = " ".join(f"--bind {link}" for link in links) + removed_dirs = " ".join(f"rm -rf {dire}" for dire in rmdir) + cmd = [ "nohup", "bash", "-c", - f"mkdir -p ~/apptainer_tmp && " - f"export APPTAINER_TMPDIR=~/apptainer_tmp && " - f"export TMPDIR=~/apptainer_tmp && " + f"mkdir -p {host_apptainer} && " + f"export APPTAINER_TMPDIR={host_apptainer} && " f"{selection.singularity_bin} exec " - f"--bind {runs_root}:{container_root} " - f"--bind {links[0]} " + f"{bind_links} " f"--pwd {container_case} " f"{selection.singularity_image} " - f"bash -c 'source /opt/activate.sh && run_aster {filename}' && " - f"rm -rf ~/apptainer_tmp && " - f"unset APPTAINER_TMPDIR TMPDIR" + f"bash -c 'source /opt/activate.sh && run_aster {exportfile} --wrkdir {container_case}/{tmp_name}/'; " + f"{removed_dirs}" ] elif selection.runtime == RUNTIME_NATIVE: #TODO - raise NotImplementedError(f"{RUNTIME_NATIVE} must be implemented for code_aster.") + raise NotImplementedError( + f"{RUNTIME_NATIVE} must be implemented for code_aster." + ) else: - raise NotImplementedError(f"{selection.runtime} not in the development roadmap of code_aster.") + if selection.runtime in ['cave', 'salome_meca']: + #TODO + raise NotImplementedError( + f"{selection.runtime} could be in the roadmap of code_aster. Please contact support." + ) + else: + raise NotImplementedError( + f"{selection.runtime} not in the development roadmap of code_aster." + ) return cmd def run_argv( self, case_path: str | Path, nprocs: int, nt: int, run_args: Sequence[str] | None = None ) -> list[str]: - #return [str(self.export_file).split('/')[-1]] return [""] def find_setup_file(self, template_dir: Path) -> Path: @@ -125,7 +155,7 @@ def detect_outcome(self, case_dir: Path, start_time: str | None = None) -> str | re.compile(r"DIAGNOSTIC JOB : NO_TEST_RESU", re.IGNORECASE), re.compile(r"DIAGNOSTIC JOB : NOOK_TEST_RESU", re.IGNORECASE) ] - files = list(Path(case_dir).glob(f"*.{CODE_ASTER_LOG_EXTENSION}")) + files = list(Path(f"{case_dir}/{self.results_dirname}/{self.logs_dirname}/").glob(f"run_solver.log")) if len(files) == 0: return None elif len(files) == 1: From c9a2872dbc37cc363e1c0c8f9a065da998c388d7 Mon Sep 17 00:00:00 2001 From: Maxime Gueguin Date: Fri, 31 Jul 2026 10:58:50 +0200 Subject: [PATCH 07/10] [proj] adding an example for code_aster --- examples/codeaster-cube/MESH/create_mesh.py | 128 ++++++++++++++++++ examples/codeaster-cube/MESH/mesh1.med | Bin 0 -> 78078 bytes examples/codeaster-cube/MESH/mesh2.med | Bin 0 -> 354726 bytes examples/codeaster-cube/README.md | 124 +++++++++++++++++ examples/codeaster-cube/TEMPLATE/study.comm | 72 ++++++++++ examples/codeaster-cube/TEMPLATE/study.export | 18 +++ examples/codeaster-cube/csauto.toml | 14 ++ examples/codeaster-cube/doe.csv | 10 ++ 8 files changed, 366 insertions(+) create mode 100644 examples/codeaster-cube/MESH/create_mesh.py create mode 100644 examples/codeaster-cube/MESH/mesh1.med create mode 100644 examples/codeaster-cube/MESH/mesh2.med create mode 100644 examples/codeaster-cube/README.md create mode 100644 examples/codeaster-cube/TEMPLATE/study.comm create mode 100644 examples/codeaster-cube/TEMPLATE/study.export create mode 100644 examples/codeaster-cube/csauto.toml create mode 100644 examples/codeaster-cube/doe.csv diff --git a/examples/codeaster-cube/MESH/create_mesh.py b/examples/codeaster-cube/MESH/create_mesh.py new file mode 100644 index 0000000..4a3c969 --- /dev/null +++ b/examples/codeaster-cube/MESH/create_mesh.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python + +### +### This file is generated automatically by SALOME v9.15.0 with dump python functionality +### + +import sys +import salome + +salome.salome_init() +import salome_notebook +notebook = salome_notebook.NoteBook() +sys.path.insert(0, r'C:/Users/MaximeGueguin/Downloads') + +### +### GEOM component +### + +import GEOM +from salome.geom import geomBuilder +import math +import SALOMEDS + + +geompy = geomBuilder.New() + +O = geompy.MakeVertex(0, 0, 0) +OX = geompy.MakeVectorDXDYDZ(1, 0, 0) +OY = geompy.MakeVectorDXDYDZ(0, 1, 0) +OZ = geompy.MakeVectorDXDYDZ(0, 0, 1) +box = geompy.MakeBoxDXDYDZ(1, 1, 1) +x_0 = geompy.CreateGroup(box, geompy.ShapeType["FACE"]) +geompy.UnionIDs(x_0, [3]) +x_H = geompy.CreateGroup(box, geompy.ShapeType["FACE"]) +geompy.UnionIDs(x_H, [13]) +y_0 = geompy.CreateGroup(box, geompy.ShapeType["FACE"]) +geompy.UnionIDs(y_0, [23]) +y_H = geompy.CreateGroup(box, geompy.ShapeType["FACE"]) +geompy.UnionIDs(y_H, [27]) +z_0 = geompy.CreateGroup(box, geompy.ShapeType["FACE"]) +geompy.UnionIDs(z_0, [31]) +z_H = geompy.CreateGroup(box, geompy.ShapeType["FACE"]) +geompy.UnionIDs(z_H, [33]) +all_edges = geompy.CreateGroup(box, geompy.ShapeType["EDGE"]) +geompy.UnionIDs(all_edges, [5, 8, 10, 12, 15, 18, 20, 22, 25, 26, 29, 30]) +[x_0, x_H, y_0, y_H, z_0, z_H, all_edges] = geompy.GetExistingSubObjects(box, False) +Auto_group_for_Sub_mesh_1 = geompy.CreateGroup(box, geompy.ShapeType["FACE"]) +geompy.UnionList(Auto_group_for_Sub_mesh_1, [x_0, x_H, y_0, y_H, z_0, z_H]) +geompy.addToStudy( O, 'O' ) +geompy.addToStudy( OX, 'OX' ) +geompy.addToStudy( OY, 'OY' ) +geompy.addToStudy( OZ, 'OZ' ) +geompy.addToStudy( box, 'box' ) +geompy.addToStudyInFather( box, x_0, 'x=0' ) +geompy.addToStudyInFather( box, x_H, 'x=H' ) +geompy.addToStudyInFather( box, y_0, 'y=0' ) +geompy.addToStudyInFather( box, y_H, 'y=H' ) +geompy.addToStudyInFather( box, z_0, 'z=0' ) +geompy.addToStudyInFather( box, z_H, 'z=H' ) +geompy.addToStudyInFather( box, all_edges, 'all_edges' ) +geompy.addToStudyInFather( box, Auto_group_for_Sub_mesh_1, 'Auto_group_for_Sub-mesh_1' ) + +### +### SMESH component +### + +import SMESH, SALOMEDS +from salome.smesh import smeshBuilder + +smesh = smeshBuilder.New() +#smesh.SetEnablePublish( False ) # Set to False to avoid publish in study if not needed or in some particular situations: + # multiples meshes built in parallel, complex and numerous mesh edition (performance) + +Mesh_1 = smesh.Mesh(box,'Mesh_1') +NETGEN_1D_2D_3D = Mesh_1.Tetrahedron(algo=smeshBuilder.NETGEN_1D2D3D) +NETGEN_3D_Parameters_1 = NETGEN_1D_2D_3D.Parameters() +NETGEN_3D_Parameters_1.SetMaxSize( 0.173205 ) +NETGEN_3D_Parameters_1.SetMinSize( 0.00173205 ) +NETGEN_3D_Parameters_1.SetSecondOrder( 0 ) +NETGEN_3D_Parameters_1.SetOptimize( 1 ) +NETGEN_3D_Parameters_1.SetFineness( 2 ) +NETGEN_3D_Parameters_1.SetChordalError( -1 ) +NETGEN_3D_Parameters_1.SetChordalErrorEnabled( 0 ) +NETGEN_3D_Parameters_1.SetUseSurfaceCurvature( 1 ) +NETGEN_3D_Parameters_1.SetFuseEdges( 1 ) +NETGEN_3D_Parameters_1.SetQuadAllowed( 1 ) +NETGEN_3D_Parameters_1.SetCheckChartBoundary( 8 ) +x_0_1 = Mesh_1.GroupOnGeom(x_0,'x=0',SMESH.FACE) +x_H_1 = Mesh_1.GroupOnGeom(x_H,'x=H',SMESH.FACE) +y_0_1 = Mesh_1.GroupOnGeom(y_0,'y=0',SMESH.FACE) +y_H_1 = Mesh_1.GroupOnGeom(y_H,'y=H',SMESH.FACE) +z_0_1 = Mesh_1.GroupOnGeom(z_0,'z=0',SMESH.FACE) +z_H_1 = Mesh_1.GroupOnGeom(z_H,'z=H',SMESH.FACE) +all_edges_1 = Mesh_1.GroupOnGeom(all_edges,'all_edges',SMESH.EDGE) +Quadrangle_2D = Mesh_1.Quadrangle(algo=smeshBuilder.QUADRANGLE,geom=Auto_group_for_Sub_mesh_1) +Quadrangle_Parameters_1 = Quadrangle_2D.QuadrangleParameters(smeshBuilder.QUAD_QUADRANGLE_PREF,-1,[],[],None,smeshBuilder.QUAD_QUADRANGLE_PREF,-1,[],[]) +Regular_1D = Mesh_1.Segment(geom=all_edges) +Number_of_Segments_1 = Regular_1D.NumberOfSegments(10) +isDone = Mesh_1.Compute() +Mesh_1.CheckCompute() +[ x_0_1, x_H_1, y_0_1, y_H_1, z_0_1, z_H_1, all_edges_1 ] = Mesh_1.GetGroups() +box_1 = Mesh_1.GroupOnGeom(box,'box',SMESH.VOLUME) +Sub_mesh_1 = Quadrangle_2D.GetSubMesh() +Sub_mesh_2 = Regular_1D.GetSubMesh() + + +## Set names of Mesh objects +smesh.SetName(Sub_mesh_1, 'Sub-mesh_1') +smesh.SetName(box_1, 'box') +smesh.SetName(NETGEN_3D_Parameters_1, 'NETGEN 3D Parameters_1') +smesh.SetName(y_H_1, 'y=H') +smesh.SetName(z_0_1, 'z=0') +smesh.SetName(Mesh_1.GetMesh(), 'Mesh_1') +smesh.SetName(Quadrangle_Parameters_1, 'Quadrangle Parameters_1') +smesh.SetName(x_0_1, 'x=0') +smesh.SetName(x_H_1, 'x=H') +smesh.SetName(Sub_mesh_2, 'Sub-mesh_2') +smesh.SetName(z_H_1, 'z=H') +smesh.SetName(all_edges_1, 'all_edges') +smesh.SetName(Regular_1D.GetAlgorithm(), 'Regular_1D') +smesh.SetName(y_0_1, 'y=0') +smesh.SetName(NETGEN_1D_2D_3D.GetAlgorithm(), 'NETGEN 1D-2D-3D') +smesh.SetName(Number_of_Segments_1, 'Number of Segments_1') +smesh.SetName(Quadrangle_2D.GetAlgorithm(), 'Quadrangle_2D') + + +if salome.sg.hasDesktop(): + salome.sg.updateObjBrowser() diff --git a/examples/codeaster-cube/MESH/mesh1.med b/examples/codeaster-cube/MESH/mesh1.med new file mode 100644 index 0000000000000000000000000000000000000000..0e4a27a133adaf026326033d9f3d917eee18284f GIT binary patch literal 78078 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 literal 0 HcmV?d00001 diff --git a/examples/codeaster-cube/MESH/mesh2.med b/examples/codeaster-cube/MESH/mesh2.med new file mode 100644 index 0000000000000000000000000000000000000000..c3e1587cd5ff57ec7779d40adb6b6ccb8e9652bd GIT binary patch literal 354726 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 z zBQr5Ge`XeDhnIm{0hWx%rHL@-IH;3%=wlzUCX|;#v0iRqZ08JLlon3)yz{VZo;R%T;%=3q|dVs2K_mq*UaeEfy^ zS%AN?APcdwzQS@5{>GyGoyAz3C0LSG^p%oJvkc3!9Luu;E3y)+>Z>eQ36`@OtFs1c zvKDKzn!aE?$sy-tFfW2R6wJ3^ZU*x>nDfE*qmKT%tjGFnz=mwZ#%#hrypE=FGd2$% zXA8DuE4F4EHrLlyZpZfQz>e(1&g{ajY^JZ9+?_qxlfBrReb|@%*i>JCc>o7;5C?Mz zhjJK)vx&YD@<@*2XpZ4nj^lVvU}Jp~Nj_kzF?82_>#_sIFp6tcm?8Cn7$Nn6^fgHra9KxX-#^D^n zksQU*9K*33$MKxNiJZjAoWiM`#_62FnViMhoWr@C$N5~qg<{6&l zIiBYQUgRZSW({+_5nD6Z9}f0ogZ-)y?ZyAMA`5mJ%I%6=FzAE}+TONmT8ISRqfC-t1vGrBem(=p_`2&;j zMI;Lj^W@IMD)mL3#7R$3T8?!S9b21lmGoHR+{Rq~(V0{ke zL@SWklWFIcaGc@fN^V7>)&GnmI?^#xnykgzti!sj$NCJ8m)7ZPWO-vYVN*6^bN;~=435Ks0%)cD1}4yR!#-vKM=^4};^z;JCEELB;~e-n2R_b$k8|MT9QZf~KF)!UbKv6~ z_&5hX&Vi3};QwuNAh@3+xL@O(^Pj=}7Qy`#!Tl1!{Sd+Z4#E8l!Tk!MoFDsw;TVZg z8C*XI&RZw8JQ-6l9WygK^RNJmusF-GBC9dD9vocnZEAT-wqs}ZU|$YmaJ_SkJdwfm z$l!Y80?UKzg{$QC46f$|*Xx4oal!Sr;Ck9w&kwGLU6=3hA)hh0-V|I<3h6v(a6Krv z-Vx1+0 z!TI*!e0p%cJUAa7obL|KX9wr2gY(hB`R3q!a&W#lI3GOU>sZ2-T*uAa!M!}h<2=KQ zyvEynz^8n{xBSEhu0CTJM&P%M&NxiS@0o&WnUPtUi@&fCe`hI{XBF0DJvQbaY{QQ1 z#@-yjp&Z5WoWhx$$HiR1wcNz*+{1%B#?!pOtGvbge8T5^!w^0I_bI>P*ZhXj7@G;0 zl*yTf8JLARnU4iolqFe?m05#z*@(^AnjP4cz1W{aIFjQynKL+-i@2O?xRKkqn+JH5 zr+A)Mc$4?|n1As#-!rriCVt8AjLh#Ci}9I+KQcAb^JnH@UjEA8Sb}9)iPc$$4cUyX z*q&Y3ll?fDBRH0mIGuC2kjuE58@QFbxSvOOlIM7tH+Ywi_$OcSZ-(+g(JvT|krCXAn2ouapM_bBrCEVhS&Q}A zge};Xo!FgyIFQ3QniDvcvpAnixRUF*nLD_bhj^T4c#+q5n-BPuFZh<9_#pLX48sWg zmeCo93Hd!!FfB7OD|7J|7UJ(L#qzAenykmh{DW=Sk=@vv12~kUIG$5Dlk>QkE4Y@M zxSe}=kjHqM7kHJoc%M)BoNpMy2irg8SNxjaFdAbs0h2O0(=Y?GFeme|Ad9jj%ds+R zur3?1Ia{*>yRsMia|lOr94B)I=W-F3a}76g8+Y>nkMb1H^9pbB9v|~BzUF&|4*TJA zLtipHBlA1PVtgjyk4(+<{FynJm%s8imS9;{Vs+MGLpEb8wr3aiWIqn(2#)0>PUjph zfMTo1wye__=(+aE!#LjLCRR%w$Z(bj-}`%)#5N$B9CzaJjV@UI8+zm59g?fE3M z^IyI)W92qkQ)P=DJm}<#2Q&Ta!Tg!U8q!v-*0^==L?0gg|Ly<(=jT5x z___T1ZFoPmT&qwaLWcZ*c?{AkUZ}AY3|F!hrzhVFRMf#sdN){>c-;ey~B^EDM;=jK8|GD@-Pb!x8 z|HgMO@>}8m{vQ8%T_uYY`0q#lQ(UCXe}DH6S8CqB|DQLgNSOlv^%8?81uylZAK!uh I2i}4I1B}x=bpQYW literal 0 HcmV?d00001 diff --git a/examples/codeaster-cube/README.md b/examples/codeaster-cube/README.md new file mode 100644 index 0000000..9398f52 --- /dev/null +++ b/examples/codeaster-cube/README.md @@ -0,0 +1,124 @@ +# Example: codeaster-cube + +A complete campaign showcasing the main csauto features with code_aster. + +## What this example does + +Simulates a cube under trixial traction. The DOE combines: + +- **2 values of imposed displacement along x, y or x** — 1.0e-3 and 0.0 +- **2 meshes** — `mesh1.med` and `mesh2.med` +- **1 additional case** - with non valid values for imposed displacements + +This produces **9 cases**. The template demonstrates: +- **value placeholders** — `{depl_x}`, `{depl_y}`, `{depl_z}`, `{mesh_name}` in both `export` and `comm`files +- **conditional way in command file** — with an `if` situation related to values of the DOE + +## Files + +``` +codeaster_cube/ +├── csauto.toml ← runtime configuration (Docker) +├── doe.csv ← 9 cases +├── TEMPLATE/ +│ ├── DATA/ +│ └── SRC/ +└── MESH/ + ├── create_mesh.py ← a Salome script to get the MED files + ├── mesh1.med ← first mesh variant + └── mesh2.med ← second mesh variant +``` + +## Prerequisites + +- csauto installed (`csauto --version` works) +- A working code_aster runtime: Docker or Singularity image (native is coming) + +## 1. Configure your runtime + +A `csauto.toml` is already provided with a Docker configuration. Edit it to +match your environment, or replace it entirely. Examples: + +**Docker (provided):** +```toml +runtime = "docker" +docker_image = "simvia/code_aster:17.4.0" + +host = "127.0.0.1" +port = 8000 + +[api] +token = "your-secret-token" +``` + +**Singularity image:** +```toml +runtime = "singularity" +singularity_image = "/path/to/code_aster_17.4.0.sif" + +host = "127.0.0.1" +port = 8000 + +[api] +token = "your-secret-token" +``` + +## 2. Generate the case + +```bash +cd examples/codeaster_cube +csauto prepare doe.csv TEMPLATE RUNS +``` + +Expected output: +``` +RUNS/ +├── registry.json +├── case0001/ +│ ├── MESH/ ← selected mesh copied from single-case/MESH/ +│ ├── aaa +│ ├── aaa +│ └── doe_row.csv +├── case0002/ +│ └── ... +└── ... ← 9 cases total +``` + +## 3. Validate + +```bash +csauto doctor RUNS +``` + +All checks should print `[OK]`. Fix any `[FAIL]` before continuing. + +## 4. Open the web UI + +```bash +csauto serve RUNS --host 127.0.0.1 --port 8000 +``` + +Open [http://127.0.0.1:8000](http://127.0.0.1:8000). + +## 5. Launch from the UI + +In the **Status** panel: +1. Select one or more cases (`Ctrl+A` to select all) +2. Click **Run Selected** +3. Set **n** = 1 (MPI rank), **nt** = 1 (thread) +4. Click **Submit** + +Cases move to `RUNNING`. Once complete they show `DONE`. + +## Alternative: launch from the terminal + +```bash +csauto run RUNS --n 1 --nt 1 +``` + +## Explore the results + +From the web UI: +- **Residuals Plot** — TODO +- **Log Tail** — live solver output +- **Probes** — TODO diff --git a/examples/codeaster-cube/TEMPLATE/study.comm b/examples/codeaster-cube/TEMPLATE/study.comm new file mode 100644 index 0000000..bf30b35 --- /dev/null +++ b/examples/codeaster-cube/TEMPLATE/study.comm @@ -0,0 +1,72 @@ +DEBUT() + +imp_x = {depl_x} +imp_y = {depl_y} +imp_z = {depl_z} + +mesh = LIRE_MAILLAGE( + FORMAT='MED', + UNITE=20 +) + +model = AFFE_MODELE( + MAILLAGE=mesh, + AFFE=_F( + GROUP_MA='box', + PHENOMENE='MECANIQUE', + MODELISATION='3D' + ) +) + +mat = DEFI_MATERIAU( + ELAS=_F( + E=200.0e9, + NU=0.3 + ) +) + +matfield = AFFE_MATERIAU( + MODELE=model, + AFFE=_F( + GROUP_MA='box', + MATER=mat + ) +) + +bcds = AFFE_CHAR_MECA( + MODELE=model, + DDL_IMPO=( + _F(GROUP_MA='x=0', DX=0.0), + _F(GROUP_MA='y=0', DY=0.0), + _F(GROUP_MA='z=0', DZ=0.0) + ) +) + +if imp_x > 0.1 or imp_y > 0.1 or imp_z > 0.1: + raise +else: + loads = AFFE_CHAR_MECA( + MODELE=model, + DDL_IMPO=( + _F(GROUP_MA='x=H', DX=imp_x), + _F(GROUP_MA='y=H', DY=imp_y), + _F(GROUP_MA='z=H', DZ=imp_z) + ) + ) + +results = MECA_STATIQUE( + MODELE=model, + CHAM_MATER=matfield, + EXCIT=( + _F(CHARGE=bcds), + _F(CHARGE=loads) + ) +) + +IMPR_RESU( + FORMAT='MED', + UNITE=80, + RESU=_F(RESULTAT=results) +) + +FIN() \ No newline at end of file diff --git a/examples/codeaster-cube/TEMPLATE/study.export b/examples/codeaster-cube/TEMPLATE/study.export new file mode 100644 index 0000000..d4ac61b --- /dev/null +++ b/examples/codeaster-cube/TEMPLATE/study.export @@ -0,0 +1,18 @@ +# study.export +# This file was generated using VS Code Aster - https://github.com/simvia-tech/vs-code-aster +# VS Code Aster is an open-source project maintained by Simvia - https://simvia.tech + +# Simulation parameters +P time_limit 300 +P memory_limit 1024 +P ncpus 1 +P mpi_nbcpu 1 +P mpi_nbnoeud 1 + +# Input files +F comm study.comm D 1 +F mmed MESH/{mesh_name} D 20 + +# Output files +F rmed RESU/myresults.rmed R 80 +F mess output.mess R 6 diff --git a/examples/codeaster-cube/csauto.toml b/examples/codeaster-cube/csauto.toml new file mode 100644 index 0000000..72e9953 --- /dev/null +++ b/examples/codeaster-cube/csauto.toml @@ -0,0 +1,14 @@ +# Use docker (by default) + +# select code_aster solver and use docker +solver = "code_aster" +runtime = "docker" +docker_image = "simvia/code_aster:17.4.0" + +# Expose UI to all interfaces +host = "127.0.0.1" +port = 8000 + +# Required when host is not 127.0.0.1 or localhost +[api] +token = "your-secret-token" \ No newline at end of file diff --git a/examples/codeaster-cube/doe.csv b/examples/codeaster-cube/doe.csv new file mode 100644 index 0000000..7492303 --- /dev/null +++ b/examples/codeaster-cube/doe.csv @@ -0,0 +1,10 @@ +depl_x,depl_y,depl_z,mesh_name +1.0,0.0,0.0,mesh1.med +1.e-3,0.0,0.0,mesh1.med +0.0,1.e-3,0.0,mesh1.med +0.0,0.0,1.e-3,mesh1.med +1.e-3,1.e-3,1.e-3,mesh1.med +1.e-3,0.0,0.0,mesh2.med +0.0,1.e-3,0.0,mesh2.med +0.0,0.0,1.e-3,mesh2.med +1.e-3,1.e-3,1.e-3,mesh2.med \ No newline at end of file From 7e923bb1a58163fd2bc834e29c3a38f003b43a9d Mon Sep 17 00:00:00 2001 From: Maxime Gueguin Date: Fri, 31 Jul 2026 13:53:35 +0200 Subject: [PATCH 08/10] [proj] add README for codeaster_cube example --- examples/codeaster-cube/MESH/create_mesh.py | 8 -------- examples/codeaster-cube/README.md | 14 ++++++++------ 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/examples/codeaster-cube/MESH/create_mesh.py b/examples/codeaster-cube/MESH/create_mesh.py index 4a3c969..45c5430 100644 --- a/examples/codeaster-cube/MESH/create_mesh.py +++ b/examples/codeaster-cube/MESH/create_mesh.py @@ -9,8 +9,6 @@ salome.salome_init() import salome_notebook -notebook = salome_notebook.NoteBook() -sys.path.insert(0, r'C:/Users/MaximeGueguin/Downloads') ### ### GEOM component @@ -68,8 +66,6 @@ from salome.smesh import smeshBuilder smesh = smeshBuilder.New() -#smesh.SetEnablePublish( False ) # Set to False to avoid publish in study if not needed or in some particular situations: - # multiples meshes built in parallel, complex and numerous mesh edition (performance) Mesh_1 = smesh.Mesh(box,'Mesh_1') NETGEN_1D_2D_3D = Mesh_1.Tetrahedron(algo=smeshBuilder.NETGEN_1D2D3D) @@ -122,7 +118,3 @@ smesh.SetName(NETGEN_1D_2D_3D.GetAlgorithm(), 'NETGEN 1D-2D-3D') smesh.SetName(Number_of_Segments_1, 'Number of Segments_1') smesh.SetName(Quadrangle_2D.GetAlgorithm(), 'Quadrangle_2D') - - -if salome.sg.hasDesktop(): - salome.sg.updateObjBrowser() diff --git a/examples/codeaster-cube/README.md b/examples/codeaster-cube/README.md index 9398f52..ab95a40 100644 --- a/examples/codeaster-cube/README.md +++ b/examples/codeaster-cube/README.md @@ -21,14 +21,16 @@ codeaster_cube/ ├── csauto.toml ← runtime configuration (Docker) ├── doe.csv ← 9 cases ├── TEMPLATE/ -│ ├── DATA/ -│ └── SRC/ +│ ├── study.comm ← a code_aster command file +│ └── study.export ← a code_aster export file └── MESH/ ├── create_mesh.py ← a Salome script to get the MED files ├── mesh1.med ← first mesh variant └── mesh2.med ← second mesh variant ``` +> **WARNING**: As the project currently stands, in an `export` file contained in `TEMPLATE`, the paths specified for the input meshes must be prefixed with the `MESH/` path, and the output files to be saved must be prefixed with the `RESU/` path. + ## Prerequisites - csauto installed (`csauto --version` works) @@ -76,8 +78,8 @@ RUNS/ ├── registry.json ├── case0001/ │ ├── MESH/ ← selected mesh copied from single-case/MESH/ -│ ├── aaa -│ ├── aaa +│ ├── study.comm ← a copy of the code_aster command file with the input values +│ ├── study.comm ← a copy of the code_aster export file with the input values │ └── doe_row.csv ├── case0002/ │ └── ... @@ -119,6 +121,6 @@ csauto run RUNS --n 1 --nt 1 ## Explore the results From the web UI: -- **Residuals Plot** — TODO +- **Residuals Plot** — not in the current version `#TODO` +- **Probes** — not in the current version `#TODO` - **Log Tail** — live solver output -- **Probes** — TODO From 1b964527d8b696974084b533ae7c7cd1afacd368 Mon Sep 17 00:00:00 2001 From: Maxime Gueguin Date: Fri, 31 Jul 2026 16:12:43 +0200 Subject: [PATCH 09/10] [dev] add test and frontend adaption for code_aster --- .../dist/_app/immutable/chunks/B87JTjoX.js | 1 - .../dist/_app/immutable/chunks/eeJ2SmtH.js | 1 + .../{app.CFH18tUV.js => app.BcimqTdT.js} | 4 +- .../_app/immutable/entry/start.Cnn_J3kK.js | 1 + .../_app/immutable/entry/start.Dsp_JzAf.js | 1 - .../nodes/{1.CrjZXtQm.js => 1.CqrNlNqJ.js} | 2 +- .../nodes/{2.VYoLrj39.js => 2.Cadsvez-.js} | 78 +++++------ frontend/dist/_app/version.json | 2 +- frontend/dist/code-aster.svg | 40 ++++++ frontend/dist/favicon-code_aster.svg | 40 ++++++ frontend/dist/index.html | 12 +- tests/integration/test_code_aster_adapter.py | 132 ++++++++++++++++++ tests/unit/test_solvers.py | 18 ++- 13 files changed, 280 insertions(+), 52 deletions(-) delete mode 100644 frontend/dist/_app/immutable/chunks/B87JTjoX.js create mode 100644 frontend/dist/_app/immutable/chunks/eeJ2SmtH.js rename frontend/dist/_app/immutable/entry/{app.CFH18tUV.js => app.BcimqTdT.js} (94%) create mode 100644 frontend/dist/_app/immutable/entry/start.Cnn_J3kK.js delete mode 100644 frontend/dist/_app/immutable/entry/start.Dsp_JzAf.js rename frontend/dist/_app/immutable/nodes/{1.CrjZXtQm.js => 1.CqrNlNqJ.js} (78%) rename frontend/dist/_app/immutable/nodes/{2.VYoLrj39.js => 2.Cadsvez-.js} (50%) create mode 100644 frontend/dist/code-aster.svg create mode 100644 frontend/dist/favicon-code_aster.svg create mode 100644 tests/integration/test_code_aster_adapter.py diff --git a/frontend/dist/_app/immutable/chunks/B87JTjoX.js b/frontend/dist/_app/immutable/chunks/B87JTjoX.js deleted file mode 100644 index 68958b4..0000000 --- a/frontend/dist/_app/immutable/chunks/B87JTjoX.js +++ /dev/null @@ -1 +0,0 @@ -var te=t=>{throw TypeError(t)};var je=(t,e,n)=>e.has(t)||te("Cannot "+n);var v=(t,e,n)=>(je(t,e,"read from private field"),n?n.call(t):e.get(t)),U=(t,e,n)=>e.has(t)?te("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{bf as Ut,bg as Ne,aK as T,o as I,$ as O,aJ as mt,bh as qe}from"./VJhVTb1A.js";import{o as ee}from"./Cz6m6K8p.js";const B=[];function Dt(t,e=Ut){let n=null;const a=new Set;function r(o){if(Ne(t,o)&&(t=o,n)){const l=!B.length;for(const c of a)c[1](),B.push(c,t);if(l){for(let c=0;c{a.delete(c),a.size===0&&n&&(n(),n=null)}}return{set:r,update:i,subscribe:s}}class Vt{constructor(e,n){this.status=e,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}}class Kt{constructor(e,n){this.status=e,this.location=n}}class Bt extends Error{constructor(e,n,a){super(a),this.status=e,this.text=n}}new URL("sveltekit-internal://");function De(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function Ve(t){return t.split("%25").map(decodeURI).join("%25")}function Ke(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function Tt({href:t}){return t.split("#")[0]}function Be(...t){let e=5381;for(const n of t)if(typeof n=="string"){let a=n.length;for(;a;)e=e*33^n.charCodeAt(--a)}else if(ArrayBuffer.isView(n)){const a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=a.length;for(;r;)e=e*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;new TextDecoder;function Me(t){const e=atob(t),n=new Uint8Array(e.length);for(let a=0;a((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&H.delete(Mt(t)),ze(t,e));const H=new Map;function Fe(t,e){const n=Mt(t,e),a=document.querySelector(n);if(a!=null&&a.textContent){a.remove();let{body:r,...i}=JSON.parse(a.textContent);const s=a.getAttribute("data-ttl");return s&&H.set(n,{body:r,init:i,ttl:1e3*Number(s)}),a.getAttribute("data-b64")!==null&&(r=Me(r)),Promise.resolve(new Response(r,i))}return window.fetch(t,e)}function Ge(t,e,n){if(H.size>0){const a=Mt(t,n),r=H.get(a);if(r){if(performance.now(){const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return e.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(i)return e.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const s=a.split(/\[(.+?)\](?!\])/);return"/"+s.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return It(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return It(String.fromCharCode(...l.slice(2).split("-").map(m=>parseInt(m,16))));const d=We.exec(l),[,u,w,p,f]=d;return e.push({name:p,matcher:f,optional:!!u,rest:!!w,chained:w?c===1&&s[0]==="":!1}),w?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return It(l)}).join("")}).join("")}/?$`),params:e}}function Ye(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function He(t){return t.slice(1).split("/").filter(Ye)}function Xe(t,e,n){const a={},r=t.slice(1),i=r.filter(o=>o!==void 0);let s=0;for(let o=0;od).join("/"),s=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){a[l.name]=c;const d=e[o+1],u=r[o+1];d&&!d.rest&&d.optional&&u&&l.chained&&(s=0),!d&&!u&&Object.keys(a).length===i.length&&(s=0);continue}if(l.optional&&l.chained){s++;continue}return}if(!s)return a}function It(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Qe({nodes:t,server_loads:e,dictionary:n,matchers:a}){const r=new Set(e);return Object.entries(n).map(([o,[l,c,d]])=>{const{pattern:u,params:w}=Je(o),p={id:o,exec:f=>{const m=u.exec(f);if(m)return Xe(m,w,a)},errors:[1,...d||[]].map(f=>t[f]),layouts:[0,...c||[]].map(s),leaf:i(l)};return p.errors.length=p.layouts.length=Math.max(p.errors.length,p.layouts.length),p});function i(o){const l=o<0;return l&&(o=~o),[l,t[o]]}function s(o){return o===void 0?o:[r.has(o),t[o]]}}function ge(t,e=JSON.parse){try{return e(sessionStorage[t])}catch{}}function ne(t,e,n=JSON.stringify){const a=n(e);try{sessionStorage[t]=a}catch{}}var fe;const A=((fe=globalThis.__sveltekit_lwkxbu)==null?void 0:fe.base)??"";var ue;const Ze=((ue=globalThis.__sveltekit_lwkxbu)==null?void 0:ue.assets)??A??"",tn="1784298934448",me="sveltekit:snapshot",_e="sveltekit:scroll",we="sveltekit:states",en="sveltekit:pageurl",z="sveltekit:history",Q="sveltekit:navigation",q={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},zt=location.origin;function ve(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function V(){return{x:pageXOffset,y:pageYOffset}}function M(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const re={...q,"":q.hover};function ye(t){let e=t.assignedSlot??t.parentNode;return(e==null?void 0:e.nodeType)===11&&(e=e.host),e}function be(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=ye(t)}}function $t(t,e,n){let a;try{if(a=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI),n&&a.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";a.hash=`#${o}${a.hash}`}}catch{}const r=t instanceof SVGAElement?t.target.baseVal:t.target,i=!a||!!r||Rt(a,e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),s=(a==null?void 0:a.origin)===zt&&t.hasAttribute("download");return{url:a,external:i,target:r,download:s}}function _t(t){let e=null,n=null,a=null,r=null,i=null,s=null,o=t;for(;o&&o!==document.documentElement;)a===null&&(a=M(o,"preload-code")),r===null&&(r=M(o,"preload-data")),e===null&&(e=M(o,"keepfocus")),n===null&&(n=M(o,"noscroll")),i===null&&(i=M(o,"reload")),s===null&&(s=M(o,"replacestate")),o=ye(o);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:re[a??"off"],preload_data:re[r??"off"],keepfocus:l(e),noscroll:l(n),reload:l(i),replace_state:l(s)}}function ae(t){const e=Dt(t);let n=!0;function a(){n=!0,e.update(s=>s)}function r(s){n=!1,e.set(s)}function i(s){let o;return e.subscribe(l=>{(o===void 0||n&&l!==o)&&s(o=l)})}return{notify:a,set:r,subscribe:i}}const ke={v:()=>{}};function nn(){const{set:t,subscribe:e}=Dt(!1);let n;async function a(){clearTimeout(n);try{const r=await fetch(`${Ze}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const s=(await r.json()).version!==tn;return s&&(t(!0),ke.v(),clearTimeout(n)),s}catch{return!1}}return{subscribe:e,check:a}}function Rt(t,e,n){return t.origin!==zt||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function On(t){}const Se=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...Se];const rn=new Set([...Se]);[...rn];function an(t){return t.filter(e=>e!=null)}function Ft(t){return t instanceof Vt||t instanceof Bt?t.status:500}function on(t){return t instanceof Bt?t.text:"Internal Error"}let R,Z,Ot;const sn=ee.toString().includes("$$")||/function \w+\(\) \{\}/.test(ee.toString()),oe="a:";var at,ot,st,it,lt,ct,ft,ut,de,dt,he,ht,pe;sn?(R={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(oe)},Z={current:null},Ot={current:!1}):(R=new(de=class{constructor(){U(this,at,T({}));U(this,ot,T(null));U(this,st,T(null));U(this,it,T({}));U(this,lt,T({id:null}));U(this,ct,T({}));U(this,ft,T(-1));U(this,ut,T(new URL(oe)))}get data(){return I(v(this,at))}set data(e){O(v(this,at),e)}get form(){return I(v(this,ot))}set form(e){O(v(this,ot),e)}get error(){return I(v(this,st))}set error(e){O(v(this,st),e)}get params(){return I(v(this,it))}set params(e){O(v(this,it),e)}get route(){return I(v(this,lt))}set route(e){O(v(this,lt),e)}get state(){return I(v(this,ct))}set state(e){O(v(this,ct),e)}get status(){return I(v(this,ft))}set status(e){O(v(this,ft),e)}get url(){return I(v(this,ut))}set url(e){O(v(this,ut),e)}},at=new WeakMap,ot=new WeakMap,st=new WeakMap,it=new WeakMap,lt=new WeakMap,ct=new WeakMap,ft=new WeakMap,ut=new WeakMap,de),Z=new(he=class{constructor(){U(this,dt,T(null))}get current(){return I(v(this,dt))}set current(e){O(v(this,dt),e)}},dt=new WeakMap,he),Ot=new(pe=class{constructor(){U(this,ht,T(!1))}get current(){return I(v(this,ht))}set current(e){O(v(this,ht),e)}},ht=new WeakMap,pe),ke.v=()=>Ot.current=!0);function ln(t){Object.assign(R,t)}const cn=new Set(["icon","shortcut icon","apple-touch-icon"]);let J=null;const j=ge(_e)??{},tt=ge(me)??{},C={url:ae({}),page:ae({}),navigating:Dt(null),updated:nn()};function Gt(t){j[t]=V()}function fn(t,e){let n=t+1;for(;j[n];)delete j[n],n+=1;for(n=e+1;tt[n];)delete tt[n],n+=1}function et(t,e=!1){return e?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function Ee(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(A||"/");t&&await t.update()}}function se(){}let Wt,Ct,wt,P,jt,S;const vt=[],yt=[];let y=null;function Nt(){var t;(t=y==null?void 0:y.fork)==null||t.then(e=>e==null?void 0:e.discard()),y=null}const gt=new Map,Re=new Set,un=new Set,X=new Set;let _={branch:[],error:null,url:null},xe=!1,bt=!1,ie=!0,nt=!1,Y=!1,Le=!1,Jt=!1,Ae,k,L,D;const kt=new Set,le=new Map;async function jn(t,e,n){var i,s,o,l,c;(i=globalThis.__sveltekit_lwkxbu)!=null&&i.data&&globalThis.__sveltekit_lwkxbu.data,document.URL!==location.href&&(location.href=location.href),S=t,await((o=(s=t.hooks).init)==null?void 0:o.call(s)),Wt=Qe(t),P=document.documentElement,jt=e,Ct=t.nodes[0],wt=t.nodes[1],Ct(),wt(),k=(l=history.state)==null?void 0:l[z],L=(c=history.state)==null?void 0:c[Q],k||(k=L=Date.now(),history.replaceState({...history.state,[z]:k,[Q]:L},""));const a=j[k];function r(){a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y))}n?(r(),await Rn(jt,n)):(await F({type:"enter",url:ve(S.hash?An(new URL(location.href)):location.href),replace_state:!0}),r()),En()}function dn(){vt.length=0,Jt=!1}function Ue(t){yt.some(e=>e==null?void 0:e.snapshot)&&(tt[t]=yt.map(e=>{var n;return(n=e==null?void 0:e.snapshot)==null?void 0:n.capture()}))}function Te(t){var e;(e=tt[t])==null||e.forEach((n,a)=>{var r,i;(i=(r=yt[a])==null?void 0:r.snapshot)==null||i.restore(n)})}function ce(){Gt(k),ne(_e,j),Ue(L),ne(me,tt)}async function hn(t,e,n,a){let r;e.invalidateAll&&Nt(),await F({type:"goto",url:ve(t),keepfocus:e.keepFocus,noscroll:e.noScroll,replace_state:e.replaceState,state:e.state,redirect_count:n,nav_token:a,accept:()=>{e.invalidateAll&&(Jt=!0,r=[...le.keys()]),e.invalidate&&e.invalidate.forEach(Sn)}}),e.invalidateAll&&mt().then(mt).then(()=>{le.forEach(({resource:i},s)=>{var o;r!=null&&r.includes(s)&&((o=i.refresh)==null||o.call(i))})})}async function pn(t){if(t.id!==(y==null?void 0:y.id)){Nt();const e={};kt.add(e),y={id:t.id,token:e,promise:Oe({...t,preload:e}).then(n=>(kt.delete(e),n.type==="loaded"&&n.state.error&&Nt(),n)),fork:null}}return y.promise}async function Pt(t){var n;const e=(n=await xt(t,!1))==null?void 0:n.route;e&&await Promise.all([...e.layouts,e.leaf].filter(Boolean).map(a=>a[1]()))}async function Ie(t,e,n){var i;const a={params:_.params,route:{id:((i=_.route)==null?void 0:i.id)??null},url:new URL(location.href)};_={...t.state,nav:a};const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(R,t.props.page),Ae=new S.root({target:e,props:{...t.props,stores:C,components:yt},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),Te(L),n){const s={from:null,to:{...a,scroll:j[k]??V()},willUnload:!1,type:"enter",complete:Promise.resolve()};X.forEach(o=>o(s))}bt=!0}async function St({url:t,params:e,branch:n,errors:a,status:r,error:i,route:s,form:o}){let l="never";if(A&&(t.pathname===A||t.pathname===A+"/"))l="always";else for(const f of n)(f==null?void 0:f.slash)!==void 0&&(l=f.slash);t.pathname=De(t.pathname,l),t.search=t.search;const c={type:"loaded",state:{url:t,params:e,branch:n,error:i,route:s},props:{constructors:an(n).map(f=>f.node.component),page:Zt(R)}};o!==void 0&&(c.props.form=o);let d={},u=!R,w=0;for(let f=0;fo(new URL(s))))return!0;return!1}function Ht(t,e){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?e??null:null}function _n(t,e){if(!t)return new Set(e.searchParams.keys());const n=new Set([...t.searchParams.keys(),...e.searchParams.keys()]);for(const a of n){const r=t.searchParams.getAll(a),i=e.searchParams.getAll(a);r.every(s=>i.includes(s))&&i.every(s=>r.includes(s))&&n.delete(a)}return n}function wn({error:t,url:e,route:n,params:a}){return{type:"loaded",state:{error:t,url:e,route:n,params:a,branch:[]},props:{page:Zt(R),constructors:[]}}}async function Oe({id:t,invalidating:e,url:n,params:a,route:r,preload:i}){if((y==null?void 0:y.id)===t)return kt.delete(y.token),y.promise;const{errors:s,layouts:o,leaf:l}=r,c=[...o,l];s.forEach(h=>h==null?void 0:h().catch(()=>{})),c.forEach(h=>h==null?void 0:h[1]().catch(()=>{}));const d=_.url?t!==Et(_.url):!1,u=_.route?r.id!==_.route.id:!1,w=_n(_.url,n);let p=!1;const f=c.map(async(h,g)=>{var $;if(!h)return;const b=_.branch[g];return h[1]===(b==null?void 0:b.loader)&&!mn(p,u,d,w,($=b.universal)==null?void 0:$.uses,a)?b:(p=!0,Yt({loader:h[1],url:n,params:a,route:r,parent:async()=>{var pt;const N={};for(let K=0;K{});const m=[];for(let h=0;hPromise.resolve({}),server_data_node:Ht(i)}),o={node:await wt(),loader:wt,universal:null,server:null,data:null};return St({url:n,params:r,branch:[s,o],status:t,error:e,errors:[],route:null})}catch(s){if(s instanceof Kt)return hn(new URL(s.location,location.href),{},0);throw s}}async function yn(t){const e=t.href;if(gt.has(e))return gt.get(e);let n;try{const a=(async()=>{let r=await S.hooks.reroute({url:new URL(t),fetch:async(i,s)=>gn(i,s,t).promise})??t;if(typeof r=="string"){const i=new URL(t);S.hash?i.hash=r:i.pathname=r,r=i}return r})();gt.set(e,a),n=await a}catch{gt.delete(e);return}return n}async function xt(t,e){if(t&&!Rt(t,A,S.hash)){const n=await yn(t);if(!n)return;const a=bn(n);for(const r of Wt){const i=r.exec(a);if(i)return{id:Et(t),invalidating:e,route:r,params:Ke(i),url:t}}}}function bn(t){return Ve(S.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(A.length))||"/"}function Et(t){return(S.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function Pe({url:t,type:e,intent:n,delta:a,event:r,scroll:i}){let s=!1;const o=Qt(_,n,t,e,i??null);a!==void 0&&(o.navigation.delta=a),r!==void 0&&(o.navigation.event=r);const l={...o.navigation,cancel:()=>{s=!0,o.reject(new Error("navigation cancelled"))}};return nt||Re.forEach(c=>c(l)),s?null:o}async function F({type:t,url:e,popped:n,keepfocus:a,noscroll:r,replace_state:i,state:s={},redirect_count:o=0,nav_token:l={},accept:c=se,block:d=se,event:u}){var K;const w=D;D=l;const p=await xt(e,!1),f=t==="enter"?Qt(_,p,e,t):Pe({url:e,type:t,delta:n==null?void 0:n.delta,intent:p,scroll:n==null?void 0:n.scroll,event:u});if(!f){d(),D===l&&(D=w);return}const m=k,h=L;c(),nt=!0,bt&&f.navigation.type!=="enter"&&C.navigating.set(Z.current=f.navigation);let g=p&&await Oe(p);if(!g){if(Rt(e,A,S.hash))return await et(e,i);g=await $e(e,{id:null},await rt(new Bt(404,"Not Found",`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404,i)}if(e=(p==null?void 0:p.url)||e,D!==l)return f.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(o<20){await F({type:t,url:new URL(g.location,e),popped:n,keepfocus:a,noscroll:r,replace_state:i,state:s,redirect_count:o+1,nav_token:l}),f.fulfil(void 0);return}g=await Xt({status:500,error:await rt(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}})}else g.props.page.status>=400&&await C.updated.check()&&(await Ee(),await et(e,i));if(dn(),Gt(m),Ue(h),g.props.page.url.pathname!==e.pathname&&(e.pathname=g.props.page.url.pathname),s=n?n.state:s,!n){const E=i?0:1,G={[z]:k+=E,[Q]:L+=E,[we]:s};(i?history.replaceState:history.pushState).call(history,G,"",e),i||fn(k,L)}const b=p&&(y==null?void 0:y.id)===p.id?y.fork:null;y=null,g.props.page.state=s;let x;if(bt){const E=(await Promise.all(Array.from(un,W=>W(f.navigation)))).filter(W=>typeof W=="function");if(E.length>0){let W=function(){E.forEach(At=>{X.delete(At)})};E.push(W),E.forEach(At=>{X.add(At)})}const G=f.navigation.to;_={...g.state,nav:{params:G.params,route:G.route,url:G.url}},g.props.page&&(g.props.page.url=e);const Lt=b&&await b;Lt?x=Lt.commit():(J=null,Ae.$set(g.props),J&&Object.assign(g.props.page,J),ln(g.props.page),x=(K=qe)==null?void 0:K()),Le=!0}else await Ie(g,jt,!1);const{activeElement:$}=document;await x,await mt(),await mt();let N=null;if(ie){const E=n?n.scroll:r?V():null;E?scrollTo(E.x,E.y):(N=e.hash&&document.getElementById(Ce(e)))?N.scrollIntoView():scrollTo(0,0)}const pt=document.activeElement!==$&&document.activeElement!==document.body;!a&&!pt&&Ln(e,!N),ie=!0,g.props.page&&(J&&Object.assign(g.props.page,J),Object.assign(R,g.props.page)),nt=!1,t==="popstate"&&Te(L),f.fulfil(void 0),f.navigation.to&&(f.navigation.to.scroll=V()),X.forEach(E=>E(f.navigation)),C.navigating.set(Z.current=null)}async function $e(t,e,n,a,r){return t.origin===zt&&t.pathname===location.pathname&&!xe?await Xt({status:a,error:n,url:t,route:e}):await et(t,r)}function kn(){let t,e={element:void 0,href:void 0},n;P.addEventListener("mousemove",o=>{const l=o.target;clearTimeout(t),t=setTimeout(()=>{i(l,q.hover)},20)});function a(o){o.defaultPrevented||i(o.composedPath()[0],q.tap)}P.addEventListener("mousedown",a),P.addEventListener("touchstart",a,{passive:!0});const r=new IntersectionObserver(o=>{for(const l of o)l.isIntersecting&&(Pt(new URL(l.target.href)),r.unobserve(l.target))},{threshold:0});async function i(o,l){const c=be(o,P),d=c===e.element&&(c==null?void 0:c.href)===e.href&&l>=n;if(!c||d)return;const{url:u,external:w,download:p}=$t(c,A,S.hash);if(w||p)return;const f=_t(c),m=u&&Et(_.url)===Et(u);if(!(f.reload||m))if(l<=f.preload_data){e={element:c,href:c.href},n=q.tap;const h=await xt(u,!1);if(!h)return;pn(h)}else l<=f.preload_code&&(e={element:c,href:c.href},n=l,Pt(u))}function s(){r.disconnect();for(const o of P.querySelectorAll("a")){const{url:l,external:c,download:d}=$t(o,A,S.hash);if(c||d)continue;const u=_t(o);u.reload||(u.preload_code===q.viewport&&r.observe(o),u.preload_code===q.eager&&Pt(l))}}X.add(s),s()}function rt(t,e){if(t instanceof Vt)return t.body;const n=Ft(t),a=on(t);return S.hooks.handleError({error:t,event:e,status:n,message:a})??{message:a}}function Sn(t){if(typeof t=="function")vt.push(t);else{const{href:e}=new URL(t,location.href);vt.push(n=>n.href===e)}}function En(){var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let a=!1;if(ce(),!nt){const r=Qt(_,void 0,null,"leave"),i={...r.navigation,cancel:()=>{a=!0,r.reject(new Error("navigation cancelled"))}};Re.forEach(s=>s(i))}a?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ce()}),(e=navigator.connection)!=null&&e.saveData||kn(),P.addEventListener("click",async n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const a=be(n.composedPath()[0],P);if(!a)return;const{url:r,external:i,target:s,download:o}=$t(a,A,S.hash);if(!r)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const l=_t(a);if(!(a instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||o)return;const[d,u]=(S.hash?r.hash.replace(/^#/,""):r.href).split("#"),w=d===Tt(location);if(i||l.reload&&(!w||!u)){Pe({url:r,type:"link",event:n})?nt=!0:n.preventDefault();return}if(u!==void 0&&w){const[,p]=_.url.href.split("#");if(p===u){if(n.preventDefault(),u===""||u==="top"&&a.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const f=a.ownerDocument.getElementById(decodeURIComponent(u));f&&(f.scrollIntoView(),f.focus())}return}if(Y=!0,Gt(k),t(r),!l.replace_state)return;Y=!1}n.preventDefault(),await new Promise(p=>{requestAnimationFrame(()=>{setTimeout(p,0)}),setTimeout(p,100)}),await F({type:"link",url:r,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??r.href===location.href,event:n})}),P.addEventListener("submit",n=>{if(n.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(n.target),r=n.submitter;if(((r==null?void 0:r.formTarget)||a.target)==="_blank"||((r==null?void 0:r.formMethod)||a.method)!=="get")return;const o=new URL((r==null?void 0:r.hasAttribute("formaction"))&&(r==null?void 0:r.formAction)||a.action);if(Rt(o,A,!1))return;const l=n.target,c=_t(l);if(c.reload)return;n.preventDefault(),n.stopPropagation();const d=new FormData(l,r);o.search=new URLSearchParams(d).toString(),F({type:"form",url:o,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??o.href===location.href,event:n})}),addEventListener("popstate",async n=>{var a;if(!qt){if((a=n.state)!=null&&a[z]){const r=n.state[z];if(D={},r===k)return;const i=j[r],s=n.state[we]??{},o=new URL(n.state[en]??location.href),l=n.state[Q],c=_.url?Tt(location)===Tt(_.url):!1;if(l===L&&(Le||c)){s!==R.state&&(R.state=s),t(o),j[k]=V(),i&&scrollTo(i.x,i.y),k=r;return}const u=r-k;await F({type:"popstate",url:o,popped:{state:s,scroll:i,delta:u},accept:()=>{k=r,L=l},block:()=>{history.go(-u)},nav_token:D,event:n})}else if(!Y){const r=new URL(location.href);t(r),S.hash&&location.reload()}}}),addEventListener("hashchange",()=>{Y&&(Y=!1,history.replaceState({...history.state,[z]:++k,[Q]:L},"",location.href))});for(const n of document.querySelectorAll("link"))cn.has(n.rel)&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&C.navigating.set(Z.current=null)});function t(n){_.url=R.url=n,C.page.set(Zt(R)),C.page.notify()}}async function Rn(t,{status:e=200,error:n,node_ids:a,params:r,route:i,server_route:s,data:o,form:l}){xe=!0;const c=new URL(location.href);let d;({params:r={},route:i={id:null}}=await xt(c,!1)||{}),d=Wt.find(({id:p})=>p===i.id);let u,w=!0;try{const p=a.map(async(m,h)=>{const g=o[h];return g!=null&&g.uses&&(g.uses=xn(g.uses)),Yt({loader:S.nodes[m],url:c,params:r,route:i,parent:async()=>{const b={};for(let x=0;x{const o=history.state;qt=!0,location.replace(new URL(`#${a}`,location.href)),history.replaceState(o,"",t),e&&scrollTo(i,s),qt=!1})}else{const i=document.body,s=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),s!==null?i.setAttribute("tabindex",s):i.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const i=[];for(let s=0;s{if(r.rangeCount===i.length){for(let s=0;s{i=u,s=w});return o.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url,scroll:V()},to:n&&{params:(e==null?void 0:e.params)??null,route:{id:((d=e==null?void 0:e.route)==null?void 0:d.id)??null},url:n,scroll:r},willUnload:!e,type:a,complete:o},fulfil:i,reject:s}}function Zt(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function An(t){const e=new URL(t);return e.hash=decodeURIComponent(t.hash),e}function Ce(t){let e;if(S.hash){const[,,n]=t.hash.split("#",3);e=n??""}else e=t.hash.slice(1);return decodeURIComponent(e)}export{jn as a,On as l,R as p,C as s}; diff --git a/frontend/dist/_app/immutable/chunks/eeJ2SmtH.js b/frontend/dist/_app/immutable/chunks/eeJ2SmtH.js new file mode 100644 index 0000000..1980122 --- /dev/null +++ b/frontend/dist/_app/immutable/chunks/eeJ2SmtH.js @@ -0,0 +1 @@ +var te=t=>{throw TypeError(t)};var je=(t,e,n)=>e.has(t)||te("Cannot "+n);var v=(t,e,n)=>(je(t,e,"read from private field"),n?n.call(t):e.get(t)),U=(t,e,n)=>e.has(t)?te("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{bf as Ut,bg as Ne,aK as T,o as I,$ as O,aJ as mt,bh as qe}from"./VJhVTb1A.js";import{o as ee}from"./Cz6m6K8p.js";const B=[];function Dt(t,e=Ut){let n=null;const a=new Set;function r(o){if(Ne(t,o)&&(t=o,n)){const l=!B.length;for(const c of a)c[1](),B.push(c,t);if(l){for(let c=0;c{a.delete(c),a.size===0&&n&&(n(),n=null)}}return{set:r,update:i,subscribe:s}}class Vt{constructor(e,n){this.status=e,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}}class Kt{constructor(e,n){this.status=e,this.location=n}}class Bt extends Error{constructor(e,n,a){super(a),this.status=e,this.text=n}}new URL("sveltekit-internal://");function De(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function Ve(t){return t.split("%25").map(decodeURI).join("%25")}function Ke(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function Tt({href:t}){return t.split("#")[0]}function Be(...t){let e=5381;for(const n of t)if(typeof n=="string"){let a=n.length;for(;a;)e=e*33^n.charCodeAt(--a)}else if(ArrayBuffer.isView(n)){const a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=a.length;for(;r;)e=e*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;new TextDecoder;function Me(t){const e=atob(t),n=new Uint8Array(e.length);for(let a=0;a((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&H.delete(Mt(t)),ze(t,e));const H=new Map;function Fe(t,e){const n=Mt(t,e),a=document.querySelector(n);if(a!=null&&a.textContent){a.remove();let{body:r,...i}=JSON.parse(a.textContent);const s=a.getAttribute("data-ttl");return s&&H.set(n,{body:r,init:i,ttl:1e3*Number(s)}),a.getAttribute("data-b64")!==null&&(r=Me(r)),Promise.resolve(new Response(r,i))}return window.fetch(t,e)}function Ge(t,e,n){if(H.size>0){const a=Mt(t,n),r=H.get(a);if(r){if(performance.now(){const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return e.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(i)return e.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const s=a.split(/\[(.+?)\](?!\])/);return"/"+s.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return It(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return It(String.fromCharCode(...l.slice(2).split("-").map(m=>parseInt(m,16))));const d=We.exec(l),[,u,w,p,f]=d;return e.push({name:p,matcher:f,optional:!!u,rest:!!w,chained:w?c===1&&s[0]==="":!1}),w?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return It(l)}).join("")}).join("")}/?$`),params:e}}function Ye(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function He(t){return t.slice(1).split("/").filter(Ye)}function Xe(t,e,n){const a={},r=t.slice(1),i=r.filter(o=>o!==void 0);let s=0;for(let o=0;od).join("/"),s=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){a[l.name]=c;const d=e[o+1],u=r[o+1];d&&!d.rest&&d.optional&&u&&l.chained&&(s=0),!d&&!u&&Object.keys(a).length===i.length&&(s=0);continue}if(l.optional&&l.chained){s++;continue}return}if(!s)return a}function It(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Qe({nodes:t,server_loads:e,dictionary:n,matchers:a}){const r=new Set(e);return Object.entries(n).map(([o,[l,c,d]])=>{const{pattern:u,params:w}=Je(o),p={id:o,exec:f=>{const m=u.exec(f);if(m)return Xe(m,w,a)},errors:[1,...d||[]].map(f=>t[f]),layouts:[0,...c||[]].map(s),leaf:i(l)};return p.errors.length=p.layouts.length=Math.max(p.errors.length,p.layouts.length),p});function i(o){const l=o<0;return l&&(o=~o),[l,t[o]]}function s(o){return o===void 0?o:[r.has(o),t[o]]}}function ge(t,e=JSON.parse){try{return e(sessionStorage[t])}catch{}}function ne(t,e,n=JSON.stringify){const a=n(e);try{sessionStorage[t]=a}catch{}}var fe;const A=((fe=globalThis.__sveltekit_134ve28)==null?void 0:fe.base)??"";var ue;const Ze=((ue=globalThis.__sveltekit_134ve28)==null?void 0:ue.assets)??A??"",tn="1785259782195",me="sveltekit:snapshot",_e="sveltekit:scroll",we="sveltekit:states",en="sveltekit:pageurl",z="sveltekit:history",Q="sveltekit:navigation",q={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},zt=location.origin;function ve(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function V(){return{x:pageXOffset,y:pageYOffset}}function M(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const re={...q,"":q.hover};function ye(t){let e=t.assignedSlot??t.parentNode;return(e==null?void 0:e.nodeType)===11&&(e=e.host),e}function be(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=ye(t)}}function $t(t,e,n){let a;try{if(a=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI),n&&a.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";a.hash=`#${o}${a.hash}`}}catch{}const r=t instanceof SVGAElement?t.target.baseVal:t.target,i=!a||!!r||Rt(a,e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),s=(a==null?void 0:a.origin)===zt&&t.hasAttribute("download");return{url:a,external:i,target:r,download:s}}function _t(t){let e=null,n=null,a=null,r=null,i=null,s=null,o=t;for(;o&&o!==document.documentElement;)a===null&&(a=M(o,"preload-code")),r===null&&(r=M(o,"preload-data")),e===null&&(e=M(o,"keepfocus")),n===null&&(n=M(o,"noscroll")),i===null&&(i=M(o,"reload")),s===null&&(s=M(o,"replacestate")),o=ye(o);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:re[a??"off"],preload_data:re[r??"off"],keepfocus:l(e),noscroll:l(n),reload:l(i),replace_state:l(s)}}function ae(t){const e=Dt(t);let n=!0;function a(){n=!0,e.update(s=>s)}function r(s){n=!1,e.set(s)}function i(s){let o;return e.subscribe(l=>{(o===void 0||n&&l!==o)&&s(o=l)})}return{notify:a,set:r,subscribe:i}}const ke={v:()=>{}};function nn(){const{set:t,subscribe:e}=Dt(!1);let n;async function a(){clearTimeout(n);try{const r=await fetch(`${Ze}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const s=(await r.json()).version!==tn;return s&&(t(!0),ke.v(),clearTimeout(n)),s}catch{return!1}}return{subscribe:e,check:a}}function Rt(t,e,n){return t.origin!==zt||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function On(t){}const Se=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...Se];const rn=new Set([...Se]);[...rn];function an(t){return t.filter(e=>e!=null)}function Ft(t){return t instanceof Vt||t instanceof Bt?t.status:500}function on(t){return t instanceof Bt?t.text:"Internal Error"}let R,Z,Ot;const sn=ee.toString().includes("$$")||/function \w+\(\) \{\}/.test(ee.toString()),oe="a:";var at,ot,st,it,lt,ct,ft,ut,de,dt,he,ht,pe;sn?(R={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(oe)},Z={current:null},Ot={current:!1}):(R=new(de=class{constructor(){U(this,at,T({}));U(this,ot,T(null));U(this,st,T(null));U(this,it,T({}));U(this,lt,T({id:null}));U(this,ct,T({}));U(this,ft,T(-1));U(this,ut,T(new URL(oe)))}get data(){return I(v(this,at))}set data(e){O(v(this,at),e)}get form(){return I(v(this,ot))}set form(e){O(v(this,ot),e)}get error(){return I(v(this,st))}set error(e){O(v(this,st),e)}get params(){return I(v(this,it))}set params(e){O(v(this,it),e)}get route(){return I(v(this,lt))}set route(e){O(v(this,lt),e)}get state(){return I(v(this,ct))}set state(e){O(v(this,ct),e)}get status(){return I(v(this,ft))}set status(e){O(v(this,ft),e)}get url(){return I(v(this,ut))}set url(e){O(v(this,ut),e)}},at=new WeakMap,ot=new WeakMap,st=new WeakMap,it=new WeakMap,lt=new WeakMap,ct=new WeakMap,ft=new WeakMap,ut=new WeakMap,de),Z=new(he=class{constructor(){U(this,dt,T(null))}get current(){return I(v(this,dt))}set current(e){O(v(this,dt),e)}},dt=new WeakMap,he),Ot=new(pe=class{constructor(){U(this,ht,T(!1))}get current(){return I(v(this,ht))}set current(e){O(v(this,ht),e)}},ht=new WeakMap,pe),ke.v=()=>Ot.current=!0);function ln(t){Object.assign(R,t)}const cn=new Set(["icon","shortcut icon","apple-touch-icon"]);let J=null;const j=ge(_e)??{},tt=ge(me)??{},C={url:ae({}),page:ae({}),navigating:Dt(null),updated:nn()};function Gt(t){j[t]=V()}function fn(t,e){let n=t+1;for(;j[n];)delete j[n],n+=1;for(n=e+1;tt[n];)delete tt[n],n+=1}function et(t,e=!1){return e?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function Ee(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(A||"/");t&&await t.update()}}function se(){}let Wt,Ct,wt,P,jt,S;const vt=[],yt=[];let y=null;function Nt(){var t;(t=y==null?void 0:y.fork)==null||t.then(e=>e==null?void 0:e.discard()),y=null}const gt=new Map,Re=new Set,un=new Set,X=new Set;let _={branch:[],error:null,url:null},xe=!1,bt=!1,ie=!0,nt=!1,Y=!1,Le=!1,Jt=!1,Ae,k,L,D;const kt=new Set,le=new Map;async function jn(t,e,n){var i,s,o,l,c;(i=globalThis.__sveltekit_134ve28)!=null&&i.data&&globalThis.__sveltekit_134ve28.data,document.URL!==location.href&&(location.href=location.href),S=t,await((o=(s=t.hooks).init)==null?void 0:o.call(s)),Wt=Qe(t),P=document.documentElement,jt=e,Ct=t.nodes[0],wt=t.nodes[1],Ct(),wt(),k=(l=history.state)==null?void 0:l[z],L=(c=history.state)==null?void 0:c[Q],k||(k=L=Date.now(),history.replaceState({...history.state,[z]:k,[Q]:L},""));const a=j[k];function r(){a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y))}n?(r(),await Rn(jt,n)):(await F({type:"enter",url:ve(S.hash?An(new URL(location.href)):location.href),replace_state:!0}),r()),En()}function dn(){vt.length=0,Jt=!1}function Ue(t){yt.some(e=>e==null?void 0:e.snapshot)&&(tt[t]=yt.map(e=>{var n;return(n=e==null?void 0:e.snapshot)==null?void 0:n.capture()}))}function Te(t){var e;(e=tt[t])==null||e.forEach((n,a)=>{var r,i;(i=(r=yt[a])==null?void 0:r.snapshot)==null||i.restore(n)})}function ce(){Gt(k),ne(_e,j),Ue(L),ne(me,tt)}async function hn(t,e,n,a){let r;e.invalidateAll&&Nt(),await F({type:"goto",url:ve(t),keepfocus:e.keepFocus,noscroll:e.noScroll,replace_state:e.replaceState,state:e.state,redirect_count:n,nav_token:a,accept:()=>{e.invalidateAll&&(Jt=!0,r=[...le.keys()]),e.invalidate&&e.invalidate.forEach(Sn)}}),e.invalidateAll&&mt().then(mt).then(()=>{le.forEach(({resource:i},s)=>{var o;r!=null&&r.includes(s)&&((o=i.refresh)==null||o.call(i))})})}async function pn(t){if(t.id!==(y==null?void 0:y.id)){Nt();const e={};kt.add(e),y={id:t.id,token:e,promise:Oe({...t,preload:e}).then(n=>(kt.delete(e),n.type==="loaded"&&n.state.error&&Nt(),n)),fork:null}}return y.promise}async function Pt(t){var n;const e=(n=await xt(t,!1))==null?void 0:n.route;e&&await Promise.all([...e.layouts,e.leaf].filter(Boolean).map(a=>a[1]()))}async function Ie(t,e,n){var i;const a={params:_.params,route:{id:((i=_.route)==null?void 0:i.id)??null},url:new URL(location.href)};_={...t.state,nav:a};const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(R,t.props.page),Ae=new S.root({target:e,props:{...t.props,stores:C,components:yt},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),Te(L),n){const s={from:null,to:{...a,scroll:j[k]??V()},willUnload:!1,type:"enter",complete:Promise.resolve()};X.forEach(o=>o(s))}bt=!0}async function St({url:t,params:e,branch:n,errors:a,status:r,error:i,route:s,form:o}){let l="never";if(A&&(t.pathname===A||t.pathname===A+"/"))l="always";else for(const f of n)(f==null?void 0:f.slash)!==void 0&&(l=f.slash);t.pathname=De(t.pathname,l),t.search=t.search;const c={type:"loaded",state:{url:t,params:e,branch:n,error:i,route:s},props:{constructors:an(n).map(f=>f.node.component),page:Zt(R)}};o!==void 0&&(c.props.form=o);let d={},u=!R,w=0;for(let f=0;fo(new URL(s))))return!0;return!1}function Ht(t,e){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?e??null:null}function _n(t,e){if(!t)return new Set(e.searchParams.keys());const n=new Set([...t.searchParams.keys(),...e.searchParams.keys()]);for(const a of n){const r=t.searchParams.getAll(a),i=e.searchParams.getAll(a);r.every(s=>i.includes(s))&&i.every(s=>r.includes(s))&&n.delete(a)}return n}function wn({error:t,url:e,route:n,params:a}){return{type:"loaded",state:{error:t,url:e,route:n,params:a,branch:[]},props:{page:Zt(R),constructors:[]}}}async function Oe({id:t,invalidating:e,url:n,params:a,route:r,preload:i}){if((y==null?void 0:y.id)===t)return kt.delete(y.token),y.promise;const{errors:s,layouts:o,leaf:l}=r,c=[...o,l];s.forEach(h=>h==null?void 0:h().catch(()=>{})),c.forEach(h=>h==null?void 0:h[1]().catch(()=>{}));const d=_.url?t!==Et(_.url):!1,u=_.route?r.id!==_.route.id:!1,w=_n(_.url,n);let p=!1;const f=c.map(async(h,g)=>{var $;if(!h)return;const b=_.branch[g];return h[1]===(b==null?void 0:b.loader)&&!mn(p,u,d,w,($=b.universal)==null?void 0:$.uses,a)?b:(p=!0,Yt({loader:h[1],url:n,params:a,route:r,parent:async()=>{var pt;const N={};for(let K=0;K{});const m=[];for(let h=0;hPromise.resolve({}),server_data_node:Ht(i)}),o={node:await wt(),loader:wt,universal:null,server:null,data:null};return St({url:n,params:r,branch:[s,o],status:t,error:e,errors:[],route:null})}catch(s){if(s instanceof Kt)return hn(new URL(s.location,location.href),{},0);throw s}}async function yn(t){const e=t.href;if(gt.has(e))return gt.get(e);let n;try{const a=(async()=>{let r=await S.hooks.reroute({url:new URL(t),fetch:async(i,s)=>gn(i,s,t).promise})??t;if(typeof r=="string"){const i=new URL(t);S.hash?i.hash=r:i.pathname=r,r=i}return r})();gt.set(e,a),n=await a}catch{gt.delete(e);return}return n}async function xt(t,e){if(t&&!Rt(t,A,S.hash)){const n=await yn(t);if(!n)return;const a=bn(n);for(const r of Wt){const i=r.exec(a);if(i)return{id:Et(t),invalidating:e,route:r,params:Ke(i),url:t}}}}function bn(t){return Ve(S.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(A.length))||"/"}function Et(t){return(S.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function Pe({url:t,type:e,intent:n,delta:a,event:r,scroll:i}){let s=!1;const o=Qt(_,n,t,e,i??null);a!==void 0&&(o.navigation.delta=a),r!==void 0&&(o.navigation.event=r);const l={...o.navigation,cancel:()=>{s=!0,o.reject(new Error("navigation cancelled"))}};return nt||Re.forEach(c=>c(l)),s?null:o}async function F({type:t,url:e,popped:n,keepfocus:a,noscroll:r,replace_state:i,state:s={},redirect_count:o=0,nav_token:l={},accept:c=se,block:d=se,event:u}){var K;const w=D;D=l;const p=await xt(e,!1),f=t==="enter"?Qt(_,p,e,t):Pe({url:e,type:t,delta:n==null?void 0:n.delta,intent:p,scroll:n==null?void 0:n.scroll,event:u});if(!f){d(),D===l&&(D=w);return}const m=k,h=L;c(),nt=!0,bt&&f.navigation.type!=="enter"&&C.navigating.set(Z.current=f.navigation);let g=p&&await Oe(p);if(!g){if(Rt(e,A,S.hash))return await et(e,i);g=await $e(e,{id:null},await rt(new Bt(404,"Not Found",`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404,i)}if(e=(p==null?void 0:p.url)||e,D!==l)return f.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(o<20){await F({type:t,url:new URL(g.location,e),popped:n,keepfocus:a,noscroll:r,replace_state:i,state:s,redirect_count:o+1,nav_token:l}),f.fulfil(void 0);return}g=await Xt({status:500,error:await rt(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}})}else g.props.page.status>=400&&await C.updated.check()&&(await Ee(),await et(e,i));if(dn(),Gt(m),Ue(h),g.props.page.url.pathname!==e.pathname&&(e.pathname=g.props.page.url.pathname),s=n?n.state:s,!n){const E=i?0:1,G={[z]:k+=E,[Q]:L+=E,[we]:s};(i?history.replaceState:history.pushState).call(history,G,"",e),i||fn(k,L)}const b=p&&(y==null?void 0:y.id)===p.id?y.fork:null;y=null,g.props.page.state=s;let x;if(bt){const E=(await Promise.all(Array.from(un,W=>W(f.navigation)))).filter(W=>typeof W=="function");if(E.length>0){let W=function(){E.forEach(At=>{X.delete(At)})};E.push(W),E.forEach(At=>{X.add(At)})}const G=f.navigation.to;_={...g.state,nav:{params:G.params,route:G.route,url:G.url}},g.props.page&&(g.props.page.url=e);const Lt=b&&await b;Lt?x=Lt.commit():(J=null,Ae.$set(g.props),J&&Object.assign(g.props.page,J),ln(g.props.page),x=(K=qe)==null?void 0:K()),Le=!0}else await Ie(g,jt,!1);const{activeElement:$}=document;await x,await mt(),await mt();let N=null;if(ie){const E=n?n.scroll:r?V():null;E?scrollTo(E.x,E.y):(N=e.hash&&document.getElementById(Ce(e)))?N.scrollIntoView():scrollTo(0,0)}const pt=document.activeElement!==$&&document.activeElement!==document.body;!a&&!pt&&Ln(e,!N),ie=!0,g.props.page&&(J&&Object.assign(g.props.page,J),Object.assign(R,g.props.page)),nt=!1,t==="popstate"&&Te(L),f.fulfil(void 0),f.navigation.to&&(f.navigation.to.scroll=V()),X.forEach(E=>E(f.navigation)),C.navigating.set(Z.current=null)}async function $e(t,e,n,a,r){return t.origin===zt&&t.pathname===location.pathname&&!xe?await Xt({status:a,error:n,url:t,route:e}):await et(t,r)}function kn(){let t,e={element:void 0,href:void 0},n;P.addEventListener("mousemove",o=>{const l=o.target;clearTimeout(t),t=setTimeout(()=>{i(l,q.hover)},20)});function a(o){o.defaultPrevented||i(o.composedPath()[0],q.tap)}P.addEventListener("mousedown",a),P.addEventListener("touchstart",a,{passive:!0});const r=new IntersectionObserver(o=>{for(const l of o)l.isIntersecting&&(Pt(new URL(l.target.href)),r.unobserve(l.target))},{threshold:0});async function i(o,l){const c=be(o,P),d=c===e.element&&(c==null?void 0:c.href)===e.href&&l>=n;if(!c||d)return;const{url:u,external:w,download:p}=$t(c,A,S.hash);if(w||p)return;const f=_t(c),m=u&&Et(_.url)===Et(u);if(!(f.reload||m))if(l<=f.preload_data){e={element:c,href:c.href},n=q.tap;const h=await xt(u,!1);if(!h)return;pn(h)}else l<=f.preload_code&&(e={element:c,href:c.href},n=l,Pt(u))}function s(){r.disconnect();for(const o of P.querySelectorAll("a")){const{url:l,external:c,download:d}=$t(o,A,S.hash);if(c||d)continue;const u=_t(o);u.reload||(u.preload_code===q.viewport&&r.observe(o),u.preload_code===q.eager&&Pt(l))}}X.add(s),s()}function rt(t,e){if(t instanceof Vt)return t.body;const n=Ft(t),a=on(t);return S.hooks.handleError({error:t,event:e,status:n,message:a})??{message:a}}function Sn(t){if(typeof t=="function")vt.push(t);else{const{href:e}=new URL(t,location.href);vt.push(n=>n.href===e)}}function En(){var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let a=!1;if(ce(),!nt){const r=Qt(_,void 0,null,"leave"),i={...r.navigation,cancel:()=>{a=!0,r.reject(new Error("navigation cancelled"))}};Re.forEach(s=>s(i))}a?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ce()}),(e=navigator.connection)!=null&&e.saveData||kn(),P.addEventListener("click",async n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const a=be(n.composedPath()[0],P);if(!a)return;const{url:r,external:i,target:s,download:o}=$t(a,A,S.hash);if(!r)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const l=_t(a);if(!(a instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||o)return;const[d,u]=(S.hash?r.hash.replace(/^#/,""):r.href).split("#"),w=d===Tt(location);if(i||l.reload&&(!w||!u)){Pe({url:r,type:"link",event:n})?nt=!0:n.preventDefault();return}if(u!==void 0&&w){const[,p]=_.url.href.split("#");if(p===u){if(n.preventDefault(),u===""||u==="top"&&a.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const f=a.ownerDocument.getElementById(decodeURIComponent(u));f&&(f.scrollIntoView(),f.focus())}return}if(Y=!0,Gt(k),t(r),!l.replace_state)return;Y=!1}n.preventDefault(),await new Promise(p=>{requestAnimationFrame(()=>{setTimeout(p,0)}),setTimeout(p,100)}),await F({type:"link",url:r,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??r.href===location.href,event:n})}),P.addEventListener("submit",n=>{if(n.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(n.target),r=n.submitter;if(((r==null?void 0:r.formTarget)||a.target)==="_blank"||((r==null?void 0:r.formMethod)||a.method)!=="get")return;const o=new URL((r==null?void 0:r.hasAttribute("formaction"))&&(r==null?void 0:r.formAction)||a.action);if(Rt(o,A,!1))return;const l=n.target,c=_t(l);if(c.reload)return;n.preventDefault(),n.stopPropagation();const d=new FormData(l,r);o.search=new URLSearchParams(d).toString(),F({type:"form",url:o,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??o.href===location.href,event:n})}),addEventListener("popstate",async n=>{var a;if(!qt){if((a=n.state)!=null&&a[z]){const r=n.state[z];if(D={},r===k)return;const i=j[r],s=n.state[we]??{},o=new URL(n.state[en]??location.href),l=n.state[Q],c=_.url?Tt(location)===Tt(_.url):!1;if(l===L&&(Le||c)){s!==R.state&&(R.state=s),t(o),j[k]=V(),i&&scrollTo(i.x,i.y),k=r;return}const u=r-k;await F({type:"popstate",url:o,popped:{state:s,scroll:i,delta:u},accept:()=>{k=r,L=l},block:()=>{history.go(-u)},nav_token:D,event:n})}else if(!Y){const r=new URL(location.href);t(r),S.hash&&location.reload()}}}),addEventListener("hashchange",()=>{Y&&(Y=!1,history.replaceState({...history.state,[z]:++k,[Q]:L},"",location.href))});for(const n of document.querySelectorAll("link"))cn.has(n.rel)&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&C.navigating.set(Z.current=null)});function t(n){_.url=R.url=n,C.page.set(Zt(R)),C.page.notify()}}async function Rn(t,{status:e=200,error:n,node_ids:a,params:r,route:i,server_route:s,data:o,form:l}){xe=!0;const c=new URL(location.href);let d;({params:r={},route:i={id:null}}=await xt(c,!1)||{}),d=Wt.find(({id:p})=>p===i.id);let u,w=!0;try{const p=a.map(async(m,h)=>{const g=o[h];return g!=null&&g.uses&&(g.uses=xn(g.uses)),Yt({loader:S.nodes[m],url:c,params:r,route:i,parent:async()=>{const b={};for(let x=0;x{const o=history.state;qt=!0,location.replace(new URL(`#${a}`,location.href)),history.replaceState(o,"",t),e&&scrollTo(i,s),qt=!1})}else{const i=document.body,s=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),s!==null?i.setAttribute("tabindex",s):i.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const i=[];for(let s=0;s{if(r.rangeCount===i.length){for(let s=0;s{i=u,s=w});return o.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url,scroll:V()},to:n&&{params:(e==null?void 0:e.params)??null,route:{id:((d=e==null?void 0:e.route)==null?void 0:d.id)??null},url:n,scroll:r},willUnload:!e,type:a,complete:o},fulfil:i,reject:s}}function Zt(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function An(t){const e=new URL(t);return e.hash=decodeURIComponent(t.hash),e}function Ce(t){let e;if(S.hash){const[,,n]=t.hash.split("#",3);e=n??""}else e=t.hash.slice(1);return decodeURIComponent(e)}export{jn as a,On as l,R as p,C as s}; diff --git a/frontend/dist/_app/immutable/entry/app.CFH18tUV.js b/frontend/dist/_app/immutable/entry/app.BcimqTdT.js similarity index 94% rename from frontend/dist/_app/immutable/entry/app.CFH18tUV.js rename to frontend/dist/_app/immutable/entry/app.BcimqTdT.js index 16b7090..df3cf23 100644 --- a/frontend/dist/_app/immutable/entry/app.CFH18tUV.js +++ b/frontend/dist/_app/immutable/entry/app.BcimqTdT.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DecrOZwe.js","../chunks/C14P8jaG.js","../chunks/VJhVTb1A.js","../chunks/CiUbu-1F.js","../chunks/U5yjBaoU.js","../nodes/1.CrjZXtQm.js","../chunks/DmjnTBOd.js","../chunks/BeON-0X8.js","../chunks/B87JTjoX.js","../chunks/Cz6m6K8p.js","../nodes/2.VYoLrj39.js","../chunks/zf4GFcxs.js","../assets/2.DKE6ochW.css"])))=>i.map(i=>d[i]); -var H=t=>{throw TypeError(t)};var J=(t,e,s)=>e.has(t)||H("Cannot "+s);var l=(t,e,s)=>(J(t,e,"read from private field"),s?s.call(t):e.get(t)),S=(t,e,s)=>e.has(t)?H("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),C=(t,e,s,o)=>(J(t,e,"write to private field"),o?o.call(t,s):e.set(t,s),s);import{$ as L,ab as X,o as g,aH as Z,au as M,aI as N,x as $,u as ee,j as te,aJ as re,g as j,C as se,z as ae,aK as A,A as ne,B as oe,aL as B,y as ce}from"../chunks/VJhVTb1A.js";import{h as ie,m as le,u as ue,s as fe}from"../chunks/BeON-0X8.js";import{a as w,c as I,f as W,t as me}from"../chunks/C14P8jaG.js";import{o as de}from"../chunks/Cz6m6K8p.js";import{p as T,i as D,c as V,b as q}from"../chunks/zf4GFcxs.js";function he(t){return class extends _e{constructor(e){super({component:t,...e})}}}var y,m;class _e{constructor(e){S(this,y);S(this,m);var _;var s=new Map,o=(a,r)=>{var c=N(r,!1,!1);return s.set(a,c),c};const u=new Proxy({...e.props||{},$$events:{}},{get(a,r){return g(s.get(r)??o(r,Reflect.get(a,r)))},has(a,r){return r===X?!0:(g(s.get(r)??o(r,Reflect.get(a,r))),Reflect.has(a,r))},set(a,r,c){return L(s.get(r)??o(r,c),c),Reflect.set(a,r,c)}});C(this,m,(e.hydrate?ie:le)(e.component,{target:e.target,anchor:e.anchor,props:u,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError})),(!((_=e==null?void 0:e.props)!=null&&_.$$host)||e.sync===!1)&&Z(),C(this,y,u.$$events);for(const a of Object.keys(l(this,m)))a==="$set"||a==="$destroy"||a==="$on"||M(this,a,{get(){return l(this,m)[a]},set(r){l(this,m)[a]=r},enumerable:!0});l(this,m).$set=a=>{Object.assign(u,a)},l(this,m).$destroy=()=>{ue(l(this,m))}}$set(e){l(this,m).$set(e)}$on(e,s){l(this,y)[e]=l(this,y)[e]||[];const o=(...u)=>s.call(this,...u);return l(this,y)[e].push(o),()=>{l(this,y)[e]=l(this,y)[e].filter(u=>u!==o)}}$destroy(){l(this,m).$destroy()}}y=new WeakMap,m=new WeakMap;const ve="modulepreload",ge=function(t,e){return new URL(t,e).href},K={},U=function(e,s,o){let u=Promise.resolve();if(s&&s.length>0){let a=function(i){return Promise.all(i.map(v=>Promise.resolve(v).then(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};const r=document.getElementsByTagName("link"),c=document.querySelector("meta[property=csp-nonce]"),k=(c==null?void 0:c.nonce)||(c==null?void 0:c.getAttribute("nonce"));u=a(s.map(i=>{if(i=ge(i,o),i in K)return;K[i]=!0;const v=i.endsWith(".css"),b=v?'[rel="stylesheet"]':"";if(!!o)for(let n=r.length-1;n>=0;n--){const f=r[n];if(f.href===i&&(!v||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${b}`))return;const h=document.createElement("link");if(h.rel=v?"stylesheet":ve,v||(h.as="script"),h.crossOrigin="",h.href=i,k&&h.setAttribute("nonce",k),document.head.appendChild(h),v)return new Promise((n,f)=>{h.addEventListener("load",n),h.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${i}`)))})}))}function _(a){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=a,window.dispatchEvent(r),!r.defaultPrevented)throw a}return u.then(a=>{for(const r of a||[])r.status==="rejected"&&_(r.reason);return e().catch(_)})},Se={};var ye=W('
'),be=W(" ",1);function Ee(t,e){$(e,!0);let s=T(e,"components",23,()=>[]),o=T(e,"data_0",3,null),u=T(e,"data_1",3,null);ee(()=>e.stores.page.set(e.page)),te(()=>{e.stores,e.page,e.constructors,s(),e.form,o(),u(),e.stores.page.notify()});let _=A(!1),a=A(!1),r=A(null);de(()=>{const n=e.stores.page.subscribe(()=>{g(_)&&(L(a,!0),re().then(()=>{L(r,document.title||"untitled page",!0)}))});return L(_,!0),n});const c=B(()=>e.constructors[1]);var k=be(),i=j(k);{var v=n=>{const f=B(()=>e.constructors[0]);var E=I(),x=j(E);V(x,()=>g(f),(P,R)=>{q(R(P,{get data(){return o()},get form(){return e.form},get params(){return e.page.params},children:(d,Re)=>{var G=I(),p=j(G);V(p,()=>g(c),(F,Q)=>{q(Q(F,{get data(){return u()},get form(){return e.form},get params(){return e.page.params}}),O=>s()[1]=O,()=>{var O;return(O=s())==null?void 0:O[1]})}),w(d,G)},$$slots:{default:!0}}),d=>s()[0]=d,()=>{var d;return(d=s())==null?void 0:d[0]})}),w(n,E)},b=n=>{const f=B(()=>e.constructors[0]);var E=I(),x=j(E);V(x,()=>g(f),(P,R)=>{q(R(P,{get data(){return o()},get form(){return e.form},get params(){return e.page.params}}),d=>s()[0]=d,()=>{var d;return(d=s())==null?void 0:d[0]})}),w(n,E)};D(i,n=>{e.constructors[1]?n(v):n(b,-1)})}var z=se(i,2);{var h=n=>{var f=ye(),E=ne(f);{var x=P=>{var R=me();ce(()=>fe(R,g(r))),w(P,R)};D(E,P=>{g(a)&&P(x)})}oe(f),w(n,f)};D(z,n=>{g(_)&&n(h)})}w(t,k),ae()}const Ce=he(Ee),Ae=[()=>U(()=>import("../nodes/0.DecrOZwe.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>U(()=>import("../nodes/1.CrjZXtQm.js"),__vite__mapDeps([5,1,2,6,7,8,9]),import.meta.url),()=>U(()=>import("../nodes/2.VYoLrj39.js"),__vite__mapDeps([10,1,2,9,11,4,7,3,6,12]),import.meta.url)],Be=[],Ie={"/":[2]},Y={handleError:(({error:t})=>{console.error(t)}),reroute:(()=>{}),transport:{}},Pe=Object.fromEntries(Object.entries(Y.transport).map(([t,e])=>[t,e.decode])),Te=Object.fromEntries(Object.entries(Y.transport).map(([t,e])=>[t,e.encode])),De=!1,Ve=(t,e)=>Pe[t](e);export{Ve as decode,Pe as decoders,Ie as dictionary,Te as encoders,De as hash,Y as hooks,Se as matchers,Ae as nodes,Ce as root,Be as server_loads}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DecrOZwe.js","../chunks/C14P8jaG.js","../chunks/VJhVTb1A.js","../chunks/CiUbu-1F.js","../chunks/U5yjBaoU.js","../nodes/1.CqrNlNqJ.js","../chunks/DmjnTBOd.js","../chunks/BeON-0X8.js","../chunks/eeJ2SmtH.js","../chunks/Cz6m6K8p.js","../nodes/2.Cadsvez-.js","../chunks/zf4GFcxs.js","../assets/2.DKE6ochW.css"])))=>i.map(i=>d[i]); +var H=t=>{throw TypeError(t)};var J=(t,e,s)=>e.has(t)||H("Cannot "+s);var l=(t,e,s)=>(J(t,e,"read from private field"),s?s.call(t):e.get(t)),S=(t,e,s)=>e.has(t)?H("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),C=(t,e,s,o)=>(J(t,e,"write to private field"),o?o.call(t,s):e.set(t,s),s);import{$ as L,ab as X,o as g,aH as Z,au as M,aI as N,x as $,u as ee,j as te,aJ as re,g as j,C as se,z as ae,aK as A,A as ne,B as oe,aL as B,y as ce}from"../chunks/VJhVTb1A.js";import{h as ie,m as le,u as ue,s as fe}from"../chunks/BeON-0X8.js";import{a as w,c as I,f as W,t as me}from"../chunks/C14P8jaG.js";import{o as de}from"../chunks/Cz6m6K8p.js";import{p as T,i as D,c as V,b as q}from"../chunks/zf4GFcxs.js";function he(t){return class extends _e{constructor(e){super({component:t,...e})}}}var y,m;class _e{constructor(e){S(this,y);S(this,m);var _;var s=new Map,o=(a,r)=>{var c=N(r,!1,!1);return s.set(a,c),c};const u=new Proxy({...e.props||{},$$events:{}},{get(a,r){return g(s.get(r)??o(r,Reflect.get(a,r)))},has(a,r){return r===X?!0:(g(s.get(r)??o(r,Reflect.get(a,r))),Reflect.has(a,r))},set(a,r,c){return L(s.get(r)??o(r,c),c),Reflect.set(a,r,c)}});C(this,m,(e.hydrate?ie:le)(e.component,{target:e.target,anchor:e.anchor,props:u,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError})),(!((_=e==null?void 0:e.props)!=null&&_.$$host)||e.sync===!1)&&Z(),C(this,y,u.$$events);for(const a of Object.keys(l(this,m)))a==="$set"||a==="$destroy"||a==="$on"||M(this,a,{get(){return l(this,m)[a]},set(r){l(this,m)[a]=r},enumerable:!0});l(this,m).$set=a=>{Object.assign(u,a)},l(this,m).$destroy=()=>{ue(l(this,m))}}$set(e){l(this,m).$set(e)}$on(e,s){l(this,y)[e]=l(this,y)[e]||[];const o=(...u)=>s.call(this,...u);return l(this,y)[e].push(o),()=>{l(this,y)[e]=l(this,y)[e].filter(u=>u!==o)}}$destroy(){l(this,m).$destroy()}}y=new WeakMap,m=new WeakMap;const ve="modulepreload",ge=function(t,e){return new URL(t,e).href},K={},U=function(e,s,o){let u=Promise.resolve();if(s&&s.length>0){let a=function(i){return Promise.all(i.map(v=>Promise.resolve(v).then(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};const r=document.getElementsByTagName("link"),c=document.querySelector("meta[property=csp-nonce]"),k=(c==null?void 0:c.nonce)||(c==null?void 0:c.getAttribute("nonce"));u=a(s.map(i=>{if(i=ge(i,o),i in K)return;K[i]=!0;const v=i.endsWith(".css"),b=v?'[rel="stylesheet"]':"";if(!!o)for(let n=r.length-1;n>=0;n--){const f=r[n];if(f.href===i&&(!v||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${b}`))return;const h=document.createElement("link");if(h.rel=v?"stylesheet":ve,v||(h.as="script"),h.crossOrigin="",h.href=i,k&&h.setAttribute("nonce",k),document.head.appendChild(h),v)return new Promise((n,f)=>{h.addEventListener("load",n),h.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${i}`)))})}))}function _(a){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=a,window.dispatchEvent(r),!r.defaultPrevented)throw a}return u.then(a=>{for(const r of a||[])r.status==="rejected"&&_(r.reason);return e().catch(_)})},Se={};var ye=W('
'),be=W(" ",1);function Ee(t,e){$(e,!0);let s=T(e,"components",23,()=>[]),o=T(e,"data_0",3,null),u=T(e,"data_1",3,null);ee(()=>e.stores.page.set(e.page)),te(()=>{e.stores,e.page,e.constructors,s(),e.form,o(),u(),e.stores.page.notify()});let _=A(!1),a=A(!1),r=A(null);de(()=>{const n=e.stores.page.subscribe(()=>{g(_)&&(L(a,!0),re().then(()=>{L(r,document.title||"untitled page",!0)}))});return L(_,!0),n});const c=B(()=>e.constructors[1]);var k=be(),i=j(k);{var v=n=>{const f=B(()=>e.constructors[0]);var E=I(),x=j(E);V(x,()=>g(f),(P,R)=>{q(R(P,{get data(){return o()},get form(){return e.form},get params(){return e.page.params},children:(d,Re)=>{var G=I(),p=j(G);V(p,()=>g(c),(F,Q)=>{q(Q(F,{get data(){return u()},get form(){return e.form},get params(){return e.page.params}}),O=>s()[1]=O,()=>{var O;return(O=s())==null?void 0:O[1]})}),w(d,G)},$$slots:{default:!0}}),d=>s()[0]=d,()=>{var d;return(d=s())==null?void 0:d[0]})}),w(n,E)},b=n=>{const f=B(()=>e.constructors[0]);var E=I(),x=j(E);V(x,()=>g(f),(P,R)=>{q(R(P,{get data(){return o()},get form(){return e.form},get params(){return e.page.params}}),d=>s()[0]=d,()=>{var d;return(d=s())==null?void 0:d[0]})}),w(n,E)};D(i,n=>{e.constructors[1]?n(v):n(b,-1)})}var z=se(i,2);{var h=n=>{var f=ye(),E=ne(f);{var x=P=>{var R=me();ce(()=>fe(R,g(r))),w(P,R)};D(E,P=>{g(a)&&P(x)})}oe(f),w(n,f)};D(z,n=>{g(_)&&n(h)})}w(t,k),ae()}const Ce=he(Ee),Ae=[()=>U(()=>import("../nodes/0.DecrOZwe.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>U(()=>import("../nodes/1.CqrNlNqJ.js"),__vite__mapDeps([5,1,2,6,7,8,9]),import.meta.url),()=>U(()=>import("../nodes/2.Cadsvez-.js"),__vite__mapDeps([10,1,2,9,11,4,7,3,6,12]),import.meta.url)],Be=[],Ie={"/":[2]},Y={handleError:(({error:t})=>{console.error(t)}),reroute:(()=>{}),transport:{}},Pe=Object.fromEntries(Object.entries(Y.transport).map(([t,e])=>[t,e.decode])),Te=Object.fromEntries(Object.entries(Y.transport).map(([t,e])=>[t,e.encode])),De=!1,Ve=(t,e)=>Pe[t](e);export{Ve as decode,Pe as decoders,Ie as dictionary,Te as encoders,De as hash,Y as hooks,Se as matchers,Ae as nodes,Ce as root,Be as server_loads}; diff --git a/frontend/dist/_app/immutable/entry/start.Cnn_J3kK.js b/frontend/dist/_app/immutable/entry/start.Cnn_J3kK.js new file mode 100644 index 0000000..bf59000 --- /dev/null +++ b/frontend/dist/_app/immutable/entry/start.Cnn_J3kK.js @@ -0,0 +1 @@ +import{l as o,a as r}from"../chunks/eeJ2SmtH.js";export{o as load_css,r as start}; diff --git a/frontend/dist/_app/immutable/entry/start.Dsp_JzAf.js b/frontend/dist/_app/immutable/entry/start.Dsp_JzAf.js deleted file mode 100644 index d878885..0000000 --- a/frontend/dist/_app/immutable/entry/start.Dsp_JzAf.js +++ /dev/null @@ -1 +0,0 @@ -import{l as o,a as r}from"../chunks/B87JTjoX.js";export{o as load_css,r as start}; diff --git a/frontend/dist/_app/immutable/nodes/1.CrjZXtQm.js b/frontend/dist/_app/immutable/nodes/1.CqrNlNqJ.js similarity index 78% rename from frontend/dist/_app/immutable/nodes/1.CrjZXtQm.js rename to frontend/dist/_app/immutable/nodes/1.CqrNlNqJ.js index 71c41f0..7310eac 100644 --- a/frontend/dist/_app/immutable/nodes/1.CrjZXtQm.js +++ b/frontend/dist/_app/immutable/nodes/1.CqrNlNqJ.js @@ -1 +1 @@ -import{a as g,f as h}from"../chunks/C14P8jaG.js";import{i as l}from"../chunks/DmjnTBOd.js";import{x as v,g as d,y as x,z as _,A as e,B as o,C as $}from"../chunks/VJhVTb1A.js";import{s as p}from"../chunks/BeON-0X8.js";import{s as k,p as m}from"../chunks/B87JTjoX.js";const b={get error(){return m.error},get status(){return m.status}};k.updated.check;const i=b;var y=h("

",1);function j(f,n){v(n,!1),l();var t=y(),r=d(t),c=e(r,!0);o(r);var s=$(r,2),u=e(s,!0);o(s),x(()=>{var a;p(c,i.status),p(u,(a=i.error)==null?void 0:a.message)}),g(f,t),_()}export{j as component}; +import{a as g,f as h}from"../chunks/C14P8jaG.js";import{i as l}from"../chunks/DmjnTBOd.js";import{x as v,g as d,y as x,z as _,A as e,B as o,C as $}from"../chunks/VJhVTb1A.js";import{s as p}from"../chunks/BeON-0X8.js";import{s as k,p as m}from"../chunks/eeJ2SmtH.js";const b={get error(){return m.error},get status(){return m.status}};k.updated.check;const i=b;var y=h("

",1);function j(f,n){v(n,!1),l();var t=y(),r=d(t),c=e(r,!0);o(r);var s=$(r,2),u=e(s,!0);o(s),x(()=>{var a;p(c,i.status),p(u,(a=i.error)==null?void 0:a.message)}),g(f,t),_()}export{j as component}; diff --git a/frontend/dist/_app/immutable/nodes/2.VYoLrj39.js b/frontend/dist/_app/immutable/nodes/2.Cadsvez-.js similarity index 50% rename from frontend/dist/_app/immutable/nodes/2.VYoLrj39.js rename to frontend/dist/_app/immutable/nodes/2.Cadsvez-.js index cd828ff..b819d1c 100644 --- a/frontend/dist/_app/immutable/nodes/2.VYoLrj39.js +++ b/frontend/dist/_app/immutable/nodes/2.Cadsvez-.js @@ -1,5 +1,5 @@ -import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js";import{o as Yn,a as dr}from"../chunks/Cz6m6K8p.js";import{h as De,L as $t,G as Lt,c as $r,J as Kt,b as Qn,o as e,N as Ha,ag as ja,O as $n,P as Dt,f as _t,ay as Jn,aF as Ua,ao as Pn,e as mt,a as cr,aM as Va,s as Ba,a5 as qa,aN as Zn,aE as cn,aO as Ka,a7 as En,aP as Ga,aQ as Wa,aI as Xa,aR as ht,aS as ea,a1 as Ya,r as ta,p as ra,aT as jr,ae as na,aU as Qa,aV as Ja,aC as Za,m as eo,d as Er,az as aa,y as Q,F as oa,aW as to,aG as ro,aA as no,D as sa,aX as ia,aY as ao,aZ as oo,E as so,aw as la,S as Tr,k as Rr,a_ as ca,a$ as io,b0 as lo,b1 as ua,b2 as co,b3 as uo,b4 as fr,b5 as fo,b6 as vo,b7 as go,b8 as ho,b9 as po,ba as mo,bb as _o,aJ as Pt,U as bo,aK as I,_ as se,$ as f,A as k,B as p,x as Ae,g as B,z as Le,C as P,j as Ne,ap as we,aL as U,bc as xo,q as jt,bd as yo,be as it,bf as wo}from"../chunks/VJhVTb1A.js";import{p as he,i as X,b as nt,c as ko,l as Ue,s as qe}from"../chunks/zf4GFcxs.js";import{i as Co,a as So,d as ie,b as We,c as $o,n as Po,e as Eo,s as ee,f as rt}from"../chunks/BeON-0X8.js";import{s as ft}from"../chunks/CiUbu-1F.js";import{i as Ro}from"../chunks/DmjnTBOd.js";import{B as No}from"../chunks/U5yjBaoU.js";function un(t,r){return r}function Mo(t,r,a){for(var n=[],o=r.length,i,s=r.length,l=0;l{if(i){if(i.pending.delete(L),i.done.add(L),i.pending.size===0){var m=t.outrogroups;Xr(t,cn(i.done)),m.delete(i),m.size===0&&(t.outrogroups=null)}}else s-=1},!1)}if(s===0){var d=n.length===0&&a!==null;if(d){var y=a,w=y.parentNode;Za(w),w.append(y),t.items.clear()}Xr(t,r,!d)}else i={pending:new Set(r),done:new Set},(t.outrogroups??(t.outrogroups=new Set)).add(i)}function Xr(t,r,a=!0){var n;if(t.pending.size>0){n=new Set;for(const s of t.pending.values())for(const l of s)n.add(t.items.get(l).e)}for(var o=0;o{var g=a();return Zn(g)?g:g==null?[]:cn(g)}),m,M=new Map,F=!0;function h(g){(R.effect.f&Ya)===0&&(R.pending.delete(g),R.fallback=w,Ao(R,m,s,r,n),w!==null&&(m.length===0?(w.f&ht)===0?ta(w):(w.f^=ht,ir(w,null,s)):ra(w,()=>{w=null})))}function c(g){R.pending.delete(g)}var x=Qn(()=>{m=e(L);var g=m.length;let b=!1;if(De){var S=Ha(s)===ja;S!==(g===0)&&(s=$n(),$t(s),Dt(!1),b=!0)}for(var _=new Set,T=mt,z=Ba(),D=0;Di(s)):(w=cr(()=>i(Rn??(Rn=$r()))),w.f|=ht)),g>_.size&&Va(),De&&g>0&&$t($n()),!F)if(M.set(T,_),z){for(const[j,q]of l)_.has(j)||T.skip_effect(q.e);T.oncommit(h),T.ondiscard(c)}else h(T);b&&Dt(!0),e(L)}),R={effect:x,items:l,pending:M,outrogroups:null,fallback:w};F=!1,De&&(s=_t)}function nr(t){for(;t!==null&&(t.f&Qa)===0;)t=t.next;return t}function Ao(t,r,a,n,o){var V,H,O,j,q,Y,ae,N,C;var i=(n&Ja)!==0,s=r.length,l=t.items,d=nr(t.effect.first),y,w=null,L,m=[],M=[],F,h,c,x;if(i)for(x=0;x0){var D=(n&ea)!==0&&s===0?a:null;if(i){for(x=0;x{var v,A;if(L!==void 0)for(c of L)(A=(v=c.nodes)==null?void 0:v.a)==null||A.apply()})}function Lo(t,r,a,n,o,i,s,l){var d=(s&Ga)!==0?(s&Wa)===0?Xa(a,!1,!1):En(a):null,y=(s&Ka)!==0?En(o):null;return{v:d,i:y,e:cr(()=>(i(r,d??a,y??o,l),()=>{t.delete(n)}))}}function ir(t,r,a){if(t.nodes)for(var n=t.nodes.start,o=t.nodes.end,i=r&&(r.f&ht)===0?r.nodes.start:a;n!==null;){var s=aa(n);if(i.before(n),n===o)return;n=s}}function wt(t,r,a){r===null?t.effect.first=a:r.next=a,a===null?t.effect.last=r:a.prev=r}function Fr(t,r,a=!1,n=!1,o=!1,i=!1){var s=t,l="";if(a){var d=t;De&&(s=$t(Lt(d)))}Q(()=>{var y=oa;if(l===(l=r()??"")){De&&Kt();return}if(a&&!De){y.nodes=null,d.innerHTML=l,l!==""&&Sr(Lt(d),d.lastChild);return}if(y.nodes!==null&&(to(y.nodes.start,y.nodes.end),y.nodes=null),l!==""){if(De){_t.data;for(var w=Kt(),L=w;w!==null&&(w.nodeType!==Jn||w.data!=="");)L=w,w=aa(w);if(w===null)throw ro(),no;Sr(_t,L),s=$t(w);return}var m=n?ia:o?ao:void 0,M=sa(n?"svg":o?"math":"template",m);M.innerHTML=l;var F=n||o?M:M.content;if(Sr(Lt(F),F.lastChild),n||o)for(;Lt(F);)s.before(Lt(F));else s.before(F)}})}function Ve(t,r,a,n,o){var l;De&&Kt();var i=(l=r.$$slots)==null?void 0:l[a],s=!1;i===!0&&(i=r.children,s=!0),i===void 0||i(t,s?()=>n:n)}function To(t,r,a,n,o,i){let s=De;De&&Kt();var l=null;De&&_t.nodeType===oo&&(l=_t,Kt());var d=De?_t:t,y=new No(d,!1);Qn(()=>{const w=r()||null;var L=ia;if(w===null){y.ensure(null,null);return}return y.ensure(w,m=>{if(w){if(l=De?l:sa(w,L),Sr(l,l),n){De&&Co(w)&&l.append(document.createComment(""));var M=De?Lt(l):l.appendChild($r());De&&(M===null?Dt(!1):$t(M)),n(l,M)}oa.nodes.end=l,m.before(l)}De&&$t(m)}),()=>{}},so),la(()=>{}),s&&(Dt(!0),$t(d))}function Fo(t,r,a){Tr(()=>{var n=Rr(()=>r(t,a==null?void 0:a())||{});if(n!=null&&n.destroy)return()=>n.destroy()})}function Do(t,r){var a=void 0,n;ca(()=>{a!==(a=r())&&(n&&(Er(n),n=null),a&&(n=cr(()=>{Tr(()=>a(t))})))})}function da(t){var r,a,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var o=t.length;for(r=0;r=0;){var l=s+i;(s===0||Nn.includes(n[s-1]))&&(l===n.length||Nn.includes(n[l]))?n=(s===0?"":n.substring(0,s))+n.substring(l+1):s=l}}return n===""?null:n}function Mn(t,r=!1){var a=r?" !important;":";",n="";for(var o of Object.keys(t)){var i=t[o];i!=null&&i!==""&&(n+=" "+o+": "+i+a)}return n}function Ur(t){return t[0]!=="-"||t[1]!=="-"?t.toLowerCase():t}function Oo(t,r){if(r){var a="",n,o;if(Array.isArray(r)?(n=r[0],o=r[1]):n=r,t){t=String(t).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var i=!1,s=0,l=!1,d=[];n&&d.push(...Object.keys(n).map(Ur)),o&&d.push(...Object.keys(o).map(Ur));var y=0,w=-1;const h=t.length;for(var L=0;L{Nr(t,t.__value)});r.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),la(()=>{r.disconnect()})}function Ho(t,r,a=r){var n=new WeakSet,o=!0;ua(t,"change",i=>{var s=i?"[selected]":":checked",l;if(t.multiple)l=[].map.call(t.querySelectorAll(s),lr);else{var d=t.querySelector(s)??t.querySelector("option:not([disabled])");l=d&&lr(d)}a(l),t.__value=l,mt!==null&&n.add(mt)}),Tr(()=>{var i=r();if(t===document.activeElement){var s=mt;if(n.has(s))return}if(Nr(t,i,o),o&&i===void 0){var l=t.querySelector(":checked");l!==null&&(i=lr(l),a(i))}t.__value=i,o=!1}),fa(t)}function lr(t){return"__value"in t?t.__value:t.value}const ar=Symbol("class"),or=Symbol("style"),va=Symbol("is custom element"),ga=Symbol("is html"),jo=fr?"link":"LINK",Uo=fr?"input":"INPUT",Vo=fr?"option":"OPTION",Bo=fr?"select":"SELECT",qo=fr?"progress":"PROGRESS";function Qe(t){if(De){var r=!1,a=()=>{if(!r){if(r=!0,t.hasAttribute("value")){var n=t.value;Se(t,"value",null),t.value=n}if(t.hasAttribute("checked")){var o=t.checked;Se(t,"checked",null),t.checked=o}}};t.__on_r=a,na(a),go()}}function dn(t,r){var a=fn(t);a.value===(a.value=r??void 0)||t.value===r&&(r!==0||t.nodeName!==qo)||(t.value=r??"")}function Ko(t,r){r?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function Se(t,r,a,n){var o=fn(t);De&&(o[r]=t.getAttribute(r),r==="src"||r==="srcset"||r==="href"&&t.nodeName===jo)||o[r]!==(o[r]=a)&&(r==="loading"&&(t[mo]=a),a==null?t.removeAttribute(r):typeof a!="string"&&ha(t).includes(r)?t[r]=a:t.setAttribute(r,a))}function Go(t,r,a,n,o=!1,i=!1){if(De&&o&&t.nodeName===Uo){var s=t,l=s.type==="checkbox"?"defaultChecked":"defaultValue";l in a||Qe(s)}var d=fn(t),y=d[va],w=!d[ga];let L=De&&y;L&&Dt(!1);var m=r||{},M=t.nodeName===Vo;for(var F in r)F in a||(a[F]=null);a.class?a.class=dt(a.class):a[ar]&&(a.class=null),a[or]&&(a.style??(a.style=null));var h=ha(t);for(const _ in a){let T=a[_];if(M&&_==="value"&&T==null){t.value=t.__value="",m[_]=T;continue}if(_==="class"){var c=t.namespaceURI==="http://www.w3.org/1999/xhtml";Ce(t,c,T,n,r==null?void 0:r[ar],a[ar]),m[_]=T,m[ar]=a[ar];continue}if(_==="style"){Ze(t,T,r==null?void 0:r[or],a[or]),m[_]=T,m[or]=a[or];continue}var x=m[_];if(!(T===x&&!(T===void 0&&t.hasAttribute(_)))){m[_]=T;var R=_[0]+_[1];if(R!=="$$")if(R==="on"){const z={},D="$$"+_;let V=_.slice(2);var g=Eo(V);if(So(V)&&(V=V.slice(0,-7),z.capture=!0),!g&&x){if(T!=null)continue;t.removeEventListener(V,m[D],z),m[D]=null}if(g)ie(V,t,T),We([V]);else if(T!=null){let H=function(O){m[_].call(this,O)};m[D]=$o(V,t,H,z)}}else if(_==="style")Se(t,_,T);else if(_==="autofocus")fo(t,!!T);else if(!y&&(_==="__value"||_==="value"&&T!=null))t.value=t.__value=T;else if(_==="selected"&&M)Ko(t,T);else{var b=_;w||(b=Po(b));var S=b==="defaultValue"||b==="defaultChecked";if(T==null&&!y&&!S)if(d[_]=null,b==="value"||b==="checked"){let z=t;const D=r===void 0;if(b==="value"){let V=z.defaultValue;z.removeAttribute(b),z.defaultValue=V,z.value=z.__value=D?V:null}else{let V=z.defaultChecked;z.removeAttribute(b),z.defaultChecked=V,z.checked=D?V:!1}}else t.removeAttribute(_);else S||h.includes(b)&&(y||typeof T!="string")?(t[b]=T,b in d&&(d[b]=vo)):typeof T!="function"&&Se(t,b,T)}}}return L&&Dt(!0),m}function An(t,r,a=[],n=[],o=[],i,s=!1,l=!1){co(o,a,n,d=>{var y=void 0,w={},L=t.nodeName===Bo,m=!1;if(ca(()=>{var F=r(...d.map(e)),h=Go(t,y,F,i,s,l);m&&L&&"value"in F&&Nr(t,F.value);for(let x of Object.getOwnPropertySymbols(w))F[x]||Er(w[x]);for(let x of Object.getOwnPropertySymbols(F)){var c=F[x];x.description===uo&&(!y||c!==y[x])&&(w[x]&&Er(w[x]),w[x]=cr(()=>Do(t,()=>c))),h[x]=c}y=h}),L){var M=t;Tr(()=>{Nr(M,y.value,!0),fa(M)})}m=!0})}function fn(t){return t.__attributes??(t.__attributes={[va]:t.nodeName.includes("-"),[ga]:t.namespaceURI===ho})}var Ln=new Map;function ha(t){var r=t.getAttribute("is")||t.nodeName,a=Ln.get(r);if(a)return a;Ln.set(r,a=[]);for(var n,o=t,i=Element.prototype;i!==o;){n=_o(o);for(var s in n)n[s].set&&a.push(s);o=po(o)}return a}function tt(t,r,a=r){var n=new WeakSet;ua(t,"input",async o=>{var i=o?t.defaultValue:t.value;if(i=Br(t)?qr(i):i,a(i),mt!==null&&n.add(mt),await Pt(),i!==(i=r())){var s=t.selectionStart,l=t.selectionEnd,d=t.value.length;if(t.value=i??"",l!==null){var y=t.value.length;s===l&&l===d&&y>d?(t.selectionStart=y,t.selectionEnd=y):(t.selectionStart=s,t.selectionEnd=Math.min(l,y))}}}),(De&&t.defaultValue!==t.value||Rr(r)==null&&t.value)&&(a(Br(t)?qr(t.value):t.value),mt!==null&&n.add(mt)),bo(()=>{var o=r();if(t===document.activeElement){var i=mt;if(n.has(i))return}Br(t)&&o===qr(t.value)||t.type==="date"&&!o&&!t.value||o!==t.value&&(t.value=o??"")})}function Br(t){var r=t.type;return r==="number"||r==="range"}function qr(t){return t===""?null:+t}let xt=I(se({type:"none",props:{},resolve:null}));function Wo(){return e(xt)}function st(t=void 0){const{resolve:r}=e(xt);f(xt,{type:"none",props:{},resolve:null},!0),r==null||r(t)}function Xo(t){return new Promise(r=>{f(xt,{type:"run",props:{cases:t},resolve:r},!0)})}function Yo(t){return new Promise(r=>{f(xt,{type:"restart",props:{cases:t},resolve:r},!0)})}function Qo(t){return new Promise(r=>{f(xt,{type:"clean",props:{cases:t},resolve:r},!0)})}function Ye(t,r="Alert"){return new Promise(a=>{f(xt,{type:"alert",props:{title:r,message:t},resolve:()=>a()},!0)})}function Tn(t,r="Confirm",a="OK",n="primary"){return new Promise(o=>{f(xt,{type:"confirm",props:{title:r,message:t,confirmLabel:a,confirmVariant:n},resolve:o},!0)})}function vn(t,r="",a="Input",n="",o=!1){return new Promise(i=>{f(xt,{type:"prompt",props:{title:a,message:t,value:r,placeholder:n,multiline:o},resolve:i},!0)})}var Jo=$('
');function Jt(t,r){function a(i){return document.body.appendChild(i),{destroy(){i.remove()}}}var n=Jo(),o=k(n);ft(o,()=>r.children),p(n),Fo(n,i=>a==null?void 0:a(i)),u(t,n)}var Zo=$('
'),es=$('
');function vr(t,r){Ae(r,!0);const a=F=>{var h=es(),c=k(h),x=k(c),R=k(x),g=k(R,!0);p(R);var b=P(R,2);{var S=D=>{var V=Zo(),H=k(V,!0);p(V),Q(()=>ee(H,r.subtitle)),u(D,V)};X(b,D=>{r.subtitle&&D(S)})}p(x);var _=P(x,2);ft(_,()=>r.children);var T=P(_,2),z=k(T);ft(z,()=>r.footer),p(T),p(c),p(h),Q(()=>{Ce(c,1,`w-[min(${n()??""},96vw)] bg-white border border-border rounded-[10px] p-4.5`),Se(c,"aria-labelledby",r.titleId),Se(R,"id",r.titleId),ee(g,r.title)}),ie("keydown",h,s),ie("mousedown",h,d),ie("click",h,y),u(F,h)};let n=he(r,"maxWidth",3,"520px"),o=he(r,"portal",3,!1);function i(){r.onCancel?r.onCancel():st(null)}function s(F){F.key==="Escape"?i():F.key==="Enter"&&r.onConfirm&&r.onConfirm()}let l=!1;function d(F){l=F.target.dataset.backdrop!==void 0}function y(F){const h=F.target.dataset.backdrop!==void 0;l&&h&&i(),l=!1}var w=_e(),L=B(w);{var m=F=>{Jt(F,{children:(h,c)=>{a(h)}})},M=F=>{a(F)};X(L,F=>{o()?F(m):F(M,-1)})}u(t,w),Le()}We(["keydown","mousedown","click"]);var ts=$("");function $e(t,r){let a=he(r,"variant",3,"primary"),n=he(r,"size",3,"default"),o=he(r,"disabled",3,!1);const i={default:"h-[34px] rounded-md px-3.5 leading-none text-[13px] tracking-wide",sm:"h-[30px] rounded-md px-2.5 leading-none text-xs"},s={primary:"bg-edf-bleu-moyen text-white border-none hover:bg-[rgb(12,72,170)]",secondary:"bg-white text-ink border border-border hover:bg-edf-gris-clair",run:"bg-edf-vert-fonce text-white border-none hover:bg-[rgb(38,98,12)]",warning:"bg-edf-orange-moyen text-white border-none hover:bg-[rgb(230,118,20)]",danger:"bg-edf-orange-fonce text-white border-none hover:bg-[rgb(180,56,8)]"};var l=ts(),d=k(l);ft(d,()=>r.children),p(l),Q(()=>{Ce(l,1,`inline-flex items-center justify-center gap-1.5 font-bold cursor-pointer transition-colors duration-150 disabled:opacity-40 disabled:pointer-events-none ${i[n()]??""} ${s[a()]??""}`),l.disabled=o()}),ie("click",l,function(...y){var w;(w=r.onclick)==null||w.apply(this,y)}),u(t,l)}We(["click"]);var rs=$(" ",1),ns=$(''),as=$(''),os=$('
'),ss=$('

',1);function is(t,r){Ae(r,!0);let a=he(r,"confirmLabel",3,"OK"),n=he(r,"confirmVariant",3,"primary"),o=he(r,"value",3,""),i=he(r,"placeholder",3,""),s=he(r,"multiline",3,!1);const l=o();let d=I(se(l)),y=I(void 0),w=I(void 0);Ne(()=>{var M;r.mode==="prompt"&&e(y)?(e(y).focus(),"select"in e(y)&&e(y).select()):e(w)&&((M=e(w).querySelector("button"))==null||M.focus())});function L(){r.mode==="prompt"?st(e(d)):r.mode==="confirm"?st(!0):st()}function m(){r.mode==="confirm"?st(!1):r.mode==="prompt"?st(null):st()}{const M=h=>{var c=rs(),x=B(c);{var R=S=>{$e(S,{variant:"secondary",onclick:m,children:(_,T)=>{we();var z=Be("Cancel");u(_,z)},$$slots:{default:!0}})};X(x,S=>{r.mode!=="alert"&&S(R)})}var g=P(x,2),b=k(g);$e(b,{get variant(){return n()},onclick:L,children:(S,_)=>{we();var T=Be();Q(()=>ee(T,a())),u(S,T)},$$slots:{default:!0}}),p(g),nt(g,S=>f(w,S),()=>e(w)),u(h,c)};let F=U(()=>s()?void 0:L);vr(t,{get title(){return r.title},titleId:"app-dialog-title",get onConfirm(){return e(F)},onCancel:m,footer:M,children:(h,c)=>{var x=ss(),R=B(x),g=k(R,!0);p(R);var b=P(R,2);{var S=_=>{var T=os(),z=k(T);{var D=H=>{var O=ns();xo(O),nt(O,j=>f(y,j),()=>e(y)),Q(()=>Se(O,"placeholder",i())),tt(O,()=>e(d),j=>f(d,j)),u(H,O)},V=H=>{var O=as();Qe(O),nt(O,j=>f(y,j),()=>e(y)),Q(()=>Se(O,"placeholder",i())),tt(O,()=>e(d),j=>f(d,j)),u(H,O)};X(z,H=>{s()?H(D):H(V,-1)})}p(T),u(_,T)};X(b,_=>{r.mode==="prompt"&&_(S)})}Q(()=>ee(g,r.message)),u(h,x)},$$slots:{footer:!0,default:!0}})}Le()}var ls=$('');function Me(t,r){var a=ls(),n=k(a),o=P(n);ft(o,()=>r.children),p(a),Q(()=>ee(n,`${r.text??""} `)),u(t,a)}function Ct(t,r){const a=localStorage.getItem(t);if(a===null)return r;const n=Number(a);return Number.isFinite(n)?n:r}function St(t,r){Number.isFinite(r)&&localStorage.setItem(t,String(r))}function cs(t,r){return localStorage.getItem(t)??r}function us(){return{n:Ct("csauto_run_n",1),nt:Ct("csauto_run_nt",1),maxParallel:Ct("csauto_run_max_parallel",0)||null}}function ds(t){St("csauto_run_n",t.n),St("csauto_run_nt",t.nt),t.maxParallel&&St("csauto_run_max_parallel",t.maxParallel)}function fs(){return{n:Ct("csauto_restart_n",1),nt:Ct("csauto_restart_nt",1),maxParallel:Ct("csauto_restart_max_parallel",0)||null,mode:cs("csauto_restart_mode","iterations"),value:Ct("csauto_restart_value",100)}}function vs(t){St("csauto_restart_n",t.n),St("csauto_restart_nt",t.nt),t.maxParallel&&St("csauto_restart_max_parallel",t.maxParallel),localStorage.setItem("csauto_restart_mode",t.mode),St("csauto_restart_value",t.value)}function gs(){return{keepLast:Ct("csauto_clean_keep_last",1)}}function hs(t){St("csauto_clean_keep_last",t.keepLast)}var ps=$(" ",1),ms=$(''),_s=$(''),bs=$(''),xs=$('
');function ys(t,r){Ae(r,!0);const a=us(),n=a.maxParallel??(r.cases.length>1?r.cases.length:0);let o=I(se(a.n)),i=I(se(a.nt)),s=I(se(n));async function l(){if(!Number.isFinite(e(o))||e(o)<=0){await Ye("MPI ranks must be an integer > 0.","Invalid value");return}if(!Number.isFinite(e(i))||e(i)<=0){await Ye("Threads must be an integer > 0.","Invalid value");return}if(e(s)&&(!Number.isFinite(e(s))||e(s)<=0)){await Ye("Max parallel must be empty or > 0.","Invalid value");return}const d={n:e(o),nt:e(i),maxParallel:e(s)||null};ds(d),st(d)}{const d=L=>{var m=ps(),M=B(m);$e(M,{variant:"secondary",onclick:()=>st(null),children:(h,c)=>{we();var x=Be("Cancel");u(h,x)},$$slots:{default:!0}});var F=P(M,2);$e(F,{variant:"run",onclick:l,children:(h,c)=>{we();var x=Be("Run");u(h,x)},$$slots:{default:!0}}),u(L,m)};let y=U(()=>r.cases.length),w=U(()=>r.cases.length>1?"s":"");vr(t,{title:"Run Cases",titleId:"run-dialog-title",get subtitle(){return`${e(y)??""} case${e(w)??""} selected`},onConfirm:l,footer:d,children:(L,m)=>{var M=xs(),F=k(M);Me(F,{text:"MPI Ranks (n)",children:(x,R)=>{var g=ms();Qe(g),tt(g,()=>e(o),b=>f(o,b)),u(x,g)}});var h=P(F,2);Me(h,{text:"OMP Threads (nt)",children:(x,R)=>{var g=_s();Qe(g),tt(g,()=>e(i),b=>f(i,b)),u(x,g)}});var c=P(h,2);Me(c,{text:"Max Parallel",children:(x,R)=>{var g=bs();Qe(g),tt(g,()=>e(s),b=>f(s,b)),u(x,g)}}),p(M),u(L,M)},$$slots:{footer:!0,default:!0}})}Le()}var ws=$(" ",1),ks=$(''),Cs=$(''),Ss=$(''),$s=$(""),Ps=$(''),Es=$('
',1);function Rs(t,r){Ae(r,!0);const a=fs(),n=a.maxParallel??(r.cases.length>1?r.cases.length:0);let o=I(se(a.n)),i=I(se(a.nt)),s=I(se(n)),l=I(se(a.mode)),d=I(se(a.value)),y=U(()=>e(l)==="iterations"?"Additional iterations":"Additional physical time"),w=U(()=>e(l)==="iterations"?"1":"any"),L=U(()=>e(l)==="iterations"?"1":"0");async function m(){if(!Number.isFinite(e(o))||e(o)<=0){await Ye("MPI ranks must be an integer > 0.","Invalid value");return}if(!Number.isFinite(e(i))||e(i)<=0){await Ye("Threads must be an integer > 0.","Invalid value");return}if(e(s)&&(!Number.isFinite(e(s))||e(s)<=0)){await Ye("Max parallel must be empty or > 0.","Invalid value");return}if(!Number.isFinite(e(d))||e(d)<=0){await Ye("Value must be > 0.","Invalid value");return}if(e(l)==="iterations"&&!Number.isInteger(e(d))){await Ye("Iterations must be an integer.","Invalid value");return}const M={n:e(o),nt:e(i),maxParallel:e(s)||null,restartMode:e(l),restartValue:e(d)};vs({n:e(o),nt:e(i),maxParallel:e(s)||null,mode:e(l),value:e(d)}),st(M)}{const M=c=>{var x=ws(),R=B(x);$e(R,{variant:"secondary",onclick:()=>st(null),children:(b,S)=>{we();var _=Be("Cancel");u(b,_)},$$slots:{default:!0}});var g=P(R,2);$e(g,{variant:"warning",onclick:m,children:(b,S)=>{we();var _=Be("Restart");u(b,_)},$$slots:{default:!0}}),u(c,x)};let F=U(()=>r.cases.length),h=U(()=>r.cases.length>1?"s":"");vr(t,{title:"Restart Cases",titleId:"restart-dialog-title",get subtitle(){return`${e(F)??""} case${e(h)??""} selected`},onConfirm:m,footer:M,children:(c,x)=>{var R=Es(),g=B(R),b=k(g);Me(b,{text:"MPI Ranks (n)",children:(V,H)=>{var O=ks();Qe(O),tt(O,()=>e(o),j=>f(o,j)),u(V,O)}});var S=P(b,2);Me(S,{text:"OMP Threads (nt)",children:(V,H)=>{var O=Cs();Qe(O),tt(O,()=>e(i),j=>f(i,j)),u(V,O)}});var _=P(S,2);Me(_,{text:"Max Parallel",children:(V,H)=>{var O=Ss();Qe(O),tt(O,()=>e(s),j=>f(s,j)),u(V,O)}}),p(g);var T=P(g,2),z=k(T);Me(z,{text:"Stop criterion",children:(V,H)=>{var O=$s(),j=k(O);j.value=j.__value="iterations";var q=P(j);q.value=q.__value="physical_time",p(O),Ho(O,()=>e(l),Y=>f(l,Y)),u(V,O)}});var D=P(z,2);Me(D,{get text(){return e(y)},children:(V,H)=>{var O=Ps();Qe(O),Q(()=>{Se(O,"min",e(L)),Se(O,"step",e(w))}),tt(O,()=>e(d),j=>f(d,j)),u(V,O)}}),p(T),u(c,R)},$$slots:{footer:!0,default:!0}})}Le()}function Te(t,r){let a=he(r,"size",3,14);var n=_e(),o=B(n);ko(o,()=>r.icon,(i,s)=>{s(i,{get size(){return a()},class:"icon"})}),u(t,n)}/** +import{b as Sr,a as u,f as P,c as _e,t as Be,d as Ot}from"../chunks/C14P8jaG.js";import{o as Yn,a as dr}from"../chunks/Cz6m6K8p.js";import{h as De,L as $t,G as Lt,c as $r,J as Kt,b as Qn,o as e,N as Ha,ag as ja,O as $n,P as zt,f as _t,ay as Zn,aF as Va,ao as Pn,e as mt,a as cr,aM as Ua,s as Ba,a5 as qa,aN as Jn,aE as cn,aO as Ka,a7 as En,aP as Ga,aQ as Wa,aI as Xa,aR as ht,aS as ea,a1 as Ya,r as ta,p as ra,aT as jr,ae as na,aU as Qa,aV as Za,aC as Ja,m as es,d as Er,az as aa,y as Q,F as sa,aW as ts,aG as rs,aA as ns,D as oa,aX as ia,aY as as,aZ as ss,E as os,aw as la,S as Tr,k as Rr,a_ as ca,a$ as is,b0 as ls,b1 as ua,b2 as cs,b3 as us,b4 as fr,b5 as ds,b6 as fs,b7 as vs,b8 as gs,b9 as hs,ba as ps,bb as ms,aJ as Pt,U as _s,aK as I,_ as oe,$ as f,A as C,B as p,x as Ae,g as B,z as Le,C as E,j as Ne,ap as ke,aL as j,bc as bs,q as Vt,bd as xs,be as it,bf as ys}from"../chunks/VJhVTb1A.js";import{p as he,i as Y,b as nt,c as ws,l as Ve,s as qe}from"../chunks/zf4GFcxs.js";import{i as ks,a as Cs,d as ie,b as We,c as Ss,n as $s,e as Ps,s as ee,f as rt}from"../chunks/BeON-0X8.js";import{s as ft}from"../chunks/CiUbu-1F.js";import{i as Es}from"../chunks/DmjnTBOd.js";import{B as Rs}from"../chunks/U5yjBaoU.js";function un(t,r){return r}function Ns(t,r,a){for(var n=[],s=r.length,i,o=r.length,l=0;l{if(i){if(i.pending.delete(T),i.done.add(T),i.pending.size===0){var m=t.outrogroups;Xr(t,cn(i.done)),m.delete(i),m.size===0&&(t.outrogroups=null)}}else o-=1},!1)}if(o===0){var d=n.length===0&&a!==null;if(d){var x=a,w=x.parentNode;Ja(w),w.append(x),t.items.clear()}Xr(t,r,!d)}else i={pending:new Set(r),done:new Set},(t.outrogroups??(t.outrogroups=new Set)).add(i)}function Xr(t,r,a=!0){var n;if(t.pending.size>0){n=new Set;for(const o of t.pending.values())for(const l of o)n.add(t.items.get(l).e)}for(var s=0;s{var g=a();return Jn(g)?g:g==null?[]:cn(g)}),m,A=new Map,F=!0;function v(g){(R.effect.f&Ya)===0&&(R.pending.delete(g),R.fallback=w,Ms(R,m,o,r,n),w!==null&&(m.length===0?(w.f&ht)===0?ta(w):(w.f^=ht,ir(w,null,o)):ra(w,()=>{w=null})))}function c(g){R.pending.delete(g)}var y=Qn(()=>{m=e(T);var g=m.length;let b=!1;if(De){var $=Ha(o)===ja;$!==(g===0)&&(o=$n(),$t(o),zt(!1),b=!0)}for(var _=new Set,L=mt,z=Ba(),D=0;Di(o)):(w=cr(()=>i(Rn??(Rn=$r()))),w.f|=ht)),g>_.size&&Ua(),De&&g>0&&$t($n()),!F)if(A.set(L,_),z){for(const[V,q]of l)_.has(V)||L.skip_effect(q.e);L.oncommit(v),L.ondiscard(c)}else v(L);b&&zt(!0),e(T)}),R={effect:y,items:l,pending:A,outrogroups:null,fallback:w};F=!1,De&&(o=_t)}function nr(t){for(;t!==null&&(t.f&Qa)===0;)t=t.next;return t}function Ms(t,r,a,n,s){var U,H,O,V,q,X,ae,N,M;var i=(n&Za)!==0,o=r.length,l=t.items,d=nr(t.effect.first),x,w=null,T,m=[],A=[],F,v,c,y;if(i)for(y=0;y0){var D=(n&ea)!==0&&o===0?a:null;if(i){for(y=0;y{var h,k;if(T!==void 0)for(c of T)(k=(h=c.nodes)==null?void 0:h.a)==null||k.apply()})}function As(t,r,a,n,s,i,o,l){var d=(o&Ga)!==0?(o&Wa)===0?Xa(a,!1,!1):En(a):null,x=(o&Ka)!==0?En(s):null;return{v:d,i:x,e:cr(()=>(i(r,d??a,x??s,l),()=>{t.delete(n)}))}}function ir(t,r,a){if(t.nodes)for(var n=t.nodes.start,s=t.nodes.end,i=r&&(r.f&ht)===0?r.nodes.start:a;n!==null;){var o=aa(n);if(i.before(n),n===s)return;n=o}}function wt(t,r,a){r===null?t.effect.first=a:r.next=a,a===null?t.effect.last=r:a.prev=r}function Fr(t,r,a=!1,n=!1,s=!1,i=!1){var o=t,l="";if(a){var d=t;De&&(o=$t(Lt(d)))}Q(()=>{var x=sa;if(l===(l=r()??"")){De&&Kt();return}if(a&&!De){x.nodes=null,d.innerHTML=l,l!==""&&Sr(Lt(d),d.lastChild);return}if(x.nodes!==null&&(ts(x.nodes.start,x.nodes.end),x.nodes=null),l!==""){if(De){_t.data;for(var w=Kt(),T=w;w!==null&&(w.nodeType!==Zn||w.data!=="");)T=w,w=aa(w);if(w===null)throw rs(),ns;Sr(_t,T),o=$t(w);return}var m=n?ia:s?as:void 0,A=oa(n?"svg":s?"math":"template",m);A.innerHTML=l;var F=n||s?A:A.content;if(Sr(Lt(F),F.lastChild),n||s)for(;Lt(F);)o.before(Lt(F));else o.before(F)}})}function Ue(t,r,a,n,s){var l;De&&Kt();var i=(l=r.$$slots)==null?void 0:l[a],o=!1;i===!0&&(i=r.children,o=!0),i===void 0||i(t,o?()=>n:n)}function Ls(t,r,a,n,s,i){let o=De;De&&Kt();var l=null;De&&_t.nodeType===ss&&(l=_t,Kt());var d=De?_t:t,x=new Rs(d,!1);Qn(()=>{const w=r()||null;var T=ia;if(w===null){x.ensure(null,null);return}return x.ensure(w,m=>{if(w){if(l=De?l:oa(w,T),Sr(l,l),n){De&&ks(w)&&l.append(document.createComment(""));var A=De?Lt(l):l.appendChild($r());De&&(A===null?zt(!1):$t(A)),n(l,A)}sa.nodes.end=l,m.before(l)}De&&$t(m)}),()=>{}},os),la(()=>{}),o&&(zt(!0),$t(d))}function Ts(t,r,a){Tr(()=>{var n=Rr(()=>r(t,a==null?void 0:a())||{});if(n!=null&&n.destroy)return()=>n.destroy()})}function Fs(t,r){var a=void 0,n;ca(()=>{a!==(a=r())&&(n&&(Er(n),n=null),a&&(n=cr(()=>{Tr(()=>a(t))})))})}function da(t){var r,a,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var s=t.length;for(r=0;r=0;){var l=o+i;(o===0||Nn.includes(n[o-1]))&&(l===n.length||Nn.includes(n[l]))?n=(o===0?"":n.substring(0,o))+n.substring(l+1):o=l}}return n===""?null:n}function Mn(t,r=!1){var a=r?" !important;":";",n="";for(var s of Object.keys(t)){var i=t[s];i!=null&&i!==""&&(n+=" "+s+": "+i+a)}return n}function Vr(t){return t[0]!=="-"||t[1]!=="-"?t.toLowerCase():t}function Is(t,r){if(r){var a="",n,s;if(Array.isArray(r)?(n=r[0],s=r[1]):n=r,t){t=String(t).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var i=!1,o=0,l=!1,d=[];n&&d.push(...Object.keys(n).map(Vr)),s&&d.push(...Object.keys(s).map(Vr));var x=0,w=-1;const v=t.length;for(var T=0;T{Nr(t,t.__value)});r.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),la(()=>{r.disconnect()})}function Os(t,r,a=r){var n=new WeakSet,s=!0;ua(t,"change",i=>{var o=i?"[selected]":":checked",l;if(t.multiple)l=[].map.call(t.querySelectorAll(o),lr);else{var d=t.querySelector(o)??t.querySelector("option:not([disabled])");l=d&&lr(d)}a(l),t.__value=l,mt!==null&&n.add(mt)}),Tr(()=>{var i=r();if(t===document.activeElement){var o=mt;if(n.has(o))return}if(Nr(t,i,s),s&&i===void 0){var l=t.querySelector(":checked");l!==null&&(i=lr(l),a(i))}t.__value=i,s=!1}),fa(t)}function lr(t){return"__value"in t?t.__value:t.value}const ar=Symbol("class"),sr=Symbol("style"),va=Symbol("is custom element"),ga=Symbol("is html"),Hs=fr?"link":"LINK",js=fr?"input":"INPUT",Vs=fr?"option":"OPTION",Us=fr?"select":"SELECT",Bs=fr?"progress":"PROGRESS";function Qe(t){if(De){var r=!1,a=()=>{if(!r){if(r=!0,t.hasAttribute("value")){var n=t.value;we(t,"value",null),t.value=n}if(t.hasAttribute("checked")){var s=t.checked;we(t,"checked",null),t.checked=s}}};t.__on_r=a,na(a),vs()}}function dn(t,r){var a=fn(t);a.value===(a.value=r??void 0)||t.value===r&&(r!==0||t.nodeName!==Bs)||(t.value=r??"")}function qs(t,r){r?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function we(t,r,a,n){var s=fn(t);De&&(s[r]=t.getAttribute(r),r==="src"||r==="srcset"||r==="href"&&t.nodeName===Hs)||s[r]!==(s[r]=a)&&(r==="loading"&&(t[ps]=a),a==null?t.removeAttribute(r):typeof a!="string"&&ha(t).includes(r)?t[r]=a:t.setAttribute(r,a))}function Ks(t,r,a,n,s=!1,i=!1){if(De&&s&&t.nodeName===js){var o=t,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in a||Qe(o)}var d=fn(t),x=d[va],w=!d[ga];let T=De&&x;T&&zt(!1);var m=r||{},A=t.nodeName===Vs;for(var F in r)F in a||(a[F]=null);a.class?a.class=dt(a.class):a[ar]&&(a.class=null),a[sr]&&(a.style??(a.style=null));var v=ha(t);for(const _ in a){let L=a[_];if(A&&_==="value"&&L==null){t.value=t.__value="",m[_]=L;continue}if(_==="class"){var c=t.namespaceURI==="http://www.w3.org/1999/xhtml";Se(t,c,L,n,r==null?void 0:r[ar],a[ar]),m[_]=L,m[ar]=a[ar];continue}if(_==="style"){Je(t,L,r==null?void 0:r[sr],a[sr]),m[_]=L,m[sr]=a[sr];continue}var y=m[_];if(!(L===y&&!(L===void 0&&t.hasAttribute(_)))){m[_]=L;var R=_[0]+_[1];if(R!=="$$")if(R==="on"){const z={},D="$$"+_;let U=_.slice(2);var g=Ps(U);if(Cs(U)&&(U=U.slice(0,-7),z.capture=!0),!g&&y){if(L!=null)continue;t.removeEventListener(U,m[D],z),m[D]=null}if(g)ie(U,t,L),We([U]);else if(L!=null){let H=function(O){m[_].call(this,O)};m[D]=Ss(U,t,H,z)}}else if(_==="style")we(t,_,L);else if(_==="autofocus")ds(t,!!L);else if(!x&&(_==="__value"||_==="value"&&L!=null))t.value=t.__value=L;else if(_==="selected"&&A)qs(t,L);else{var b=_;w||(b=$s(b));var $=b==="defaultValue"||b==="defaultChecked";if(L==null&&!x&&!$)if(d[_]=null,b==="value"||b==="checked"){let z=t;const D=r===void 0;if(b==="value"){let U=z.defaultValue;z.removeAttribute(b),z.defaultValue=U,z.value=z.__value=D?U:null}else{let U=z.defaultChecked;z.removeAttribute(b),z.defaultChecked=U,z.checked=D?U:!1}}else t.removeAttribute(_);else $||v.includes(b)&&(x||typeof L!="string")?(t[b]=L,b in d&&(d[b]=fs)):typeof L!="function"&&we(t,b,L)}}}return T&&zt(!0),m}function An(t,r,a=[],n=[],s=[],i,o=!1,l=!1){cs(s,a,n,d=>{var x=void 0,w={},T=t.nodeName===Us,m=!1;if(ca(()=>{var F=r(...d.map(e)),v=Ks(t,x,F,i,o,l);m&&T&&"value"in F&&Nr(t,F.value);for(let y of Object.getOwnPropertySymbols(w))F[y]||Er(w[y]);for(let y of Object.getOwnPropertySymbols(F)){var c=F[y];y.description===us&&(!x||c!==x[y])&&(w[y]&&Er(w[y]),w[y]=cr(()=>Fs(t,()=>c))),v[y]=c}x=v}),T){var A=t;Tr(()=>{Nr(A,x.value,!0),fa(A)})}m=!0})}function fn(t){return t.__attributes??(t.__attributes={[va]:t.nodeName.includes("-"),[ga]:t.namespaceURI===gs})}var Ln=new Map;function ha(t){var r=t.getAttribute("is")||t.nodeName,a=Ln.get(r);if(a)return a;Ln.set(r,a=[]);for(var n,s=t,i=Element.prototype;i!==s;){n=ms(s);for(var o in n)n[o].set&&a.push(o);s=hs(s)}return a}function tt(t,r,a=r){var n=new WeakSet;ua(t,"input",async s=>{var i=s?t.defaultValue:t.value;if(i=Br(t)?qr(i):i,a(i),mt!==null&&n.add(mt),await Pt(),i!==(i=r())){var o=t.selectionStart,l=t.selectionEnd,d=t.value.length;if(t.value=i??"",l!==null){var x=t.value.length;o===l&&l===d&&x>d?(t.selectionStart=x,t.selectionEnd=x):(t.selectionStart=o,t.selectionEnd=Math.min(l,x))}}}),(De&&t.defaultValue!==t.value||Rr(r)==null&&t.value)&&(a(Br(t)?qr(t.value):t.value),mt!==null&&n.add(mt)),_s(()=>{var s=r();if(t===document.activeElement){var i=mt;if(n.has(i))return}Br(t)&&s===qr(t.value)||t.type==="date"&&!s&&!t.value||s!==t.value&&(t.value=s??"")})}function Br(t){var r=t.type;return r==="number"||r==="range"}function qr(t){return t===""?null:+t}let xt=I(oe({type:"none",props:{},resolve:null}));function Gs(){return e(xt)}function ot(t=void 0){const{resolve:r}=e(xt);f(xt,{type:"none",props:{},resolve:null},!0),r==null||r(t)}function Ws(t){return new Promise(r=>{f(xt,{type:"run",props:{cases:t},resolve:r},!0)})}function Xs(t){return new Promise(r=>{f(xt,{type:"restart",props:{cases:t},resolve:r},!0)})}function Ys(t){return new Promise(r=>{f(xt,{type:"clean",props:{cases:t},resolve:r},!0)})}function Ye(t,r="Alert"){return new Promise(a=>{f(xt,{type:"alert",props:{title:r,message:t},resolve:()=>a()},!0)})}function Tn(t,r="Confirm",a="OK",n="primary"){return new Promise(s=>{f(xt,{type:"confirm",props:{title:r,message:t,confirmLabel:a,confirmVariant:n},resolve:s},!0)})}function vn(t,r="",a="Input",n="",s=!1){return new Promise(i=>{f(xt,{type:"prompt",props:{title:a,message:t,value:r,placeholder:n,multiline:s},resolve:i},!0)})}var Qs=P('
');function Zt(t,r){function a(i){return document.body.appendChild(i),{destroy(){i.remove()}}}var n=Qs(),s=C(n);ft(s,()=>r.children),p(n),Ts(n,i=>a==null?void 0:a(i)),u(t,n)}var Zs=P('
'),Js=P('
');function vr(t,r){Ae(r,!0);const a=F=>{var v=Js(),c=C(v),y=C(c),R=C(y),g=C(R,!0);p(R);var b=E(R,2);{var $=D=>{var U=Zs(),H=C(U,!0);p(U),Q(()=>ee(H,r.subtitle)),u(D,U)};Y(b,D=>{r.subtitle&&D($)})}p(y);var _=E(y,2);ft(_,()=>r.children);var L=E(_,2),z=C(L);ft(z,()=>r.footer),p(L),p(c),p(v),Q(()=>{Se(c,1,`w-[min(${n()??""},96vw)] bg-white border border-border rounded-[10px] p-4.5`),we(c,"aria-labelledby",r.titleId),we(R,"id",r.titleId),ee(g,r.title)}),ie("keydown",v,o),ie("mousedown",v,d),ie("click",v,x),u(F,v)};let n=he(r,"maxWidth",3,"520px"),s=he(r,"portal",3,!1);function i(){r.onCancel?r.onCancel():ot(null)}function o(F){F.key==="Escape"?i():F.key==="Enter"&&r.onConfirm&&r.onConfirm()}let l=!1;function d(F){l=F.target.dataset.backdrop!==void 0}function x(F){const v=F.target.dataset.backdrop!==void 0;l&&v&&i(),l=!1}var w=_e(),T=B(w);{var m=F=>{Zt(F,{children:(v,c)=>{a(v)}})},A=F=>{a(F)};Y(T,F=>{s()?F(m):F(A,-1)})}u(t,w),Le()}We(["keydown","mousedown","click"]);var eo=P("");function $e(t,r){let a=he(r,"variant",3,"primary"),n=he(r,"size",3,"default"),s=he(r,"disabled",3,!1);const i={default:"h-[34px] rounded-md px-3.5 leading-none text-[13px] tracking-wide",sm:"h-[30px] rounded-md px-2.5 leading-none text-xs"},o={primary:"bg-edf-bleu-moyen text-white border-none hover:bg-[rgb(12,72,170)]",secondary:"bg-white text-ink border border-border hover:bg-edf-gris-clair",run:"bg-edf-vert-fonce text-white border-none hover:bg-[rgb(38,98,12)]",warning:"bg-edf-orange-moyen text-white border-none hover:bg-[rgb(230,118,20)]",danger:"bg-edf-orange-fonce text-white border-none hover:bg-[rgb(180,56,8)]"};var l=eo(),d=C(l);ft(d,()=>r.children),p(l),Q(()=>{Se(l,1,`inline-flex items-center justify-center gap-1.5 font-bold cursor-pointer transition-colors duration-150 disabled:opacity-40 disabled:pointer-events-none ${i[n()]??""} ${o[a()]??""}`),l.disabled=s()}),ie("click",l,function(...x){var w;(w=r.onclick)==null||w.apply(this,x)}),u(t,l)}We(["click"]);var to=P(" ",1),ro=P(''),no=P(''),ao=P('
'),so=P('

',1);function oo(t,r){Ae(r,!0);let a=he(r,"confirmLabel",3,"OK"),n=he(r,"confirmVariant",3,"primary"),s=he(r,"value",3,""),i=he(r,"placeholder",3,""),o=he(r,"multiline",3,!1);const l=s();let d=I(oe(l)),x=I(void 0),w=I(void 0);Ne(()=>{var A;r.mode==="prompt"&&e(x)?(e(x).focus(),"select"in e(x)&&e(x).select()):e(w)&&((A=e(w).querySelector("button"))==null||A.focus())});function T(){r.mode==="prompt"?ot(e(d)):r.mode==="confirm"?ot(!0):ot()}function m(){r.mode==="confirm"?ot(!1):r.mode==="prompt"?ot(null):ot()}{const A=v=>{var c=to(),y=B(c);{var R=$=>{$e($,{variant:"secondary",onclick:m,children:(_,L)=>{ke();var z=Be("Cancel");u(_,z)},$$slots:{default:!0}})};Y(y,$=>{r.mode!=="alert"&&$(R)})}var g=E(y,2),b=C(g);$e(b,{get variant(){return n()},onclick:T,children:($,_)=>{ke();var L=Be();Q(()=>ee(L,a())),u($,L)},$$slots:{default:!0}}),p(g),nt(g,$=>f(w,$),()=>e(w)),u(v,c)};let F=j(()=>o()?void 0:T);vr(t,{get title(){return r.title},titleId:"app-dialog-title",get onConfirm(){return e(F)},onCancel:m,footer:A,children:(v,c)=>{var y=so(),R=B(y),g=C(R,!0);p(R);var b=E(R,2);{var $=_=>{var L=ao(),z=C(L);{var D=H=>{var O=ro();bs(O),nt(O,V=>f(x,V),()=>e(x)),Q(()=>we(O,"placeholder",i())),tt(O,()=>e(d),V=>f(d,V)),u(H,O)},U=H=>{var O=no();Qe(O),nt(O,V=>f(x,V),()=>e(x)),Q(()=>we(O,"placeholder",i())),tt(O,()=>e(d),V=>f(d,V)),u(H,O)};Y(z,H=>{o()?H(D):H(U,-1)})}p(L),u(_,L)};Y(b,_=>{r.mode==="prompt"&&_($)})}Q(()=>ee(g,r.message)),u(v,y)},$$slots:{footer:!0,default:!0}})}Le()}var io=P('');function Me(t,r){var a=io(),n=C(a),s=E(n);ft(s,()=>r.children),p(a),Q(()=>ee(n,`${r.text??""} `)),u(t,a)}function Ct(t,r){const a=localStorage.getItem(t);if(a===null)return r;const n=Number(a);return Number.isFinite(n)?n:r}function St(t,r){Number.isFinite(r)&&localStorage.setItem(t,String(r))}function lo(t,r){return localStorage.getItem(t)??r}function co(){return{n:Ct("csauto_run_n",1),nt:Ct("csauto_run_nt",1),maxParallel:Ct("csauto_run_max_parallel",0)||null}}function uo(t){St("csauto_run_n",t.n),St("csauto_run_nt",t.nt),t.maxParallel&&St("csauto_run_max_parallel",t.maxParallel)}function fo(){return{n:Ct("csauto_restart_n",1),nt:Ct("csauto_restart_nt",1),maxParallel:Ct("csauto_restart_max_parallel",0)||null,mode:lo("csauto_restart_mode","iterations"),value:Ct("csauto_restart_value",100)}}function vo(t){St("csauto_restart_n",t.n),St("csauto_restart_nt",t.nt),t.maxParallel&&St("csauto_restart_max_parallel",t.maxParallel),localStorage.setItem("csauto_restart_mode",t.mode),St("csauto_restart_value",t.value)}function go(){return{keepLast:Ct("csauto_clean_keep_last",1)}}function ho(t){St("csauto_clean_keep_last",t.keepLast)}var po=P(" ",1),mo=P(''),_o=P(''),bo=P(''),xo=P('
');function yo(t,r){Ae(r,!0);const a=co(),n=a.maxParallel??(r.cases.length>1?r.cases.length:0);let s=I(oe(a.n)),i=I(oe(a.nt)),o=I(oe(n));async function l(){if(!Number.isFinite(e(s))||e(s)<=0){await Ye("MPI ranks must be an integer > 0.","Invalid value");return}if(!Number.isFinite(e(i))||e(i)<=0){await Ye("Threads must be an integer > 0.","Invalid value");return}if(e(o)&&(!Number.isFinite(e(o))||e(o)<=0)){await Ye("Max parallel must be empty or > 0.","Invalid value");return}const d={n:e(s),nt:e(i),maxParallel:e(o)||null};uo(d),ot(d)}{const d=T=>{var m=po(),A=B(m);$e(A,{variant:"secondary",onclick:()=>ot(null),children:(v,c)=>{ke();var y=Be("Cancel");u(v,y)},$$slots:{default:!0}});var F=E(A,2);$e(F,{variant:"run",onclick:l,children:(v,c)=>{ke();var y=Be("Run");u(v,y)},$$slots:{default:!0}}),u(T,m)};let x=j(()=>r.cases.length),w=j(()=>r.cases.length>1?"s":"");vr(t,{title:"Run Cases",titleId:"run-dialog-title",get subtitle(){return`${e(x)??""} case${e(w)??""} selected`},onConfirm:l,footer:d,children:(T,m)=>{var A=xo(),F=C(A);Me(F,{text:"MPI Ranks (n)",children:(y,R)=>{var g=mo();Qe(g),tt(g,()=>e(s),b=>f(s,b)),u(y,g)}});var v=E(F,2);Me(v,{text:"OMP Threads (nt)",children:(y,R)=>{var g=_o();Qe(g),tt(g,()=>e(i),b=>f(i,b)),u(y,g)}});var c=E(v,2);Me(c,{text:"Max Parallel",children:(y,R)=>{var g=bo();Qe(g),tt(g,()=>e(o),b=>f(o,b)),u(y,g)}}),p(A),u(T,A)},$$slots:{footer:!0,default:!0}})}Le()}var wo=P(" ",1),ko=P(''),Co=P(''),So=P(''),$o=P(""),Po=P(''),Eo=P('
',1);function Ro(t,r){Ae(r,!0);const a=fo(),n=a.maxParallel??(r.cases.length>1?r.cases.length:0);let s=I(oe(a.n)),i=I(oe(a.nt)),o=I(oe(n)),l=I(oe(a.mode)),d=I(oe(a.value)),x=j(()=>e(l)==="iterations"?"Additional iterations":"Additional physical time"),w=j(()=>e(l)==="iterations"?"1":"any"),T=j(()=>e(l)==="iterations"?"1":"0");async function m(){if(!Number.isFinite(e(s))||e(s)<=0){await Ye("MPI ranks must be an integer > 0.","Invalid value");return}if(!Number.isFinite(e(i))||e(i)<=0){await Ye("Threads must be an integer > 0.","Invalid value");return}if(e(o)&&(!Number.isFinite(e(o))||e(o)<=0)){await Ye("Max parallel must be empty or > 0.","Invalid value");return}if(!Number.isFinite(e(d))||e(d)<=0){await Ye("Value must be > 0.","Invalid value");return}if(e(l)==="iterations"&&!Number.isInteger(e(d))){await Ye("Iterations must be an integer.","Invalid value");return}const A={n:e(s),nt:e(i),maxParallel:e(o)||null,restartMode:e(l),restartValue:e(d)};vo({n:e(s),nt:e(i),maxParallel:e(o)||null,mode:e(l),value:e(d)}),ot(A)}{const A=c=>{var y=wo(),R=B(y);$e(R,{variant:"secondary",onclick:()=>ot(null),children:(b,$)=>{ke();var _=Be("Cancel");u(b,_)},$$slots:{default:!0}});var g=E(R,2);$e(g,{variant:"warning",onclick:m,children:(b,$)=>{ke();var _=Be("Restart");u(b,_)},$$slots:{default:!0}}),u(c,y)};let F=j(()=>r.cases.length),v=j(()=>r.cases.length>1?"s":"");vr(t,{title:"Restart Cases",titleId:"restart-dialog-title",get subtitle(){return`${e(F)??""} case${e(v)??""} selected`},onConfirm:m,footer:A,children:(c,y)=>{var R=Eo(),g=B(R),b=C(g);Me(b,{text:"MPI Ranks (n)",children:(U,H)=>{var O=ko();Qe(O),tt(O,()=>e(s),V=>f(s,V)),u(U,O)}});var $=E(b,2);Me($,{text:"OMP Threads (nt)",children:(U,H)=>{var O=Co();Qe(O),tt(O,()=>e(i),V=>f(i,V)),u(U,O)}});var _=E($,2);Me(_,{text:"Max Parallel",children:(U,H)=>{var O=So();Qe(O),tt(O,()=>e(o),V=>f(o,V)),u(U,O)}}),p(g);var L=E(g,2),z=C(L);Me(z,{text:"Stop criterion",children:(U,H)=>{var O=$o(),V=C(O);V.value=V.__value="iterations";var q=E(V);q.value=q.__value="physical_time",p(O),Os(O,()=>e(l),X=>f(l,X)),u(U,O)}});var D=E(z,2);Me(D,{get text(){return e(x)},children:(U,H)=>{var O=Po();Qe(O),Q(()=>{we(O,"min",e(T)),we(O,"step",e(w))}),tt(O,()=>e(d),V=>f(d,V)),u(U,O)}}),p(L),u(c,R)},$$slots:{footer:!0,default:!0}})}Le()}function Te(t,r){let a=he(r,"size",3,14);var n=_e(),s=B(n);ws(s,()=>r.icon,(i,o)=>{o(i,{get size(){return a()},class:"icon"})}),u(t,n)}/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -46,7 +46,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const Ns={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};/** + */const No={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -93,7 +93,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const Ms=t=>{for(const r in t)if(r.startsWith("aria-")||r==="role"||r==="title")return!0;return!1};/** + */const Mo=t=>{for(const r in t)if(r.startsWith("aria-")||r==="role"||r==="title")return!0;return!1};/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -140,7 +140,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const Fn=(...t)=>t.filter((r,a,n)=>!!r&&r.trim()!==""&&n.indexOf(r)===a).join(" ").trim();var As=It("");function Ke(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]),n=Ue(a,["name","color","size","strokeWidth","absoluteStrokeWidth","iconNode"]);Ae(r,!1);let o=he(r,"name",8,void 0),i=he(r,"color",8,"currentColor"),s=he(r,"size",8,24),l=he(r,"strokeWidth",8,2),d=he(r,"absoluteStrokeWidth",8,!1),y=he(r,"iconNode",24,()=>[]);Ro();var w=As();An(w,(M,F,h)=>({...Ns,...M,...n,width:s(),height:s(),stroke:i(),"stroke-width":F,class:h}),[()=>Ms(n)?void 0:{"aria-hidden":"true"},()=>(jt(d()),jt(l()),jt(s()),Rr(()=>d()?Number(l())*24/Number(s()):l())),()=>(jt(Fn),jt(o()),jt(a),Rr(()=>Fn("lucide-icon","lucide",o()?`lucide-${o()}`:"",a.class)))]);var L=k(w);Je(L,1,y,un,(M,F)=>{var h=U(()=>yo(e(F),2));let c=()=>e(h)[0],x=()=>e(h)[1];var R=_e(),g=B(R);To(g,c,!0,(b,S)=>{An(b,()=>({...x()}))}),u(M,R)});var m=P(L);Ve(m,r,"default",{}),p(w),u(t,w),Le()}function Ls(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const Fn=(...t)=>t.filter((r,a,n)=>!!r&&r.trim()!==""&&n.indexOf(r)===a).join(" ").trim();var Ao=Ot("");function Ke(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]),n=Ve(a,["name","color","size","strokeWidth","absoluteStrokeWidth","iconNode"]);Ae(r,!1);let s=he(r,"name",8,void 0),i=he(r,"color",8,"currentColor"),o=he(r,"size",8,24),l=he(r,"strokeWidth",8,2),d=he(r,"absoluteStrokeWidth",8,!1),x=he(r,"iconNode",24,()=>[]);Es();var w=Ao();An(w,(A,F,v)=>({...No,...A,...n,width:o(),height:o(),stroke:i(),"stroke-width":F,class:v}),[()=>Mo(n)?void 0:{"aria-hidden":"true"},()=>(Vt(d()),Vt(l()),Vt(o()),Rr(()=>d()?Number(l())*24/Number(o()):l())),()=>(Vt(Fn),Vt(s()),Vt(a),Rr(()=>Fn("lucide-icon","lucide",s()?`lucide-${s()}`:"",a.class)))]);var T=C(w);Ze(T,1,x,un,(A,F)=>{var v=j(()=>xs(e(F),2));let c=()=>e(v)[0],y=()=>e(v)[1];var R=_e(),g=B(R);Ls(g,c,!0,(b,$)=>{An(b,()=>({...y()}))}),u(A,R)});var m=E(T);Ue(m,r,"default",{}),p(w),u(t,w),Le()}function Lo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -187,7 +187,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M12 5v14"}],["path",{d:"m19 12-7 7-7-7"}]];Ke(t,qe({name:"arrow-down"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Ts(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M12 5v14"}],["path",{d:"m19 12-7 7-7-7"}]];Ke(t,qe({name:"arrow-down"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function To(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -234,7 +234,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M8 3 4 7l4 4"}],["path",{d:"M4 7h16"}],["path",{d:"m16 21 4-4-4-4"}],["path",{d:"M20 17H4"}]];Ke(t,qe({name:"arrow-left-right"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Fs(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M8 3 4 7l4 4"}],["path",{d:"M4 7h16"}],["path",{d:"m16 21 4-4-4-4"}],["path",{d:"M20 17H4"}]];Ke(t,qe({name:"arrow-left-right"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Fo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -281,7 +281,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"m5 12 7-7 7 7"}],["path",{d:"M12 19V5"}]];Ke(t,qe({name:"arrow-up"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function gn(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"m5 12 7-7 7 7"}],["path",{d:"M12 19V5"}]];Ke(t,qe({name:"arrow-up"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function gn(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -328,7 +328,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"m6 9 6 6 6-6"}]];Ke(t,qe({name:"chevron-down"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Ds(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"m6 9 6 6 6-6"}]];Ke(t,qe({name:"chevron-down"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Do(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -375,7 +375,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"m9 18 6-6-6-6"}]];Ke(t,qe({name:"chevron-right"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function zs(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"m9 18 6-6-6-6"}]];Ke(t,qe({name:"chevron-right"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function zo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -422,7 +422,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["circle",{cx:"12",cy:"12",r:"10"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1"}]];Ke(t,qe({name:"circle-stop"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Is(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["circle",{cx:"12",cy:"12",r:"10"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1"}]];Ke(t,qe({name:"circle-stop"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Io(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -469,7 +469,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"m15 9-6 6"}],["path",{d:"m9 9 6 6"}]];Ke(t,qe({name:"circle-x"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function gr(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"m15 9-6 6"}],["path",{d:"m9 9 6 6"}]];Ke(t,qe({name:"circle-x"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function gr(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -516,7 +516,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M12 15V3"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}],["path",{d:"m7 10 5 5 5-5"}]];Ke(t,qe({name:"download"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Os(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M12 15V3"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}],["path",{d:"m7 10 5 5 5-5"}]];Ke(t,qe({name:"download"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Oo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -563,7 +563,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z"}],["path",{d:"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97"}]];Ke(t,qe({name:"droplets"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Hs(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z"}],["path",{d:"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97"}]];Ke(t,qe({name:"droplets"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Ho(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -610,7 +610,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["circle",{cx:"12",cy:"12",r:"1"}],["circle",{cx:"19",cy:"12",r:"1"}],["circle",{cx:"5",cy:"12",r:"1"}]];Ke(t,qe({name:"ellipsis"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function js(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["circle",{cx:"12",cy:"12",r:"1"}],["circle",{cx:"19",cy:"12",r:"1"}],["circle",{cx:"5",cy:"12",r:"1"}]];Ke(t,qe({name:"ellipsis"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function jo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -657,7 +657,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M15 3h6v6"}],["path",{d:"M10 14 21 3"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}]];Ke(t,qe({name:"external-link"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Us(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M15 3h6v6"}],["path",{d:"M10 14 21 3"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}]];Ke(t,qe({name:"external-link"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Vo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -704,7 +704,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z"}],["path",{d:"M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z"}]];Ke(t,qe({name:"fast-forward"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Vs(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z"}],["path",{d:"M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z"}]];Ke(t,qe({name:"fast-forward"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Uo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -751,7 +751,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1"}]];Ke(t,qe({name:"pause"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Bs(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1"}]];Ke(t,qe({name:"pause"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Bo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -798,7 +798,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M13 21h8"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}]];Ke(t,qe({name:"pen-line"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function qs(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M13 21h8"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}]];Ke(t,qe({name:"pen-line"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function qo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -845,7 +845,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}],["path",{d:"m15 5 4 4"}]];Ke(t,qe({name:"pencil"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function pa(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}],["path",{d:"m15 5 4 4"}]];Ke(t,qe({name:"pencil"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function pa(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -892,7 +892,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"}]];Ke(t,qe({name:"play"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Ks(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"}]];Ke(t,qe({name:"play"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Ko(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -939,7 +939,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M5 12h14"}],["path",{d:"M12 5v14"}]];Ke(t,qe({name:"plus"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Zt(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M5 12h14"}],["path",{d:"M12 5v14"}]];Ke(t,qe({name:"plus"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Jt(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -986,7 +986,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"}],["path",{d:"M21 3v5h-5"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"}],["path",{d:"M8 16H3v5"}]];Ke(t,qe({name:"refresh-cw"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Gs(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"}],["path",{d:"M21 3v5h-5"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"}],["path",{d:"M8 16H3v5"}]];Ke(t,qe({name:"refresh-cw"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Go(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -1033,7 +1033,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}],["path",{d:"M3 3v5h5"}]];Ke(t,qe({name:"rotate-ccw"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Ws(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}],["path",{d:"M3 3v5h5"}]];Ke(t,qe({name:"rotate-ccw"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Wo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -1080,7 +1080,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7"}]];Ke(t,qe({name:"save"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Xs(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7"}]];Ke(t,qe({name:"save"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Xo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -1127,7 +1127,7 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"}],["circle",{cx:"12",cy:"12",r:"3"}]];Ke(t,qe({name:"settings"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}function Ys(t,r){const a=Ue(r,["children","$$slots","$$events","$$legacy"]);/** + */const n=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"}],["circle",{cx:"12",cy:"12",r:"3"}]];Ke(t,qe({name:"settings"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}function Yo(t,r){const a=Ve(r,["children","$$slots","$$events","$$legacy"]);/** * @license lucide-svelte v1.0.1 - ISC * * ISC License @@ -1174,17 +1174,17 @@ import{b as Sr,a as u,f as $,c as _e,t as Be,d as It}from"../chunks/C14P8jaG.js" * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * - */const n=[["path",{d:"M10 11v6"}],["path",{d:"M14 11v6"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"}],["path",{d:"M3 6h18"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}]];Ke(t,qe({name:"trash-2"},()=>a,{get iconNode(){return n},children:(o,i)=>{var s=_e(),l=B(s);Ve(l,r,"default",{}),u(o,s)},$$slots:{default:!0}}))}var Qs=$('
  • '),Js=$('
      '),Zs=$('
      ',1);function lt(t,r){Ae(r,!0);let a=he(r,"value",3,""),n=he(r,"placeholder",3,"Select..."),o=he(r,"class",3,""),i=he(r,"buttonClass",3,""),s=I(!1),l=I(void 0),d=I(void 0),y=I(""),w=U(()=>{var D;return((D=r.options.find(V=>V.value===a()))==null?void 0:D.label)??n()});function L(D){var V;f(s,!1),(V=r.onchange)==null||V.call(r,D)}function m(){if(!e(l)||!e(d))return;const D=e(l).getBoundingClientRect(),V=e(d).offsetHeight,H=4,O=window.innerHeight-D.bottom-H,q=OO?D.top-H-V:D.bottom+H,Y=Math.min(D.left,window.innerWidth-D.width);f(y,`position:fixed; top:${q}px; left:${Y}px; width:${D.width}px; z-index:9999;`)}async function M(){f(s,!e(s)),e(s)&&(await Pt(),m())}function F(D){D.key==="Escape"&&f(s,!1)}function h(D){e(s)&&e(l)&&!e(l).contains(D.target)&&e(d)&&!e(d).contains(D.target)&&f(s,!1)}var c=Zs();rt("mousedown",it,h),rt("keydown",it,F),rt("scroll",it,()=>{e(s)&&f(s,!1)});var x=B(c),R=k(x),g=k(R),b=k(g,!0);p(g);var S=P(g,2),_=k(S);Te(_,{get icon(){return gn},size:14}),p(S),p(R),nt(R,D=>f(l,D),()=>e(l)),p(x);var T=P(x,2);{var z=D=>{Jt(D,{children:(V,H)=>{var O=Js();Je(O,21,()=>r.options,j=>j.value,(j,q)=>{var Y=Qs();Se(Y,"tabindex",0);var ae=k(Y,!0);p(Y),Q(()=>{Se(Y,"aria-selected",e(q).value===a()),Ce(Y,1,`px-2.5 py-1.5 text-[13px] cursor-pointer transition-colors duration-100 - ${e(q).value===a()?"text-edf-bleu-fonce font-bold bg-[rgba(16,87,200,0.06)]":"text-ink hover:bg-edf-gris-clair"}`),ee(ae,e(q).label)}),ie("mousedown",Y,N=>{N.stopPropagation(),L(e(q).value)}),u(j,Y)}),p(O),nt(O,j=>f(d,j),()=>e(d)),Q(()=>Ze(O,e(y))),u(V,O)}})};X(T,D=>{e(s)&&D(z)})}Q(()=>{Ce(x,1,`relative inline-flex ${o()??""}`),Ce(R,1,dt(i()||"flex items-center justify-between gap-1.5 w-full h-[30px] cursor-pointer bg-white border border-border rounded-md text-[13px] text-ink font-normal pl-2.5 pr-2 transition-colors duration-150 hover:bg-edf-gris-clair focus:outline-none focus:border-edf-bleu-moyen")),Se(R,"aria-expanded",e(s)),ee(b,e(w)),Ce(S,1,`text-muted shrink-0 transition-transform duration-150 ${e(s)?"rotate-180":""}`)}),ie("mousedown",R,D=>{D.stopPropagation(),M()}),u(t,c),Le()}We(["mousedown"]);var ei=It(''),ti=$('
      '),ri=$('
      '),ni=$('
      ',1);function Gt(t,r){Ae(r,!0);let a=he(r,"selected",19,()=>[]),n=he(r,"placeholder",3,"Select..."),o=he(r,"class",3,""),i=I(!1),s=I(void 0),l=I(void 0),d=I(""),y=U(()=>new Set(a())),w=U(()=>a().length===0?n():a().length===r.options.length?`All (${r.options.length})`:a().length<=2?a().map(H=>{var O;return((O=r.options.find(j=>j.value===H))==null?void 0:O.label)??H}).join(", "):`${a().length} selected`);function L(H){var j;const O=new Set(e(y));O.has(H)?O.delete(H):O.add(H),(j=r.onchange)==null||j.call(r,[...O])}function m(){var H;(H=r.onchange)==null||H.call(r,r.options.map(O=>O.value))}function M(){var H;(H=r.onchange)==null||H.call(r,[])}function F(){if(!e(s)||!e(l))return;const H=e(s).getBoundingClientRect(),O=e(l).offsetHeight,j=4,q=window.innerHeight-H.bottom-j,ae=qq?H.top-j-O:H.bottom+j,N=Math.min(H.left,window.innerWidth-H.width);f(d,`position:fixed; top:${ae}px; left:${N}px; min-width:${H.width}px; z-index:9999;`)}async function h(){f(i,!e(i)),e(i)&&(await Pt(),F())}function c(H){e(i)&&e(s)&&!e(s).contains(H.target)&&e(l)&&!e(l).contains(H.target)&&f(i,!1)}function x(H){H.key==="Escape"&&f(i,!1)}var R=ni();rt("mousedown",it,c),rt("keydown",it,x),rt("scroll",it,()=>{e(i)&&f(i,!1)});var g=B(R),b=k(g),S=k(b),_=k(S,!0);p(S);var T=P(S,2),z=k(T);Te(z,{get icon(){return gn},size:14}),p(T),p(b),nt(b,H=>f(s,H),()=>e(s)),p(g);var D=P(g,2);{var V=H=>{Jt(H,{children:(O,j)=>{var q=ri(),Y=k(q),ae=k(Y),N=P(ae,2);p(Y);var C=P(Y,2);Je(C,17,()=>r.options,v=>v.value,(v,A)=>{var E=ti(),J=k(E),oe=k(J);{var ge=ne=>{var ue=ei();u(ne,ue)},le=U(()=>e(y).has(e(A).value));X(oe,ne=>{e(le)&&ne(ge)})}p(J);var K=P(J,2),re=k(K,!0);p(K),p(E),Q(ne=>{Ce(J,1,`inline-flex items-center justify-center shrink-0 w-[14px] h-[14px] rounded border-2 transition-colors duration-100 - ${ne??""}`),ee(re,e(A).label)},[()=>e(y).has(e(A).value)?"bg-edf-bleu-moyen border-edf-bleu-moyen text-white":"bg-white border-edf-gris-moyen"]),ie("mousedown",E,ne=>{ne.stopPropagation(),L(e(A).value)}),u(v,E)}),p(q),nt(q,v=>f(l,v),()=>e(l)),Q(()=>Ze(q,e(d))),ie("mousedown",ae,v=>{v.stopPropagation(),m()}),ie("mousedown",N,v=>{v.stopPropagation(),M()}),u(O,q)}})};X(D,H=>{e(i)&&H(V)})}Q(()=>{Ce(g,1,`relative inline-flex ${o()??""}`),Se(b,"aria-expanded",e(i)),ee(_,e(w)),Ce(T,1,`text-muted shrink-0 transition-transform duration-150 ${e(i)?"rotate-180":""}`)}),ie("mousedown",b,H=>{H.stopPropagation(),h()}),u(t,R),Le()}We(["mousedown"]);const Yr="csauto_token";let ma=I(se(localStorage.getItem(Yr)??""));function _a(){return e(ma)}function ba(t){f(ma,t,!0),t?localStorage.setItem(Yr,t):localStorage.removeItem(Yr)}let xr=null;async function hn(t,r={}){const a=new Headers(r.headers),n=_a();n&&a.set("X-CSAUTO-TOKEN",n);const o=await fetch(t,{...r,headers:a});if(o.status===401){xr||(xr=vn("API token required:",n,"Authentication"));const i=await xr;return xr=null,i===null?o:(ba(i),a.set("X-CSAUTO-TOKEN",i),fetch(t,{...r,headers:a}))}return o}async function ct(t){const r=await hn(t);if(!r.ok)throw new Error(`GET ${t} failed: ${r.status}`);return r.json()}async function Dr(t){const r=await hn(t);if(!r.ok)throw new Error(`GET ${t} failed: ${r.status}`);return r.text()}async function Rt(t,r){const a=await hn(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok){const n=await a.text().catch(()=>a.statusText);throw new Error(`POST ${t} failed: ${a.status} — ${n}`)}return a.json()}function zr(t){return t.map(r=>`case=${encodeURIComponent(r)}`).join("&")}function ai(t=!1){return ct(`/api/status${t?"?log=1":""}`)}function Dn(t){return ct(`/api/perf?${zr(t)}`)}function oi(){return ct("/api/app_config")}function si(t){return ct(`/api/residual_columns?${zr(t)}`).then(r=>r.columns??[])}function ii(t,r,a={}){const n=new URLSearchParams;return t.forEach(o=>n.append("case",o)),n.set("columns",r.join(",")),a.width&&n.set("width",String(a.width)),a.height&&n.set("height",String(a.height)),a.xMin!==void 0&&n.set("x_min",String(a.xMin)),a.includeHistory&&n.set("include_history","true"),Dr(`/api/residuals_svg?${n}`)}function xa(t){return ct(`/api/restart_origin?${zr(t)}`)}function li(t){var a;const r=new URLSearchParams;return t.cases.forEach(n=>r.append("case",n)),(a=t.files)!=null&&a.length&&r.set("files",t.files.join(",")),t.maxHits&&r.set("max_hits",String(t.maxHits)),t.context!==void 0&&r.set("context",String(t.context)),t.sev&&r.set("sev",t.sev),t.q&&r.set("q",t.q),ct(`/api/recent_errors?${r}`)}function ci(t,r,a){const n=new URLSearchParams({case:t,file:r,n:String(a)});return Dr(`/api/tail?${n}`)}function ui(t){return ct(`/api/resu_files?case=${encodeURIComponent(t)}`).then(r=>r.files??[])}function di(t){return ct(`/api/resu_dirs?${zr(t)}`).then(r=>r.dirs??[])}function Qr(t,r){const a=new URLSearchParams({scope:r});return t.forEach(n=>a.append("case",n)),ct(`/api/probes?${a}`).then(n=>n.files??[])}function fi(t,r){const a=new URLSearchParams;return t.forEach(n=>a.append("case",n)),r.forEach(n=>a.append("probe",n)),ct(`/api/probe_columns?${a}`).then(n=>n.columns??[])}function vi(t,r,a){const n=new URLSearchParams({case:t,probe:r});return a.forEach(o=>n.append("column",o)),ct(`/api/probe_position?${n}`)}function gi(t){const r=new URLSearchParams;return t.cases.forEach(a=>r.append("case",a)),t.probes.forEach(a=>r.append("probe",a)),r.set("columns",t.columns.join(",")),t.axis&&r.set("axis",t.axis),t.xMin!==void 0&&r.set("x_min",String(t.xMin)),t.timeMin!==void 0&&r.set("time_min",String(t.timeMin)),r.set("include_history","true"),t.width&&r.set("width",String(t.width)),t.height&&r.set("height",String(t.height)),Dr(`/api/probe_svg?${r}`)}function hi(t){const r=new URLSearchParams;return t.cases.forEach(a=>r.append("case",a)),t.base&&r.set("base",t.base),t.kind&&r.set("kind",t.kind),t.filter&&r.set("filter",t.filter),Dr(`/api/compare_runs?${r}`)}function zn(t){return Rt("/api/run_case",{cases:t.cases,n:t.n,nt:t.nt,max_parallel:t.maxParallel??void 0,restart:t.restart??!1,restart_mode:t.restartMode??"",restart_value:t.restartValue??void 0}).then(()=>{})}function pi(t){return Rt("/api/kill_case",{cases:t}).then(()=>{})}function yr(t){return Rt("/api/control_case",{cases:t.cases,action:t.action,value:t.value??void 0}).then(()=>{})}function mi(t){return Rt("/api/cleanup_cases",{cases:t.cases,keep_last:t.keepLast??1,prune_resu:t.pruneResu??!0,keep_resu:t.keepResu??[],delete_resu:t.deleteResu??[],max_log_mb:t.maxLogMb??50,clear_cid:!0,clear_pyc:!1})}function _i(t,r){return Rt("/api/case_note",{case:t,note:r}).then(()=>{})}function bi(t,r){return Rt("/api/case_convergence",{case:t,convergence:r}).then(()=>{})}function xi(t){return Rt("/api/open_gui",{case:t}).then(()=>{})}function yi(){return ct("/api/settings/telemetry")}function wi(t){return Rt("/api/settings/telemetry",{enabled:t})}var ki=$(" ",1),Ci=$(''),Si=$('Loading...'),$i=$('No folders found'),Pi=$('
      '),Ei=$('
      ',1);function Ri(t,r){Ae(r,!0);const a=gs();let n=I("keep_latest"),o=I(se(a.keepLast)),i=I(se([])),s=I(se([])),l=I(!0),d=U(()=>e(n)==="keep_folder"||e(n)==="delete_folder");const y=[{value:"keep_latest",label:"Keep latest N"},{value:"delete_all",label:"Delete all RESU"},{value:"keep_folder",label:"Keep specific folders"},{value:"delete_folder",label:"Delete specific folders"}];let w=U(()=>e(i).map(m=>({value:m,label:m})));Yn(async()=>{try{f(i,await di(r.cases),!0)}catch{f(i,[],!0)}f(l,!1)});async function L(){if(e(d)&&e(s).length===0){await Ye("Please select at least one RESU folder.","Missing selection");return}const m={action:e(n)};e(n)==="keep_latest"?(m.keepLast=e(o),hs({keepLast:e(o)})):e(n)==="delete_all"?m.keepLast=0:e(n)==="keep_folder"?m.keepResu=e(s):e(n)==="delete_folder"&&(m.deleteResu=e(s)),st(m)}{const m=h=>{var c=ki(),x=B(c);$e(x,{variant:"secondary",onclick:()=>st(null),children:(g,b)=>{we();var S=Be("Cancel");u(g,S)},$$slots:{default:!0}});var R=P(x,2);$e(R,{variant:"primary",onclick:L,children:(g,b)=>{we();var S=Be("Clean");u(g,S)},$$slots:{default:!0}}),u(h,c)};let M=U(()=>r.cases.length),F=U(()=>r.cases.length>1?"s":"");vr(t,{title:"Cleanup Cases",titleId:"clean-dialog-title",get subtitle(){return`${e(M)??""} case${e(F)??""} selected`},footer:m,children:(h,c)=>{var x=Ei(),R=B(x),g=k(R);Me(g,{text:"Action",children:(z,D)=>{lt(z,{class:"w-[200px]",get options(){return y},get value(){return e(n)},onchange:V=>f(n,V,!0)})}});var b=P(g,2);{var S=z=>{Me(z,{text:"Keep last",children:(D,V)=>{var H=Ci();Qe(H),tt(H,()=>e(o),O=>f(o,O)),u(D,H)}})};X(b,z=>{e(n)==="keep_latest"&&z(S)})}p(R);var _=P(R,2);{var T=z=>{var D=Pi(),V=k(D);Me(V,{text:"RESU folders",children:(H,O)=>{var j=_e(),q=B(j);{var Y=C=>{var v=Si();u(C,v)},ae=C=>{var v=$i();u(C,v)},N=C=>{Gt(C,{class:"w-full",get options(){return e(w)},get selected(){return e(s)},onchange:v=>f(s,v,!0),placeholder:"Select folders..."})};X(q,C=>{e(l)?C(Y):e(i).length===0?C(ae,1):C(N,-1)})}u(H,j)}}),p(D),u(z,D)};X(_,z=>{e(d)&&z(T)})}u(h,x)},$$slots:{footer:!0,default:!0}})}Le()}function Ni(t,r){Ae(r,!0);let a=U(Wo);var n=_e(),o=B(n);{var i=y=>{ys(y,{get cases(){return e(a).props.cases}})},s=y=>{Rs(y,{get cases(){return e(a).props.cases}})},l=y=>{Ri(y,{get cases(){return e(a).props.cases}})},d=y=>{is(y,{get mode(){return e(a).type},get title(){return e(a).props.title},get message(){return e(a).props.message},get confirmLabel(){return e(a).props.confirmLabel},get confirmVariant(){return e(a).props.confirmVariant},get value(){return e(a).props.value},get placeholder(){return e(a).props.placeholder},get multiline(){return e(a).props.multiline}})};X(o,y=>{e(a).type==="run"?y(i):e(a).type==="restart"?y(s,1):e(a).type==="clean"?y(l,2):(e(a).type==="alert"||e(a).type==="confirm"||e(a).type==="prompt")&&y(d,3)})}u(t,n),Le()}let ur=I(se([])),Mi=0;function Ai(){return e(ur)}function wr(t,r="success",a=3500){const n=++Mi;f(ur,[...e(ur),{id:n,message:t,variant:r}],!0),setTimeout(()=>ya(n),a)}function ya(t){f(ur,e(ur).filter(r=>r.id!==t),!0)}var Li=$('
      '),Ti=$('
      ');function Fi(t,r){Ae(r,!0);let a=U(Ai);Jt(t,{children:(n,o)=>{var i=Ti();Je(i,21,()=>e(a),s=>s.id,(s,l)=>{var d=Li(),y=k(d,!0);p(d),Q(()=>{Ce(d,1,`pointer-events-auto max-w-[320px] px-4 py-2.5 rounded-md shadow-lg text-sm font-semibold text-white cursor-pointer ${e(l).variant==="success"?"bg-edf-vert-fonce":"bg-edf-orange-fonce"}`),ee(y,e(l).message)}),ie("click",d,()=>ya(e(l).id)),u(s,d)}),p(i),u(n,i)}}),Le()}We(["click"]);var Di=It(''),zi=It(''),Ii=$(''),Oi=$(" ",1),Hi=$(" ",1),ji=$('');function zt(t,r){Ae(r,!0);const a=h=>{var c=Ii(),x=k(c);{var R=b=>{var S=Di();Q(()=>Ze(S,`width: ${s()-4}px; height: ${s()-4}px;`)),u(b,S)},g=b=>{var S=zi();Q(()=>Ze(S,`width: ${s()-4}px; height: ${s()-4}px;`)),u(b,S)};X(x,b=>{n()&&!o()?b(R):o()&&b(g,1)})}p(c),Q(()=>{Ce(c,1,`inline-flex items-center justify-center rounded border-2 cursor-pointer transition-colors duration-100 shrink-0 + */const n=[["path",{d:"M10 11v6"}],["path",{d:"M14 11v6"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"}],["path",{d:"M3 6h18"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}]];Ke(t,qe({name:"trash-2"},()=>a,{get iconNode(){return n},children:(s,i)=>{var o=_e(),l=B(o);Ue(l,r,"default",{}),u(s,o)},$$slots:{default:!0}}))}var Qo=P('
    • '),Zo=P('
        '),Jo=P('
        ',1);function lt(t,r){Ae(r,!0);let a=he(r,"value",3,""),n=he(r,"placeholder",3,"Select..."),s=he(r,"class",3,""),i=he(r,"buttonClass",3,""),o=I(!1),l=I(void 0),d=I(void 0),x=I(""),w=j(()=>{var D;return((D=r.options.find(U=>U.value===a()))==null?void 0:D.label)??n()});function T(D){var U;f(o,!1),(U=r.onchange)==null||U.call(r,D)}function m(){if(!e(l)||!e(d))return;const D=e(l).getBoundingClientRect(),U=e(d).offsetHeight,H=4,O=window.innerHeight-D.bottom-H,q=OO?D.top-H-U:D.bottom+H,X=Math.min(D.left,window.innerWidth-D.width);f(x,`position:fixed; top:${q}px; left:${X}px; width:${D.width}px; z-index:9999;`)}async function A(){f(o,!e(o)),e(o)&&(await Pt(),m())}function F(D){D.key==="Escape"&&f(o,!1)}function v(D){e(o)&&e(l)&&!e(l).contains(D.target)&&e(d)&&!e(d).contains(D.target)&&f(o,!1)}var c=Jo();rt("mousedown",it,v),rt("keydown",it,F),rt("scroll",it,()=>{e(o)&&f(o,!1)});var y=B(c),R=C(y),g=C(R),b=C(g,!0);p(g);var $=E(g,2),_=C($);Te(_,{get icon(){return gn},size:14}),p($),p(R),nt(R,D=>f(l,D),()=>e(l)),p(y);var L=E(y,2);{var z=D=>{Zt(D,{children:(U,H)=>{var O=Zo();Ze(O,21,()=>r.options,V=>V.value,(V,q)=>{var X=Qo();we(X,"tabindex",0);var ae=C(X,!0);p(X),Q(()=>{we(X,"aria-selected",e(q).value===a()),Se(X,1,`px-2.5 py-1.5 text-[13px] cursor-pointer transition-colors duration-100 + ${e(q).value===a()?"text-edf-bleu-fonce font-bold bg-[rgba(16,87,200,0.06)]":"text-ink hover:bg-edf-gris-clair"}`),ee(ae,e(q).label)}),ie("mousedown",X,N=>{N.stopPropagation(),T(e(q).value)}),u(V,X)}),p(O),nt(O,V=>f(d,V),()=>e(d)),Q(()=>Je(O,e(x))),u(U,O)}})};Y(L,D=>{e(o)&&D(z)})}Q(()=>{Se(y,1,`relative inline-flex ${s()??""}`),Se(R,1,dt(i()||"flex items-center justify-between gap-1.5 w-full h-[30px] cursor-pointer bg-white border border-border rounded-md text-[13px] text-ink font-normal pl-2.5 pr-2 transition-colors duration-150 hover:bg-edf-gris-clair focus:outline-none focus:border-edf-bleu-moyen")),we(R,"aria-expanded",e(o)),ee(b,e(w)),Se($,1,`text-muted shrink-0 transition-transform duration-150 ${e(o)?"rotate-180":""}`)}),ie("mousedown",R,D=>{D.stopPropagation(),A()}),u(t,c),Le()}We(["mousedown"]);var ei=Ot(''),ti=P('
        '),ri=P('
        '),ni=P('
        ',1);function Gt(t,r){Ae(r,!0);let a=he(r,"selected",19,()=>[]),n=he(r,"placeholder",3,"Select..."),s=he(r,"class",3,""),i=I(!1),o=I(void 0),l=I(void 0),d=I(""),x=j(()=>new Set(a())),w=j(()=>a().length===0?n():a().length===r.options.length?`All (${r.options.length})`:a().length<=2?a().map(H=>{var O;return((O=r.options.find(V=>V.value===H))==null?void 0:O.label)??H}).join(", "):`${a().length} selected`);function T(H){var V;const O=new Set(e(x));O.has(H)?O.delete(H):O.add(H),(V=r.onchange)==null||V.call(r,[...O])}function m(){var H;(H=r.onchange)==null||H.call(r,r.options.map(O=>O.value))}function A(){var H;(H=r.onchange)==null||H.call(r,[])}function F(){if(!e(o)||!e(l))return;const H=e(o).getBoundingClientRect(),O=e(l).offsetHeight,V=4,q=window.innerHeight-H.bottom-V,ae=qq?H.top-V-O:H.bottom+V,N=Math.min(H.left,window.innerWidth-H.width);f(d,`position:fixed; top:${ae}px; left:${N}px; min-width:${H.width}px; z-index:9999;`)}async function v(){f(i,!e(i)),e(i)&&(await Pt(),F())}function c(H){e(i)&&e(o)&&!e(o).contains(H.target)&&e(l)&&!e(l).contains(H.target)&&f(i,!1)}function y(H){H.key==="Escape"&&f(i,!1)}var R=ni();rt("mousedown",it,c),rt("keydown",it,y),rt("scroll",it,()=>{e(i)&&f(i,!1)});var g=B(R),b=C(g),$=C(b),_=C($,!0);p($);var L=E($,2),z=C(L);Te(z,{get icon(){return gn},size:14}),p(L),p(b),nt(b,H=>f(o,H),()=>e(o)),p(g);var D=E(g,2);{var U=H=>{Zt(H,{children:(O,V)=>{var q=ri(),X=C(q),ae=C(X),N=E(ae,2);p(X);var M=E(X,2);Ze(M,17,()=>r.options,h=>h.value,(h,k)=>{var S=ti(),Z=C(S),re=C(Z);{var ge=se=>{var ue=ei();u(se,ue)},le=j(()=>e(x).has(e(k).value));Y(re,se=>{e(le)&&se(ge)})}p(Z);var K=E(Z,2),ne=C(K,!0);p(K),p(S),Q(se=>{Se(Z,1,`inline-flex items-center justify-center shrink-0 w-[14px] h-[14px] rounded border-2 transition-colors duration-100 + ${se??""}`),ee(ne,e(k).label)},[()=>e(x).has(e(k).value)?"bg-edf-bleu-moyen border-edf-bleu-moyen text-white":"bg-white border-edf-gris-moyen"]),ie("mousedown",S,se=>{se.stopPropagation(),T(e(k).value)}),u(h,S)}),p(q),nt(q,h=>f(l,h),()=>e(l)),Q(()=>Je(q,e(d))),ie("mousedown",ae,h=>{h.stopPropagation(),m()}),ie("mousedown",N,h=>{h.stopPropagation(),A()}),u(O,q)}})};Y(D,H=>{e(i)&&H(U)})}Q(()=>{Se(g,1,`relative inline-flex ${s()??""}`),we(b,"aria-expanded",e(i)),ee(_,e(w)),Se(L,1,`text-muted shrink-0 transition-transform duration-150 ${e(i)?"rotate-180":""}`)}),ie("mousedown",b,H=>{H.stopPropagation(),v()}),u(t,R),Le()}We(["mousedown"]);const Yr="csauto_token";let ma=I(oe(localStorage.getItem(Yr)??""));function _a(){return e(ma)}function ba(t){f(ma,t,!0),t?localStorage.setItem(Yr,t):localStorage.removeItem(Yr)}let xr=null;async function hn(t,r={}){const a=new Headers(r.headers),n=_a();n&&a.set("X-CSAUTO-TOKEN",n);const s=await fetch(t,{...r,headers:a});if(s.status===401){xr||(xr=vn("API token required:",n,"Authentication"));const i=await xr;return xr=null,i===null?s:(ba(i),a.set("X-CSAUTO-TOKEN",i),fetch(t,{...r,headers:a}))}return s}async function ct(t){const r=await hn(t);if(!r.ok)throw new Error(`GET ${t} failed: ${r.status}`);return r.json()}async function Dr(t){const r=await hn(t);if(!r.ok)throw new Error(`GET ${t} failed: ${r.status}`);return r.text()}async function Rt(t,r){const a=await hn(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok){const n=await a.text().catch(()=>a.statusText);throw new Error(`POST ${t} failed: ${a.status} — ${n}`)}return a.json()}function zr(t){return t.map(r=>`case=${encodeURIComponent(r)}`).join("&")}function ai(t=!1){return ct(`/api/status${t?"?log=1":""}`)}function Dn(t){return ct(`/api/perf?${zr(t)}`)}function si(){return ct("/api/app_config")}function oi(t){return ct(`/api/residual_columns?${zr(t)}`).then(r=>r.columns??[])}function ii(t,r,a={}){const n=new URLSearchParams;return t.forEach(s=>n.append("case",s)),n.set("columns",r.join(",")),a.width&&n.set("width",String(a.width)),a.height&&n.set("height",String(a.height)),a.xMin!==void 0&&n.set("x_min",String(a.xMin)),a.includeHistory&&n.set("include_history","true"),Dr(`/api/residuals_svg?${n}`)}function xa(t){return ct(`/api/restart_origin?${zr(t)}`)}function li(t){var a;const r=new URLSearchParams;return t.cases.forEach(n=>r.append("case",n)),(a=t.files)!=null&&a.length&&r.set("files",t.files.join(",")),t.maxHits&&r.set("max_hits",String(t.maxHits)),t.context!==void 0&&r.set("context",String(t.context)),t.sev&&r.set("sev",t.sev),t.q&&r.set("q",t.q),ct(`/api/recent_errors?${r}`)}function ci(t,r,a){const n=new URLSearchParams({case:t,file:r,n:String(a)});return Dr(`/api/tail?${n}`)}function ui(t){return ct(`/api/resu_files?case=${encodeURIComponent(t)}`).then(r=>r.files??[])}function di(t){return ct(`/api/resu_dirs?${zr(t)}`).then(r=>r.dirs??[])}function Qr(t,r){const a=new URLSearchParams({scope:r});return t.forEach(n=>a.append("case",n)),ct(`/api/probes?${a}`).then(n=>n.files??[])}function fi(t,r){const a=new URLSearchParams;return t.forEach(n=>a.append("case",n)),r.forEach(n=>a.append("probe",n)),ct(`/api/probe_columns?${a}`).then(n=>n.columns??[])}function vi(t,r,a){const n=new URLSearchParams({case:t,probe:r});return a.forEach(s=>n.append("column",s)),ct(`/api/probe_position?${n}`)}function gi(t){const r=new URLSearchParams;return t.cases.forEach(a=>r.append("case",a)),t.probes.forEach(a=>r.append("probe",a)),r.set("columns",t.columns.join(",")),t.axis&&r.set("axis",t.axis),t.xMin!==void 0&&r.set("x_min",String(t.xMin)),t.timeMin!==void 0&&r.set("time_min",String(t.timeMin)),r.set("include_history","true"),t.width&&r.set("width",String(t.width)),t.height&&r.set("height",String(t.height)),Dr(`/api/probe_svg?${r}`)}function hi(t){const r=new URLSearchParams;return t.cases.forEach(a=>r.append("case",a)),t.base&&r.set("base",t.base),t.kind&&r.set("kind",t.kind),t.filter&&r.set("filter",t.filter),Dr(`/api/compare_runs?${r}`)}function zn(t){return Rt("/api/run_case",{cases:t.cases,n:t.n,nt:t.nt,max_parallel:t.maxParallel??void 0,restart:t.restart??!1,restart_mode:t.restartMode??"",restart_value:t.restartValue??void 0}).then(()=>{})}function pi(t){return Rt("/api/kill_case",{cases:t}).then(()=>{})}function yr(t){return Rt("/api/control_case",{cases:t.cases,action:t.action,value:t.value??void 0}).then(()=>{})}function mi(t){return Rt("/api/cleanup_cases",{cases:t.cases,keep_last:t.keepLast??1,prune_resu:t.pruneResu??!0,keep_resu:t.keepResu??[],delete_resu:t.deleteResu??[],max_log_mb:t.maxLogMb??50,clear_cid:!0,clear_pyc:!1})}function _i(t,r){return Rt("/api/case_note",{case:t,note:r}).then(()=>{})}function bi(t,r){return Rt("/api/case_convergence",{case:t,convergence:r}).then(()=>{})}function xi(t){return Rt("/api/open_gui",{case:t}).then(()=>{})}function yi(){return ct("/api/settings/telemetry")}function wi(t){return Rt("/api/settings/telemetry",{enabled:t})}var ki=P(" ",1),Ci=P(''),Si=P('Loading...'),$i=P('No folders found'),Pi=P('
        '),Ei=P('
        ',1);function Ri(t,r){Ae(r,!0);const a=go();let n=I("keep_latest"),s=I(oe(a.keepLast)),i=I(oe([])),o=I(oe([])),l=I(!0),d=j(()=>e(n)==="keep_folder"||e(n)==="delete_folder");const x=[{value:"keep_latest",label:"Keep latest N"},{value:"delete_all",label:"Delete all RESU"},{value:"keep_folder",label:"Keep specific folders"},{value:"delete_folder",label:"Delete specific folders"}];let w=j(()=>e(i).map(m=>({value:m,label:m})));Yn(async()=>{try{f(i,await di(r.cases),!0)}catch{f(i,[],!0)}f(l,!1)});async function T(){if(e(d)&&e(o).length===0){await Ye("Please select at least one RESU folder.","Missing selection");return}const m={action:e(n)};e(n)==="keep_latest"?(m.keepLast=e(s),ho({keepLast:e(s)})):e(n)==="delete_all"?m.keepLast=0:e(n)==="keep_folder"?m.keepResu=e(o):e(n)==="delete_folder"&&(m.deleteResu=e(o)),ot(m)}{const m=v=>{var c=ki(),y=B(c);$e(y,{variant:"secondary",onclick:()=>ot(null),children:(g,b)=>{ke();var $=Be("Cancel");u(g,$)},$$slots:{default:!0}});var R=E(y,2);$e(R,{variant:"primary",onclick:T,children:(g,b)=>{ke();var $=Be("Clean");u(g,$)},$$slots:{default:!0}}),u(v,c)};let A=j(()=>r.cases.length),F=j(()=>r.cases.length>1?"s":"");vr(t,{title:"Cleanup Cases",titleId:"clean-dialog-title",get subtitle(){return`${e(A)??""} case${e(F)??""} selected`},footer:m,children:(v,c)=>{var y=Ei(),R=B(y),g=C(R);Me(g,{text:"Action",children:(z,D)=>{lt(z,{class:"w-[200px]",get options(){return x},get value(){return e(n)},onchange:U=>f(n,U,!0)})}});var b=E(g,2);{var $=z=>{Me(z,{text:"Keep last",children:(D,U)=>{var H=Ci();Qe(H),tt(H,()=>e(s),O=>f(s,O)),u(D,H)}})};Y(b,z=>{e(n)==="keep_latest"&&z($)})}p(R);var _=E(R,2);{var L=z=>{var D=Pi(),U=C(D);Me(U,{text:"RESU folders",children:(H,O)=>{var V=_e(),q=B(V);{var X=M=>{var h=Si();u(M,h)},ae=M=>{var h=$i();u(M,h)},N=M=>{Gt(M,{class:"w-full",get options(){return e(w)},get selected(){return e(o)},onchange:h=>f(o,h,!0),placeholder:"Select folders..."})};Y(q,M=>{e(l)?M(X):e(i).length===0?M(ae,1):M(N,-1)})}u(H,V)}}),p(D),u(z,D)};Y(_,z=>{e(d)&&z(L)})}u(v,y)},$$slots:{footer:!0,default:!0}})}Le()}function Ni(t,r){Ae(r,!0);let a=j(Gs);var n=_e(),s=B(n);{var i=x=>{yo(x,{get cases(){return e(a).props.cases}})},o=x=>{Ro(x,{get cases(){return e(a).props.cases}})},l=x=>{Ri(x,{get cases(){return e(a).props.cases}})},d=x=>{oo(x,{get mode(){return e(a).type},get title(){return e(a).props.title},get message(){return e(a).props.message},get confirmLabel(){return e(a).props.confirmLabel},get confirmVariant(){return e(a).props.confirmVariant},get value(){return e(a).props.value},get placeholder(){return e(a).props.placeholder},get multiline(){return e(a).props.multiline}})};Y(s,x=>{e(a).type==="run"?x(i):e(a).type==="restart"?x(o,1):e(a).type==="clean"?x(l,2):(e(a).type==="alert"||e(a).type==="confirm"||e(a).type==="prompt")&&x(d,3)})}u(t,n),Le()}let ur=I(oe([])),Mi=0;function Ai(){return e(ur)}function wr(t,r="success",a=3500){const n=++Mi;f(ur,[...e(ur),{id:n,message:t,variant:r}],!0),setTimeout(()=>ya(n),a)}function ya(t){f(ur,e(ur).filter(r=>r.id!==t),!0)}var Li=P('
        '),Ti=P('
        ');function Fi(t,r){Ae(r,!0);let a=j(Ai);Zt(t,{children:(n,s)=>{var i=Ti();Ze(i,21,()=>e(a),o=>o.id,(o,l)=>{var d=Li(),x=C(d,!0);p(d),Q(()=>{Se(d,1,`pointer-events-auto max-w-[320px] px-4 py-2.5 rounded-md shadow-lg text-sm font-semibold text-white cursor-pointer ${e(l).variant==="success"?"bg-edf-vert-fonce":"bg-edf-orange-fonce"}`),ee(x,e(l).message)}),ie("click",d,()=>ya(e(l).id)),u(o,d)}),p(i),u(n,i)}}),Le()}We(["click"]);var Di=Ot(''),zi=Ot(''),Ii=P(''),Oi=P(" ",1),Hi=P(" ",1),ji=P('');function It(t,r){Ae(r,!0);const a=v=>{var c=Ii(),y=C(c);{var R=b=>{var $=Di();Q(()=>Je($,`width: ${o()-4}px; height: ${o()-4}px;`)),u(b,$)},g=b=>{var $=zi();Q(()=>Je($,`width: ${o()-4}px; height: ${o()-4}px;`)),u(b,$)};Y(y,b=>{n()&&!s()?b(R):s()&&b(g,1)})}p(c),Q(()=>{Se(c,1,`inline-flex items-center justify-center rounded border-2 cursor-pointer transition-colors duration-100 shrink-0 ${i()?"opacity-40 cursor-not-allowed":""} - ${n()||o()?"bg-edf-bleu-moyen border-edf-bleu-moyen text-white":"bg-white border-edf-gris-moyen hover:border-edf-bleu-clair"}`),Ze(c,`width: ${s()??""}px; height: ${s()??""}px;`),Se(c,"aria-checked",o()?"mixed":n()),Se(c,"aria-disabled",i()),Se(c,"tabindex",i()?-1:0)}),ie("click",c,y),ie("keydown",c,w),u(h,c)};let n=he(r,"checked",3,!1),o=he(r,"indeterminate",3,!1),i=he(r,"disabled",3,!1),s=he(r,"size",3,16),l=he(r,"label",3,""),d=he(r,"labelFirst",3,!1);function y(h){var x;if(h.stopPropagation(),i())return;const c=o()?!0:!n();(x=r.onchange)==null||x.call(r,c)}function w(h){(h.key===" "||h.key==="Enter")&&(h.preventDefault(),h.stopPropagation(),y(h))}var L=_e(),m=B(L);{var M=h=>{var c=ji(),x=k(c);{var R=b=>{var S=Oi(),_=B(S),T=k(_,!0);p(_);var z=P(_);a(z),Q(()=>ee(T,l())),u(b,S)},g=b=>{var S=Hi(),_=B(S);a(_);var T=P(_),z=k(T,!0);p(T),Q(()=>ee(z,l())),u(b,S)};X(x,b=>{d()?b(R):b(g,-1)})}p(c),ie("click",c,y),ie("keydown",c,w),u(h,c)},F=h=>{a(h)};X(m,h=>{l()?h(M):h(F,-1)})}u(t,L),Le()}We(["click","keydown"]);function pn(t,r){try{const a=localStorage.getItem(t);return a===null?r:JSON.parse(a)}catch{return r}}function Ir(t,r){localStorage.setItem(t,JSON.stringify(r))}const Jr=new Map;function hr(t,r,a){vt(t),Jr.set(t,setInterval(r,a))}function vt(t){const r=Jr.get(t);r!==void 0&&(clearInterval(r),Jr.delete(t))}const Tt={status:1e3,tail:1e3,plot:3e3,probe:3e3,errors:5e3},Ui=["status","plot","probe","tail","errors"],Kr={status:{label:"Status table",min:500},plot:{label:"Residual plots",min:1e3},probe:{label:"Probe plots",min:1e3},tail:{label:"Log tail",min:500},errors:{label:"Recent errors",min:2e3}},sr=pn("csauto_refresh_rates",{});let bt=I(se({status:sr.status??Tt.status,tail:sr.tail??Tt.tail,plot:sr.plot??Tt.plot,probe:sr.probe??Tt.probe,errors:sr.errors??Tt.errors}));function Vi(){return e(bt)}function Bi(t,r){f(bt,{...e(bt),[t]:r},!0),Ir("csauto_refresh_rates",e(bt))}function qi(){return e(bt).status}function In(){return e(bt).tail}function On(){return e(bt).plot}function Ki(){return e(bt).probe}function Hn(){return e(bt).errors}const Zr=new Set;function pr(t){return Zr.add(t),()=>Zr.delete(t)}function Gi(){Zr.forEach(t=>t())}const en=pn("csauto_autorefresh_enabled",{});function er(t){return en[t]??!0}function tr(t,r){en[t]=r,Ir("csauto_autorefresh_enabled",en)}var Wi=$(" ",1),Xi=$('
        ms
        '),Yi=$('
        Telemetry
        '),Qi=$('
        API token
        Auto-refresh intervals
        ',1);function Ji(t,r){Ae(r,!0);let a=I(se(_a())),n=I(se({...Vi()})),o=I(!0),i=I(!1);Ne(()=>{yi().then(y=>{f(o,y.enabled,!0),f(i,!0)}).catch(()=>{f(i,!1)})});function s(y){const{min:w}=Kr[y];let L=e(n)[y];(typeof L!="number"||isNaN(L))&&(L=Tt[y]),f(n,{...e(n),[y]:Math.max(w,Math.round(L))},!0)}function l(y,w){const L=w.target,m=L.value.replace(/[^0-9]/g,""),M=parseInt(m,10);isNaN(M)?m===""&&f(n,{...e(n),[y]:Kr[y].min},!0):f(n,{...e(n),[y]:M},!0),L.value=String(e(n)[y])}function d(){ba(e(a));for(const y of Object.keys(e(n)))s(y),Bi(y,e(n)[y]);e(i)&&wi(e(o)).catch(()=>{}),r.onClose()}vr(t,{title:"Settings",titleId:"settings-dialog-title",get onCancel(){return r.onClose},onConfirm:d,maxWidth:"400px",portal:!0,footer:w=>{var L=Wi(),m=B(L);$e(m,{variant:"secondary",get onclick(){return r.onClose},children:(F,h)=>{we();var c=Be("Cancel");u(F,c)},$$slots:{default:!0}});var M=P(m,2);$e(M,{variant:"primary",onclick:d,children:(F,h)=>{we();var c=Be("Save");u(F,c)},$$slots:{default:!0}}),u(w,L)},children:(w,L)=>{var m=Qi(),M=B(m),F=P(k(M),2);Qe(F),p(M);var h=P(M,2),c=k(h),x=P(k(c),2);p(c);var R=P(c,2);Je(R,20,()=>Ui,S=>S,(S,_)=>{const T=U(()=>Kr[_]);var z=Xi(),D=k(z),V=k(D),H=k(V,!0);p(V);var O=P(V,2),j=k(O);p(O),p(D);var q=P(D,2),Y=k(q);Qe(Y),we(2),p(q),p(z),Q(()=>{ee(H,e(T).label),ee(j,`min ${e(T).min??""}ms`),dn(Y,e(n)[_])}),ie("input",Y,ae=>l(_,ae)),rt("blur",Y,()=>s(_)),u(S,z)}),p(R),p(h);var g=P(h,2);{var b=S=>{var _=Yi(),T=P(k(_),2);zt(T,{get checked(){return e(o)},onchange:z=>f(o,z,!0),label:"Send anonymous usage statistics"}),p(_),u(S,_)};X(g,S=>{e(i)&&S(b)})}tt(F,()=>e(a),S=>f(a,S)),ie("click",x,()=>f(n,{...Tt},!0)),u(w,m)},$$slots:{footer:!0,default:!0}}),Le()}We(["click","input"]);const Zi=""+new URL("../assets/code-saturne.BHojVttu.svg",import.meta.url).href;let wa=I(null);function el(t){f(wa,t,!0)}function Bt(){return e(wa)}var tl=$('CODE_SATURNE'),rl=$(' '),nl=$('
        ',1);function al(t,r){Ae(r,!0);let a=U(()=>r.shownCases!==r.totalCases),n=I(!1);var o=nl(),i=B(o),s=k(i),l=k(s);{var d=C=>{var v=tl();Q(()=>Se(v,"src",Zi)),u(C,v)},y=U(()=>{var C;return!Bt()||((C=Bt())==null?void 0:C.solver)==="code_saturne"}),w=C=>{var v=rl(),A=k(v,!0);p(v),Q(E=>ee(A,E),[()=>{var E;return(E=Bt())==null?void 0:E.solver}]),u(C,v)};X(l,C=>{e(y)?C(d):C(w,-1)})}p(s);var L=P(s,2),m=k(L),M=k(m),F=k(M);{var h=C=>{var v=Be();Q(()=>ee(v,`${r.shownCases??""}/`)),u(C,v)};X(F,C=>{e(a)&&C(h)})}var c=P(F,1,!0);p(M);var x=P(M,2),R=k(x,!0);p(x),p(m);var g=P(m,2),b=k(g),S=k(b);{var _=C=>{var v=Be();Q(()=>ee(v,`${r.shownRunning??""}/`)),u(C,v)};X(S,C=>{e(a)&&C(_)})}var T=P(S,1,!0);p(b),we(2),p(g);var z=P(g,2),D=k(z),V=k(D);{var H=C=>{var v=Be();Q(()=>ee(v,`${r.shownConverged??""}/`)),u(C,v)};X(V,C=>{e(a)&&C(H)})}var O=P(V,1,!0);p(D),we(2),p(z),p(L);var j=P(L,2),q=k(j),Y=k(q);Te(Y,{get icon(){return Xs},size:18}),p(q),p(j),p(i);var ae=P(i,2);{var N=C=>{Ji(C,{onClose:()=>f(n,!1)})};X(ae,C=>{e(n)&&C(N)})}Q(()=>{ee(c,r.totalCases),ee(R,r.totalCases===1?"case":"cases"),ee(T,r.totalRunning),ee(O,r.totalConverged)}),ie("click",q,()=>f(n,!0)),u(t,o),Le()}We(["click"]);const ol=""+new URL("../assets/simvia-logo.kLDq7Uoj.svg",import.meta.url).href;var sl=$('
        '),il=$('

        '),ll=$("
        "),cl=$('
        '),ul=$('
        '),dl=$('
        ');function Ot(t,r){let a=he(r,"eyebrow",3,""),n=he(r,"title",3,""),o=he(r,"wide",3,!1);var i=dl(),s=P(k(i),2);{var l=y=>{var w=ul(),L=k(w);{var m=c=>{var x=_e(),R=B(x);ft(R,()=>r.titleSlot),u(c,x)},M=c=>{var x=ll(),R=k(x);{var g=_=>{var T=sl(),z=k(T,!0);p(T),Q(()=>ee(z,a())),u(_,T)};X(R,_=>{a()&&_(g)})}var b=P(R,2);{var S=_=>{var T=il(),z=k(T,!0);p(T),Q(()=>ee(z,n())),u(_,T)};X(b,_=>{n()&&_(S)})}p(x),u(c,x)};X(L,c=>{r.titleSlot?c(m):c(M,-1)})}var F=P(L,2);{var h=c=>{var x=cl(),R=k(x);ft(R,()=>r.actions),p(x),u(c,x)};X(F,c=>{r.actions&&c(h)})}p(w),u(y,w)};X(s,y=>{(a()||n()||r.titleSlot||r.actions)&&y(l)})}var d=P(s,2);ft(d,()=>r.children),p(i),Q(()=>{Ce(i,1,`${o()?"col-span-12":"col-span-6"} bg-card border border-border rounded-[10px] p-[16px_18px_18px] relative overflow-clip animate-rise`),Se(i,"id",r.id)}),u(t,i)}function rr(t,r){Ae(r,!0);let a=he(r,"checked",15,!0);Ne(()=>{a()?hr(r.name,r.onRefresh,r.intervalMs):vt(r.name)}),dr(()=>vt(r.name)),zt(t,{get checked(){return a()},onchange:n=>a(n),size:14,label:"Auto-refresh",labelFirst:!0}),Le()}var fl=$(" ",1),vl=$('
      • '),gl=$(''),hl=$(' ',1);function pl(t,r){Ae(r,!0);let a=he(r,"label",3,"More"),n=I(!1),o=I(void 0),i=I(void 0),s=I("");function l(){if(!e(o)||!e(i))return;const c=e(o).getBoundingClientRect(),x=e(i).offsetHeight,R=4,g=window.innerHeight-c.bottom-R,S=gg?c.top-R-x:c.bottom+R,_=Math.min(c.left,window.innerWidth-180);f(s,`position:fixed; top:${S}px; left:${_}px; min-width:170px; z-index:9999;`)}async function d(){f(n,!e(n)),e(n)&&(await Pt(),l())}function y(c){c.disabled||(f(n,!1),c.onClick())}function w(c){e(n)&&e(o)&&!e(o).contains(c.target)&&e(i)&&!e(i).contains(c.target)&&f(n,!1)}var L=hl();rt("mousedown",it,w),rt("keydown",it,c=>{c.key==="Escape"&&f(n,!1)}),rt("scroll",it,()=>{e(n)&&f(n,!1)});var m=B(L),M=k(m);$e(M,{variant:"secondary",size:"sm",onclick:d,children:(c,x)=>{var R=fl(),g=B(R);Te(g,{get icon(){return Hs}});var b=P(g);Q(()=>ee(b,` ${a()??""}`)),u(c,R)},$$slots:{default:!0}}),p(m),nt(m,c=>f(o,c),()=>e(o));var F=P(m,2);{var h=c=>{Jt(c,{children:(x,R)=>{var g=gl();Je(g,21,()=>r.items,b=>b.label,(b,S)=>{var _=vl(),T=k(_),z=k(T);Te(z,{get icon(){return e(S).icon},size:14});var D=P(z);p(T),p(_),Q(()=>{T.disabled=e(S).disabled,Se(T,"aria-disabled",e(S).disabled),Ce(T,1,`w-full flex items-center gap-2 text-left py-[7px] px-[10px] bg-transparent border border-transparent rounded-md text-[12.5px] text-ink transition-[background] duration-[120ms] ease-in-out disabled:opacity-40 disabled:pointer-events-none ${e(S).disabled?"":"cursor-pointer hover:bg-edf-gris-clair hover:border-border"}`),ee(D,` ${e(S).label??""}`)}),ie("mousedown",T,V=>{V.stopPropagation(),y(e(S))}),u(b,_)}),p(g),nt(g,b=>f(i,b),()=>e(i)),Q(()=>Ze(g,e(s))),u(x,g)}})};X(F,c=>{e(n)&&c(h)})}u(t,L),Le()}We(["mousedown"]);const Ft=[{key:"note",label:"Note"},{key:"nprocs",label:"MPI Ranks"},{key:"nt",label:"Thread Count"},{key:"last_iter",label:"Last Iter"},{key:"duration",label:"Duration"},{key:"last_mod",label:"Last Modified"},{key:"resu_size_mb",label:"RESU Size (MB)"}];let Wt=I(se([])),Mr=I(se([])),pt=I(se(new Set)),mr=I(""),mn=I(""),Et=I(se([])),ot=I(se([])),Xt=I(""),ka=I(!0),ml=I(!0),qt=I(se(pn("csauto_status_views",{}))),_n=I(se(localStorage.getItem("csauto_status_view_selected")??""));function bn(){return e(Wt)}function xn(){return e(Mr)}function Ut(){return e(pt)}function jn(){return e(mr)}function tn(){return e(mn)}function _l(){return e(Et)}function bl(){return e(Et).filter(t=>e(Mr).includes(t))}function xl(){return e(Et).filter(t=>Ft.some(r=>r.key===t))}function yl(){return e(ot)}function wl(){return e(Xt)}function kl(){return e(ka)}function Un(){return e(qt)}function Cl(){return e(_n)}function Sl(t){f(Wt,t,!0)}function $l(t){const r=e(Mr).length===0&&t.length>0;f(Mr,t,!0),r&&e(Et).length===0&&f(Et,[...t,...Ft.map(a=>a.key)],!0)}function Pl(t){f(mr,t,!0)}function Vn(t){f(Et,t,!0)}function El(t){f(Xt,t,!0)}function Rl(t){f(ka,t,!0)}function Nl(t){f(ml,t,!0)}function yn(t){f(_n,t,!0),localStorage.setItem("csauto_status_view_selected",t)}function rn(t){const r=new Set(e(pt));r.has(t)?r.delete(t):r.add(t),f(pt,r,!0),f(mr,t,!0),f(mn,t,!0)}function Ca(t){f(pt,new Set([t]),!0),f(mr,t,!0),f(mn,t,!0)}function nn(t,r,a){const n=a.indexOf(t),o=a.indexOf(r);if(n<0||o<0)return;const[i,s]=n{const a=Ml(r);return t.every(n=>a.includes(n))})}function Al(t){if(t==null||t==="")return"";const r=Number(t);return Number.isFinite(r)?r:String(t).toLowerCase()}function Kn(t,r){var n;if(r==="case_id")return t.case_id;if(r==="status")return t.status??"";if(r==="note")return t.note??"";if(r==="nprocs")return t.nprocs??0;if(r==="nt")return t.nt??0;if(r==="last_iter")return t.last_iter??0;if(r==="duration")return t.duration_s??0;if(r==="last_mod")return t.last_mod??"";if(r==="resu_size_mb")return t.resu_size_mb??0;const a=(n=t.doe)==null?void 0:n[r];return a!==void 0?Al(a):""}function Ll(t,r){return t===""&&r===""?0:t===""?1:r===""?-1:typeof t=="number"&&typeof r=="number"?t-r:String(t).localeCompare(String(r))}function $a(){const t=Sa();return e(ot).length===0?t:[...t].sort((r,a)=>{for(const n of e(ot)){const o=Kn(r,n.key),i=Kn(a,n.key),s=Ll(o,i);if(s!==0)return n.dir==="asc"?s:-s}return 0})}function Pr(){return $a().map(t=>t.case_id)}function Tl(t,r){const a=e(ot).findIndex(n=>n.key===t);if(r)if(a>=0){const n=[...e(ot)];n[a]={key:t,dir:n[a].dir==="asc"?"desc":"asc"},f(ot,n,!0)}else f(ot,[...e(ot),{key:t,dir:"asc"}],!0);else a>=0&&e(ot).length===1?f(ot,[{key:t,dir:e(ot)[0].dir==="asc"?"desc":"asc"}],!0):f(ot,[{key:t,dir:"asc"}],!0)}function Fl(){return{visibleColumns:[...e(Et)],search:e(Xt),sorts:e(ot).map(t=>({...t}))}}function Dl(t){f(Et,[...t.visibleColumns],!0),f(Xt,t.search,!0),f(ot,t.sorts.map(r=>({...r})),!0)}function zl(t){f(qt,{...e(qt),[t]:Fl()},!0),Ir("csauto_status_views",e(qt)),yn(t)}function Il(t){const r={...e(qt)};delete r[t],f(qt,r,!0),Ir("csauto_status_views",r),e(_n)===t&&yn("")}function kr(){const t=new Set;for(const r of e(Wt))e(pt).has(r.case_id)&&t.add((r.status??"").toUpperCase());return t}function Gn(){for(const t of e(Wt))if(e(pt).has(t.case_id)&&t.resu_size_mb!=null&&t.resu_size_mb>0)return!0;return!1}function Ol(t,r){const a=r.length,n=t.length,o=r.filter(d=>d.status==="RUNNING").length,i=t.filter(d=>d.status==="RUNNING").length,s=r.filter(d=>d.convergence==="converged").length,l=t.filter(d=>d.convergence==="converged").length;return{totalCases:a,shownCases:n,totalRunning:o,shownRunning:i,totalConverged:s,shownConverged:l}}var Hl=$('
        DOE columns
        '),jl=$('
        ');function Ul(t,r){Ae(r,!0);let a=he(r,"initialName",3,""),n=U(xn),o=I(se(a())),i=I(se(new Set(r.initialColumns??[...e(n),...Ft.map(j=>j.key)])));function s(j){const q=new Set(e(i));q.has(j)?q.delete(j):q.add(j),f(i,q,!0)}function l(j,q){const Y=new Set(e(i));j.forEach(ae=>q?Y.add(ae):Y.delete(ae)),f(i,Y,!0)}function d(){const j=e(o).trim();j&&r.onSave(j,[...e(i)])}function y(j){j.key==="Escape"&&r.onCancel()}function w(j){j.target.dataset.backdrop!==void 0&&r.onCancel()}let L=I(void 0);Ne(()=>{var j,q;(j=e(L))==null||j.focus(),(q=e(L))==null||q.select()});var m=jl(),M=k(m),F=k(M),h=k(F,!0);p(F);var c=P(F,2),x=P(k(c),2);Qe(x),nt(x,j=>f(L,j),()=>e(L)),p(c);var R=P(c,2);{var g=j=>{var q=Hl(),Y=k(q),ae=P(k(Y),2),N=k(ae),C=P(N,2);p(ae),p(Y);var v=P(Y,2);Je(v,20,()=>e(n),A=>A,(A,E)=>{{let J=U(()=>e(i).has(E));zt(A,{get checked(){return e(J)},onchange:()=>s(E),size:14,get label(){return E}})}}),p(v),p(q),ie("click",N,()=>l(e(n),!0)),ie("click",C,()=>l(e(n),!1)),u(j,q)};X(R,j=>{e(n).length>0&&j(g)})}var b=P(R,2),S=k(b),_=P(k(S),2),T=k(_),z=P(T,2);p(_),p(S);var D=P(S,2);Je(D,21,()=>Ft,j=>j.key,(j,q)=>{{let Y=U(()=>e(i).has(e(q).key));zt(j,{get checked(){return e(Y)},onchange:()=>s(e(q).key),size:14,get label(){return e(q).label}})}}),p(D),p(b);var V=P(b,2),H=k(V);$e(H,{variant:"secondary",get onclick(){return r.onCancel},children:(j,q)=>{we();var Y=Be("Cancel");u(j,Y)},$$slots:{default:!0}});var O=P(H,2);{let j=U(()=>!e(o).trim());$e(O,{variant:"primary",onclick:d,get disabled(){return e(j)},children:(q,Y)=>{we();var ae=Be("Save");u(q,ae)},$$slots:{default:!0}})}p(V),p(M),p(m),Q(()=>ee(h,r.mode==="create"?"New view":"Edit view")),ie("keydown",m,y),ie("click",m,w),tt(x,()=>e(o),j=>f(o,j)),ie("click",T,()=>l(Ft.map(j=>j.key),!0)),ie("click",z,()=>l(Ft.map(j=>j.key),!1)),u(t,m),Le()}We(["keydown","click"]);var Vl=$('
        ',1);function Bl(t,r){Ae(r,!0);let a=U(()=>Object.keys(Un())),n=I(se(Cl())),o=I(!1),i=I("create"),s=U(()=>[{value:"",label:"All columns"},...e(a).map(S=>({value:S,label:S}))]);function l(S){if(f(n,S,!0),yn(S),S==="")Vn([...xn(),...Ft.map(_=>_.key)]);else{const _=Un();_[S]&&Dl(_[S])}}function d(){f(i,"edit"),f(o,!0)}function y(){f(i,"create"),f(o,!0)}function w(S,_){Vn(_),e(i)==="edit"&&e(n)&&S!==e(n)&&Il(e(n)),zl(S),f(n,S,!0),f(o,!1)}function L(){f(o,!1)}var m=Vl(),M=B(m),F=k(M);lt(F,{class:"w-[140px]",get options(){return e(s)},get value(){return e(n)},onchange:l});var h=P(F,2),c=k(h);Te(c,{get icon(){return qs},size:14}),p(h);var x=P(h,2),R=k(x);Te(R,{get icon(){return Ks},size:14}),p(x),p(M);var g=P(M,2);{var b=S=>{Jt(S,{children:(_,T)=>{{let z=U(()=>e(i)==="edit"?e(n):""),D=U(_l);Ul(_,{get mode(){return e(i)},get initialName(){return e(z)},get initialColumns(){return e(D)},onSave:w,onCancel:L})}}})};X(g,S=>{e(o)&&S(b)})}ie("click",h,d),ie("click",x,y),u(t,m),Le()}We(["click"]);var ql=$('
        '),Kl=$(""),Gl=$(' '),Wl=$(' '),Xl=$('
        '),Yl=$(" "),Ql=$(''),Jl=$(''),Zl=$(" Open GUI",1),ec=$(""),tc=$(" "),rc=$(""),nc=$('
        ');function ac(t,r){Ae(r,!0);let a=U(()=>r.rows.length>0&&r.rows.every(N=>e(y).has(N.case_id))),n=U(()=>r.rows.some(N=>e(y).has(N.case_id))),o=U(()=>e(n)&&!e(a)),i=U(bl),s=U(()=>new Set(xl())),l=U(yl),d=U(kl),y=U(Ut),w=U(()=>{const N=[{key:"_select",label:"",kind:"meta",sticky:"left"},{key:"case_id",label:"Case",kind:"meta",sticky:"left"},{key:"status",label:"Status",kind:"meta",sticky:"left"},...e(s).has("note")?[{key:"note",label:"Note",kind:"meta"}]:[]],C=e(i).map(J=>({key:J,label:J,kind:"doe"})),A=[{key:"nprocs",label:"MPI Ranks",kind:"calc"},{key:"nt",label:"Thread Count",kind:"calc"},{key:"last_iter",label:"Last Iter",kind:"calc"},{key:"duration",label:"Duration",kind:"calc"},{key:"last_mod",label:"Last Modified",kind:"calc"},{key:"resu_size_mb",label:"RESU Size (MB)",kind:"calc"}].filter(J=>e(s).has(J.key)),E=[{key:"_actions",label:"",kind:"meta",sticky:"right"}];return[...N,...C,...A,...E]});function L(N){const C=e(l).findIndex(A=>A.key===N);if(C<0)return"";const v=e(l)[C].dir==="asc"?"▲":"▼";return e(l).length>1?`${v}${C+1}`:v}function m(N,C){N!=="_actions"&&Tl(N,C.ctrlKey||C.metaKey)}function M(N,C){C.shiftKey?nn(tn()||N,N,Pr()):C.ctrlKey||C.metaKey?rn(N):Ca(N)}function F(N,C){var A;const v=((A=N.status)==null?void 0:A.toUpperCase())??"";v!=="DONE"&&v!=="FAILED"||(C.preventDefault(),r.onContextMenu(N.case_id,C.clientX,C.clientY,N.convergence??""))}async function h(N){const C=N.note??"",v=await vn("Case note:",C,`Note — ${N.case_id}`,"",!0);if(v!==null)try{await _i(N.case_id,v)}catch(A){await Ye(`Failed to set note: ${A instanceof Error?A.message:A}`,"Error")}}async function c(N){try{await xi(N)}catch(C){await Ye(`Failed to open GUI: ${C instanceof Error?C.message:C}`,"Error")}}function x(N,C){const v=(N==null?void 0:N.toUpperCase())??"";return(v==="DONE"||v==="FAILED")&&C==="converged"?"CONVERGED":(v==="DONE"||v==="FAILED")&&C==="not_converged"?"NOT CONVERGED":v}function R(N,C){const v=(N==null?void 0:N.toUpperCase())??"";return(v==="DONE"||v==="FAILED")&&C==="converged"?"status-converged":(v==="DONE"||v==="FAILED")&&C==="not_converged"?"status-not-converged":v==="RUNNING"?"status-running":v==="DONE"?"status-done":v==="FAILED"?"status-failed":v==="PREPARED"?"status-prepared":"status-unknown"}function g(N){return e(y).has(N.case_id)?"row-selected":""}function b(N,C){var v;return C.key==="case_id"?N.case_id:C.key==="nprocs"?N.nprocs!=null?String(N.nprocs):"":C.key==="nt"?N.nt!=null?String(N.nt):"":C.key==="last_iter"?N.last_iter!=null?String(N.last_iter):"":C.key==="duration"?N.duration??"":C.key==="last_mod"?S(N.last_mod):C.key==="resu_size_mb"?N.resu_size_mb!=null?String(N.resu_size_mb):"":C.kind==="doe"?((v=N.doe)==null?void 0:v[C.key])!=null&&String(N.doe[C.key])!==""?String(N.doe[C.key]):"—":""}function S(N){if(!N)return"";try{const C=new Date(N),v=new Date,A=C.toDateString()===v.toDateString(),E=new Date(v);E.setDate(E.getDate()-1);const J=C.toDateString()===E.toDateString(),oe=C.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return A?`Today ${oe}`:J?`Yesterday ${oe}`:C.toLocaleDateString([],{month:"short",day:"numeric"})+` ${oe}`}catch{return N}}let _=I(se({})),T=I(void 0);Ne(()=>{e(d),e(w),r.rows,!(!e(T)||!e(d))&&Pt().then(()=>{if(!e(T))return;const N=Array.from(e(T).querySelectorAll("thead th.sticky-left")),C={};let v=0;N.forEach(A=>{const E=A.dataset.colKey??"";C[E]=v,v+=A.getBoundingClientRect().width}),f(_,C,!0)})});function z(N,C,v){const A=v&&N.key!=="_select"&&N.key!=="_actions"?["status-sortable"]:[];if(!v&&N.key==="case_id"&&A.push("case-id"),N.kind==="doe"&&A.push("status-col-doe"),!v&&N.key==="note"&&A.push("max-w-[140px] whitespace-nowrap overflow-hidden text-ellipsis cursor-pointer hover:underline hover:decoration-dotted hover:underline-offset-2"),e(d)&&N.sticky==="left"&&A.push("sticky-left"),e(d)&&N.sticky==="right"&&A.push("sticky-right"),e(d)&&N.sticky==="left"){const E=e(w)[C+1];(!E||E.sticky!=="left")&&A.push("sticky-divider")}if(e(d)&&N.sticky==="right"){const E=e(w)[C-1];(!E||E.sticky!=="right")&&A.push("sticky-divider")}return A.join(" ")}function D(N,C){return z(N,C,!0)}function V(N,C){return z(N,C,!1)}function H(N){return!e(d)||!N.sticky?"":N.sticky==="right"?"position:sticky;right:0;":N.sticky==="left"&&N.key in e(_)?`position:sticky;left:${e(_)[N.key]}px;`:""}var O=nc(),j=k(O),q=k(j),Y=k(q);Je(Y,23,()=>e(w),N=>N.key,(N,C,v)=>{var A=_e(),E=B(A);{var J=le=>{var K=ql(),re=k(K),ne=k(re);zt(ne,{get checked(){return e(a)},get indeterminate(){return e(o)},get onchange(){return r.onToggleAll},size:14}),p(re),p(K),Q((ue,de)=>{Ce(K,1,`${ue??""} !px-2.5 !py-0 w-9`),Se(K,"data-col-key",e(C).key),Ze(K,de)},[()=>D(e(C),e(v)),()=>H(e(C))]),u(le,K)},oe=le=>{var K=Kl();Q((re,ne)=>{Ce(K,1,re),Se(K,"data-col-key",e(C).key),Ze(K,ne)},[()=>dt(D(e(C),e(v))),()=>H(e(C))]),u(le,K)},ge=le=>{var K=Wl(),re=k(K),ne=P(re);{var ue=Z=>{var be=Gl(),fe=k(be,!0);p(be),Q(Pe=>ee(fe,Pe),[()=>L(e(C).key)]),u(Z,be)},de=U(()=>L(e(C).key));X(ne,Z=>{e(de)&&Z(ue)})}p(K),Q((Z,be)=>{Ce(K,1,Z),Se(K,"data-col-key",e(C).key),Ze(K,be),ee(re,`${e(C).label??""} `)},[()=>dt(D(e(C),e(v))),()=>H(e(C))]),ie("click",K,Z=>m(e(C).key,Z)),ie("keydown",K,Z=>{(Z.key==="Enter"||Z.key===" ")&&(Z.preventDefault(),m(e(C).key,Z))}),u(le,K)};X(E,le=>{e(C).key==="_select"?le(J):e(C).key==="_actions"?le(oe,1):le(ge,-1)})}u(N,A)}),p(Y),p(q);var ae=P(q);Je(ae,21,()=>r.rows,N=>N.case_id,(N,C)=>{var v=rc();Je(v,23,()=>e(w),A=>A.key,(A,E,J)=>{var oe=_e(),ge=B(oe);{var le=de=>{var Z=Xl(),be=k(Z),fe=k(be);{let Pe=U(()=>e(y).has(e(C).case_id));zt(fe,{get checked(){return e(Pe)},onchange:()=>r.onToggleRow(e(C).case_id),size:14})}p(be),p(Z),Q((Pe,ve)=>{Ce(Z,1,`${Pe??""} !px-2.5 !py-0 w-9`),Se(Z,"data-col-key",e(E).key),Ze(Z,ve)},[()=>V(e(E),e(J)),()=>H(e(E))]),u(de,Z)},K=de=>{var Z=Yl(),be=k(Z),fe=k(be,!0);p(be),p(Z),Q((Pe,ve,ze,pe)=>{Ce(Z,1,Pe),Se(Z,"data-col-key",e(E).key),Ze(Z,ve),Ce(be,1,`status-pill ${ze??""}`),ee(fe,pe)},[()=>dt(V(e(E),e(J))),()=>H(e(E)),()=>R(e(C).status,e(C).convergence),()=>x(e(C).status,e(C).convergence)]),u(de,Z)},re=de=>{var Z=Jl(),be=k(Z);{var fe=ve=>{var ze=Be();Q(()=>ee(ze,e(C).note)),u(ve,ze)},Pe=ve=>{var ze=Ql(),pe=k(ze);Te(pe,{get icon(){return Bs},size:12}),p(ze),u(ve,ze)};X(be,ve=>{e(C).note?ve(fe):ve(Pe,-1)})}p(Z),Q((ve,ze)=>{Ce(Z,1,ve),Se(Z,"data-col-key",e(E).key),Ze(Z,ze),Se(Z,"title",e(C).note||"Add note")},[()=>dt(V(e(E),e(J))),()=>H(e(E))]),ie("click",Z,ve=>{ve.stopPropagation(),h(e(C))}),ie("keydown",Z,ve=>{(ve.key==="Enter"||ve.key===" ")&&(ve.preventDefault(),ve.stopPropagation(),h(e(C)))}),u(de,Z)},ne=de=>{var Z=ec(),be=k(Z);$e(be,{variant:"primary",size:"sm",onclick:fe=>{fe.stopPropagation(),c(e(C).case_id)},children:(fe,Pe)=>{var ve=Zl(),ze=B(ve);Te(ze,{get icon(){return js},size:12}),we(),u(fe,ve)},$$slots:{default:!0}}),p(Z),Q((fe,Pe)=>{Ce(Z,1,fe),Se(Z,"data-col-key",e(E).key),Ze(Z,Pe)},[()=>dt(V(e(E),e(J))),()=>H(e(E))]),u(de,Z)},ue=de=>{var Z=tc(),be=k(Z,!0);p(Z),Q((fe,Pe,ve)=>{Ce(Z,1,fe),Se(Z,"data-col-key",e(E).key),Ze(Z,Pe),ee(be,ve)},[()=>dt(V(e(E),e(J))),()=>H(e(E)),()=>b(e(C),e(E))]),u(de,Z)};X(ge,de=>{e(E).key==="_select"?de(le):e(E).key==="status"?de(K,1):e(E).key==="note"?de(re,2):e(E).key==="_actions"?de(ne,3):de(ue,-1)})}u(A,oe)}),p(v),Q(A=>Ce(v,1,A),[()=>dt(g(e(C)))]),ie("click",v,A=>M(e(C).case_id,A)),ie("contextmenu",v,A=>F(e(C),A)),u(N,v)}),p(ae),p(j),nt(j,N=>f(T,N),()=>e(T)),p(O),Q(()=>Ce(O,1,`table-wrap ${e(d)?"sticky-enabled":""}`)),u(t,O),Le()}We(["click","keydown","contextmenu"]);var oc=$('
        ');function sc(t,r){Ae(r,!0);let a=U(()=>{const m=Math.min(r.x,window.innerWidth-180),M=Math.min(r.y,window.innerHeight-120);return`left: ${m}px; top: ${M}px;`});async function n(m){try{for(const M of r.cases)await bi(M,m)}catch(M){console.error("Failed to set convergence:",M)}r.onClose()}const o=r.cases.length>1?` (${r.cases.length})`:"";var i=oc();rt("keydown",it,m=>{m.key==="Escape"&&r.onClose()});var s=k(i),l=k(s);p(s);var d=P(s,2),y=k(d);p(d);var w=P(d,2),L=k(w);p(w),p(i),Q(()=>{Ze(i,e(a)),Ce(s,1,`w-full text-left py-[7px] px-[10px] bg-transparent border border-transparent rounded-md text-[12.5px] cursor-pointer transition-[background] duration-[120ms] ease-in-out hover:bg-edf-gris-clair hover:border-border ${r.currentValue==="converged"?"is-active":""}`),ee(l,`Mark Converged${o}`),Ce(d,1,`w-full text-left py-[7px] px-[10px] bg-transparent border border-transparent rounded-md text-[12.5px] cursor-pointer transition-[background] duration-[120ms] ease-in-out hover:bg-edf-gris-clair hover:border-border ${r.currentValue==="not_converged"?"is-active":""}`),ee(y,`Mark Not Converged${o}`),Ce(w,1,`w-full text-left py-[7px] px-[10px] bg-transparent border border-transparent rounded-md text-[12.5px] cursor-pointer transition-[background] duration-[120ms] ease-in-out hover:bg-edf-gris-clair hover:border-border ${r.currentValue===""?"is-active":""}`),ee(L,`Clear Mark${o}`)}),ie("click",s,()=>n("converged")),ie("click",d,()=>n("not_converged")),ie("click",w,()=>n("")),u(t,i),Le()}We(["click"]);var ic=$(" Refresh",1),lc=$(" ",1),cc=$(" Run",1),uc=$(" Restart",1),dc=$(" Stop",1),fc=$(" Kill",1),vc=$(" Clean",1),gc=$('
        ',1),hc=$('
        ',1);function pc(t,r){Ae(r,!0);function a(){return[...Ut()]}async function n(){const v=a();if(!v.length)return;const A=await Xo(v);if(A)try{await zn({cases:v,n:A.n,nt:A.nt,maxParallel:A.maxParallel}),r.onRefresh()}catch(E){await Ye(`Run failed: ${E instanceof Error?E.message:E}`,"Error")}}async function o(){const v=a();if(!v.length)return;const A=await Yo(v);if(A)try{await zn({cases:v,n:A.n,nt:A.nt,maxParallel:A.maxParallel,restart:!0,restartMode:A.restartMode,restartValue:A.restartValue}),r.onRefresh()}catch(E){await Ye(`Restart failed: ${E instanceof Error?E.message:E}`,"Error")}}async function i(){const v=a();if(!(!v.length||!await Tn(`Kill ${v.length} case${v.length>1?"s":""}?`,"Confirm Kill","Kill","danger")))try{await pi(v),r.onRefresh()}catch(E){await Ye(`Kill failed: ${E instanceof Error?E.message:E}`,"Error")}}async function s(){const v=a();if(!(!v.length||!await Tn(`Stop ${v.length} case${v.length>1?"s":""} gracefully (checkpoint + exit)?`,"Confirm Stop","Stop","danger")))try{await yr({cases:v,action:"stop"}),r.onRefresh(),wr(`Stop requested for ${v.length} case${v.length>1?"s":""} — will checkpoint and exit`)}catch(E){await Ye(`Stop failed: ${E instanceof Error?E.message:E}`,"Error")}}async function l(){const v=a();if(v.length)try{await yr({cases:v,action:"checkpoint"}),r.onRefresh(),wr(`Checkpoint requested for ${v.length} case${v.length>1?"s":""}`)}catch(A){await Ye(`Checkpoint failed: ${A instanceof Error?A.message:A}`,"Error")}}async function d(){const v=a();if(!v.length)return;const A=await vn("Extend by how many additional time steps?","500","Extend Run");if(A===null)return;const E=parseInt(A,10);if(!Number.isFinite(E)||E<=0){await Ye("Enter a positive integer number of time steps.","Error");return}try{await yr({cases:v,action:"extend",value:E}),r.onRefresh(),wr(`Extended ${v.length} case${v.length>1?"s":""} by ${E} time steps`)}catch(J){await Ye(`Extend failed: ${J instanceof Error?J.message:J}`,"Error")}}async function y(){const v=a();if(v.length)try{await yr({cases:v,action:"flush"}),wr(`Flush requested for ${v.length} case${v.length>1?"s":""}`)}catch(A){await Ye(`Flush failed: ${A instanceof Error?A.message:A}`,"Error")}}async function w(){const v=a();if(!v.length)return;const A=await Qo(v);if(A)try{await mi({cases:v,keepLast:A.keepLast,keepResu:A.keepResu,deleteResu:A.deleteResu,pruneResu:!0}),r.onRefresh(),Gi()}catch(E){await Ye(`Cleanup failed: ${E instanceof Error?E.message:E}`,"Error")}}function L(){const v=Pr();v.length>0&&v.every(E=>Ut().has(E))?qn():Bn(v)}function m(v){rn(v)}let M=I(se(er("status")));Ne(()=>{tr("status",e(M))}),Rl(!0);let F=U(()=>{const v=kr();return v.size>0&&[...v].some(A=>A==="PREPARED"||A==="DONE"||A==="FAILED")}),h=U(()=>{const v=kr();return v.size>0&&[...v].some(A=>A==="DONE"||A==="FAILED")&&Gn()}),c=U(()=>{const v=kr();return v.size>0&&v.has("RUNNING")}),x=U(()=>{const v=kr();return v.size>0&&v.has("RUNNING")}),R=U(Gn),g=I(se(wl())),b=null;function S(){b&&clearTimeout(b),b=setTimeout(()=>{El(e(g))},200)}Ne(()=>Nl(e(M)));let _=I(!1),T=I(0),z=I(0),D=I(se([])),V=I("");function H(v,A,E,J){f(D,Ut().has(v)?[...Ut()]:[v],!0),f(V,J,!0),f(T,A,!0),f(z,E,!0),f(_,!0)}function O(){f(_,!1)}function j(v){const A=Pr();if(A.length){if(v.key==="Escape"){qn(),O();return}if((v.ctrlKey||v.metaKey)&&v.key==="a"){v.preventDefault(),Bn(A);return}if(v.key==="ArrowDown"||v.key==="ArrowUp"){v.preventDefault();const E=v.key==="ArrowDown"?1:-1,J=jn(),oe=A.indexOf(J),ge=Math.max(0,Math.min(A.length-1,oe+E)),le=A[ge];v.shiftKey?nn(tn()||A[0],le,A):Ca(le),Pl(le);return}if(v.key===" "){v.preventDefault();const E=jn();E&&(v.shiftKey?nn(tn()||E,E,Pr()):rn(E))}}}var q=hc();rt("click",it,O),rt("scroll",it,O);var Y=B(q),ae=k(Y);Ot(ae,{eyebrow:"Overview",title:"Status",wide:!0,id:"status-card-shell",actions:A=>{var E=lc(),J=B(E);{let le=U(qi);rr(J,{name:"status",get intervalMs(){return e(le)},get onRefresh(){return r.onRefresh},get checked(){return e(M)},set checked(K){f(M,K,!0)}})}var oe=P(J,2);{var ge=le=>{$e(le,{variant:"primary",onclick:()=>r.onRefresh(),children:(K,re)=>{var ne=ic(),ue=B(ne);Te(ue,{get icon(){return Zt}}),we(),u(K,ne)},$$slots:{default:!0}})};X(oe,le=>{e(M)||le(ge)})}u(A,E)},children:(A,E)=>{var J=gc(),oe=B(J),ge=k(oe),le=k(ge);Qe(le);var K=P(le,2);Bl(K,{}),p(ge);var re=P(ge,2),ne=k(re),ue=k(ne);p(ne);var de=P(ne,2);{let pe=U(()=>!e(F));$e(de,{variant:"run",size:"sm",onclick:n,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=cc(),ye=B(Fe);Te(ye,{get icon(){return pa}}),we(),u(Oe,Fe)},$$slots:{default:!0}})}var Z=P(de,2);{let pe=U(()=>!e(h));$e(Z,{variant:"warning",size:"sm",onclick:o,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=uc(),ye=B(Fe);Te(ye,{get icon(){return Gs}}),we(),u(Oe,Fe)},$$slots:{default:!0}})}var be=P(Z,2);{let pe=U(()=>!e(x));$e(be,{variant:"warning",size:"sm",onclick:s,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=dc(),ye=B(Fe);Te(ye,{get icon(){return zs}}),we(),u(Oe,Fe)},$$slots:{default:!0}})}var fe=P(be,2);{let pe=U(()=>[{label:"Extend",icon:Us,onClick:d,disabled:!e(x)},{label:"Checkpoint",icon:Ws,onClick:l,disabled:!e(x)},{label:"Flush",icon:Os,onClick:y,disabled:!e(x)}]);pl(fe,{get items(){return e(pe)}})}var Pe=P(fe,2);{let pe=U(()=>!e(c));$e(Pe,{variant:"danger",size:"sm",onclick:i,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=fc(),ye=B(Fe);Te(ye,{get icon(){return Is}}),we(),u(Oe,Fe)},$$slots:{default:!0}})}var ve=P(Pe,2);{let pe=U(()=>!e(R));$e(ve,{variant:"secondary",size:"sm",onclick:w,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=vc(),ye=B(Fe);Te(ye,{get icon(){return Ys}}),we(),u(Oe,Fe)},$$slots:{default:!0}})}p(re),p(oe);var ze=P(oe,2);{let pe=U($a);ac(ze,{get rows(){return e(pe)},onContextMenu:H,onToggleAll:L,onToggleRow:m})}Q(pe=>ee(ue,`${pe??""} selected`),[()=>Ut().size]),ie("input",le,S),tt(le,()=>e(g),pe=>f(g,pe)),u(A,J)},$$slots:{actions:!0,default:!0}}),p(Y);var N=P(Y,2);{var C=v=>{sc(v,{get cases(){return e(D)},get x(){return e(T)},get y(){return e(z)},get currentValue(){return e(V)},onClose:O})};X(N,v=>{e(_)&&v(C)})}ie("keydown",Y,j),u(t,q),Le()}We(["keydown","input"]);var mc=$('
        ');function Yt(t,r){var a=mc(),n=k(a);ft(n,()=>r.children),p(a),u(t,a)}function wn(t){return t.map(r=>({value:r,label:r}))}var _c=$(''),bc=$(" ",1);function kn(t,r){Ae(r,!0);let a=he(r,"columnLabel",3,"Columns"),n=he(r,"xMinLabel",3,"Iter min"),o=U(()=>wn(r.allCases)),i=U(()=>r.columns.map(d=>({value:d,label:d}))),s=[{value:"zero",label:"Zero"},{value:"restart",label:"Restart start"},{value:"custom",label:"Custom"}];function l(d){r.onXMinChange(Number(d.target.value)||0)}Yt(t,{children:(d,y)=>{var w=bc(),L=B(w);Me(L,{text:"Cases",children:(b,S)=>{Gt(b,{class:"w-[160px]",get options(){return e(o)},get selected(){return r.selectedCases},get onchange(){return r.onCasesChange},placeholder:"Select cases..."})}});var m=P(L,2);{var M=b=>{var S=_e(),_=B(S);ft(_,()=>r.middleSlot),u(b,S)};X(m,b=>{r.middleSlot&&b(M)})}var F=P(m,2);Me(F,{get text(){return a()},children:(b,S)=>{Gt(b,{class:"w-[160px]",get options(){return e(i)},get selected(){return r.selectedColumns},get onchange(){return r.onColumnsChange},placeholder:"Select..."})}});var h=P(F,2);Me(h,{text:"Start from",children:(b,S)=>{lt(b,{class:"w-[140px]",get options(){return s},get value(){return r.startFrom},onchange:_=>r.onStartFromChange(_)})}});var c=P(h,2);{var x=b=>{Me(b,{get text(){return n()},children:(S,_)=>{var T=_c();Qe(T),Q(()=>dn(T,r.xMin)),ie("input",T,l),u(S,T)}})};X(c,b=>{r.startFrom==="custom"&&b(x)})}var R=P(c,2);{var g=b=>{var S=_e(),_=B(S);ft(_,()=>r.extraSlot),u(b,S)};X(R,b=>{r.extraSlot&&b(g)})}u(d,w)}}),Le()}We(["input"]);var xc=$('
        '),yc=$('
        ');function Qt(t,r){let a=he(r,"emptyMessage",3,"");var n=yc(),o=k(n);{var i=l=>{var d=_e(),y=B(d);Fr(y,()=>r.svgHtml),u(l,d)},s=l=>{var d=xc(),y=k(d),w=k(y,!0);p(y),p(d),Q(()=>ee(w,a()||"No data to display.")),u(l,d)};X(o,l=>{r.svgHtml?l(i):l(s,-1)})}p(n),Q(()=>Se(n,"id",r.id)),u(t,n)}async function Cn(t,r="plot.png"){const a=document.getElementById(t),n=a==null?void 0:a.querySelector("svg");if(!n)return;const{width:o,height:i}=wc(n),s=window.devicePixelRatio||1,l=document.createElement("canvas");l.width=o*s,l.height=i*s;const d=l.getContext("2d");if(!d)return;d.scale(s,s);const y=new XMLSerializer().serializeToString(n),w=new Blob([y],{type:"image/svg+xml;charset=utf-8"}),L=URL.createObjectURL(w),m=new Image;m.width=o,m.height=i,await new Promise((F,h)=>{m.onload=()=>{d.drawImage(m,0,0,o,i),URL.revokeObjectURL(L),F()},m.onerror=h,m.src=L});const M=await new Promise(F=>l.toBlob(F,"image/png"));M&&await Ea(M,kc(r))}function _r(t,r,a="png"){const n=r.length<=3?r.join("_"):`${r.length}_cases`,o=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);return Cc(`${t}_${n}_${o}.${a}`)}async function Pa(t,r){const a=new Blob([t],{type:"text/csv;charset=utf-8"});await Ea(a,r)}function wc(t){const r=t.getAttribute("viewBox");if(r){const a=r.split(/[\s,]+/).map(Number);if(a.length===4)return{width:a[2],height:a[3]}}return{width:t.width.baseVal.value||900,height:t.height.baseVal.value||500}}async function Ea(t,r){if("showSaveFilePicker"in window)try{const i=await(await window.showSaveFilePicker({suggestedName:r,types:[{description:t.type.startsWith("image/")?"Image":"File",accept:{[t.type]:[`.${r.split(".").pop()}`]}}]})).createWritable();await i.write(t),await i.close();return}catch(o){if((o==null?void 0:o.name)==="AbortError")return}const a=URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=r,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(a)}function kc(t){return t.endsWith(".png")?t:`${t}.png`}function Cc(t){return t.replace(/[^a-zA-Z0-9._-]/g,"_")}let Ra=I(se([])),Na=I(se([])),Ma=I(se([])),Aa=I("zero"),La=I(0),Ta=I(""),Sc=I(!0);function $c(){return{selectedCases:e(Ra),columns:e(Na),selectedColumns:e(Ma),startFrom:e(Aa),iterMin:e(La),svgHtml:e(Ta),autoRefresh:e(Sc)}}function Wn(t){f(Ra,t,!0)}function Pc(t){f(Na,t,!0)}function Gr(t){f(Ma,t,!0)}function Ec(t){f(Aa,t,!0)}function Rc(t){f(La,t,!0)}function Cr(t){f(Ta,t,!0)}var Nc=$(" Refresh",1),Mc=$(" ",1),Ac=$(" Download as PNG",1),Lc=$('
        '),Tc=$('
        ',1),Fc=$('
        '),Dc=$('

        '),zc=$(" ",1);function Ic(t,r){Ae(r,!0);let a=U($c),n=I("");const o=new Set(["iteration","wall_distance","walldistance"]),i=["velocity","pressure"];async function s(){if(e(a).selectedCases.length)try{const h=await si(e(a).selectedCases);f(n,"");const c=h.filter(x=>!o.has(x.toLowerCase().replace(/\s+/g,"_")));if(Pc(c),c.length===0){Gr([]),Cr("");return}if(e(a).selectedColumns.length===0){const x=c.filter(R=>i.some(g=>R.toLowerCase().includes(g)));Gr(x.length>0?x:[c[0]])}}catch(h){f(n,"Failed to load residual columns"),console.error("Failed to load residual columns:",h)}}async function l(){if(e(a).selectedCases.length&&!((e(a).columns.length===0||e(a).selectedColumns.length===0)&&(await s(),!e(a).selectedColumns.length)))try{let h=0,c=!0;if(e(a).startFrom==="restart"){const R=await xa(e(a).selectedCases),g=Object.values(R.origins).map(b=>b.iteration).filter(b=>b!==void 0&&Number.isFinite(b));h=g.length>0?Math.min(...g):0}else e(a).startFrom==="custom"&&(h=e(a).iterMin);const x=await ii(e(a).selectedCases,e(a).selectedColumns,{xMin:h,includeHistory:c});f(n,""),x&&Cr(x)}catch(h){f(n,"Failed to load residual plot"),console.error("Failed to load residual plot:",h)}}function d(h){if(Wn(h),h.length===0){Cr("");return}s(),l()}function y(h){if(Gr(h),h.length===0){Cr("");return}l()}function w(h){Ec(h),l()}function L(h){Rc(h),l()}let m=I(se(er("plot")));Ne(()=>{tr("plot",e(m))}),Ne(()=>{e(m)?hr("residualPlot",l,On()):vt("residualPlot")});let M=!1;Ne(()=>{r.allCases.length>0&&!M&&(M=!0,Wn([...r.allCases]),s().then(()=>l()))});const F=pr(()=>{M&&s().then(()=>l())});dr(()=>{vt("residualPlot"),F()}),Ot(t,{eyebrow:"Diagnostics",title:"Residuals Plot",wide:!0,actions:c=>{var x=Mc(),R=B(x);{let S=U(On);rr(R,{name:"residualPlot",get intervalMs(){return e(S)},onRefresh:l,get checked(){return e(m)},set checked(_){f(m,_,!0)}})}var g=P(R,2);{var b=S=>{$e(S,{variant:"primary",onclick:l,children:(_,T)=>{var z=Nc(),D=B(z);Te(D,{get icon(){return Zt}}),we(),u(_,z)},$$slots:{default:!0}})};X(g,S=>{e(m)||S(b)})}u(c,x)},children:(c,x)=>{var R=zc(),g=B(R);{var b=z=>{const D=q=>{var Y=Lc(),ae=k(Y);{let N=U(()=>!e(a).svgHtml);$e(ae,{variant:"secondary",size:"sm",onclick:()=>Cn("plot-holder",_r("residuals",e(a).selectedCases)),get disabled(){return e(N)},children:(C,v)=>{var A=Ac(),E=B(A);Te(E,{get icon(){return gr}}),we(),u(C,A)},$$slots:{default:!0}})}p(Y),u(q,Y)};var V=Tc(),H=B(V);kn(H,{prefix:"plot",get allCases(){return r.allCases},get selectedCases(){return e(a).selectedCases},onCasesChange:d,columnLabel:"Variables",get columns(){return e(a).columns},get selectedColumns(){return e(a).selectedColumns},onColumnsChange:y,get startFrom(){return e(a).startFrom},onStartFromChange:w,xMinLabel:"Iter min",get xMin(){return e(a).iterMin},onXMinChange:L,get extraSlot(){return D}});var O=P(H,2),j=k(O);{let q=U(()=>e(a).selectedCases.length===0?"Please select at least one case.":e(a).selectedColumns.length===0?"Please select at least one variable.":"No data to display.");Qt(j,{id:"plot-holder",get svgHtml(){return e(a).svgHtml},get emptyMessage(){return e(q)}})}p(O),u(z,V)},S=z=>{var D=Fc(),V=k(D);Qt(V,{id:"plot-holder",svgHtml:"",emptyMessage:"No data available. Please run a simulation first."}),p(D),u(z,D)};X(g,z=>{e(a).columns.length>0?z(b):z(S,-1)})}var _=P(g,2);{var T=z=>{var D=Dc(),V=k(D,!0);p(D),Q(()=>ee(V,e(n))),u(z,D)};X(_,z=>{e(n)&&z(T)})}u(c,R)},$$slots:{actions:!0,default:!0}}),Le()}function Fa(t){const{scope:r,getState:a,setState:n,setHasData:o,getAxis:i}=t;async function s(){const m=a();if(m.selectedCases.length)try{let M=await Qr(m.selectedCases,r);if(t.filterFiles&&(M=t.filterFiles(M)),n({files:M}),o(M.length>0),M.length===0){n({file:"",columns:[],selectedColumns:[],positionText:"",svgHtml:""});return}(!m.file||!M.includes(m.file))&&(n({file:M[0]}),await l())}catch(M){console.error(`Failed to load ${r} files:`,M)}}async function l(){const m=a();if(!(!m.selectedCases.length||!m.file))try{const M=await fi(m.selectedCases,[m.file]),F=t.filterColumns?t.filterColumns(M):M;t.onColumnsLoaded?t.onColumnsLoaded(M):n({columns:F});const h=a();if(h.columns.length===0){n({selectedColumns:[],positionText:"",svgHtml:""});return}h.selectedColumns.length===0&&n({selectedColumns:[h.columns[0]]})}catch(M){console.error(`Failed to load ${r} columns:`,M)}}async function d(){let m=a();if(m.selectedCases.length){if(await s(),m=a(),!m.file){n({positionText:"",svgHtml:""});return}if((m.columns.length===0||m.selectedColumns.length===0)&&(await l(),m=a(),!m.selectedColumns.length)){n({positionText:"",svgHtml:""});return}try{let M;const F=a();if(F.startFrom==="restart"){const c=await xa(F.selectedCases),x=i().toLowerCase(),R=x==="t"||x==="time"?"time":"iteration",g=Object.values(c.origins).map(b=>b[R]).filter(b=>b!==void 0&&Number.isFinite(b));M=g.length>0?Math.min(...g):void 0}else F.startFrom==="custom"&&(M=F.xMin);const h=await gi({cases:F.selectedCases,probes:[F.file],columns:F.selectedColumns,axis:i(),timeMin:typeof M=="number"?M:void 0,xMin:M,includeHistory:!0});h&&n({svgHtml:h})}catch(M){console.error(`Failed to load ${r} plot:`,M)}}}async function y(m){if(n({selectedCases:m}),m.length===0){n({svgHtml:""});return}await s(),r==="monitoring"&&await d()}function w(m){if(n({selectedColumns:m}),m.length===0){n({svgHtml:""});return}d()}async function L(m){n({file:m}),await l(),await d()}return{loadFiles:s,loadColumns:l,loadPlot:d,handleCasesChange:y,handleColumnsChange:w,handleFileChange:L}}function Da(){return{selectedCases:[],file:"",files:[],columns:[],selectedColumns:[],axis:"time",startFrom:"zero",xMin:0,positionText:"",svgHtml:"",autoRefresh:!0}}let Vt=I("time"),an=I(se(Da())),on=I(se({...Da(),axis:""})),Oc=I(!0),Ar=I(!1),Lr=I(!1);function Hc(){return e(Vt)}function jc(t){f(Vt,t,!0)}function Uc(){return e(Ar)}function sn(t){f(Ar,t,!0)}function Vc(){return e(Lr)}function ln(t){f(Lr,t,!0)}function Bc(){e(Vt)==="time"&&!e(Ar)&&e(Lr)?f(Vt,"profile"):e(Vt)==="profile"&&!e(Lr)&&e(Ar)&&f(Vt,"time")}function Xn(){return e(an)}function Wr(){return e(on)}function kt(t){f(an,{...e(an),...t},!0)}function At(t){f(on,{...e(on),...t},!0)}function qc(){return e(Oc)}var Kc=$(" Download as PNG",1),Gc=$('
        '),Wc=$("
        "),Xc=$('
        '),Yc=$('
        ',1),Qc=$('
        ');function Jc(t,r){Ae(r,!0);let a=he(r,"onRefresh",15),n=U(Xn);const o=new Set(["time","t","iteration","iter"]),i=Fa({scope:"monitoring",getState:Xn,setState:kt,setHasData:sn,filterFiles:h=>h.filter(c=>{const x=c.replace(/\.csv$/i,"").toLowerCase();return x!=="coords"&&!x.includes("coordinates")}),filterColumns:h=>h.filter(c=>!o.has(c.toLowerCase())),onColumnsLoaded:h=>{const c=h.filter(x=>!o.has(x.toLowerCase()));kt({columns:c}),s()},getAxis:()=>"time"});async function s(){if(!(!e(n).selectedCases.length||!e(n).file||!e(n).selectedColumns.length))try{const h=[];for(const S of e(n).selectedColumns){const _=await vi(e(n).selectedCases[0],e(n).file,[S]);_.found&&h.push({col:S,x:_.x,y:_.y,z:_.z})}if(!h.length){kt({positionText:""});return}const c=S=>{let _=0;for(const T of S){if(T===void 0)continue;const z=String(T),D=z.indexOf(".");D>=0&&(_=Math.max(_,z.length-D-1))}return _},x=c(h.map(S=>S.x)),R=c(h.map(S=>S.y)),g=c(h.map(S=>S.z)),b=h.map(S=>{const _=[];return S.x!==void 0&&_.push(`x=${S.x.toFixed(x)}`),S.y!==void 0&&_.push(`y=${S.y.toFixed(R)}`),S.z!==void 0&&_.push(`z=${S.z.toFixed(g)}`),`Probe position [${S.col}] : ${_.join(" · ")}`});kt({positionText:b.join(` -`)})}catch{kt({positionText:""})}}function l(h){i.handleColumnsChange(h),h.length>0&&s()}let d=U(()=>e(n).files.map(h=>({value:h,label:h.replace(/\.csv$/i,"").replace(/^probes?_/i,"")}))),y=!1;Ne(()=>{r.allCases.length>0&&!y&&(y=!0,kt({selectedCases:[...r.allCases]}),i.loadFiles().then(()=>i.loadPlot()))}),Ne(()=>{a(i.loadPlot)});let w=U(()=>e(n).selectedCases.length===0?"Please select at least one case.":e(n).selectedColumns.length===0?"Please select at least one probe.":"No data to display.");var L=_e(),m=B(L);{var M=h=>{const c=z=>{Me(z,{text:"Quantity",children:(D,V)=>{lt(D,{class:"w-[160px]",get options(){return e(d)},get value(){return e(n).file},get onchange(){return i.handleFileChange}})}})},x=z=>{var D=Gc(),V=k(D);{let H=U(()=>!e(n).svgHtml);$e(V,{variant:"secondary",size:"sm",onclick:()=>Cn("probe-plot-holder",_r("probe",e(n).selectedCases)),get disabled(){return e(H)},children:(O,j)=>{var q=Kc(),Y=B(q);Te(Y,{get icon(){return gr}}),we(),u(O,q)},$$slots:{default:!0}})}p(D),u(z,D)};var R=Yc(),g=B(R);kn(g,{prefix:"probe",get allCases(){return r.allCases},get selectedCases(){return e(n).selectedCases},get onCasesChange(){return i.handleCasesChange},get middleSlot(){return c},columnLabel:"Probes",get columns(){return e(n).columns},get selectedColumns(){return e(n).selectedColumns},onColumnsChange:l,get startFrom(){return e(n).startFrom},onStartFromChange:z=>{kt({startFrom:z}),i.loadPlot()},xMinLabel:"Time min",get xMin(){return e(n).xMin},onXMinChange:z=>{kt({xMin:z}),i.loadPlot()},get extraSlot(){return x}});var b=P(g,2);{var S=z=>{var D=Xc();Je(D,21,()=>e(n).positionText.split(` -`).sort(),un,(V,H)=>{var O=Wc(),j=k(O,!0);p(O),Q(()=>ee(j,e(H))),u(V,O)}),p(D),u(z,D)};X(b,z=>{e(n).positionText&&z(S)})}var _=P(b,2),T=k(_);Qt(T,{id:"probe-plot-holder",get svgHtml(){return e(n).svgHtml},get emptyMessage(){return e(w)}}),p(_),u(h,R)},F=h=>{var c=Qc(),x=k(c);Qt(x,{id:"probe-plot-holder",svgHtml:"",emptyMessage:"No probe data available. Please run a simulation first."}),p(c),u(h,c)};X(m,h=>{e(n).files.length>0?h(M):h(F,-1)})}u(t,L),Le()}var Zc=$(" ",1),eu=$(" Download as PNG",1),tu=$('
        '),ru=$('
        ',1),nu=$('
        ');function au(t,r){Ae(r,!0);let a=he(r,"onRefresh",15),n=U(Wr);const o=["s","x","abscissa","distance","arclength","arc_length","curvilinear","length","r","y","z","coord","position"];function i(c){const x=c.map(R=>R.toLowerCase());for(const R of o){const g=x.indexOf(R);if(g>=0)return c[g]}return c[0]??""}const s=Fa({scope:"profiles",getState:Wr,setState:At,setHasData:ln,onColumnsLoaded:c=>{const x=e(n).axis||i(c),R=c.filter(g=>g!==x).toSorted((g,b)=>g.localeCompare(b));At({columns:R,axis:x,selectedColumns:e(n).selectedColumns.length?e(n).selectedColumns:R.length?[R[0]]:[]})},getAxis:()=>Wr().axis});function l(c){const x=e(n).axis;At({axis:c});const g=[...e(n).columns,...x?[x]:[]].filter(b=>b!==c).toSorted((b,S)=>b.localeCompare(S));At({columns:g}),s.loadPlot()}let d=U(()=>e(n).files.map(c=>({value:c,label:c.replace(/\.csv$/i,"").replace(/^profiles\//i,"").replace(/_/g," ")}))),y=U(()=>[...e(n).axis?[e(n).axis]:[],...e(n).columns].toSorted((c,x)=>c.localeCompare(x)).map(c=>({value:c,label:c}))),w=!1;Ne(()=>{r.allCases.length>0&&!w&&(w=!0,At({selectedCases:[...r.allCases]}),s.loadFiles().then(()=>s.loadPlot()))}),Ne(()=>{a(s.loadPlot)});let L=U(()=>e(n).selectedCases.length===0?"Please select at least one case.":e(n).selectedColumns.length===0?"Please select at least one value.":"No data to display.");var m=_e(),M=B(m);{var F=c=>{const x=T=>{var z=Zc(),D=B(z);Me(D,{text:"Profile",children:(H,O)=>{lt(H,{class:"w-[160px]",get options(){return e(d)},get value(){return e(n).file},get onchange(){return s.handleFileChange}})}});var V=P(D,2);Me(V,{text:"X axis",children:(H,O)=>{lt(H,{class:"w-[140px]",get options(){return e(y)},get value(){return e(n).axis},onchange:l})}}),u(T,z)},R=T=>{var z=tu(),D=k(z);{let V=U(()=>!e(n).svgHtml);$e(D,{variant:"secondary",size:"sm",onclick:()=>Cn("profile-plot-holder",_r("profile",e(n).selectedCases)),get disabled(){return e(V)},children:(H,O)=>{var j=eu(),q=B(j);Te(q,{get icon(){return gr}}),we(),u(H,j)},$$slots:{default:!0}})}p(z),u(T,z)};var g=ru(),b=B(g);kn(b,{prefix:"profile",get allCases(){return r.allCases},get selectedCases(){return e(n).selectedCases},get onCasesChange(){return s.handleCasesChange},get middleSlot(){return x},columnLabel:"Values",get columns(){return e(n).columns},get selectedColumns(){return e(n).selectedColumns},get onColumnsChange(){return s.handleColumnsChange},get startFrom(){return e(n).startFrom},onStartFromChange:T=>{At({startFrom:T}),s.loadPlot()},xMinLabel:"X min",get xMin(){return e(n).xMin},onXMinChange:T=>{At({xMin:T}),s.loadPlot()},get extraSlot(){return R}});var S=P(b,2),_=k(S);Qt(_,{id:"profile-plot-holder",get svgHtml(){return e(n).svgHtml},get emptyMessage(){return e(L)}}),p(S),u(c,g)},h=c=>{var x=nu(),R=k(x);Qt(R,{id:"profile-plot-holder",svgHtml:"",emptyMessage:"No profile data available. Please run a simulation first."}),p(x),u(c,x)};X(M,c=>{e(n).files.length>0?c(F):c(h,-1)})}u(t,m),Le()}var ou=$('
        Diagnostics
        '),su=$(" Refresh",1),iu=$(" ",1);function lu(t,r){Ae(r,!0);let a=U(Hc),n=U(qc),o=U(Uc),i=U(Vc),s=I(se(er("probe")));Ne(()=>{tr("probe",e(s))});let l=I(void 0);function d(){var F;(F=e(l))==null||F()}async function y(){if(r.allCases.length){try{const h=(await Qr(r.allCases,"monitoring")).filter(c=>{const x=c.replace(/\.csv$/i,"").toLowerCase();return x!=="coords"&&!x.includes("coordinates")});sn(h.length>0)}catch{sn(!1)}try{const F=await Qr(r.allCases,"profiles");ln(F.length>0)}catch{ln(!1)}}}Ne(()=>{r.allCases.length>0&&y()}),pr(()=>{y(),d()}),Ne(()=>{e(o),e(i),Bc()});function w(F){F==="time"&&!e(o)||F==="profile"&&!e(i)||jc(F)}var L=_e(),m=B(L);{var M=F=>{{const h=x=>{var R=ou(),g=P(k(R),2),b=k(g),S=P(b,2);p(g),p(R),Q(()=>{Ce(b,1,`bg-transparent border-none p-0 m-0 text-lg font-bold tracking-tight transition-colors duration-150 - ${e(o)?e(a)==="time"?"text-edf-bleu-fonce cursor-pointer":"text-edf-gris-moyen cursor-pointer hover:text-muted":"text-edf-gris-moyen cursor-not-allowed opacity-50"}`),b.disabled=!e(o),Se(b,"title",e(o)?"":"No probe data available. Run a simulation first."),Ce(S,1,`bg-transparent border-none p-0 m-0 text-lg font-bold tracking-tight transition-colors duration-150 - ${e(i)?e(a)==="profile"?"text-edf-bleu-fonce cursor-pointer":"text-edf-gris-moyen cursor-pointer hover:text-muted":"text-edf-gris-moyen cursor-not-allowed opacity-50"}`),S.disabled=!e(i),Se(S,"title",e(i)?"":"No profile data available. Run a simulation first.")}),ie("click",b,()=>w("time")),ie("click",S,()=>w("profile")),u(x,R)};Ot(F,{wide:!0,titleSlot:h,tabs:h,actions:x=>{var R=iu(),g=B(R);{let _=U(()=>e(a)==="time"?"probePlot":"profilePlot"),T=U(Ki);rr(g,{get name(){return e(_)},get intervalMs(){return e(T)},onRefresh:d,get checked(){return e(s)},set checked(z){f(s,z,!0)}})}var b=P(g,2);{var S=_=>{$e(_,{variant:"primary",onclick:d,children:(T,z)=>{var D=su(),V=B(D);Te(V,{get icon(){return Zt}}),we(),u(T,D)},$$slots:{default:!0}})};X(b,_=>{e(s)||_(S)})}u(x,R)},children:(x,R)=>{var g=_e(),b=B(g);{var S=T=>{Jc(T,{get allCases(){return r.allCases},get onRefresh(){return e(l)},set onRefresh(z){f(l,z,!0)}})},_=T=>{au(T,{get allCases(){return r.allCases},get onRefresh(){return e(l)},set onRefresh(z){f(l,z,!0)}})};X(b,T=>{e(a)==="time"?T(S):T(_,-1)})}u(x,g)},$$slots:{tabs:!0,actions:!0,default:!0}})}};X(m,F=>{e(n)&&F(M)})}u(t,L),Le()}We(["click"]);var cu=$(" Refresh",1),uu=$(" ",1),du=$(" Download as CSV",1),fu=$('
        ',1),vu=$(" "),gu=$(' '),hu=$(' '),pu=$('
        Case
        '),mu=$('

        '),_u=$(" ",1);function bu(t,r){Ae(r,!0);let a=I(se([])),n=I(se([])),o=I(!1),i=I(!1),s=I(se(er("perf")));Ne(()=>{tr("perf",e(s))});const l=5e3;let y=I(se([{key:"elapsed_time",label:"Elapsed (s)",kind:"time"},{key:"io_time",label:"I/O (s)",kind:"time"},{key:"linear_solver_time",label:"Linear Solver (s)",kind:"time"},{key:"gradients_time",label:"Gradients (s)",kind:"time"},{key:"balances_time",label:"Balances (s)",kind:"time"},{key:"mpi_ranks",label:"MPI Ranks",kind:"int"},{key:"threads",label:"Threads",kind:"int"}])),w=U(()=>r.allCases.map(R=>({value:R,label:R}))),L=U(()=>e(n).length>0);async function m(){var R;if(e(a).length){f(i,!0);try{const g=await Dn(e(a));(R=g.columns)!=null&&R.length&&f(y,g.columns,!0),f(n,g.records,!0),e(n).length>0&&f(o,!0)}catch(g){console.error("Failed to load perf:",g)}f(i,!1)}}function M(R){if(f(a,R,!0),R.length===0){f(n,[],!0);return}m()}function F(R,g){if(g==null||g==="")return"-";if(R==="text")return g;const b=Number(g);return Number.isFinite(b)?R==="int"?String(Math.round(b)):b.toFixed(3):g}async function h(){if(!e(n).length)return;const R=["case_id",...e(y).map(_=>_.key)],g=e(n).map(_=>[_.case_id,...e(y).map(T=>_[T.key]??"")].join(",")),b=[R.join(","),...g].join(` -`),S=_r("timing_snapshot",e(a),"csv");await Pa(b,S)}let c=!1;Ne(()=>{r.allCases.length>0&&!c&&(c=!0,f(a,[...r.allCases],!0),Dn(r.allCases).then(R=>{var g;(g=R.columns)!=null&&g.length&&f(y,R.columns,!0),f(o,R.records.length>0),f(n,R.records,!0)}).catch(()=>{}))}),Ne(()=>{e(s)?hr("perf",m,l):vt("perf")});const x=pr(()=>{c&&m()});dr(()=>{vt("perf"),x()}),Ot(t,{eyebrow:"Performance",title:"Timing Snapshot",wide:!0,actions:g=>{var b=uu(),S=B(b);rr(S,{name:"perf",intervalMs:l,onRefresh:m,get checked(){return e(s)},set checked(z){f(s,z,!0)}});var _=P(S,2);{var T=z=>{$e(z,{variant:"primary",onclick:m,children:(D,V)=>{var H=cu(),O=B(H);Te(O,{get icon(){return Zt}}),we(),u(D,H)},$$slots:{default:!0}})};X(_,z=>{e(s)||z(T)})}u(g,b)},children:(g,b)=>{var S=_u(),_=B(S);{var T=H=>{Yt(H,{children:(O,j)=>{var q=fu(),Y=B(q);Me(Y,{text:"Cases",children:(C,v)=>{Gt(C,{class:"w-[160px]",get options(){return e(w)},get selected(){return e(a)},onchange:M,placeholder:"Select cases..."})}});var ae=P(Y,2),N=k(ae);{let C=U(()=>!e(L));$e(N,{variant:"secondary",size:"sm",onclick:h,get disabled(){return e(C)},children:(v,A)=>{var E=du(),J=B(E);Te(J,{get icon(){return gr}}),we(),u(v,E)},$$slots:{default:!0}})}p(ae),u(O,q)}})};X(_,H=>{e(o)&&H(T)})}var z=P(_,2);{var D=H=>{var O=pu(),j=k(O),q=k(j),Y=k(q),ae=P(k(Y));Je(ae,17,()=>e(y),C=>C.key,(C,v)=>{var A=vu(),E=k(A,!0);p(A),Q(()=>ee(E,e(v).label)),u(C,A)}),p(Y),p(q);var N=P(q);Je(N,21,()=>e(n),C=>C.case_id,(C,v)=>{var A=hu(),E=k(A),J=k(E,!0);p(E);var oe=P(E);Je(oe,17,()=>e(y),ge=>ge.key,(ge,le)=>{var K=gu(),re=k(K,!0);p(K),Q(ne=>ee(re,ne),[()=>F(e(le).kind,e(v)[e(le).key])]),u(ge,K)}),p(A),Q(()=>ee(J,e(v).case_id)),u(C,A)}),p(N),p(j),p(O),u(H,O)},V=H=>{var O=mu(),j=k(O);{var q=ae=>{var N=Be("Select cases above to view timing information.");u(ae,N)},Y=ae=>{var N=Be("No performance data available. Please run a simulation first.");u(ae,N)};X(j,ae=>{e(o)?ae(q):ae(Y,-1)})}p(O),u(H,O)};X(z,H=>{e(L)?H(D):H(V,-1)})}u(g,S)},$$slots:{actions:!0,default:!0}}),Le()}const xu={"&":"&","<":"<",">":">",'"':""","'":"'"};function za(t){return t.replace(/[&<>"']/g,r=>xu[r]??r)}var yu=$("
        "),wu=$('
        ');function ku(t,r){Ae(r,!0);let a=I(void 0);function n(y){const w=za(y);if(!r.searchQuery.trim())return w;try{const L=new RegExp(`(${r.searchQuery})`,"gi");return w.replace(L,'$1')}catch{return w}}function o(y){return y==="error"?"tail-sev-error":y==="warn"?"tail-sev-warn":y==="info"?"tail-sev-info":""}function i(){return e(a)?e(a).scrollHeight-e(a).scrollTop-e(a).clientHeight<=24:!0}let s=I(!0);function l(){f(s,i(),!0)}Ne(()=>{r.autoScroll&&r.lines.length>0&&e(a)&&e(s)&&Pt().then(()=>{e(a)&&(e(a).scrollTop=e(a).scrollHeight)})});var d=wu();Je(d,21,()=>r.lines,y=>y.index,(y,w)=>{var L=yu();Fr(L,()=>n(e(w).text),!0),p(L),Q(m=>Ce(L,1,`tail-line ${m??""} ${e(w).isNew?"tail-new":""}`),[()=>o(e(w).severity)]),u(y,L)}),p(d),nt(d,y=>f(a,y),()=>e(a)),rt("scroll",d,l),u(t,d),Le()}const Cu=/(fatal error|error detected|error reading|error writing|segmentation fault|sigterm|sigsegv|sigkill|abort|killed|terminated|core dumped|traceback|exception|errno)/i,Su=/(warning|divergence|non-convergence|clipping|negative|nan detected|overflow|underflow)/i;function $u(t){return Cu.test(t)?"error":Su.test(t)?"warn":"none"}function Pu(t,r){return r==="all"||r===""?!0:r==="info"?t!=="none":t===r}var Eu=$(" Refresh",1),Ru=$(" ",1),Nu=$(''),Mu=$(''),Au=$("    ",1),Lu=It(''),Tu=It(''),Fu=It(''),Du=$(" Resume",1),zu=$(" Pause",1),Iu=$('Case not running'),Ou=$(' 
        ',1),Hu=$('

        No log data available. Please run a simulation first.

        '),ju=$('

        '),Uu=$(" ",1);function Vu(t,r){Ae(r,!0);const a=80;let n=I(""),o=I(""),i=I(!1),s=I(se([])),l=I(a),d=I(se([])),y=I(se(new Set)),w=I(!1),L=I(se(er("tail")));Ne(()=>{tr("tail",e(L))});let m=I(!0),M=I("all"),F=I(""),h=I(""),c=I(void 0),x=U(()=>wn(r.allCases)),R=U(()=>e(s).map(N=>{const C=N.split("/").pop()??N;return{value:N,label:C}})),g=[{value:"all",label:"All"},{value:"error",label:"Error"},{value:"warn",label:"Warn"}],b=U(()=>e(s).length>0),S=U(()=>bn().some(N=>{var C;return N.case_id===e(n)&&((C=N.status)==null?void 0:C.toUpperCase())==="RUNNING"}));const _={"run_solver.log":1,listing:2,"run_status.running":3,"csauto.stdout":4,"csauto.stderr":5,"performance.log":6};function T(N){const C=N.split("/").pop()??N;return _[C]??99}async function z(){if(e(n))try{const v=(await ui(e(n))).filter(A=>{const E=A.split("/").pop()??A;return A.endsWith(".log")||A.endsWith("/summary")||E in _}).sort((A,E)=>T(A)-T(E));if(f(s,v,!0),v.length>0){const A=v[0];!e(o)||!v.includes(e(o))?(f(o,A,!0),f(i,!1)):!e(i)&&T(A)0&&v[v.length-1]===""?v.slice(0,-1):v;if(e(d).length>0){const E=V(e(d),A),J=new Set;for(let oe=E;oe{let N=e(d).map((C,v)=>({text:C,index:v,severity:$u(C),isNew:e(y).has(v)}));if(e(M)!=="all"&&(N=N.filter(C=>Pu(C.severity,e(M)))),e(F).trim())try{const C=new RegExp(e(F),"i");N=N.filter(v=>C.test(v.text))}catch{}return N});function O(N){f(n,N,!0),f(o,""),f(i,!1),f(d,[],!0),z().then(()=>D(!0))}function j(N){f(o,N,!0),f(i,!0),f(d,[],!0),D(!0)}function q(){f(w,!e(w)),e(w)||D(!0)}function Y(N){(N.ctrlKey||N.metaKey)&&N.key==="f"&&e(c)&&(N.preventDefault(),e(c).focus())}Ne(()=>{r.allCases.length>0&&!e(n)&&(f(n,r.allCases[0],!0),z().then(()=>D(!0)))}),Ne(()=>{e(L)&&!e(w)&&e(n)?hr("tail",()=>D(!1),In()):vt("tail")});const ae=pr(()=>{e(n)&&z().then(()=>D(!0))});dr(()=>{vt("tail"),ae()}),rt("keydown",it,Y),Ot(t,{eyebrow:"Live",title:"Log Tail",wide:!0,actions:C=>{var v=Ru(),A=B(v);{let oe=U(In);rr(A,{name:"tail",get intervalMs(){return e(oe)},onRefresh:()=>D(!1),get checked(){return e(L)},set checked(ge){f(L,ge,!0)}})}var E=P(A,2);{var J=oe=>{$e(oe,{variant:"primary",onclick:()=>D(!0),children:(ge,le)=>{var K=Eu(),re=B(K);Te(re,{get icon(){return Zt}}),we(),u(ge,K)},$$slots:{default:!0}})};X(E,oe=>{e(L)||oe(J)})}u(C,v)},children:(C,v)=>{var A=Uu(),E=B(A);{var J=ne=>{Yt(ne,{children:(ue,de)=>{var Z=Au(),be=B(Z);Me(be,{text:"Case",children:(pe,Oe)=>{lt(pe,{class:"w-[130px]",get options(){return e(x)},get value(){return e(n)},onchange:O})}});var fe=P(be,2);Me(fe,{text:"File",children:(pe,Oe)=>{lt(pe,{class:"w-[150px]",get options(){return e(R)},get value(){return e(o)},onchange:j})}});var Pe=P(fe,2);Me(Pe,{text:"Lines",children:(pe,Oe)=>{var He=Nu();Qe(He),ie("change",He,()=>D(!0)),tt(He,()=>e(l),Fe=>f(l,Fe)),u(pe,He)}});var ve=P(Pe,2);Me(ve,{text:"Filter",children:(pe,Oe)=>{var He=Mu();Qe(He),nt(He,Fe=>f(c,Fe),()=>e(c)),tt(He,()=>e(F),Fe=>f(F,Fe)),u(pe,He)}});var ze=P(ve,2);Me(ze,{text:"Severity",children:(pe,Oe)=>{lt(pe,{class:"w-[90px]",get options(){return g},get value(){return e(M)},onchange:He=>f(M,He,!0)})}}),u(ue,Z)}})};X(E,ne=>{e(b)&&ne(J)})}var oe=P(E,2);{var ge=ne=>{var ue=Ou(),de=B(ue);ku(de,{get lines(){return e(H)},get searchQuery(){return e(F)},get autoScroll(){return e(m)}});var Z=P(de,2),be=k(Z),fe=k(be);{var Pe=G=>{var W=Lu();u(G,W)},ve=G=>{var W=Tu();u(G,W)},ze=G=>{var W=Fu();u(G,W)};X(fe,G=>{e(w)?G(Pe):e(S)?G(ve,1):G(ze,-1)})}var pe=P(fe);p(be);var Oe=P(be,2);{var He=G=>{$e(G,{variant:"secondary",size:"sm",onclick:q,children:(W,te)=>{var ce=_e(),Re=B(ce);{var Ie=me=>{var ke=Du(),je=B(ke);Te(je,{get icon(){return pa}}),we(),u(me,ke)},xe=me=>{var ke=zu(),je=B(ke);Te(je,{get icon(){return Vs}}),we(),u(me,ke)};X(Re,me=>{e(w)?me(Ie):me(xe,-1)})}u(W,ce)},$$slots:{default:!0}})},Fe=G=>{var W=Iu();u(G,W)};X(Oe,G=>{e(S)?G(He):G(Fe,-1)})}var ye=P(Oe,2),Ee=k(ye);zt(Ee,{get checked(){return e(m)},onchange:G=>f(m,G,!0),size:14,label:"Auto-scroll",labelFirst:!0}),p(ye),p(Z),Q(()=>ee(pe,` ${e(H).length??""} / ${e(d).length??""}`)),u(ne,ue)},le=ne=>{var ue=Hu();u(ne,ue)};X(oe,ne=>{e(d).length>0?ne(ge):ne(le,-1)})}var K=P(oe,2);{var re=ne=>{var ue=ju(),de=k(ue,!0);p(ue),Q(()=>ee(de,e(h))),u(ne,ue)};X(K,ne=>{e(h)&&ne(re)})}u(C,A)},$$slots:{actions:!0,default:!0}}),Le()}We(["change"]);function Bu(t,r=3){var M,F;const a=t.split(` -`),n=[];let o=0,i=0,s=!1;for(const h of a){if(h.startsWith("===")||h.startsWith("---")||h.startsWith("+++"))continue;const c=h.match(/^@@ -(\d+),?\d* \+(\d+),?\d* @@/);if(c){o=parseInt(c[1],10)-1,i=parseInt(c[2],10)-1,s=!0;continue}if(s)if(h.startsWith("-"))o++,n.push({type:"del",leftNum:o,rightNum:null,leftContent:h.slice(1),rightContent:""});else if(h.startsWith("+"))i++,n.push({type:"add",leftNum:null,rightNum:i,leftContent:"",rightContent:h.slice(1)});else{o++,i++;const x=h.startsWith(" ")?h.slice(1):h;n.push({type:"equal",leftNum:o,rightNum:i,leftContent:x,rightContent:x})}}const l=[];let d=0;for(;d=0&&h-L>1&&w.push({kind:"separator",skipped:h-L-1});const c=l[h].type!=="equal",x=c&&!m;w.push({kind:"line",row:l[h],hunkStart:x}),m=c,L=h}if(L=0&&w.push({kind:"separator",skipped:l.length-1-L}),w.length>0&&w[0].kind==="line"){const h=((M=w[0].row)==null?void 0:M.leftNum)??0,c=((F=w[0].row)==null?void 0:F.rightNum)??0,x=Math.max(h,c)-1;x>0&&w.unshift({kind:"separator",skipped:x})}return w}var qu=$('
        '),Ku=$('
        '),Gu=$(' ',1),Wu=$('No matches'),Xu=$('
        '),Yu=$('

        Files are identical.

        '),Qu=$('
        Loading...
        '),Ju=$('
        ');function Zu(t,r){Ae(r,!0);let a=he(r,"loading",3,!1),n=I(void 0),o=U(()=>Bu(r.diffText)),i=U(()=>{const G=[];return e(o).forEach((W,te)=>{W.hunkStart&&G.push(te)}),G}),s=U(()=>e(i).length>0),l=U(()=>{var W;const G=new Array(e(o).length).fill(-1);for(let te=0;te{r.diffText!==y&&(y=r.diffText,f(d,-1))});let w=U(()=>{if(!r.search.trim())return[];try{const G=new RegExp(r.search,"i"),W=[];return e(o).forEach((te,ce)=>{te.kind==="line"&&te.row&&(G.test(te.row.leftContent)||G.test(te.row.rightContent))&&W.push(ce)}),W}catch{return[]}}),L=I(-1),m="";Ne(()=>{r.search!==m&&(m=r.search,f(L,e(w).length>0?0:-1,!0))});async function M(G){var ce;f(L,G,!0),await Pt();const W=e(w)[G],te=(ce=e(g))==null?void 0:ce.querySelector(`[data-item-idx="${W}"]`);if(te&&e(g)&&e(b)){const Re=e(g).getBoundingClientRect(),xe=te.getBoundingClientRect().top-Re.top+e(g).scrollTop-e(g).clientHeight/3;_=!0,e(g).scrollTop=xe,e(b).scrollTop=xe,requestAnimationFrame(()=>{_=!1})}}function F(){e(L)>0&&M(e(L)-1)}function h(){e(L)<0&&e(w).length>0?M(0):e(L)$1`)}catch{return te}}function x(G,W){return G==="equal"?"":G==="del"&&W==="left"?"bg-[rgba(214,67,10,0.08)] text-edf-orange-fonce":G==="del"&&W==="right"?"bg-[rgba(48,122,16,0.08)] text-edf-vert-fonce":G==="add"&&W==="left"?"bg-edf-gris-clair":G==="add"&&W==="right"?"bg-[rgba(48,122,16,0.08)] text-edf-vert-fonce":""}function R(G,W){return G==="del"&&W==="left"?"rgb(251,237,233)":G==="del"&&W==="right"?"rgb(238,247,236)":G==="add"&&W==="left"?"var(--color-edf-gris-clair)":G==="add"&&W==="right"?"rgb(238,247,236)":"white"}let g=I(void 0),b=I(void 0),S=!1,_=!1;function T(G){S||_||!e(g)||!e(b)||(S=!0,G==="left"?(e(b).scrollTop=e(g).scrollTop,e(b).scrollLeft=e(g).scrollLeft):(e(g).scrollTop=e(b).scrollTop,e(g).scrollLeft=e(b).scrollLeft),requestAnimationFrame(()=>{S=!1}))}async function z(G){var te;f(d,G,!0),await Pt();const W=(te=e(g))==null?void 0:te.querySelector(`[data-hunk-start="${G}"]`);if(W&&e(g)&&e(b)){_=!0;const ce=e(g).getBoundingClientRect(),Ie=W.getBoundingClientRect().top-ce.top+e(g).scrollTop-e(g).clientHeight/3;e(g).scrollTop=Ie,e(b).scrollTop=Ie,requestAnimationFrame(()=>{_=!1})}}function D(){e(d)>0&&z(e(d)-1)}function V(){e(d)<0?z(0):e(d)=0&&f(d,W,!0)}function O(G){G.target instanceof HTMLInputElement||(G.key==="n"&&!G.shiftKey?(G.preventDefault(),V()):G.key==="N"||G.key==="n"&&G.shiftKey?(G.preventDefault(),D()):G.key==="j"?(G.preventDefault(),h()):(G.key==="J"||G.key==="j"&&G.shiftKey)&&(G.preventDefault(),F()))}var j=Ju();{const G=(W,te=wo)=>{var ce=_e(),Re=B(ce);Je(Re,17,()=>e(o),un,(Ie,xe,me)=>{const ke=U(()=>e(i).indexOf(me)),je=U(()=>e(l)[me]>=0&&e(l)[me]===e(d)),Xe=U(()=>{var at,Ge;return te()==="left"?(at=e(xe).row)==null?void 0:at.leftNum:(Ge=e(xe).row)==null?void 0:Ge.rightNum}),gt=U(()=>{var at,Ge;return te()==="left"?((at=e(xe).row)==null?void 0:at.leftContent)??"":((Ge=e(xe).row)==null?void 0:Ge.rightContent)??""});var Ht=_e(),Or=B(Ht);{var et=at=>{var Ge=qu(),Nt=P(k(Ge),2),Hr=k(Nt);p(Nt),p(Ge),Q(()=>ee(Hr,`... ${e(xe).skipped??""} lines hidden ...`)),u(at,Ge)},ut=at=>{var Ge=Ku(),Nt=k(Ge),Hr=k(Nt,!0);p(Nt);var Sn=P(Nt,2);Fr(Sn,()=>c(e(gt),e(L)>=0&&e(w)[e(L)]===me),!0),p(Sn),p(Ge),Q((yt,Mt,br,Ia,Oa)=>{Ce(Ge,1,`flex w-full ${yt??""} ${Mt??""}`),Ze(Ge,e(je)?"background-color: rgba(16,87,200,0.12); color: rgb(16,87,200);":""),Se(Ge,"role",br),Se(Ge,"tabindex",Ia),Se(Ge,"data-hunk-start",te()==="left"&&e(ke)>=0?e(ke):void 0),Se(Ge,"data-item-idx",te()==="left"?me:void 0),Ze(Nt,`background: ${Oa??""}; color: ${e(je)?"white":"var(--color-muted)"};`),ee(Hr,e(Xe)??"")},[()=>x(e(xe).row.type,te()),()=>e(xe).row.type!=="equal"||e(w).includes(me)?"cursor-pointer":"",()=>e(xe).row.type!=="equal"||e(w).includes(me)?"button":void 0,()=>e(xe).row.type!=="equal"||e(w).includes(me)?0:void 0,()=>e(je)?"rgb(16,87,200)":R(e(xe).row.type,te())]),ie("click",Ge,()=>{var Mt;((Mt=e(xe).row)==null?void 0:Mt.type)!=="equal"&&H(me);const yt=e(w).indexOf(me);yt>=0&&f(L,yt,!0)}),ie("keydown",Ge,yt=>{var Mt;if(yt.key==="Enter"||yt.key===" "){yt.preventDefault(),((Mt=e(xe).row)==null?void 0:Mt.type)!=="equal"&&H(me);const br=e(w).indexOf(me);br>=0&&f(L,br,!0)}}),u(at,Ge)};X(Or,at=>{e(xe).kind==="separator"?at(et):e(xe).row&&at(ut,1)})}u(Ie,Ht)}),u(W,ce)};var q=k(j),Y=k(q),ae=k(Y),N=k(ae,!0);p(ae);var C=P(ae,2),v=k(C,!0);p(C),p(Y);var A=P(Y,2),E=k(A),J=k(E,!0);p(E);var oe=P(E,2),ge=k(oe,!0);p(oe),p(A),p(q);var le=P(q,2),K=k(le),re=k(K);Qe(re);var ne=P(re,2);{var ue=W=>{var te=Gu(),ce=B(te);{let me=U(()=>e(L)<=0);$e(ce,{variant:"secondary",size:"sm",onclick:F,get disabled(){return e(me)},children:(ke,je)=>{we();var Xe=Be("Prev");u(ke,Xe)},$$slots:{default:!0}})}var Re=P(ce,2),Ie=k(Re);p(Re);var xe=P(Re,2);{let me=U(()=>e(L)>=e(w).length-1);$e(xe,{variant:"secondary",size:"sm",onclick:h,get disabled(){return e(me)},children:(ke,je)=>{we();var Xe=Be("Next");u(ke,Xe)},$$slots:{default:!0}})}Q(()=>ee(Ie,`${e(L)>=0?e(L)+1:"–"} / ${e(w).length??""} occurrence${e(w).length!==1?"s":""}`)),u(W,te)},de=U(()=>r.search.trim()&&e(w).length>0),Z=W=>{var te=Wu();u(W,te)},be=U(()=>r.search.trim());X(ne,W=>{e(de)?W(ue):e(be)&&W(Z,1)})}p(K);var fe=P(K,2),Pe=k(fe);{let W=U(()=>e(i).length===0||e(d)<=0);$e(Pe,{variant:"secondary",size:"sm",onclick:D,get disabled(){return e(W)},children:(te,ce)=>{we();var Re=Be("Prev");u(te,Re)},$$slots:{default:!0}})}var ve=P(Pe,2),ze=k(ve);p(ve);var pe=P(ve,2);{let W=U(()=>e(i).length===0||e(d)>=e(i).length-1);$e(pe,{variant:"secondary",size:"sm",onclick:V,get disabled(){return e(W)},children:(te,ce)=>{we();var Re=Be("Next");u(te,Re)},$$slots:{default:!0}})}p(fe),p(le);var Oe=P(le,2);{var He=W=>{var te=Xu(),ce=k(te),Re=k(ce),Ie=k(Re);G(Ie,()=>"left"),p(Re),p(ce),nt(ce,je=>f(g,je),()=>e(g));var xe=P(ce,2),me=k(xe),ke=k(me);G(ke,()=>"right"),p(me),p(xe),nt(xe,je=>f(b,je),()=>e(b)),p(te),rt("scroll",ce,()=>T("left")),rt("scroll",xe,()=>T("right")),u(W,te)},Fe=W=>{var te=Yu();u(W,te)};X(Oe,W=>{e(s)?W(He):W(Fe,-1)})}var ye=P(Oe,2);{var Ee=W=>{var te=Qu();u(W,te)};X(ye,W=>{a()&&W(Ee)})}p(j),nt(j,W=>f(n,W),()=>e(n)),Q(()=>{ee(N,r.leftLabel),ee(v,r.kind),ee(J,r.rightLabel),ee(ge,r.kind),dn(re,r.search),ee(ze,`${e(d)>=0?e(d)+1:"–"} / ${e(i).length??""} diff${e(i).length!==1?"s":""}`)}),ie("input",re,W=>r.onSearchChange(W.target.value)),ie("keydown",re,W=>{W.key==="Enter"&&(W.preventDefault(),h())})}ie("keydown",j,O),u(t,j),Le()}We(["keydown","click","input"]);var ed=$(" ",1),td=$('

        Please select two different cases to compare.

        '),rd=$('

        Select two cases to compare.

        '),nd=$(' '),ad=$('
        Parameter
        '),od=$('

        All parameters are identical.

        '),sd=$('
        ',1),id=$('

        '),ld=$('

        Loading...

        '),cd=$(" ",1),ud=$(" ",1);function dd(t,r){Ae(r,!0);let a=I(""),n=I(""),o=I(""),i=I(""),s=I(""),l=I(!1),d=I(!1),y=I(""),w=U(()=>r.allCases.map(_=>({value:_,label:_})));const L=[{value:"setup.xml",label:"setup.xml"},{value:"doe_row.csv",label:"doe_row.csv"},{value:"run_solver.log",label:"run_solver.log"},{value:"performance.log",label:"performance.log"}];let m=U(()=>{var _;return((_=Bt())==null?void 0:_.compare_kinds)??L});Ne(()=>{var _;e(m).some(T=>T.value===e(o))||f(o,((_=e(m)[0])==null?void 0:_.value)??"",!0)});let M=I(!1),F=U(()=>e(a)&&e(n)&&e(a)!==e(n));function h(){const _=e(a);f(a,e(n),!0),f(n,_,!0)}async function c(){if(e(F)){f(l,!0),f(y,"");try{const _=await hi({cases:[e(a),e(n)],base:e(a),kind:e(o)});f(s,_,!0),f(d,!0)}catch(_){console.error("Failed to load diff:",_),f(s,""),f(d,!1);const T=_ instanceof Error?_.message:String(_);f(y,T.includes("404")?`File "${e(o)}" not found for one of the selected cases. It may not have been run yet.`:"Failed to load comparison.",!0)}f(l,!1)}}Ne(()=>{e(a)&&e(n)&&e(a)!==e(n)&&e(o)?c():e(a)&&e(n)&&e(a)===e(n)&&(f(s,""),f(d,!0))});let x=!1;Ne(()=>{r.allCases.length>=2&&!x?(x=!0,f(a,r.allCases[0],!0),f(n,r.allCases[1],!0)):r.allCases.length===1&&!x&&(x=!0,f(a,r.allCases[0],!0))});let R=U(xn),g=U(()=>{if(!e(a)||!e(n)||e(a)===e(n)||e(R).length===0)return[];const _=bn(),T=_.find(D=>D.case_id===e(a)),z=_.find(D=>D.case_id===e(n));return!T&&!z?[]:e(R).map(D=>{var O,j;const V=((O=T==null?void 0:T.doe)==null?void 0:O[D])!=null&&String(T.doe[D])!==""?String(T.doe[D]):"—",H=((j=z==null?void 0:z.doe)==null?void 0:j[D])!=null&&String(z.doe[D])!==""?String(z.doe[D]):"—";return{param:D,left:V,right:H,differs:V!==H}})}),b=U(()=>e(M)?e(g):e(g).filter(_=>_.differs)),S=U(()=>e(g).filter(_=>_.differs).length);Ot(t,{eyebrow:"Compare",title:"Side-by-Side Comparison",wide:!0,children:(_,T)=>{var z=ud(),D=B(z);Yt(D,{children:(q,Y)=>{var ae=ed(),N=B(ae);Me(N,{text:"First case",children:(A,E)=>{lt(A,{class:"w-32.5",get options(){return e(w)},get value(){return e(a)},onchange:J=>f(a,J,!0),placeholder:"Select..."})}});var C=P(N,2);{let A=U(()=>!e(a)&&!e(n));$e(C,{variant:"secondary",size:"sm",onclick:h,get disabled(){return e(A)},children:(E,J)=>{Te(E,{get icon(){return Ts}})},$$slots:{default:!0}})}var v=P(C,2);Me(v,{text:"Second case",children:(A,E)=>{lt(A,{class:"w-32.5",get options(){return e(w)},get value(){return e(n)},onchange:J=>f(n,J,!0),placeholder:"Select..."})}}),u(q,ae)}});var V=P(D,2);{var H=q=>{var Y=td();u(q,Y)},O=q=>{var Y=rd();u(q,Y)},j=q=>{var Y=cd(),ae=B(Y);{var N=oe=>{var ge=sd(),le=B(ge),K=k(le),re=k(K);p(K);var ne=P(K,2),ue=k(ne,!0);p(ne),p(le);var de=P(le,2);{var Z=fe=>{var Pe=ad(),ve=k(Pe),ze=k(ve),pe=k(ze),Oe=k(pe),He=k(Oe,!0);p(Oe);var Fe=P(Oe,2),ye=k(Fe,!0);p(Fe),p(pe),p(ze);var Ee=P(ze);Je(Ee,21,()=>e(b),G=>G.param,(G,W)=>{var te=nd(),ce=k(te),Re=k(ce,!0);p(ce);var Ie=P(ce),xe=k(Ie,!0);p(Ie);var me=P(Ie),ke=k(me,!0);p(me),p(te),Q(()=>{Ce(ce,1,dt(e(W).differs?"text-edf-orange-fonce bg-[rgba(214,67,10,0.04)]":"")),ee(Re,e(W).left),ee(xe,e(W).param),Ce(me,1,dt(e(W).differs?"text-edf-vert-fonce bg-[rgba(48,122,16,0.04)]":"")),ee(ke,e(W).right)}),u(G,te)}),p(Ee),p(ve),p(Pe),Q(()=>{ee(He,e(a)),ee(ye,e(n))}),u(fe,Pe)},be=fe=>{var Pe=od();u(fe,Pe)};X(de,fe=>{e(b).length>0?fe(Z):fe(be,-1)})}Q(()=>{ee(re,`${e(S)??""} difference${e(S)!==1?"s":""} out of ${e(g).length??""} - parameters`),ee(ue,e(M)?"Show differences only":"Show all parameters")}),ie("click",ne,()=>f(M,!e(M))),u(oe,ge)};X(ae,oe=>{e(g).length>0&&oe(N)})}var C=P(ae,2);Yt(C,{children:(oe,ge)=>{Me(oe,{text:"File",children:(le,K)=>{lt(le,{class:"w-37.5",get options(){return e(m)},get value(){return e(o)},onchange:re=>f(o,re,!0)})}})}});var v=P(C,2);{var A=oe=>{var ge=id(),le=k(ge,!0);p(ge),Q(()=>ee(le,e(y))),u(oe,ge)},E=oe=>{Zu(oe,{get diffText(){return e(s)},get leftLabel(){return e(a)},get rightLabel(){return e(n)},get kind(){return e(o)},get search(){return e(i)},get loading(){return e(l)},onSearchChange:ge=>f(i,ge,!0)})},J=oe=>{var ge=ld();u(oe,ge)};X(v,oe=>{e(y)?oe(A):e(d)?oe(E,1):e(l)&&oe(J,2)})}u(q,Y)};X(V,q=>{e(a)&&e(n)&&e(a)===e(n)?q(H):!e(a)||!e(n)?q(O,1):q(j,-1)})}u(_,z)},$$slots:{default:!0}}),Le()}We(["click"]);var fd=$(" Refresh",1),vd=$(" ",1),gd=$(''),hd=$(''),pd=$(" Download as CSV",1),md=$('
        ',1),_d=$(" ",1),bd=$(""),xd=$('
        Sort by:
        '),yd=$('

        No errors found. Select cases and adjust filters above.

        '),wd=$(' '),kd=$('NEW'),Cd=$('
        '),Sd=$('
        '),$d=$(' '),Pd=$('
        '),Ed=$('

        '),Rd=$("
        ",1);function Nd(t,r){Ae(r,!0);const a=6,n=["csauto.stderr","run_solver.log","listing"];let o=I(se([])),i=I(se([...n])),s=!1;Ne(()=>{var re;const K=(re=Bt())==null?void 0:re.error_files;K!=null&&K.length&&!s&&f(i,[...K],!0)});let l=I("all"),d=I(""),y=I(a),w=I(!1),L=I(""),m=I(se(er("errors")));Ne(()=>{tr("errors",e(m))});let M=I(se([])),F=I(se(new Set));function h(K){return K.toLowerCase().replace(/[0-9]+/g,"#").replace(/0x[0-9a-f]+/gi,"#").replace(/\s+/g," ").trim()}function c(K){const re=K.line_html.replace(/<[^>]*>/g,"").slice(0,120);return`${K.case_id}|${K.file}|${K.severity}|${h(re)}`}function x(K){const re=new Map;for(const ne of K){const ue=c(ne),de=re.get(ue);de?de.count++:re.set(ue,{...ne,count:1,fingerprint:ue,isNew:!e(F).has(ue)})}return Array.from(re.values())}async function R(){if(!(!e(o).length||!e(i).length)){f(w,!0);try{const K=await li({cases:e(o),files:e(i),context:e(y),sev:e(l)==="all"?"":e(l),q:e(d)});f(L,"");const re=x(K.items);f(M,K.items,!0);const ne=new Set(re.map(ue=>ue.fingerprint));f(F,ne,!0),f(g,re,!0)}catch(K){f(L,"Failed to load errors"),console.error("Failed to load errors:",K)}finally{f(w,!1)}}}let g=I(se([])),b=null;function S(){b&&clearTimeout(b),b=setTimeout(R,250)}function _(K){return K==="error"?"error-sev-error":K==="warn"?"error-sev-warn":"error-sev-info"}let T=U(()=>wn(r.allCases));const z=["csauto.stderr","run_solver.log","listing","csauto.stdout"];let D=U(()=>{var K;return(((K=Bt())==null?void 0:K.error_files)??z).map(re=>({value:re,label:re}))}),V=[{value:"all",label:"All"},{value:"error",label:"Error"},{value:"warn",label:"Warn"},{value:"info",label:"Info"}];function H(K){if(f(o,K,!0),K.length===0){f(g,[],!0),f(M,[],!0);return}R()}function O(K){if(s=!0,f(i,K,!0),K.length===0){f(g,[],!0),f(M,[],!0);return}R()}function j(K){f(l,K,!0),R()}function q(){R()}let Y=!1;Ne(()=>{r.allCases.length>0&&!Y&&(Y=!0,f(o,[...r.allCases],!0),R())}),Ne(()=>{e(m)?hr("errors",R,Hn()):vt("errors")});const ae=pr(()=>{Y&&R()});dr(()=>{vt("errors"),ae()});let N=I(se(new Set));function C(K){const re=new Set(e(N));re.has(K)?re.delete(K):re.add(K),f(N,re,!0)}let v=I("severity"),A=I("desc");const E={info:0,warn:1,error:2};let J=U(()=>{const K=[...e(g)];return K.sort((re,ne)=>{let ue=0;return e(v)==="severity"?ue=(E[re.severity]??9)-(E[ne.severity]??9):e(v)==="count"?ue=re.count-ne.count:ue=re[e(v)].localeCompare(ne[e(v)]),e(A)==="asc"?ue:-ue}),K});const oe={severity:"desc",count:"desc",case_id:"asc",file:"asc"};function ge(K){e(v)===K?f(A,e(A)==="asc"?"desc":"asc",!0):(f(v,K,!0),f(A,oe[K],!0))}function le(){if(!e(g).length)return;const K=["case_id","file","severity","count","is_new","line_text"],re=e(J).map(de=>[de.case_id,de.file,de.severity,de.count,de.isNew?"yes":"no",`"${de.line_html.replace(/<[^>]*>/g,"").replace(/"/g,'""')}"`].join(",")),ne=[K.join(","),...re].join(` -`),ue=_r("errors",e(o),"csv");Pa(ne,ue)}Ot(t,{eyebrow:"Diagnostics",title:"Recent Errors",wide:!0,actions:re=>{var ne=vd(),ue=B(ne);{let be=U(Hn);rr(ue,{name:"errors",get intervalMs(){return e(be)},onRefresh:R,get checked(){return e(m)},set checked(fe){f(m,fe,!0)}})}var de=P(ue,2);{var Z=be=>{$e(be,{variant:"primary",onclick:R,children:(fe,Pe)=>{var ve=fd(),ze=B(ve);Te(ze,{get icon(){return Zt}}),we(),u(fe,ve)},$$slots:{default:!0}})};X(de,be=>{e(m)||be(Z)})}u(re,ne)},children:(re,ne)=>{var ue=Rd(),de=B(ue);Yt(de,{children:(ye,Ee)=>{var G=md(),W=B(G);Me(W,{text:"Cases",children:(ke,je)=>{Gt(ke,{class:"w-[160px]",get options(){return e(T)},get selected(){return e(o)},onchange:H,placeholder:"Select cases..."})}});var te=P(W,2);Me(te,{text:"Files",children:(ke,je)=>{Gt(ke,{class:"w-[160px]",get options(){return e(D)},get selected(){return e(i)},onchange:O,placeholder:"Select files..."})}});var ce=P(te,2);Me(ce,{text:"Severity",children:(ke,je)=>{lt(ke,{class:"w-[90px]",get options(){return V},get value(){return e(l)},onchange:j})}});var Re=P(ce,2);Me(Re,{text:"Search",children:(ke,je)=>{var Xe=gd();Qe(Xe),ie("input",Xe,S),tt(Xe,()=>e(d),gt=>f(d,gt)),u(ke,Xe)}});var Ie=P(Re,2);Me(Ie,{text:"Context",children:(ke,je)=>{var Xe=hd();Qe(Xe),ie("change",Xe,q),tt(Xe,()=>e(y),gt=>f(y,gt)),u(ke,Xe)}});var xe=P(Ie,2),me=k(xe);{let ke=U(()=>e(g).length===0);$e(me,{variant:"secondary",size:"sm",onclick:le,get disabled(){return e(ke)},children:(je,Xe)=>{var gt=pd(),Ht=B(gt);Te(Ht,{get icon(){return gr}}),we(),u(je,gt)},$$slots:{default:!0}})}p(xe),u(ye,G)}});var Z=P(de,2);{var be=ye=>{var Ee=xd(),G=P(k(Ee),2);Je(G,16,()=>[{key:"severity",label:"Severity"},{key:"count",label:"Count"},{key:"case_id",label:"Case"},{key:"file",label:"File"}],W=>W.key,(W,te)=>{var ce=bd(),Re=k(ce,!0),Ie=P(Re);{var xe=me=>{var ke=_d(),je=P(B(ke));{let Xe=U(()=>e(A)==="asc"?Fs:Ls);Te(je,{get icon(){return e(Xe)},size:12})}u(me,ke)};X(Ie,me=>{e(v)===te.key&&me(xe)})}p(ce),Q(()=>{Ce(ce,1,`cursor-pointer bg-transparent border-none text-xs hover:underline ${e(v)===te.key?"text-edf-bleu-fonce font-bold":"text-muted"}`),ee(Re,te.label)}),ie("click",ce,()=>ge(te.key)),u(W,ce)}),p(Ee),u(ye,Ee)};X(Z,ye=>{e(J).length>0&&ye(be)})}var fe=P(Z,2),Pe=k(fe);{var ve=ye=>{var Ee=yd();u(ye,Ee)};X(Pe,ye=>{e(J).length===0&&ye(ve)})}var ze=P(Pe,2);Je(ze,17,()=>e(J),ye=>ye.fingerprint,(ye,Ee)=>{var G=Sd(),W=k(G),te=k(W),ce=k(te);{let et=U(()=>e(N).has(e(Ee).fingerprint)?gn:Ds);Te(ce,{get icon(){return e(et)},size:14})}p(te);var Re=P(te,2),Ie=k(Re);p(Re);var xe=P(Re,2),me=k(xe);{var ke=et=>{var ut=wd(),at=k(ut);p(ut),Q(()=>ee(at,`${e(Ee).count??""}x`)),u(et,ut)};X(me,et=>{e(Ee).count>1&&et(ke)})}var je=P(me,2);{var Xe=et=>{var ut=kd();u(et,ut)};X(je,et=>{e(Ee).isNew&&et(Xe)})}p(xe),p(W);var gt=P(W,2);{var Ht=et=>{var ut=Cd();Fr(ut,()=>e(Ee).line_html,!0),p(ut),u(et,ut)},Or=U(()=>e(N).has(e(Ee).fingerprint));X(gt,et=>{e(Or)&&et(Ht)})}p(G),Q(et=>{Ce(G,1,`error-item ${et??""}`),ee(Ie,`${e(Ee).case_id??""} / ${e(Ee).file??""} : ${e(Ee).severity??""}`)},[()=>_(e(Ee).severity)]),ie("click",W,()=>C(e(Ee).fingerprint)),u(ye,G)}),p(fe);var pe=P(fe,2);{var Oe=ye=>{var Ee=Pd(),G=k(Ee),W=k(G);p(G);var te=P(G,2);{var ce=Ie=>{var xe=$d(),me=k(xe);p(xe),Q(ke=>ee(me,`${ke??""} new`),[()=>e(g).filter(ke=>ke.isNew).length]),u(Ie,xe)},Re=U(()=>e(g).some(Ie=>Ie.isNew));X(te,Ie=>{e(Re)&&Ie(ce)})}p(Ee),Q(()=>ee(W,`${e(g).length??""} unique / ${e(M).length??""} total`)),u(ye,Ee)};X(pe,ye=>{e(J).length>0&&ye(Oe)})}var He=P(pe,2);{var Fe=ye=>{var Ee=Ed(),G=k(Ee,!0);p(Ee),Q(()=>ee(G,e(L))),u(ye,Ee)};X(He,ye=>{e(L)&&ye(Fe)})}Q(()=>Ce(fe,1,`error-list ${e(w)?"opacity-50 pointer-events-none":""}`)),u(re,ue)},$$slots:{actions:!0,default:!0}}),Le()}We(["input","change","click"]);var Md=$('
        ',1);function Hd(t,r){Ae(r,!0);let a=I(se({totalCases:0,shownCases:0,totalRunning:0,shownRunning:0,totalConverged:0,shownConverged:0})),n=I(se([])),o=I(null);const i=E=>e(o)===null||e(o).includes(E);async function s(E){var ge;const J=`/favicon-${E}.svg`;try{const le=await fetch(J);if(!le.ok||!((ge=le.headers.get("content-type"))!=null&&ge.includes("svg")))return}catch{return}const oe=document.querySelector('link[rel="icon"]');oe&&(oe.href=J)}async function l(){try{const E=await ai();Sl(E.rows),$l(E.doe_columns),f(n,E.rows.map(J=>J.case_id),!0),f(a,Ol(Sa(),bn()),!0)}catch(E){console.error("Failed to load status:",E)}}Yn(()=>{l(),oi().then(E=>{el(E),f(o,E.panels,!0),s(E.solver)}).catch(()=>{})});var d=Md(),y=B(d);Ni(y,{});var w=P(y,2);Fi(w,{});var L=P(w,2);al(L,{get totalCases(){return e(a).totalCases},get shownCases(){return e(a).shownCases},get totalRunning(){return e(a).totalRunning},get shownRunning(){return e(a).shownRunning},get totalConverged(){return e(a).totalConverged},get shownConverged(){return e(a).shownConverged}});var m=P(L,2),M=k(m);{var F=E=>{pc(E,{onRefresh:l})},h=U(()=>i("status"));X(M,E=>{e(h)&&E(F)})}var c=P(M,2);{var x=E=>{Ic(E,{get allCases(){return e(n)}})},R=U(()=>i("residuals"));X(c,E=>{e(R)&&E(x)})}var g=P(c,2);{var b=E=>{lu(E,{get allCases(){return e(n)}})},S=U(()=>i("probes"));X(g,E=>{e(S)&&E(b)})}var _=P(g,2);{var T=E=>{bu(E,{get allCases(){return e(n)}})},z=U(()=>i("performance"));X(_,E=>{e(z)&&E(T)})}var D=P(_,2);{var V=E=>{dd(E,{get allCases(){return e(n)}})},H=U(()=>i("compare"));X(D,E=>{e(H)&&E(V)})}var O=P(D,2);{var j=E=>{Vu(E,{get allCases(){return e(n)}})},q=U(()=>i("tail"));X(O,E=>{e(q)&&E(j)})}var Y=P(O,2);{var ae=E=>{Nd(E,{get allCases(){return e(n)}})},N=U(()=>i("errors"));X(Y,E=>{e(N)&&E(ae)})}p(m);var C=P(m,2),v=P(k(C),2),A=k(v);p(v),p(C),Q(()=>Se(A,"src",ol)),u(t,d),Le()}export{Hd as component}; + ${n()||s()?"bg-edf-bleu-moyen border-edf-bleu-moyen text-white":"bg-white border-edf-gris-moyen hover:border-edf-bleu-clair"}`),Je(c,`width: ${o()??""}px; height: ${o()??""}px;`),we(c,"aria-checked",s()?"mixed":n()),we(c,"aria-disabled",i()),we(c,"tabindex",i()?-1:0)}),ie("click",c,x),ie("keydown",c,w),u(v,c)};let n=he(r,"checked",3,!1),s=he(r,"indeterminate",3,!1),i=he(r,"disabled",3,!1),o=he(r,"size",3,16),l=he(r,"label",3,""),d=he(r,"labelFirst",3,!1);function x(v){var y;if(v.stopPropagation(),i())return;const c=s()?!0:!n();(y=r.onchange)==null||y.call(r,c)}function w(v){(v.key===" "||v.key==="Enter")&&(v.preventDefault(),v.stopPropagation(),x(v))}var T=_e(),m=B(T);{var A=v=>{var c=ji(),y=C(c);{var R=b=>{var $=Oi(),_=B($),L=C(_,!0);p(_);var z=E(_);a(z),Q(()=>ee(L,l())),u(b,$)},g=b=>{var $=Hi(),_=B($);a(_);var L=E(_),z=C(L,!0);p(L),Q(()=>ee(z,l())),u(b,$)};Y(y,b=>{d()?b(R):b(g,-1)})}p(c),ie("click",c,x),ie("keydown",c,w),u(v,c)},F=v=>{a(v)};Y(m,v=>{l()?v(A):v(F,-1)})}u(t,T),Le()}We(["click","keydown"]);function pn(t,r){try{const a=localStorage.getItem(t);return a===null?r:JSON.parse(a)}catch{return r}}function Ir(t,r){localStorage.setItem(t,JSON.stringify(r))}const Zr=new Map;function hr(t,r,a){vt(t),Zr.set(t,setInterval(r,a))}function vt(t){const r=Zr.get(t);r!==void 0&&(clearInterval(r),Zr.delete(t))}const Tt={status:1e3,tail:1e3,plot:3e3,probe:3e3,errors:5e3},Vi=["status","plot","probe","tail","errors"],Kr={status:{label:"Status table",min:500},plot:{label:"Residual plots",min:1e3},probe:{label:"Probe plots",min:1e3},tail:{label:"Log tail",min:500},errors:{label:"Recent errors",min:2e3}},or=pn("csauto_refresh_rates",{});let bt=I(oe({status:or.status??Tt.status,tail:or.tail??Tt.tail,plot:or.plot??Tt.plot,probe:or.probe??Tt.probe,errors:or.errors??Tt.errors}));function Ui(){return e(bt)}function Bi(t,r){f(bt,{...e(bt),[t]:r},!0),Ir("csauto_refresh_rates",e(bt))}function qi(){return e(bt).status}function In(){return e(bt).tail}function On(){return e(bt).plot}function Ki(){return e(bt).probe}function Hn(){return e(bt).errors}const Jr=new Set;function pr(t){return Jr.add(t),()=>Jr.delete(t)}function Gi(){Jr.forEach(t=>t())}const en=pn("csauto_autorefresh_enabled",{});function er(t){return en[t]??!0}function tr(t,r){en[t]=r,Ir("csauto_autorefresh_enabled",en)}var Wi=P(" ",1),Xi=P('
        ms
        '),Yi=P('
        Telemetry
        '),Qi=P('
        API token
        Auto-refresh intervals
        ',1);function Zi(t,r){Ae(r,!0);let a=I(oe(_a())),n=I(oe({...Ui()})),s=I(!0),i=I(!1);Ne(()=>{yi().then(x=>{f(s,x.enabled,!0),f(i,!0)}).catch(()=>{f(i,!1)})});function o(x){const{min:w}=Kr[x];let T=e(n)[x];(typeof T!="number"||isNaN(T))&&(T=Tt[x]),f(n,{...e(n),[x]:Math.max(w,Math.round(T))},!0)}function l(x,w){const T=w.target,m=T.value.replace(/[^0-9]/g,""),A=parseInt(m,10);isNaN(A)?m===""&&f(n,{...e(n),[x]:Kr[x].min},!0):f(n,{...e(n),[x]:A},!0),T.value=String(e(n)[x])}function d(){ba(e(a));for(const x of Object.keys(e(n)))o(x),Bi(x,e(n)[x]);e(i)&&wi(e(s)).catch(()=>{}),r.onClose()}vr(t,{title:"Settings",titleId:"settings-dialog-title",get onCancel(){return r.onClose},onConfirm:d,maxWidth:"400px",portal:!0,footer:w=>{var T=Wi(),m=B(T);$e(m,{variant:"secondary",get onclick(){return r.onClose},children:(F,v)=>{ke();var c=Be("Cancel");u(F,c)},$$slots:{default:!0}});var A=E(m,2);$e(A,{variant:"primary",onclick:d,children:(F,v)=>{ke();var c=Be("Save");u(F,c)},$$slots:{default:!0}}),u(w,T)},children:(w,T)=>{var m=Qi(),A=B(m),F=E(C(A),2);Qe(F),p(A);var v=E(A,2),c=C(v),y=E(C(c),2);p(c);var R=E(c,2);Ze(R,20,()=>Vi,$=>$,($,_)=>{const L=j(()=>Kr[_]);var z=Xi(),D=C(z),U=C(D),H=C(U,!0);p(U);var O=E(U,2),V=C(O);p(O),p(D);var q=E(D,2),X=C(q);Qe(X),ke(2),p(q),p(z),Q(()=>{ee(H,e(L).label),ee(V,`min ${e(L).min??""}ms`),dn(X,e(n)[_])}),ie("input",X,ae=>l(_,ae)),rt("blur",X,()=>o(_)),u($,z)}),p(R),p(v);var g=E(v,2);{var b=$=>{var _=Yi(),L=E(C(_),2);It(L,{get checked(){return e(s)},onchange:z=>f(s,z,!0),label:"Send anonymous usage statistics"}),p(_),u($,_)};Y(g,$=>{e(i)&&$(b)})}tt(F,()=>e(a),$=>f(a,$)),ie("click",y,()=>f(n,{...Tt},!0)),u(w,m)},$$slots:{footer:!0,default:!0}}),Le()}We(["click","input"]);const Ji=""+new URL("../assets/code-saturne.BHojVttu.svg",import.meta.url).href,el="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='Calque_1'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20height='400px'%20viewBox='0%200%20397.89%2095.85'%3e%3c!--%20Generator:%20Adobe%20Illustrator%2029.8.1,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%202.1.1%20Build%202)%20--%3e%3cdefs%3e%3cstyle%3e%20.st0%20{%20fill:%20%23ff861d;%20}%20.st1%20{%20fill:%20%23ffb210;%20}%20.st2%20{%20fill:%20%231057c8;%20}%20.st3%20{%20fill:%20%23d6430a;%20}%20%3c/style%3e%3c/defs%3e%3cpath%20class='st2'%20d='M26.25,61.73c-12.02,0-20.11-8.16-20.11-21.37s8.01-21.37,20.33-21.37c8.83,0,15.06,3.78,17.36,11.28l-5.64,2.52c-1.48-5.94-4.97-8.69-11.87-8.69-8.46,0-14.25,6.01-14.25,16.25s5.93,16.25,13.95,16.25,11.73-2.82,12.84-8.61l5.71,1.93c-2,7.79-9.13,11.8-18.33,11.8'/%3e%3cpath%20class='st2'%20d='M89.96,40.36c0,13.21-7.87,21.37-20.48,21.37s-20.48-8.16-20.48-21.37,7.86-21.37,20.48-21.37,20.48,8.16,20.48,21.37M54.94,40.36c0,10.24,5.64,16.25,14.54,16.25s14.54-6.01,14.54-16.25-5.64-16.25-14.54-16.25-14.54,6.01-14.54,16.25'/%3e%3cpath%20class='st2'%20d='M134.3,40.29c0,13.43-8.01,20.85-21.81,20.85h-14.84V19.58h14.84c13.8,0,21.81,7.42,21.81,20.7M128.36,40.29c0-9.94-5.57-15.58-15.44-15.58h-9.35v31.32h9.35c9.87,0,15.44-5.71,15.44-15.73'/%3e%3cpolygon%20class='st2'%20points='174.11%2056.02%20174.11%2061.14%20141.98%2061.14%20141.98%2019.58%20173.14%2019.58%20173.14%2024.7%20147.91%2024.7%20147.91%2037.54%20167.65%2037.54%20167.65%2042.66%20147.91%2042.66%20147.91%2056.02%20174.11%2056.02'/%3e%3cpath%20class='st2'%20d='M213.81,22.13c4.16-1.92,9.75-3.11,14.3-3.11,12.55,0,17.74,5.19,17.74,17.34v5.27c0,4.16.08,7.28.16,10.31.08,3.12.24,5.99.48,9.19h-9.43c-.4-2.16-.4-4.88-.48-6.15h-.16c-2.48,4.56-7.83,7.11-12.71,7.11-7.28,0-14.39-4.4-14.39-12.23,0-6.15,2.96-9.75,7.03-11.75,4.08-2,9.35-2.4,13.83-2.4h5.91c0-6.63-2.96-8.87-9.27-8.87-4.56,0-9.11,1.76-12.71,4.48l-.32-9.19ZM226.36,54.26c3.27,0,5.83-1.44,7.51-3.68,1.76-2.32,2.24-5.27,2.24-8.47h-4.63c-4.8,0-11.91.8-11.91,7.11,0,3.52,2.96,5.04,6.79,5.04'/%3e%3cpath%20class='st2'%20d='M280.98,28.61c-3.28-1.12-5.67-1.76-9.59-1.76-2.88,0-6.31,1.04-6.31,4.56,0,6.56,18.62,2.4,18.62,17.27,0,9.59-8.55,13.43-17.27,13.43-4.08,0-8.23-.72-12.15-1.76l.64-8.79c3.36,1.68,6.87,2.72,10.55,2.72,2.72,0,7.03-1.04,7.03-5.04,0-8.07-18.62-2.56-18.62-17.42,0-8.87,7.75-12.79,16.14-12.79,5.03,0,8.31.8,11.67,1.52l-.72,8.07Z'/%3e%3cpath%20class='st2'%20d='M295.25,27.81h-7.91v-7.83h7.91v-8.23l10.71-3.44v11.67h9.51v7.83h-9.51v19.18c0,3.52.96,6.79,5.04,6.79,1.92,0,3.76-.4,4.88-1.12l.32,8.47c-2.24.64-4.72.96-7.91.96-8.39,0-13.03-5.2-13.03-13.35v-20.94Z'/%3e%3cpath%20class='st2'%20d='M355.22,58.82c-3.92,2.16-8.39,3.28-14.15,3.28-13.59,0-21.5-7.83-21.5-21.34,0-11.91,6.31-21.74,19.1-21.74,15.27,0,19.58,10.47,19.58,24.85h-28.45c.48,6.63,5.11,10.39,11.75,10.39,5.2,0,9.67-1.92,13.67-4.15v8.71ZM348.03,36.52c-.32-5.19-2.72-9.67-8.71-9.67s-9.03,4.16-9.51,9.67h18.22Z'/%3e%3cpath%20class='st2'%20d='M366.57,19.98h9.51v9.35h.16c.48-3.84,4.87-10.31,11.27-10.31,1.04,0,2.16,0,3.27.32v10.79c-.96-.56-2.88-.88-4.79-.88-8.71,0-8.71,10.87-8.71,16.78v15.11h-10.71V19.98Z'/%3e%3cpath%20class='st0'%20d='M229.73,80.9c0,3.67-2.97,6.64-6.64,6.64s-6.64-2.97-6.64-6.64,2.97-6.64,6.64-6.64,6.64,2.97,6.64,6.64'/%3e%3cpath%20class='st0'%20d='M203.17,80.9c0,3.67-2.97,6.64-6.64,6.64s-6.64-2.97-6.64-6.64,2.97-6.64,6.64-6.64,6.64,2.97,6.64,6.64'/%3e%3cpath%20class='st1'%20d='M296.14,80.9c0,3.67-2.97,6.64-6.64,6.64s-6.64-2.97-6.64-6.64,2.97-6.64,6.64-6.64,6.64,2.97,6.64,6.64'/%3e%3cpath%20class='st1'%20d='M378.47,80.9c0,3.67-2.97,6.64-6.64,6.64s-6.64-2.97-6.64-6.64,2.97-6.64,6.64-6.64,6.64,2.97,6.64,6.64'/%3e%3cpath%20class='st1'%20d='M269.57,80.9c0,3.67-2.97,6.64-6.64,6.64s-6.64-2.97-6.64-6.64,2.97-6.64,6.64-6.64,6.64,2.97,6.64,6.64'/%3e%3cpath%20class='st3'%20d='M107.55,80.9c0,3.67-2.97,6.64-6.64,6.64s-6.64-2.97-6.64-6.64,2.97-6.64,6.64-6.64,6.64,2.97,6.64,6.64'/%3e%3crect%20class='st0'%20x='134.12'%20y='75.59'%20width='42.5'%20height='10.62'/%3e%3crect%20class='st1'%20x='309.42'%20y='75.59'%20width='42.5'%20height='10.62'/%3e%3c/svg%3e";let wa=I(null);function tl(t){f(wa,t,!0)}function Ft(){return e(wa)}var rl=P('CODE_SATURNE'),nl=P('CODE_ASTER'),al=P(' '),sl=P('
        ',1);function ol(t,r){Ae(r,!0);let a=j(()=>r.shownCases!==r.totalCases),n=I(!1);var s=sl(),i=B(s),o=C(i),l=C(o);{var d=k=>{var S=rl();Q(()=>we(S,"src",Ji)),u(k,S)},x=j(()=>{var k;return!Ft()||((k=Ft())==null?void 0:k.solver)==="code_saturne"}),w=k=>{var S=nl();Q(()=>we(S,"src",el)),u(k,S)},T=j(()=>{var k;return((k=Ft())==null?void 0:k.solver)==="code_aster"}),m=k=>{var S=al(),Z=C(S,!0);p(S),Q(re=>ee(Z,re),[()=>{var re;return(re=Ft())==null?void 0:re.solver}]),u(k,S)};Y(l,k=>{e(x)?k(d):e(T)?k(w,1):k(m,-1)})}p(o);var A=E(o,2),F=C(A),v=C(F),c=C(v);{var y=k=>{var S=Be();Q(()=>ee(S,`${r.shownCases??""}/`)),u(k,S)};Y(c,k=>{e(a)&&k(y)})}var R=E(c,1,!0);p(v);var g=E(v,2),b=C(g,!0);p(g),p(F);var $=E(F,2),_=C($),L=C(_);{var z=k=>{var S=Be();Q(()=>ee(S,`${r.shownRunning??""}/`)),u(k,S)};Y(L,k=>{e(a)&&k(z)})}var D=E(L,1,!0);p(_),ke(2),p($);var U=E($,2),H=C(U),O=C(H);{var V=k=>{var S=Be();Q(()=>ee(S,`${r.shownConverged??""}/`)),u(k,S)};Y(O,k=>{e(a)&&k(V)})}var q=E(O,1,!0);p(H),ke(2),p(U),p(A);var X=E(A,2),ae=C(X),N=C(ae);Te(N,{get icon(){return Xo},size:18}),p(ae),p(X),p(i);var M=E(i,2);{var h=k=>{Zi(k,{onClose:()=>f(n,!1)})};Y(M,k=>{e(n)&&k(h)})}Q(()=>{ee(R,r.totalCases),ee(b,r.totalCases===1?"case":"cases"),ee(D,r.totalRunning),ee(q,r.totalConverged)}),ie("click",ae,()=>f(n,!0)),u(t,s),Le()}We(["click"]);const il=""+new URL("../assets/simvia-logo.kLDq7Uoj.svg",import.meta.url).href;var ll=P('
        '),cl=P('

        '),ul=P("
        "),dl=P('
        '),fl=P('
        '),vl=P('
        ');function Ht(t,r){let a=he(r,"eyebrow",3,""),n=he(r,"title",3,""),s=he(r,"wide",3,!1);var i=vl(),o=E(C(i),2);{var l=x=>{var w=fl(),T=C(w);{var m=c=>{var y=_e(),R=B(y);ft(R,()=>r.titleSlot),u(c,y)},A=c=>{var y=ul(),R=C(y);{var g=_=>{var L=ll(),z=C(L,!0);p(L),Q(()=>ee(z,a())),u(_,L)};Y(R,_=>{a()&&_(g)})}var b=E(R,2);{var $=_=>{var L=cl(),z=C(L,!0);p(L),Q(()=>ee(z,n())),u(_,L)};Y(b,_=>{n()&&_($)})}p(y),u(c,y)};Y(T,c=>{r.titleSlot?c(m):c(A,-1)})}var F=E(T,2);{var v=c=>{var y=dl(),R=C(y);ft(R,()=>r.actions),p(y),u(c,y)};Y(F,c=>{r.actions&&c(v)})}p(w),u(x,w)};Y(o,x=>{(a()||n()||r.titleSlot||r.actions)&&x(l)})}var d=E(o,2);ft(d,()=>r.children),p(i),Q(()=>{Se(i,1,`${s()?"col-span-12":"col-span-6"} bg-card border border-border rounded-[10px] p-[16px_18px_18px] relative overflow-clip animate-rise`),we(i,"id",r.id)}),u(t,i)}function rr(t,r){Ae(r,!0);let a=he(r,"checked",15,!0);Ne(()=>{a()?hr(r.name,r.onRefresh,r.intervalMs):vt(r.name)}),dr(()=>vt(r.name)),It(t,{get checked(){return a()},onchange:n=>a(n),size:14,label:"Auto-refresh",labelFirst:!0}),Le()}var gl=P(" ",1),hl=P('
      • '),pl=P(''),ml=P(' ',1);function _l(t,r){Ae(r,!0);let a=he(r,"label",3,"More"),n=I(!1),s=I(void 0),i=I(void 0),o=I("");function l(){if(!e(s)||!e(i))return;const c=e(s).getBoundingClientRect(),y=e(i).offsetHeight,R=4,g=window.innerHeight-c.bottom-R,$=gg?c.top-R-y:c.bottom+R,_=Math.min(c.left,window.innerWidth-180);f(o,`position:fixed; top:${$}px; left:${_}px; min-width:170px; z-index:9999;`)}async function d(){f(n,!e(n)),e(n)&&(await Pt(),l())}function x(c){c.disabled||(f(n,!1),c.onClick())}function w(c){e(n)&&e(s)&&!e(s).contains(c.target)&&e(i)&&!e(i).contains(c.target)&&f(n,!1)}var T=ml();rt("mousedown",it,w),rt("keydown",it,c=>{c.key==="Escape"&&f(n,!1)}),rt("scroll",it,()=>{e(n)&&f(n,!1)});var m=B(T),A=C(m);$e(A,{variant:"secondary",size:"sm",onclick:d,children:(c,y)=>{var R=gl(),g=B(R);Te(g,{get icon(){return Ho}});var b=E(g);Q(()=>ee(b,` ${a()??""}`)),u(c,R)},$$slots:{default:!0}}),p(m),nt(m,c=>f(s,c),()=>e(s));var F=E(m,2);{var v=c=>{Zt(c,{children:(y,R)=>{var g=pl();Ze(g,21,()=>r.items,b=>b.label,(b,$)=>{var _=hl(),L=C(_),z=C(L);Te(z,{get icon(){return e($).icon},size:14});var D=E(z);p(L),p(_),Q(()=>{L.disabled=e($).disabled,we(L,"aria-disabled",e($).disabled),Se(L,1,`w-full flex items-center gap-2 text-left py-[7px] px-[10px] bg-transparent border border-transparent rounded-md text-[12.5px] text-ink transition-[background] duration-[120ms] ease-in-out disabled:opacity-40 disabled:pointer-events-none ${e($).disabled?"":"cursor-pointer hover:bg-edf-gris-clair hover:border-border"}`),ee(D,` ${e($).label??""}`)}),ie("mousedown",L,U=>{U.stopPropagation(),x(e($))}),u(b,_)}),p(g),nt(g,b=>f(i,b),()=>e(i)),Q(()=>Je(g,e(o))),u(y,g)}})};Y(F,c=>{e(n)&&c(v)})}u(t,T),Le()}We(["mousedown"]);const Dt=[{key:"note",label:"Note"},{key:"nprocs",label:"MPI Ranks"},{key:"nt",label:"Thread Count"},{key:"last_iter",label:"Last Iter"},{key:"duration",label:"Duration"},{key:"last_mod",label:"Last Modified"},{key:"resu_size_mb",label:"RESU Size (MB)"}];let Wt=I(oe([])),Mr=I(oe([])),pt=I(oe(new Set)),mr=I(""),mn=I(""),Et=I(oe([])),st=I(oe([])),Xt=I(""),ka=I(!0),bl=I(!0),qt=I(oe(pn("csauto_status_views",{}))),_n=I(oe(localStorage.getItem("csauto_status_view_selected")??""));function bn(){return e(Wt)}function xn(){return e(Mr)}function Ut(){return e(pt)}function jn(){return e(mr)}function tn(){return e(mn)}function xl(){return e(Et)}function yl(){return e(Et).filter(t=>e(Mr).includes(t))}function wl(){return e(Et).filter(t=>Dt.some(r=>r.key===t))}function kl(){return e(st)}function Cl(){return e(Xt)}function Sl(){return e(ka)}function Vn(){return e(qt)}function $l(){return e(_n)}function Pl(t){f(Wt,t,!0)}function El(t){const r=e(Mr).length===0&&t.length>0;f(Mr,t,!0),r&&e(Et).length===0&&f(Et,[...t,...Dt.map(a=>a.key)],!0)}function Rl(t){f(mr,t,!0)}function Un(t){f(Et,t,!0)}function Nl(t){f(Xt,t,!0)}function Ml(t){f(ka,t,!0)}function Al(t){f(bl,t,!0)}function yn(t){f(_n,t,!0),localStorage.setItem("csauto_status_view_selected",t)}function rn(t){const r=new Set(e(pt));r.has(t)?r.delete(t):r.add(t),f(pt,r,!0),f(mr,t,!0),f(mn,t,!0)}function Ca(t){f(pt,new Set([t]),!0),f(mr,t,!0),f(mn,t,!0)}function nn(t,r,a){const n=a.indexOf(t),s=a.indexOf(r);if(n<0||s<0)return;const[i,o]=n{const a=Ll(r);return t.every(n=>a.includes(n))})}function Tl(t){if(t==null||t==="")return"";const r=Number(t);return Number.isFinite(r)?r:String(t).toLowerCase()}function Kn(t,r){var n;if(r==="case_id")return t.case_id;if(r==="status")return t.status??"";if(r==="note")return t.note??"";if(r==="nprocs")return t.nprocs??0;if(r==="nt")return t.nt??0;if(r==="last_iter")return t.last_iter??0;if(r==="duration")return t.duration_s??0;if(r==="last_mod")return t.last_mod??"";if(r==="resu_size_mb")return t.resu_size_mb??0;const a=(n=t.doe)==null?void 0:n[r];return a!==void 0?Tl(a):""}function Fl(t,r){return t===""&&r===""?0:t===""?1:r===""?-1:typeof t=="number"&&typeof r=="number"?t-r:String(t).localeCompare(String(r))}function $a(){const t=Sa();return e(st).length===0?t:[...t].sort((r,a)=>{for(const n of e(st)){const s=Kn(r,n.key),i=Kn(a,n.key),o=Fl(s,i);if(o!==0)return n.dir==="asc"?o:-o}return 0})}function Pr(){return $a().map(t=>t.case_id)}function Dl(t,r){const a=e(st).findIndex(n=>n.key===t);if(r)if(a>=0){const n=[...e(st)];n[a]={key:t,dir:n[a].dir==="asc"?"desc":"asc"},f(st,n,!0)}else f(st,[...e(st),{key:t,dir:"asc"}],!0);else a>=0&&e(st).length===1?f(st,[{key:t,dir:e(st)[0].dir==="asc"?"desc":"asc"}],!0):f(st,[{key:t,dir:"asc"}],!0)}function zl(){return{visibleColumns:[...e(Et)],search:e(Xt),sorts:e(st).map(t=>({...t}))}}function Il(t){f(Et,[...t.visibleColumns],!0),f(Xt,t.search,!0),f(st,t.sorts.map(r=>({...r})),!0)}function Ol(t){f(qt,{...e(qt),[t]:zl()},!0),Ir("csauto_status_views",e(qt)),yn(t)}function Hl(t){const r={...e(qt)};delete r[t],f(qt,r,!0),Ir("csauto_status_views",r),e(_n)===t&&yn("")}function kr(){const t=new Set;for(const r of e(Wt))e(pt).has(r.case_id)&&t.add((r.status??"").toUpperCase());return t}function Gn(){for(const t of e(Wt))if(e(pt).has(t.case_id)&&t.resu_size_mb!=null&&t.resu_size_mb>0)return!0;return!1}function jl(t,r){const a=r.length,n=t.length,s=r.filter(d=>d.status==="RUNNING").length,i=t.filter(d=>d.status==="RUNNING").length,o=r.filter(d=>d.convergence==="converged").length,l=t.filter(d=>d.convergence==="converged").length;return{totalCases:a,shownCases:n,totalRunning:s,shownRunning:i,totalConverged:o,shownConverged:l}}var Vl=P('
        DOE columns
        '),Ul=P('
        ');function Bl(t,r){Ae(r,!0);let a=he(r,"initialName",3,""),n=j(xn),s=I(oe(a())),i=I(oe(new Set(r.initialColumns??[...e(n),...Dt.map(V=>V.key)])));function o(V){const q=new Set(e(i));q.has(V)?q.delete(V):q.add(V),f(i,q,!0)}function l(V,q){const X=new Set(e(i));V.forEach(ae=>q?X.add(ae):X.delete(ae)),f(i,X,!0)}function d(){const V=e(s).trim();V&&r.onSave(V,[...e(i)])}function x(V){V.key==="Escape"&&r.onCancel()}function w(V){V.target.dataset.backdrop!==void 0&&r.onCancel()}let T=I(void 0);Ne(()=>{var V,q;(V=e(T))==null||V.focus(),(q=e(T))==null||q.select()});var m=Ul(),A=C(m),F=C(A),v=C(F,!0);p(F);var c=E(F,2),y=E(C(c),2);Qe(y),nt(y,V=>f(T,V),()=>e(T)),p(c);var R=E(c,2);{var g=V=>{var q=Vl(),X=C(q),ae=E(C(X),2),N=C(ae),M=E(N,2);p(ae),p(X);var h=E(X,2);Ze(h,20,()=>e(n),k=>k,(k,S)=>{{let Z=j(()=>e(i).has(S));It(k,{get checked(){return e(Z)},onchange:()=>o(S),size:14,get label(){return S}})}}),p(h),p(q),ie("click",N,()=>l(e(n),!0)),ie("click",M,()=>l(e(n),!1)),u(V,q)};Y(R,V=>{e(n).length>0&&V(g)})}var b=E(R,2),$=C(b),_=E(C($),2),L=C(_),z=E(L,2);p(_),p($);var D=E($,2);Ze(D,21,()=>Dt,V=>V.key,(V,q)=>{{let X=j(()=>e(i).has(e(q).key));It(V,{get checked(){return e(X)},onchange:()=>o(e(q).key),size:14,get label(){return e(q).label}})}}),p(D),p(b);var U=E(b,2),H=C(U);$e(H,{variant:"secondary",get onclick(){return r.onCancel},children:(V,q)=>{ke();var X=Be("Cancel");u(V,X)},$$slots:{default:!0}});var O=E(H,2);{let V=j(()=>!e(s).trim());$e(O,{variant:"primary",onclick:d,get disabled(){return e(V)},children:(q,X)=>{ke();var ae=Be("Save");u(q,ae)},$$slots:{default:!0}})}p(U),p(A),p(m),Q(()=>ee(v,r.mode==="create"?"New view":"Edit view")),ie("keydown",m,x),ie("click",m,w),tt(y,()=>e(s),V=>f(s,V)),ie("click",L,()=>l(Dt.map(V=>V.key),!0)),ie("click",z,()=>l(Dt.map(V=>V.key),!1)),u(t,m),Le()}We(["keydown","click"]);var ql=P('
        ',1);function Kl(t,r){Ae(r,!0);let a=j(()=>Object.keys(Vn())),n=I(oe($l())),s=I(!1),i=I("create"),o=j(()=>[{value:"",label:"All columns"},...e(a).map($=>({value:$,label:$}))]);function l($){if(f(n,$,!0),yn($),$==="")Un([...xn(),...Dt.map(_=>_.key)]);else{const _=Vn();_[$]&&Il(_[$])}}function d(){f(i,"edit"),f(s,!0)}function x(){f(i,"create"),f(s,!0)}function w($,_){Un(_),e(i)==="edit"&&e(n)&&$!==e(n)&&Hl(e(n)),Ol($),f(n,$,!0),f(s,!1)}function T(){f(s,!1)}var m=ql(),A=B(m),F=C(A);lt(F,{class:"w-[140px]",get options(){return e(o)},get value(){return e(n)},onchange:l});var v=E(F,2),c=C(v);Te(c,{get icon(){return qo},size:14}),p(v);var y=E(v,2),R=C(y);Te(R,{get icon(){return Ko},size:14}),p(y),p(A);var g=E(A,2);{var b=$=>{Zt($,{children:(_,L)=>{{let z=j(()=>e(i)==="edit"?e(n):""),D=j(xl);Bl(_,{get mode(){return e(i)},get initialName(){return e(z)},get initialColumns(){return e(D)},onSave:w,onCancel:T})}}})};Y(g,$=>{e(s)&&$(b)})}ie("click",v,d),ie("click",y,x),u(t,m),Le()}We(["click"]);var Gl=P('
        '),Wl=P(""),Xl=P(' '),Yl=P(' '),Ql=P('
        '),Zl=P(" "),Jl=P(''),ec=P(''),tc=P(" Open GUI",1),rc=P(""),nc=P(" "),ac=P(""),sc=P('
        ');function oc(t,r){Ae(r,!0);let a=j(()=>r.rows.length>0&&r.rows.every(N=>e(x).has(N.case_id))),n=j(()=>r.rows.some(N=>e(x).has(N.case_id))),s=j(()=>e(n)&&!e(a)),i=j(yl),o=j(()=>new Set(wl())),l=j(kl),d=j(Sl),x=j(Ut),w=j(()=>{const N=[{key:"_select",label:"",kind:"meta",sticky:"left"},{key:"case_id",label:"Case",kind:"meta",sticky:"left"},{key:"status",label:"Status",kind:"meta",sticky:"left"},...e(o).has("note")?[{key:"note",label:"Note",kind:"meta"}]:[]],M=e(i).map(Z=>({key:Z,label:Z,kind:"doe"})),k=[{key:"nprocs",label:"MPI Ranks",kind:"calc"},{key:"nt",label:"Thread Count",kind:"calc"},{key:"last_iter",label:"Last Iter",kind:"calc"},{key:"duration",label:"Duration",kind:"calc"},{key:"last_mod",label:"Last Modified",kind:"calc"},{key:"resu_size_mb",label:"RESU Size (MB)",kind:"calc"}].filter(Z=>e(o).has(Z.key)),S=[{key:"_actions",label:"",kind:"meta",sticky:"right"}];return[...N,...M,...k,...S]});function T(N){const M=e(l).findIndex(k=>k.key===N);if(M<0)return"";const h=e(l)[M].dir==="asc"?"▲":"▼";return e(l).length>1?`${h}${M+1}`:h}function m(N,M){N!=="_actions"&&Dl(N,M.ctrlKey||M.metaKey)}function A(N,M){M.shiftKey?nn(tn()||N,N,Pr()):M.ctrlKey||M.metaKey?rn(N):Ca(N)}function F(N,M){var k;const h=((k=N.status)==null?void 0:k.toUpperCase())??"";h!=="DONE"&&h!=="FAILED"||(M.preventDefault(),r.onContextMenu(N.case_id,M.clientX,M.clientY,N.convergence??""))}async function v(N){const M=N.note??"",h=await vn("Case note:",M,`Note — ${N.case_id}`,"",!0);if(h!==null)try{await _i(N.case_id,h)}catch(k){await Ye(`Failed to set note: ${k instanceof Error?k.message:k}`,"Error")}}async function c(N){try{await xi(N)}catch(M){await Ye(`Failed to open GUI: ${M instanceof Error?M.message:M}`,"Error")}}function y(N,M){const h=(N==null?void 0:N.toUpperCase())??"";return(h==="DONE"||h==="FAILED")&&M==="converged"?"CONVERGED":(h==="DONE"||h==="FAILED")&&M==="not_converged"?"NOT CONVERGED":h}function R(N,M){const h=(N==null?void 0:N.toUpperCase())??"";return(h==="DONE"||h==="FAILED")&&M==="converged"?"status-converged":(h==="DONE"||h==="FAILED")&&M==="not_converged"?"status-not-converged":h==="RUNNING"?"status-running":h==="DONE"?"status-done":h==="FAILED"?"status-failed":h==="PREPARED"?"status-prepared":"status-unknown"}function g(N){return e(x).has(N.case_id)?"row-selected":""}function b(N,M){var h;return M.key==="case_id"?N.case_id:M.key==="nprocs"?N.nprocs!=null?String(N.nprocs):"":M.key==="nt"?N.nt!=null?String(N.nt):"":M.key==="last_iter"?N.last_iter!=null?String(N.last_iter):"":M.key==="duration"?N.duration??"":M.key==="last_mod"?$(N.last_mod):M.key==="resu_size_mb"?N.resu_size_mb!=null?String(N.resu_size_mb):"":M.kind==="doe"?((h=N.doe)==null?void 0:h[M.key])!=null&&String(N.doe[M.key])!==""?String(N.doe[M.key]):"—":""}function $(N){if(!N)return"";try{const M=new Date(N),h=new Date,k=M.toDateString()===h.toDateString(),S=new Date(h);S.setDate(S.getDate()-1);const Z=M.toDateString()===S.toDateString(),re=M.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return k?`Today ${re}`:Z?`Yesterday ${re}`:M.toLocaleDateString([],{month:"short",day:"numeric"})+` ${re}`}catch{return N}}let _=I(oe({})),L=I(void 0);Ne(()=>{e(d),e(w),r.rows,!(!e(L)||!e(d))&&Pt().then(()=>{if(!e(L))return;const N=Array.from(e(L).querySelectorAll("thead th.sticky-left")),M={};let h=0;N.forEach(k=>{const S=k.dataset.colKey??"";M[S]=h,h+=k.getBoundingClientRect().width}),f(_,M,!0)})});function z(N,M,h){const k=h&&N.key!=="_select"&&N.key!=="_actions"?["status-sortable"]:[];if(!h&&N.key==="case_id"&&k.push("case-id"),N.kind==="doe"&&k.push("status-col-doe"),!h&&N.key==="note"&&k.push("max-w-[140px] whitespace-nowrap overflow-hidden text-ellipsis cursor-pointer hover:underline hover:decoration-dotted hover:underline-offset-2"),e(d)&&N.sticky==="left"&&k.push("sticky-left"),e(d)&&N.sticky==="right"&&k.push("sticky-right"),e(d)&&N.sticky==="left"){const S=e(w)[M+1];(!S||S.sticky!=="left")&&k.push("sticky-divider")}if(e(d)&&N.sticky==="right"){const S=e(w)[M-1];(!S||S.sticky!=="right")&&k.push("sticky-divider")}return k.join(" ")}function D(N,M){return z(N,M,!0)}function U(N,M){return z(N,M,!1)}function H(N){return!e(d)||!N.sticky?"":N.sticky==="right"?"position:sticky;right:0;":N.sticky==="left"&&N.key in e(_)?`position:sticky;left:${e(_)[N.key]}px;`:""}var O=sc(),V=C(O),q=C(V),X=C(q);Ze(X,23,()=>e(w),N=>N.key,(N,M,h)=>{var k=_e(),S=B(k);{var Z=le=>{var K=Gl(),ne=C(K),se=C(ne);It(se,{get checked(){return e(a)},get indeterminate(){return e(s)},get onchange(){return r.onToggleAll},size:14}),p(ne),p(K),Q((ue,de)=>{Se(K,1,`${ue??""} !px-2.5 !py-0 w-9`),we(K,"data-col-key",e(M).key),Je(K,de)},[()=>D(e(M),e(h)),()=>H(e(M))]),u(le,K)},re=le=>{var K=Wl();Q((ne,se)=>{Se(K,1,ne),we(K,"data-col-key",e(M).key),Je(K,se)},[()=>dt(D(e(M),e(h))),()=>H(e(M))]),u(le,K)},ge=le=>{var K=Yl(),ne=C(K),se=E(ne);{var ue=J=>{var be=Xl(),fe=C(be,!0);p(be),Q(Pe=>ee(fe,Pe),[()=>T(e(M).key)]),u(J,be)},de=j(()=>T(e(M).key));Y(se,J=>{e(de)&&J(ue)})}p(K),Q((J,be)=>{Se(K,1,J),we(K,"data-col-key",e(M).key),Je(K,be),ee(ne,`${e(M).label??""} `)},[()=>dt(D(e(M),e(h))),()=>H(e(M))]),ie("click",K,J=>m(e(M).key,J)),ie("keydown",K,J=>{(J.key==="Enter"||J.key===" ")&&(J.preventDefault(),m(e(M).key,J))}),u(le,K)};Y(S,le=>{e(M).key==="_select"?le(Z):e(M).key==="_actions"?le(re,1):le(ge,-1)})}u(N,k)}),p(X),p(q);var ae=E(q);Ze(ae,21,()=>r.rows,N=>N.case_id,(N,M)=>{var h=ac();Ze(h,23,()=>e(w),k=>k.key,(k,S,Z)=>{var re=_e(),ge=B(re);{var le=de=>{var J=Ql(),be=C(J),fe=C(be);{let Pe=j(()=>e(x).has(e(M).case_id));It(fe,{get checked(){return e(Pe)},onchange:()=>r.onToggleRow(e(M).case_id),size:14})}p(be),p(J),Q((Pe,ve)=>{Se(J,1,`${Pe??""} !px-2.5 !py-0 w-9`),we(J,"data-col-key",e(S).key),Je(J,ve)},[()=>U(e(S),e(Z)),()=>H(e(S))]),u(de,J)},K=de=>{var J=Zl(),be=C(J),fe=C(be,!0);p(be),p(J),Q((Pe,ve,ze,pe)=>{Se(J,1,Pe),we(J,"data-col-key",e(S).key),Je(J,ve),Se(be,1,`status-pill ${ze??""}`),ee(fe,pe)},[()=>dt(U(e(S),e(Z))),()=>H(e(S)),()=>R(e(M).status,e(M).convergence),()=>y(e(M).status,e(M).convergence)]),u(de,J)},ne=de=>{var J=ec(),be=C(J);{var fe=ve=>{var ze=Be();Q(()=>ee(ze,e(M).note)),u(ve,ze)},Pe=ve=>{var ze=Jl(),pe=C(ze);Te(pe,{get icon(){return Bo},size:12}),p(ze),u(ve,ze)};Y(be,ve=>{e(M).note?ve(fe):ve(Pe,-1)})}p(J),Q((ve,ze)=>{Se(J,1,ve),we(J,"data-col-key",e(S).key),Je(J,ze),we(J,"title",e(M).note||"Add note")},[()=>dt(U(e(S),e(Z))),()=>H(e(S))]),ie("click",J,ve=>{ve.stopPropagation(),v(e(M))}),ie("keydown",J,ve=>{(ve.key==="Enter"||ve.key===" ")&&(ve.preventDefault(),ve.stopPropagation(),v(e(M)))}),u(de,J)},se=de=>{var J=rc(),be=C(J);$e(be,{variant:"primary",size:"sm",onclick:fe=>{fe.stopPropagation(),c(e(M).case_id)},children:(fe,Pe)=>{var ve=tc(),ze=B(ve);Te(ze,{get icon(){return jo},size:12}),ke(),u(fe,ve)},$$slots:{default:!0}}),p(J),Q((fe,Pe)=>{Se(J,1,fe),we(J,"data-col-key",e(S).key),Je(J,Pe)},[()=>dt(U(e(S),e(Z))),()=>H(e(S))]),u(de,J)},ue=de=>{var J=nc(),be=C(J,!0);p(J),Q((fe,Pe,ve)=>{Se(J,1,fe),we(J,"data-col-key",e(S).key),Je(J,Pe),ee(be,ve)},[()=>dt(U(e(S),e(Z))),()=>H(e(S)),()=>b(e(M),e(S))]),u(de,J)};Y(ge,de=>{e(S).key==="_select"?de(le):e(S).key==="status"?de(K,1):e(S).key==="note"?de(ne,2):e(S).key==="_actions"?de(se,3):de(ue,-1)})}u(k,re)}),p(h),Q(k=>Se(h,1,k),[()=>dt(g(e(M)))]),ie("click",h,k=>A(e(M).case_id,k)),ie("contextmenu",h,k=>F(e(M),k)),u(N,h)}),p(ae),p(V),nt(V,N=>f(L,N),()=>e(L)),p(O),Q(()=>Se(O,1,`table-wrap ${e(d)?"sticky-enabled":""}`)),u(t,O),Le()}We(["click","keydown","contextmenu"]);var ic=P('
        ');function lc(t,r){Ae(r,!0);let a=j(()=>{const m=Math.min(r.x,window.innerWidth-180),A=Math.min(r.y,window.innerHeight-120);return`left: ${m}px; top: ${A}px;`});async function n(m){try{for(const A of r.cases)await bi(A,m)}catch(A){console.error("Failed to set convergence:",A)}r.onClose()}const s=r.cases.length>1?` (${r.cases.length})`:"";var i=ic();rt("keydown",it,m=>{m.key==="Escape"&&r.onClose()});var o=C(i),l=C(o);p(o);var d=E(o,2),x=C(d);p(d);var w=E(d,2),T=C(w);p(w),p(i),Q(()=>{Je(i,e(a)),Se(o,1,`w-full text-left py-[7px] px-[10px] bg-transparent border border-transparent rounded-md text-[12.5px] cursor-pointer transition-[background] duration-[120ms] ease-in-out hover:bg-edf-gris-clair hover:border-border ${r.currentValue==="converged"?"is-active":""}`),ee(l,`Mark Converged${s}`),Se(d,1,`w-full text-left py-[7px] px-[10px] bg-transparent border border-transparent rounded-md text-[12.5px] cursor-pointer transition-[background] duration-[120ms] ease-in-out hover:bg-edf-gris-clair hover:border-border ${r.currentValue==="not_converged"?"is-active":""}`),ee(x,`Mark Not Converged${s}`),Se(w,1,`w-full text-left py-[7px] px-[10px] bg-transparent border border-transparent rounded-md text-[12.5px] cursor-pointer transition-[background] duration-[120ms] ease-in-out hover:bg-edf-gris-clair hover:border-border ${r.currentValue===""?"is-active":""}`),ee(T,`Clear Mark${s}`)}),ie("click",o,()=>n("converged")),ie("click",d,()=>n("not_converged")),ie("click",w,()=>n("")),u(t,i),Le()}We(["click"]);var cc=P(" Refresh",1),uc=P(" ",1),dc=P(" Run",1),fc=P(" Restart",1),vc=P(" Stop",1),gc=P(" Kill",1),hc=P(" Clean",1),pc=P('
        ',1),mc=P('
        ',1);function _c(t,r){Ae(r,!0);function a(){return[...Ut()]}async function n(){const h=a();if(!h.length)return;const k=await Ws(h);if(k)try{await zn({cases:h,n:k.n,nt:k.nt,maxParallel:k.maxParallel}),r.onRefresh()}catch(S){await Ye(`Run failed: ${S instanceof Error?S.message:S}`,"Error")}}async function s(){const h=a();if(!h.length)return;const k=await Xs(h);if(k)try{await zn({cases:h,n:k.n,nt:k.nt,maxParallel:k.maxParallel,restart:!0,restartMode:k.restartMode,restartValue:k.restartValue}),r.onRefresh()}catch(S){await Ye(`Restart failed: ${S instanceof Error?S.message:S}`,"Error")}}async function i(){const h=a();if(!(!h.length||!await Tn(`Kill ${h.length} case${h.length>1?"s":""}?`,"Confirm Kill","Kill","danger")))try{await pi(h),r.onRefresh()}catch(S){await Ye(`Kill failed: ${S instanceof Error?S.message:S}`,"Error")}}async function o(){const h=a();if(!(!h.length||!await Tn(`Stop ${h.length} case${h.length>1?"s":""} gracefully (checkpoint + exit)?`,"Confirm Stop","Stop","danger")))try{await yr({cases:h,action:"stop"}),r.onRefresh(),wr(`Stop requested for ${h.length} case${h.length>1?"s":""} — will checkpoint and exit`)}catch(S){await Ye(`Stop failed: ${S instanceof Error?S.message:S}`,"Error")}}async function l(){const h=a();if(h.length)try{await yr({cases:h,action:"checkpoint"}),r.onRefresh(),wr(`Checkpoint requested for ${h.length} case${h.length>1?"s":""}`)}catch(k){await Ye(`Checkpoint failed: ${k instanceof Error?k.message:k}`,"Error")}}async function d(){const h=a();if(!h.length)return;const k=await vn("Extend by how many additional time steps?","500","Extend Run");if(k===null)return;const S=parseInt(k,10);if(!Number.isFinite(S)||S<=0){await Ye("Enter a positive integer number of time steps.","Error");return}try{await yr({cases:h,action:"extend",value:S}),r.onRefresh(),wr(`Extended ${h.length} case${h.length>1?"s":""} by ${S} time steps`)}catch(Z){await Ye(`Extend failed: ${Z instanceof Error?Z.message:Z}`,"Error")}}async function x(){const h=a();if(h.length)try{await yr({cases:h,action:"flush"}),wr(`Flush requested for ${h.length} case${h.length>1?"s":""}`)}catch(k){await Ye(`Flush failed: ${k instanceof Error?k.message:k}`,"Error")}}async function w(){const h=a();if(!h.length)return;const k=await Ys(h);if(k)try{await mi({cases:h,keepLast:k.keepLast,keepResu:k.keepResu,deleteResu:k.deleteResu,pruneResu:!0}),r.onRefresh(),Gi()}catch(S){await Ye(`Cleanup failed: ${S instanceof Error?S.message:S}`,"Error")}}function T(){const h=Pr();h.length>0&&h.every(S=>Ut().has(S))?qn():Bn(h)}function m(h){rn(h)}let A=I(oe(er("status")));Ne(()=>{tr("status",e(A))}),Ml(!0);let F=j(()=>{const h=kr();return h.size>0&&[...h].some(k=>k==="PREPARED"||k==="DONE"||k==="FAILED")}),v=j(()=>{const h=kr();return h.size>0&&[...h].some(k=>k==="DONE"||k==="FAILED")&&Gn()}),c=j(()=>{const h=kr();return h.size>0&&h.has("RUNNING")}),y=j(()=>{const h=kr();return h.size>0&&h.has("RUNNING")}),R=j(Gn),g=I(oe(Cl())),b=null;function $(){b&&clearTimeout(b),b=setTimeout(()=>{Nl(e(g))},200)}Ne(()=>Al(e(A)));let _=I(!1),L=I(0),z=I(0),D=I(oe([])),U=I("");function H(h,k,S,Z){f(D,Ut().has(h)?[...Ut()]:[h],!0),f(U,Z,!0),f(L,k,!0),f(z,S,!0),f(_,!0)}function O(){f(_,!1)}function V(h){const k=Pr();if(k.length){if(h.key==="Escape"){qn(),O();return}if((h.ctrlKey||h.metaKey)&&h.key==="a"){h.preventDefault(),Bn(k);return}if(h.key==="ArrowDown"||h.key==="ArrowUp"){h.preventDefault();const S=h.key==="ArrowDown"?1:-1,Z=jn(),re=k.indexOf(Z),ge=Math.max(0,Math.min(k.length-1,re+S)),le=k[ge];h.shiftKey?nn(tn()||k[0],le,k):Ca(le),Rl(le);return}if(h.key===" "){h.preventDefault();const S=jn();S&&(h.shiftKey?nn(tn()||S,S,Pr()):rn(S))}}}var q=mc();rt("click",it,O),rt("scroll",it,O);var X=B(q),ae=C(X);Ht(ae,{eyebrow:"Overview",title:"Status",wide:!0,id:"status-card-shell",actions:k=>{var S=uc(),Z=B(S);{let le=j(qi);rr(Z,{name:"status",get intervalMs(){return e(le)},get onRefresh(){return r.onRefresh},get checked(){return e(A)},set checked(K){f(A,K,!0)}})}var re=E(Z,2);{var ge=le=>{$e(le,{variant:"primary",onclick:()=>r.onRefresh(),children:(K,ne)=>{var se=cc(),ue=B(se);Te(ue,{get icon(){return Jt}}),ke(),u(K,se)},$$slots:{default:!0}})};Y(re,le=>{e(A)||le(ge)})}u(k,S)},children:(k,S)=>{var Z=pc(),re=B(Z),ge=C(re),le=C(ge);Qe(le);var K=E(le,2);Kl(K,{}),p(ge);var ne=E(ge,2),se=C(ne),ue=C(se);p(se);var de=E(se,2);{let pe=j(()=>!e(F));$e(de,{variant:"run",size:"sm",onclick:n,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=dc(),ye=B(Fe);Te(ye,{get icon(){return pa}}),ke(),u(Oe,Fe)},$$slots:{default:!0}})}var J=E(de,2);{let pe=j(()=>!e(v));$e(J,{variant:"warning",size:"sm",onclick:s,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=fc(),ye=B(Fe);Te(ye,{get icon(){return Go}}),ke(),u(Oe,Fe)},$$slots:{default:!0}})}var be=E(J,2);{let pe=j(()=>!e(y));$e(be,{variant:"warning",size:"sm",onclick:o,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=vc(),ye=B(Fe);Te(ye,{get icon(){return zo}}),ke(),u(Oe,Fe)},$$slots:{default:!0}})}var fe=E(be,2);{let pe=j(()=>[{label:"Extend",icon:Vo,onClick:d,disabled:!e(y)},{label:"Checkpoint",icon:Wo,onClick:l,disabled:!e(y)},{label:"Flush",icon:Oo,onClick:x,disabled:!e(y)}]);_l(fe,{get items(){return e(pe)}})}var Pe=E(fe,2);{let pe=j(()=>!e(c));$e(Pe,{variant:"danger",size:"sm",onclick:i,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=gc(),ye=B(Fe);Te(ye,{get icon(){return Io}}),ke(),u(Oe,Fe)},$$slots:{default:!0}})}var ve=E(Pe,2);{let pe=j(()=>!e(R));$e(ve,{variant:"secondary",size:"sm",onclick:w,get disabled(){return e(pe)},children:(Oe,He)=>{var Fe=hc(),ye=B(Fe);Te(ye,{get icon(){return Yo}}),ke(),u(Oe,Fe)},$$slots:{default:!0}})}p(ne),p(re);var ze=E(re,2);{let pe=j($a);oc(ze,{get rows(){return e(pe)},onContextMenu:H,onToggleAll:T,onToggleRow:m})}Q(pe=>ee(ue,`${pe??""} selected`),[()=>Ut().size]),ie("input",le,$),tt(le,()=>e(g),pe=>f(g,pe)),u(k,Z)},$$slots:{actions:!0,default:!0}}),p(X);var N=E(X,2);{var M=h=>{lc(h,{get cases(){return e(D)},get x(){return e(L)},get y(){return e(z)},get currentValue(){return e(U)},onClose:O})};Y(N,h=>{e(_)&&h(M)})}ie("keydown",X,V),u(t,q),Le()}We(["keydown","input"]);var bc=P('
        ');function Yt(t,r){var a=bc(),n=C(a);ft(n,()=>r.children),p(a),u(t,a)}function wn(t){return t.map(r=>({value:r,label:r}))}var xc=P(''),yc=P(" ",1);function kn(t,r){Ae(r,!0);let a=he(r,"columnLabel",3,"Columns"),n=he(r,"xMinLabel",3,"Iter min"),s=j(()=>wn(r.allCases)),i=j(()=>r.columns.map(d=>({value:d,label:d}))),o=[{value:"zero",label:"Zero"},{value:"restart",label:"Restart start"},{value:"custom",label:"Custom"}];function l(d){r.onXMinChange(Number(d.target.value)||0)}Yt(t,{children:(d,x)=>{var w=yc(),T=B(w);Me(T,{text:"Cases",children:(b,$)=>{Gt(b,{class:"w-[160px]",get options(){return e(s)},get selected(){return r.selectedCases},get onchange(){return r.onCasesChange},placeholder:"Select cases..."})}});var m=E(T,2);{var A=b=>{var $=_e(),_=B($);ft(_,()=>r.middleSlot),u(b,$)};Y(m,b=>{r.middleSlot&&b(A)})}var F=E(m,2);Me(F,{get text(){return a()},children:(b,$)=>{Gt(b,{class:"w-[160px]",get options(){return e(i)},get selected(){return r.selectedColumns},get onchange(){return r.onColumnsChange},placeholder:"Select..."})}});var v=E(F,2);Me(v,{text:"Start from",children:(b,$)=>{lt(b,{class:"w-[140px]",get options(){return o},get value(){return r.startFrom},onchange:_=>r.onStartFromChange(_)})}});var c=E(v,2);{var y=b=>{Me(b,{get text(){return n()},children:($,_)=>{var L=xc();Qe(L),Q(()=>dn(L,r.xMin)),ie("input",L,l),u($,L)}})};Y(c,b=>{r.startFrom==="custom"&&b(y)})}var R=E(c,2);{var g=b=>{var $=_e(),_=B($);ft(_,()=>r.extraSlot),u(b,$)};Y(R,b=>{r.extraSlot&&b(g)})}u(d,w)}}),Le()}We(["input"]);var wc=P('
        '),kc=P('
        ');function Qt(t,r){let a=he(r,"emptyMessage",3,"");var n=kc(),s=C(n);{var i=l=>{var d=_e(),x=B(d);Fr(x,()=>r.svgHtml),u(l,d)},o=l=>{var d=wc(),x=C(d),w=C(x,!0);p(x),p(d),Q(()=>ee(w,a()||"No data to display.")),u(l,d)};Y(s,l=>{r.svgHtml?l(i):l(o,-1)})}p(n),Q(()=>we(n,"id",r.id)),u(t,n)}async function Cn(t,r="plot.png"){const a=document.getElementById(t),n=a==null?void 0:a.querySelector("svg");if(!n)return;const{width:s,height:i}=Cc(n),o=window.devicePixelRatio||1,l=document.createElement("canvas");l.width=s*o,l.height=i*o;const d=l.getContext("2d");if(!d)return;d.scale(o,o);const x=new XMLSerializer().serializeToString(n),w=new Blob([x],{type:"image/svg+xml;charset=utf-8"}),T=URL.createObjectURL(w),m=new Image;m.width=s,m.height=i,await new Promise((F,v)=>{m.onload=()=>{d.drawImage(m,0,0,s,i),URL.revokeObjectURL(T),F()},m.onerror=v,m.src=T});const A=await new Promise(F=>l.toBlob(F,"image/png"));A&&await Ea(A,Sc(r))}function _r(t,r,a="png"){const n=r.length<=3?r.join("_"):`${r.length}_cases`,s=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19);return $c(`${t}_${n}_${s}.${a}`)}async function Pa(t,r){const a=new Blob([t],{type:"text/csv;charset=utf-8"});await Ea(a,r)}function Cc(t){const r=t.getAttribute("viewBox");if(r){const a=r.split(/[\s,]+/).map(Number);if(a.length===4)return{width:a[2],height:a[3]}}return{width:t.width.baseVal.value||900,height:t.height.baseVal.value||500}}async function Ea(t,r){if("showSaveFilePicker"in window)try{const i=await(await window.showSaveFilePicker({suggestedName:r,types:[{description:t.type.startsWith("image/")?"Image":"File",accept:{[t.type]:[`.${r.split(".").pop()}`]}}]})).createWritable();await i.write(t),await i.close();return}catch(s){if((s==null?void 0:s.name)==="AbortError")return}const a=URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=r,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(a)}function Sc(t){return t.endsWith(".png")?t:`${t}.png`}function $c(t){return t.replace(/[^a-zA-Z0-9._-]/g,"_")}let Ra=I(oe([])),Na=I(oe([])),Ma=I(oe([])),Aa=I("zero"),La=I(0),Ta=I(""),Pc=I(!0);function Ec(){return{selectedCases:e(Ra),columns:e(Na),selectedColumns:e(Ma),startFrom:e(Aa),iterMin:e(La),svgHtml:e(Ta),autoRefresh:e(Pc)}}function Wn(t){f(Ra,t,!0)}function Rc(t){f(Na,t,!0)}function Gr(t){f(Ma,t,!0)}function Nc(t){f(Aa,t,!0)}function Mc(t){f(La,t,!0)}function Cr(t){f(Ta,t,!0)}var Ac=P(" Refresh",1),Lc=P(" ",1),Tc=P(" Download as PNG",1),Fc=P('
        '),Dc=P('
        ',1),zc=P('
        '),Ic=P('

        '),Oc=P(" ",1);function Hc(t,r){Ae(r,!0);let a=j(Ec),n=I("");const s=new Set(["iteration","wall_distance","walldistance"]),i=["velocity","pressure"];async function o(){if(e(a).selectedCases.length)try{const v=await oi(e(a).selectedCases);f(n,"");const c=v.filter(y=>!s.has(y.toLowerCase().replace(/\s+/g,"_")));if(Rc(c),c.length===0){Gr([]),Cr("");return}if(e(a).selectedColumns.length===0){const y=c.filter(R=>i.some(g=>R.toLowerCase().includes(g)));Gr(y.length>0?y:[c[0]])}}catch(v){f(n,"Failed to load residual columns"),console.error("Failed to load residual columns:",v)}}async function l(){if(e(a).selectedCases.length&&!((e(a).columns.length===0||e(a).selectedColumns.length===0)&&(await o(),!e(a).selectedColumns.length)))try{let v=0,c=!0;if(e(a).startFrom==="restart"){const R=await xa(e(a).selectedCases),g=Object.values(R.origins).map(b=>b.iteration).filter(b=>b!==void 0&&Number.isFinite(b));v=g.length>0?Math.min(...g):0}else e(a).startFrom==="custom"&&(v=e(a).iterMin);const y=await ii(e(a).selectedCases,e(a).selectedColumns,{xMin:v,includeHistory:c});f(n,""),y&&Cr(y)}catch(v){f(n,"Failed to load residual plot"),console.error("Failed to load residual plot:",v)}}function d(v){if(Wn(v),v.length===0){Cr("");return}o(),l()}function x(v){if(Gr(v),v.length===0){Cr("");return}l()}function w(v){Nc(v),l()}function T(v){Mc(v),l()}let m=I(oe(er("plot")));Ne(()=>{tr("plot",e(m))}),Ne(()=>{e(m)?hr("residualPlot",l,On()):vt("residualPlot")});let A=!1;Ne(()=>{r.allCases.length>0&&!A&&(A=!0,Wn([...r.allCases]),o().then(()=>l()))});const F=pr(()=>{A&&o().then(()=>l())});dr(()=>{vt("residualPlot"),F()}),Ht(t,{eyebrow:"Diagnostics",title:"Residuals Plot",wide:!0,actions:c=>{var y=Lc(),R=B(y);{let $=j(On);rr(R,{name:"residualPlot",get intervalMs(){return e($)},onRefresh:l,get checked(){return e(m)},set checked(_){f(m,_,!0)}})}var g=E(R,2);{var b=$=>{$e($,{variant:"primary",onclick:l,children:(_,L)=>{var z=Ac(),D=B(z);Te(D,{get icon(){return Jt}}),ke(),u(_,z)},$$slots:{default:!0}})};Y(g,$=>{e(m)||$(b)})}u(c,y)},children:(c,y)=>{var R=Oc(),g=B(R);{var b=z=>{const D=q=>{var X=Fc(),ae=C(X);{let N=j(()=>!e(a).svgHtml);$e(ae,{variant:"secondary",size:"sm",onclick:()=>Cn("plot-holder",_r("residuals",e(a).selectedCases)),get disabled(){return e(N)},children:(M,h)=>{var k=Tc(),S=B(k);Te(S,{get icon(){return gr}}),ke(),u(M,k)},$$slots:{default:!0}})}p(X),u(q,X)};var U=Dc(),H=B(U);kn(H,{prefix:"plot",get allCases(){return r.allCases},get selectedCases(){return e(a).selectedCases},onCasesChange:d,columnLabel:"Variables",get columns(){return e(a).columns},get selectedColumns(){return e(a).selectedColumns},onColumnsChange:x,get startFrom(){return e(a).startFrom},onStartFromChange:w,xMinLabel:"Iter min",get xMin(){return e(a).iterMin},onXMinChange:T,get extraSlot(){return D}});var O=E(H,2),V=C(O);{let q=j(()=>e(a).selectedCases.length===0?"Please select at least one case.":e(a).selectedColumns.length===0?"Please select at least one variable.":"No data to display.");Qt(V,{id:"plot-holder",get svgHtml(){return e(a).svgHtml},get emptyMessage(){return e(q)}})}p(O),u(z,U)},$=z=>{var D=zc(),U=C(D);Qt(U,{id:"plot-holder",svgHtml:"",emptyMessage:"No data available. Please run a simulation first."}),p(D),u(z,D)};Y(g,z=>{e(a).columns.length>0?z(b):z($,-1)})}var _=E(g,2);{var L=z=>{var D=Ic(),U=C(D,!0);p(D),Q(()=>ee(U,e(n))),u(z,D)};Y(_,z=>{e(n)&&z(L)})}u(c,R)},$$slots:{actions:!0,default:!0}}),Le()}function Fa(t){const{scope:r,getState:a,setState:n,setHasData:s,getAxis:i}=t;async function o(){const m=a();if(m.selectedCases.length)try{let A=await Qr(m.selectedCases,r);if(t.filterFiles&&(A=t.filterFiles(A)),n({files:A}),s(A.length>0),A.length===0){n({file:"",columns:[],selectedColumns:[],positionText:"",svgHtml:""});return}(!m.file||!A.includes(m.file))&&(n({file:A[0]}),await l())}catch(A){console.error(`Failed to load ${r} files:`,A)}}async function l(){const m=a();if(!(!m.selectedCases.length||!m.file))try{const A=await fi(m.selectedCases,[m.file]),F=t.filterColumns?t.filterColumns(A):A;t.onColumnsLoaded?t.onColumnsLoaded(A):n({columns:F});const v=a();if(v.columns.length===0){n({selectedColumns:[],positionText:"",svgHtml:""});return}v.selectedColumns.length===0&&n({selectedColumns:[v.columns[0]]})}catch(A){console.error(`Failed to load ${r} columns:`,A)}}async function d(){let m=a();if(m.selectedCases.length){if(await o(),m=a(),!m.file){n({positionText:"",svgHtml:""});return}if((m.columns.length===0||m.selectedColumns.length===0)&&(await l(),m=a(),!m.selectedColumns.length)){n({positionText:"",svgHtml:""});return}try{let A;const F=a();if(F.startFrom==="restart"){const c=await xa(F.selectedCases),y=i().toLowerCase(),R=y==="t"||y==="time"?"time":"iteration",g=Object.values(c.origins).map(b=>b[R]).filter(b=>b!==void 0&&Number.isFinite(b));A=g.length>0?Math.min(...g):void 0}else F.startFrom==="custom"&&(A=F.xMin);const v=await gi({cases:F.selectedCases,probes:[F.file],columns:F.selectedColumns,axis:i(),timeMin:typeof A=="number"?A:void 0,xMin:A,includeHistory:!0});v&&n({svgHtml:v})}catch(A){console.error(`Failed to load ${r} plot:`,A)}}}async function x(m){if(n({selectedCases:m}),m.length===0){n({svgHtml:""});return}await o(),r==="monitoring"&&await d()}function w(m){if(n({selectedColumns:m}),m.length===0){n({svgHtml:""});return}d()}async function T(m){n({file:m}),await l(),await d()}return{loadFiles:o,loadColumns:l,loadPlot:d,handleCasesChange:x,handleColumnsChange:w,handleFileChange:T}}function Da(){return{selectedCases:[],file:"",files:[],columns:[],selectedColumns:[],axis:"time",startFrom:"zero",xMin:0,positionText:"",svgHtml:"",autoRefresh:!0}}let Bt=I("time"),an=I(oe(Da())),sn=I(oe({...Da(),axis:""})),jc=I(!0),Ar=I(!1),Lr=I(!1);function Vc(){return e(Bt)}function Uc(t){f(Bt,t,!0)}function Bc(){return e(Ar)}function on(t){f(Ar,t,!0)}function qc(){return e(Lr)}function ln(t){f(Lr,t,!0)}function Kc(){e(Bt)==="time"&&!e(Ar)&&e(Lr)?f(Bt,"profile"):e(Bt)==="profile"&&!e(Lr)&&e(Ar)&&f(Bt,"time")}function Xn(){return e(an)}function Wr(){return e(sn)}function kt(t){f(an,{...e(an),...t},!0)}function At(t){f(sn,{...e(sn),...t},!0)}function Gc(){return e(jc)}var Wc=P(" Download as PNG",1),Xc=P('
        '),Yc=P("
        "),Qc=P('
        '),Zc=P('
        ',1),Jc=P('
        ');function eu(t,r){Ae(r,!0);let a=he(r,"onRefresh",15),n=j(Xn);const s=new Set(["time","t","iteration","iter"]),i=Fa({scope:"monitoring",getState:Xn,setState:kt,setHasData:on,filterFiles:v=>v.filter(c=>{const y=c.replace(/\.csv$/i,"").toLowerCase();return y!=="coords"&&!y.includes("coordinates")}),filterColumns:v=>v.filter(c=>!s.has(c.toLowerCase())),onColumnsLoaded:v=>{const c=v.filter(y=>!s.has(y.toLowerCase()));kt({columns:c}),o()},getAxis:()=>"time"});async function o(){if(!(!e(n).selectedCases.length||!e(n).file||!e(n).selectedColumns.length))try{const v=[];for(const $ of e(n).selectedColumns){const _=await vi(e(n).selectedCases[0],e(n).file,[$]);_.found&&v.push({col:$,x:_.x,y:_.y,z:_.z})}if(!v.length){kt({positionText:""});return}const c=$=>{let _=0;for(const L of $){if(L===void 0)continue;const z=String(L),D=z.indexOf(".");D>=0&&(_=Math.max(_,z.length-D-1))}return _},y=c(v.map($=>$.x)),R=c(v.map($=>$.y)),g=c(v.map($=>$.z)),b=v.map($=>{const _=[];return $.x!==void 0&&_.push(`x=${$.x.toFixed(y)}`),$.y!==void 0&&_.push(`y=${$.y.toFixed(R)}`),$.z!==void 0&&_.push(`z=${$.z.toFixed(g)}`),`Probe position [${$.col}] : ${_.join(" · ")}`});kt({positionText:b.join(` +`)})}catch{kt({positionText:""})}}function l(v){i.handleColumnsChange(v),v.length>0&&o()}let d=j(()=>e(n).files.map(v=>({value:v,label:v.replace(/\.csv$/i,"").replace(/^probes?_/i,"")}))),x=!1;Ne(()=>{r.allCases.length>0&&!x&&(x=!0,kt({selectedCases:[...r.allCases]}),i.loadFiles().then(()=>i.loadPlot()))}),Ne(()=>{a(i.loadPlot)});let w=j(()=>e(n).selectedCases.length===0?"Please select at least one case.":e(n).selectedColumns.length===0?"Please select at least one probe.":"No data to display.");var T=_e(),m=B(T);{var A=v=>{const c=z=>{Me(z,{text:"Quantity",children:(D,U)=>{lt(D,{class:"w-[160px]",get options(){return e(d)},get value(){return e(n).file},get onchange(){return i.handleFileChange}})}})},y=z=>{var D=Xc(),U=C(D);{let H=j(()=>!e(n).svgHtml);$e(U,{variant:"secondary",size:"sm",onclick:()=>Cn("probe-plot-holder",_r("probe",e(n).selectedCases)),get disabled(){return e(H)},children:(O,V)=>{var q=Wc(),X=B(q);Te(X,{get icon(){return gr}}),ke(),u(O,q)},$$slots:{default:!0}})}p(D),u(z,D)};var R=Zc(),g=B(R);kn(g,{prefix:"probe",get allCases(){return r.allCases},get selectedCases(){return e(n).selectedCases},get onCasesChange(){return i.handleCasesChange},get middleSlot(){return c},columnLabel:"Probes",get columns(){return e(n).columns},get selectedColumns(){return e(n).selectedColumns},onColumnsChange:l,get startFrom(){return e(n).startFrom},onStartFromChange:z=>{kt({startFrom:z}),i.loadPlot()},xMinLabel:"Time min",get xMin(){return e(n).xMin},onXMinChange:z=>{kt({xMin:z}),i.loadPlot()},get extraSlot(){return y}});var b=E(g,2);{var $=z=>{var D=Qc();Ze(D,21,()=>e(n).positionText.split(` +`).sort(),un,(U,H)=>{var O=Yc(),V=C(O,!0);p(O),Q(()=>ee(V,e(H))),u(U,O)}),p(D),u(z,D)};Y(b,z=>{e(n).positionText&&z($)})}var _=E(b,2),L=C(_);Qt(L,{id:"probe-plot-holder",get svgHtml(){return e(n).svgHtml},get emptyMessage(){return e(w)}}),p(_),u(v,R)},F=v=>{var c=Jc(),y=C(c);Qt(y,{id:"probe-plot-holder",svgHtml:"",emptyMessage:"No probe data available. Please run a simulation first."}),p(c),u(v,c)};Y(m,v=>{e(n).files.length>0?v(A):v(F,-1)})}u(t,T),Le()}var tu=P(" ",1),ru=P(" Download as PNG",1),nu=P('
        '),au=P('
        ',1),su=P('
        ');function ou(t,r){Ae(r,!0);let a=he(r,"onRefresh",15),n=j(Wr);const s=["s","x","abscissa","distance","arclength","arc_length","curvilinear","length","r","y","z","coord","position"];function i(c){const y=c.map(R=>R.toLowerCase());for(const R of s){const g=y.indexOf(R);if(g>=0)return c[g]}return c[0]??""}const o=Fa({scope:"profiles",getState:Wr,setState:At,setHasData:ln,onColumnsLoaded:c=>{const y=e(n).axis||i(c),R=c.filter(g=>g!==y).toSorted((g,b)=>g.localeCompare(b));At({columns:R,axis:y,selectedColumns:e(n).selectedColumns.length?e(n).selectedColumns:R.length?[R[0]]:[]})},getAxis:()=>Wr().axis});function l(c){const y=e(n).axis;At({axis:c});const g=[...e(n).columns,...y?[y]:[]].filter(b=>b!==c).toSorted((b,$)=>b.localeCompare($));At({columns:g}),o.loadPlot()}let d=j(()=>e(n).files.map(c=>({value:c,label:c.replace(/\.csv$/i,"").replace(/^profiles\//i,"").replace(/_/g," ")}))),x=j(()=>[...e(n).axis?[e(n).axis]:[],...e(n).columns].toSorted((c,y)=>c.localeCompare(y)).map(c=>({value:c,label:c}))),w=!1;Ne(()=>{r.allCases.length>0&&!w&&(w=!0,At({selectedCases:[...r.allCases]}),o.loadFiles().then(()=>o.loadPlot()))}),Ne(()=>{a(o.loadPlot)});let T=j(()=>e(n).selectedCases.length===0?"Please select at least one case.":e(n).selectedColumns.length===0?"Please select at least one value.":"No data to display.");var m=_e(),A=B(m);{var F=c=>{const y=L=>{var z=tu(),D=B(z);Me(D,{text:"Profile",children:(H,O)=>{lt(H,{class:"w-[160px]",get options(){return e(d)},get value(){return e(n).file},get onchange(){return o.handleFileChange}})}});var U=E(D,2);Me(U,{text:"X axis",children:(H,O)=>{lt(H,{class:"w-[140px]",get options(){return e(x)},get value(){return e(n).axis},onchange:l})}}),u(L,z)},R=L=>{var z=nu(),D=C(z);{let U=j(()=>!e(n).svgHtml);$e(D,{variant:"secondary",size:"sm",onclick:()=>Cn("profile-plot-holder",_r("profile",e(n).selectedCases)),get disabled(){return e(U)},children:(H,O)=>{var V=ru(),q=B(V);Te(q,{get icon(){return gr}}),ke(),u(H,V)},$$slots:{default:!0}})}p(z),u(L,z)};var g=au(),b=B(g);kn(b,{prefix:"profile",get allCases(){return r.allCases},get selectedCases(){return e(n).selectedCases},get onCasesChange(){return o.handleCasesChange},get middleSlot(){return y},columnLabel:"Values",get columns(){return e(n).columns},get selectedColumns(){return e(n).selectedColumns},get onColumnsChange(){return o.handleColumnsChange},get startFrom(){return e(n).startFrom},onStartFromChange:L=>{At({startFrom:L}),o.loadPlot()},xMinLabel:"X min",get xMin(){return e(n).xMin},onXMinChange:L=>{At({xMin:L}),o.loadPlot()},get extraSlot(){return R}});var $=E(b,2),_=C($);Qt(_,{id:"profile-plot-holder",get svgHtml(){return e(n).svgHtml},get emptyMessage(){return e(T)}}),p($),u(c,g)},v=c=>{var y=su(),R=C(y);Qt(R,{id:"profile-plot-holder",svgHtml:"",emptyMessage:"No profile data available. Please run a simulation first."}),p(y),u(c,y)};Y(A,c=>{e(n).files.length>0?c(F):c(v,-1)})}u(t,m),Le()}var iu=P('
        Diagnostics
        '),lu=P(" Refresh",1),cu=P(" ",1);function uu(t,r){Ae(r,!0);let a=j(Vc),n=j(Gc),s=j(Bc),i=j(qc),o=I(oe(er("probe")));Ne(()=>{tr("probe",e(o))});let l=I(void 0);function d(){var F;(F=e(l))==null||F()}async function x(){if(r.allCases.length){try{const v=(await Qr(r.allCases,"monitoring")).filter(c=>{const y=c.replace(/\.csv$/i,"").toLowerCase();return y!=="coords"&&!y.includes("coordinates")});on(v.length>0)}catch{on(!1)}try{const F=await Qr(r.allCases,"profiles");ln(F.length>0)}catch{ln(!1)}}}Ne(()=>{r.allCases.length>0&&x()}),pr(()=>{x(),d()}),Ne(()=>{e(s),e(i),Kc()});function w(F){F==="time"&&!e(s)||F==="profile"&&!e(i)||Uc(F)}var T=_e(),m=B(T);{var A=F=>{{const v=y=>{var R=iu(),g=E(C(R),2),b=C(g),$=E(b,2);p(g),p(R),Q(()=>{Se(b,1,`bg-transparent border-none p-0 m-0 text-lg font-bold tracking-tight transition-colors duration-150 + ${e(s)?e(a)==="time"?"text-edf-bleu-fonce cursor-pointer":"text-edf-gris-moyen cursor-pointer hover:text-muted":"text-edf-gris-moyen cursor-not-allowed opacity-50"}`),b.disabled=!e(s),we(b,"title",e(s)?"":"No probe data available. Run a simulation first."),Se($,1,`bg-transparent border-none p-0 m-0 text-lg font-bold tracking-tight transition-colors duration-150 + ${e(i)?e(a)==="profile"?"text-edf-bleu-fonce cursor-pointer":"text-edf-gris-moyen cursor-pointer hover:text-muted":"text-edf-gris-moyen cursor-not-allowed opacity-50"}`),$.disabled=!e(i),we($,"title",e(i)?"":"No profile data available. Run a simulation first.")}),ie("click",b,()=>w("time")),ie("click",$,()=>w("profile")),u(y,R)};Ht(F,{wide:!0,titleSlot:v,tabs:v,actions:y=>{var R=cu(),g=B(R);{let _=j(()=>e(a)==="time"?"probePlot":"profilePlot"),L=j(Ki);rr(g,{get name(){return e(_)},get intervalMs(){return e(L)},onRefresh:d,get checked(){return e(o)},set checked(z){f(o,z,!0)}})}var b=E(g,2);{var $=_=>{$e(_,{variant:"primary",onclick:d,children:(L,z)=>{var D=lu(),U=B(D);Te(U,{get icon(){return Jt}}),ke(),u(L,D)},$$slots:{default:!0}})};Y(b,_=>{e(o)||_($)})}u(y,R)},children:(y,R)=>{var g=_e(),b=B(g);{var $=L=>{eu(L,{get allCases(){return r.allCases},get onRefresh(){return e(l)},set onRefresh(z){f(l,z,!0)}})},_=L=>{ou(L,{get allCases(){return r.allCases},get onRefresh(){return e(l)},set onRefresh(z){f(l,z,!0)}})};Y(b,L=>{e(a)==="time"?L($):L(_,-1)})}u(y,g)},$$slots:{tabs:!0,actions:!0,default:!0}})}};Y(m,F=>{e(n)&&F(A)})}u(t,T),Le()}We(["click"]);var du=P(" Refresh",1),fu=P(" ",1),vu=P(" Download as CSV",1),gu=P('
        ',1),hu=P(" "),pu=P(' '),mu=P(' '),_u=P('
        Case
        '),bu=P('

        '),xu=P(" ",1);function yu(t,r){Ae(r,!0);let a=I(oe([])),n=I(oe([])),s=I(!1),i=I(!1),o=I(oe(er("perf")));Ne(()=>{tr("perf",e(o))});const l=5e3;let x=I(oe([{key:"elapsed_time",label:"Elapsed (s)",kind:"time"},{key:"io_time",label:"I/O (s)",kind:"time"},{key:"linear_solver_time",label:"Linear Solver (s)",kind:"time"},{key:"gradients_time",label:"Gradients (s)",kind:"time"},{key:"balances_time",label:"Balances (s)",kind:"time"},{key:"mpi_ranks",label:"MPI Ranks",kind:"int"},{key:"threads",label:"Threads",kind:"int"}])),w=j(()=>r.allCases.map(R=>({value:R,label:R}))),T=j(()=>e(n).length>0);async function m(){var R;if(e(a).length){f(i,!0);try{const g=await Dn(e(a));(R=g.columns)!=null&&R.length&&f(x,g.columns,!0),f(n,g.records,!0),e(n).length>0&&f(s,!0)}catch(g){console.error("Failed to load perf:",g)}f(i,!1)}}function A(R){if(f(a,R,!0),R.length===0){f(n,[],!0);return}m()}function F(R,g){if(g==null||g==="")return"-";if(R==="text")return g;const b=Number(g);return Number.isFinite(b)?R==="int"?String(Math.round(b)):b.toFixed(3):g}async function v(){if(!e(n).length)return;const R=["case_id",...e(x).map(_=>_.key)],g=e(n).map(_=>[_.case_id,...e(x).map(L=>_[L.key]??"")].join(",")),b=[R.join(","),...g].join(` +`),$=_r("timing_snapshot",e(a),"csv");await Pa(b,$)}let c=!1;Ne(()=>{r.allCases.length>0&&!c&&(c=!0,f(a,[...r.allCases],!0),Dn(r.allCases).then(R=>{var g;(g=R.columns)!=null&&g.length&&f(x,R.columns,!0),f(s,R.records.length>0),f(n,R.records,!0)}).catch(()=>{}))}),Ne(()=>{e(o)?hr("perf",m,l):vt("perf")});const y=pr(()=>{c&&m()});dr(()=>{vt("perf"),y()}),Ht(t,{eyebrow:"Performance",title:"Timing Snapshot",wide:!0,actions:g=>{var b=fu(),$=B(b);rr($,{name:"perf",intervalMs:l,onRefresh:m,get checked(){return e(o)},set checked(z){f(o,z,!0)}});var _=E($,2);{var L=z=>{$e(z,{variant:"primary",onclick:m,children:(D,U)=>{var H=du(),O=B(H);Te(O,{get icon(){return Jt}}),ke(),u(D,H)},$$slots:{default:!0}})};Y(_,z=>{e(o)||z(L)})}u(g,b)},children:(g,b)=>{var $=xu(),_=B($);{var L=H=>{Yt(H,{children:(O,V)=>{var q=gu(),X=B(q);Me(X,{text:"Cases",children:(M,h)=>{Gt(M,{class:"w-[160px]",get options(){return e(w)},get selected(){return e(a)},onchange:A,placeholder:"Select cases..."})}});var ae=E(X,2),N=C(ae);{let M=j(()=>!e(T));$e(N,{variant:"secondary",size:"sm",onclick:v,get disabled(){return e(M)},children:(h,k)=>{var S=vu(),Z=B(S);Te(Z,{get icon(){return gr}}),ke(),u(h,S)},$$slots:{default:!0}})}p(ae),u(O,q)}})};Y(_,H=>{e(s)&&H(L)})}var z=E(_,2);{var D=H=>{var O=_u(),V=C(O),q=C(V),X=C(q),ae=E(C(X));Ze(ae,17,()=>e(x),M=>M.key,(M,h)=>{var k=hu(),S=C(k,!0);p(k),Q(()=>ee(S,e(h).label)),u(M,k)}),p(X),p(q);var N=E(q);Ze(N,21,()=>e(n),M=>M.case_id,(M,h)=>{var k=mu(),S=C(k),Z=C(S,!0);p(S);var re=E(S);Ze(re,17,()=>e(x),ge=>ge.key,(ge,le)=>{var K=pu(),ne=C(K,!0);p(K),Q(se=>ee(ne,se),[()=>F(e(le).kind,e(h)[e(le).key])]),u(ge,K)}),p(k),Q(()=>ee(Z,e(h).case_id)),u(M,k)}),p(N),p(V),p(O),u(H,O)},U=H=>{var O=bu(),V=C(O);{var q=ae=>{var N=Be("Select cases above to view timing information.");u(ae,N)},X=ae=>{var N=Be("No performance data available. Please run a simulation first.");u(ae,N)};Y(V,ae=>{e(s)?ae(q):ae(X,-1)})}p(O),u(H,O)};Y(z,H=>{e(T)?H(D):H(U,-1)})}u(g,$)},$$slots:{actions:!0,default:!0}}),Le()}const wu={"&":"&","<":"<",">":">",'"':""","'":"'"};function za(t){return t.replace(/[&<>"']/g,r=>wu[r]??r)}var ku=P("
        "),Cu=P('
        ');function Su(t,r){Ae(r,!0);let a=I(void 0);function n(x){const w=za(x);if(!r.searchQuery.trim())return w;try{const T=new RegExp(`(${r.searchQuery})`,"gi");return w.replace(T,'$1')}catch{return w}}function s(x){return x==="error"?"tail-sev-error":x==="warn"?"tail-sev-warn":x==="info"?"tail-sev-info":""}function i(){return e(a)?e(a).scrollHeight-e(a).scrollTop-e(a).clientHeight<=24:!0}let o=I(!0);function l(){f(o,i(),!0)}Ne(()=>{r.autoScroll&&r.lines.length>0&&e(a)&&e(o)&&Pt().then(()=>{e(a)&&(e(a).scrollTop=e(a).scrollHeight)})});var d=Cu();Ze(d,21,()=>r.lines,x=>x.index,(x,w)=>{var T=ku();Fr(T,()=>n(e(w).text),!0),p(T),Q(m=>Se(T,1,`tail-line ${m??""} ${e(w).isNew?"tail-new":""}`),[()=>s(e(w).severity)]),u(x,T)}),p(d),nt(d,x=>f(a,x),()=>e(a)),rt("scroll",d,l),u(t,d),Le()}const $u=/(fatal error|error detected|error reading|error writing|segmentation fault|sigterm|sigsegv|sigkill|abort|killed|terminated|core dumped|traceback|exception|errno)/i,Pu=/(warning|divergence|non-convergence|clipping|negative|nan detected|overflow|underflow)/i;function Eu(t){return $u.test(t)?"error":Pu.test(t)?"warn":"none"}function Ru(t,r){return r==="all"||r===""?!0:r==="info"?t!=="none":t===r}var Nu=P(" Refresh",1),Mu=P(" ",1),Au=P(''),Lu=P(''),Tu=P("    ",1),Fu=Ot(''),Du=Ot(''),zu=Ot(''),Iu=P(" Resume",1),Ou=P(" Pause",1),Hu=P('Case not running'),ju=P(' 
        ',1),Vu=P('

        No log data available. Please run a simulation first.

        '),Uu=P('

        '),Bu=P(" ",1);function qu(t,r){Ae(r,!0);const a=80;let n=I(""),s=I(""),i=I(!1),o=I(oe([])),l=I(a),d=I(oe([])),x=I(oe(new Set)),w=I(!1),T=I(oe(er("tail")));Ne(()=>{tr("tail",e(T))});let m=I(!0),A=I("all"),F=I(""),v=I(""),c=I(void 0),y=j(()=>wn(r.allCases)),R=j(()=>e(o).map(N=>{const M=N.split("/").pop()??N;return{value:N,label:M}})),g=[{value:"all",label:"All"},{value:"error",label:"Error"},{value:"warn",label:"Warn"}],b=j(()=>e(o).length>0),$=j(()=>bn().some(N=>{var M;return N.case_id===e(n)&&((M=N.status)==null?void 0:M.toUpperCase())==="RUNNING"}));const _={"run_solver.log":1,listing:2,"run_status.running":3,"csauto.stdout":4,"csauto.stderr":5,"performance.log":6};function L(N){const M=N.split("/").pop()??N;return _[M]??99}async function z(){if(e(n))try{const h=(await ui(e(n))).filter(k=>{const S=k.split("/").pop()??k;return k.endsWith(".log")||k.endsWith("/summary")||S in _}).sort((k,S)=>L(k)-L(S));if(f(o,h,!0),h.length>0){const k=h[0];!e(s)||!h.includes(e(s))?(f(s,k,!0),f(i,!1)):!e(i)&&L(k)0&&h[h.length-1]===""?h.slice(0,-1):h;if(e(d).length>0){const S=U(e(d),k),Z=new Set;for(let re=S;re{let N=e(d).map((M,h)=>({text:M,index:h,severity:Eu(M),isNew:e(x).has(h)}));if(e(A)!=="all"&&(N=N.filter(M=>Ru(M.severity,e(A)))),e(F).trim())try{const M=new RegExp(e(F),"i");N=N.filter(h=>M.test(h.text))}catch{}return N});function O(N){f(n,N,!0),f(s,""),f(i,!1),f(d,[],!0),z().then(()=>D(!0))}function V(N){f(s,N,!0),f(i,!0),f(d,[],!0),D(!0)}function q(){f(w,!e(w)),e(w)||D(!0)}function X(N){(N.ctrlKey||N.metaKey)&&N.key==="f"&&e(c)&&(N.preventDefault(),e(c).focus())}Ne(()=>{r.allCases.length>0&&!e(n)&&(f(n,r.allCases[0],!0),z().then(()=>D(!0)))}),Ne(()=>{e(T)&&!e(w)&&e(n)?hr("tail",()=>D(!1),In()):vt("tail")});const ae=pr(()=>{e(n)&&z().then(()=>D(!0))});dr(()=>{vt("tail"),ae()}),rt("keydown",it,X),Ht(t,{eyebrow:"Live",title:"Log Tail",wide:!0,actions:M=>{var h=Mu(),k=B(h);{let re=j(In);rr(k,{name:"tail",get intervalMs(){return e(re)},onRefresh:()=>D(!1),get checked(){return e(T)},set checked(ge){f(T,ge,!0)}})}var S=E(k,2);{var Z=re=>{$e(re,{variant:"primary",onclick:()=>D(!0),children:(ge,le)=>{var K=Nu(),ne=B(K);Te(ne,{get icon(){return Jt}}),ke(),u(ge,K)},$$slots:{default:!0}})};Y(S,re=>{e(T)||re(Z)})}u(M,h)},children:(M,h)=>{var k=Bu(),S=B(k);{var Z=se=>{Yt(se,{children:(ue,de)=>{var J=Tu(),be=B(J);Me(be,{text:"Case",children:(pe,Oe)=>{lt(pe,{class:"w-[130px]",get options(){return e(y)},get value(){return e(n)},onchange:O})}});var fe=E(be,2);Me(fe,{text:"File",children:(pe,Oe)=>{lt(pe,{class:"w-[150px]",get options(){return e(R)},get value(){return e(s)},onchange:V})}});var Pe=E(fe,2);Me(Pe,{text:"Lines",children:(pe,Oe)=>{var He=Au();Qe(He),ie("change",He,()=>D(!0)),tt(He,()=>e(l),Fe=>f(l,Fe)),u(pe,He)}});var ve=E(Pe,2);Me(ve,{text:"Filter",children:(pe,Oe)=>{var He=Lu();Qe(He),nt(He,Fe=>f(c,Fe),()=>e(c)),tt(He,()=>e(F),Fe=>f(F,Fe)),u(pe,He)}});var ze=E(ve,2);Me(ze,{text:"Severity",children:(pe,Oe)=>{lt(pe,{class:"w-[90px]",get options(){return g},get value(){return e(A)},onchange:He=>f(A,He,!0)})}}),u(ue,J)}})};Y(S,se=>{e(b)&&se(Z)})}var re=E(S,2);{var ge=se=>{var ue=ju(),de=B(ue);Su(de,{get lines(){return e(H)},get searchQuery(){return e(F)},get autoScroll(){return e(m)}});var J=E(de,2),be=C(J),fe=C(be);{var Pe=G=>{var W=Fu();u(G,W)},ve=G=>{var W=Du();u(G,W)},ze=G=>{var W=zu();u(G,W)};Y(fe,G=>{e(w)?G(Pe):e($)?G(ve,1):G(ze,-1)})}var pe=E(fe);p(be);var Oe=E(be,2);{var He=G=>{$e(G,{variant:"secondary",size:"sm",onclick:q,children:(W,te)=>{var ce=_e(),Re=B(ce);{var Ie=me=>{var Ce=Iu(),je=B(Ce);Te(je,{get icon(){return pa}}),ke(),u(me,Ce)},xe=me=>{var Ce=Ou(),je=B(Ce);Te(je,{get icon(){return Uo}}),ke(),u(me,Ce)};Y(Re,me=>{e(w)?me(Ie):me(xe,-1)})}u(W,ce)},$$slots:{default:!0}})},Fe=G=>{var W=Hu();u(G,W)};Y(Oe,G=>{e($)?G(He):G(Fe,-1)})}var ye=E(Oe,2),Ee=C(ye);It(Ee,{get checked(){return e(m)},onchange:G=>f(m,G,!0),size:14,label:"Auto-scroll",labelFirst:!0}),p(ye),p(J),Q(()=>ee(pe,` ${e(H).length??""} / ${e(d).length??""}`)),u(se,ue)},le=se=>{var ue=Vu();u(se,ue)};Y(re,se=>{e(d).length>0?se(ge):se(le,-1)})}var K=E(re,2);{var ne=se=>{var ue=Uu(),de=C(ue,!0);p(ue),Q(()=>ee(de,e(v))),u(se,ue)};Y(K,se=>{e(v)&&se(ne)})}u(M,k)},$$slots:{actions:!0,default:!0}}),Le()}We(["change"]);function Ku(t,r=3){var A,F;const a=t.split(` +`),n=[];let s=0,i=0,o=!1;for(const v of a){if(v.startsWith("===")||v.startsWith("---")||v.startsWith("+++"))continue;const c=v.match(/^@@ -(\d+),?\d* \+(\d+),?\d* @@/);if(c){s=parseInt(c[1],10)-1,i=parseInt(c[2],10)-1,o=!0;continue}if(o)if(v.startsWith("-"))s++,n.push({type:"del",leftNum:s,rightNum:null,leftContent:v.slice(1),rightContent:""});else if(v.startsWith("+"))i++,n.push({type:"add",leftNum:null,rightNum:i,leftContent:"",rightContent:v.slice(1)});else{s++,i++;const y=v.startsWith(" ")?v.slice(1):v;n.push({type:"equal",leftNum:s,rightNum:i,leftContent:y,rightContent:y})}}const l=[];let d=0;for(;d=0&&v-T>1&&w.push({kind:"separator",skipped:v-T-1});const c=l[v].type!=="equal",y=c&&!m;w.push({kind:"line",row:l[v],hunkStart:y}),m=c,T=v}if(T=0&&w.push({kind:"separator",skipped:l.length-1-T}),w.length>0&&w[0].kind==="line"){const v=((A=w[0].row)==null?void 0:A.leftNum)??0,c=((F=w[0].row)==null?void 0:F.rightNum)??0,y=Math.max(v,c)-1;y>0&&w.unshift({kind:"separator",skipped:y})}return w}var Gu=P('
        '),Wu=P('
        '),Xu=P(' ',1),Yu=P('No matches'),Qu=P('
        '),Zu=P('

        Files are identical.

        '),Ju=P('
        Loading...
        '),ed=P('
        ');function td(t,r){Ae(r,!0);let a=he(r,"loading",3,!1),n=I(void 0),s=j(()=>Ku(r.diffText)),i=j(()=>{const G=[];return e(s).forEach((W,te)=>{W.hunkStart&&G.push(te)}),G}),o=j(()=>e(i).length>0),l=j(()=>{var W;const G=new Array(e(s).length).fill(-1);for(let te=0;te{r.diffText!==x&&(x=r.diffText,f(d,-1))});let w=j(()=>{if(!r.search.trim())return[];try{const G=new RegExp(r.search,"i"),W=[];return e(s).forEach((te,ce)=>{te.kind==="line"&&te.row&&(G.test(te.row.leftContent)||G.test(te.row.rightContent))&&W.push(ce)}),W}catch{return[]}}),T=I(-1),m="";Ne(()=>{r.search!==m&&(m=r.search,f(T,e(w).length>0?0:-1,!0))});async function A(G){var ce;f(T,G,!0),await Pt();const W=e(w)[G],te=(ce=e(g))==null?void 0:ce.querySelector(`[data-item-idx="${W}"]`);if(te&&e(g)&&e(b)){const Re=e(g).getBoundingClientRect(),xe=te.getBoundingClientRect().top-Re.top+e(g).scrollTop-e(g).clientHeight/3;_=!0,e(g).scrollTop=xe,e(b).scrollTop=xe,requestAnimationFrame(()=>{_=!1})}}function F(){e(T)>0&&A(e(T)-1)}function v(){e(T)<0&&e(w).length>0?A(0):e(T)$1`)}catch{return te}}function y(G,W){return G==="equal"?"":G==="del"&&W==="left"?"bg-[rgba(214,67,10,0.08)] text-edf-orange-fonce":G==="del"&&W==="right"?"bg-[rgba(48,122,16,0.08)] text-edf-vert-fonce":G==="add"&&W==="left"?"bg-edf-gris-clair":G==="add"&&W==="right"?"bg-[rgba(48,122,16,0.08)] text-edf-vert-fonce":""}function R(G,W){return G==="del"&&W==="left"?"rgb(251,237,233)":G==="del"&&W==="right"?"rgb(238,247,236)":G==="add"&&W==="left"?"var(--color-edf-gris-clair)":G==="add"&&W==="right"?"rgb(238,247,236)":"white"}let g=I(void 0),b=I(void 0),$=!1,_=!1;function L(G){$||_||!e(g)||!e(b)||($=!0,G==="left"?(e(b).scrollTop=e(g).scrollTop,e(b).scrollLeft=e(g).scrollLeft):(e(g).scrollTop=e(b).scrollTop,e(g).scrollLeft=e(b).scrollLeft),requestAnimationFrame(()=>{$=!1}))}async function z(G){var te;f(d,G,!0),await Pt();const W=(te=e(g))==null?void 0:te.querySelector(`[data-hunk-start="${G}"]`);if(W&&e(g)&&e(b)){_=!0;const ce=e(g).getBoundingClientRect(),Ie=W.getBoundingClientRect().top-ce.top+e(g).scrollTop-e(g).clientHeight/3;e(g).scrollTop=Ie,e(b).scrollTop=Ie,requestAnimationFrame(()=>{_=!1})}}function D(){e(d)>0&&z(e(d)-1)}function U(){e(d)<0?z(0):e(d)=0&&f(d,W,!0)}function O(G){G.target instanceof HTMLInputElement||(G.key==="n"&&!G.shiftKey?(G.preventDefault(),U()):G.key==="N"||G.key==="n"&&G.shiftKey?(G.preventDefault(),D()):G.key==="j"?(G.preventDefault(),v()):(G.key==="J"||G.key==="j"&&G.shiftKey)&&(G.preventDefault(),F()))}var V=ed();{const G=(W,te=ys)=>{var ce=_e(),Re=B(ce);Ze(Re,17,()=>e(s),un,(Ie,xe,me)=>{const Ce=j(()=>e(i).indexOf(me)),je=j(()=>e(l)[me]>=0&&e(l)[me]===e(d)),Xe=j(()=>{var at,Ge;return te()==="left"?(at=e(xe).row)==null?void 0:at.leftNum:(Ge=e(xe).row)==null?void 0:Ge.rightNum}),gt=j(()=>{var at,Ge;return te()==="left"?((at=e(xe).row)==null?void 0:at.leftContent)??"":((Ge=e(xe).row)==null?void 0:Ge.rightContent)??""});var jt=_e(),Or=B(jt);{var et=at=>{var Ge=Gu(),Nt=E(C(Ge),2),Hr=C(Nt);p(Nt),p(Ge),Q(()=>ee(Hr,`... ${e(xe).skipped??""} lines hidden ...`)),u(at,Ge)},ut=at=>{var Ge=Wu(),Nt=C(Ge),Hr=C(Nt,!0);p(Nt);var Sn=E(Nt,2);Fr(Sn,()=>c(e(gt),e(T)>=0&&e(w)[e(T)]===me),!0),p(Sn),p(Ge),Q((yt,Mt,br,Ia,Oa)=>{Se(Ge,1,`flex w-full ${yt??""} ${Mt??""}`),Je(Ge,e(je)?"background-color: rgba(16,87,200,0.12); color: rgb(16,87,200);":""),we(Ge,"role",br),we(Ge,"tabindex",Ia),we(Ge,"data-hunk-start",te()==="left"&&e(Ce)>=0?e(Ce):void 0),we(Ge,"data-item-idx",te()==="left"?me:void 0),Je(Nt,`background: ${Oa??""}; color: ${e(je)?"white":"var(--color-muted)"};`),ee(Hr,e(Xe)??"")},[()=>y(e(xe).row.type,te()),()=>e(xe).row.type!=="equal"||e(w).includes(me)?"cursor-pointer":"",()=>e(xe).row.type!=="equal"||e(w).includes(me)?"button":void 0,()=>e(xe).row.type!=="equal"||e(w).includes(me)?0:void 0,()=>e(je)?"rgb(16,87,200)":R(e(xe).row.type,te())]),ie("click",Ge,()=>{var Mt;((Mt=e(xe).row)==null?void 0:Mt.type)!=="equal"&&H(me);const yt=e(w).indexOf(me);yt>=0&&f(T,yt,!0)}),ie("keydown",Ge,yt=>{var Mt;if(yt.key==="Enter"||yt.key===" "){yt.preventDefault(),((Mt=e(xe).row)==null?void 0:Mt.type)!=="equal"&&H(me);const br=e(w).indexOf(me);br>=0&&f(T,br,!0)}}),u(at,Ge)};Y(Or,at=>{e(xe).kind==="separator"?at(et):e(xe).row&&at(ut,1)})}u(Ie,jt)}),u(W,ce)};var q=C(V),X=C(q),ae=C(X),N=C(ae,!0);p(ae);var M=E(ae,2),h=C(M,!0);p(M),p(X);var k=E(X,2),S=C(k),Z=C(S,!0);p(S);var re=E(S,2),ge=C(re,!0);p(re),p(k),p(q);var le=E(q,2),K=C(le),ne=C(K);Qe(ne);var se=E(ne,2);{var ue=W=>{var te=Xu(),ce=B(te);{let me=j(()=>e(T)<=0);$e(ce,{variant:"secondary",size:"sm",onclick:F,get disabled(){return e(me)},children:(Ce,je)=>{ke();var Xe=Be("Prev");u(Ce,Xe)},$$slots:{default:!0}})}var Re=E(ce,2),Ie=C(Re);p(Re);var xe=E(Re,2);{let me=j(()=>e(T)>=e(w).length-1);$e(xe,{variant:"secondary",size:"sm",onclick:v,get disabled(){return e(me)},children:(Ce,je)=>{ke();var Xe=Be("Next");u(Ce,Xe)},$$slots:{default:!0}})}Q(()=>ee(Ie,`${e(T)>=0?e(T)+1:"–"} / ${e(w).length??""} occurrence${e(w).length!==1?"s":""}`)),u(W,te)},de=j(()=>r.search.trim()&&e(w).length>0),J=W=>{var te=Yu();u(W,te)},be=j(()=>r.search.trim());Y(se,W=>{e(de)?W(ue):e(be)&&W(J,1)})}p(K);var fe=E(K,2),Pe=C(fe);{let W=j(()=>e(i).length===0||e(d)<=0);$e(Pe,{variant:"secondary",size:"sm",onclick:D,get disabled(){return e(W)},children:(te,ce)=>{ke();var Re=Be("Prev");u(te,Re)},$$slots:{default:!0}})}var ve=E(Pe,2),ze=C(ve);p(ve);var pe=E(ve,2);{let W=j(()=>e(i).length===0||e(d)>=e(i).length-1);$e(pe,{variant:"secondary",size:"sm",onclick:U,get disabled(){return e(W)},children:(te,ce)=>{ke();var Re=Be("Next");u(te,Re)},$$slots:{default:!0}})}p(fe),p(le);var Oe=E(le,2);{var He=W=>{var te=Qu(),ce=C(te),Re=C(ce),Ie=C(Re);G(Ie,()=>"left"),p(Re),p(ce),nt(ce,je=>f(g,je),()=>e(g));var xe=E(ce,2),me=C(xe),Ce=C(me);G(Ce,()=>"right"),p(me),p(xe),nt(xe,je=>f(b,je),()=>e(b)),p(te),rt("scroll",ce,()=>L("left")),rt("scroll",xe,()=>L("right")),u(W,te)},Fe=W=>{var te=Zu();u(W,te)};Y(Oe,W=>{e(o)?W(He):W(Fe,-1)})}var ye=E(Oe,2);{var Ee=W=>{var te=Ju();u(W,te)};Y(ye,W=>{a()&&W(Ee)})}p(V),nt(V,W=>f(n,W),()=>e(n)),Q(()=>{ee(N,r.leftLabel),ee(h,r.kind),ee(Z,r.rightLabel),ee(ge,r.kind),dn(ne,r.search),ee(ze,`${e(d)>=0?e(d)+1:"–"} / ${e(i).length??""} diff${e(i).length!==1?"s":""}`)}),ie("input",ne,W=>r.onSearchChange(W.target.value)),ie("keydown",ne,W=>{W.key==="Enter"&&(W.preventDefault(),v())})}ie("keydown",V,O),u(t,V),Le()}We(["keydown","click","input"]);var rd=P(" ",1),nd=P('

        Please select two different cases to compare.

        '),ad=P('

        Select two cases to compare.

        '),sd=P(' '),od=P('
        Parameter
        '),id=P('

        All parameters are identical.

        '),ld=P('
        ',1),cd=P('

        '),ud=P('

        Loading...

        '),dd=P(" ",1),fd=P(" ",1);function vd(t,r){Ae(r,!0);let a=I(""),n=I(""),s=I(""),i=I(""),o=I(""),l=I(!1),d=I(!1),x=I(""),w=j(()=>r.allCases.map(_=>({value:_,label:_})));const T=[{value:"setup.xml",label:"setup.xml"},{value:"doe_row.csv",label:"doe_row.csv"},{value:"run_solver.log",label:"run_solver.log"},{value:"performance.log",label:"performance.log"}];let m=j(()=>{var _;return((_=Ft())==null?void 0:_.compare_kinds)??T});Ne(()=>{var _;e(m).some(L=>L.value===e(s))||f(s,((_=e(m)[0])==null?void 0:_.value)??"",!0)});let A=I(!1),F=j(()=>e(a)&&e(n)&&e(a)!==e(n));function v(){const _=e(a);f(a,e(n),!0),f(n,_,!0)}async function c(){if(e(F)){f(l,!0),f(x,"");try{const _=await hi({cases:[e(a),e(n)],base:e(a),kind:e(s)});f(o,_,!0),f(d,!0)}catch(_){console.error("Failed to load diff:",_),f(o,""),f(d,!1);const L=_ instanceof Error?_.message:String(_);f(x,L.includes("404")?`File "${e(s)}" not found for one of the selected cases. It may not have been run yet.`:"Failed to load comparison.",!0)}f(l,!1)}}Ne(()=>{e(a)&&e(n)&&e(a)!==e(n)&&e(s)?c():e(a)&&e(n)&&e(a)===e(n)&&(f(o,""),f(d,!0))});let y=!1;Ne(()=>{r.allCases.length>=2&&!y?(y=!0,f(a,r.allCases[0],!0),f(n,r.allCases[1],!0)):r.allCases.length===1&&!y&&(y=!0,f(a,r.allCases[0],!0))});let R=j(xn),g=j(()=>{if(!e(a)||!e(n)||e(a)===e(n)||e(R).length===0)return[];const _=bn(),L=_.find(D=>D.case_id===e(a)),z=_.find(D=>D.case_id===e(n));return!L&&!z?[]:e(R).map(D=>{var O,V;const U=((O=L==null?void 0:L.doe)==null?void 0:O[D])!=null&&String(L.doe[D])!==""?String(L.doe[D]):"—",H=((V=z==null?void 0:z.doe)==null?void 0:V[D])!=null&&String(z.doe[D])!==""?String(z.doe[D]):"—";return{param:D,left:U,right:H,differs:U!==H}})}),b=j(()=>e(A)?e(g):e(g).filter(_=>_.differs)),$=j(()=>e(g).filter(_=>_.differs).length);Ht(t,{eyebrow:"Compare",title:"Side-by-Side Comparison",wide:!0,children:(_,L)=>{var z=fd(),D=B(z);Yt(D,{children:(q,X)=>{var ae=rd(),N=B(ae);Me(N,{text:"First case",children:(k,S)=>{lt(k,{class:"w-32.5",get options(){return e(w)},get value(){return e(a)},onchange:Z=>f(a,Z,!0),placeholder:"Select..."})}});var M=E(N,2);{let k=j(()=>!e(a)&&!e(n));$e(M,{variant:"secondary",size:"sm",onclick:v,get disabled(){return e(k)},children:(S,Z)=>{Te(S,{get icon(){return To}})},$$slots:{default:!0}})}var h=E(M,2);Me(h,{text:"Second case",children:(k,S)=>{lt(k,{class:"w-32.5",get options(){return e(w)},get value(){return e(n)},onchange:Z=>f(n,Z,!0),placeholder:"Select..."})}}),u(q,ae)}});var U=E(D,2);{var H=q=>{var X=nd();u(q,X)},O=q=>{var X=ad();u(q,X)},V=q=>{var X=dd(),ae=B(X);{var N=re=>{var ge=ld(),le=B(ge),K=C(le),ne=C(K);p(K);var se=E(K,2),ue=C(se,!0);p(se),p(le);var de=E(le,2);{var J=fe=>{var Pe=od(),ve=C(Pe),ze=C(ve),pe=C(ze),Oe=C(pe),He=C(Oe,!0);p(Oe);var Fe=E(Oe,2),ye=C(Fe,!0);p(Fe),p(pe),p(ze);var Ee=E(ze);Ze(Ee,21,()=>e(b),G=>G.param,(G,W)=>{var te=sd(),ce=C(te),Re=C(ce,!0);p(ce);var Ie=E(ce),xe=C(Ie,!0);p(Ie);var me=E(Ie),Ce=C(me,!0);p(me),p(te),Q(()=>{Se(ce,1,dt(e(W).differs?"text-edf-orange-fonce bg-[rgba(214,67,10,0.04)]":"")),ee(Re,e(W).left),ee(xe,e(W).param),Se(me,1,dt(e(W).differs?"text-edf-vert-fonce bg-[rgba(48,122,16,0.04)]":"")),ee(Ce,e(W).right)}),u(G,te)}),p(Ee),p(ve),p(Pe),Q(()=>{ee(He,e(a)),ee(ye,e(n))}),u(fe,Pe)},be=fe=>{var Pe=id();u(fe,Pe)};Y(de,fe=>{e(b).length>0?fe(J):fe(be,-1)})}Q(()=>{ee(ne,`${e($)??""} difference${e($)!==1?"s":""} out of ${e(g).length??""} + parameters`),ee(ue,e(A)?"Show differences only":"Show all parameters")}),ie("click",se,()=>f(A,!e(A))),u(re,ge)};Y(ae,re=>{e(g).length>0&&re(N)})}var M=E(ae,2);Yt(M,{children:(re,ge)=>{Me(re,{text:"File",children:(le,K)=>{lt(le,{class:"w-37.5",get options(){return e(m)},get value(){return e(s)},onchange:ne=>f(s,ne,!0)})}})}});var h=E(M,2);{var k=re=>{var ge=cd(),le=C(ge,!0);p(ge),Q(()=>ee(le,e(x))),u(re,ge)},S=re=>{td(re,{get diffText(){return e(o)},get leftLabel(){return e(a)},get rightLabel(){return e(n)},get kind(){return e(s)},get search(){return e(i)},get loading(){return e(l)},onSearchChange:ge=>f(i,ge,!0)})},Z=re=>{var ge=ud();u(re,ge)};Y(h,re=>{e(x)?re(k):e(d)?re(S,1):e(l)&&re(Z,2)})}u(q,X)};Y(U,q=>{e(a)&&e(n)&&e(a)===e(n)?q(H):!e(a)||!e(n)?q(O,1):q(V,-1)})}u(_,z)},$$slots:{default:!0}}),Le()}We(["click"]);var gd=P(" Refresh",1),hd=P(" ",1),pd=P(''),md=P(''),_d=P(" Download as CSV",1),bd=P('
        ',1),xd=P(" ",1),yd=P(""),wd=P('
        Sort by:
        '),kd=P('

        No errors found. Select cases and adjust filters above.

        '),Cd=P(' '),Sd=P('NEW'),$d=P('
        '),Pd=P('
        '),Ed=P(' '),Rd=P('
        '),Nd=P('

        '),Md=P("
        ",1);function Ad(t,r){Ae(r,!0);const a=6,n=["csauto.stderr","run_solver.log","listing"];let s=I(oe([])),i=I(oe([...n])),o=!1;Ne(()=>{var ne;const K=(ne=Ft())==null?void 0:ne.error_files;K!=null&&K.length&&!o&&f(i,[...K],!0)});let l=I("all"),d=I(""),x=I(a),w=I(!1),T=I(""),m=I(oe(er("errors")));Ne(()=>{tr("errors",e(m))});let A=I(oe([])),F=I(oe(new Set));function v(K){return K.toLowerCase().replace(/[0-9]+/g,"#").replace(/0x[0-9a-f]+/gi,"#").replace(/\s+/g," ").trim()}function c(K){const ne=K.line_html.replace(/<[^>]*>/g,"").slice(0,120);return`${K.case_id}|${K.file}|${K.severity}|${v(ne)}`}function y(K){const ne=new Map;for(const se of K){const ue=c(se),de=ne.get(ue);de?de.count++:ne.set(ue,{...se,count:1,fingerprint:ue,isNew:!e(F).has(ue)})}return Array.from(ne.values())}async function R(){if(!(!e(s).length||!e(i).length)){f(w,!0);try{const K=await li({cases:e(s),files:e(i),context:e(x),sev:e(l)==="all"?"":e(l),q:e(d)});f(T,"");const ne=y(K.items);f(A,K.items,!0);const se=new Set(ne.map(ue=>ue.fingerprint));f(F,se,!0),f(g,ne,!0)}catch(K){f(T,"Failed to load errors"),console.error("Failed to load errors:",K)}finally{f(w,!1)}}}let g=I(oe([])),b=null;function $(){b&&clearTimeout(b),b=setTimeout(R,250)}function _(K){return K==="error"?"error-sev-error":K==="warn"?"error-sev-warn":"error-sev-info"}let L=j(()=>wn(r.allCases));const z=["csauto.stderr","run_solver.log","listing","csauto.stdout"];let D=j(()=>{var K;return(((K=Ft())==null?void 0:K.error_files)??z).map(ne=>({value:ne,label:ne}))}),U=[{value:"all",label:"All"},{value:"error",label:"Error"},{value:"warn",label:"Warn"},{value:"info",label:"Info"}];function H(K){if(f(s,K,!0),K.length===0){f(g,[],!0),f(A,[],!0);return}R()}function O(K){if(o=!0,f(i,K,!0),K.length===0){f(g,[],!0),f(A,[],!0);return}R()}function V(K){f(l,K,!0),R()}function q(){R()}let X=!1;Ne(()=>{r.allCases.length>0&&!X&&(X=!0,f(s,[...r.allCases],!0),R())}),Ne(()=>{e(m)?hr("errors",R,Hn()):vt("errors")});const ae=pr(()=>{X&&R()});dr(()=>{vt("errors"),ae()});let N=I(oe(new Set));function M(K){const ne=new Set(e(N));ne.has(K)?ne.delete(K):ne.add(K),f(N,ne,!0)}let h=I("severity"),k=I("desc");const S={info:0,warn:1,error:2};let Z=j(()=>{const K=[...e(g)];return K.sort((ne,se)=>{let ue=0;return e(h)==="severity"?ue=(S[ne.severity]??9)-(S[se.severity]??9):e(h)==="count"?ue=ne.count-se.count:ue=ne[e(h)].localeCompare(se[e(h)]),e(k)==="asc"?ue:-ue}),K});const re={severity:"desc",count:"desc",case_id:"asc",file:"asc"};function ge(K){e(h)===K?f(k,e(k)==="asc"?"desc":"asc",!0):(f(h,K,!0),f(k,re[K],!0))}function le(){if(!e(g).length)return;const K=["case_id","file","severity","count","is_new","line_text"],ne=e(Z).map(de=>[de.case_id,de.file,de.severity,de.count,de.isNew?"yes":"no",`"${de.line_html.replace(/<[^>]*>/g,"").replace(/"/g,'""')}"`].join(",")),se=[K.join(","),...ne].join(` +`),ue=_r("errors",e(s),"csv");Pa(se,ue)}Ht(t,{eyebrow:"Diagnostics",title:"Recent Errors",wide:!0,actions:ne=>{var se=hd(),ue=B(se);{let be=j(Hn);rr(ue,{name:"errors",get intervalMs(){return e(be)},onRefresh:R,get checked(){return e(m)},set checked(fe){f(m,fe,!0)}})}var de=E(ue,2);{var J=be=>{$e(be,{variant:"primary",onclick:R,children:(fe,Pe)=>{var ve=gd(),ze=B(ve);Te(ze,{get icon(){return Jt}}),ke(),u(fe,ve)},$$slots:{default:!0}})};Y(de,be=>{e(m)||be(J)})}u(ne,se)},children:(ne,se)=>{var ue=Md(),de=B(ue);Yt(de,{children:(ye,Ee)=>{var G=bd(),W=B(G);Me(W,{text:"Cases",children:(Ce,je)=>{Gt(Ce,{class:"w-[160px]",get options(){return e(L)},get selected(){return e(s)},onchange:H,placeholder:"Select cases..."})}});var te=E(W,2);Me(te,{text:"Files",children:(Ce,je)=>{Gt(Ce,{class:"w-[160px]",get options(){return e(D)},get selected(){return e(i)},onchange:O,placeholder:"Select files..."})}});var ce=E(te,2);Me(ce,{text:"Severity",children:(Ce,je)=>{lt(Ce,{class:"w-[90px]",get options(){return U},get value(){return e(l)},onchange:V})}});var Re=E(ce,2);Me(Re,{text:"Search",children:(Ce,je)=>{var Xe=pd();Qe(Xe),ie("input",Xe,$),tt(Xe,()=>e(d),gt=>f(d,gt)),u(Ce,Xe)}});var Ie=E(Re,2);Me(Ie,{text:"Context",children:(Ce,je)=>{var Xe=md();Qe(Xe),ie("change",Xe,q),tt(Xe,()=>e(x),gt=>f(x,gt)),u(Ce,Xe)}});var xe=E(Ie,2),me=C(xe);{let Ce=j(()=>e(g).length===0);$e(me,{variant:"secondary",size:"sm",onclick:le,get disabled(){return e(Ce)},children:(je,Xe)=>{var gt=_d(),jt=B(gt);Te(jt,{get icon(){return gr}}),ke(),u(je,gt)},$$slots:{default:!0}})}p(xe),u(ye,G)}});var J=E(de,2);{var be=ye=>{var Ee=wd(),G=E(C(Ee),2);Ze(G,16,()=>[{key:"severity",label:"Severity"},{key:"count",label:"Count"},{key:"case_id",label:"Case"},{key:"file",label:"File"}],W=>W.key,(W,te)=>{var ce=yd(),Re=C(ce,!0),Ie=E(Re);{var xe=me=>{var Ce=xd(),je=E(B(Ce));{let Xe=j(()=>e(k)==="asc"?Fo:Lo);Te(je,{get icon(){return e(Xe)},size:12})}u(me,Ce)};Y(Ie,me=>{e(h)===te.key&&me(xe)})}p(ce),Q(()=>{Se(ce,1,`cursor-pointer bg-transparent border-none text-xs hover:underline ${e(h)===te.key?"text-edf-bleu-fonce font-bold":"text-muted"}`),ee(Re,te.label)}),ie("click",ce,()=>ge(te.key)),u(W,ce)}),p(Ee),u(ye,Ee)};Y(J,ye=>{e(Z).length>0&&ye(be)})}var fe=E(J,2),Pe=C(fe);{var ve=ye=>{var Ee=kd();u(ye,Ee)};Y(Pe,ye=>{e(Z).length===0&&ye(ve)})}var ze=E(Pe,2);Ze(ze,17,()=>e(Z),ye=>ye.fingerprint,(ye,Ee)=>{var G=Pd(),W=C(G),te=C(W),ce=C(te);{let et=j(()=>e(N).has(e(Ee).fingerprint)?gn:Do);Te(ce,{get icon(){return e(et)},size:14})}p(te);var Re=E(te,2),Ie=C(Re);p(Re);var xe=E(Re,2),me=C(xe);{var Ce=et=>{var ut=Cd(),at=C(ut);p(ut),Q(()=>ee(at,`${e(Ee).count??""}x`)),u(et,ut)};Y(me,et=>{e(Ee).count>1&&et(Ce)})}var je=E(me,2);{var Xe=et=>{var ut=Sd();u(et,ut)};Y(je,et=>{e(Ee).isNew&&et(Xe)})}p(xe),p(W);var gt=E(W,2);{var jt=et=>{var ut=$d();Fr(ut,()=>e(Ee).line_html,!0),p(ut),u(et,ut)},Or=j(()=>e(N).has(e(Ee).fingerprint));Y(gt,et=>{e(Or)&&et(jt)})}p(G),Q(et=>{Se(G,1,`error-item ${et??""}`),ee(Ie,`${e(Ee).case_id??""} / ${e(Ee).file??""} : ${e(Ee).severity??""}`)},[()=>_(e(Ee).severity)]),ie("click",W,()=>M(e(Ee).fingerprint)),u(ye,G)}),p(fe);var pe=E(fe,2);{var Oe=ye=>{var Ee=Rd(),G=C(Ee),W=C(G);p(G);var te=E(G,2);{var ce=Ie=>{var xe=Ed(),me=C(xe);p(xe),Q(Ce=>ee(me,`${Ce??""} new`),[()=>e(g).filter(Ce=>Ce.isNew).length]),u(Ie,xe)},Re=j(()=>e(g).some(Ie=>Ie.isNew));Y(te,Ie=>{e(Re)&&Ie(ce)})}p(Ee),Q(()=>ee(W,`${e(g).length??""} unique / ${e(A).length??""} total`)),u(ye,Ee)};Y(pe,ye=>{e(Z).length>0&&ye(Oe)})}var He=E(pe,2);{var Fe=ye=>{var Ee=Nd(),G=C(Ee,!0);p(Ee),Q(()=>ee(G,e(T))),u(ye,Ee)};Y(He,ye=>{e(T)&&ye(Fe)})}Q(()=>Se(fe,1,`error-list ${e(w)?"opacity-50 pointer-events-none":""}`)),u(ne,ue)},$$slots:{actions:!0,default:!0}}),Le()}We(["input","change","click"]);var Ld=P('
        Developed by Simvia
        ',1);function Vd(t,r){Ae(r,!0);let a=I(oe({totalCases:0,shownCases:0,totalRunning:0,shownRunning:0,totalConverged:0,shownConverged:0})),n=I(oe([])),s=I(null);const i=S=>e(s)===null||e(s).includes(S);async function o(S){var ge;const Z=`/favicon-${S}.svg`;try{const le=await fetch(Z);if(!le.ok||!((ge=le.headers.get("content-type"))!=null&&ge.includes("svg")))return}catch{return}const re=document.querySelector('link[rel="icon"]');re&&(re.href=Z)}async function l(){try{const S=await ai();Pl(S.rows),El(S.doe_columns),f(n,S.rows.map(Z=>Z.case_id),!0),f(a,jl(Sa(),bn()),!0)}catch(S){console.error("Failed to load status:",S)}}Yn(()=>{l(),si().then(S=>{tl(S),f(s,S.panels,!0),o(S.solver)}).catch(()=>{})});var d=Ld(),x=B(d);Ni(x,{});var w=E(x,2);Fi(w,{});var T=E(w,2);ol(T,{get totalCases(){return e(a).totalCases},get shownCases(){return e(a).shownCases},get totalRunning(){return e(a).totalRunning},get shownRunning(){return e(a).shownRunning},get totalConverged(){return e(a).totalConverged},get shownConverged(){return e(a).shownConverged}});var m=E(T,2),A=C(m);{var F=S=>{_c(S,{onRefresh:l})},v=j(()=>i("status"));Y(A,S=>{e(v)&&S(F)})}var c=E(A,2);{var y=S=>{Hc(S,{get allCases(){return e(n)}})},R=j(()=>i("residuals"));Y(c,S=>{e(R)&&S(y)})}var g=E(c,2);{var b=S=>{uu(S,{get allCases(){return e(n)}})},$=j(()=>i("probes"));Y(g,S=>{e($)&&S(b)})}var _=E(g,2);{var L=S=>{yu(S,{get allCases(){return e(n)}})},z=j(()=>i("performance"));Y(_,S=>{e(z)&&S(L)})}var D=E(_,2);{var U=S=>{vd(S,{get allCases(){return e(n)}})},H=j(()=>i("compare"));Y(D,S=>{e(H)&&S(U)})}var O=E(D,2);{var V=S=>{qu(S,{get allCases(){return e(n)}})},q=j(()=>i("tail"));Y(O,S=>{e(q)&&S(V)})}var X=E(O,2);{var ae=S=>{Ad(S,{get allCases(){return e(n)}})},N=j(()=>i("errors"));Y(X,S=>{e(N)&&S(ae)})}p(m);var M=E(m,2),h=E(C(M),2),k=C(h);p(h),p(M),Q(()=>we(k,"src",il)),u(t,d),Le()}export{Vd as component}; diff --git a/frontend/dist/_app/version.json b/frontend/dist/_app/version.json index ed8ae38..223df18 100644 --- a/frontend/dist/_app/version.json +++ b/frontend/dist/_app/version.json @@ -1 +1 @@ -{"version":"1784298934448"} \ No newline at end of file +{"version":"1785259782195"} \ No newline at end of file diff --git a/frontend/dist/code-aster.svg b/frontend/dist/code-aster.svg new file mode 100644 index 0000000..0bf402f --- /dev/null +++ b/frontend/dist/code-aster.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/dist/favicon-code_aster.svg b/frontend/dist/favicon-code_aster.svg new file mode 100644 index 0000000..baf0ec0 --- /dev/null +++ b/frontend/dist/favicon-code_aster.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 81024dc..7db76cd 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -5,11 +5,11 @@ csauto by Simvia - - + + - + @@ -20,15 +20,15 @@