From 05f0662c93321531d90563cc277c4f127d958719 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 20:34:25 +0530 Subject: [PATCH 01/37] Create SECURITY.md --- SECURITY.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..034e8480 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,21 @@ +# Security Policy + +## Supported Versions + +Use this section to tell people about which versions of your project are +currently being supported with security updates. + +| Version | Supported | +| ------- | ------------------ | +| 5.1.x | :white_check_mark: | +| 5.0.x | :x: | +| 4.0.x | :white_check_mark: | +| < 4.0 | :x: | + +## Reporting a Vulnerability + +Use this section to tell people how to report a vulnerability. + +Tell them where to go, how often they can expect to get an update on a +reported vulnerability, what to expect if the vulnerability is accepted or +declined, etc. From 2aab17ed2ae4e958a3f49f9369b890d1b2134b41 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 20:35:18 +0530 Subject: [PATCH 02/37] Create dependabot.yml --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..9d866e39 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "pip" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" From c02e437104b94806fa3c0627dfd0d5934004f7bf Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 20:40:25 +0530 Subject: [PATCH 03/37] Potential fix for code scanning alert no. 8: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index e57357de..2094c598 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -23,6 +23,12 @@ if not pm.is_installed("sqlalchemy"): from sqlalchemy import create_engine, text # type: ignore +def sanitize_sensitive_info(data: dict) -> dict: + sanitized_data = data.copy() + if 'password' in sanitized_data: + sanitized_data['password'] = '***' + return sanitized_data + class TiDB: def __init__(self, config, **kwargs): self.host = config.get("host", None) @@ -69,7 +75,8 @@ class TiDB: try: result = conn.execute(text(sql), params) except Exception as e: - logger.error(f"Tidb database,\nsql:{sql},\nparams:{params},\nerror:{e}") + sanitized_params = sanitize_sensitive_info(params) + logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{e}") raise if multirows: rows = result.all() @@ -94,7 +101,8 @@ class TiDB: else: conn.execute(text(sql), parameters=data) except Exception as e: - logger.error(f"Tidb database,\nsql:{sql},\ndata:{data},\nerror:{e}") + sanitized_data = sanitize_sensitive_info(data) if data else None + logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{e}") raise From bde7915969a112444b7fcdad9f589fd071583bd9 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 20:40:55 +0530 Subject: [PATCH 04/37] Potential fix for code scanning alert no. 8: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index e57357de..2094c598 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -23,6 +23,12 @@ if not pm.is_installed("sqlalchemy"): from sqlalchemy import create_engine, text # type: ignore +def sanitize_sensitive_info(data: dict) -> dict: + sanitized_data = data.copy() + if 'password' in sanitized_data: + sanitized_data['password'] = '***' + return sanitized_data + class TiDB: def __init__(self, config, **kwargs): self.host = config.get("host", None) @@ -69,7 +75,8 @@ class TiDB: try: result = conn.execute(text(sql), params) except Exception as e: - logger.error(f"Tidb database,\nsql:{sql},\nparams:{params},\nerror:{e}") + sanitized_params = sanitize_sensitive_info(params) + logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{e}") raise if multirows: rows = result.all() @@ -94,7 +101,8 @@ class TiDB: else: conn.execute(text(sql), parameters=data) except Exception as e: - logger.error(f"Tidb database,\nsql:{sql},\ndata:{data},\nerror:{e}") + sanitized_data = sanitize_sensitive_info(data) if data else None + logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{e}") raise From f1063e0e121f9ae9d9d342de0a64403ef5faa0d0 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 20:43:16 +0530 Subject: [PATCH 05/37] Potential fix for code scanning alert no. 13: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index 2094c598..e47ab177 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -25,8 +25,10 @@ from sqlalchemy import create_engine, text # type: ignore def sanitize_sensitive_info(data: dict) -> dict: sanitized_data = data.copy() - if 'password' in sanitized_data: - sanitized_data['password'] = '***' + sensitive_fields = ['password', 'user', 'host', 'database'] + for field in sensitive_fields: + if field in sanitized_data: + sanitized_data[field] = '***' return sanitized_data class TiDB: @@ -76,7 +78,7 @@ class TiDB: result = conn.execute(text(sql), params) except Exception as e: sanitized_params = sanitize_sensitive_info(params) - logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{e}") + logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{sanitize_sensitive_info({'error': str(e)})}") raise if multirows: rows = result.all() @@ -102,7 +104,7 @@ class TiDB: conn.execute(text(sql), parameters=data) except Exception as e: sanitized_data = sanitize_sensitive_info(data) if data else None - logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{e}") + logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{sanitize_sensitive_info({'error': str(e)})}") raise From 730dd7d5f0843058a9db6eed2433ccb76ec726f0 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 20:49:59 +0530 Subject: [PATCH 06/37] Potential fix for code scanning alert no. 14: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index e47ab177..026ada76 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -78,7 +78,7 @@ class TiDB: result = conn.execute(text(sql), params) except Exception as e: sanitized_params = sanitize_sensitive_info(params) - logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{sanitize_sensitive_info({'error': str(e)})}") + logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitize_sensitive_info(params)},\nerror:{sanitize_sensitive_info({'error': str(e)})}") raise if multirows: rows = result.all() @@ -104,7 +104,7 @@ class TiDB: conn.execute(text(sql), parameters=data) except Exception as e: sanitized_data = sanitize_sensitive_info(data) if data else None - logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{sanitize_sensitive_info({'error': str(e)})}") + logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitize_sensitive_info(data) if data else None},\nerror:{sanitize_sensitive_info({'error': str(e)})}") raise From d6fc14360fcc2fc1d7255a03206a81208f7d1611 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 20:51:56 +0530 Subject: [PATCH 07/37] Potential fix for code scanning alert no. 15: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index 026ada76..f909be8b 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -78,7 +78,8 @@ class TiDB: result = conn.execute(text(sql), params) except Exception as e: sanitized_params = sanitize_sensitive_info(params) - logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitize_sensitive_info(params)},\nerror:{sanitize_sensitive_info({'error': str(e)})}") + sanitized_params = sanitize_sensitive_info(params) + logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{sanitize_sensitive_info({'error': str(e)})}") raise if multirows: rows = result.all() @@ -104,7 +105,7 @@ class TiDB: conn.execute(text(sql), parameters=data) except Exception as e: sanitized_data = sanitize_sensitive_info(data) if data else None - logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitize_sensitive_info(data) if data else None},\nerror:{sanitize_sensitive_info({'error': str(e)})}") + logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{sanitize_sensitive_info({'error': str(e)})}") raise From 3c62489a18b3bc7d85ae8433ebaa166c434b5b10 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 20:56:12 +0530 Subject: [PATCH 08/37] Potential fix for code scanning alert no. 13: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index 2094c598..481bf5b2 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -25,8 +25,10 @@ from sqlalchemy import create_engine, text # type: ignore def sanitize_sensitive_info(data: dict) -> dict: sanitized_data = data.copy() - if 'password' in sanitized_data: - sanitized_data['password'] = '***' + sensitive_fields = ['password', 'user', 'host', 'database'] + for field in sensitive_fields: + if field in sanitized_data: + sanitized_data[field] = '***' return sanitized_data class TiDB: @@ -76,7 +78,7 @@ class TiDB: result = conn.execute(text(sql), params) except Exception as e: sanitized_params = sanitize_sensitive_info(params) - logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{e}") + logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitize_sensitive_info(sanitized_params)},\nerror:{e}") raise if multirows: rows = result.all() @@ -102,7 +104,7 @@ class TiDB: conn.execute(text(sql), parameters=data) except Exception as e: sanitized_data = sanitize_sensitive_info(data) if data else None - logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{e}") + logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitize_sensitive_info(sanitized_data)},\nerror:{e}") raise From a4a80336418a6cb52a8e7900f44274bff6b23f62 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 20:58:41 +0530 Subject: [PATCH 09/37] Potential fix for code scanning alert no. 16: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index 481bf5b2..3d6b5175 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -78,7 +78,7 @@ class TiDB: result = conn.execute(text(sql), params) except Exception as e: sanitized_params = sanitize_sensitive_info(params) - logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitize_sensitive_info(sanitized_params)},\nerror:{e}") + logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{e}") raise if multirows: rows = result.all() @@ -104,7 +104,7 @@ class TiDB: conn.execute(text(sql), parameters=data) except Exception as e: sanitized_data = sanitize_sensitive_info(data) if data else None - logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitize_sensitive_info(sanitized_data)},\nerror:{e}") + logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{e}") raise From e1e14e0460749485a98c63dd54a6af35ee2fbaa0 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 22:20:18 +0530 Subject: [PATCH 10/37] Potential fix for code scanning alert no. 14: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index f909be8b..622596b5 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -79,7 +79,8 @@ class TiDB: except Exception as e: sanitized_params = sanitize_sensitive_info(params) sanitized_params = sanitize_sensitive_info(params) - logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{sanitize_sensitive_info({'error': str(e)})}") + sanitized_error = sanitize_sensitive_info({'error': str(e)}) + logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{sanitized_error}") raise if multirows: rows = result.all() @@ -105,7 +106,8 @@ class TiDB: conn.execute(text(sql), parameters=data) except Exception as e: sanitized_data = sanitize_sensitive_info(data) if data else None - logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{sanitize_sensitive_info({'error': str(e)})}") + sanitized_error = sanitize_sensitive_info({'error': str(e)}) + logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{sanitized_error}") raise From fc35a6ca30595cedd2bbc5a74b64d404ca74df57 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 22:21:27 +0530 Subject: [PATCH 11/37] Potential fix for code scanning alert no. 7: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index f909be8b..adb9cd15 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -46,9 +46,9 @@ class TiDB: try: self.engine = create_engine(connection_string) - logger.info(f"Connected to TiDB database at {self.database}") + logger.info("Connected to TiDB database") except Exception as e: - logger.error(f"Failed to connect to TiDB database at {self.database}") + logger.error("Failed to connect to TiDB database") logger.error(f"TiDB database error: {e}") raise @@ -57,13 +57,13 @@ class TiDB: try: await self.query(f"SELECT 1 FROM {k}".format(k=k)) except Exception as e: - logger.error(f"Failed to check table {k} in TiDB database") + logger.error("Failed to check table in TiDB database") logger.error(f"TiDB database error: {e}") try: await self.execute(v["ddl"]) - logger.info(f"Created table {k} in TiDB database") + logger.info("Created table in TiDB database") except Exception as e: - logger.error(f"Failed to create table {k} in TiDB database") + logger.error("Failed to create table in TiDB database") logger.error(f"TiDB database error: {e}") async def query( @@ -105,7 +105,7 @@ class TiDB: conn.execute(text(sql), parameters=data) except Exception as e: sanitized_data = sanitize_sensitive_info(data) if data else None - logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{sanitize_sensitive_info({'error': str(e)})}") + logger.error(f"Tidb database error: {sanitize_sensitive_info({'error': str(e)})}") raise From 2f82b83aaffee4fd8c090dc63f2759fc551b8ac6 Mon Sep 17 00:00:00 2001 From: VenkateshPabbati Date: Wed, 9 Apr 2025 22:31:52 +0530 Subject: [PATCH 12/37] Potential fix for code scanning alert no. 21: Clear-text logging of sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- lightrag/kg/tidb_impl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index d2809f38..d4dd8cd4 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -25,7 +25,7 @@ from sqlalchemy import create_engine, text # type: ignore def sanitize_sensitive_info(data: dict) -> dict: sanitized_data = data.copy() - sensitive_fields = ['password', 'user', 'host', 'database'] + sensitive_fields = ['password', 'user', 'host', 'database', 'port', 'ssl_verify_cert', 'ssl_verify_identity'] for field in sensitive_fields: if field in sanitized_data: sanitized_data[field] = '***' From 4d57370c944c58b52d2be061e0256d5a0d7c81f0 Mon Sep 17 00:00:00 2001 From: yangdx Date: Sat, 10 May 2025 08:58:18 +0800 Subject: [PATCH 13/37] Refactor: Move get_env_value from api.config to utils Relocates the `get_env_value` utility function from `lightrag.api.config` to `lightrag.utils` to decouple LightRAG core from API Server --- lightrag/api/config.py | 32 +----------------------------- lightrag/api/gunicorn_config.py | 3 +-- lightrag/api/lightrag_server.py | 2 +- lightrag/api/run_with_gunicorn.py | 3 ++- lightrag/lightrag.py | 2 +- lightrag/utils.py | 33 ++++++++++++++++++++++++++++++- 6 files changed, 38 insertions(+), 37 deletions(-) diff --git a/lightrag/api/config.py b/lightrag/api/config.py index 696c1d48..006ab452 100644 --- a/lightrag/api/config.py +++ b/lightrag/api/config.py @@ -6,6 +6,7 @@ import os import argparse import logging from dotenv import load_dotenv +from lightrag.utils import get_env_value from lightrag.constants import ( DEFAULT_WOKERS, @@ -50,37 +51,6 @@ def get_default_host(binding_type: str) -> str: ) # fallback to ollama if unknown -def get_env_value( - env_key: str, default: any, value_type: type = str, special_none: bool = False -) -> any: - """ - Get value from environment variable with type conversion - - Args: - env_key (str): Environment variable key - default (any): Default value if env variable is not set - value_type (type): Type to convert the value to - special_none (bool): If True, return None when value is "None" - - Returns: - any: Converted value from environment or default - """ - value = os.getenv(env_key) - if value is None: - return default - - # Handle special case for "None" string - if special_none and value == "None": - return None - - if value_type is bool: - return value.lower() in ("true", "1", "yes", "t", "on") - try: - return value_type(value) - except (ValueError, TypeError): - return default - - def parse_args() -> argparse.Namespace: """ Parse command line arguments with environment variable fallback diff --git a/lightrag/api/gunicorn_config.py b/lightrag/api/gunicorn_config.py index 25c9e48f..7b25b5b9 100644 --- a/lightrag/api/gunicorn_config.py +++ b/lightrag/api/gunicorn_config.py @@ -2,8 +2,7 @@ import os import logging from lightrag.kg.shared_storage import finalize_share_data -from lightrag.utils import setup_logger -from lightrag.api.config import get_env_value +from lightrag.utils import setup_logger, get_env_value from lightrag.constants import ( DEFAULT_LOG_MAX_BYTES, DEFAULT_LOG_BACKUP_COUNT, diff --git a/lightrag/api/lightrag_server.py b/lightrag/api/lightrag_server.py index 6c90d35f..f159bfc4 100644 --- a/lightrag/api/lightrag_server.py +++ b/lightrag/api/lightrag_server.py @@ -26,8 +26,8 @@ from .config import ( global_args, update_uvicorn_mode_config, get_default_host, - get_env_value, ) +from lightrag.utils import get_env_value import sys from lightrag import LightRAG, __version__ as core_version from lightrag.api import __api_version__ diff --git a/lightrag/api/run_with_gunicorn.py b/lightrag/api/run_with_gunicorn.py index 11df0801..8c8a029d 100644 --- a/lightrag/api/run_with_gunicorn.py +++ b/lightrag/api/run_with_gunicorn.py @@ -8,7 +8,8 @@ import sys import signal import pipmaster as pm from lightrag.api.utils_api import display_splash_screen, check_env_file -from lightrag.api.config import global_args, get_env_value +from lightrag.api.config import global_args +from lightrag.utils import get_env_value from lightrag.kg.shared_storage import initialize_share_data, finalize_share_data from lightrag.constants import ( diff --git a/lightrag/lightrag.py b/lightrag/lightrag.py index 25368a78..2c51fdd0 100644 --- a/lightrag/lightrag.py +++ b/lightrag/lightrag.py @@ -24,7 +24,7 @@ from lightrag.constants import ( DEFAULT_MAX_TOKEN_SUMMARY, DEFAULT_FORCE_LLM_SUMMARY_ON_MERGE, ) -from lightrag.api.config import get_env_value +from lightrag.utils import get_env_value from lightrag.kg import ( STORAGES, diff --git a/lightrag/utils.py b/lightrag/utils.py index 5e252de1..93253be6 100644 --- a/lightrag/utils.py +++ b/lightrag/utils.py @@ -22,7 +22,38 @@ from lightrag.constants import ( DEFAULT_LOG_BACKUP_COUNT, DEFAULT_LOG_FILENAME, ) -from lightrag.api.config import get_env_value + + +def get_env_value( + env_key: str, default: any, value_type: type = str, special_none: bool = False +) -> any: + """ + Get value from environment variable with type conversion + + Args: + env_key (str): Environment variable key + default (any): Default value if env variable is not set + value_type (type): Type to convert the value to + special_none (bool): If True, return None when value is "None" + + Returns: + any: Converted value from environment or default + """ + value = os.getenv(env_key) + if value is None: + return default + + # Handle special case for "None" string + if special_none and value == "None": + return None + + if value_type is bool: + return value.lower() in ("true", "1", "yes", "t", "on") + try: + return value_type(value) + except (ValueError, TypeError): + return default + # Use TYPE_CHECKING to avoid circular imports if TYPE_CHECKING: From 0fdbdfe9714d131019a8e2d0e643aec42bbe21b1 Mon Sep 17 00:00:00 2001 From: yangdx Date: Sun, 11 May 2025 10:25:46 +0800 Subject: [PATCH 14/37] Fix env.sample --- env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env.example b/env.example index d16b5e8a..a07736f9 100644 --- a/env.example +++ b/env.example @@ -96,7 +96,7 @@ EMBEDDING_BINDING=ollama EMBEDDING_BINDING_HOST=http://localhost:11434 ### OpenAI alike example # EMBEDDING_BINDING=openai -# LLM_BINDING_HOST=https://api.openai.com/v1 +# EMBEDDING_BINDING_HOST=https://api.openai.com/v1 ### Lollms example # EMBEDDING_BINDING=lollms # EMBEDDING_BINDING_HOST=http://localhost:9600 From 5a3bf5ecc857ebe1f2dc9ab044ae6fc9cf86839a Mon Sep 17 00:00:00 2001 From: yangdx Date: Sun, 11 May 2025 10:25:59 +0800 Subject: [PATCH 15/37] Fix linting --- README-zh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README-zh.md b/README-zh.md index 442ccaa2..66690ee8 100644 --- a/README-zh.md +++ b/README-zh.md @@ -91,7 +91,7 @@ python examples/lightrag_openai_demo.py 如需流式响应示例的实现代码,请参阅 `examples/lightrag_openai_compatible_demo.py`。运行前,请确保根据需求修改示例代码中的LLM及嵌入模型配置。 -**注意1**:在运行demo程序的时候需要注意,不同的测试程序可能使用的是不同的embedding模型,更换不同的embeding模型的时候需要把清空数据目录(`./dickens`),否则层序执行会出错。如果你想保留LLM缓存,可以在清除数据目录是保留`kv_store_llm_response_cache.json`文件。 +**注意1**:在运行demo程序的时候需要注意,不同的测试程序可能使用的是不同的embedding模型,更换不同的embeding模型的时候需要把清空数据目录(`./dickens`),否则层序执行会出错。如果你想保留LLM缓存,可以在清除数据目录时保留`kv_store_llm_response_cache.json`文件。 **注意2**:官方支持的示例代码仅为 `lightrag_openai_demo.py` 和 `lightrag_openai_compatible_demo.py` 两个文件。其他示例文件均为社区贡献内容,尚未经过完整测试与优化。 From 68653f853ae98018432d4a5b6196de6884bc2377 Mon Sep 17 00:00:00 2001 From: yangdx Date: Sun, 11 May 2025 11:16:32 +0800 Subject: [PATCH 16/37] fix: handle missing 'weight' attribute in edge data to prevent KeyError - Add validation in _find_most_related_edges_from_entities and _get_edge_data function during edge data construction - Add warning logs when 'weight' attribute is missing and set default value of 0.0 --- lightrag/operate.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lightrag/operate.py b/lightrag/operate.py index 0d5c7866..41cb8cd4 100644 --- a/lightrag/operate.py +++ b/lightrag/operate.py @@ -1609,6 +1609,10 @@ async def _find_most_related_edges_from_entities( for pair in all_edges: edge_props = edge_data_dict.get(pair) if edge_props is not None: + if "weight" not in edge_props: + logger.warning(f"Edge {pair} missing 'weight' attribute, using default value 0.0") + edge_props["weight"] = 0.0 + combined = { "src_tgt": pair, "rank": edge_degrees_dict.get(pair, 0), @@ -1670,6 +1674,10 @@ async def _get_edge_data( pair = (k["src_id"], k["tgt_id"]) edge_props = edge_data_dict.get(pair) if edge_props is not None: + if "weight" not in edge_props: + logger.warning(f"Edge {pair} missing 'weight' attribute, using default value 0.0") + edge_props["weight"] = 0.0 + # Use edge degree from the batch as rank. combined = { "src_id": k["src_id"], From 9ec9579a9599cf22221f258003ffabddc14929f7 Mon Sep 17 00:00:00 2001 From: yangdx Date: Sun, 11 May 2025 11:24:52 +0800 Subject: [PATCH 17/37] Fix linting --- lightrag/operate.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lightrag/operate.py b/lightrag/operate.py index 41cb8cd4..8b39527f 100644 --- a/lightrag/operate.py +++ b/lightrag/operate.py @@ -1610,9 +1610,11 @@ async def _find_most_related_edges_from_entities( edge_props = edge_data_dict.get(pair) if edge_props is not None: if "weight" not in edge_props: - logger.warning(f"Edge {pair} missing 'weight' attribute, using default value 0.0") + logger.warning( + f"Edge {pair} missing 'weight' attribute, using default value 0.0" + ) edge_props["weight"] = 0.0 - + combined = { "src_tgt": pair, "rank": edge_degrees_dict.get(pair, 0), @@ -1675,9 +1677,11 @@ async def _get_edge_data( edge_props = edge_data_dict.get(pair) if edge_props is not None: if "weight" not in edge_props: - logger.warning(f"Edge {pair} missing 'weight' attribute, using default value 0.0") + logger.warning( + f"Edge {pair} missing 'weight' attribute, using default value 0.0" + ) edge_props["weight"] = 0.0 - + # Use edge degree from the batch as rank. combined = { "src_id": k["src_id"], From d5b9318553d92b8cad24d5f4b1cd65fb2a80899a Mon Sep 17 00:00:00 2001 From: yangdx Date: Sun, 11 May 2025 11:51:53 +0800 Subject: [PATCH 18/37] Bump api version to 0170 --- lightrag/api/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lightrag/api/__init__.py b/lightrag/api/__init__.py index bfc99727..ea0310c0 100644 --- a/lightrag/api/__init__.py +++ b/lightrag/api/__init__.py @@ -1 +1 @@ -__api_version__ = "0169" +__api_version__ = "0170" From fd5f61f166aeeebdc345d466f13983147be8c4c1 Mon Sep 17 00:00:00 2001 From: yangdx Date: Sun, 11 May 2025 12:35:51 +0800 Subject: [PATCH 19/37] Enhances property edit dialog with error handling and loading states - Displays error messages when save operations fail - Shows loading spinner during save attempts - Improves UX with loading state indicators - Updates translations for save-related strings in multiple languages --- .../components/graph/PropertyEditDialog.tsx | 39 +- lightrag_webui/src/locales/ar.json | 4 +- lightrag_webui/src/locales/en.json | 4 +- lightrag_webui/src/locales/fr.json | 4 +- lightrag_webui/src/locales/zh.json | 4 +- lightrag_webui/src/locales/zh_TW.json | 724 +++++++++--------- 6 files changed, 409 insertions(+), 370 deletions(-) diff --git a/lightrag_webui/src/components/graph/PropertyEditDialog.tsx b/lightrag_webui/src/components/graph/PropertyEditDialog.tsx index ffff0b8a..65c71c4e 100644 --- a/lightrag_webui/src/components/graph/PropertyEditDialog.tsx +++ b/lightrag_webui/src/components/graph/PropertyEditDialog.tsx @@ -33,6 +33,8 @@ const PropertyEditDialog = ({ }: PropertyEditDialogProps) => { const { t } = useTranslation() const [value, setValue] = useState('') + // Add error state to display save failure messages + const [error, setError] = useState(null) // Initialize value when dialog opens useEffect(() => { @@ -82,10 +84,20 @@ const PropertyEditDialog = ({ } }; - const handleSave = () => { + const handleSave = async () => { if (value.trim() !== '') { - onSave(value) - onClose() + // Clear previous error messages + setError(null) + try { + await onSave(value) + onClose() + } catch (error) { + console.error('Save error:', error) + // Set error message to state for UI display + setError(typeof error === 'object' && error !== null + ? (error as Error).message || t('common.saveFailed') + : t('common.saveFailed')) + } } } @@ -103,6 +115,13 @@ const PropertyEditDialog = ({ + {/* Display error message if save fails */} + {error && ( +
+ {error} +
+ )} + {/* Multi-line text input using textarea */}
{(() => { @@ -141,7 +160,19 @@ const PropertyEditDialog = ({ onClick={handleSave} disabled={isSubmitting} > - {t('common.save')} + {isSubmitting ? ( + <> + + + + + + + {t('common.saving')} + + ) : ( + t('common.save') + )} diff --git a/lightrag_webui/src/locales/ar.json b/lightrag_webui/src/locales/ar.json index 5cddc36a..ee274c9d 100644 --- a/lightrag_webui/src/locales/ar.json +++ b/lightrag_webui/src/locales/ar.json @@ -34,7 +34,9 @@ }, "common": { "cancel": "إلغاء", - "save": "حفظ" + "save": "حفظ", + "saving": "جارٍ الحفظ...", + "saveFailed": "فشل الحفظ" }, "documentPanel": { "clearDocuments": { diff --git a/lightrag_webui/src/locales/en.json b/lightrag_webui/src/locales/en.json index bc29b990..643b6f2e 100644 --- a/lightrag_webui/src/locales/en.json +++ b/lightrag_webui/src/locales/en.json @@ -34,7 +34,9 @@ }, "common": { "cancel": "Cancel", - "save": "Save" + "save": "Save", + "saving": "Saving...", + "saveFailed": "Save failed" }, "documentPanel": { "clearDocuments": { diff --git a/lightrag_webui/src/locales/fr.json b/lightrag_webui/src/locales/fr.json index 0238e7ec..65716dde 100644 --- a/lightrag_webui/src/locales/fr.json +++ b/lightrag_webui/src/locales/fr.json @@ -34,7 +34,9 @@ }, "common": { "cancel": "Annuler", - "save": "Sauvegarder" + "save": "Sauvegarder", + "saving": "Sauvegarde en cours...", + "saveFailed": "Échec de la sauvegarde" }, "documentPanel": { "clearDocuments": { diff --git a/lightrag_webui/src/locales/zh.json b/lightrag_webui/src/locales/zh.json index 22496508..8f776de8 100644 --- a/lightrag_webui/src/locales/zh.json +++ b/lightrag_webui/src/locales/zh.json @@ -34,7 +34,9 @@ }, "common": { "cancel": "取消", - "save": "保存" + "save": "保存", + "saving": "保存中...", + "saveFailed": "保存失败" }, "documentPanel": { "clearDocuments": { diff --git a/lightrag_webui/src/locales/zh_TW.json b/lightrag_webui/src/locales/zh_TW.json index a86f6489..8671f0ed 100644 --- a/lightrag_webui/src/locales/zh_TW.json +++ b/lightrag_webui/src/locales/zh_TW.json @@ -1,365 +1,365 @@ { - "settings": { - "language": "語言", - "theme": "主題", - "light": "淺色", - "dark": "深色", - "system": "系統" - }, - "header": { - "documents": "文件", - "knowledgeGraph": "知識圖譜", - "retrieval": "檢索", - "api": "API", - "projectRepository": "專案庫", - "logout": "登出", - "themeToggle": { - "switchToLight": "切換至淺色主題", - "switchToDark": "切換至深色主題" - } - }, - "login": { - "description": "請輸入您的帳號和密碼登入系統", - "username": "帳號", - "usernamePlaceholder": "請輸入帳號", - "password": "密碼", - "passwordPlaceholder": "請輸入密碼", - "loginButton": "登入", - "loggingIn": "登入中...", - "successMessage": "登入成功", - "errorEmptyFields": "請輸入您的帳號和密碼", - "errorInvalidCredentials": "登入失敗,請檢查帳號和密碼", - "authDisabled": "認證已停用,使用免登入模式", - "guestMode": "免登入" - }, - "common": { - "cancel": "取消", - "save": "儲存" - }, - "documentPanel": { - "clearDocuments": { - "button": "清空", - "tooltip": "清空文件", - "title": "清空文件", - "description": "此操作將從系統中移除所有文件", - "warning": "警告:此操作將永久刪除所有文件,無法復原!", - "confirm": "確定要清空所有文件嗎?", - "confirmPrompt": "請輸入 yes 確認操作", - "confirmPlaceholder": "輸入 yes 以確認", - "clearCache": "清空 LLM 快取", - "confirmButton": "確定", - "success": "文件清空成功", - "cacheCleared": "快取清空成功", - "cacheClearFailed": "清空快取失敗:\n{{error}}", - "failed": "清空文件失敗:\n{{message}}", - "error": "清空文件失敗:\n{{error}}" - }, - "uploadDocuments": { - "button": "上傳", - "tooltip": "上傳文件", - "title": "上傳文件", - "description": "拖曳檔案至此處或點擊瀏覽", - "single": { - "uploading": "正在上傳 {{name}}:{{percent}}%", - "success": "上傳成功:\n{{name}} 上傳完成", - "failed": "上傳失敗:\n{{name}}\n{{message}}", - "error": "上傳失敗:\n{{name}}\n{{error}}" - }, - "batch": { - "uploading": "正在上傳檔案...", - "success": "檔案上傳完成", - "error": "部分檔案上傳失敗" - }, - "generalError": "上傳失敗\n{{error}}", - "fileTypes": "支援的檔案類型:TXT, MD, DOCX, PDF, PPTX, RTF, ODT, EPUB, HTML, HTM, TEX, JSON, XML, YAML, YML, CSV, LOG, CONF, INI, PROPERTIES, SQL, BAT, SH, C, CPP, PY, JAVA, JS, TS, SWIFT, GO, RB, PHP, CSS, SCSS, LESS", - "fileUploader": { - "singleFileLimit": "一次只能上傳一個檔案", - "maxFilesLimit": "最多只能上傳 {{count}} 個檔案", - "fileRejected": "檔案 {{name}} 被拒絕", - "unsupportedType": "不支援的檔案類型", - "fileTooLarge": "檔案過大,最大允許 {{maxSize}}", - "dropHere": "將檔案拖放至此處", - "dragAndDrop": "拖放檔案至此處,或點擊選擇檔案", - "removeFile": "移除檔案", - "uploadDescription": "您可以上傳{{isMultiple ? '多個' : count}}個檔案(每個檔案最大{{maxSize}})", - "duplicateFile": "檔案名稱與伺服器上的快取重複" - } - }, - "documentManager": { - "title": "文件管理", - "scanButton": "掃描", - "scanTooltip": "掃描輸入目錄中的文件", - "pipelineStatusButton": "pipeline 狀態", - "pipelineStatusTooltip": "查看pipeline 狀態", - "uploadedTitle": "已上傳文件", - "uploadedDescription": "已上傳文件清單及其狀態", - "emptyTitle": "無文件", - "emptyDescription": "尚未上傳任何文件", - "columns": { - "id": "ID", - "summary": "摘要", - "status": "狀態", - "length": "長度", - "chunks": "分塊", - "created": "建立時間", - "updated": "更新時間", - "metadata": "元資料" - }, - "status": { - "all": "全部", - "completed": "已完成", - "processing": "處理中", - "pending": "等待中", - "failed": "失敗" - }, - "errors": { - "loadFailed": "載入文件失敗\n{{error}}", - "scanFailed": "掃描文件失敗\n{{error}}", - "scanProgressFailed": "取得掃描進度失敗\n{{error}}" - }, - "fileNameLabel": "檔案名稱", - "showButton": "顯示", - "hideButton": "隱藏", - "showFileNameTooltip": "顯示檔案名稱", - "hideFileNameTooltip": "隱藏檔案名稱" - }, - "pipelineStatus": { - "title": "pipeline 狀態", - "busy": "pipeline 忙碌中", - "requestPending": "待處理請求", - "jobName": "工作名稱", - "startTime": "開始時間", - "progress": "進度", - "unit": "梯次", - "latestMessage": "最新訊息", - "historyMessages": "歷史訊息", - "errors": { - "fetchFailed": "取得pipeline 狀態失敗\n{{error}}" - } - } - }, - "graphPanel": { - "dataIsTruncated": "圖資料已截斷至最大回傳節點數", - "statusDialog": { - "title": "LightRAG 伺服器設定", - "description": "查看目前系統狀態和連線資訊" - }, - "legend": "圖例", - "nodeTypes": { - "person": "人物角色", - "category": "分類", - "geo": "地理名稱", - "location": "位置", - "organization": "組織機構", - "event": "事件", - "equipment": "設備", - "weapon": "武器", - "animal": "動物", - "unknown": "未知", - "object": "物品", - "group": "群組", - "technology": "技術" - }, - "sideBar": { - "settings": { - "settings": "設定", - "healthCheck": "健康檢查", - "showPropertyPanel": "顯示屬性面板", - "showSearchBar": "顯示搜尋列", - "showNodeLabel": "顯示節點標籤", - "nodeDraggable": "節點可拖曳", - "showEdgeLabel": "顯示 Edge 標籤", - "hideUnselectedEdges": "隱藏未選取的 Edge", - "edgeEvents": "Edge 事件", - "maxQueryDepth": "最大查詢深度", - "maxNodes": "最大回傳節點數", - "maxLayoutIterations": "最大版面配置迭代次數", - "resetToDefault": "重設為預設值", - "edgeSizeRange": "Edge 粗細範圍", - "depth": "深度", - "max": "最大值", - "degree": "鄰邊", - "apiKey": "API key", - "enterYourAPIkey": "輸入您的 API key", - "save": "儲存", - "refreshLayout": "重新整理版面配置" - }, - "zoomControl": { - "zoomIn": "放大", - "zoomOut": "縮小", - "resetZoom": "重設縮放", - "rotateCamera": "順時針旋轉圖形", - "rotateCameraCounterClockwise": "逆時針旋轉圖形" - }, - "layoutsControl": { - "startAnimation": "繼續版面配置動畫", - "stopAnimation": "停止版面配置動畫", - "layoutGraph": "圖形版面配置", - "layouts": { - "Circular": "環形", - "Circlepack": "圓形打包", - "Random": "隨機", - "Noverlaps": "無重疊", - "Force Directed": "力導向", - "Force Atlas": "力圖" - } - }, - "fullScreenControl": { - "fullScreen": "全螢幕", - "windowed": "視窗" - }, - "legendControl": { - "toggleLegend": "切換圖例顯示" - } - }, - "statusIndicator": { - "connected": "已連線", - "disconnected": "未連線" - }, - "statusCard": { - "unavailable": "狀態資訊不可用", - "storageInfo": "儲存資訊", - "workingDirectory": "工作目錄", - "inputDirectory": "輸入目錄", - "llmConfig": "LLM 設定", - "llmBinding": "LLM 綁定", - "llmBindingHost": "LLM 綁定主機", - "llmModel": "LLM 模型", - "maxTokens": "最大權杖數", - "embeddingConfig": "嵌入設定", - "embeddingBinding": "嵌入綁定", - "embeddingBindingHost": "嵌入綁定主機", - "embeddingModel": "嵌入模型", - "storageConfig": "儲存設定", - "kvStorage": "KV 儲存", - "docStatusStorage": "文件狀態儲存", - "graphStorage": "圖形儲存", - "vectorStorage": "向量儲存" - }, - "propertiesView": { - "editProperty": "編輯{{property}}", - "editPropertyDescription": "在下方文字區域編輯屬性值。", - "errors": { - "duplicateName": "節點名稱已存在", - "updateFailed": "更新節點失敗", - "tryAgainLater": "請稍後重試" - }, - "success": { - "entityUpdated": "節點更新成功", - "relationUpdated": "關係更新成功" - }, - "node": { - "title": "節點", - "id": "ID", - "labels": "標籤", - "degree": "度數", - "properties": "屬性", - "relationships": "關係(子圖內)", - "expandNode": "展開節點", - "pruneNode": "修剪節點", - "deleteAllNodesError": "拒絕刪除圖中的所有節點", - "nodesRemoved": "已刪除 {{count}} 個節點,包括孤立節點", - "noNewNodes": "沒有發現可以展開的節點", - "propertyNames": { - "description": "描述", - "entity_id": "名稱", - "entity_type": "類型", - "source_id": "來源ID", - "Neighbour": "鄰接", - "file_path": "來源", - "keywords": "Keys", - "weight": "權重" - } - }, - "edge": { - "title": "關係", - "id": "ID", - "type": "類型", - "source": "來源節點", - "target": "目標節點", - "properties": "屬性" - } - }, - "search": { - "placeholder": "搜尋節點...", - "message": "還有 {count} 個" - }, - "graphLabels": { - "selectTooltip": "選擇查詢標籤", - "noLabels": "未找到標籤", - "label": "標籤", - "placeholder": "搜尋標籤...", - "andOthers": "還有 {count} 個", - "refreshTooltip": "重載圖形數據(新增檔案後需重載)" - }, - "emptyGraph": "無數據(請重載圖形數據)" - }, - "retrievePanel": { - "chatMessage": { - "copyTooltip": "複製到剪貼簿", - "copyError": "複製文字到剪貼簿失敗" - }, - "retrieval": { - "startPrompt": "輸入查詢開始檢索", - "clear": "清空", - "send": "送出", - "placeholder": "輸入查詢內容 (支援模式前綴:/)", - "error": "錯誤:取得回應失敗", - "queryModeError": "僅支援以下查詢模式:{{modes}}", - "queryModePrefixInvalid": "無效的查詢模式前綴。請使用:/<模式> [空格] 查詢內容" - }, - "querySettings": { - "parametersTitle": "參數", - "parametersDescription": "設定查詢參數", - "queryMode": "查詢模式", - "queryModeTooltip": "選擇檢索策略:\n• Naive:基礎搜尋,無進階技術\n• Local:上下文相關資訊檢索\n• Global:利用全域知識庫\n• Hybrid:結合本地和全域檢索\n• Mix:整合知識圖譜和向量檢索\n• Bypass:直接傳遞查詢到LLM,不進行檢索", - "queryModeOptions": { - "naive": "Naive", - "local": "Local", - "global": "Global", - "hybrid": "Hybrid", - "mix": "Mix", - "bypass": "Bypass" - }, - "responseFormat": "回應格式", - "responseFormatTooltip": "定義回應格式。例如:\n• 多段落\n• 單段落\n• 重點", - "responseFormatOptions": { - "multipleParagraphs": "多段落", - "singleParagraph": "單段落", - "bulletPoints": "重點" - }, - "topK": "Top K結果", - "topKTooltip": "檢索的前幾項結果數。在'local'模式下表示實體,在'global'模式下表示關係", - "topKPlaceholder": "結果數量", - "maxTokensTextUnit": "文字單元最大權杖數", - "maxTokensTextUnitTooltip": "每個檢索文字區塊允許的最大權杖數", - "maxTokensGlobalContext": "全域上下文最大權杖數", - "maxTokensGlobalContextTooltip": "全域檢索中關係描述的最大權杖數", - "maxTokensLocalContext": "本地上下文最大權杖數", - "maxTokensLocalContextTooltip": "本地檢索中實體描述的最大權杖數", - "historyTurns": "歷史輪次", - "historyTurnsTooltip": "回應上下文中考慮的完整對話輪次(使用者-助手對)數量", - "historyTurnsPlaceholder": "歷史輪次數", - "hlKeywords": "進階關鍵字", - "hlKeywordsTooltip": "檢索中優先考慮的進階關鍵字清單。用逗號分隔", - "hlkeywordsPlaceHolder": "輸入關鍵字", - "llKeywords": "基礎關鍵字", - "llKeywordsTooltip": "用於細化檢索重點的基礎關鍵字清單。用逗號分隔", - "onlyNeedContext": "僅需上下文", - "onlyNeedContextTooltip": "如果為True,僅回傳檢索到的上下文而不產生回應", - "onlyNeedPrompt": "僅需提示", - "onlyNeedPromptTooltip": "如果為True,僅回傳產生的提示而不產生回應", - "streamResponse": "串流回應", - "streamResponseTooltip": "如果為True,啟用即時串流輸出回應" - } - }, - "apiSite": { - "loading": "正在載入 API 文件..." - }, - "apiKeyAlert": { - "title": "需要 API key", - "description": "請輸入您的 API key 以存取服務", - "placeholder": "請輸入 API key", - "save": "儲存" + "settings": { + "language": "語言", + "theme": "主題", + "light": "淺色", + "dark": "深色", + "system": "系統" + }, + "header": { + "documents": "文件", + "knowledgeGraph": "知識圖譜", + "retrieval": "檢索", + "api": "API", + "projectRepository": "專案庫", + "logout": "登出", + "themeToggle": { + "switchToLight": "切換至淺色主題", + "switchToDark": "切換至深色主題" } + }, + "login": { + "description": "請輸入您的帳號和密碼登入系統", + "username": "帳號", + "usernamePlaceholder": "請輸入帳號", + "password": "密碼", + "passwordPlaceholder": "請輸入密碼", + "loginButton": "登入", + "loggingIn": "登入中...", + "successMessage": "登入成功", + "errorEmptyFields": "請輸入您的帳號和密碼", + "errorInvalidCredentials": "登入失敗,請檢查帳號和密碼", + "authDisabled": "認證已停用,使用免登入模式", + "guestMode": "免登入" + }, + "common": { + "cancel": "取消", + "save": "儲存", + "saving": "儲存中...", + "saveFailed": "儲存失敗" + }, + "documentPanel": { + "clearDocuments": { + "button": "清空", + "tooltip": "清空文件", + "title": "清空文件", + "description": "此操作將從系統中移除所有文件", + "warning": "警告:此操作將永久刪除所有文件,無法復原!", + "confirm": "確定要清空所有文件嗎?", + "confirmPrompt": "請輸入 yes 確認操作", + "confirmPlaceholder": "輸入 yes 以確認", + "clearCache": "清空 LLM 快取", + "confirmButton": "確定", + "success": "文件清空成功", + "cacheCleared": "快取清空成功", + "cacheClearFailed": "清空快取失敗:\n{{error}}", + "failed": "清空文件失敗:\n{{message}}", + "error": "清空文件失敗:\n{{error}}" + }, + "uploadDocuments": { + "button": "上傳", + "tooltip": "上傳文件", + "title": "上傳文件", + "description": "拖曳檔案至此處或點擊瀏覽", + "single": { + "uploading": "正在上傳 {{name}}:{{percent}}%", + "success": "上傳成功:\n{{name}} 上傳完成", + "failed": "上傳失敗:\n{{name}}\n{{message}}", + "error": "上傳失敗:\n{{name}}\n{{error}}" + }, + "batch": { + "uploading": "正在上傳檔案...", + "success": "檔案上傳完成", + "error": "部分檔案上傳失敗" + }, + "generalError": "上傳失敗\n{{error}}", + "fileTypes": "支援的檔案類型:TXT, MD, DOCX, PDF, PPTX, RTF, ODT, EPUB, HTML, HTM, TEX, JSON, XML, YAML, YML, CSV, LOG, CONF, INI, PROPERTIES, SQL, BAT, SH, C, CPP, PY, JAVA, JS, TS, SWIFT, GO, RB, PHP, CSS, SCSS, LESS", + "fileUploader": { + "singleFileLimit": "一次只能上傳一個檔案", + "maxFilesLimit": "最多只能上傳 {{count}} 個檔案", + "fileRejected": "檔案 {{name}} 被拒絕", + "unsupportedType": "不支援的檔案類型", + "fileTooLarge": "檔案過大,最大允許 {{maxSize}}", + "dropHere": "將檔案拖放至此處", + "dragAndDrop": "拖放檔案至此處,或點擊選擇檔案", + "removeFile": "移除檔案", + "uploadDescription": "您可以上傳{{isMultiple ? '多個' : count}}個檔案(每個檔案最大{{maxSize}})", + "duplicateFile": "檔案名稱與伺服器上的快取重複" + } + }, + "documentManager": { + "title": "文件管理", + "scanButton": "掃描", + "scanTooltip": "掃描輸入目錄中的文件", + "pipelineStatusButton": "pipeline 狀態", + "pipelineStatusTooltip": "查看pipeline 狀態", + "uploadedTitle": "已上傳文件", + "uploadedDescription": "已上傳文件清單及其狀態", + "emptyTitle": "無文件", + "emptyDescription": "尚未上傳任何文件", + "columns": { + "id": "ID", + "summary": "摘要", + "status": "狀態", + "length": "長度", + "chunks": "分塊", + "created": "建立時間", + "updated": "更新時間", + "metadata": "元資料" + }, + "status": { + "all": "全部", + "completed": "已完成", + "processing": "處理中", + "pending": "等待中", + "failed": "失敗" + }, + "errors": { + "loadFailed": "載入文件失敗\n{{error}}", + "scanFailed": "掃描文件失敗\n{{error}}", + "scanProgressFailed": "取得掃描進度失敗\n{{error}}" + }, + "fileNameLabel": "檔案名稱", + "showButton": "顯示", + "hideButton": "隱藏", + "showFileNameTooltip": "顯示檔案名稱", + "hideFileNameTooltip": "隱藏檔案名稱" + }, + "pipelineStatus": { + "title": "pipeline 狀態", + "busy": "pipeline 忙碌中", + "requestPending": "待處理請求", + "jobName": "工作名稱", + "startTime": "開始時間", + "progress": "進度", + "unit": "梯次", + "latestMessage": "最新訊息", + "historyMessages": "歷史訊息", + "errors": { + "fetchFailed": "取得pipeline 狀態失敗\n{{error}}" + } + } + }, + "graphPanel": { + "dataIsTruncated": "圖資料已截斷至最大回傳節點數", + "statusDialog": { + "title": "LightRAG 伺服器設定", + "description": "查看目前系統狀態和連線資訊" + }, + "legend": "圖例", + "nodeTypes": { + "person": "人物角色", + "category": "分類", + "geo": "地理名稱", + "location": "位置", + "organization": "組織機構", + "event": "事件", + "equipment": "設備", + "weapon": "武器", + "animal": "動物", + "unknown": "未知", + "object": "物品", + "group": "群組", + "technology": "技術" + }, + "sideBar": { + "settings": { + "settings": "設定", + "healthCheck": "健康檢查", + "showPropertyPanel": "顯示屬性面板", + "showSearchBar": "顯示搜尋列", + "showNodeLabel": "顯示節點標籤", + "nodeDraggable": "節點可拖曳", + "showEdgeLabel": "顯示 Edge 標籤", + "hideUnselectedEdges": "隱藏未選取的 Edge", + "edgeEvents": "Edge 事件", + "maxQueryDepth": "最大查詢深度", + "maxNodes": "最大回傳節點數", + "maxLayoutIterations": "最大版面配置迭代次數", + "resetToDefault": "重設為預設值", + "edgeSizeRange": "Edge 粗細範圍", + "depth": "深度", + "max": "最大值", + "degree": "鄰邊", + "apiKey": "API key", + "enterYourAPIkey": "輸入您的 API key", + "save": "儲存", + "refreshLayout": "重新整理版面配置" + }, + "zoomControl": { + "zoomIn": "放大", + "zoomOut": "縮小", + "resetZoom": "重設縮放", + "rotateCamera": "順時針旋轉圖形", + "rotateCameraCounterClockwise": "逆時針旋轉圖形" + }, + "layoutsControl": { + "startAnimation": "繼續版面配置動畫", + "stopAnimation": "停止版面配置動畫", + "layoutGraph": "圖形版面配置", + "layouts": { + "Circular": "環形", + "Circlepack": "圓形打包", + "Random": "隨機", + "Noverlaps": "無重疊", + "Force Directed": "力導向", + "Force Atlas": "力圖" + } + }, + "fullScreenControl": { + "fullScreen": "全螢幕", + "windowed": "視窗" + }, + "legendControl": { + "toggleLegend": "切換圖例顯示" + } + }, + "statusIndicator": { + "connected": "已連線", + "disconnected": "未連線" + }, + "statusCard": { + "unavailable": "狀態資訊不可用", + "storageInfo": "儲存資訊", + "workingDirectory": "工作目錄", + "inputDirectory": "輸入目錄", + "llmConfig": "LLM 設定", + "llmBinding": "LLM 綁定", + "llmBindingHost": "LLM 綁定主機", + "llmModel": "LLM 模型", + "maxTokens": "最大權杖數", + "embeddingConfig": "嵌入設定", + "embeddingBinding": "嵌入綁定", + "embeddingBindingHost": "嵌入綁定主機", + "embeddingModel": "嵌入模型", + "storageConfig": "儲存設定", + "kvStorage": "KV 儲存", + "docStatusStorage": "文件狀態儲存", + "graphStorage": "圖形儲存", + "vectorStorage": "向量儲存" + }, + "propertiesView": { + "editProperty": "編輯{{property}}", + "editPropertyDescription": "在下方文字區域編輯屬性值。", + "errors": { + "duplicateName": "節點名稱已存在", + "updateFailed": "更新節點失敗", + "tryAgainLater": "請稍後重試" + }, + "success": { + "entityUpdated": "節點更新成功", + "relationUpdated": "關係更新成功" + }, + "node": { + "title": "節點", + "id": "ID", + "labels": "標籤", + "degree": "度數", + "properties": "屬性", + "relationships": "關係(子圖內)", + "expandNode": "展開節點", + "pruneNode": "修剪節點", + "deleteAllNodesError": "拒絕刪除圖中的所有節點", + "nodesRemoved": "已刪除 {{count}} 個節點,包括孤立節點", + "noNewNodes": "沒有發現可以展開的節點", + "propertyNames": { + "description": "描述", + "entity_id": "名稱", + "entity_type": "類型", + "source_id": "來源ID", + "Neighbour": "鄰接", + "file_path": "來源", + "keywords": "Keys", + "weight": "權重" + } + }, + "edge": { + "title": "關係", + "id": "ID", + "type": "類型", + "source": "來源節點", + "target": "目標節點", + "properties": "屬性" + } + }, + "search": { + "placeholder": "搜尋節點...", + "message": "還有 {count} 個" + }, + "graphLabels": { + "selectTooltip": "選擇查詢標籤", + "noLabels": "未找到標籤", + "label": "標籤", + "placeholder": "搜尋標籤...", + "andOthers": "還有 {count} 個", + "refreshTooltip": "重載圖形數據(新增檔案後需重載)" + }, + "emptyGraph": "無數據(請重載圖形數據)" + }, + "retrievePanel": { + "chatMessage": { + "copyTooltip": "複製到剪貼簿", + "copyError": "複製文字到剪貼簿失敗" + }, + "retrieval": { + "startPrompt": "輸入查詢開始檢索", + "clear": "清空", + "send": "送出", + "placeholder": "輸入查詢內容 (支援模式前綴:/)", + "error": "錯誤:取得回應失敗", + "queryModeError": "僅支援以下查詢模式:{{modes}}", + "queryModePrefixInvalid": "無效的查詢模式前綴。請使用:/<模式> [空格] 查詢內容" + }, + "querySettings": { + "parametersTitle": "參數", + "parametersDescription": "設定查詢參數", + "queryMode": "查詢模式", + "queryModeTooltip": "選擇檢索策略:\n• Naive:基礎搜尋,無進階技術\n• Local:上下文相關資訊檢索\n• Global:利用全域知識庫\n• Hybrid:結合本地和全域檢索\n• Mix:整合知識圖譜和向量檢索\n• Bypass:直接傳遞查詢到LLM,不進行檢索", + "queryModeOptions": { + "naive": "Naive", + "local": "Local", + "global": "Global", + "hybrid": "Hybrid", + "mix": "Mix", + "bypass": "Bypass" + }, + "responseFormat": "回應格式", + "responseFormatTooltip": "定義回應格式。例如:\n• 多段落\n• 單段落\n• 重點", + "responseFormatOptions": { + "multipleParagraphs": "多段落", + "singleParagraph": "單段落", + "bulletPoints": "重點" + }, + "topK": "Top K結果", + "topKTooltip": "檢索的前幾項結果數。在'local'模式下表示實體,在'global'模式下表示關係", + "topKPlaceholder": "結果數量", + "maxTokensTextUnit": "文字單元最大權杖數", + "maxTokensTextUnitTooltip": "每個檢索文字區塊允許的最大權杖數", + "maxTokensGlobalContext": "全域上下文最大權杖數", + "maxTokensGlobalContextTooltip": "全域檢索中關係描述的最大權杖數", + "maxTokensLocalContext": "本地上下文最大權杖數", + "maxTokensLocalContextTooltip": "本地檢索中實體描述的最大權杖數", + "historyTurns": "歷史輪次", + "historyTurnsTooltip": "回應上下文中考慮的完整對話輪次(使用者-助手對)數量", + "historyTurnsPlaceholder": "歷史輪次數", + "onlyNeedContext": "僅需上下文", + "onlyNeedContextTooltip": "如果為True,僅回傳檢索到的上下文而不產生回應", + "onlyNeedPrompt": "僅需提示", + "onlyNeedPromptTooltip": "如果為True,僅回傳產生的提示而不產生回應", + "streamResponse": "串流回應", + "streamResponseTooltip": "如果為True,啟用即時串流輸出回應", + "userPrompt": "用戶提示詞", + "userPromptTooltip": "向LLM提供額外的響應要求(與查詢內容無關,僅用於處理輸出)。", + "userPromptPlaceholder": "輸入自定義提示詞(可選)" + } + }, + "apiSite": { + "loading": "正在載入 API 文件..." + }, + "apiKeyAlert": { + "title": "需要 API key", + "description": "請輸入您的 API key 以存取服務", + "placeholder": "請輸入 API key", + "save": "儲存" + } } From c36d499a43b55bf0deba3f72dc976564b7c47130 Mon Sep 17 00:00:00 2001 From: yangdx Date: Sun, 11 May 2025 12:44:50 +0800 Subject: [PATCH 20/37] Update webui assets --- ...By--_O36kXE.js => _basePickBy-Lz6agtdo.js} | 2 +- ...Uniq-D81M49Y6.js => _baseUniq-OtJ11HbN.js} | 2 +- ... architectureDiagram-IEHRJDOE-DuLLpJMS.js} | 2 +- ...6.js => blockDiagram-JOT3LUYC-l6jPCNSl.js} | 2 +- ...ycAT.js => c4Diagram-VJAJSXHY-B78G2kZD.js} | 2 +- ...M5QBFtoC.js => chunk-4BMEZGHF-Ct0jZH9M.js} | 2 +- ...CTXPIZDs.js => chunk-A2AXSNBT-CvfQgLmG.js} | 2 +- ...BRJnVklE.js => chunk-AEK57VVT-ZyE42AjE.js} | 2 +- ...CO4Tk6j6.js => chunk-D6G4REZN-CQqXYBrW.js} | 2 +- ...vCqEaZEa.js => chunk-RZ5BOZE2-C762jHXr.js} | 2 +- ...BjHVUYBP.js => chunk-XZIHB7SX-CqkuoyXD.js} | 2 +- ...2.js => classDiagram-GIVACNV2-Bx6IdAZy.js} | 2 +- ...s => classDiagram-v2-COTLJTTW-Bx6IdAZy.js} | 2 +- lightrag/api/webui/assets/clone-BHIBWXu-.js | 1 - lightrag/api/webui/assets/clone-vL6XIcCC.js | 1 + ...hl_RTy2g.js => dagre-OKDRZEBW-K3MoIKXh.js} | 2 +- ...PjpZ5y.js => diagram-SSKATNLV-C3O8bk3b.js} | 2 +- ...zL1-Is.js => diagram-VNBRO52H-DXx0iDIJ.js} | 2 +- ...Tg_G.js => erDiagram-Q7BY3M3F-DQX4VtAS.js} | 2 +- ...ZIcI6.js => feature-documents-ClbgnjXg.js} | 2 +- ...-D6-O-kXP.js => feature-graph-DbHHHM9y.js} | 20 ++++++++--------- ...cnY1B.js => feature-retrieval-zozGWnLh.js} | 2 +- ...2q.js => flowDiagram-4HSFHLVR-CtTg4KvT.js} | 2 +- ...Y.js => ganttDiagram-APWFNJXF-DPZeRkyR.js} | 2 +- ...s => gitGraphDiagram-7IBYFJ6S-fIZu_S0j.js} | 2 +- .../{graph-CmqUPRtj.js => graph-DexVwBa8.js} | 2 +- .../{index-m6I92ZpT.js => index-BLBnmXUl.js} | 22 +++++++++---------- lightrag/api/webui/assets/index-C3vR7z2U.css | 1 + lightrag/api/webui/assets/index-CM0YrL-d.css | 1 - ...R4.js => infoDiagram-PH2N3AL5-Bexk_QKW.js} | 2 +- ...js => journeyDiagram-U35MCT3I-Drj8e4jk.js} | 2 +- ...=> kanban-definition-NDS4AKOZ-ZF435Bcq.js} | 2 +- ...{layout-Klo12PD4.js => layout-WkuL70g8.js} | 2 +- ...SwnP6Sr8.js => mermaid-vendor-d7rbry5E.js} | 8 +++---- ...> mindmap-definition-ALO5MXBD-BQ2T_hsy.js} | 2 +- ...ycz.js => pieDiagram-IB7DONF6-DrMdtRDI.js} | 2 +- ...s => quadrantDiagram-7GDLP6J5-C56WKFyP.js} | 2 +- ...CihkADAx.js => radar-MK3ICKWK-zkXzSXFe.js} | 2 +- ...> requirementDiagram-KVF5MWMF-CtVTOxeE.js} | 2 +- ....js => sankeyDiagram-QLVOVGJD-CSLnqTKw.js} | 2 +- ...s => sequenceDiagram-X6HHIX6F-D6_yAdcj.js} | 2 +- ...-.js => stateDiagram-DGXRK772-BGTY-Rrs.js} | 2 +- ...s => stateDiagram-v2-YXO3MK2T-C15fufgb.js} | 2 +- ... timeline-definition-BDJGKUSR-DdDk7fsZ.js} | 2 +- ...js => xychartDiagram-VJFVF3MP-B3pR2K46.js} | 2 +- lightrag/api/webui/index.html | 12 +++++----- 46 files changed, 71 insertions(+), 71 deletions(-) rename lightrag/api/webui/assets/{_basePickBy--_O36kXE.js => _basePickBy-Lz6agtdo.js} (95%) rename lightrag/api/webui/assets/{_baseUniq-D81M49Y6.js => _baseUniq-OtJ11HbN.js} (98%) rename lightrag/api/webui/assets/{architectureDiagram-IEHRJDOE-Ba9Io2eo.js => architectureDiagram-IEHRJDOE-DuLLpJMS.js} (99%) rename lightrag/api/webui/assets/{blockDiagram-JOT3LUYC-Ca9NC-96.js => blockDiagram-JOT3LUYC-l6jPCNSl.js} (99%) rename lightrag/api/webui/assets/{c4Diagram-VJAJSXHY-DhTcycAT.js => c4Diagram-VJAJSXHY-B78G2kZD.js} (99%) rename lightrag/api/webui/assets/{chunk-4BMEZGHF-M5QBFtoC.js => chunk-4BMEZGHF-Ct0jZH9M.js} (78%) rename lightrag/api/webui/assets/{chunk-A2AXSNBT-CTXPIZDs.js => chunk-A2AXSNBT-CvfQgLmG.js} (99%) rename lightrag/api/webui/assets/{chunk-AEK57VVT-BRJnVklE.js => chunk-AEK57VVT-ZyE42AjE.js} (99%) rename lightrag/api/webui/assets/{chunk-D6G4REZN-CO4Tk6j6.js => chunk-D6G4REZN-CQqXYBrW.js} (95%) rename lightrag/api/webui/assets/{chunk-RZ5BOZE2-vCqEaZEa.js => chunk-RZ5BOZE2-C762jHXr.js} (81%) rename lightrag/api/webui/assets/{chunk-XZIHB7SX-BjHVUYBP.js => chunk-XZIHB7SX-CqkuoyXD.js} (67%) rename lightrag/api/webui/assets/{classDiagram-GIVACNV2-DUFHlr92.js => classDiagram-GIVACNV2-Bx6IdAZy.js} (61%) rename lightrag/api/webui/assets/{classDiagram-v2-COTLJTTW-DUFHlr92.js => classDiagram-v2-COTLJTTW-Bx6IdAZy.js} (61%) delete mode 100644 lightrag/api/webui/assets/clone-BHIBWXu-.js create mode 100644 lightrag/api/webui/assets/clone-vL6XIcCC.js rename lightrag/api/webui/assets/{dagre-OKDRZEBW-hl_RTy2g.js => dagre-OKDRZEBW-K3MoIKXh.js} (97%) rename lightrag/api/webui/assets/{diagram-SSKATNLV-prPjpZ5y.js => diagram-SSKATNLV-C3O8bk3b.js} (93%) rename lightrag/api/webui/assets/{diagram-VNBRO52H-CpzL1-Is.js => diagram-VNBRO52H-DXx0iDIJ.js} (90%) rename lightrag/api/webui/assets/{erDiagram-Q7BY3M3F-CAraTg_G.js => erDiagram-Q7BY3M3F-DQX4VtAS.js} (99%) rename lightrag/api/webui/assets/{feature-documents-BKQZIcI6.js => feature-documents-ClbgnjXg.js} (99%) rename lightrag/api/webui/assets/{feature-graph-D6-O-kXP.js => feature-graph-DbHHHM9y.js} (83%) rename lightrag/api/webui/assets/{feature-retrieval-wTZcnY1B.js => feature-retrieval-zozGWnLh.js} (99%) rename lightrag/api/webui/assets/{flowDiagram-4HSFHLVR-DC7cFb2q.js => flowDiagram-4HSFHLVR-CtTg4KvT.js} (99%) rename lightrag/api/webui/assets/{ganttDiagram-APWFNJXF-CkKq4NOY.js => ganttDiagram-APWFNJXF-DPZeRkyR.js} (99%) rename lightrag/api/webui/assets/{gitGraphDiagram-7IBYFJ6S-C7t9VG9x.js => gitGraphDiagram-7IBYFJ6S-fIZu_S0j.js} (98%) rename lightrag/api/webui/assets/{graph-CmqUPRtj.js => graph-DexVwBa8.js} (97%) rename lightrag/api/webui/assets/{index-m6I92ZpT.js => index-BLBnmXUl.js} (93%) create mode 100644 lightrag/api/webui/assets/index-C3vR7z2U.css delete mode 100644 lightrag/api/webui/assets/index-CM0YrL-d.css rename lightrag/api/webui/assets/{infoDiagram-PH2N3AL5-C4VRyMR4.js => infoDiagram-PH2N3AL5-Bexk_QKW.js} (61%) rename lightrag/api/webui/assets/{journeyDiagram-U35MCT3I-YPalBptu.js => journeyDiagram-U35MCT3I-Drj8e4jk.js} (99%) rename lightrag/api/webui/assets/{kanban-definition-NDS4AKOZ-DDoftzBy.js => kanban-definition-NDS4AKOZ-ZF435Bcq.js} (99%) rename lightrag/api/webui/assets/{layout-Klo12PD4.js => layout-WkuL70g8.js} (99%) rename lightrag/api/webui/assets/{mermaid-vendor-SwnP6Sr8.js => mermaid-vendor-d7rbry5E.js} (99%) rename lightrag/api/webui/assets/{mindmap-definition-ALO5MXBD-DGAXVsL1.js => mindmap-definition-ALO5MXBD-BQ2T_hsy.js} (99%) rename lightrag/api/webui/assets/{pieDiagram-IB7DONF6-B0cIkycz.js => pieDiagram-IB7DONF6-DrMdtRDI.js} (91%) rename lightrag/api/webui/assets/{quadrantDiagram-7GDLP6J5-zmngfYyO.js => quadrantDiagram-7GDLP6J5-C56WKFyP.js} (99%) rename lightrag/api/webui/assets/{radar-MK3ICKWK-CihkADAx.js => radar-MK3ICKWK-zkXzSXFe.js} (99%) rename lightrag/api/webui/assets/{requirementDiagram-KVF5MWMF-A4JwVpFF.js => requirementDiagram-KVF5MWMF-CtVTOxeE.js} (99%) rename lightrag/api/webui/assets/{sankeyDiagram-QLVOVGJD-DkTUSo82.js => sankeyDiagram-QLVOVGJD-CSLnqTKw.js} (99%) rename lightrag/api/webui/assets/{sequenceDiagram-X6HHIX6F-hDfAwQVw.js => sequenceDiagram-X6HHIX6F-D6_yAdcj.js} (99%) rename lightrag/api/webui/assets/{stateDiagram-DGXRK772-CcL234E-.js => stateDiagram-DGXRK772-BGTY-Rrs.js} (96%) rename lightrag/api/webui/assets/{stateDiagram-v2-YXO3MK2T-BnpIGSVY.js => stateDiagram-v2-YXO3MK2T-C15fufgb.js} (61%) rename lightrag/api/webui/assets/{timeline-definition-BDJGKUSR-CFveliQS.js => timeline-definition-BDJGKUSR-DdDk7fsZ.js} (99%) rename lightrag/api/webui/assets/{xychartDiagram-VJFVF3MP-5OclOI0o.js => xychartDiagram-VJFVF3MP-B3pR2K46.js} (99%) diff --git a/lightrag/api/webui/assets/_basePickBy--_O36kXE.js b/lightrag/api/webui/assets/_basePickBy-Lz6agtdo.js similarity index 95% rename from lightrag/api/webui/assets/_basePickBy--_O36kXE.js rename to lightrag/api/webui/assets/_basePickBy-Lz6agtdo.js index 4dc1549b..d7070fe5 100644 --- a/lightrag/api/webui/assets/_basePickBy--_O36kXE.js +++ b/lightrag/api/webui/assets/_basePickBy-Lz6agtdo.js @@ -1 +1 @@ -import{e as v,c as b,g as m,k as O,h as P,j as p,l as w,m as c,n as x,t as A,o as N}from"./_baseUniq-D81M49Y6.js";import{aU as g,aq as _,aV as $,aW as E,aX as F,aY as I,aZ as M,a_ as y,a$ as B,b0 as T}from"./mermaid-vendor-SwnP6Sr8.js";var S=/\s/;function q(n){for(var r=n.length;r--&&S.test(n.charAt(r)););return r}var G=/^\s+/;function H(n){return n&&n.slice(0,q(n)+1).replace(G,"")}var o=NaN,L=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,W=/^0o[0-7]+$/i,X=parseInt;function Y(n){if(typeof n=="number")return n;if(v(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=H(n);var t=R.test(n);return t||W.test(n)?X(n.slice(2),t?2:8):L.test(n)?o:+n}var z=1/0,C=17976931348623157e292;function K(n){if(!n)return n===0?n:0;if(n=Y(n),n===z||n===-1/0){var r=n<0?-1:1;return r*C}return n===n?n:0}function U(n){var r=K(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var l=Object.prototype,Z=l.hasOwnProperty,dn=_(function(n,r){n=Object(n);var t=-1,e=r.length,a=e>2?r[2]:void 0;for(a&&$(r[0],r[1],a)&&(e=1);++t-1?a[f?r[i]:i]:void 0}}var J=Math.max;function Q(n,r,t){var e=n==null?0:n.length;if(!e)return-1;var a=t==null?0:U(t);return a<0&&(a=J(e+a,0)),P(n,m(r),a)}var hn=D(Q);function V(n,r){var t=-1,e=I(n)?Array(n.length):[];return p(n,function(a,f,i){e[++t]=r(a,f,i)}),e}function gn(n,r){var t=M(n)?w:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&c(n,r,nn)}function rn(n,r){return n2?r[2]:void 0;for(a&&$(r[0],r[1],a)&&(e=1);++t-1?a[f?r[i]:i]:void 0}}var J=Math.max;function Q(n,r,t){var e=n==null?0:n.length;if(!e)return-1;var a=t==null?0:U(t);return a<0&&(a=J(e+a,0)),P(n,m(r),a)}var hn=D(Q);function V(n,r){var t=-1,e=I(n)?Array(n.length):[];return p(n,function(a,f,i){e[++t]=r(a,f,i)}),e}function gn(n,r){var t=M(n)?w:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&c(n,r,nn)}function rn(n,r){return n-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||B(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||B(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&es))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new I}else u=r?[]:s;n:for(;++t-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||B(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||B(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&es))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new I}else u=r?[]:s;n:for(;++ts?(this.rect.x-=(this.labelWidth-s)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(s+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(o+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>o?(this.rect.y-=(this.labelHeight-o)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(o+this.labelHeight))}}},i.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==l.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},i.prototype.transform=function(t){var s=this.rect.x;s>r.WORLD_BOUNDARY?s=r.WORLD_BOUNDARY:s<-r.WORLD_BOUNDARY&&(s=-r.WORLD_BOUNDARY);var o=this.rect.y;o>r.WORLD_BOUNDARY?o=r.WORLD_BOUNDARY:o<-r.WORLD_BOUNDARY&&(o=-r.WORLD_BOUNDARY);var c=new f(s,o),h=t.inverseTransformPoint(c);this.setLocation(h.x,h.y)},i.prototype.getLeft=function(){return this.rect.x},i.prototype.getRight=function(){return this.rect.x+this.rect.width},i.prototype.getTop=function(){return this.rect.y},i.prototype.getBottom=function(){return this.rect.y+this.rect.height},i.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},A.exports=i},function(A,G,L){var u=L(0);function l(){}for(var n in u)l[n]=u[n];l.MAX_ITERATIONS=2500,l.DEFAULT_EDGE_LENGTH=50,l.DEFAULT_SPRING_STRENGTH=.45,l.DEFAULT_REPULSION_STRENGTH=4500,l.DEFAULT_GRAVITY_STRENGTH=.4,l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,l.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,l.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,l.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,l.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,l.COOLING_ADAPTATION_FACTOR=.33,l.ADAPTATION_LOWER_NODE_LIMIT=1e3,l.ADAPTATION_UPPER_NODE_LIMIT=5e3,l.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,l.MAX_NODE_DISPLACEMENT=l.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,l.MIN_REPULSION_DIST=l.DEFAULT_EDGE_LENGTH/10,l.CONVERGENCE_CHECK_PERIOD=100,l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,l.MIN_EDGE_LENGTH=1,l.GRID_CALCULATION_CHECK_PERIOD=10,A.exports=l},function(A,G,L){function u(l,n){l==null&&n==null?(this.x=0,this.y=0):(this.x=l,this.y=n)}u.prototype.getX=function(){return this.x},u.prototype.getY=function(){return this.y},u.prototype.setX=function(l){this.x=l},u.prototype.setY=function(l){this.y=l},u.prototype.getDifference=function(l){return new DimensionD(this.x-l.x,this.y-l.y)},u.prototype.getCopy=function(){return new u(this.x,this.y)},u.prototype.translate=function(l){return this.x+=l.width,this.y+=l.height,this},A.exports=u},function(A,G,L){var u=L(2),l=L(10),n=L(0),r=L(7),e=L(3),f=L(1),i=L(13),g=L(12),t=L(11);function s(c,h,T){u.call(this,T),this.estimatedSize=l.MIN_VALUE,this.margin=n.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=c,h!=null&&h instanceof r?this.graphManager=h:h!=null&&h instanceof Layout&&(this.graphManager=h.graphManager)}s.prototype=Object.create(u.prototype);for(var o in u)s[o]=u[o];s.prototype.getNodes=function(){return this.nodes},s.prototype.getEdges=function(){return this.edges},s.prototype.getGraphManager=function(){return this.graphManager},s.prototype.getParent=function(){return this.parent},s.prototype.getLeft=function(){return this.left},s.prototype.getRight=function(){return this.right},s.prototype.getTop=function(){return this.top},s.prototype.getBottom=function(){return this.bottom},s.prototype.isConnected=function(){return this.isConnected},s.prototype.add=function(c,h,T){if(h==null&&T==null){var v=c;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(v)>-1)throw"Node already in graph!";return v.owner=this,this.getNodes().push(v),v}else{var d=c;if(!(this.getNodes().indexOf(h)>-1&&this.getNodes().indexOf(T)>-1))throw"Source or target not in graph!";if(!(h.owner==T.owner&&h.owner==this))throw"Both owners must be this graph!";return h.owner!=T.owner?null:(d.source=h,d.target=T,d.isInterGraph=!1,this.getEdges().push(d),h.edges.push(d),T!=h&&T.edges.push(d),d)}},s.prototype.remove=function(c){var h=c;if(c instanceof e){if(h==null)throw"Node is null!";if(!(h.owner!=null&&h.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var T=h.edges.slice(),v,d=T.length,N=0;N-1&&P>-1))throw"Source and/or target doesn't know this edge!";v.source.edges.splice(M,1),v.target!=v.source&&v.target.edges.splice(P,1);var S=v.source.owner.getEdges().indexOf(v);if(S==-1)throw"Not in owner's edge list!";v.source.owner.getEdges().splice(S,1)}},s.prototype.updateLeftTop=function(){for(var c=l.MAX_VALUE,h=l.MAX_VALUE,T,v,d,N=this.getNodes(),S=N.length,M=0;MT&&(c=T),h>v&&(h=v)}return c==l.MAX_VALUE?null:(N[0].getParent().paddingLeft!=null?d=N[0].getParent().paddingLeft:d=this.margin,this.left=h-d,this.top=c-d,new g(this.left,this.top))},s.prototype.updateBounds=function(c){for(var h=l.MAX_VALUE,T=-l.MAX_VALUE,v=l.MAX_VALUE,d=-l.MAX_VALUE,N,S,M,P,K,X=this.nodes,k=X.length,D=0;DN&&(h=N),TM&&(v=M),dN&&(h=N),TM&&(v=M),d=this.nodes.length){var k=0;T.forEach(function(D){D.owner==c&&k++}),k==this.nodes.length&&(this.isConnected=!0)}},A.exports=s},function(A,G,L){var u,l=L(1);function n(r){u=L(6),this.layout=r,this.graphs=[],this.edges=[]}n.prototype.addRoot=function(){var r=this.layout.newGraph(),e=this.layout.newNode(null),f=this.add(r,e);return this.setRootGraph(f),this.rootGraph},n.prototype.add=function(r,e,f,i,g){if(f==null&&i==null&&g==null){if(r==null)throw"Graph is null!";if(e==null)throw"Parent node is null!";if(this.graphs.indexOf(r)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(r),r.parent!=null)throw"Already has a parent!";if(e.child!=null)throw"Already has a child!";return r.parent=e,e.child=r,r}else{g=f,i=e,f=r;var t=i.getOwner(),s=g.getOwner();if(!(t!=null&&t.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(s!=null&&s.getGraphManager()==this))throw"Target not in this graph mgr!";if(t==s)return f.isInterGraph=!1,t.add(f,i,g);if(f.isInterGraph=!0,f.source=i,f.target=g,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},n.prototype.remove=function(r){if(r instanceof u){var e=r;if(e.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(e==this.rootGraph||e.parent!=null&&e.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(e.getEdges());for(var i,g=f.length,t=0;t=r.getRight()?e[0]+=Math.min(r.getX()-n.getX(),n.getRight()-r.getRight()):r.getX()<=n.getX()&&r.getRight()>=n.getRight()&&(e[0]+=Math.min(n.getX()-r.getX(),r.getRight()-n.getRight())),n.getY()<=r.getY()&&n.getBottom()>=r.getBottom()?e[1]+=Math.min(r.getY()-n.getY(),n.getBottom()-r.getBottom()):r.getY()<=n.getY()&&r.getBottom()>=n.getBottom()&&(e[1]+=Math.min(n.getY()-r.getY(),r.getBottom()-n.getBottom()));var g=Math.abs((r.getCenterY()-n.getCenterY())/(r.getCenterX()-n.getCenterX()));r.getCenterY()===n.getCenterY()&&r.getCenterX()===n.getCenterX()&&(g=1);var t=g*e[0],s=e[1]/g;e[0]t)return e[0]=f,e[1]=o,e[2]=g,e[3]=X,!1;if(ig)return e[0]=s,e[1]=i,e[2]=P,e[3]=t,!1;if(fg?(e[0]=h,e[1]=T,a=!0):(e[0]=c,e[1]=o,a=!0):p===y&&(f>g?(e[0]=s,e[1]=o,a=!0):(e[0]=v,e[1]=T,a=!0)),-E===y?g>f?(e[2]=K,e[3]=X,m=!0):(e[2]=P,e[3]=M,m=!0):E===y&&(g>f?(e[2]=S,e[3]=M,m=!0):(e[2]=k,e[3]=X,m=!0)),a&&m)return!1;if(f>g?i>t?(I=this.getCardinalDirection(p,y,4),w=this.getCardinalDirection(E,y,2)):(I=this.getCardinalDirection(-p,y,3),w=this.getCardinalDirection(-E,y,1)):i>t?(I=this.getCardinalDirection(-p,y,1),w=this.getCardinalDirection(-E,y,3)):(I=this.getCardinalDirection(p,y,2),w=this.getCardinalDirection(E,y,4)),!a)switch(I){case 1:W=o,R=f+-N/y,e[0]=R,e[1]=W;break;case 2:R=v,W=i+d*y,e[0]=R,e[1]=W;break;case 3:W=T,R=f+N/y,e[0]=R,e[1]=W;break;case 4:R=h,W=i+-d*y,e[0]=R,e[1]=W;break}if(!m)switch(w){case 1:q=M,x=g+-rt/y,e[2]=x,e[3]=q;break;case 2:x=k,q=t+D*y,e[2]=x,e[3]=q;break;case 3:q=X,x=g+rt/y,e[2]=x,e[3]=q;break;case 4:x=K,q=t+-D*y,e[2]=x,e[3]=q;break}}return!1},l.getCardinalDirection=function(n,r,e){return n>r?e:1+e%4},l.getIntersection=function(n,r,e,f){if(f==null)return this.getIntersection2(n,r,e);var i=n.x,g=n.y,t=r.x,s=r.y,o=e.x,c=e.y,h=f.x,T=f.y,v=void 0,d=void 0,N=void 0,S=void 0,M=void 0,P=void 0,K=void 0,X=void 0,k=void 0;return N=s-g,M=i-t,K=t*g-i*s,S=T-c,P=o-h,X=h*c-o*T,k=N*P-S*M,k===0?null:(v=(M*X-P*K)/k,d=(S*K-N*X)/k,new u(v,d))},l.angleOfVector=function(n,r,e,f){var i=void 0;return n!==e?(i=Math.atan((f-r)/(e-n)),e=0){var T=(-o+Math.sqrt(o*o-4*s*c))/(2*s),v=(-o-Math.sqrt(o*o-4*s*c))/(2*s),d=null;return T>=0&&T<=1?[T]:v>=0&&v<=1?[v]:d}else return null},l.HALF_PI=.5*Math.PI,l.ONE_AND_HALF_PI=1.5*Math.PI,l.TWO_PI=2*Math.PI,l.THREE_PI=3*Math.PI,A.exports=l},function(A,G,L){function u(){}u.sign=function(l){return l>0?1:l<0?-1:0},u.floor=function(l){return l<0?Math.ceil(l):Math.floor(l)},u.ceil=function(l){return l<0?Math.floor(l):Math.ceil(l)},A.exports=u},function(A,G,L){function u(){}u.MAX_VALUE=2147483647,u.MIN_VALUE=-2147483648,A.exports=u},function(A,G,L){var u=function(){function i(g,t){for(var s=0;s"u"?"undefined":u(n);return n==null||r!="object"&&r!="function"},A.exports=l},function(A,G,L){function u(o){if(Array.isArray(o)){for(var c=0,h=Array(o.length);c0&&c;){for(N.push(M[0]);N.length>0&&c;){var P=N[0];N.splice(0,1),d.add(P);for(var K=P.getEdges(),v=0;v-1&&M.splice(rt,1)}d=new Set,S=new Map}}return o},s.prototype.createDummyNodesForBendpoints=function(o){for(var c=[],h=o.source,T=this.graphManager.calcLowestCommonAncestor(o.source,o.target),v=0;v0){for(var T=this.edgeToDummyNodes.get(h),v=0;v=0&&c.splice(X,1);var k=S.getNeighborsList();k.forEach(function(a){if(h.indexOf(a)<0){var m=T.get(a),p=m-1;p==1&&P.push(a),T.set(a,p)}})}h=h.concat(P),(c.length==1||c.length==2)&&(v=!0,d=c[0])}return d},s.prototype.setGraphManager=function(o){this.graphManager=o},A.exports=s},function(A,G,L){function u(){}u.seed=1,u.x=0,u.nextDouble=function(){return u.x=Math.sin(u.seed++)*1e4,u.x-Math.floor(u.x)},A.exports=u},function(A,G,L){var u=L(5);function l(n,r){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}l.prototype.getWorldOrgX=function(){return this.lworldOrgX},l.prototype.setWorldOrgX=function(n){this.lworldOrgX=n},l.prototype.getWorldOrgY=function(){return this.lworldOrgY},l.prototype.setWorldOrgY=function(n){this.lworldOrgY=n},l.prototype.getWorldExtX=function(){return this.lworldExtX},l.prototype.setWorldExtX=function(n){this.lworldExtX=n},l.prototype.getWorldExtY=function(){return this.lworldExtY},l.prototype.setWorldExtY=function(n){this.lworldExtY=n},l.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},l.prototype.setDeviceOrgX=function(n){this.ldeviceOrgX=n},l.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},l.prototype.setDeviceOrgY=function(n){this.ldeviceOrgY=n},l.prototype.getDeviceExtX=function(){return this.ldeviceExtX},l.prototype.setDeviceExtX=function(n){this.ldeviceExtX=n},l.prototype.getDeviceExtY=function(){return this.ldeviceExtY},l.prototype.setDeviceExtY=function(n){this.ldeviceExtY=n},l.prototype.transformX=function(n){var r=0,e=this.lworldExtX;return e!=0&&(r=this.ldeviceOrgX+(n-this.lworldOrgX)*this.ldeviceExtX/e),r},l.prototype.transformY=function(n){var r=0,e=this.lworldExtY;return e!=0&&(r=this.ldeviceOrgY+(n-this.lworldOrgY)*this.ldeviceExtY/e),r},l.prototype.inverseTransformX=function(n){var r=0,e=this.ldeviceExtX;return e!=0&&(r=this.lworldOrgX+(n-this.ldeviceOrgX)*this.lworldExtX/e),r},l.prototype.inverseTransformY=function(n){var r=0,e=this.ldeviceExtY;return e!=0&&(r=this.lworldOrgY+(n-this.ldeviceOrgY)*this.lworldExtY/e),r},l.prototype.inverseTransformPoint=function(n){var r=new u(this.inverseTransformX(n.x),this.inverseTransformY(n.y));return r},A.exports=l},function(A,G,L){function u(t){if(Array.isArray(t)){for(var s=0,o=Array(t.length);sn.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*n.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-n.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>n.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(n.COOLING_ADAPTATION_FACTOR,1-(t-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*(1-n.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*n.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},i.prototype.calcSpringForces=function(){for(var t=this.getAllEdges(),s,o=0;o0&&arguments[0]!==void 0?arguments[0]:!0,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,o,c,h,T,v=this.getAllNodes(),d;if(this.useFRGridVariant)for(this.totalIterations%n.GRID_CALCULATION_CHECK_PERIOD==1&&t&&this.updateGrid(),d=new Set,o=0;oN||d>N)&&(t.gravitationForceX=-this.gravityConstant*h,t.gravitationForceY=-this.gravityConstant*T)):(N=s.getEstimatedSize()*this.compoundGravityRangeFactor,(v>N||d>N)&&(t.gravitationForceX=-this.gravityConstant*h*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*T*this.compoundGravityConstant))},i.prototype.isConverged=function(){var t,s=!1;return this.totalIterations>this.maxIterations/3&&(s=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement=v.length||N>=v[0].length)){for(var S=0;Si}}]),e}();A.exports=r},function(A,G,L){function u(){}u.svd=function(l){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=l.length,this.n=l[0].length;var n=Math.min(this.m,this.n);this.s=function(Nt){for(var Mt=[];Nt-- >0;)Mt.push(0);return Mt}(Math.min(this.m+1,this.n)),this.U=function(Nt){var Mt=function Zt(Gt){if(Gt.length==0)return 0;for(var $t=[],Ft=0;Ft0;)Mt.push(0);return Mt}(this.n),e=function(Nt){for(var Mt=[];Nt-- >0;)Mt.push(0);return Mt}(this.m),f=!0,i=Math.min(this.m-1,this.n),g=Math.max(0,Math.min(this.n-2,this.m)),t=0;t=0;E--)if(this.s[E]!==0){for(var y=E+1;y=0;V--){if(function(Nt,Mt){return Nt&&Mt}(V0;){var J=void 0,Rt=void 0;for(J=a-2;J>=-1&&J!==-1;J--)if(Math.abs(r[J])<=lt+_*(Math.abs(this.s[J])+Math.abs(this.s[J+1]))){r[J]=0;break}if(J===a-2)Rt=4;else{var Lt=void 0;for(Lt=a-1;Lt>=J&&Lt!==J;Lt--){var vt=(Lt!==a?Math.abs(r[Lt]):0)+(Lt!==J+1?Math.abs(r[Lt-1]):0);if(Math.abs(this.s[Lt])<=lt+_*vt){this.s[Lt]=0;break}}Lt===J?Rt=3:Lt===a-1?Rt=1:(Rt=2,J=Lt)}switch(J++,Rt){case 1:{var it=r[a-2];r[a-2]=0;for(var gt=a-2;gt>=J;gt--){var Tt=u.hypot(this.s[gt],it),At=this.s[gt]/Tt,Dt=it/Tt;this.s[gt]=Tt,gt!==J&&(it=-Dt*r[gt-1],r[gt-1]=At*r[gt-1]);for(var mt=0;mt=this.s[J+1]);){var Ct=this.s[J];if(this.s[J]=this.s[J+1],this.s[J+1]=Ct,JMath.abs(n)?(r=n/l,r=Math.abs(l)*Math.sqrt(1+r*r)):n!=0?(r=l/n,r=Math.abs(n)*Math.sqrt(1+r*r)):r=0,r},A.exports=u},function(A,G,L){var u=function(){function r(e,f){for(var i=0;i2&&arguments[2]!==void 0?arguments[2]:1,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;l(this,r),this.sequence1=e,this.sequence2=f,this.match_score=i,this.mismatch_penalty=g,this.gap_penalty=t,this.iMax=e.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var s=0;s=0;e--){var f=this.listeners[e];f.event===n&&f.callback===r&&this.listeners.splice(e,1)}},l.emit=function(n,r){for(var e=0;e{var G={45:(n,r,e)=>{var f={};f.layoutBase=e(551),f.CoSEConstants=e(806),f.CoSEEdge=e(767),f.CoSEGraph=e(880),f.CoSEGraphManager=e(578),f.CoSELayout=e(765),f.CoSENode=e(991),f.ConstraintHandler=e(902),n.exports=f},806:(n,r,e)=>{var f=e(551).FDLayoutConstants;function i(){}for(var g in f)i[g]=f[g];i.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,i.DEFAULT_RADIAL_SEPARATION=f.DEFAULT_EDGE_LENGTH,i.DEFAULT_COMPONENT_SEPERATION=60,i.TILE=!0,i.TILING_PADDING_VERTICAL=10,i.TILING_PADDING_HORIZONTAL=10,i.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,i.ENFORCE_CONSTRAINTS=!0,i.APPLY_LAYOUT=!0,i.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,i.TREE_REDUCTION_ON_INCREMENTAL=!0,i.PURE_INCREMENTAL=i.DEFAULT_INCREMENTAL,n.exports=i},767:(n,r,e)=>{var f=e(551).FDLayoutEdge;function i(t,s,o){f.call(this,t,s,o)}i.prototype=Object.create(f.prototype);for(var g in f)i[g]=f[g];n.exports=i},880:(n,r,e)=>{var f=e(551).LGraph;function i(t,s,o){f.call(this,t,s,o)}i.prototype=Object.create(f.prototype);for(var g in f)i[g]=f[g];n.exports=i},578:(n,r,e)=>{var f=e(551).LGraphManager;function i(t){f.call(this,t)}i.prototype=Object.create(f.prototype);for(var g in f)i[g]=f[g];n.exports=i},765:(n,r,e)=>{var f=e(551).FDLayout,i=e(578),g=e(880),t=e(991),s=e(767),o=e(806),c=e(902),h=e(551).FDLayoutConstants,T=e(551).LayoutConstants,v=e(551).Point,d=e(551).PointD,N=e(551).DimensionD,S=e(551).Layout,M=e(551).Integer,P=e(551).IGeometry,K=e(551).LGraph,X=e(551).Transform,k=e(551).LinkedList;function D(){f.call(this),this.toBeTiled={},this.constraints={}}D.prototype=Object.create(f.prototype);for(var rt in f)D[rt]=f[rt];D.prototype.newGraphManager=function(){var a=new i(this);return this.graphManager=a,a},D.prototype.newGraph=function(a){return new g(null,this.graphManager,a)},D.prototype.newNode=function(a){return new t(this.graphManager,a)},D.prototype.newEdge=function(a){return new s(null,null,a)},D.prototype.initParameters=function(){f.prototype.initParameters.call(this,arguments),this.isSubLayout||(o.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=o.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=o.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=h.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=h.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=h.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=h.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},D.prototype.initSpringEmbedder=function(){f.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/h.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},D.prototype.layout=function(){var a=T.DEFAULT_CREATE_BENDS_AS_NEEDED;return a&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},D.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(o.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var m=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(I){return m.has(I)});this.graphManager.setAllNodesToApplyGravitation(p)}}else{var a=this.getFlatForest();if(a.length>0)this.positionNodesRadially(a);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var m=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(E){return m.has(E)});this.graphManager.setAllNodesToApplyGravitation(p),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(c.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),o.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},D.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%h.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var a=new Set(this.getAllNodes()),m=this.nodesWithGravity.filter(function(y){return a.has(y)});this.graphManager.setAllNodesToApplyGravitation(m),this.graphManager.updateBounds(),this.updateGrid(),o.PURE_INCREMENTAL?this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),o.PURE_INCREMENTAL?this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var p=!this.isTreeGrowing&&!this.isGrowthFinished,E=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(p,E),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},D.prototype.getPositionsData=function(){for(var a=this.graphManager.getAllNodes(),m={},p=0;p0&&this.updateDisplacements();for(var p=0;p0&&(E.fixedNodeWeight=I)}}if(this.constraints.relativePlacementConstraint){var w=new Map,R=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(O){a.fixedNodesOnHorizontal.add(O),a.fixedNodesOnVertical.add(O)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var W=this.constraints.alignmentConstraint.vertical,p=0;p=2*O.length/3;_--)H=Math.floor(Math.random()*(_+1)),B=O[_],O[_]=O[H],O[H]=B;return O},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(O){if(O.left){var H=w.has(O.left)?w.get(O.left):O.left,B=w.has(O.right)?w.get(O.right):O.right;a.nodesInRelativeHorizontal.includes(H)||(a.nodesInRelativeHorizontal.push(H),a.nodeToRelativeConstraintMapHorizontal.set(H,[]),a.dummyToNodeForVerticalAlignment.has(H)?a.nodeToTempPositionMapHorizontal.set(H,a.idToNodeMap.get(a.dummyToNodeForVerticalAlignment.get(H)[0]).getCenterX()):a.nodeToTempPositionMapHorizontal.set(H,a.idToNodeMap.get(H).getCenterX())),a.nodesInRelativeHorizontal.includes(B)||(a.nodesInRelativeHorizontal.push(B),a.nodeToRelativeConstraintMapHorizontal.set(B,[]),a.dummyToNodeForVerticalAlignment.has(B)?a.nodeToTempPositionMapHorizontal.set(B,a.idToNodeMap.get(a.dummyToNodeForVerticalAlignment.get(B)[0]).getCenterX()):a.nodeToTempPositionMapHorizontal.set(B,a.idToNodeMap.get(B).getCenterX())),a.nodeToRelativeConstraintMapHorizontal.get(H).push({right:B,gap:O.gap}),a.nodeToRelativeConstraintMapHorizontal.get(B).push({left:H,gap:O.gap})}else{var _=R.has(O.top)?R.get(O.top):O.top,lt=R.has(O.bottom)?R.get(O.bottom):O.bottom;a.nodesInRelativeVertical.includes(_)||(a.nodesInRelativeVertical.push(_),a.nodeToRelativeConstraintMapVertical.set(_,[]),a.dummyToNodeForHorizontalAlignment.has(_)?a.nodeToTempPositionMapVertical.set(_,a.idToNodeMap.get(a.dummyToNodeForHorizontalAlignment.get(_)[0]).getCenterY()):a.nodeToTempPositionMapVertical.set(_,a.idToNodeMap.get(_).getCenterY())),a.nodesInRelativeVertical.includes(lt)||(a.nodesInRelativeVertical.push(lt),a.nodeToRelativeConstraintMapVertical.set(lt,[]),a.dummyToNodeForHorizontalAlignment.has(lt)?a.nodeToTempPositionMapVertical.set(lt,a.idToNodeMap.get(a.dummyToNodeForHorizontalAlignment.get(lt)[0]).getCenterY()):a.nodeToTempPositionMapVertical.set(lt,a.idToNodeMap.get(lt).getCenterY())),a.nodeToRelativeConstraintMapVertical.get(_).push({bottom:lt,gap:O.gap}),a.nodeToRelativeConstraintMapVertical.get(lt).push({top:_,gap:O.gap})}});else{var q=new Map,V=new Map;this.constraints.relativePlacementConstraint.forEach(function(O){if(O.left){var H=w.has(O.left)?w.get(O.left):O.left,B=w.has(O.right)?w.get(O.right):O.right;q.has(H)?q.get(H).push(B):q.set(H,[B]),q.has(B)?q.get(B).push(H):q.set(B,[H])}else{var _=R.has(O.top)?R.get(O.top):O.top,lt=R.has(O.bottom)?R.get(O.bottom):O.bottom;V.has(_)?V.get(_).push(lt):V.set(_,[lt]),V.has(lt)?V.get(lt).push(_):V.set(lt,[_])}});var Y=function(H,B){var _=[],lt=[],J=new k,Rt=new Set,Lt=0;return H.forEach(function(vt,it){if(!Rt.has(it)){_[Lt]=[],lt[Lt]=!1;var gt=it;for(J.push(gt),Rt.add(gt),_[Lt].push(gt);J.length!=0;){gt=J.shift(),B.has(gt)&&(lt[Lt]=!0);var Tt=H.get(gt);Tt.forEach(function(At){Rt.has(At)||(J.push(At),Rt.add(At),_[Lt].push(At))})}Lt++}}),{components:_,isFixed:lt}},et=Y(q,a.fixedNodesOnHorizontal);this.componentsOnHorizontal=et.components,this.fixedComponentsOnHorizontal=et.isFixed;var z=Y(V,a.fixedNodesOnVertical);this.componentsOnVertical=z.components,this.fixedComponentsOnVertical=z.isFixed}}},D.prototype.updateDisplacements=function(){var a=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(z){var O=a.idToNodeMap.get(z.nodeId);O.displacementX=0,O.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var m=this.constraints.alignmentConstraint.vertical,p=0;p1){var R;for(R=0;RE&&(E=Math.floor(w.y)),I=Math.floor(w.x+o.DEFAULT_COMPONENT_SEPERATION)}this.transform(new d(T.WORLD_CENTER_X-w.x/2,T.WORLD_CENTER_Y-w.y/2))},D.radialLayout=function(a,m,p){var E=Math.max(this.maxDiagonalInTree(a),o.DEFAULT_RADIAL_SEPARATION);D.branchRadialLayout(m,null,0,359,0,E);var y=K.calculateBounds(a),I=new X;I.setDeviceOrgX(y.getMinX()),I.setDeviceOrgY(y.getMinY()),I.setWorldOrgX(p.x),I.setWorldOrgY(p.y);for(var w=0;w1;){var B=H[0];H.splice(0,1);var _=V.indexOf(B);_>=0&&V.splice(_,1),z--,Y--}m!=null?O=(V.indexOf(H[0])+1)%z:O=0;for(var lt=Math.abs(E-p)/Y,J=O;et!=Y;J=++J%z){var Rt=V[J].getOtherEnd(a);if(Rt!=m){var Lt=(p+et*lt)%360,vt=(Lt+lt)%360;D.branchRadialLayout(Rt,a,Lt,vt,y+I,I),et++}}},D.maxDiagonalInTree=function(a){for(var m=M.MIN_VALUE,p=0;pm&&(m=y)}return m},D.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},D.prototype.groupZeroDegreeMembers=function(){var a=this,m={};this.memberGroups={},this.idToDummyNode={};for(var p=[],E=this.graphManager.getAllNodes(),y=0;y"u"&&(m[R]=[]),m[R]=m[R].concat(I)}Object.keys(m).forEach(function(W){if(m[W].length>1){var x="DummyCompound_"+W;a.memberGroups[x]=m[W];var q=m[W][0].getParent(),V=new t(a.graphManager);V.id=x,V.paddingLeft=q.paddingLeft||0,V.paddingRight=q.paddingRight||0,V.paddingBottom=q.paddingBottom||0,V.paddingTop=q.paddingTop||0,a.idToDummyNode[x]=V;var Y=a.getGraphManager().add(a.newGraph(),V),et=q.getChild();et.add(V);for(var z=0;zy?(E.rect.x-=(E.labelWidth-y)/2,E.setWidth(E.labelWidth),E.labelMarginLeft=(E.labelWidth-y)/2):E.labelPosHorizontal=="right"&&E.setWidth(y+E.labelWidth)),E.labelHeight&&(E.labelPosVertical=="top"?(E.rect.y-=E.labelHeight,E.setHeight(I+E.labelHeight),E.labelMarginTop=E.labelHeight):E.labelPosVertical=="center"&&E.labelHeight>I?(E.rect.y-=(E.labelHeight-I)/2,E.setHeight(E.labelHeight),E.labelMarginTop=(E.labelHeight-I)/2):E.labelPosVertical=="bottom"&&E.setHeight(I+E.labelHeight))}})},D.prototype.repopulateCompounds=function(){for(var a=this.compoundOrder.length-1;a>=0;a--){var m=this.compoundOrder[a],p=m.id,E=m.paddingLeft,y=m.paddingTop,I=m.labelMarginLeft,w=m.labelMarginTop;this.adjustLocations(this.tiledMemberPack[p],m.rect.x,m.rect.y,E,y,I,w)}},D.prototype.repopulateZeroDegreeMembers=function(){var a=this,m=this.tiledZeroDegreePack;Object.keys(m).forEach(function(p){var E=a.idToDummyNode[p],y=E.paddingLeft,I=E.paddingTop,w=E.labelMarginLeft,R=E.labelMarginTop;a.adjustLocations(m[p],E.rect.x,E.rect.y,y,I,w,R)})},D.prototype.getToBeTiled=function(a){var m=a.id;if(this.toBeTiled[m]!=null)return this.toBeTiled[m];var p=a.getChild();if(p==null)return this.toBeTiled[m]=!1,!1;for(var E=p.getNodes(),y=0;y0)return this.toBeTiled[m]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[m]=!1,!1}return this.toBeTiled[m]=!0,!0},D.prototype.getNodeDegree=function(a){a.id;for(var m=a.getEdges(),p=0,E=0;Eq&&(q=Y.rect.height)}p+=q+a.verticalPadding}},D.prototype.tileCompoundMembers=function(a,m){var p=this;this.tiledMemberPack=[],Object.keys(a).forEach(function(E){var y=m[E];if(p.tiledMemberPack[E]=p.tileNodes(a[E],y.paddingLeft+y.paddingRight),y.rect.width=p.tiledMemberPack[E].width,y.rect.height=p.tiledMemberPack[E].height,y.setCenter(p.tiledMemberPack[E].centerX,p.tiledMemberPack[E].centerY),y.labelMarginLeft=0,y.labelMarginTop=0,o.NODE_DIMENSIONS_INCLUDE_LABELS){var I=y.rect.width,w=y.rect.height;y.labelWidth&&(y.labelPosHorizontal=="left"?(y.rect.x-=y.labelWidth,y.setWidth(I+y.labelWidth),y.labelMarginLeft=y.labelWidth):y.labelPosHorizontal=="center"&&y.labelWidth>I?(y.rect.x-=(y.labelWidth-I)/2,y.setWidth(y.labelWidth),y.labelMarginLeft=(y.labelWidth-I)/2):y.labelPosHorizontal=="right"&&y.setWidth(I+y.labelWidth)),y.labelHeight&&(y.labelPosVertical=="top"?(y.rect.y-=y.labelHeight,y.setHeight(w+y.labelHeight),y.labelMarginTop=y.labelHeight):y.labelPosVertical=="center"&&y.labelHeight>w?(y.rect.y-=(y.labelHeight-w)/2,y.setHeight(y.labelHeight),y.labelMarginTop=(y.labelHeight-w)/2):y.labelPosVertical=="bottom"&&y.setHeight(w+y.labelHeight))}})},D.prototype.tileNodes=function(a,m){var p=this.tileNodesByFavoringDim(a,m,!0),E=this.tileNodesByFavoringDim(a,m,!1),y=this.getOrgRatio(p),I=this.getOrgRatio(E),w;return IR&&(R=z.getWidth())});var W=I/y,x=w/y,q=Math.pow(p-E,2)+4*(W+E)*(x+p)*y,V=(E-p+Math.sqrt(q))/(2*(W+E)),Y;m?(Y=Math.ceil(V),Y==V&&Y++):Y=Math.floor(V);var et=Y*(W+E)-E;return R>et&&(et=R),et+=E*2,et},D.prototype.tileNodesByFavoringDim=function(a,m,p){var E=o.TILING_PADDING_VERTICAL,y=o.TILING_PADDING_HORIZONTAL,I=o.TILING_COMPARE_BY,w={rows:[],rowWidth:[],rowHeight:[],width:0,height:m,verticalPadding:E,horizontalPadding:y,centerX:0,centerY:0};I&&(w.idealRowWidth=this.calcIdealRowWidth(a,p));var R=function(O){return O.rect.width*O.rect.height},W=function(O,H){return R(H)-R(O)};a.sort(function(z,O){var H=W;return w.idealRowWidth?(H=I,H(z.id,O.id)):H(z,O)});for(var x=0,q=0,V=0;V0&&(w+=a.horizontalPadding),a.rowWidth[p]=w,a.width0&&(R+=a.verticalPadding);var W=0;R>a.rowHeight[p]&&(W=a.rowHeight[p],a.rowHeight[p]=R,W=a.rowHeight[p]-W),a.height+=W,a.rows[p].push(m)},D.prototype.getShortestRowIndex=function(a){for(var m=-1,p=Number.MAX_VALUE,E=0;Ep&&(m=E,p=a.rowWidth[E]);return m},D.prototype.canAddHorizontal=function(a,m,p){if(a.idealRowWidth){var E=a.rows.length-1,y=a.rowWidth[E];return y+m+a.horizontalPadding<=a.idealRowWidth}var I=this.getShortestRowIndex(a);if(I<0)return!0;var w=a.rowWidth[I];if(w+a.horizontalPadding+m<=a.width)return!0;var R=0;a.rowHeight[I]0&&(R=p+a.verticalPadding-a.rowHeight[I]);var W;a.width-w>=m+a.horizontalPadding?W=(a.height+R)/(w+m+a.horizontalPadding):W=(a.height+R)/a.width,R=p+a.verticalPadding;var x;return a.widthI&&m!=p){E.splice(-1,1),a.rows[p].push(y),a.rowWidth[m]=a.rowWidth[m]-I,a.rowWidth[p]=a.rowWidth[p]+I,a.width=a.rowWidth[instance.getLongestRowIndex(a)];for(var w=Number.MIN_VALUE,R=0;Rw&&(w=E[R].height);m>0&&(w+=a.verticalPadding);var W=a.rowHeight[m]+a.rowHeight[p];a.rowHeight[m]=w,a.rowHeight[p]0)for(var et=y;et<=I;et++)Y[0]+=this.grid[et][w-1].length+this.grid[et][w].length-1;if(I0)for(var et=w;et<=R;et++)Y[3]+=this.grid[y-1][et].length+this.grid[y][et].length-1;for(var z=M.MAX_VALUE,O,H,B=0;B{var f=e(551).FDLayoutNode,i=e(551).IMath;function g(s,o,c,h){f.call(this,s,o,c,h)}g.prototype=Object.create(f.prototype);for(var t in f)g[t]=f[t];g.prototype.calculateDisplacement=function(){var s=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementX=s.coolingFactor*s.maxNodeDisplacement*i.sign(this.displacementX)),Math.abs(this.displacementY)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementY=s.coolingFactor*s.maxNodeDisplacement*i.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},g.prototype.propogateDisplacementToChildren=function(s,o){for(var c=this.getChild().getNodes(),h,T=0;T{function f(c){if(Array.isArray(c)){for(var h=0,T=Array(c.length);h0){var Ct=0;st.forEach(function(ht){$=="horizontal"?(tt.set(ht,v.has(ht)?d[v.get(ht)]:Z.get(ht)),Ct+=tt.get(ht)):(tt.set(ht,v.has(ht)?N[v.get(ht)]:Z.get(ht)),Ct+=tt.get(ht))}),Ct=Ct/st.length,ft.forEach(function(ht){Q.has(ht)||tt.set(ht,Ct)})}else{var ct=0;ft.forEach(function(ht){$=="horizontal"?ct+=v.has(ht)?d[v.get(ht)]:Z.get(ht):ct+=v.has(ht)?N[v.get(ht)]:Z.get(ht)}),ct=ct/ft.length,ft.forEach(function(ht){tt.set(ht,ct)})}});for(var wt=function(){var st=dt.shift(),Ct=b.get(st);Ct.forEach(function(ct){if(tt.get(ct.id)ht&&(ht=qt),_tWt&&(Wt=_t)}}catch(ie){Mt=!0,Zt=ie}finally{try{!Nt&&Gt.return&&Gt.return()}finally{if(Mt)throw Zt}}var de=(Ct+ht)/2-(ct+Wt)/2,Kt=!0,te=!1,ee=void 0;try{for(var jt=ft[Symbol.iterator](),se;!(Kt=(se=jt.next()).done);Kt=!0){var re=se.value;tt.set(re,tt.get(re)+de)}}catch(ie){te=!0,ee=ie}finally{try{!Kt&&jt.return&&jt.return()}finally{if(te)throw ee}}})}return tt},rt=function(b){var $=0,Q=0,Z=0,nt=0;if(b.forEach(function(j){j.left?d[v.get(j.left)]-d[v.get(j.right)]>=0?$++:Q++:N[v.get(j.top)]-N[v.get(j.bottom)]>=0?Z++:nt++}),$>Q&&Z>nt)for(var ut=0;utQ)for(var ot=0;otnt)for(var tt=0;tt1)h.fixedNodeConstraint.forEach(function(F,b){E[b]=[F.position.x,F.position.y],y[b]=[d[v.get(F.nodeId)],N[v.get(F.nodeId)]]}),I=!0;else if(h.alignmentConstraint)(function(){var F=0;if(h.alignmentConstraint.vertical){for(var b=h.alignmentConstraint.vertical,$=function(tt){var j=new Set;b[tt].forEach(function(yt){j.add(yt)});var dt=new Set([].concat(f(j)).filter(function(yt){return R.has(yt)})),wt=void 0;dt.size>0?wt=d[v.get(dt.values().next().value)]:wt=k(j).x,b[tt].forEach(function(yt){E[F]=[wt,N[v.get(yt)]],y[F]=[d[v.get(yt)],N[v.get(yt)]],F++})},Q=0;Q0?wt=d[v.get(dt.values().next().value)]:wt=k(j).y,Z[tt].forEach(function(yt){E[F]=[d[v.get(yt)],wt],y[F]=[d[v.get(yt)],N[v.get(yt)]],F++})},ut=0;utV&&(V=q[et].length,Y=et);if(V0){var mt={x:0,y:0};h.fixedNodeConstraint.forEach(function(F,b){var $={x:d[v.get(F.nodeId)],y:N[v.get(F.nodeId)]},Q=F.position,Z=X(Q,$);mt.x+=Z.x,mt.y+=Z.y}),mt.x/=h.fixedNodeConstraint.length,mt.y/=h.fixedNodeConstraint.length,d.forEach(function(F,b){d[b]+=mt.x}),N.forEach(function(F,b){N[b]+=mt.y}),h.fixedNodeConstraint.forEach(function(F){d[v.get(F.nodeId)]=F.position.x,N[v.get(F.nodeId)]=F.position.y})}if(h.alignmentConstraint){if(h.alignmentConstraint.vertical)for(var xt=h.alignmentConstraint.vertical,St=function(b){var $=new Set;xt[b].forEach(function(nt){$.add(nt)});var Q=new Set([].concat(f($)).filter(function(nt){return R.has(nt)})),Z=void 0;Q.size>0?Z=d[v.get(Q.values().next().value)]:Z=k($).x,$.forEach(function(nt){R.has(nt)||(d[v.get(nt)]=Z)})},Vt=0;Vt0?Z=N[v.get(Q.values().next().value)]:Z=k($).y,$.forEach(function(nt){R.has(nt)||(N[v.get(nt)]=Z)})},bt=0;bt{n.exports=A}},L={};function u(n){var r=L[n];if(r!==void 0)return r.exports;var e=L[n]={exports:{}};return G[n](e,e.exports,u),e.exports}var l=u(45);return l})()})}(fe)),fe.exports}var vr=le.exports,Re;function pr(){return Re||(Re=1,function(C,U){(function(G,L){C.exports=L(dr())})(vr,function(A){return(()=>{var G={658:n=>{n.exports=Object.assign!=null?Object.assign.bind(Object):function(r){for(var e=arguments.length,f=Array(e>1?e-1:0),i=1;i{var f=function(){function t(s,o){var c=[],h=!0,T=!1,v=void 0;try{for(var d=s[Symbol.iterator](),N;!(h=(N=d.next()).done)&&(c.push(N.value),!(o&&c.length===o));h=!0);}catch(S){T=!0,v=S}finally{try{!h&&d.return&&d.return()}finally{if(T)throw v}}return c}return function(s,o){if(Array.isArray(s))return s;if(Symbol.iterator in Object(s))return t(s,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=e(140).layoutBase.LinkedList,g={};g.getTopMostNodes=function(t){for(var s={},o=0;o0&&I.merge(x)});for(var w=0;w1){N=v[0],S=N.connectedEdges().length,v.forEach(function(y){y.connectedEdges().length0&&c.set("dummy"+(c.size+1),K),X},g.relocateComponent=function(t,s,o){if(!o.fixedNodeConstraint){var c=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,T=Number.POSITIVE_INFINITY,v=Number.NEGATIVE_INFINITY;if(o.quality=="draft"){var d=!0,N=!1,S=void 0;try{for(var M=s.nodeIndexes[Symbol.iterator](),P;!(d=(P=M.next()).done);d=!0){var K=P.value,X=f(K,2),k=X[0],D=X[1],rt=o.cy.getElementById(k);if(rt){var a=rt.boundingBox(),m=s.xCoords[D]-a.w/2,p=s.xCoords[D]+a.w/2,E=s.yCoords[D]-a.h/2,y=s.yCoords[D]+a.h/2;mh&&(h=p),Ev&&(v=y)}}}catch(x){N=!0,S=x}finally{try{!d&&M.return&&M.return()}finally{if(N)throw S}}var I=t.x-(h+c)/2,w=t.y-(v+T)/2;s.xCoords=s.xCoords.map(function(x){return x+I}),s.yCoords=s.yCoords.map(function(x){return x+w})}else{Object.keys(s).forEach(function(x){var q=s[x],V=q.getRect().x,Y=q.getRect().x+q.getRect().width,et=q.getRect().y,z=q.getRect().y+q.getRect().height;Vh&&(h=Y),etv&&(v=z)});var R=t.x-(h+c)/2,W=t.y-(v+T)/2;Object.keys(s).forEach(function(x){var q=s[x];q.setCenter(q.getCenterX()+R,q.getCenterY()+W)})}}},g.calcBoundingBox=function(t,s,o,c){for(var h=Number.MAX_SAFE_INTEGER,T=Number.MIN_SAFE_INTEGER,v=Number.MAX_SAFE_INTEGER,d=Number.MIN_SAFE_INTEGER,N=void 0,S=void 0,M=void 0,P=void 0,K=t.descendants().not(":parent"),X=K.length,k=0;kN&&(h=N),TM&&(v=M),d{var f=e(548),i=e(140).CoSELayout,g=e(140).CoSENode,t=e(140).layoutBase.PointD,s=e(140).layoutBase.DimensionD,o=e(140).layoutBase.LayoutConstants,c=e(140).layoutBase.FDLayoutConstants,h=e(140).CoSEConstants,T=function(d,N){var S=d.cy,M=d.eles,P=M.nodes(),K=M.edges(),X=void 0,k=void 0,D=void 0,rt={};d.randomize&&(X=N.nodeIndexes,k=N.xCoords,D=N.yCoords);var a=function(x){return typeof x=="function"},m=function(x,q){return a(x)?x(q):x},p=f.calcParentsWithoutChildren(S,M),E=function W(x,q,V,Y){for(var et=q.length,z=0;z0){var J=void 0;J=V.getGraphManager().add(V.newGraph(),B),W(J,H,V,Y)}}},y=function(x,q,V){for(var Y=0,et=0,z=0;z0?h.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=Y/et:a(d.idealEdgeLength)?h.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=50:h.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=d.idealEdgeLength,h.MIN_REPULSION_DIST=c.MIN_REPULSION_DIST=c.DEFAULT_EDGE_LENGTH/10,h.DEFAULT_RADIAL_SEPARATION=c.DEFAULT_EDGE_LENGTH)},I=function(x,q){q.fixedNodeConstraint&&(x.constraints.fixedNodeConstraint=q.fixedNodeConstraint),q.alignmentConstraint&&(x.constraints.alignmentConstraint=q.alignmentConstraint),q.relativePlacementConstraint&&(x.constraints.relativePlacementConstraint=q.relativePlacementConstraint)};d.nestingFactor!=null&&(h.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=c.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=d.nestingFactor),d.gravity!=null&&(h.DEFAULT_GRAVITY_STRENGTH=c.DEFAULT_GRAVITY_STRENGTH=d.gravity),d.numIter!=null&&(h.MAX_ITERATIONS=c.MAX_ITERATIONS=d.numIter),d.gravityRange!=null&&(h.DEFAULT_GRAVITY_RANGE_FACTOR=c.DEFAULT_GRAVITY_RANGE_FACTOR=d.gravityRange),d.gravityCompound!=null&&(h.DEFAULT_COMPOUND_GRAVITY_STRENGTH=c.DEFAULT_COMPOUND_GRAVITY_STRENGTH=d.gravityCompound),d.gravityRangeCompound!=null&&(h.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=c.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=d.gravityRangeCompound),d.initialEnergyOnIncremental!=null&&(h.DEFAULT_COOLING_FACTOR_INCREMENTAL=c.DEFAULT_COOLING_FACTOR_INCREMENTAL=d.initialEnergyOnIncremental),d.tilingCompareBy!=null&&(h.TILING_COMPARE_BY=d.tilingCompareBy),d.quality=="proof"?o.QUALITY=2:o.QUALITY=0,h.NODE_DIMENSIONS_INCLUDE_LABELS=c.NODE_DIMENSIONS_INCLUDE_LABELS=o.NODE_DIMENSIONS_INCLUDE_LABELS=d.nodeDimensionsIncludeLabels,h.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!d.randomize,h.ANIMATE=c.ANIMATE=o.ANIMATE=d.animate,h.TILE=d.tile,h.TILING_PADDING_VERTICAL=typeof d.tilingPaddingVertical=="function"?d.tilingPaddingVertical.call():d.tilingPaddingVertical,h.TILING_PADDING_HORIZONTAL=typeof d.tilingPaddingHorizontal=="function"?d.tilingPaddingHorizontal.call():d.tilingPaddingHorizontal,h.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!0,h.PURE_INCREMENTAL=!d.randomize,o.DEFAULT_UNIFORM_LEAF_NODE_SIZES=d.uniformNodeDimensions,d.step=="transformed"&&(h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!1,h.APPLY_LAYOUT=!1),d.step=="enforced"&&(h.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!1),d.step=="cose"&&(h.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,h.ENFORCE_CONSTRAINTS=!1,h.APPLY_LAYOUT=!0),d.step=="all"&&(d.randomize?h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:h.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0),d.fixedNodeConstraint||d.alignmentConstraint||d.relativePlacementConstraint?h.TREE_REDUCTION_ON_INCREMENTAL=!1:h.TREE_REDUCTION_ON_INCREMENTAL=!0;var w=new i,R=w.newGraphManager();return E(R.addRoot(),f.getTopMostNodes(P),w,d),y(w,R,K),I(w,d),w.runLayout(),rt};n.exports={coseLayout:T}},212:(n,r,e)=>{var f=function(){function d(N,S){for(var M=0;M0)if(p){var I=t.getTopMostNodes(M.eles.nodes());if(D=t.connectComponents(P,M.eles,I),D.forEach(function(vt){var it=vt.boundingBox();rt.push({x:it.x1+it.w/2,y:it.y1+it.h/2})}),M.randomize&&D.forEach(function(vt){M.eles=vt,X.push(o(M))}),M.quality=="default"||M.quality=="proof"){var w=P.collection();if(M.tile){var R=new Map,W=[],x=[],q=0,V={nodeIndexes:R,xCoords:W,yCoords:x},Y=[];if(D.forEach(function(vt,it){vt.edges().length==0&&(vt.nodes().forEach(function(gt,Tt){w.merge(vt.nodes()[Tt]),gt.isParent()||(V.nodeIndexes.set(vt.nodes()[Tt].id(),q++),V.xCoords.push(vt.nodes()[0].position().x),V.yCoords.push(vt.nodes()[0].position().y))}),Y.push(it))}),w.length>1){var et=w.boundingBox();rt.push({x:et.x1+et.w/2,y:et.y1+et.h/2}),D.push(w),X.push(V);for(var z=Y.length-1;z>=0;z--)D.splice(Y[z],1),X.splice(Y[z],1),rt.splice(Y[z],1)}}D.forEach(function(vt,it){M.eles=vt,k.push(h(M,X[it])),t.relocateComponent(rt[it],k[it],M)})}else D.forEach(function(vt,it){t.relocateComponent(rt[it],X[it],M)});var O=new Set;if(D.length>1){var H=[],B=K.filter(function(vt){return vt.css("display")=="none"});D.forEach(function(vt,it){var gt=void 0;if(M.quality=="draft"&&(gt=X[it].nodeIndexes),vt.nodes().not(B).length>0){var Tt={};Tt.edges=[],Tt.nodes=[];var At=void 0;vt.nodes().not(B).forEach(function(Dt){if(M.quality=="draft")if(!Dt.isParent())At=gt.get(Dt.id()),Tt.nodes.push({x:X[it].xCoords[At]-Dt.boundingbox().w/2,y:X[it].yCoords[At]-Dt.boundingbox().h/2,width:Dt.boundingbox().w,height:Dt.boundingbox().h});else{var mt=t.calcBoundingBox(Dt,X[it].xCoords,X[it].yCoords,gt);Tt.nodes.push({x:mt.topLeftX,y:mt.topLeftY,width:mt.width,height:mt.height})}else k[it][Dt.id()]&&Tt.nodes.push({x:k[it][Dt.id()].getLeft(),y:k[it][Dt.id()].getTop(),width:k[it][Dt.id()].getWidth(),height:k[it][Dt.id()].getHeight()})}),vt.edges().forEach(function(Dt){var mt=Dt.source(),xt=Dt.target();if(mt.css("display")!="none"&&xt.css("display")!="none")if(M.quality=="draft"){var St=gt.get(mt.id()),Vt=gt.get(xt.id()),Xt=[],Ut=[];if(mt.isParent()){var bt=t.calcBoundingBox(mt,X[it].xCoords,X[it].yCoords,gt);Xt.push(bt.topLeftX+bt.width/2),Xt.push(bt.topLeftY+bt.height/2)}else Xt.push(X[it].xCoords[St]),Xt.push(X[it].yCoords[St]);if(xt.isParent()){var Ht=t.calcBoundingBox(xt,X[it].xCoords,X[it].yCoords,gt);Ut.push(Ht.topLeftX+Ht.width/2),Ut.push(Ht.topLeftY+Ht.height/2)}else Ut.push(X[it].xCoords[Vt]),Ut.push(X[it].yCoords[Vt]);Tt.edges.push({startX:Xt[0],startY:Xt[1],endX:Ut[0],endY:Ut[1]})}else k[it][mt.id()]&&k[it][xt.id()]&&Tt.edges.push({startX:k[it][mt.id()].getCenterX(),startY:k[it][mt.id()].getCenterY(),endX:k[it][xt.id()].getCenterX(),endY:k[it][xt.id()].getCenterY()})}),Tt.nodes.length>0&&(H.push(Tt),O.add(it))}});var _=m.packComponents(H,M.randomize).shifts;if(M.quality=="draft")X.forEach(function(vt,it){var gt=vt.xCoords.map(function(At){return At+_[it].dx}),Tt=vt.yCoords.map(function(At){return At+_[it].dy});vt.xCoords=gt,vt.yCoords=Tt});else{var lt=0;O.forEach(function(vt){Object.keys(k[vt]).forEach(function(it){var gt=k[vt][it];gt.setCenter(gt.getCenterX()+_[lt].dx,gt.getCenterY()+_[lt].dy)}),lt++})}}}else{var E=M.eles.boundingBox();if(rt.push({x:E.x1+E.w/2,y:E.y1+E.h/2}),M.randomize){var y=o(M);X.push(y)}M.quality=="default"||M.quality=="proof"?(k.push(h(M,X[0])),t.relocateComponent(rt[0],k[0],M)):t.relocateComponent(rt[0],X[0],M)}var J=function(it,gt){if(M.quality=="default"||M.quality=="proof"){typeof it=="number"&&(it=gt);var Tt=void 0,At=void 0,Dt=it.data("id");return k.forEach(function(xt){Dt in xt&&(Tt={x:xt[Dt].getRect().getCenterX(),y:xt[Dt].getRect().getCenterY()},At=xt[Dt])}),M.nodeDimensionsIncludeLabels&&(At.labelWidth&&(At.labelPosHorizontal=="left"?Tt.x+=At.labelWidth/2:At.labelPosHorizontal=="right"&&(Tt.x-=At.labelWidth/2)),At.labelHeight&&(At.labelPosVertical=="top"?Tt.y+=At.labelHeight/2:At.labelPosVertical=="bottom"&&(Tt.y-=At.labelHeight/2))),Tt==null&&(Tt={x:it.position("x"),y:it.position("y")}),{x:Tt.x,y:Tt.y}}else{var mt=void 0;return X.forEach(function(xt){var St=xt.nodeIndexes.get(it.id());St!=null&&(mt={x:xt.xCoords[St],y:xt.yCoords[St]})}),mt==null&&(mt={x:it.position("x"),y:it.position("y")}),{x:mt.x,y:mt.y}}};if(M.quality=="default"||M.quality=="proof"||M.randomize){var Rt=t.calcParentsWithoutChildren(P,K),Lt=K.filter(function(vt){return vt.css("display")=="none"});M.eles=K.not(Lt),K.nodes().not(":parent").not(Lt).layoutPositions(S,M,J),Rt.length>0&&Rt.forEach(function(vt){vt.position(J(vt))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),d}();n.exports=v},657:(n,r,e)=>{var f=e(548),i=e(140).layoutBase.Matrix,g=e(140).layoutBase.SVD,t=function(o){var c=o.cy,h=o.eles,T=h.nodes(),v=h.nodes(":parent"),d=new Map,N=new Map,S=new Map,M=[],P=[],K=[],X=[],k=[],D=[],rt=[],a=[],m=void 0,p=1e8,E=1e-9,y=o.piTol,I=o.samplingType,w=o.nodeSeparation,R=void 0,W=function(){for(var b=0,$=0,Q=!1;$=nt;){ot=Z[nt++];for(var It=M[ot],ft=0;ftdt&&(dt=k[Ct],wt=Ct)}return wt},q=function(b){var $=void 0;if(b){$=Math.floor(Math.random()*m);for(var Z=0;Z=1)break;j=tt}for(var yt=0;yt=1)break;j=tt}for(var ft=0;ft0&&($.isParent()?M[b].push(S.get($.id())):M[b].push($.id()))})});var Lt=function(b){var $=N.get(b),Q=void 0;d.get(b).forEach(function(Z){c.getElementById(Z).isParent()?Q=S.get(Z):Q=Z,M[$].push(Q),M[N.get(Q)].push(b)})},vt=!0,it=!1,gt=void 0;try{for(var Tt=d.keys()[Symbol.iterator](),At;!(vt=(At=Tt.next()).done);vt=!0){var Dt=At.value;Lt(Dt)}}catch(F){it=!0,gt=F}finally{try{!vt&&Tt.return&&Tt.return()}finally{if(it)throw gt}}m=N.size;var mt=void 0;if(m>2){R=m{var f=e(212),i=function(t){t&&t("layout","fcose",f)};typeof cytoscape<"u"&&i(cytoscape),n.exports=i},140:n=>{n.exports=A}},L={};function u(n){var r=L[n];if(r!==void 0)return r.exports;var e=L[n]={exports:{}};return G[n](e,e.exports,u),e.exports}var l=u(579);return l})()})}(le)),le.exports}var yr=pr();const Er=fr(yr);var Se={L:"left",R:"right",T:"top",B:"bottom"},Fe={L:at(C=>`${C},${C/2} 0,${C} 0,0`,"L"),R:at(C=>`0,${C/2} ${C},0 ${C},${C}`,"R"),T:at(C=>`0,0 ${C},0 ${C/2},${C}`,"T"),B:at(C=>`${C/2},0 ${C},${C} 0,${C}`,"B")},he={L:at((C,U)=>C-U+2,"L"),R:at((C,U)=>C-2,"R"),T:at((C,U)=>C-U+2,"T"),B:at((C,U)=>C-2,"B")},mr=at(function(C){return zt(C)?C==="L"?"R":"L":C==="T"?"B":"T"},"getOppositeArchitectureDirection"),be=at(function(C){const U=C;return U==="L"||U==="R"||U==="T"||U==="B"},"isArchitectureDirection"),zt=at(function(C){const U=C;return U==="L"||U==="R"},"isArchitectureDirectionX"),Qt=at(function(C){const U=C;return U==="T"||U==="B"},"isArchitectureDirectionY"),Ce=at(function(C,U){const A=zt(C)&&Qt(U),G=Qt(C)&&zt(U);return A||G},"isArchitectureDirectionXY"),Tr=at(function(C){const U=C[0],A=C[1],G=zt(U)&&Qt(A),L=Qt(U)&&zt(A);return G||L},"isArchitecturePairXY"),Nr=at(function(C){return C!=="LL"&&C!=="RR"&&C!=="TT"&&C!=="BB"},"isValidArchitectureDirectionPair"),Te=at(function(C,U){const A=`${C}${U}`;return Nr(A)?A:void 0},"getArchitectureDirectionPair"),Lr=at(function([C,U],A){const G=A[0],L=A[1];return zt(G)?Qt(L)?[C+(G==="L"?-1:1),U+(L==="T"?1:-1)]:[C+(G==="L"?-1:1),U]:zt(L)?[C+(L==="L"?1:-1),U+(G==="T"?1:-1)]:[C,U+(G==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),Cr=at(function(C){return C==="LT"||C==="TL"?[1,1]:C==="BL"||C==="LB"?[1,-1]:C==="BR"||C==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),Mr=at(function(C,U){return Ce(C,U)?"bend":zt(C)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),Ar=at(function(C){return C.type==="service"},"isArchitectureService"),wr=at(function(C){return C.type==="junction"},"isArchitectureJunction"),Ue=at(C=>C.data(),"edgeData"),ae=at(C=>C.data(),"nodeData"),Ye=nr.architecture,pt=new hr(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:Ye,dataStructures:void 0,elements:{}})),Or=at(()=>{pt.reset(),rr()},"clear"),Dr=at(function({id:C,icon:U,in:A,title:G,iconText:L}){if(pt.records.registeredIds[C]!==void 0)throw new Error(`The service id [${C}] is already in use by another ${pt.records.registeredIds[C]}`);if(A!==void 0){if(C===A)throw new Error(`The service [${C}] cannot be placed within itself`);if(pt.records.registeredIds[A]===void 0)throw new Error(`The service [${C}]'s parent does not exist. Please make sure the parent is created before this service`);if(pt.records.registeredIds[A]==="node")throw new Error(`The service [${C}]'s parent is not a group`)}pt.records.registeredIds[C]="node",pt.records.nodes[C]={id:C,type:"service",icon:U,iconText:L,title:G,edges:[],in:A}},"addService"),xr=at(()=>Object.values(pt.records.nodes).filter(Ar),"getServices"),Ir=at(function({id:C,in:U}){pt.records.registeredIds[C]="node",pt.records.nodes[C]={id:C,type:"junction",edges:[],in:U}},"addJunction"),Rr=at(()=>Object.values(pt.records.nodes).filter(wr),"getJunctions"),Sr=at(()=>Object.values(pt.records.nodes),"getNodes"),Ne=at(C=>pt.records.nodes[C],"getNode"),Fr=at(function({id:C,icon:U,in:A,title:G}){if(pt.records.registeredIds[C]!==void 0)throw new Error(`The group id [${C}] is already in use by another ${pt.records.registeredIds[C]}`);if(A!==void 0){if(C===A)throw new Error(`The group [${C}] cannot be placed within itself`);if(pt.records.registeredIds[A]===void 0)throw new Error(`The group [${C}]'s parent does not exist. Please make sure the parent is created before this group`);if(pt.records.registeredIds[A]==="node")throw new Error(`The group [${C}]'s parent is not a group`)}pt.records.registeredIds[C]="group",pt.records.groups[C]={id:C,icon:U,title:G,in:A}},"addGroup"),br=at(()=>Object.values(pt.records.groups),"getGroups"),Pr=at(function({lhsId:C,rhsId:U,lhsDir:A,rhsDir:G,lhsInto:L,rhsInto:u,lhsGroup:l,rhsGroup:n,title:r}){if(!be(A))throw new Error(`Invalid direction given for left hand side of edge ${C}--${U}. Expected (L,R,T,B) got ${A}`);if(!be(G))throw new Error(`Invalid direction given for right hand side of edge ${C}--${U}. Expected (L,R,T,B) got ${G}`);if(pt.records.nodes[C]===void 0&&pt.records.groups[C]===void 0)throw new Error(`The left-hand id [${C}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(pt.records.nodes[U]===void 0&&pt.records.groups[C]===void 0)throw new Error(`The right-hand id [${U}] does not yet exist. Please create the service/group before declaring an edge to it.`);const e=pt.records.nodes[C].in,f=pt.records.nodes[U].in;if(l&&e&&f&&e==f)throw new Error(`The left-hand id [${C}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(n&&e&&f&&e==f)throw new Error(`The right-hand id [${U}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);const i={lhsId:C,lhsDir:A,lhsInto:L,lhsGroup:l,rhsId:U,rhsDir:G,rhsInto:u,rhsGroup:n,title:r};pt.records.edges.push(i),pt.records.nodes[C]&&pt.records.nodes[U]&&(pt.records.nodes[C].edges.push(pt.records.edges[pt.records.edges.length-1]),pt.records.nodes[U].edges.push(pt.records.edges[pt.records.edges.length-1]))},"addEdge"),Gr=at(()=>pt.records.edges,"getEdges"),Ur=at(()=>{if(pt.records.dataStructures===void 0){const C={},U=Object.entries(pt.records.nodes).reduce((n,[r,e])=>(n[r]=e.edges.reduce((f,i)=>{var s,o;const g=(s=Ne(i.lhsId))==null?void 0:s.in,t=(o=Ne(i.rhsId))==null?void 0:o.in;if(g&&t&&g!==t){const c=Mr(i.lhsDir,i.rhsDir);c!=="bend"&&(C[g]??(C[g]={}),C[g][t]=c,C[t]??(C[t]={}),C[t][g]=c)}if(i.lhsId===r){const c=Te(i.lhsDir,i.rhsDir);c&&(f[c]=i.rhsId)}else{const c=Te(i.rhsDir,i.lhsDir);c&&(f[c]=i.lhsId)}return f},{}),n),{}),A=Object.keys(U)[0],G={[A]:1},L=Object.keys(U).reduce((n,r)=>r===A?n:{...n,[r]:1},{}),u=at(n=>{const r={[n]:[0,0]},e=[n];for(;e.length>0;){const f=e.shift();if(f){G[f]=1,delete L[f];const i=U[f],[g,t]=r[f];Object.entries(i).forEach(([s,o])=>{G[o]||(r[o]=Lr([g,t],s),e.push(o))})}}return r},"BFS"),l=[u(A)];for(;Object.keys(L).length>0;)l.push(u(Object.keys(L)[0]));pt.records.dataStructures={adjList:U,spatialMaps:l,groupAlignments:C}}return pt.records.dataStructures},"getDataStructures"),Yr=at((C,U)=>{pt.records.elements[C]=U},"setElementForId"),Xr=at(C=>pt.records.elements[C],"getElementById"),ue={clear:Or,setDiagramTitle:_e,getDiagramTitle:je,setAccTitle:Ke,getAccTitle:Qe,setAccDescription:Je,getAccDescription:qe,addService:Dr,getServices:xr,addJunction:Ir,getJunctions:Rr,getNodes:Sr,getNode:Ne,addGroup:Fr,getGroups:br,addEdge:Pr,getEdges:Gr,setElementForId:Yr,getElementById:Xr,getDataStructures:Ur};function Pt(C){const U=ge().architecture;return U!=null&&U[C]?U[C]:Ye[C]}at(Pt,"getConfigField");var Hr=at((C,U)=>{sr(C,U),C.groups.map(U.addGroup),C.services.map(A=>U.addService({...A,type:"service"})),C.junctions.map(A=>U.addJunction({...A,type:"junction"})),C.edges.map(U.addEdge)},"populateDb"),Wr={parse:at(async C=>{const U=await lr("architecture",C);Pe.debug(U),Hr(U,ue)},"parse")},Vr=at(C=>` +import{_ as at,g as qe,s as Je,a as Qe,b as Ke,t as je,q as _e,K as tr,a2 as er,z as rr,l as Pe,ac as Le,c as ge,av as me,d as ir,H as nr,aw as ar,ax as or}from"./mermaid-vendor-d7rbry5E.js";import{p as sr}from"./chunk-4BMEZGHF-Ct0jZH9M.js";import{I as hr}from"./chunk-XZIHB7SX-CqkuoyXD.js";import{p as lr}from"./radar-MK3ICKWK-zkXzSXFe.js";import{c as Ge}from"./cytoscape.esm-CfBqOv7Q.js";import{g as fr}from"./react-vendor-DEwriMA6.js";import"./feature-graph-DbHHHM9y.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-OtJ11HbN.js";import"./_basePickBy-Lz6agtdo.js";import"./clone-vL6XIcCC.js";var le={exports:{}},fe={exports:{}},ce={exports:{}},cr=ce.exports,xe;function ur(){return xe||(xe=1,function(C,U){(function(G,L){C.exports=L()})(cr,function(){return function(A){var G={};function L(u){if(G[u])return G[u].exports;var l=G[u]={i:u,l:!1,exports:{}};return A[u].call(l.exports,l,l.exports,L),l.l=!0,l.exports}return L.m=A,L.c=G,L.i=function(u){return u},L.d=function(u,l,n){L.o(u,l)||Object.defineProperty(u,l,{configurable:!1,enumerable:!0,get:n})},L.n=function(u){var l=u&&u.__esModule?function(){return u.default}:function(){return u};return L.d(l,"a",l),l},L.o=function(u,l){return Object.prototype.hasOwnProperty.call(u,l)},L.p="",L(L.s=28)}([function(A,G,L){function u(){}u.QUALITY=1,u.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,u.DEFAULT_INCREMENTAL=!1,u.DEFAULT_ANIMATION_ON_LAYOUT=!0,u.DEFAULT_ANIMATION_DURING_LAYOUT=!1,u.DEFAULT_ANIMATION_PERIOD=50,u.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,u.DEFAULT_GRAPH_MARGIN=15,u.NODE_DIMENSIONS_INCLUDE_LABELS=!1,u.SIMPLE_NODE_SIZE=40,u.SIMPLE_NODE_HALF_SIZE=u.SIMPLE_NODE_SIZE/2,u.EMPTY_COMPOUND_NODE_SIZE=40,u.MIN_EDGE_LENGTH=1,u.WORLD_BOUNDARY=1e6,u.INITIAL_WORLD_BOUNDARY=u.WORLD_BOUNDARY/1e3,u.WORLD_CENTER_X=1200,u.WORLD_CENTER_Y=900,A.exports=u},function(A,G,L){var u=L(2),l=L(8),n=L(9);function r(f,i,g){u.call(this,g),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=g,this.bendpoints=[],this.source=f,this.target=i}r.prototype=Object.create(u.prototype);for(var e in u)r[e]=u[e];r.prototype.getSource=function(){return this.source},r.prototype.getTarget=function(){return this.target},r.prototype.isInterGraph=function(){return this.isInterGraph},r.prototype.getLength=function(){return this.length},r.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},r.prototype.getBendpoints=function(){return this.bendpoints},r.prototype.getLca=function(){return this.lca},r.prototype.getSourceInLca=function(){return this.sourceInLca},r.prototype.getTargetInLca=function(){return this.targetInLca},r.prototype.getOtherEnd=function(f){if(this.source===f)return this.target;if(this.target===f)return this.source;throw"Node is not incident with this edge"},r.prototype.getOtherEndInGraph=function(f,i){for(var g=this.getOtherEnd(f),t=i.getGraphManager().getRoot();;){if(g.getOwner()==i)return g;if(g.getOwner()==t)break;g=g.getOwner().getParent()}return null},r.prototype.updateLength=function(){var f=new Array(4);this.isOverlapingSourceAndTarget=l.getIntersection(this.target.getRect(),this.source.getRect(),f),this.isOverlapingSourceAndTarget||(this.lengthX=f[0]-f[2],this.lengthY=f[1]-f[3],Math.abs(this.lengthX)<1&&(this.lengthX=n.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=n.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},r.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=n.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=n.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},A.exports=r},function(A,G,L){function u(l){this.vGraphObject=l}A.exports=u},function(A,G,L){var u=L(2),l=L(10),n=L(13),r=L(0),e=L(16),f=L(5);function i(t,s,o,c){o==null&&c==null&&(c=s),u.call(this,c),t.graphManager!=null&&(t=t.graphManager),this.estimatedSize=l.MIN_VALUE,this.inclusionTreeDepth=l.MAX_VALUE,this.vGraphObject=c,this.edges=[],this.graphManager=t,o!=null&&s!=null?this.rect=new n(s.x,s.y,o.width,o.height):this.rect=new n}i.prototype=Object.create(u.prototype);for(var g in u)i[g]=u[g];i.prototype.getEdges=function(){return this.edges},i.prototype.getChild=function(){return this.child},i.prototype.getOwner=function(){return this.owner},i.prototype.getWidth=function(){return this.rect.width},i.prototype.setWidth=function(t){this.rect.width=t},i.prototype.getHeight=function(){return this.rect.height},i.prototype.setHeight=function(t){this.rect.height=t},i.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},i.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},i.prototype.getCenter=function(){return new f(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},i.prototype.getLocation=function(){return new f(this.rect.x,this.rect.y)},i.prototype.getRect=function(){return this.rect},i.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},i.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},i.prototype.setRect=function(t,s){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=s.width,this.rect.height=s.height},i.prototype.setCenter=function(t,s){this.rect.x=t-this.rect.width/2,this.rect.y=s-this.rect.height/2},i.prototype.setLocation=function(t,s){this.rect.x=t,this.rect.y=s},i.prototype.moveBy=function(t,s){this.rect.x+=t,this.rect.y+=s},i.prototype.getEdgeListToNode=function(t){var s=[],o=this;return o.edges.forEach(function(c){if(c.target==t){if(c.source!=o)throw"Incorrect edge source!";s.push(c)}}),s},i.prototype.getEdgesBetween=function(t){var s=[],o=this;return o.edges.forEach(function(c){if(!(c.source==o||c.target==o))throw"Incorrect edge source and/or target";(c.target==t||c.source==t)&&s.push(c)}),s},i.prototype.getNeighborsList=function(){var t=new Set,s=this;return s.edges.forEach(function(o){if(o.source==s)t.add(o.target);else{if(o.target!=s)throw"Incorrect incidency!";t.add(o.source)}}),t},i.prototype.withChildren=function(){var t=new Set,s,o;if(t.add(this),this.child!=null)for(var c=this.child.getNodes(),h=0;hs?(this.rect.x-=(this.labelWidth-s)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(s+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(o+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>o?(this.rect.y-=(this.labelHeight-o)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(o+this.labelHeight))}}},i.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==l.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},i.prototype.transform=function(t){var s=this.rect.x;s>r.WORLD_BOUNDARY?s=r.WORLD_BOUNDARY:s<-r.WORLD_BOUNDARY&&(s=-r.WORLD_BOUNDARY);var o=this.rect.y;o>r.WORLD_BOUNDARY?o=r.WORLD_BOUNDARY:o<-r.WORLD_BOUNDARY&&(o=-r.WORLD_BOUNDARY);var c=new f(s,o),h=t.inverseTransformPoint(c);this.setLocation(h.x,h.y)},i.prototype.getLeft=function(){return this.rect.x},i.prototype.getRight=function(){return this.rect.x+this.rect.width},i.prototype.getTop=function(){return this.rect.y},i.prototype.getBottom=function(){return this.rect.y+this.rect.height},i.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},A.exports=i},function(A,G,L){var u=L(0);function l(){}for(var n in u)l[n]=u[n];l.MAX_ITERATIONS=2500,l.DEFAULT_EDGE_LENGTH=50,l.DEFAULT_SPRING_STRENGTH=.45,l.DEFAULT_REPULSION_STRENGTH=4500,l.DEFAULT_GRAVITY_STRENGTH=.4,l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,l.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,l.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,l.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,l.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,l.COOLING_ADAPTATION_FACTOR=.33,l.ADAPTATION_LOWER_NODE_LIMIT=1e3,l.ADAPTATION_UPPER_NODE_LIMIT=5e3,l.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,l.MAX_NODE_DISPLACEMENT=l.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,l.MIN_REPULSION_DIST=l.DEFAULT_EDGE_LENGTH/10,l.CONVERGENCE_CHECK_PERIOD=100,l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,l.MIN_EDGE_LENGTH=1,l.GRID_CALCULATION_CHECK_PERIOD=10,A.exports=l},function(A,G,L){function u(l,n){l==null&&n==null?(this.x=0,this.y=0):(this.x=l,this.y=n)}u.prototype.getX=function(){return this.x},u.prototype.getY=function(){return this.y},u.prototype.setX=function(l){this.x=l},u.prototype.setY=function(l){this.y=l},u.prototype.getDifference=function(l){return new DimensionD(this.x-l.x,this.y-l.y)},u.prototype.getCopy=function(){return new u(this.x,this.y)},u.prototype.translate=function(l){return this.x+=l.width,this.y+=l.height,this},A.exports=u},function(A,G,L){var u=L(2),l=L(10),n=L(0),r=L(7),e=L(3),f=L(1),i=L(13),g=L(12),t=L(11);function s(c,h,T){u.call(this,T),this.estimatedSize=l.MIN_VALUE,this.margin=n.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=c,h!=null&&h instanceof r?this.graphManager=h:h!=null&&h instanceof Layout&&(this.graphManager=h.graphManager)}s.prototype=Object.create(u.prototype);for(var o in u)s[o]=u[o];s.prototype.getNodes=function(){return this.nodes},s.prototype.getEdges=function(){return this.edges},s.prototype.getGraphManager=function(){return this.graphManager},s.prototype.getParent=function(){return this.parent},s.prototype.getLeft=function(){return this.left},s.prototype.getRight=function(){return this.right},s.prototype.getTop=function(){return this.top},s.prototype.getBottom=function(){return this.bottom},s.prototype.isConnected=function(){return this.isConnected},s.prototype.add=function(c,h,T){if(h==null&&T==null){var v=c;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(v)>-1)throw"Node already in graph!";return v.owner=this,this.getNodes().push(v),v}else{var d=c;if(!(this.getNodes().indexOf(h)>-1&&this.getNodes().indexOf(T)>-1))throw"Source or target not in graph!";if(!(h.owner==T.owner&&h.owner==this))throw"Both owners must be this graph!";return h.owner!=T.owner?null:(d.source=h,d.target=T,d.isInterGraph=!1,this.getEdges().push(d),h.edges.push(d),T!=h&&T.edges.push(d),d)}},s.prototype.remove=function(c){var h=c;if(c instanceof e){if(h==null)throw"Node is null!";if(!(h.owner!=null&&h.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var T=h.edges.slice(),v,d=T.length,N=0;N-1&&P>-1))throw"Source and/or target doesn't know this edge!";v.source.edges.splice(M,1),v.target!=v.source&&v.target.edges.splice(P,1);var S=v.source.owner.getEdges().indexOf(v);if(S==-1)throw"Not in owner's edge list!";v.source.owner.getEdges().splice(S,1)}},s.prototype.updateLeftTop=function(){for(var c=l.MAX_VALUE,h=l.MAX_VALUE,T,v,d,N=this.getNodes(),S=N.length,M=0;MT&&(c=T),h>v&&(h=v)}return c==l.MAX_VALUE?null:(N[0].getParent().paddingLeft!=null?d=N[0].getParent().paddingLeft:d=this.margin,this.left=h-d,this.top=c-d,new g(this.left,this.top))},s.prototype.updateBounds=function(c){for(var h=l.MAX_VALUE,T=-l.MAX_VALUE,v=l.MAX_VALUE,d=-l.MAX_VALUE,N,S,M,P,K,X=this.nodes,k=X.length,D=0;DN&&(h=N),TM&&(v=M),dN&&(h=N),TM&&(v=M),d=this.nodes.length){var k=0;T.forEach(function(D){D.owner==c&&k++}),k==this.nodes.length&&(this.isConnected=!0)}},A.exports=s},function(A,G,L){var u,l=L(1);function n(r){u=L(6),this.layout=r,this.graphs=[],this.edges=[]}n.prototype.addRoot=function(){var r=this.layout.newGraph(),e=this.layout.newNode(null),f=this.add(r,e);return this.setRootGraph(f),this.rootGraph},n.prototype.add=function(r,e,f,i,g){if(f==null&&i==null&&g==null){if(r==null)throw"Graph is null!";if(e==null)throw"Parent node is null!";if(this.graphs.indexOf(r)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(r),r.parent!=null)throw"Already has a parent!";if(e.child!=null)throw"Already has a child!";return r.parent=e,e.child=r,r}else{g=f,i=e,f=r;var t=i.getOwner(),s=g.getOwner();if(!(t!=null&&t.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(s!=null&&s.getGraphManager()==this))throw"Target not in this graph mgr!";if(t==s)return f.isInterGraph=!1,t.add(f,i,g);if(f.isInterGraph=!0,f.source=i,f.target=g,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},n.prototype.remove=function(r){if(r instanceof u){var e=r;if(e.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(e==this.rootGraph||e.parent!=null&&e.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(e.getEdges());for(var i,g=f.length,t=0;t=r.getRight()?e[0]+=Math.min(r.getX()-n.getX(),n.getRight()-r.getRight()):r.getX()<=n.getX()&&r.getRight()>=n.getRight()&&(e[0]+=Math.min(n.getX()-r.getX(),r.getRight()-n.getRight())),n.getY()<=r.getY()&&n.getBottom()>=r.getBottom()?e[1]+=Math.min(r.getY()-n.getY(),n.getBottom()-r.getBottom()):r.getY()<=n.getY()&&r.getBottom()>=n.getBottom()&&(e[1]+=Math.min(n.getY()-r.getY(),r.getBottom()-n.getBottom()));var g=Math.abs((r.getCenterY()-n.getCenterY())/(r.getCenterX()-n.getCenterX()));r.getCenterY()===n.getCenterY()&&r.getCenterX()===n.getCenterX()&&(g=1);var t=g*e[0],s=e[1]/g;e[0]t)return e[0]=f,e[1]=o,e[2]=g,e[3]=X,!1;if(ig)return e[0]=s,e[1]=i,e[2]=P,e[3]=t,!1;if(fg?(e[0]=h,e[1]=T,a=!0):(e[0]=c,e[1]=o,a=!0):p===y&&(f>g?(e[0]=s,e[1]=o,a=!0):(e[0]=v,e[1]=T,a=!0)),-E===y?g>f?(e[2]=K,e[3]=X,m=!0):(e[2]=P,e[3]=M,m=!0):E===y&&(g>f?(e[2]=S,e[3]=M,m=!0):(e[2]=k,e[3]=X,m=!0)),a&&m)return!1;if(f>g?i>t?(I=this.getCardinalDirection(p,y,4),w=this.getCardinalDirection(E,y,2)):(I=this.getCardinalDirection(-p,y,3),w=this.getCardinalDirection(-E,y,1)):i>t?(I=this.getCardinalDirection(-p,y,1),w=this.getCardinalDirection(-E,y,3)):(I=this.getCardinalDirection(p,y,2),w=this.getCardinalDirection(E,y,4)),!a)switch(I){case 1:W=o,R=f+-N/y,e[0]=R,e[1]=W;break;case 2:R=v,W=i+d*y,e[0]=R,e[1]=W;break;case 3:W=T,R=f+N/y,e[0]=R,e[1]=W;break;case 4:R=h,W=i+-d*y,e[0]=R,e[1]=W;break}if(!m)switch(w){case 1:q=M,x=g+-rt/y,e[2]=x,e[3]=q;break;case 2:x=k,q=t+D*y,e[2]=x,e[3]=q;break;case 3:q=X,x=g+rt/y,e[2]=x,e[3]=q;break;case 4:x=K,q=t+-D*y,e[2]=x,e[3]=q;break}}return!1},l.getCardinalDirection=function(n,r,e){return n>r?e:1+e%4},l.getIntersection=function(n,r,e,f){if(f==null)return this.getIntersection2(n,r,e);var i=n.x,g=n.y,t=r.x,s=r.y,o=e.x,c=e.y,h=f.x,T=f.y,v=void 0,d=void 0,N=void 0,S=void 0,M=void 0,P=void 0,K=void 0,X=void 0,k=void 0;return N=s-g,M=i-t,K=t*g-i*s,S=T-c,P=o-h,X=h*c-o*T,k=N*P-S*M,k===0?null:(v=(M*X-P*K)/k,d=(S*K-N*X)/k,new u(v,d))},l.angleOfVector=function(n,r,e,f){var i=void 0;return n!==e?(i=Math.atan((f-r)/(e-n)),e=0){var T=(-o+Math.sqrt(o*o-4*s*c))/(2*s),v=(-o-Math.sqrt(o*o-4*s*c))/(2*s),d=null;return T>=0&&T<=1?[T]:v>=0&&v<=1?[v]:d}else return null},l.HALF_PI=.5*Math.PI,l.ONE_AND_HALF_PI=1.5*Math.PI,l.TWO_PI=2*Math.PI,l.THREE_PI=3*Math.PI,A.exports=l},function(A,G,L){function u(){}u.sign=function(l){return l>0?1:l<0?-1:0},u.floor=function(l){return l<0?Math.ceil(l):Math.floor(l)},u.ceil=function(l){return l<0?Math.floor(l):Math.ceil(l)},A.exports=u},function(A,G,L){function u(){}u.MAX_VALUE=2147483647,u.MIN_VALUE=-2147483648,A.exports=u},function(A,G,L){var u=function(){function i(g,t){for(var s=0;s"u"?"undefined":u(n);return n==null||r!="object"&&r!="function"},A.exports=l},function(A,G,L){function u(o){if(Array.isArray(o)){for(var c=0,h=Array(o.length);c0&&c;){for(N.push(M[0]);N.length>0&&c;){var P=N[0];N.splice(0,1),d.add(P);for(var K=P.getEdges(),v=0;v-1&&M.splice(rt,1)}d=new Set,S=new Map}}return o},s.prototype.createDummyNodesForBendpoints=function(o){for(var c=[],h=o.source,T=this.graphManager.calcLowestCommonAncestor(o.source,o.target),v=0;v0){for(var T=this.edgeToDummyNodes.get(h),v=0;v=0&&c.splice(X,1);var k=S.getNeighborsList();k.forEach(function(a){if(h.indexOf(a)<0){var m=T.get(a),p=m-1;p==1&&P.push(a),T.set(a,p)}})}h=h.concat(P),(c.length==1||c.length==2)&&(v=!0,d=c[0])}return d},s.prototype.setGraphManager=function(o){this.graphManager=o},A.exports=s},function(A,G,L){function u(){}u.seed=1,u.x=0,u.nextDouble=function(){return u.x=Math.sin(u.seed++)*1e4,u.x-Math.floor(u.x)},A.exports=u},function(A,G,L){var u=L(5);function l(n,r){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}l.prototype.getWorldOrgX=function(){return this.lworldOrgX},l.prototype.setWorldOrgX=function(n){this.lworldOrgX=n},l.prototype.getWorldOrgY=function(){return this.lworldOrgY},l.prototype.setWorldOrgY=function(n){this.lworldOrgY=n},l.prototype.getWorldExtX=function(){return this.lworldExtX},l.prototype.setWorldExtX=function(n){this.lworldExtX=n},l.prototype.getWorldExtY=function(){return this.lworldExtY},l.prototype.setWorldExtY=function(n){this.lworldExtY=n},l.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},l.prototype.setDeviceOrgX=function(n){this.ldeviceOrgX=n},l.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},l.prototype.setDeviceOrgY=function(n){this.ldeviceOrgY=n},l.prototype.getDeviceExtX=function(){return this.ldeviceExtX},l.prototype.setDeviceExtX=function(n){this.ldeviceExtX=n},l.prototype.getDeviceExtY=function(){return this.ldeviceExtY},l.prototype.setDeviceExtY=function(n){this.ldeviceExtY=n},l.prototype.transformX=function(n){var r=0,e=this.lworldExtX;return e!=0&&(r=this.ldeviceOrgX+(n-this.lworldOrgX)*this.ldeviceExtX/e),r},l.prototype.transformY=function(n){var r=0,e=this.lworldExtY;return e!=0&&(r=this.ldeviceOrgY+(n-this.lworldOrgY)*this.ldeviceExtY/e),r},l.prototype.inverseTransformX=function(n){var r=0,e=this.ldeviceExtX;return e!=0&&(r=this.lworldOrgX+(n-this.ldeviceOrgX)*this.lworldExtX/e),r},l.prototype.inverseTransformY=function(n){var r=0,e=this.ldeviceExtY;return e!=0&&(r=this.lworldOrgY+(n-this.ldeviceOrgY)*this.lworldExtY/e),r},l.prototype.inverseTransformPoint=function(n){var r=new u(this.inverseTransformX(n.x),this.inverseTransformY(n.y));return r},A.exports=l},function(A,G,L){function u(t){if(Array.isArray(t)){for(var s=0,o=Array(t.length);sn.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*n.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-n.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>n.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(n.COOLING_ADAPTATION_FACTOR,1-(t-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*(1-n.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*n.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},i.prototype.calcSpringForces=function(){for(var t=this.getAllEdges(),s,o=0;o0&&arguments[0]!==void 0?arguments[0]:!0,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,o,c,h,T,v=this.getAllNodes(),d;if(this.useFRGridVariant)for(this.totalIterations%n.GRID_CALCULATION_CHECK_PERIOD==1&&t&&this.updateGrid(),d=new Set,o=0;oN||d>N)&&(t.gravitationForceX=-this.gravityConstant*h,t.gravitationForceY=-this.gravityConstant*T)):(N=s.getEstimatedSize()*this.compoundGravityRangeFactor,(v>N||d>N)&&(t.gravitationForceX=-this.gravityConstant*h*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*T*this.compoundGravityConstant))},i.prototype.isConverged=function(){var t,s=!1;return this.totalIterations>this.maxIterations/3&&(s=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement=v.length||N>=v[0].length)){for(var S=0;Si}}]),e}();A.exports=r},function(A,G,L){function u(){}u.svd=function(l){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=l.length,this.n=l[0].length;var n=Math.min(this.m,this.n);this.s=function(Nt){for(var Mt=[];Nt-- >0;)Mt.push(0);return Mt}(Math.min(this.m+1,this.n)),this.U=function(Nt){var Mt=function Zt(Gt){if(Gt.length==0)return 0;for(var $t=[],Ft=0;Ft0;)Mt.push(0);return Mt}(this.n),e=function(Nt){for(var Mt=[];Nt-- >0;)Mt.push(0);return Mt}(this.m),f=!0,i=Math.min(this.m-1,this.n),g=Math.max(0,Math.min(this.n-2,this.m)),t=0;t=0;E--)if(this.s[E]!==0){for(var y=E+1;y=0;V--){if(function(Nt,Mt){return Nt&&Mt}(V0;){var J=void 0,Rt=void 0;for(J=a-2;J>=-1&&J!==-1;J--)if(Math.abs(r[J])<=lt+_*(Math.abs(this.s[J])+Math.abs(this.s[J+1]))){r[J]=0;break}if(J===a-2)Rt=4;else{var Lt=void 0;for(Lt=a-1;Lt>=J&&Lt!==J;Lt--){var vt=(Lt!==a?Math.abs(r[Lt]):0)+(Lt!==J+1?Math.abs(r[Lt-1]):0);if(Math.abs(this.s[Lt])<=lt+_*vt){this.s[Lt]=0;break}}Lt===J?Rt=3:Lt===a-1?Rt=1:(Rt=2,J=Lt)}switch(J++,Rt){case 1:{var it=r[a-2];r[a-2]=0;for(var gt=a-2;gt>=J;gt--){var Tt=u.hypot(this.s[gt],it),At=this.s[gt]/Tt,Dt=it/Tt;this.s[gt]=Tt,gt!==J&&(it=-Dt*r[gt-1],r[gt-1]=At*r[gt-1]);for(var mt=0;mt=this.s[J+1]);){var Ct=this.s[J];if(this.s[J]=this.s[J+1],this.s[J+1]=Ct,JMath.abs(n)?(r=n/l,r=Math.abs(l)*Math.sqrt(1+r*r)):n!=0?(r=l/n,r=Math.abs(n)*Math.sqrt(1+r*r)):r=0,r},A.exports=u},function(A,G,L){var u=function(){function r(e,f){for(var i=0;i2&&arguments[2]!==void 0?arguments[2]:1,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;l(this,r),this.sequence1=e,this.sequence2=f,this.match_score=i,this.mismatch_penalty=g,this.gap_penalty=t,this.iMax=e.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var s=0;s=0;e--){var f=this.listeners[e];f.event===n&&f.callback===r&&this.listeners.splice(e,1)}},l.emit=function(n,r){for(var e=0;e{var G={45:(n,r,e)=>{var f={};f.layoutBase=e(551),f.CoSEConstants=e(806),f.CoSEEdge=e(767),f.CoSEGraph=e(880),f.CoSEGraphManager=e(578),f.CoSELayout=e(765),f.CoSENode=e(991),f.ConstraintHandler=e(902),n.exports=f},806:(n,r,e)=>{var f=e(551).FDLayoutConstants;function i(){}for(var g in f)i[g]=f[g];i.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,i.DEFAULT_RADIAL_SEPARATION=f.DEFAULT_EDGE_LENGTH,i.DEFAULT_COMPONENT_SEPERATION=60,i.TILE=!0,i.TILING_PADDING_VERTICAL=10,i.TILING_PADDING_HORIZONTAL=10,i.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,i.ENFORCE_CONSTRAINTS=!0,i.APPLY_LAYOUT=!0,i.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,i.TREE_REDUCTION_ON_INCREMENTAL=!0,i.PURE_INCREMENTAL=i.DEFAULT_INCREMENTAL,n.exports=i},767:(n,r,e)=>{var f=e(551).FDLayoutEdge;function i(t,s,o){f.call(this,t,s,o)}i.prototype=Object.create(f.prototype);for(var g in f)i[g]=f[g];n.exports=i},880:(n,r,e)=>{var f=e(551).LGraph;function i(t,s,o){f.call(this,t,s,o)}i.prototype=Object.create(f.prototype);for(var g in f)i[g]=f[g];n.exports=i},578:(n,r,e)=>{var f=e(551).LGraphManager;function i(t){f.call(this,t)}i.prototype=Object.create(f.prototype);for(var g in f)i[g]=f[g];n.exports=i},765:(n,r,e)=>{var f=e(551).FDLayout,i=e(578),g=e(880),t=e(991),s=e(767),o=e(806),c=e(902),h=e(551).FDLayoutConstants,T=e(551).LayoutConstants,v=e(551).Point,d=e(551).PointD,N=e(551).DimensionD,S=e(551).Layout,M=e(551).Integer,P=e(551).IGeometry,K=e(551).LGraph,X=e(551).Transform,k=e(551).LinkedList;function D(){f.call(this),this.toBeTiled={},this.constraints={}}D.prototype=Object.create(f.prototype);for(var rt in f)D[rt]=f[rt];D.prototype.newGraphManager=function(){var a=new i(this);return this.graphManager=a,a},D.prototype.newGraph=function(a){return new g(null,this.graphManager,a)},D.prototype.newNode=function(a){return new t(this.graphManager,a)},D.prototype.newEdge=function(a){return new s(null,null,a)},D.prototype.initParameters=function(){f.prototype.initParameters.call(this,arguments),this.isSubLayout||(o.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=o.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=o.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=h.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=h.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=h.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=h.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},D.prototype.initSpringEmbedder=function(){f.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/h.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},D.prototype.layout=function(){var a=T.DEFAULT_CREATE_BENDS_AS_NEEDED;return a&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},D.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(o.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var m=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(I){return m.has(I)});this.graphManager.setAllNodesToApplyGravitation(p)}}else{var a=this.getFlatForest();if(a.length>0)this.positionNodesRadially(a);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var m=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(E){return m.has(E)});this.graphManager.setAllNodesToApplyGravitation(p),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(c.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),o.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},D.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%h.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var a=new Set(this.getAllNodes()),m=this.nodesWithGravity.filter(function(y){return a.has(y)});this.graphManager.setAllNodesToApplyGravitation(m),this.graphManager.updateBounds(),this.updateGrid(),o.PURE_INCREMENTAL?this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),o.PURE_INCREMENTAL?this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=h.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var p=!this.isTreeGrowing&&!this.isGrowthFinished,E=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(p,E),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},D.prototype.getPositionsData=function(){for(var a=this.graphManager.getAllNodes(),m={},p=0;p0&&this.updateDisplacements();for(var p=0;p0&&(E.fixedNodeWeight=I)}}if(this.constraints.relativePlacementConstraint){var w=new Map,R=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(O){a.fixedNodesOnHorizontal.add(O),a.fixedNodesOnVertical.add(O)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var W=this.constraints.alignmentConstraint.vertical,p=0;p=2*O.length/3;_--)H=Math.floor(Math.random()*(_+1)),B=O[_],O[_]=O[H],O[H]=B;return O},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(O){if(O.left){var H=w.has(O.left)?w.get(O.left):O.left,B=w.has(O.right)?w.get(O.right):O.right;a.nodesInRelativeHorizontal.includes(H)||(a.nodesInRelativeHorizontal.push(H),a.nodeToRelativeConstraintMapHorizontal.set(H,[]),a.dummyToNodeForVerticalAlignment.has(H)?a.nodeToTempPositionMapHorizontal.set(H,a.idToNodeMap.get(a.dummyToNodeForVerticalAlignment.get(H)[0]).getCenterX()):a.nodeToTempPositionMapHorizontal.set(H,a.idToNodeMap.get(H).getCenterX())),a.nodesInRelativeHorizontal.includes(B)||(a.nodesInRelativeHorizontal.push(B),a.nodeToRelativeConstraintMapHorizontal.set(B,[]),a.dummyToNodeForVerticalAlignment.has(B)?a.nodeToTempPositionMapHorizontal.set(B,a.idToNodeMap.get(a.dummyToNodeForVerticalAlignment.get(B)[0]).getCenterX()):a.nodeToTempPositionMapHorizontal.set(B,a.idToNodeMap.get(B).getCenterX())),a.nodeToRelativeConstraintMapHorizontal.get(H).push({right:B,gap:O.gap}),a.nodeToRelativeConstraintMapHorizontal.get(B).push({left:H,gap:O.gap})}else{var _=R.has(O.top)?R.get(O.top):O.top,lt=R.has(O.bottom)?R.get(O.bottom):O.bottom;a.nodesInRelativeVertical.includes(_)||(a.nodesInRelativeVertical.push(_),a.nodeToRelativeConstraintMapVertical.set(_,[]),a.dummyToNodeForHorizontalAlignment.has(_)?a.nodeToTempPositionMapVertical.set(_,a.idToNodeMap.get(a.dummyToNodeForHorizontalAlignment.get(_)[0]).getCenterY()):a.nodeToTempPositionMapVertical.set(_,a.idToNodeMap.get(_).getCenterY())),a.nodesInRelativeVertical.includes(lt)||(a.nodesInRelativeVertical.push(lt),a.nodeToRelativeConstraintMapVertical.set(lt,[]),a.dummyToNodeForHorizontalAlignment.has(lt)?a.nodeToTempPositionMapVertical.set(lt,a.idToNodeMap.get(a.dummyToNodeForHorizontalAlignment.get(lt)[0]).getCenterY()):a.nodeToTempPositionMapVertical.set(lt,a.idToNodeMap.get(lt).getCenterY())),a.nodeToRelativeConstraintMapVertical.get(_).push({bottom:lt,gap:O.gap}),a.nodeToRelativeConstraintMapVertical.get(lt).push({top:_,gap:O.gap})}});else{var q=new Map,V=new Map;this.constraints.relativePlacementConstraint.forEach(function(O){if(O.left){var H=w.has(O.left)?w.get(O.left):O.left,B=w.has(O.right)?w.get(O.right):O.right;q.has(H)?q.get(H).push(B):q.set(H,[B]),q.has(B)?q.get(B).push(H):q.set(B,[H])}else{var _=R.has(O.top)?R.get(O.top):O.top,lt=R.has(O.bottom)?R.get(O.bottom):O.bottom;V.has(_)?V.get(_).push(lt):V.set(_,[lt]),V.has(lt)?V.get(lt).push(_):V.set(lt,[_])}});var Y=function(H,B){var _=[],lt=[],J=new k,Rt=new Set,Lt=0;return H.forEach(function(vt,it){if(!Rt.has(it)){_[Lt]=[],lt[Lt]=!1;var gt=it;for(J.push(gt),Rt.add(gt),_[Lt].push(gt);J.length!=0;){gt=J.shift(),B.has(gt)&&(lt[Lt]=!0);var Tt=H.get(gt);Tt.forEach(function(At){Rt.has(At)||(J.push(At),Rt.add(At),_[Lt].push(At))})}Lt++}}),{components:_,isFixed:lt}},et=Y(q,a.fixedNodesOnHorizontal);this.componentsOnHorizontal=et.components,this.fixedComponentsOnHorizontal=et.isFixed;var z=Y(V,a.fixedNodesOnVertical);this.componentsOnVertical=z.components,this.fixedComponentsOnVertical=z.isFixed}}},D.prototype.updateDisplacements=function(){var a=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(z){var O=a.idToNodeMap.get(z.nodeId);O.displacementX=0,O.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var m=this.constraints.alignmentConstraint.vertical,p=0;p1){var R;for(R=0;RE&&(E=Math.floor(w.y)),I=Math.floor(w.x+o.DEFAULT_COMPONENT_SEPERATION)}this.transform(new d(T.WORLD_CENTER_X-w.x/2,T.WORLD_CENTER_Y-w.y/2))},D.radialLayout=function(a,m,p){var E=Math.max(this.maxDiagonalInTree(a),o.DEFAULT_RADIAL_SEPARATION);D.branchRadialLayout(m,null,0,359,0,E);var y=K.calculateBounds(a),I=new X;I.setDeviceOrgX(y.getMinX()),I.setDeviceOrgY(y.getMinY()),I.setWorldOrgX(p.x),I.setWorldOrgY(p.y);for(var w=0;w1;){var B=H[0];H.splice(0,1);var _=V.indexOf(B);_>=0&&V.splice(_,1),z--,Y--}m!=null?O=(V.indexOf(H[0])+1)%z:O=0;for(var lt=Math.abs(E-p)/Y,J=O;et!=Y;J=++J%z){var Rt=V[J].getOtherEnd(a);if(Rt!=m){var Lt=(p+et*lt)%360,vt=(Lt+lt)%360;D.branchRadialLayout(Rt,a,Lt,vt,y+I,I),et++}}},D.maxDiagonalInTree=function(a){for(var m=M.MIN_VALUE,p=0;pm&&(m=y)}return m},D.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},D.prototype.groupZeroDegreeMembers=function(){var a=this,m={};this.memberGroups={},this.idToDummyNode={};for(var p=[],E=this.graphManager.getAllNodes(),y=0;y"u"&&(m[R]=[]),m[R]=m[R].concat(I)}Object.keys(m).forEach(function(W){if(m[W].length>1){var x="DummyCompound_"+W;a.memberGroups[x]=m[W];var q=m[W][0].getParent(),V=new t(a.graphManager);V.id=x,V.paddingLeft=q.paddingLeft||0,V.paddingRight=q.paddingRight||0,V.paddingBottom=q.paddingBottom||0,V.paddingTop=q.paddingTop||0,a.idToDummyNode[x]=V;var Y=a.getGraphManager().add(a.newGraph(),V),et=q.getChild();et.add(V);for(var z=0;zy?(E.rect.x-=(E.labelWidth-y)/2,E.setWidth(E.labelWidth),E.labelMarginLeft=(E.labelWidth-y)/2):E.labelPosHorizontal=="right"&&E.setWidth(y+E.labelWidth)),E.labelHeight&&(E.labelPosVertical=="top"?(E.rect.y-=E.labelHeight,E.setHeight(I+E.labelHeight),E.labelMarginTop=E.labelHeight):E.labelPosVertical=="center"&&E.labelHeight>I?(E.rect.y-=(E.labelHeight-I)/2,E.setHeight(E.labelHeight),E.labelMarginTop=(E.labelHeight-I)/2):E.labelPosVertical=="bottom"&&E.setHeight(I+E.labelHeight))}})},D.prototype.repopulateCompounds=function(){for(var a=this.compoundOrder.length-1;a>=0;a--){var m=this.compoundOrder[a],p=m.id,E=m.paddingLeft,y=m.paddingTop,I=m.labelMarginLeft,w=m.labelMarginTop;this.adjustLocations(this.tiledMemberPack[p],m.rect.x,m.rect.y,E,y,I,w)}},D.prototype.repopulateZeroDegreeMembers=function(){var a=this,m=this.tiledZeroDegreePack;Object.keys(m).forEach(function(p){var E=a.idToDummyNode[p],y=E.paddingLeft,I=E.paddingTop,w=E.labelMarginLeft,R=E.labelMarginTop;a.adjustLocations(m[p],E.rect.x,E.rect.y,y,I,w,R)})},D.prototype.getToBeTiled=function(a){var m=a.id;if(this.toBeTiled[m]!=null)return this.toBeTiled[m];var p=a.getChild();if(p==null)return this.toBeTiled[m]=!1,!1;for(var E=p.getNodes(),y=0;y0)return this.toBeTiled[m]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[m]=!1,!1}return this.toBeTiled[m]=!0,!0},D.prototype.getNodeDegree=function(a){a.id;for(var m=a.getEdges(),p=0,E=0;Eq&&(q=Y.rect.height)}p+=q+a.verticalPadding}},D.prototype.tileCompoundMembers=function(a,m){var p=this;this.tiledMemberPack=[],Object.keys(a).forEach(function(E){var y=m[E];if(p.tiledMemberPack[E]=p.tileNodes(a[E],y.paddingLeft+y.paddingRight),y.rect.width=p.tiledMemberPack[E].width,y.rect.height=p.tiledMemberPack[E].height,y.setCenter(p.tiledMemberPack[E].centerX,p.tiledMemberPack[E].centerY),y.labelMarginLeft=0,y.labelMarginTop=0,o.NODE_DIMENSIONS_INCLUDE_LABELS){var I=y.rect.width,w=y.rect.height;y.labelWidth&&(y.labelPosHorizontal=="left"?(y.rect.x-=y.labelWidth,y.setWidth(I+y.labelWidth),y.labelMarginLeft=y.labelWidth):y.labelPosHorizontal=="center"&&y.labelWidth>I?(y.rect.x-=(y.labelWidth-I)/2,y.setWidth(y.labelWidth),y.labelMarginLeft=(y.labelWidth-I)/2):y.labelPosHorizontal=="right"&&y.setWidth(I+y.labelWidth)),y.labelHeight&&(y.labelPosVertical=="top"?(y.rect.y-=y.labelHeight,y.setHeight(w+y.labelHeight),y.labelMarginTop=y.labelHeight):y.labelPosVertical=="center"&&y.labelHeight>w?(y.rect.y-=(y.labelHeight-w)/2,y.setHeight(y.labelHeight),y.labelMarginTop=(y.labelHeight-w)/2):y.labelPosVertical=="bottom"&&y.setHeight(w+y.labelHeight))}})},D.prototype.tileNodes=function(a,m){var p=this.tileNodesByFavoringDim(a,m,!0),E=this.tileNodesByFavoringDim(a,m,!1),y=this.getOrgRatio(p),I=this.getOrgRatio(E),w;return IR&&(R=z.getWidth())});var W=I/y,x=w/y,q=Math.pow(p-E,2)+4*(W+E)*(x+p)*y,V=(E-p+Math.sqrt(q))/(2*(W+E)),Y;m?(Y=Math.ceil(V),Y==V&&Y++):Y=Math.floor(V);var et=Y*(W+E)-E;return R>et&&(et=R),et+=E*2,et},D.prototype.tileNodesByFavoringDim=function(a,m,p){var E=o.TILING_PADDING_VERTICAL,y=o.TILING_PADDING_HORIZONTAL,I=o.TILING_COMPARE_BY,w={rows:[],rowWidth:[],rowHeight:[],width:0,height:m,verticalPadding:E,horizontalPadding:y,centerX:0,centerY:0};I&&(w.idealRowWidth=this.calcIdealRowWidth(a,p));var R=function(O){return O.rect.width*O.rect.height},W=function(O,H){return R(H)-R(O)};a.sort(function(z,O){var H=W;return w.idealRowWidth?(H=I,H(z.id,O.id)):H(z,O)});for(var x=0,q=0,V=0;V0&&(w+=a.horizontalPadding),a.rowWidth[p]=w,a.width0&&(R+=a.verticalPadding);var W=0;R>a.rowHeight[p]&&(W=a.rowHeight[p],a.rowHeight[p]=R,W=a.rowHeight[p]-W),a.height+=W,a.rows[p].push(m)},D.prototype.getShortestRowIndex=function(a){for(var m=-1,p=Number.MAX_VALUE,E=0;Ep&&(m=E,p=a.rowWidth[E]);return m},D.prototype.canAddHorizontal=function(a,m,p){if(a.idealRowWidth){var E=a.rows.length-1,y=a.rowWidth[E];return y+m+a.horizontalPadding<=a.idealRowWidth}var I=this.getShortestRowIndex(a);if(I<0)return!0;var w=a.rowWidth[I];if(w+a.horizontalPadding+m<=a.width)return!0;var R=0;a.rowHeight[I]0&&(R=p+a.verticalPadding-a.rowHeight[I]);var W;a.width-w>=m+a.horizontalPadding?W=(a.height+R)/(w+m+a.horizontalPadding):W=(a.height+R)/a.width,R=p+a.verticalPadding;var x;return a.widthI&&m!=p){E.splice(-1,1),a.rows[p].push(y),a.rowWidth[m]=a.rowWidth[m]-I,a.rowWidth[p]=a.rowWidth[p]+I,a.width=a.rowWidth[instance.getLongestRowIndex(a)];for(var w=Number.MIN_VALUE,R=0;Rw&&(w=E[R].height);m>0&&(w+=a.verticalPadding);var W=a.rowHeight[m]+a.rowHeight[p];a.rowHeight[m]=w,a.rowHeight[p]0)for(var et=y;et<=I;et++)Y[0]+=this.grid[et][w-1].length+this.grid[et][w].length-1;if(I0)for(var et=w;et<=R;et++)Y[3]+=this.grid[y-1][et].length+this.grid[y][et].length-1;for(var z=M.MAX_VALUE,O,H,B=0;B{var f=e(551).FDLayoutNode,i=e(551).IMath;function g(s,o,c,h){f.call(this,s,o,c,h)}g.prototype=Object.create(f.prototype);for(var t in f)g[t]=f[t];g.prototype.calculateDisplacement=function(){var s=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementX=s.coolingFactor*s.maxNodeDisplacement*i.sign(this.displacementX)),Math.abs(this.displacementY)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementY=s.coolingFactor*s.maxNodeDisplacement*i.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},g.prototype.propogateDisplacementToChildren=function(s,o){for(var c=this.getChild().getNodes(),h,T=0;T{function f(c){if(Array.isArray(c)){for(var h=0,T=Array(c.length);h0){var Ct=0;st.forEach(function(ht){$=="horizontal"?(tt.set(ht,v.has(ht)?d[v.get(ht)]:Z.get(ht)),Ct+=tt.get(ht)):(tt.set(ht,v.has(ht)?N[v.get(ht)]:Z.get(ht)),Ct+=tt.get(ht))}),Ct=Ct/st.length,ft.forEach(function(ht){Q.has(ht)||tt.set(ht,Ct)})}else{var ct=0;ft.forEach(function(ht){$=="horizontal"?ct+=v.has(ht)?d[v.get(ht)]:Z.get(ht):ct+=v.has(ht)?N[v.get(ht)]:Z.get(ht)}),ct=ct/ft.length,ft.forEach(function(ht){tt.set(ht,ct)})}});for(var wt=function(){var st=dt.shift(),Ct=b.get(st);Ct.forEach(function(ct){if(tt.get(ct.id)ht&&(ht=qt),_tWt&&(Wt=_t)}}catch(ie){Mt=!0,Zt=ie}finally{try{!Nt&&Gt.return&&Gt.return()}finally{if(Mt)throw Zt}}var de=(Ct+ht)/2-(ct+Wt)/2,Kt=!0,te=!1,ee=void 0;try{for(var jt=ft[Symbol.iterator](),se;!(Kt=(se=jt.next()).done);Kt=!0){var re=se.value;tt.set(re,tt.get(re)+de)}}catch(ie){te=!0,ee=ie}finally{try{!Kt&&jt.return&&jt.return()}finally{if(te)throw ee}}})}return tt},rt=function(b){var $=0,Q=0,Z=0,nt=0;if(b.forEach(function(j){j.left?d[v.get(j.left)]-d[v.get(j.right)]>=0?$++:Q++:N[v.get(j.top)]-N[v.get(j.bottom)]>=0?Z++:nt++}),$>Q&&Z>nt)for(var ut=0;utQ)for(var ot=0;otnt)for(var tt=0;tt1)h.fixedNodeConstraint.forEach(function(F,b){E[b]=[F.position.x,F.position.y],y[b]=[d[v.get(F.nodeId)],N[v.get(F.nodeId)]]}),I=!0;else if(h.alignmentConstraint)(function(){var F=0;if(h.alignmentConstraint.vertical){for(var b=h.alignmentConstraint.vertical,$=function(tt){var j=new Set;b[tt].forEach(function(yt){j.add(yt)});var dt=new Set([].concat(f(j)).filter(function(yt){return R.has(yt)})),wt=void 0;dt.size>0?wt=d[v.get(dt.values().next().value)]:wt=k(j).x,b[tt].forEach(function(yt){E[F]=[wt,N[v.get(yt)]],y[F]=[d[v.get(yt)],N[v.get(yt)]],F++})},Q=0;Q0?wt=d[v.get(dt.values().next().value)]:wt=k(j).y,Z[tt].forEach(function(yt){E[F]=[d[v.get(yt)],wt],y[F]=[d[v.get(yt)],N[v.get(yt)]],F++})},ut=0;utV&&(V=q[et].length,Y=et);if(V0){var mt={x:0,y:0};h.fixedNodeConstraint.forEach(function(F,b){var $={x:d[v.get(F.nodeId)],y:N[v.get(F.nodeId)]},Q=F.position,Z=X(Q,$);mt.x+=Z.x,mt.y+=Z.y}),mt.x/=h.fixedNodeConstraint.length,mt.y/=h.fixedNodeConstraint.length,d.forEach(function(F,b){d[b]+=mt.x}),N.forEach(function(F,b){N[b]+=mt.y}),h.fixedNodeConstraint.forEach(function(F){d[v.get(F.nodeId)]=F.position.x,N[v.get(F.nodeId)]=F.position.y})}if(h.alignmentConstraint){if(h.alignmentConstraint.vertical)for(var xt=h.alignmentConstraint.vertical,St=function(b){var $=new Set;xt[b].forEach(function(nt){$.add(nt)});var Q=new Set([].concat(f($)).filter(function(nt){return R.has(nt)})),Z=void 0;Q.size>0?Z=d[v.get(Q.values().next().value)]:Z=k($).x,$.forEach(function(nt){R.has(nt)||(d[v.get(nt)]=Z)})},Vt=0;Vt0?Z=N[v.get(Q.values().next().value)]:Z=k($).y,$.forEach(function(nt){R.has(nt)||(N[v.get(nt)]=Z)})},bt=0;bt{n.exports=A}},L={};function u(n){var r=L[n];if(r!==void 0)return r.exports;var e=L[n]={exports:{}};return G[n](e,e.exports,u),e.exports}var l=u(45);return l})()})}(fe)),fe.exports}var vr=le.exports,Re;function pr(){return Re||(Re=1,function(C,U){(function(G,L){C.exports=L(dr())})(vr,function(A){return(()=>{var G={658:n=>{n.exports=Object.assign!=null?Object.assign.bind(Object):function(r){for(var e=arguments.length,f=Array(e>1?e-1:0),i=1;i{var f=function(){function t(s,o){var c=[],h=!0,T=!1,v=void 0;try{for(var d=s[Symbol.iterator](),N;!(h=(N=d.next()).done)&&(c.push(N.value),!(o&&c.length===o));h=!0);}catch(S){T=!0,v=S}finally{try{!h&&d.return&&d.return()}finally{if(T)throw v}}return c}return function(s,o){if(Array.isArray(s))return s;if(Symbol.iterator in Object(s))return t(s,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=e(140).layoutBase.LinkedList,g={};g.getTopMostNodes=function(t){for(var s={},o=0;o0&&I.merge(x)});for(var w=0;w1){N=v[0],S=N.connectedEdges().length,v.forEach(function(y){y.connectedEdges().length0&&c.set("dummy"+(c.size+1),K),X},g.relocateComponent=function(t,s,o){if(!o.fixedNodeConstraint){var c=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,T=Number.POSITIVE_INFINITY,v=Number.NEGATIVE_INFINITY;if(o.quality=="draft"){var d=!0,N=!1,S=void 0;try{for(var M=s.nodeIndexes[Symbol.iterator](),P;!(d=(P=M.next()).done);d=!0){var K=P.value,X=f(K,2),k=X[0],D=X[1],rt=o.cy.getElementById(k);if(rt){var a=rt.boundingBox(),m=s.xCoords[D]-a.w/2,p=s.xCoords[D]+a.w/2,E=s.yCoords[D]-a.h/2,y=s.yCoords[D]+a.h/2;mh&&(h=p),Ev&&(v=y)}}}catch(x){N=!0,S=x}finally{try{!d&&M.return&&M.return()}finally{if(N)throw S}}var I=t.x-(h+c)/2,w=t.y-(v+T)/2;s.xCoords=s.xCoords.map(function(x){return x+I}),s.yCoords=s.yCoords.map(function(x){return x+w})}else{Object.keys(s).forEach(function(x){var q=s[x],V=q.getRect().x,Y=q.getRect().x+q.getRect().width,et=q.getRect().y,z=q.getRect().y+q.getRect().height;Vh&&(h=Y),etv&&(v=z)});var R=t.x-(h+c)/2,W=t.y-(v+T)/2;Object.keys(s).forEach(function(x){var q=s[x];q.setCenter(q.getCenterX()+R,q.getCenterY()+W)})}}},g.calcBoundingBox=function(t,s,o,c){for(var h=Number.MAX_SAFE_INTEGER,T=Number.MIN_SAFE_INTEGER,v=Number.MAX_SAFE_INTEGER,d=Number.MIN_SAFE_INTEGER,N=void 0,S=void 0,M=void 0,P=void 0,K=t.descendants().not(":parent"),X=K.length,k=0;kN&&(h=N),TM&&(v=M),d{var f=e(548),i=e(140).CoSELayout,g=e(140).CoSENode,t=e(140).layoutBase.PointD,s=e(140).layoutBase.DimensionD,o=e(140).layoutBase.LayoutConstants,c=e(140).layoutBase.FDLayoutConstants,h=e(140).CoSEConstants,T=function(d,N){var S=d.cy,M=d.eles,P=M.nodes(),K=M.edges(),X=void 0,k=void 0,D=void 0,rt={};d.randomize&&(X=N.nodeIndexes,k=N.xCoords,D=N.yCoords);var a=function(x){return typeof x=="function"},m=function(x,q){return a(x)?x(q):x},p=f.calcParentsWithoutChildren(S,M),E=function W(x,q,V,Y){for(var et=q.length,z=0;z0){var J=void 0;J=V.getGraphManager().add(V.newGraph(),B),W(J,H,V,Y)}}},y=function(x,q,V){for(var Y=0,et=0,z=0;z0?h.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=Y/et:a(d.idealEdgeLength)?h.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=50:h.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=d.idealEdgeLength,h.MIN_REPULSION_DIST=c.MIN_REPULSION_DIST=c.DEFAULT_EDGE_LENGTH/10,h.DEFAULT_RADIAL_SEPARATION=c.DEFAULT_EDGE_LENGTH)},I=function(x,q){q.fixedNodeConstraint&&(x.constraints.fixedNodeConstraint=q.fixedNodeConstraint),q.alignmentConstraint&&(x.constraints.alignmentConstraint=q.alignmentConstraint),q.relativePlacementConstraint&&(x.constraints.relativePlacementConstraint=q.relativePlacementConstraint)};d.nestingFactor!=null&&(h.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=c.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=d.nestingFactor),d.gravity!=null&&(h.DEFAULT_GRAVITY_STRENGTH=c.DEFAULT_GRAVITY_STRENGTH=d.gravity),d.numIter!=null&&(h.MAX_ITERATIONS=c.MAX_ITERATIONS=d.numIter),d.gravityRange!=null&&(h.DEFAULT_GRAVITY_RANGE_FACTOR=c.DEFAULT_GRAVITY_RANGE_FACTOR=d.gravityRange),d.gravityCompound!=null&&(h.DEFAULT_COMPOUND_GRAVITY_STRENGTH=c.DEFAULT_COMPOUND_GRAVITY_STRENGTH=d.gravityCompound),d.gravityRangeCompound!=null&&(h.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=c.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=d.gravityRangeCompound),d.initialEnergyOnIncremental!=null&&(h.DEFAULT_COOLING_FACTOR_INCREMENTAL=c.DEFAULT_COOLING_FACTOR_INCREMENTAL=d.initialEnergyOnIncremental),d.tilingCompareBy!=null&&(h.TILING_COMPARE_BY=d.tilingCompareBy),d.quality=="proof"?o.QUALITY=2:o.QUALITY=0,h.NODE_DIMENSIONS_INCLUDE_LABELS=c.NODE_DIMENSIONS_INCLUDE_LABELS=o.NODE_DIMENSIONS_INCLUDE_LABELS=d.nodeDimensionsIncludeLabels,h.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!d.randomize,h.ANIMATE=c.ANIMATE=o.ANIMATE=d.animate,h.TILE=d.tile,h.TILING_PADDING_VERTICAL=typeof d.tilingPaddingVertical=="function"?d.tilingPaddingVertical.call():d.tilingPaddingVertical,h.TILING_PADDING_HORIZONTAL=typeof d.tilingPaddingHorizontal=="function"?d.tilingPaddingHorizontal.call():d.tilingPaddingHorizontal,h.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!0,h.PURE_INCREMENTAL=!d.randomize,o.DEFAULT_UNIFORM_LEAF_NODE_SIZES=d.uniformNodeDimensions,d.step=="transformed"&&(h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!1,h.APPLY_LAYOUT=!1),d.step=="enforced"&&(h.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!1),d.step=="cose"&&(h.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,h.ENFORCE_CONSTRAINTS=!1,h.APPLY_LAYOUT=!0),d.step=="all"&&(d.randomize?h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:h.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0),d.fixedNodeConstraint||d.alignmentConstraint||d.relativePlacementConstraint?h.TREE_REDUCTION_ON_INCREMENTAL=!1:h.TREE_REDUCTION_ON_INCREMENTAL=!0;var w=new i,R=w.newGraphManager();return E(R.addRoot(),f.getTopMostNodes(P),w,d),y(w,R,K),I(w,d),w.runLayout(),rt};n.exports={coseLayout:T}},212:(n,r,e)=>{var f=function(){function d(N,S){for(var M=0;M0)if(p){var I=t.getTopMostNodes(M.eles.nodes());if(D=t.connectComponents(P,M.eles,I),D.forEach(function(vt){var it=vt.boundingBox();rt.push({x:it.x1+it.w/2,y:it.y1+it.h/2})}),M.randomize&&D.forEach(function(vt){M.eles=vt,X.push(o(M))}),M.quality=="default"||M.quality=="proof"){var w=P.collection();if(M.tile){var R=new Map,W=[],x=[],q=0,V={nodeIndexes:R,xCoords:W,yCoords:x},Y=[];if(D.forEach(function(vt,it){vt.edges().length==0&&(vt.nodes().forEach(function(gt,Tt){w.merge(vt.nodes()[Tt]),gt.isParent()||(V.nodeIndexes.set(vt.nodes()[Tt].id(),q++),V.xCoords.push(vt.nodes()[0].position().x),V.yCoords.push(vt.nodes()[0].position().y))}),Y.push(it))}),w.length>1){var et=w.boundingBox();rt.push({x:et.x1+et.w/2,y:et.y1+et.h/2}),D.push(w),X.push(V);for(var z=Y.length-1;z>=0;z--)D.splice(Y[z],1),X.splice(Y[z],1),rt.splice(Y[z],1)}}D.forEach(function(vt,it){M.eles=vt,k.push(h(M,X[it])),t.relocateComponent(rt[it],k[it],M)})}else D.forEach(function(vt,it){t.relocateComponent(rt[it],X[it],M)});var O=new Set;if(D.length>1){var H=[],B=K.filter(function(vt){return vt.css("display")=="none"});D.forEach(function(vt,it){var gt=void 0;if(M.quality=="draft"&&(gt=X[it].nodeIndexes),vt.nodes().not(B).length>0){var Tt={};Tt.edges=[],Tt.nodes=[];var At=void 0;vt.nodes().not(B).forEach(function(Dt){if(M.quality=="draft")if(!Dt.isParent())At=gt.get(Dt.id()),Tt.nodes.push({x:X[it].xCoords[At]-Dt.boundingbox().w/2,y:X[it].yCoords[At]-Dt.boundingbox().h/2,width:Dt.boundingbox().w,height:Dt.boundingbox().h});else{var mt=t.calcBoundingBox(Dt,X[it].xCoords,X[it].yCoords,gt);Tt.nodes.push({x:mt.topLeftX,y:mt.topLeftY,width:mt.width,height:mt.height})}else k[it][Dt.id()]&&Tt.nodes.push({x:k[it][Dt.id()].getLeft(),y:k[it][Dt.id()].getTop(),width:k[it][Dt.id()].getWidth(),height:k[it][Dt.id()].getHeight()})}),vt.edges().forEach(function(Dt){var mt=Dt.source(),xt=Dt.target();if(mt.css("display")!="none"&&xt.css("display")!="none")if(M.quality=="draft"){var St=gt.get(mt.id()),Vt=gt.get(xt.id()),Xt=[],Ut=[];if(mt.isParent()){var bt=t.calcBoundingBox(mt,X[it].xCoords,X[it].yCoords,gt);Xt.push(bt.topLeftX+bt.width/2),Xt.push(bt.topLeftY+bt.height/2)}else Xt.push(X[it].xCoords[St]),Xt.push(X[it].yCoords[St]);if(xt.isParent()){var Ht=t.calcBoundingBox(xt,X[it].xCoords,X[it].yCoords,gt);Ut.push(Ht.topLeftX+Ht.width/2),Ut.push(Ht.topLeftY+Ht.height/2)}else Ut.push(X[it].xCoords[Vt]),Ut.push(X[it].yCoords[Vt]);Tt.edges.push({startX:Xt[0],startY:Xt[1],endX:Ut[0],endY:Ut[1]})}else k[it][mt.id()]&&k[it][xt.id()]&&Tt.edges.push({startX:k[it][mt.id()].getCenterX(),startY:k[it][mt.id()].getCenterY(),endX:k[it][xt.id()].getCenterX(),endY:k[it][xt.id()].getCenterY()})}),Tt.nodes.length>0&&(H.push(Tt),O.add(it))}});var _=m.packComponents(H,M.randomize).shifts;if(M.quality=="draft")X.forEach(function(vt,it){var gt=vt.xCoords.map(function(At){return At+_[it].dx}),Tt=vt.yCoords.map(function(At){return At+_[it].dy});vt.xCoords=gt,vt.yCoords=Tt});else{var lt=0;O.forEach(function(vt){Object.keys(k[vt]).forEach(function(it){var gt=k[vt][it];gt.setCenter(gt.getCenterX()+_[lt].dx,gt.getCenterY()+_[lt].dy)}),lt++})}}}else{var E=M.eles.boundingBox();if(rt.push({x:E.x1+E.w/2,y:E.y1+E.h/2}),M.randomize){var y=o(M);X.push(y)}M.quality=="default"||M.quality=="proof"?(k.push(h(M,X[0])),t.relocateComponent(rt[0],k[0],M)):t.relocateComponent(rt[0],X[0],M)}var J=function(it,gt){if(M.quality=="default"||M.quality=="proof"){typeof it=="number"&&(it=gt);var Tt=void 0,At=void 0,Dt=it.data("id");return k.forEach(function(xt){Dt in xt&&(Tt={x:xt[Dt].getRect().getCenterX(),y:xt[Dt].getRect().getCenterY()},At=xt[Dt])}),M.nodeDimensionsIncludeLabels&&(At.labelWidth&&(At.labelPosHorizontal=="left"?Tt.x+=At.labelWidth/2:At.labelPosHorizontal=="right"&&(Tt.x-=At.labelWidth/2)),At.labelHeight&&(At.labelPosVertical=="top"?Tt.y+=At.labelHeight/2:At.labelPosVertical=="bottom"&&(Tt.y-=At.labelHeight/2))),Tt==null&&(Tt={x:it.position("x"),y:it.position("y")}),{x:Tt.x,y:Tt.y}}else{var mt=void 0;return X.forEach(function(xt){var St=xt.nodeIndexes.get(it.id());St!=null&&(mt={x:xt.xCoords[St],y:xt.yCoords[St]})}),mt==null&&(mt={x:it.position("x"),y:it.position("y")}),{x:mt.x,y:mt.y}}};if(M.quality=="default"||M.quality=="proof"||M.randomize){var Rt=t.calcParentsWithoutChildren(P,K),Lt=K.filter(function(vt){return vt.css("display")=="none"});M.eles=K.not(Lt),K.nodes().not(":parent").not(Lt).layoutPositions(S,M,J),Rt.length>0&&Rt.forEach(function(vt){vt.position(J(vt))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),d}();n.exports=v},657:(n,r,e)=>{var f=e(548),i=e(140).layoutBase.Matrix,g=e(140).layoutBase.SVD,t=function(o){var c=o.cy,h=o.eles,T=h.nodes(),v=h.nodes(":parent"),d=new Map,N=new Map,S=new Map,M=[],P=[],K=[],X=[],k=[],D=[],rt=[],a=[],m=void 0,p=1e8,E=1e-9,y=o.piTol,I=o.samplingType,w=o.nodeSeparation,R=void 0,W=function(){for(var b=0,$=0,Q=!1;$=nt;){ot=Z[nt++];for(var It=M[ot],ft=0;ftdt&&(dt=k[Ct],wt=Ct)}return wt},q=function(b){var $=void 0;if(b){$=Math.floor(Math.random()*m);for(var Z=0;Z=1)break;j=tt}for(var yt=0;yt=1)break;j=tt}for(var ft=0;ft0&&($.isParent()?M[b].push(S.get($.id())):M[b].push($.id()))})});var Lt=function(b){var $=N.get(b),Q=void 0;d.get(b).forEach(function(Z){c.getElementById(Z).isParent()?Q=S.get(Z):Q=Z,M[$].push(Q),M[N.get(Q)].push(b)})},vt=!0,it=!1,gt=void 0;try{for(var Tt=d.keys()[Symbol.iterator](),At;!(vt=(At=Tt.next()).done);vt=!0){var Dt=At.value;Lt(Dt)}}catch(F){it=!0,gt=F}finally{try{!vt&&Tt.return&&Tt.return()}finally{if(it)throw gt}}m=N.size;var mt=void 0;if(m>2){R=m{var f=e(212),i=function(t){t&&t("layout","fcose",f)};typeof cytoscape<"u"&&i(cytoscape),n.exports=i},140:n=>{n.exports=A}},L={};function u(n){var r=L[n];if(r!==void 0)return r.exports;var e=L[n]={exports:{}};return G[n](e,e.exports,u),e.exports}var l=u(579);return l})()})}(le)),le.exports}var yr=pr();const Er=fr(yr);var Se={L:"left",R:"right",T:"top",B:"bottom"},Fe={L:at(C=>`${C},${C/2} 0,${C} 0,0`,"L"),R:at(C=>`0,${C/2} ${C},0 ${C},${C}`,"R"),T:at(C=>`0,0 ${C},0 ${C/2},${C}`,"T"),B:at(C=>`${C/2},0 ${C},${C} 0,${C}`,"B")},he={L:at((C,U)=>C-U+2,"L"),R:at((C,U)=>C-2,"R"),T:at((C,U)=>C-U+2,"T"),B:at((C,U)=>C-2,"B")},mr=at(function(C){return zt(C)?C==="L"?"R":"L":C==="T"?"B":"T"},"getOppositeArchitectureDirection"),be=at(function(C){const U=C;return U==="L"||U==="R"||U==="T"||U==="B"},"isArchitectureDirection"),zt=at(function(C){const U=C;return U==="L"||U==="R"},"isArchitectureDirectionX"),Qt=at(function(C){const U=C;return U==="T"||U==="B"},"isArchitectureDirectionY"),Ce=at(function(C,U){const A=zt(C)&&Qt(U),G=Qt(C)&&zt(U);return A||G},"isArchitectureDirectionXY"),Tr=at(function(C){const U=C[0],A=C[1],G=zt(U)&&Qt(A),L=Qt(U)&&zt(A);return G||L},"isArchitecturePairXY"),Nr=at(function(C){return C!=="LL"&&C!=="RR"&&C!=="TT"&&C!=="BB"},"isValidArchitectureDirectionPair"),Te=at(function(C,U){const A=`${C}${U}`;return Nr(A)?A:void 0},"getArchitectureDirectionPair"),Lr=at(function([C,U],A){const G=A[0],L=A[1];return zt(G)?Qt(L)?[C+(G==="L"?-1:1),U+(L==="T"?1:-1)]:[C+(G==="L"?-1:1),U]:zt(L)?[C+(L==="L"?1:-1),U+(G==="T"?1:-1)]:[C,U+(G==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),Cr=at(function(C){return C==="LT"||C==="TL"?[1,1]:C==="BL"||C==="LB"?[1,-1]:C==="BR"||C==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),Mr=at(function(C,U){return Ce(C,U)?"bend":zt(C)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),Ar=at(function(C){return C.type==="service"},"isArchitectureService"),wr=at(function(C){return C.type==="junction"},"isArchitectureJunction"),Ue=at(C=>C.data(),"edgeData"),ae=at(C=>C.data(),"nodeData"),Ye=nr.architecture,pt=new hr(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:Ye,dataStructures:void 0,elements:{}})),Or=at(()=>{pt.reset(),rr()},"clear"),Dr=at(function({id:C,icon:U,in:A,title:G,iconText:L}){if(pt.records.registeredIds[C]!==void 0)throw new Error(`The service id [${C}] is already in use by another ${pt.records.registeredIds[C]}`);if(A!==void 0){if(C===A)throw new Error(`The service [${C}] cannot be placed within itself`);if(pt.records.registeredIds[A]===void 0)throw new Error(`The service [${C}]'s parent does not exist. Please make sure the parent is created before this service`);if(pt.records.registeredIds[A]==="node")throw new Error(`The service [${C}]'s parent is not a group`)}pt.records.registeredIds[C]="node",pt.records.nodes[C]={id:C,type:"service",icon:U,iconText:L,title:G,edges:[],in:A}},"addService"),xr=at(()=>Object.values(pt.records.nodes).filter(Ar),"getServices"),Ir=at(function({id:C,in:U}){pt.records.registeredIds[C]="node",pt.records.nodes[C]={id:C,type:"junction",edges:[],in:U}},"addJunction"),Rr=at(()=>Object.values(pt.records.nodes).filter(wr),"getJunctions"),Sr=at(()=>Object.values(pt.records.nodes),"getNodes"),Ne=at(C=>pt.records.nodes[C],"getNode"),Fr=at(function({id:C,icon:U,in:A,title:G}){if(pt.records.registeredIds[C]!==void 0)throw new Error(`The group id [${C}] is already in use by another ${pt.records.registeredIds[C]}`);if(A!==void 0){if(C===A)throw new Error(`The group [${C}] cannot be placed within itself`);if(pt.records.registeredIds[A]===void 0)throw new Error(`The group [${C}]'s parent does not exist. Please make sure the parent is created before this group`);if(pt.records.registeredIds[A]==="node")throw new Error(`The group [${C}]'s parent is not a group`)}pt.records.registeredIds[C]="group",pt.records.groups[C]={id:C,icon:U,title:G,in:A}},"addGroup"),br=at(()=>Object.values(pt.records.groups),"getGroups"),Pr=at(function({lhsId:C,rhsId:U,lhsDir:A,rhsDir:G,lhsInto:L,rhsInto:u,lhsGroup:l,rhsGroup:n,title:r}){if(!be(A))throw new Error(`Invalid direction given for left hand side of edge ${C}--${U}. Expected (L,R,T,B) got ${A}`);if(!be(G))throw new Error(`Invalid direction given for right hand side of edge ${C}--${U}. Expected (L,R,T,B) got ${G}`);if(pt.records.nodes[C]===void 0&&pt.records.groups[C]===void 0)throw new Error(`The left-hand id [${C}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(pt.records.nodes[U]===void 0&&pt.records.groups[C]===void 0)throw new Error(`The right-hand id [${U}] does not yet exist. Please create the service/group before declaring an edge to it.`);const e=pt.records.nodes[C].in,f=pt.records.nodes[U].in;if(l&&e&&f&&e==f)throw new Error(`The left-hand id [${C}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(n&&e&&f&&e==f)throw new Error(`The right-hand id [${U}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);const i={lhsId:C,lhsDir:A,lhsInto:L,lhsGroup:l,rhsId:U,rhsDir:G,rhsInto:u,rhsGroup:n,title:r};pt.records.edges.push(i),pt.records.nodes[C]&&pt.records.nodes[U]&&(pt.records.nodes[C].edges.push(pt.records.edges[pt.records.edges.length-1]),pt.records.nodes[U].edges.push(pt.records.edges[pt.records.edges.length-1]))},"addEdge"),Gr=at(()=>pt.records.edges,"getEdges"),Ur=at(()=>{if(pt.records.dataStructures===void 0){const C={},U=Object.entries(pt.records.nodes).reduce((n,[r,e])=>(n[r]=e.edges.reduce((f,i)=>{var s,o;const g=(s=Ne(i.lhsId))==null?void 0:s.in,t=(o=Ne(i.rhsId))==null?void 0:o.in;if(g&&t&&g!==t){const c=Mr(i.lhsDir,i.rhsDir);c!=="bend"&&(C[g]??(C[g]={}),C[g][t]=c,C[t]??(C[t]={}),C[t][g]=c)}if(i.lhsId===r){const c=Te(i.lhsDir,i.rhsDir);c&&(f[c]=i.rhsId)}else{const c=Te(i.rhsDir,i.lhsDir);c&&(f[c]=i.lhsId)}return f},{}),n),{}),A=Object.keys(U)[0],G={[A]:1},L=Object.keys(U).reduce((n,r)=>r===A?n:{...n,[r]:1},{}),u=at(n=>{const r={[n]:[0,0]},e=[n];for(;e.length>0;){const f=e.shift();if(f){G[f]=1,delete L[f];const i=U[f],[g,t]=r[f];Object.entries(i).forEach(([s,o])=>{G[o]||(r[o]=Lr([g,t],s),e.push(o))})}}return r},"BFS"),l=[u(A)];for(;Object.keys(L).length>0;)l.push(u(Object.keys(L)[0]));pt.records.dataStructures={adjList:U,spatialMaps:l,groupAlignments:C}}return pt.records.dataStructures},"getDataStructures"),Yr=at((C,U)=>{pt.records.elements[C]=U},"setElementForId"),Xr=at(C=>pt.records.elements[C],"getElementById"),ue={clear:Or,setDiagramTitle:_e,getDiagramTitle:je,setAccTitle:Ke,getAccTitle:Qe,setAccDescription:Je,getAccDescription:qe,addService:Dr,getServices:xr,addJunction:Ir,getJunctions:Rr,getNodes:Sr,getNode:Ne,addGroup:Fr,getGroups:br,addEdge:Pr,getEdges:Gr,setElementForId:Yr,getElementById:Xr,getDataStructures:Ur};function Pt(C){const U=ge().architecture;return U!=null&&U[C]?U[C]:Ye[C]}at(Pt,"getConfigField");var Hr=at((C,U)=>{sr(C,U),C.groups.map(U.addGroup),C.services.map(A=>U.addService({...A,type:"service"})),C.junctions.map(A=>U.addJunction({...A,type:"junction"})),C.edges.map(U.addEdge)},"populateDb"),Wr={parse:at(async C=>{const U=await lr("architecture",C);Pe.debug(U),Hr(U,ue)},"parse")},Vr=at(C=>` .edge { stroke-width: ${C.archEdgeWidth}; stroke: ${C.archEdgeColor}; diff --git a/lightrag/api/webui/assets/blockDiagram-JOT3LUYC-Ca9NC-96.js b/lightrag/api/webui/assets/blockDiagram-JOT3LUYC-l6jPCNSl.js similarity index 99% rename from lightrag/api/webui/assets/blockDiagram-JOT3LUYC-Ca9NC-96.js rename to lightrag/api/webui/assets/blockDiagram-JOT3LUYC-l6jPCNSl.js index d06a74a7..2304b176 100644 --- a/lightrag/api/webui/assets/blockDiagram-JOT3LUYC-Ca9NC-96.js +++ b/lightrag/api/webui/assets/blockDiagram-JOT3LUYC-l6jPCNSl.js @@ -1,4 +1,4 @@ -import{_ as d,G as at,d as R,e as de,l as L,z as ge,B as ue,C as pe,c as z,aa as fe,U as xe,$ as ye,ab as Z,ac as Yt,ad as be,u as tt,k as we,ae as me,af as xt,ag as Le,i as Tt}from"./mermaid-vendor-SwnP6Sr8.js";import{c as Se}from"./clone-BHIBWXu-.js";import{G as ve}from"./graph-CmqUPRtj.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-D81M49Y6.js";var yt=function(){var e=d(function(N,x,g,u){for(g=g||{},u=N.length;u--;g[N[u]]=x);return g},"o"),t=[1,7],r=[1,13],n=[1,14],i=[1,15],a=[1,19],s=[1,16],l=[1,17],o=[1,18],f=[8,30],h=[8,21,28,29,30,31,32,40,44,47],y=[1,23],b=[1,24],m=[8,15,16,21,28,29,30,31,32,40,44,47],E=[8,15,16,21,27,28,29,30,31,32,40,44,47],D=[1,49],v={trace:d(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:d(function(x,g,u,w,S,c,_){var p=c.length-1;switch(S){case 4:w.getLogger().debug("Rule: separator (NL) ");break;case 5:w.getLogger().debug("Rule: separator (Space) ");break;case 6:w.getLogger().debug("Rule: separator (EOF) ");break;case 7:w.getLogger().debug("Rule: hierarchy: ",c[p-1]),w.setHierarchy(c[p-1]);break;case 8:w.getLogger().debug("Stop NL ");break;case 9:w.getLogger().debug("Stop EOF ");break;case 10:w.getLogger().debug("Stop NL2 ");break;case 11:w.getLogger().debug("Stop EOF2 ");break;case 12:w.getLogger().debug("Rule: statement: ",c[p]),typeof c[p].length=="number"?this.$=c[p]:this.$=[c[p]];break;case 13:w.getLogger().debug("Rule: statement #2: ",c[p-1]),this.$=[c[p-1]].concat(c[p]);break;case 14:w.getLogger().debug("Rule: link: ",c[p],x),this.$={edgeTypeStr:c[p],label:""};break;case 15:w.getLogger().debug("Rule: LABEL link: ",c[p-3],c[p-1],c[p]),this.$={edgeTypeStr:c[p],label:c[p-1]};break;case 18:const A=parseInt(c[p]),O=w.generateId();this.$={id:O,type:"space",label:"",width:A,children:[]};break;case 23:w.getLogger().debug("Rule: (nodeStatement link node) ",c[p-2],c[p-1],c[p]," typestr: ",c[p-1].edgeTypeStr);const X=w.edgeStrToEdgeData(c[p-1].edgeTypeStr);this.$=[{id:c[p-2].id,label:c[p-2].label,type:c[p-2].type,directions:c[p-2].directions},{id:c[p-2].id+"-"+c[p].id,start:c[p-2].id,end:c[p].id,label:c[p-1].label,type:"edge",directions:c[p].directions,arrowTypeEnd:X,arrowTypeStart:"arrow_open"},{id:c[p].id,label:c[p].label,type:w.typeStr2Type(c[p].typeStr),directions:c[p].directions}];break;case 24:w.getLogger().debug("Rule: nodeStatement (abc88 node size) ",c[p-1],c[p]),this.$={id:c[p-1].id,label:c[p-1].label,type:w.typeStr2Type(c[p-1].typeStr),directions:c[p-1].directions,widthInColumns:parseInt(c[p],10)};break;case 25:w.getLogger().debug("Rule: nodeStatement (node) ",c[p]),this.$={id:c[p].id,label:c[p].label,type:w.typeStr2Type(c[p].typeStr),directions:c[p].directions,widthInColumns:1};break;case 26:w.getLogger().debug("APA123",this?this:"na"),w.getLogger().debug("COLUMNS: ",c[p]),this.$={type:"column-setting",columns:c[p]==="auto"?-1:parseInt(c[p])};break;case 27:w.getLogger().debug("Rule: id-block statement : ",c[p-2],c[p-1]),w.generateId(),this.$={...c[p-2],type:"composite",children:c[p-1]};break;case 28:w.getLogger().debug("Rule: blockStatement : ",c[p-2],c[p-1],c[p]);const W=w.generateId();this.$={id:W,type:"composite",label:"",children:c[p-1]};break;case 29:w.getLogger().debug("Rule: node (NODE_ID separator): ",c[p]),this.$={id:c[p]};break;case 30:w.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",c[p-1],c[p]),this.$={id:c[p-1],label:c[p].label,typeStr:c[p].typeStr,directions:c[p].directions};break;case 31:w.getLogger().debug("Rule: dirList: ",c[p]),this.$=[c[p]];break;case 32:w.getLogger().debug("Rule: dirList: ",c[p-1],c[p]),this.$=[c[p-1]].concat(c[p]);break;case 33:w.getLogger().debug("Rule: nodeShapeNLabel: ",c[p-2],c[p-1],c[p]),this.$={typeStr:c[p-2]+c[p],label:c[p-1]};break;case 34:w.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",c[p-3],c[p-2]," #3:",c[p-1],c[p]),this.$={typeStr:c[p-3]+c[p],label:c[p-2],directions:c[p-1]};break;case 35:case 36:this.$={type:"classDef",id:c[p-1].trim(),css:c[p].trim()};break;case 37:this.$={type:"applyClass",id:c[p-1].trim(),styleClass:c[p].trim()};break;case 38:this.$={type:"applyStyles",id:c[p-1].trim(),stylesStr:c[p].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:o},{8:[1,20]},e(f,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:t,28:r,29:n,31:i,32:a,40:s,44:l,47:o}),e(h,[2,16],{14:22,15:y,16:b}),e(h,[2,17]),e(h,[2,18]),e(h,[2,19]),e(h,[2,20]),e(h,[2,21]),e(h,[2,22]),e(m,[2,25],{27:[1,25]}),e(h,[2,26]),{19:26,26:12,32:a},{11:27,13:4,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:o},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},e(E,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},e(f,[2,13]),{26:35,32:a},{32:[2,14]},{17:[1,36]},e(m,[2,24]),{11:37,13:4,14:22,15:y,16:b,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:o},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},e(E,[2,30]),{18:[1,43]},{18:[1,44]},e(m,[2,23]),{18:[1,45]},{30:[1,46]},e(h,[2,28]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{37:[1,47]},{34:48,35:D},{15:[1,50]},e(h,[2,27]),e(E,[2,33]),{39:[1,51]},{34:52,35:D,39:[2,31]},{32:[2,15]},e(E,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:d(function(x,g){if(g.recoverable)this.trace(x);else{var u=new Error(x);throw u.hash=g,u}},"parseError"),parse:d(function(x){var g=this,u=[0],w=[],S=[null],c=[],_=this.table,p="",A=0,O=0,X=2,W=1,ce=c.slice.call(arguments,1),M=Object.create(this.lexer),J={yy:{}};for(var gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gt)&&(J.yy[gt]=this.yy[gt]);M.setInput(x,J.yy),J.yy.lexer=M,J.yy.parser=this,typeof M.yylloc>"u"&&(M.yylloc={});var ut=M.yylloc;c.push(ut);var oe=M.options&&M.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function he(H){u.length=u.length-2*H,S.length=S.length-H,c.length=c.length-H}d(he,"popStack");function Dt(){var H;return H=w.pop()||M.lex()||W,typeof H!="number"&&(H instanceof Array&&(w=H,H=w.pop()),H=g.symbols_[H]||H),H}d(Dt,"lex");for(var Y,Q,U,pt,$={},st,q,Nt,it;;){if(Q=u[u.length-1],this.defaultActions[Q]?U=this.defaultActions[Q]:((Y===null||typeof Y>"u")&&(Y=Dt()),U=_[Q]&&_[Q][Y]),typeof U>"u"||!U.length||!U[0]){var ft="";it=[];for(st in _[Q])this.terminals_[st]&&st>X&&it.push("'"+this.terminals_[st]+"'");M.showPosition?ft="Parse error on line "+(A+1)+`: +import{_ as d,G as at,d as R,e as de,l as L,z as ge,B as ue,C as pe,c as z,aa as fe,U as xe,$ as ye,ab as Z,ac as Yt,ad as be,u as tt,k as we,ae as me,af as xt,ag as Le,i as Tt}from"./mermaid-vendor-d7rbry5E.js";import{c as Se}from"./clone-vL6XIcCC.js";import{G as ve}from"./graph-DexVwBa8.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-OtJ11HbN.js";var yt=function(){var e=d(function(N,x,g,u){for(g=g||{},u=N.length;u--;g[N[u]]=x);return g},"o"),t=[1,7],r=[1,13],n=[1,14],i=[1,15],a=[1,19],s=[1,16],l=[1,17],o=[1,18],f=[8,30],h=[8,21,28,29,30,31,32,40,44,47],y=[1,23],b=[1,24],m=[8,15,16,21,28,29,30,31,32,40,44,47],E=[8,15,16,21,27,28,29,30,31,32,40,44,47],D=[1,49],v={trace:d(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:d(function(x,g,u,w,S,c,_){var p=c.length-1;switch(S){case 4:w.getLogger().debug("Rule: separator (NL) ");break;case 5:w.getLogger().debug("Rule: separator (Space) ");break;case 6:w.getLogger().debug("Rule: separator (EOF) ");break;case 7:w.getLogger().debug("Rule: hierarchy: ",c[p-1]),w.setHierarchy(c[p-1]);break;case 8:w.getLogger().debug("Stop NL ");break;case 9:w.getLogger().debug("Stop EOF ");break;case 10:w.getLogger().debug("Stop NL2 ");break;case 11:w.getLogger().debug("Stop EOF2 ");break;case 12:w.getLogger().debug("Rule: statement: ",c[p]),typeof c[p].length=="number"?this.$=c[p]:this.$=[c[p]];break;case 13:w.getLogger().debug("Rule: statement #2: ",c[p-1]),this.$=[c[p-1]].concat(c[p]);break;case 14:w.getLogger().debug("Rule: link: ",c[p],x),this.$={edgeTypeStr:c[p],label:""};break;case 15:w.getLogger().debug("Rule: LABEL link: ",c[p-3],c[p-1],c[p]),this.$={edgeTypeStr:c[p],label:c[p-1]};break;case 18:const A=parseInt(c[p]),O=w.generateId();this.$={id:O,type:"space",label:"",width:A,children:[]};break;case 23:w.getLogger().debug("Rule: (nodeStatement link node) ",c[p-2],c[p-1],c[p]," typestr: ",c[p-1].edgeTypeStr);const X=w.edgeStrToEdgeData(c[p-1].edgeTypeStr);this.$=[{id:c[p-2].id,label:c[p-2].label,type:c[p-2].type,directions:c[p-2].directions},{id:c[p-2].id+"-"+c[p].id,start:c[p-2].id,end:c[p].id,label:c[p-1].label,type:"edge",directions:c[p].directions,arrowTypeEnd:X,arrowTypeStart:"arrow_open"},{id:c[p].id,label:c[p].label,type:w.typeStr2Type(c[p].typeStr),directions:c[p].directions}];break;case 24:w.getLogger().debug("Rule: nodeStatement (abc88 node size) ",c[p-1],c[p]),this.$={id:c[p-1].id,label:c[p-1].label,type:w.typeStr2Type(c[p-1].typeStr),directions:c[p-1].directions,widthInColumns:parseInt(c[p],10)};break;case 25:w.getLogger().debug("Rule: nodeStatement (node) ",c[p]),this.$={id:c[p].id,label:c[p].label,type:w.typeStr2Type(c[p].typeStr),directions:c[p].directions,widthInColumns:1};break;case 26:w.getLogger().debug("APA123",this?this:"na"),w.getLogger().debug("COLUMNS: ",c[p]),this.$={type:"column-setting",columns:c[p]==="auto"?-1:parseInt(c[p])};break;case 27:w.getLogger().debug("Rule: id-block statement : ",c[p-2],c[p-1]),w.generateId(),this.$={...c[p-2],type:"composite",children:c[p-1]};break;case 28:w.getLogger().debug("Rule: blockStatement : ",c[p-2],c[p-1],c[p]);const W=w.generateId();this.$={id:W,type:"composite",label:"",children:c[p-1]};break;case 29:w.getLogger().debug("Rule: node (NODE_ID separator): ",c[p]),this.$={id:c[p]};break;case 30:w.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",c[p-1],c[p]),this.$={id:c[p-1],label:c[p].label,typeStr:c[p].typeStr,directions:c[p].directions};break;case 31:w.getLogger().debug("Rule: dirList: ",c[p]),this.$=[c[p]];break;case 32:w.getLogger().debug("Rule: dirList: ",c[p-1],c[p]),this.$=[c[p-1]].concat(c[p]);break;case 33:w.getLogger().debug("Rule: nodeShapeNLabel: ",c[p-2],c[p-1],c[p]),this.$={typeStr:c[p-2]+c[p],label:c[p-1]};break;case 34:w.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",c[p-3],c[p-2]," #3:",c[p-1],c[p]),this.$={typeStr:c[p-3]+c[p],label:c[p-2],directions:c[p-1]};break;case 35:case 36:this.$={type:"classDef",id:c[p-1].trim(),css:c[p].trim()};break;case 37:this.$={type:"applyClass",id:c[p-1].trim(),styleClass:c[p].trim()};break;case 38:this.$={type:"applyStyles",id:c[p-1].trim(),stylesStr:c[p].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:o},{8:[1,20]},e(f,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:t,28:r,29:n,31:i,32:a,40:s,44:l,47:o}),e(h,[2,16],{14:22,15:y,16:b}),e(h,[2,17]),e(h,[2,18]),e(h,[2,19]),e(h,[2,20]),e(h,[2,21]),e(h,[2,22]),e(m,[2,25],{27:[1,25]}),e(h,[2,26]),{19:26,26:12,32:a},{11:27,13:4,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:o},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},e(E,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},e(f,[2,13]),{26:35,32:a},{32:[2,14]},{17:[1,36]},e(m,[2,24]),{11:37,13:4,14:22,15:y,16:b,19:5,20:6,21:t,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:o},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},e(E,[2,30]),{18:[1,43]},{18:[1,44]},e(m,[2,23]),{18:[1,45]},{30:[1,46]},e(h,[2,28]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{37:[1,47]},{34:48,35:D},{15:[1,50]},e(h,[2,27]),e(E,[2,33]),{39:[1,51]},{34:52,35:D,39:[2,31]},{32:[2,15]},e(E,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:d(function(x,g){if(g.recoverable)this.trace(x);else{var u=new Error(x);throw u.hash=g,u}},"parseError"),parse:d(function(x){var g=this,u=[0],w=[],S=[null],c=[],_=this.table,p="",A=0,O=0,X=2,W=1,ce=c.slice.call(arguments,1),M=Object.create(this.lexer),J={yy:{}};for(var gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gt)&&(J.yy[gt]=this.yy[gt]);M.setInput(x,J.yy),J.yy.lexer=M,J.yy.parser=this,typeof M.yylloc>"u"&&(M.yylloc={});var ut=M.yylloc;c.push(ut);var oe=M.options&&M.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function he(H){u.length=u.length-2*H,S.length=S.length-H,c.length=c.length-H}d(he,"popStack");function Dt(){var H;return H=w.pop()||M.lex()||W,typeof H!="number"&&(H instanceof Array&&(w=H,H=w.pop()),H=g.symbols_[H]||H),H}d(Dt,"lex");for(var Y,Q,U,pt,$={},st,q,Nt,it;;){if(Q=u[u.length-1],this.defaultActions[Q]?U=this.defaultActions[Q]:((Y===null||typeof Y>"u")&&(Y=Dt()),U=_[Q]&&_[Q][Y]),typeof U>"u"||!U.length||!U[0]){var ft="";it=[];for(st in _[Q])this.terminals_[st]&&st>X&&it.push("'"+this.terminals_[st]+"'");M.showPosition?ft="Parse error on line "+(A+1)+`: `+M.showPosition()+` Expecting `+it.join(", ")+", got '"+(this.terminals_[Y]||Y)+"'":ft="Parse error on line "+(A+1)+": Unexpected "+(Y==W?"end of input":"'"+(this.terminals_[Y]||Y)+"'"),this.parseError(ft,{text:M.match,token:this.terminals_[Y]||Y,line:M.yylineno,loc:ut,expected:it})}if(U[0]instanceof Array&&U.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Q+", token: "+Y);switch(U[0]){case 1:u.push(Y),S.push(M.yytext),c.push(M.yylloc),u.push(U[1]),Y=null,O=M.yyleng,p=M.yytext,A=M.yylineno,ut=M.yylloc;break;case 2:if(q=this.productions_[U[1]][1],$.$=S[S.length-q],$._$={first_line:c[c.length-(q||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(q||1)].first_column,last_column:c[c.length-1].last_column},oe&&($._$.range=[c[c.length-(q||1)].range[0],c[c.length-1].range[1]]),pt=this.performAction.apply($,[p,O,A,J.yy,U[1],S,c].concat(ce)),typeof pt<"u")return pt;q&&(u=u.slice(0,-1*q*2),S=S.slice(0,-1*q),c=c.slice(0,-1*q)),u.push(this.productions_[U[1]][0]),S.push($.$),c.push($._$),Nt=_[u[u.length-2]][u[u.length-1]],u.push(Nt);break;case 3:return!0}}return!0},"parse")},T=function(){var N={EOF:1,parseError:d(function(g,u){if(this.yy.parser)this.yy.parser.parseError(g,u);else throw new Error(g)},"parseError"),setInput:d(function(x,g){return this.yy=g||this.yy||{},this._input=x,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:d(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var g=x.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),x},"input"),unput:d(function(x){var g=x.length,u=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===w.length?this.yylloc.first_column:0)+w[w.length-u.length].length-u[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:d(function(x){this.unput(this.match.slice(x))},"less"),pastInput:d(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:d(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:d(function(){var x=this.pastInput(),g=new Array(x.length+1).join("-");return x+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/c4Diagram-VJAJSXHY-DhTcycAT.js b/lightrag/api/webui/assets/c4Diagram-VJAJSXHY-B78G2kZD.js similarity index 99% rename from lightrag/api/webui/assets/c4Diagram-VJAJSXHY-DhTcycAT.js rename to lightrag/api/webui/assets/c4Diagram-VJAJSXHY-B78G2kZD.js index ee163c79..caa18da8 100644 --- a/lightrag/api/webui/assets/c4Diagram-VJAJSXHY-DhTcycAT.js +++ b/lightrag/api/webui/assets/c4Diagram-VJAJSXHY-B78G2kZD.js @@ -1,4 +1,4 @@ -import{g as Se,d as De}from"./chunk-D6G4REZN-CO4Tk6j6.js";import{_ as g,s as Pe,g as Be,a as Ie,b as Me,c as Bt,d as jt,l as de,e as Le,f as Ne,h as Tt,i as ge,j as Ye,w as je,k as $t,n as fe}from"./mermaid-vendor-SwnP6Sr8.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var Ft=function(){var e=g(function(_t,x,m,v){for(m=m||{},v=_t.length;v--;m[_t[v]]=x);return m},"o"),t=[1,24],s=[1,25],o=[1,26],l=[1,27],n=[1,28],r=[1,63],i=[1,64],a=[1,65],u=[1,66],d=[1,67],f=[1,68],y=[1,69],E=[1,29],O=[1,30],S=[1,31],P=[1,32],M=[1,33],U=[1,34],H=[1,35],q=[1,36],G=[1,37],K=[1,38],J=[1,39],Z=[1,40],$=[1,41],tt=[1,42],et=[1,43],nt=[1,44],at=[1,45],it=[1,46],rt=[1,47],st=[1,48],lt=[1,50],ot=[1,51],ct=[1,52],ht=[1,53],ut=[1,54],dt=[1,55],ft=[1,56],pt=[1,57],yt=[1,58],gt=[1,59],bt=[1,60],Ct=[14,42],Qt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],St=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],k=[1,82],A=[1,83],C=[1,84],w=[1,85],T=[12,14,42],le=[12,14,33,42],Mt=[12,14,33,42,76,77,79,80],vt=[12,33],Ht=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],qt={trace:g(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:g(function(x,m,v,b,R,h,Dt){var p=h.length-1;switch(R){case 3:b.setDirection("TB");break;case 4:b.setDirection("BT");break;case 5:b.setDirection("RL");break;case 6:b.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:b.setC4Type(h[p-3]);break;case 19:b.setTitle(h[p].substring(6)),this.$=h[p].substring(6);break;case 20:b.setAccDescription(h[p].substring(15)),this.$=h[p].substring(15);break;case 21:this.$=h[p].trim(),b.setTitle(this.$);break;case 22:case 23:this.$=h[p].trim(),b.setAccDescription(this.$);break;case 28:h[p].splice(2,0,"ENTERPRISE"),b.addPersonOrSystemBoundary(...h[p]),this.$=h[p];break;case 29:h[p].splice(2,0,"SYSTEM"),b.addPersonOrSystemBoundary(...h[p]),this.$=h[p];break;case 30:b.addPersonOrSystemBoundary(...h[p]),this.$=h[p];break;case 31:h[p].splice(2,0,"CONTAINER"),b.addContainerBoundary(...h[p]),this.$=h[p];break;case 32:b.addDeploymentNode("node",...h[p]),this.$=h[p];break;case 33:b.addDeploymentNode("nodeL",...h[p]),this.$=h[p];break;case 34:b.addDeploymentNode("nodeR",...h[p]),this.$=h[p];break;case 35:b.popBoundaryParseStack();break;case 39:b.addPersonOrSystem("person",...h[p]),this.$=h[p];break;case 40:b.addPersonOrSystem("external_person",...h[p]),this.$=h[p];break;case 41:b.addPersonOrSystem("system",...h[p]),this.$=h[p];break;case 42:b.addPersonOrSystem("system_db",...h[p]),this.$=h[p];break;case 43:b.addPersonOrSystem("system_queue",...h[p]),this.$=h[p];break;case 44:b.addPersonOrSystem("external_system",...h[p]),this.$=h[p];break;case 45:b.addPersonOrSystem("external_system_db",...h[p]),this.$=h[p];break;case 46:b.addPersonOrSystem("external_system_queue",...h[p]),this.$=h[p];break;case 47:b.addContainer("container",...h[p]),this.$=h[p];break;case 48:b.addContainer("container_db",...h[p]),this.$=h[p];break;case 49:b.addContainer("container_queue",...h[p]),this.$=h[p];break;case 50:b.addContainer("external_container",...h[p]),this.$=h[p];break;case 51:b.addContainer("external_container_db",...h[p]),this.$=h[p];break;case 52:b.addContainer("external_container_queue",...h[p]),this.$=h[p];break;case 53:b.addComponent("component",...h[p]),this.$=h[p];break;case 54:b.addComponent("component_db",...h[p]),this.$=h[p];break;case 55:b.addComponent("component_queue",...h[p]),this.$=h[p];break;case 56:b.addComponent("external_component",...h[p]),this.$=h[p];break;case 57:b.addComponent("external_component_db",...h[p]),this.$=h[p];break;case 58:b.addComponent("external_component_queue",...h[p]),this.$=h[p];break;case 60:b.addRel("rel",...h[p]),this.$=h[p];break;case 61:b.addRel("birel",...h[p]),this.$=h[p];break;case 62:b.addRel("rel_u",...h[p]),this.$=h[p];break;case 63:b.addRel("rel_d",...h[p]),this.$=h[p];break;case 64:b.addRel("rel_l",...h[p]),this.$=h[p];break;case 65:b.addRel("rel_r",...h[p]),this.$=h[p];break;case 66:b.addRel("rel_b",...h[p]),this.$=h[p];break;case 67:h[p].splice(0,1),b.addRel("rel",...h[p]),this.$=h[p];break;case 68:b.updateElStyle("update_el_style",...h[p]),this.$=h[p];break;case 69:b.updateRelStyle("update_rel_style",...h[p]),this.$=h[p];break;case 70:b.updateLayoutConfig("update_layout_config",...h[p]),this.$=h[p];break;case 71:this.$=[h[p]];break;case 72:h[p].unshift(h[p-1]),this.$=h[p];break;case 73:case 75:this.$=h[p].trim();break;case 74:let Et={};Et[h[p-1].trim()]=h[p].trim(),this.$=Et;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:70,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:71,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:72,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:73,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{14:[1,74]},e(Ct,[2,13],{43:23,29:49,30:61,32:62,20:75,34:r,36:i,37:a,38:u,39:d,40:f,41:y,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(Ct,[2,14]),e(Qt,[2,16],{12:[1,76]}),e(Ct,[2,36],{12:[1,77]}),e(St,[2,19]),e(St,[2,20]),{25:[1,78]},{27:[1,79]},e(St,[2,23]),{35:80,75:81,76:k,77:A,79:C,80:w},{35:86,75:81,76:k,77:A,79:C,80:w},{35:87,75:81,76:k,77:A,79:C,80:w},{35:88,75:81,76:k,77:A,79:C,80:w},{35:89,75:81,76:k,77:A,79:C,80:w},{35:90,75:81,76:k,77:A,79:C,80:w},{35:91,75:81,76:k,77:A,79:C,80:w},{35:92,75:81,76:k,77:A,79:C,80:w},{35:93,75:81,76:k,77:A,79:C,80:w},{35:94,75:81,76:k,77:A,79:C,80:w},{35:95,75:81,76:k,77:A,79:C,80:w},{35:96,75:81,76:k,77:A,79:C,80:w},{35:97,75:81,76:k,77:A,79:C,80:w},{35:98,75:81,76:k,77:A,79:C,80:w},{35:99,75:81,76:k,77:A,79:C,80:w},{35:100,75:81,76:k,77:A,79:C,80:w},{35:101,75:81,76:k,77:A,79:C,80:w},{35:102,75:81,76:k,77:A,79:C,80:w},{35:103,75:81,76:k,77:A,79:C,80:w},{35:104,75:81,76:k,77:A,79:C,80:w},e(T,[2,59]),{35:105,75:81,76:k,77:A,79:C,80:w},{35:106,75:81,76:k,77:A,79:C,80:w},{35:107,75:81,76:k,77:A,79:C,80:w},{35:108,75:81,76:k,77:A,79:C,80:w},{35:109,75:81,76:k,77:A,79:C,80:w},{35:110,75:81,76:k,77:A,79:C,80:w},{35:111,75:81,76:k,77:A,79:C,80:w},{35:112,75:81,76:k,77:A,79:C,80:w},{35:113,75:81,76:k,77:A,79:C,80:w},{35:114,75:81,76:k,77:A,79:C,80:w},{35:115,75:81,76:k,77:A,79:C,80:w},{20:116,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{12:[1,118],33:[1,117]},{35:119,75:81,76:k,77:A,79:C,80:w},{35:120,75:81,76:k,77:A,79:C,80:w},{35:121,75:81,76:k,77:A,79:C,80:w},{35:122,75:81,76:k,77:A,79:C,80:w},{35:123,75:81,76:k,77:A,79:C,80:w},{35:124,75:81,76:k,77:A,79:C,80:w},{35:125,75:81,76:k,77:A,79:C,80:w},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Ct,[2,15]),e(Qt,[2,17],{21:22,19:130,22:t,23:s,24:o,26:l,28:n}),e(Ct,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:s,24:o,26:l,28:n,34:r,36:i,37:a,38:u,39:d,40:f,41:y,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(St,[2,21]),e(St,[2,22]),e(T,[2,39]),e(le,[2,71],{75:81,35:132,76:k,77:A,79:C,80:w}),e(Mt,[2,73]),{78:[1,133]},e(Mt,[2,75]),e(Mt,[2,76]),e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(T,[2,43]),e(T,[2,44]),e(T,[2,45]),e(T,[2,46]),e(T,[2,47]),e(T,[2,48]),e(T,[2,49]),e(T,[2,50]),e(T,[2,51]),e(T,[2,52]),e(T,[2,53]),e(T,[2,54]),e(T,[2,55]),e(T,[2,56]),e(T,[2,57]),e(T,[2,58]),e(T,[2,60]),e(T,[2,61]),e(T,[2,62]),e(T,[2,63]),e(T,[2,64]),e(T,[2,65]),e(T,[2,66]),e(T,[2,67]),e(T,[2,68]),e(T,[2,69]),e(T,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(vt,[2,28]),e(vt,[2,29]),e(vt,[2,30]),e(vt,[2,31]),e(vt,[2,32]),e(vt,[2,33]),e(vt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Qt,[2,18]),e(Ct,[2,38]),e(le,[2,72]),e(Mt,[2,74]),e(T,[2,24]),e(T,[2,35]),e(Ht,[2,25]),e(Ht,[2,26],{12:[1,138]}),e(Ht,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:g(function(x,m){if(m.recoverable)this.trace(x);else{var v=new Error(x);throw v.hash=m,v}},"parseError"),parse:g(function(x){var m=this,v=[0],b=[],R=[null],h=[],Dt=this.table,p="",Et=0,oe=0,we=2,ce=1,Te=h.slice.call(arguments,1),D=Object.create(this.lexer),kt={yy:{}};for(var Gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Gt)&&(kt.yy[Gt]=this.yy[Gt]);D.setInput(x,kt.yy),kt.yy.lexer=D,kt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Kt=D.yylloc;h.push(Kt);var Oe=D.options&&D.options.ranges;typeof kt.yy.parseError=="function"?this.parseError=kt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(L){v.length=v.length-2*L,R.length=R.length-L,h.length=h.length-L}g(Re,"popStack");function he(){var L;return L=b.pop()||D.lex()||ce,typeof L!="number"&&(L instanceof Array&&(b=L,L=b.pop()),L=m.symbols_[L]||L),L}g(he,"lex");for(var I,At,N,Jt,wt={},Nt,W,ue,Yt;;){if(At=v[v.length-1],this.defaultActions[At]?N=this.defaultActions[At]:((I===null||typeof I>"u")&&(I=he()),N=Dt[At]&&Dt[At][I]),typeof N>"u"||!N.length||!N[0]){var Zt="";Yt=[];for(Nt in Dt[At])this.terminals_[Nt]&&Nt>we&&Yt.push("'"+this.terminals_[Nt]+"'");D.showPosition?Zt="Parse error on line "+(Et+1)+`: +import{g as Se,d as De}from"./chunk-D6G4REZN-CQqXYBrW.js";import{_ as g,s as Pe,g as Be,a as Ie,b as Me,c as Bt,d as jt,l as de,e as Le,f as Ne,h as Tt,i as ge,j as Ye,w as je,k as $t,n as fe}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var Ft=function(){var e=g(function(_t,x,m,v){for(m=m||{},v=_t.length;v--;m[_t[v]]=x);return m},"o"),t=[1,24],s=[1,25],o=[1,26],l=[1,27],n=[1,28],r=[1,63],i=[1,64],a=[1,65],u=[1,66],d=[1,67],f=[1,68],y=[1,69],E=[1,29],O=[1,30],S=[1,31],P=[1,32],M=[1,33],U=[1,34],H=[1,35],q=[1,36],G=[1,37],K=[1,38],J=[1,39],Z=[1,40],$=[1,41],tt=[1,42],et=[1,43],nt=[1,44],at=[1,45],it=[1,46],rt=[1,47],st=[1,48],lt=[1,50],ot=[1,51],ct=[1,52],ht=[1,53],ut=[1,54],dt=[1,55],ft=[1,56],pt=[1,57],yt=[1,58],gt=[1,59],bt=[1,60],Ct=[14,42],Qt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],St=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],k=[1,82],A=[1,83],C=[1,84],w=[1,85],T=[12,14,42],le=[12,14,33,42],Mt=[12,14,33,42,76,77,79,80],vt=[12,33],Ht=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],qt={trace:g(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:g(function(x,m,v,b,R,h,Dt){var p=h.length-1;switch(R){case 3:b.setDirection("TB");break;case 4:b.setDirection("BT");break;case 5:b.setDirection("RL");break;case 6:b.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:b.setC4Type(h[p-3]);break;case 19:b.setTitle(h[p].substring(6)),this.$=h[p].substring(6);break;case 20:b.setAccDescription(h[p].substring(15)),this.$=h[p].substring(15);break;case 21:this.$=h[p].trim(),b.setTitle(this.$);break;case 22:case 23:this.$=h[p].trim(),b.setAccDescription(this.$);break;case 28:h[p].splice(2,0,"ENTERPRISE"),b.addPersonOrSystemBoundary(...h[p]),this.$=h[p];break;case 29:h[p].splice(2,0,"SYSTEM"),b.addPersonOrSystemBoundary(...h[p]),this.$=h[p];break;case 30:b.addPersonOrSystemBoundary(...h[p]),this.$=h[p];break;case 31:h[p].splice(2,0,"CONTAINER"),b.addContainerBoundary(...h[p]),this.$=h[p];break;case 32:b.addDeploymentNode("node",...h[p]),this.$=h[p];break;case 33:b.addDeploymentNode("nodeL",...h[p]),this.$=h[p];break;case 34:b.addDeploymentNode("nodeR",...h[p]),this.$=h[p];break;case 35:b.popBoundaryParseStack();break;case 39:b.addPersonOrSystem("person",...h[p]),this.$=h[p];break;case 40:b.addPersonOrSystem("external_person",...h[p]),this.$=h[p];break;case 41:b.addPersonOrSystem("system",...h[p]),this.$=h[p];break;case 42:b.addPersonOrSystem("system_db",...h[p]),this.$=h[p];break;case 43:b.addPersonOrSystem("system_queue",...h[p]),this.$=h[p];break;case 44:b.addPersonOrSystem("external_system",...h[p]),this.$=h[p];break;case 45:b.addPersonOrSystem("external_system_db",...h[p]),this.$=h[p];break;case 46:b.addPersonOrSystem("external_system_queue",...h[p]),this.$=h[p];break;case 47:b.addContainer("container",...h[p]),this.$=h[p];break;case 48:b.addContainer("container_db",...h[p]),this.$=h[p];break;case 49:b.addContainer("container_queue",...h[p]),this.$=h[p];break;case 50:b.addContainer("external_container",...h[p]),this.$=h[p];break;case 51:b.addContainer("external_container_db",...h[p]),this.$=h[p];break;case 52:b.addContainer("external_container_queue",...h[p]),this.$=h[p];break;case 53:b.addComponent("component",...h[p]),this.$=h[p];break;case 54:b.addComponent("component_db",...h[p]),this.$=h[p];break;case 55:b.addComponent("component_queue",...h[p]),this.$=h[p];break;case 56:b.addComponent("external_component",...h[p]),this.$=h[p];break;case 57:b.addComponent("external_component_db",...h[p]),this.$=h[p];break;case 58:b.addComponent("external_component_queue",...h[p]),this.$=h[p];break;case 60:b.addRel("rel",...h[p]),this.$=h[p];break;case 61:b.addRel("birel",...h[p]),this.$=h[p];break;case 62:b.addRel("rel_u",...h[p]),this.$=h[p];break;case 63:b.addRel("rel_d",...h[p]),this.$=h[p];break;case 64:b.addRel("rel_l",...h[p]),this.$=h[p];break;case 65:b.addRel("rel_r",...h[p]),this.$=h[p];break;case 66:b.addRel("rel_b",...h[p]),this.$=h[p];break;case 67:h[p].splice(0,1),b.addRel("rel",...h[p]),this.$=h[p];break;case 68:b.updateElStyle("update_el_style",...h[p]),this.$=h[p];break;case 69:b.updateRelStyle("update_rel_style",...h[p]),this.$=h[p];break;case 70:b.updateLayoutConfig("update_layout_config",...h[p]),this.$=h[p];break;case 71:this.$=[h[p]];break;case 72:h[p].unshift(h[p-1]),this.$=h[p];break;case 73:case 75:this.$=h[p].trim();break;case 74:let Et={};Et[h[p-1].trim()]=h[p].trim(),this.$=Et;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:70,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:71,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:72,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:73,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:n,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{14:[1,74]},e(Ct,[2,13],{43:23,29:49,30:61,32:62,20:75,34:r,36:i,37:a,38:u,39:d,40:f,41:y,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(Ct,[2,14]),e(Qt,[2,16],{12:[1,76]}),e(Ct,[2,36],{12:[1,77]}),e(St,[2,19]),e(St,[2,20]),{25:[1,78]},{27:[1,79]},e(St,[2,23]),{35:80,75:81,76:k,77:A,79:C,80:w},{35:86,75:81,76:k,77:A,79:C,80:w},{35:87,75:81,76:k,77:A,79:C,80:w},{35:88,75:81,76:k,77:A,79:C,80:w},{35:89,75:81,76:k,77:A,79:C,80:w},{35:90,75:81,76:k,77:A,79:C,80:w},{35:91,75:81,76:k,77:A,79:C,80:w},{35:92,75:81,76:k,77:A,79:C,80:w},{35:93,75:81,76:k,77:A,79:C,80:w},{35:94,75:81,76:k,77:A,79:C,80:w},{35:95,75:81,76:k,77:A,79:C,80:w},{35:96,75:81,76:k,77:A,79:C,80:w},{35:97,75:81,76:k,77:A,79:C,80:w},{35:98,75:81,76:k,77:A,79:C,80:w},{35:99,75:81,76:k,77:A,79:C,80:w},{35:100,75:81,76:k,77:A,79:C,80:w},{35:101,75:81,76:k,77:A,79:C,80:w},{35:102,75:81,76:k,77:A,79:C,80:w},{35:103,75:81,76:k,77:A,79:C,80:w},{35:104,75:81,76:k,77:A,79:C,80:w},e(T,[2,59]),{35:105,75:81,76:k,77:A,79:C,80:w},{35:106,75:81,76:k,77:A,79:C,80:w},{35:107,75:81,76:k,77:A,79:C,80:w},{35:108,75:81,76:k,77:A,79:C,80:w},{35:109,75:81,76:k,77:A,79:C,80:w},{35:110,75:81,76:k,77:A,79:C,80:w},{35:111,75:81,76:k,77:A,79:C,80:w},{35:112,75:81,76:k,77:A,79:C,80:w},{35:113,75:81,76:k,77:A,79:C,80:w},{35:114,75:81,76:k,77:A,79:C,80:w},{35:115,75:81,76:k,77:A,79:C,80:w},{20:116,29:49,30:61,32:62,34:r,36:i,37:a,38:u,39:d,40:f,41:y,43:23,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{12:[1,118],33:[1,117]},{35:119,75:81,76:k,77:A,79:C,80:w},{35:120,75:81,76:k,77:A,79:C,80:w},{35:121,75:81,76:k,77:A,79:C,80:w},{35:122,75:81,76:k,77:A,79:C,80:w},{35:123,75:81,76:k,77:A,79:C,80:w},{35:124,75:81,76:k,77:A,79:C,80:w},{35:125,75:81,76:k,77:A,79:C,80:w},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Ct,[2,15]),e(Qt,[2,17],{21:22,19:130,22:t,23:s,24:o,26:l,28:n}),e(Ct,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:s,24:o,26:l,28:n,34:r,36:i,37:a,38:u,39:d,40:f,41:y,44:E,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:nt,60:at,61:it,62:rt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(St,[2,21]),e(St,[2,22]),e(T,[2,39]),e(le,[2,71],{75:81,35:132,76:k,77:A,79:C,80:w}),e(Mt,[2,73]),{78:[1,133]},e(Mt,[2,75]),e(Mt,[2,76]),e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(T,[2,43]),e(T,[2,44]),e(T,[2,45]),e(T,[2,46]),e(T,[2,47]),e(T,[2,48]),e(T,[2,49]),e(T,[2,50]),e(T,[2,51]),e(T,[2,52]),e(T,[2,53]),e(T,[2,54]),e(T,[2,55]),e(T,[2,56]),e(T,[2,57]),e(T,[2,58]),e(T,[2,60]),e(T,[2,61]),e(T,[2,62]),e(T,[2,63]),e(T,[2,64]),e(T,[2,65]),e(T,[2,66]),e(T,[2,67]),e(T,[2,68]),e(T,[2,69]),e(T,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(vt,[2,28]),e(vt,[2,29]),e(vt,[2,30]),e(vt,[2,31]),e(vt,[2,32]),e(vt,[2,33]),e(vt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Qt,[2,18]),e(Ct,[2,38]),e(le,[2,72]),e(Mt,[2,74]),e(T,[2,24]),e(T,[2,35]),e(Ht,[2,25]),e(Ht,[2,26],{12:[1,138]}),e(Ht,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:g(function(x,m){if(m.recoverable)this.trace(x);else{var v=new Error(x);throw v.hash=m,v}},"parseError"),parse:g(function(x){var m=this,v=[0],b=[],R=[null],h=[],Dt=this.table,p="",Et=0,oe=0,we=2,ce=1,Te=h.slice.call(arguments,1),D=Object.create(this.lexer),kt={yy:{}};for(var Gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Gt)&&(kt.yy[Gt]=this.yy[Gt]);D.setInput(x,kt.yy),kt.yy.lexer=D,kt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Kt=D.yylloc;h.push(Kt);var Oe=D.options&&D.options.ranges;typeof kt.yy.parseError=="function"?this.parseError=kt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Re(L){v.length=v.length-2*L,R.length=R.length-L,h.length=h.length-L}g(Re,"popStack");function he(){var L;return L=b.pop()||D.lex()||ce,typeof L!="number"&&(L instanceof Array&&(b=L,L=b.pop()),L=m.symbols_[L]||L),L}g(he,"lex");for(var I,At,N,Jt,wt={},Nt,W,ue,Yt;;){if(At=v[v.length-1],this.defaultActions[At]?N=this.defaultActions[At]:((I===null||typeof I>"u")&&(I=he()),N=Dt[At]&&Dt[At][I]),typeof N>"u"||!N.length||!N[0]){var Zt="";Yt=[];for(Nt in Dt[At])this.terminals_[Nt]&&Nt>we&&Yt.push("'"+this.terminals_[Nt]+"'");D.showPosition?Zt="Parse error on line "+(Et+1)+`: `+D.showPosition()+` Expecting `+Yt.join(", ")+", got '"+(this.terminals_[I]||I)+"'":Zt="Parse error on line "+(Et+1)+": Unexpected "+(I==ce?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(Zt,{text:D.match,token:this.terminals_[I]||I,line:D.yylineno,loc:Kt,expected:Yt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+At+", token: "+I);switch(N[0]){case 1:v.push(I),R.push(D.yytext),h.push(D.yylloc),v.push(N[1]),I=null,oe=D.yyleng,p=D.yytext,Et=D.yylineno,Kt=D.yylloc;break;case 2:if(W=this.productions_[N[1]][1],wt.$=R[R.length-W],wt._$={first_line:h[h.length-(W||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(W||1)].first_column,last_column:h[h.length-1].last_column},Oe&&(wt._$.range=[h[h.length-(W||1)].range[0],h[h.length-1].range[1]]),Jt=this.performAction.apply(wt,[p,oe,Et,kt.yy,N[1],R,h].concat(Te)),typeof Jt<"u")return Jt;W&&(v=v.slice(0,-1*W*2),R=R.slice(0,-1*W),h=h.slice(0,-1*W)),v.push(this.productions_[N[1]][0]),R.push(wt.$),h.push(wt._$),ue=Dt[v[v.length-2]][v[v.length-1]],v.push(ue);break;case 3:return!0}}return!0},"parse")},Ce=function(){var _t={EOF:1,parseError:g(function(m,v){if(this.yy.parser)this.yy.parser.parseError(m,v);else throw new Error(m)},"parseError"),setInput:g(function(x,m){return this.yy=m||this.yy||{},this._input=x,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:g(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var m=x.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),x},"input"),unput:g(function(x){var m=x.length,v=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var b=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),v.length-1&&(this.yylineno-=v.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:v?(v.length===b.length?this.yylloc.first_column:0)+b[b.length-v.length].length-v[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:g(function(){return this._more=!0,this},"more"),reject:g(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:g(function(x){this.unput(this.match.slice(x))},"less"),pastInput:g(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:g(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:g(function(){var x=this.pastInput(),m=new Array(x.length+1).join("-");return x+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/chunk-4BMEZGHF-M5QBFtoC.js b/lightrag/api/webui/assets/chunk-4BMEZGHF-Ct0jZH9M.js similarity index 78% rename from lightrag/api/webui/assets/chunk-4BMEZGHF-M5QBFtoC.js rename to lightrag/api/webui/assets/chunk-4BMEZGHF-Ct0jZH9M.js index f8b61bd1..df6fa18f 100644 --- a/lightrag/api/webui/assets/chunk-4BMEZGHF-M5QBFtoC.js +++ b/lightrag/api/webui/assets/chunk-4BMEZGHF-Ct0jZH9M.js @@ -1 +1 @@ -import{_ as l}from"./mermaid-vendor-SwnP6Sr8.js";function m(e,c){var i,t,o;e.accDescr&&((i=c.setAccDescription)==null||i.call(c,e.accDescr)),e.accTitle&&((t=c.setAccTitle)==null||t.call(c,e.accTitle)),e.title&&((o=c.setDiagramTitle)==null||o.call(c,e.title))}l(m,"populateCommonDb");export{m as p}; +import{_ as l}from"./mermaid-vendor-d7rbry5E.js";function m(e,c){var i,t,o;e.accDescr&&((i=c.setAccDescription)==null||i.call(c,e.accDescr)),e.accTitle&&((t=c.setAccTitle)==null||t.call(c,e.accTitle)),e.title&&((o=c.setDiagramTitle)==null||o.call(c,e.title))}l(m,"populateCommonDb");export{m as p}; diff --git a/lightrag/api/webui/assets/chunk-A2AXSNBT-CTXPIZDs.js b/lightrag/api/webui/assets/chunk-A2AXSNBT-CvfQgLmG.js similarity index 99% rename from lightrag/api/webui/assets/chunk-A2AXSNBT-CTXPIZDs.js rename to lightrag/api/webui/assets/chunk-A2AXSNBT-CvfQgLmG.js index a1d267fe..08f764ac 100644 --- a/lightrag/api/webui/assets/chunk-A2AXSNBT-CTXPIZDs.js +++ b/lightrag/api/webui/assets/chunk-A2AXSNBT-CvfQgLmG.js @@ -1,4 +1,4 @@ -import{g as et,s as tt}from"./chunk-RZ5BOZE2-vCqEaZEa.js";import{_ as f,l as Oe,c as F,p as st,r as it,u as we,d as $,b as at,a as nt,s as rt,g as ut,q as lt,t as ct,k as v,z as ot,y as ht,i as dt,Y as R}from"./mermaid-vendor-SwnP6Sr8.js";var Ve=function(){var s=f(function(I,c,h,p){for(h=h||{},p=I.length;p--;h[I[p]]=c);return h},"o"),i=[1,18],a=[1,19],u=[1,20],l=[1,41],r=[1,42],o=[1,26],A=[1,24],g=[1,25],k=[1,32],L=[1,33],Ae=[1,34],m=[1,45],fe=[1,35],ge=[1,36],Ce=[1,37],me=[1,38],be=[1,27],Ee=[1,28],ye=[1,29],Te=[1,30],ke=[1,31],b=[1,44],E=[1,46],y=[1,43],D=[1,47],De=[1,9],d=[1,8,9],ee=[1,58],te=[1,59],se=[1,60],ie=[1,61],ae=[1,62],Fe=[1,63],Be=[1,64],ne=[1,8,9,41],Pe=[1,76],P=[1,8,9,12,13,22,39,41,44,66,67,68,69,70,71,72,77,79],re=[1,8,9,12,13,17,20,22,39,41,44,48,58,66,67,68,69,70,71,72,77,79,84,99,101,102],ue=[13,58,84,99,101,102],z=[13,58,71,72,84,99,101,102],Me=[13,58,66,67,68,69,70,84,99,101,102],_e=[1,98],K=[1,115],Y=[1,107],Q=[1,113],W=[1,108],j=[1,109],X=[1,110],q=[1,111],H=[1,112],J=[1,114],Re=[22,58,59,80,84,85,86,87,88,89],Se=[1,8,9,39,41,44],le=[1,8,9,22],Ge=[1,143],Ue=[1,8,9,59],N=[1,8,9,22,58,59,80,84,85,86,87,88,89],Ne={trace:f(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,DOT:17,className:18,classLiteralName:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,ANNOTATION_START:47,ANNOTATION_END:48,MEMBER:49,SEPARATOR:50,relation:51,NOTE_FOR:52,noteText:53,NOTE:54,CLASSDEF:55,classList:56,stylesOpt:57,ALPHA:58,COMMA:59,direction_tb:60,direction_bt:61,direction_rl:62,direction_lr:63,relationType:64,lineType:65,AGGREGATION:66,EXTENSION:67,COMPOSITION:68,DEPENDENCY:69,LOLLIPOP:70,LINE:71,DOTTED_LINE:72,CALLBACK:73,LINK:74,LINK_TARGET:75,CLICK:76,CALLBACK_NAME:77,CALLBACK_ARGS:78,HREF:79,STYLE:80,CSSCLASS:81,style:82,styleComponent:83,NUM:84,COLON:85,UNIT:86,SPACE:87,BRKT:88,PCT:89,commentToken:90,textToken:91,graphCodeTokens:92,textNoTagsToken:93,TAGSTART:94,TAGEND:95,"==":96,"--":97,DEFAULT:98,MINUS:99,keywords:100,UNICODE_TEXT:101,BQUOTE_STR:102,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",47:"ANNOTATION_START",48:"ANNOTATION_END",49:"MEMBER",50:"SEPARATOR",52:"NOTE_FOR",54:"NOTE",55:"CLASSDEF",58:"ALPHA",59:"COMMA",60:"direction_tb",61:"direction_bt",62:"direction_rl",63:"direction_lr",66:"AGGREGATION",67:"EXTENSION",68:"COMPOSITION",69:"DEPENDENCY",70:"LOLLIPOP",71:"LINE",72:"DOTTED_LINE",73:"CALLBACK",74:"LINK",75:"LINK_TARGET",76:"CLICK",77:"CALLBACK_NAME",78:"CALLBACK_ARGS",79:"HREF",80:"STYLE",81:"CSSCLASS",84:"NUM",85:"COLON",86:"UNIT",87:"SPACE",88:"BRKT",89:"PCT",92:"graphCodeTokens",94:"TAGSTART",95:"TAGEND",96:"==",97:"--",98:"DEFAULT",99:"MINUS",100:"keywords",101:"UNICODE_TEXT",102:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,6],[43,2],[43,3],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[56,1],[56,3],[32,1],[32,1],[32,1],[32,1],[51,3],[51,2],[51,2],[51,1],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[57,1],[57,3],[82,1],[82,2],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[90,1],[90,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[93,1],[93,1],[93,1],[93,1],[16,1],[16,1],[16,1],[16,1],[19,1],[53,1]],performAction:f(function(c,h,p,n,C,e,Z){var t=e.length-1;switch(C){case 8:this.$=e[t-1];break;case 9:case 12:case 14:this.$=e[t];break;case 10:case 13:this.$=e[t-2]+"."+e[t];break;case 11:case 15:this.$=e[t-1]+e[t];break;case 16:case 17:this.$=e[t-1]+"~"+e[t]+"~";break;case 18:n.addRelation(e[t]);break;case 19:e[t-1].title=n.cleanupLabel(e[t]),n.addRelation(e[t-1]);break;case 30:this.$=e[t].trim(),n.setAccTitle(this.$);break;case 31:case 32:this.$=e[t].trim(),n.setAccDescription(this.$);break;case 33:n.addClassesToNamespace(e[t-3],e[t-1]);break;case 34:n.addClassesToNamespace(e[t-4],e[t-1]);break;case 35:this.$=e[t],n.addNamespace(e[t]);break;case 36:this.$=[e[t]];break;case 37:this.$=[e[t-1]];break;case 38:e[t].unshift(e[t-2]),this.$=e[t];break;case 40:n.setCssClass(e[t-2],e[t]);break;case 41:n.addMembers(e[t-3],e[t-1]);break;case 42:n.setCssClass(e[t-5],e[t-3]),n.addMembers(e[t-5],e[t-1]);break;case 43:this.$=e[t],n.addClass(e[t]);break;case 44:this.$=e[t-1],n.addClass(e[t-1]),n.setClassLabel(e[t-1],e[t]);break;case 45:n.addAnnotation(e[t],e[t-2]);break;case 46:case 59:this.$=[e[t]];break;case 47:e[t].push(e[t-1]),this.$=e[t];break;case 48:break;case 49:n.addMember(e[t-1],n.cleanupLabel(e[t]));break;case 50:break;case 51:break;case 52:this.$={id1:e[t-2],id2:e[t],relation:e[t-1],relationTitle1:"none",relationTitle2:"none"};break;case 53:this.$={id1:e[t-3],id2:e[t],relation:e[t-1],relationTitle1:e[t-2],relationTitle2:"none"};break;case 54:this.$={id1:e[t-3],id2:e[t],relation:e[t-2],relationTitle1:"none",relationTitle2:e[t-1]};break;case 55:this.$={id1:e[t-4],id2:e[t],relation:e[t-2],relationTitle1:e[t-3],relationTitle2:e[t-1]};break;case 56:n.addNote(e[t],e[t-1]);break;case 57:n.addNote(e[t]);break;case 58:this.$=e[t-2],n.defineClass(e[t-1],e[t]);break;case 60:this.$=e[t-2].concat([e[t]]);break;case 61:n.setDirection("TB");break;case 62:n.setDirection("BT");break;case 63:n.setDirection("RL");break;case 64:n.setDirection("LR");break;case 65:this.$={type1:e[t-2],type2:e[t],lineType:e[t-1]};break;case 66:this.$={type1:"none",type2:e[t],lineType:e[t-1]};break;case 67:this.$={type1:e[t-1],type2:"none",lineType:e[t]};break;case 68:this.$={type1:"none",type2:"none",lineType:e[t]};break;case 69:this.$=n.relationType.AGGREGATION;break;case 70:this.$=n.relationType.EXTENSION;break;case 71:this.$=n.relationType.COMPOSITION;break;case 72:this.$=n.relationType.DEPENDENCY;break;case 73:this.$=n.relationType.LOLLIPOP;break;case 74:this.$=n.lineType.LINE;break;case 75:this.$=n.lineType.DOTTED_LINE;break;case 76:case 82:this.$=e[t-2],n.setClickEvent(e[t-1],e[t]);break;case 77:case 83:this.$=e[t-3],n.setClickEvent(e[t-2],e[t-1]),n.setTooltip(e[t-2],e[t]);break;case 78:this.$=e[t-2],n.setLink(e[t-1],e[t]);break;case 79:this.$=e[t-3],n.setLink(e[t-2],e[t-1],e[t]);break;case 80:this.$=e[t-3],n.setLink(e[t-2],e[t-1]),n.setTooltip(e[t-2],e[t]);break;case 81:this.$=e[t-4],n.setLink(e[t-3],e[t-2],e[t]),n.setTooltip(e[t-3],e[t-1]);break;case 84:this.$=e[t-3],n.setClickEvent(e[t-2],e[t-1],e[t]);break;case 85:this.$=e[t-4],n.setClickEvent(e[t-3],e[t-2],e[t-1]),n.setTooltip(e[t-3],e[t]);break;case 86:this.$=e[t-3],n.setLink(e[t-2],e[t]);break;case 87:this.$=e[t-4],n.setLink(e[t-3],e[t-1],e[t]);break;case 88:this.$=e[t-4],n.setLink(e[t-3],e[t-1]),n.setTooltip(e[t-3],e[t]);break;case 89:this.$=e[t-5],n.setLink(e[t-4],e[t-2],e[t]),n.setTooltip(e[t-4],e[t-1]);break;case 90:this.$=e[t-2],n.setCssStyle(e[t-1],e[t]);break;case 91:n.setCssClass(e[t-1],e[t]);break;case 92:this.$=[e[t]];break;case 93:e[t-2].push(e[t]),this.$=e[t-2];break;case 95:this.$=e[t-1]+e[t];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:u,38:22,42:l,43:23,46:r,47:o,49:A,50:g,52:k,54:L,55:Ae,58:m,60:fe,61:ge,62:Ce,63:me,73:be,74:Ee,76:ye,80:Te,81:ke,84:b,99:E,101:y,102:D},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},s(De,[2,5],{8:[1,48]}),{8:[1,49]},s(d,[2,18],{22:[1,50]}),s(d,[2,20]),s(d,[2,21]),s(d,[2,22]),s(d,[2,23]),s(d,[2,24]),s(d,[2,25]),s(d,[2,26]),s(d,[2,27]),s(d,[2,28]),s(d,[2,29]),{34:[1,51]},{36:[1,52]},s(d,[2,32]),s(d,[2,48],{51:53,64:56,65:57,13:[1,54],22:[1,55],66:ee,67:te,68:se,69:ie,70:ae,71:Fe,72:Be}),{39:[1,65]},s(ne,[2,39],{39:[1,67],44:[1,66]}),s(d,[2,50]),s(d,[2,51]),{16:68,58:m,84:b,99:E,101:y},{16:39,18:69,19:40,58:m,84:b,99:E,101:y,102:D},{16:39,18:70,19:40,58:m,84:b,99:E,101:y,102:D},{16:39,18:71,19:40,58:m,84:b,99:E,101:y,102:D},{58:[1,72]},{13:[1,73]},{16:39,18:74,19:40,58:m,84:b,99:E,101:y,102:D},{13:Pe,53:75},{56:77,58:[1,78]},s(d,[2,61]),s(d,[2,62]),s(d,[2,63]),s(d,[2,64]),s(P,[2,12],{16:39,19:40,18:80,17:[1,79],20:[1,81],58:m,84:b,99:E,101:y,102:D}),s(P,[2,14],{20:[1,82]}),{15:83,16:84,58:m,84:b,99:E,101:y},{16:39,18:85,19:40,58:m,84:b,99:E,101:y,102:D},s(re,[2,118]),s(re,[2,119]),s(re,[2,120]),s(re,[2,121]),s([1,8,9,12,13,20,22,39,41,44,66,67,68,69,70,71,72,77,79],[2,122]),s(De,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,18:21,38:22,43:23,16:39,19:40,5:86,33:i,35:a,37:u,42:l,46:r,47:o,49:A,50:g,52:k,54:L,55:Ae,58:m,60:fe,61:ge,62:Ce,63:me,73:be,74:Ee,76:ye,80:Te,81:ke,84:b,99:E,101:y,102:D}),{5:87,10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:u,38:22,42:l,43:23,46:r,47:o,49:A,50:g,52:k,54:L,55:Ae,58:m,60:fe,61:ge,62:Ce,63:me,73:be,74:Ee,76:ye,80:Te,81:ke,84:b,99:E,101:y,102:D},s(d,[2,19]),s(d,[2,30]),s(d,[2,31]),{13:[1,89],16:39,18:88,19:40,58:m,84:b,99:E,101:y,102:D},{51:90,64:56,65:57,66:ee,67:te,68:se,69:ie,70:ae,71:Fe,72:Be},s(d,[2,49]),{65:91,71:Fe,72:Be},s(ue,[2,68],{64:92,66:ee,67:te,68:se,69:ie,70:ae}),s(z,[2,69]),s(z,[2,70]),s(z,[2,71]),s(z,[2,72]),s(z,[2,73]),s(Me,[2,74]),s(Me,[2,75]),{8:[1,94],24:95,40:93,43:23,46:r},{16:96,58:m,84:b,99:E,101:y},{45:97,49:_e},{48:[1,99]},{13:[1,100]},{13:[1,101]},{77:[1,102],79:[1,103]},{22:K,57:104,58:Y,80:Q,82:105,83:106,84:W,85:j,86:X,87:q,88:H,89:J},{58:[1,116]},{13:Pe,53:117},s(d,[2,57]),s(d,[2,123]),{22:K,57:118,58:Y,59:[1,119],80:Q,82:105,83:106,84:W,85:j,86:X,87:q,88:H,89:J},s(Re,[2,59]),{16:39,18:120,19:40,58:m,84:b,99:E,101:y,102:D},s(P,[2,15]),s(P,[2,16]),s(P,[2,17]),{39:[2,35]},{15:122,16:84,17:[1,121],39:[2,9],58:m,84:b,99:E,101:y},s(Se,[2,43],{11:123,12:[1,124]}),s(De,[2,7]),{9:[1,125]},s(le,[2,52]),{16:39,18:126,19:40,58:m,84:b,99:E,101:y,102:D},{13:[1,128],16:39,18:127,19:40,58:m,84:b,99:E,101:y,102:D},s(ue,[2,67],{64:129,66:ee,67:te,68:se,69:ie,70:ae}),s(ue,[2,66]),{41:[1,130]},{24:95,40:131,43:23,46:r},{8:[1,132],41:[2,36]},s(ne,[2,40],{39:[1,133]}),{41:[1,134]},{41:[2,46],45:135,49:_e},{16:39,18:136,19:40,58:m,84:b,99:E,101:y,102:D},s(d,[2,76],{13:[1,137]}),s(d,[2,78],{13:[1,139],75:[1,138]}),s(d,[2,82],{13:[1,140],78:[1,141]}),{13:[1,142]},s(d,[2,90],{59:Ge}),s(Ue,[2,92],{83:144,22:K,58:Y,80:Q,84:W,85:j,86:X,87:q,88:H,89:J}),s(N,[2,94]),s(N,[2,96]),s(N,[2,97]),s(N,[2,98]),s(N,[2,99]),s(N,[2,100]),s(N,[2,101]),s(N,[2,102]),s(N,[2,103]),s(N,[2,104]),s(d,[2,91]),s(d,[2,56]),s(d,[2,58],{59:Ge}),{58:[1,145]},s(P,[2,13]),{15:146,16:84,58:m,84:b,99:E,101:y},{39:[2,11]},s(Se,[2,44]),{13:[1,147]},{1:[2,4]},s(le,[2,54]),s(le,[2,53]),{16:39,18:148,19:40,58:m,84:b,99:E,101:y,102:D},s(ue,[2,65]),s(d,[2,33]),{41:[1,149]},{24:95,40:150,41:[2,37],43:23,46:r},{45:151,49:_e},s(ne,[2,41]),{41:[2,47]},s(d,[2,45]),s(d,[2,77]),s(d,[2,79]),s(d,[2,80],{75:[1,152]}),s(d,[2,83]),s(d,[2,84],{13:[1,153]}),s(d,[2,86],{13:[1,155],75:[1,154]}),{22:K,58:Y,80:Q,82:156,83:106,84:W,85:j,86:X,87:q,88:H,89:J},s(N,[2,95]),s(Re,[2,60]),{39:[2,10]},{14:[1,157]},s(le,[2,55]),s(d,[2,34]),{41:[2,38]},{41:[1,158]},s(d,[2,81]),s(d,[2,85]),s(d,[2,87]),s(d,[2,88],{75:[1,159]}),s(Ue,[2,93],{83:144,22:K,58:Y,80:Q,84:W,85:j,86:X,87:q,88:H,89:J}),s(Se,[2,8]),s(ne,[2,42]),s(d,[2,89])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,35],122:[2,11],125:[2,4],135:[2,47],146:[2,10],150:[2,38]},parseError:f(function(c,h){if(h.recoverable)this.trace(c);else{var p=new Error(c);throw p.hash=h,p}},"parseError"),parse:f(function(c){var h=this,p=[0],n=[],C=[null],e=[],Z=this.table,t="",oe=0,ze=0,He=2,Ke=1,Je=e.slice.call(arguments,1),T=Object.create(this.lexer),O={yy:{}};for(var Le in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Le)&&(O.yy[Le]=this.yy[Le]);T.setInput(c,O.yy),O.yy.lexer=T,O.yy.parser=this,typeof T.yylloc>"u"&&(T.yylloc={});var xe=T.yylloc;e.push(xe);var Ze=T.options&&T.options.ranges;typeof O.yy.parseError=="function"?this.parseError=O.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function $e(_){p.length=p.length-2*_,C.length=C.length-_,e.length=e.length-_}f($e,"popStack");function Ye(){var _;return _=n.pop()||T.lex()||Ke,typeof _!="number"&&(_ instanceof Array&&(n=_,_=n.pop()),_=h.symbols_[_]||_),_}f(Ye,"lex");for(var B,w,S,ve,M={},he,x,Qe,de;;){if(w=p[p.length-1],this.defaultActions[w]?S=this.defaultActions[w]:((B===null||typeof B>"u")&&(B=Ye()),S=Z[w]&&Z[w][B]),typeof S>"u"||!S.length||!S[0]){var Ie="";de=[];for(he in Z[w])this.terminals_[he]&&he>He&&de.push("'"+this.terminals_[he]+"'");T.showPosition?Ie="Parse error on line "+(oe+1)+`: +import{g as et,s as tt}from"./chunk-RZ5BOZE2-C762jHXr.js";import{_ as f,l as Oe,c as F,p as st,r as it,u as we,d as $,b as at,a as nt,s as rt,g as ut,q as lt,t as ct,k as v,z as ot,y as ht,i as dt,Y as R}from"./mermaid-vendor-d7rbry5E.js";var Ve=function(){var s=f(function(I,c,h,p){for(h=h||{},p=I.length;p--;h[I[p]]=c);return h},"o"),i=[1,18],a=[1,19],u=[1,20],l=[1,41],r=[1,42],o=[1,26],A=[1,24],g=[1,25],k=[1,32],L=[1,33],Ae=[1,34],m=[1,45],fe=[1,35],ge=[1,36],Ce=[1,37],me=[1,38],be=[1,27],Ee=[1,28],ye=[1,29],Te=[1,30],ke=[1,31],b=[1,44],E=[1,46],y=[1,43],D=[1,47],De=[1,9],d=[1,8,9],ee=[1,58],te=[1,59],se=[1,60],ie=[1,61],ae=[1,62],Fe=[1,63],Be=[1,64],ne=[1,8,9,41],Pe=[1,76],P=[1,8,9,12,13,22,39,41,44,66,67,68,69,70,71,72,77,79],re=[1,8,9,12,13,17,20,22,39,41,44,48,58,66,67,68,69,70,71,72,77,79,84,99,101,102],ue=[13,58,84,99,101,102],z=[13,58,71,72,84,99,101,102],Me=[13,58,66,67,68,69,70,84,99,101,102],_e=[1,98],K=[1,115],Y=[1,107],Q=[1,113],W=[1,108],j=[1,109],X=[1,110],q=[1,111],H=[1,112],J=[1,114],Re=[22,58,59,80,84,85,86,87,88,89],Se=[1,8,9,39,41,44],le=[1,8,9,22],Ge=[1,143],Ue=[1,8,9,59],N=[1,8,9,22,58,59,80,84,85,86,87,88,89],Ne={trace:f(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,DOT:17,className:18,classLiteralName:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,ANNOTATION_START:47,ANNOTATION_END:48,MEMBER:49,SEPARATOR:50,relation:51,NOTE_FOR:52,noteText:53,NOTE:54,CLASSDEF:55,classList:56,stylesOpt:57,ALPHA:58,COMMA:59,direction_tb:60,direction_bt:61,direction_rl:62,direction_lr:63,relationType:64,lineType:65,AGGREGATION:66,EXTENSION:67,COMPOSITION:68,DEPENDENCY:69,LOLLIPOP:70,LINE:71,DOTTED_LINE:72,CALLBACK:73,LINK:74,LINK_TARGET:75,CLICK:76,CALLBACK_NAME:77,CALLBACK_ARGS:78,HREF:79,STYLE:80,CSSCLASS:81,style:82,styleComponent:83,NUM:84,COLON:85,UNIT:86,SPACE:87,BRKT:88,PCT:89,commentToken:90,textToken:91,graphCodeTokens:92,textNoTagsToken:93,TAGSTART:94,TAGEND:95,"==":96,"--":97,DEFAULT:98,MINUS:99,keywords:100,UNICODE_TEXT:101,BQUOTE_STR:102,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",47:"ANNOTATION_START",48:"ANNOTATION_END",49:"MEMBER",50:"SEPARATOR",52:"NOTE_FOR",54:"NOTE",55:"CLASSDEF",58:"ALPHA",59:"COMMA",60:"direction_tb",61:"direction_bt",62:"direction_rl",63:"direction_lr",66:"AGGREGATION",67:"EXTENSION",68:"COMPOSITION",69:"DEPENDENCY",70:"LOLLIPOP",71:"LINE",72:"DOTTED_LINE",73:"CALLBACK",74:"LINK",75:"LINK_TARGET",76:"CLICK",77:"CALLBACK_NAME",78:"CALLBACK_ARGS",79:"HREF",80:"STYLE",81:"CSSCLASS",84:"NUM",85:"COLON",86:"UNIT",87:"SPACE",88:"BRKT",89:"PCT",92:"graphCodeTokens",94:"TAGSTART",95:"TAGEND",96:"==",97:"--",98:"DEFAULT",99:"MINUS",100:"keywords",101:"UNICODE_TEXT",102:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,6],[43,2],[43,3],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[56,1],[56,3],[32,1],[32,1],[32,1],[32,1],[51,3],[51,2],[51,2],[51,1],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[57,1],[57,3],[82,1],[82,2],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[90,1],[90,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[93,1],[93,1],[93,1],[93,1],[16,1],[16,1],[16,1],[16,1],[19,1],[53,1]],performAction:f(function(c,h,p,n,C,e,Z){var t=e.length-1;switch(C){case 8:this.$=e[t-1];break;case 9:case 12:case 14:this.$=e[t];break;case 10:case 13:this.$=e[t-2]+"."+e[t];break;case 11:case 15:this.$=e[t-1]+e[t];break;case 16:case 17:this.$=e[t-1]+"~"+e[t]+"~";break;case 18:n.addRelation(e[t]);break;case 19:e[t-1].title=n.cleanupLabel(e[t]),n.addRelation(e[t-1]);break;case 30:this.$=e[t].trim(),n.setAccTitle(this.$);break;case 31:case 32:this.$=e[t].trim(),n.setAccDescription(this.$);break;case 33:n.addClassesToNamespace(e[t-3],e[t-1]);break;case 34:n.addClassesToNamespace(e[t-4],e[t-1]);break;case 35:this.$=e[t],n.addNamespace(e[t]);break;case 36:this.$=[e[t]];break;case 37:this.$=[e[t-1]];break;case 38:e[t].unshift(e[t-2]),this.$=e[t];break;case 40:n.setCssClass(e[t-2],e[t]);break;case 41:n.addMembers(e[t-3],e[t-1]);break;case 42:n.setCssClass(e[t-5],e[t-3]),n.addMembers(e[t-5],e[t-1]);break;case 43:this.$=e[t],n.addClass(e[t]);break;case 44:this.$=e[t-1],n.addClass(e[t-1]),n.setClassLabel(e[t-1],e[t]);break;case 45:n.addAnnotation(e[t],e[t-2]);break;case 46:case 59:this.$=[e[t]];break;case 47:e[t].push(e[t-1]),this.$=e[t];break;case 48:break;case 49:n.addMember(e[t-1],n.cleanupLabel(e[t]));break;case 50:break;case 51:break;case 52:this.$={id1:e[t-2],id2:e[t],relation:e[t-1],relationTitle1:"none",relationTitle2:"none"};break;case 53:this.$={id1:e[t-3],id2:e[t],relation:e[t-1],relationTitle1:e[t-2],relationTitle2:"none"};break;case 54:this.$={id1:e[t-3],id2:e[t],relation:e[t-2],relationTitle1:"none",relationTitle2:e[t-1]};break;case 55:this.$={id1:e[t-4],id2:e[t],relation:e[t-2],relationTitle1:e[t-3],relationTitle2:e[t-1]};break;case 56:n.addNote(e[t],e[t-1]);break;case 57:n.addNote(e[t]);break;case 58:this.$=e[t-2],n.defineClass(e[t-1],e[t]);break;case 60:this.$=e[t-2].concat([e[t]]);break;case 61:n.setDirection("TB");break;case 62:n.setDirection("BT");break;case 63:n.setDirection("RL");break;case 64:n.setDirection("LR");break;case 65:this.$={type1:e[t-2],type2:e[t],lineType:e[t-1]};break;case 66:this.$={type1:"none",type2:e[t],lineType:e[t-1]};break;case 67:this.$={type1:e[t-1],type2:"none",lineType:e[t]};break;case 68:this.$={type1:"none",type2:"none",lineType:e[t]};break;case 69:this.$=n.relationType.AGGREGATION;break;case 70:this.$=n.relationType.EXTENSION;break;case 71:this.$=n.relationType.COMPOSITION;break;case 72:this.$=n.relationType.DEPENDENCY;break;case 73:this.$=n.relationType.LOLLIPOP;break;case 74:this.$=n.lineType.LINE;break;case 75:this.$=n.lineType.DOTTED_LINE;break;case 76:case 82:this.$=e[t-2],n.setClickEvent(e[t-1],e[t]);break;case 77:case 83:this.$=e[t-3],n.setClickEvent(e[t-2],e[t-1]),n.setTooltip(e[t-2],e[t]);break;case 78:this.$=e[t-2],n.setLink(e[t-1],e[t]);break;case 79:this.$=e[t-3],n.setLink(e[t-2],e[t-1],e[t]);break;case 80:this.$=e[t-3],n.setLink(e[t-2],e[t-1]),n.setTooltip(e[t-2],e[t]);break;case 81:this.$=e[t-4],n.setLink(e[t-3],e[t-2],e[t]),n.setTooltip(e[t-3],e[t-1]);break;case 84:this.$=e[t-3],n.setClickEvent(e[t-2],e[t-1],e[t]);break;case 85:this.$=e[t-4],n.setClickEvent(e[t-3],e[t-2],e[t-1]),n.setTooltip(e[t-3],e[t]);break;case 86:this.$=e[t-3],n.setLink(e[t-2],e[t]);break;case 87:this.$=e[t-4],n.setLink(e[t-3],e[t-1],e[t]);break;case 88:this.$=e[t-4],n.setLink(e[t-3],e[t-1]),n.setTooltip(e[t-3],e[t]);break;case 89:this.$=e[t-5],n.setLink(e[t-4],e[t-2],e[t]),n.setTooltip(e[t-4],e[t-1]);break;case 90:this.$=e[t-2],n.setCssStyle(e[t-1],e[t]);break;case 91:n.setCssClass(e[t-1],e[t]);break;case 92:this.$=[e[t]];break;case 93:e[t-2].push(e[t]),this.$=e[t-2];break;case 95:this.$=e[t-1]+e[t];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:u,38:22,42:l,43:23,46:r,47:o,49:A,50:g,52:k,54:L,55:Ae,58:m,60:fe,61:ge,62:Ce,63:me,73:be,74:Ee,76:ye,80:Te,81:ke,84:b,99:E,101:y,102:D},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},s(De,[2,5],{8:[1,48]}),{8:[1,49]},s(d,[2,18],{22:[1,50]}),s(d,[2,20]),s(d,[2,21]),s(d,[2,22]),s(d,[2,23]),s(d,[2,24]),s(d,[2,25]),s(d,[2,26]),s(d,[2,27]),s(d,[2,28]),s(d,[2,29]),{34:[1,51]},{36:[1,52]},s(d,[2,32]),s(d,[2,48],{51:53,64:56,65:57,13:[1,54],22:[1,55],66:ee,67:te,68:se,69:ie,70:ae,71:Fe,72:Be}),{39:[1,65]},s(ne,[2,39],{39:[1,67],44:[1,66]}),s(d,[2,50]),s(d,[2,51]),{16:68,58:m,84:b,99:E,101:y},{16:39,18:69,19:40,58:m,84:b,99:E,101:y,102:D},{16:39,18:70,19:40,58:m,84:b,99:E,101:y,102:D},{16:39,18:71,19:40,58:m,84:b,99:E,101:y,102:D},{58:[1,72]},{13:[1,73]},{16:39,18:74,19:40,58:m,84:b,99:E,101:y,102:D},{13:Pe,53:75},{56:77,58:[1,78]},s(d,[2,61]),s(d,[2,62]),s(d,[2,63]),s(d,[2,64]),s(P,[2,12],{16:39,19:40,18:80,17:[1,79],20:[1,81],58:m,84:b,99:E,101:y,102:D}),s(P,[2,14],{20:[1,82]}),{15:83,16:84,58:m,84:b,99:E,101:y},{16:39,18:85,19:40,58:m,84:b,99:E,101:y,102:D},s(re,[2,118]),s(re,[2,119]),s(re,[2,120]),s(re,[2,121]),s([1,8,9,12,13,20,22,39,41,44,66,67,68,69,70,71,72,77,79],[2,122]),s(De,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,18:21,38:22,43:23,16:39,19:40,5:86,33:i,35:a,37:u,42:l,46:r,47:o,49:A,50:g,52:k,54:L,55:Ae,58:m,60:fe,61:ge,62:Ce,63:me,73:be,74:Ee,76:ye,80:Te,81:ke,84:b,99:E,101:y,102:D}),{5:87,10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:u,38:22,42:l,43:23,46:r,47:o,49:A,50:g,52:k,54:L,55:Ae,58:m,60:fe,61:ge,62:Ce,63:me,73:be,74:Ee,76:ye,80:Te,81:ke,84:b,99:E,101:y,102:D},s(d,[2,19]),s(d,[2,30]),s(d,[2,31]),{13:[1,89],16:39,18:88,19:40,58:m,84:b,99:E,101:y,102:D},{51:90,64:56,65:57,66:ee,67:te,68:se,69:ie,70:ae,71:Fe,72:Be},s(d,[2,49]),{65:91,71:Fe,72:Be},s(ue,[2,68],{64:92,66:ee,67:te,68:se,69:ie,70:ae}),s(z,[2,69]),s(z,[2,70]),s(z,[2,71]),s(z,[2,72]),s(z,[2,73]),s(Me,[2,74]),s(Me,[2,75]),{8:[1,94],24:95,40:93,43:23,46:r},{16:96,58:m,84:b,99:E,101:y},{45:97,49:_e},{48:[1,99]},{13:[1,100]},{13:[1,101]},{77:[1,102],79:[1,103]},{22:K,57:104,58:Y,80:Q,82:105,83:106,84:W,85:j,86:X,87:q,88:H,89:J},{58:[1,116]},{13:Pe,53:117},s(d,[2,57]),s(d,[2,123]),{22:K,57:118,58:Y,59:[1,119],80:Q,82:105,83:106,84:W,85:j,86:X,87:q,88:H,89:J},s(Re,[2,59]),{16:39,18:120,19:40,58:m,84:b,99:E,101:y,102:D},s(P,[2,15]),s(P,[2,16]),s(P,[2,17]),{39:[2,35]},{15:122,16:84,17:[1,121],39:[2,9],58:m,84:b,99:E,101:y},s(Se,[2,43],{11:123,12:[1,124]}),s(De,[2,7]),{9:[1,125]},s(le,[2,52]),{16:39,18:126,19:40,58:m,84:b,99:E,101:y,102:D},{13:[1,128],16:39,18:127,19:40,58:m,84:b,99:E,101:y,102:D},s(ue,[2,67],{64:129,66:ee,67:te,68:se,69:ie,70:ae}),s(ue,[2,66]),{41:[1,130]},{24:95,40:131,43:23,46:r},{8:[1,132],41:[2,36]},s(ne,[2,40],{39:[1,133]}),{41:[1,134]},{41:[2,46],45:135,49:_e},{16:39,18:136,19:40,58:m,84:b,99:E,101:y,102:D},s(d,[2,76],{13:[1,137]}),s(d,[2,78],{13:[1,139],75:[1,138]}),s(d,[2,82],{13:[1,140],78:[1,141]}),{13:[1,142]},s(d,[2,90],{59:Ge}),s(Ue,[2,92],{83:144,22:K,58:Y,80:Q,84:W,85:j,86:X,87:q,88:H,89:J}),s(N,[2,94]),s(N,[2,96]),s(N,[2,97]),s(N,[2,98]),s(N,[2,99]),s(N,[2,100]),s(N,[2,101]),s(N,[2,102]),s(N,[2,103]),s(N,[2,104]),s(d,[2,91]),s(d,[2,56]),s(d,[2,58],{59:Ge}),{58:[1,145]},s(P,[2,13]),{15:146,16:84,58:m,84:b,99:E,101:y},{39:[2,11]},s(Se,[2,44]),{13:[1,147]},{1:[2,4]},s(le,[2,54]),s(le,[2,53]),{16:39,18:148,19:40,58:m,84:b,99:E,101:y,102:D},s(ue,[2,65]),s(d,[2,33]),{41:[1,149]},{24:95,40:150,41:[2,37],43:23,46:r},{45:151,49:_e},s(ne,[2,41]),{41:[2,47]},s(d,[2,45]),s(d,[2,77]),s(d,[2,79]),s(d,[2,80],{75:[1,152]}),s(d,[2,83]),s(d,[2,84],{13:[1,153]}),s(d,[2,86],{13:[1,155],75:[1,154]}),{22:K,58:Y,80:Q,82:156,83:106,84:W,85:j,86:X,87:q,88:H,89:J},s(N,[2,95]),s(Re,[2,60]),{39:[2,10]},{14:[1,157]},s(le,[2,55]),s(d,[2,34]),{41:[2,38]},{41:[1,158]},s(d,[2,81]),s(d,[2,85]),s(d,[2,87]),s(d,[2,88],{75:[1,159]}),s(Ue,[2,93],{83:144,22:K,58:Y,80:Q,84:W,85:j,86:X,87:q,88:H,89:J}),s(Se,[2,8]),s(ne,[2,42]),s(d,[2,89])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,35],122:[2,11],125:[2,4],135:[2,47],146:[2,10],150:[2,38]},parseError:f(function(c,h){if(h.recoverable)this.trace(c);else{var p=new Error(c);throw p.hash=h,p}},"parseError"),parse:f(function(c){var h=this,p=[0],n=[],C=[null],e=[],Z=this.table,t="",oe=0,ze=0,He=2,Ke=1,Je=e.slice.call(arguments,1),T=Object.create(this.lexer),O={yy:{}};for(var Le in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Le)&&(O.yy[Le]=this.yy[Le]);T.setInput(c,O.yy),O.yy.lexer=T,O.yy.parser=this,typeof T.yylloc>"u"&&(T.yylloc={});var xe=T.yylloc;e.push(xe);var Ze=T.options&&T.options.ranges;typeof O.yy.parseError=="function"?this.parseError=O.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function $e(_){p.length=p.length-2*_,C.length=C.length-_,e.length=e.length-_}f($e,"popStack");function Ye(){var _;return _=n.pop()||T.lex()||Ke,typeof _!="number"&&(_ instanceof Array&&(n=_,_=n.pop()),_=h.symbols_[_]||_),_}f(Ye,"lex");for(var B,w,S,ve,M={},he,x,Qe,de;;){if(w=p[p.length-1],this.defaultActions[w]?S=this.defaultActions[w]:((B===null||typeof B>"u")&&(B=Ye()),S=Z[w]&&Z[w][B]),typeof S>"u"||!S.length||!S[0]){var Ie="";de=[];for(he in Z[w])this.terminals_[he]&&he>He&&de.push("'"+this.terminals_[he]+"'");T.showPosition?Ie="Parse error on line "+(oe+1)+`: `+T.showPosition()+` Expecting `+de.join(", ")+", got '"+(this.terminals_[B]||B)+"'":Ie="Parse error on line "+(oe+1)+": Unexpected "+(B==Ke?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(Ie,{text:T.match,token:this.terminals_[B]||B,line:T.yylineno,loc:xe,expected:de})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+B);switch(S[0]){case 1:p.push(B),C.push(T.yytext),e.push(T.yylloc),p.push(S[1]),B=null,ze=T.yyleng,t=T.yytext,oe=T.yylineno,xe=T.yylloc;break;case 2:if(x=this.productions_[S[1]][1],M.$=C[C.length-x],M._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},Ze&&(M._$.range=[e[e.length-(x||1)].range[0],e[e.length-1].range[1]]),ve=this.performAction.apply(M,[t,ze,oe,O.yy,S[1],C,e].concat(Je)),typeof ve<"u")return ve;x&&(p=p.slice(0,-1*x*2),C=C.slice(0,-1*x),e=e.slice(0,-1*x)),p.push(this.productions_[S[1]][0]),C.push(M.$),e.push(M._$),Qe=Z[p[p.length-2]][p[p.length-1]],p.push(Qe);break;case 3:return!0}}return!0},"parse")},qe=function(){var I={EOF:1,parseError:f(function(h,p){if(this.yy.parser)this.yy.parser.parseError(h,p);else throw new Error(h)},"parseError"),setInput:f(function(c,h){return this.yy=h||this.yy||{},this._input=c,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:f(function(){var c=this._input[0];this.yytext+=c,this.yyleng++,this.offset++,this.match+=c,this.matched+=c;var h=c.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),c},"input"),unput:f(function(c){var h=c.length,p=c.split(/(?:\r\n?|\n)/g);this._input=c+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),p.length-1&&(this.yylineno-=p.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:p?(p.length===n.length?this.yylloc.first_column:0)+n[n.length-p.length].length-p[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:f(function(){return this._more=!0,this},"more"),reject:f(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:f(function(c){this.unput(this.match.slice(c))},"less"),pastInput:f(function(){var c=this.matched.substr(0,this.matched.length-this.match.length);return(c.length>20?"...":"")+c.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:f(function(){var c=this.match;return c.length<20&&(c+=this._input.substr(0,20-c.length)),(c.substr(0,20)+(c.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:f(function(){var c=this.pastInput(),h=new Array(c.length+1).join("-");return c+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/chunk-AEK57VVT-BRJnVklE.js b/lightrag/api/webui/assets/chunk-AEK57VVT-ZyE42AjE.js similarity index 99% rename from lightrag/api/webui/assets/chunk-AEK57VVT-BRJnVklE.js rename to lightrag/api/webui/assets/chunk-AEK57VVT-ZyE42AjE.js index eb171e68..a28ab25c 100644 --- a/lightrag/api/webui/assets/chunk-AEK57VVT-BRJnVklE.js +++ b/lightrag/api/webui/assets/chunk-AEK57VVT-ZyE42AjE.js @@ -1,4 +1,4 @@ -var re=Object.defineProperty;var ae=(e,t,s)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var b=(e,t,s)=>ae(e,typeof t!="symbol"?t+"":t,s);import{g as ne,s as le}from"./chunk-RZ5BOZE2-vCqEaZEa.js";import{_ as p,l as v,c as A,r as oe,u as ce,a0 as he,k as j,z as ue,a as de,b as fe,g as pe,s as Se,q as ye,t as ge}from"./mermaid-vendor-SwnP6Sr8.js";var bt=function(){var e=p(function(P,l,h,a){for(h=h||{},a=P.length;a--;h[P[a]]=l);return h},"o"),t=[1,2],s=[1,3],n=[1,4],o=[2,4],c=[1,9],r=[1,11],d=[1,16],f=[1,17],g=[1,18],E=[1,19],m=[1,32],I=[1,20],G=[1,21],R=[1,22],S=[1,23],L=[1,24],O=[1,26],Y=[1,27],F=[1,28],w=[1,29],$=[1,30],et=[1,31],st=[1,34],it=[1,35],rt=[1,36],at=[1,37],X=[1,33],y=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],nt=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],At=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],St={trace:p(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:p(function(l,h,a,T,_,i,K){var u=i.length-1;switch(_){case 3:return T.setRootDoc(i[u]),i[u];case 4:this.$=[];break;case 5:i[u]!="nl"&&(i[u-1].push(i[u]),this.$=i[u-1]);break;case 6:case 7:this.$=i[u];break;case 8:this.$="nl";break;case 12:this.$=i[u];break;case 13:const J=i[u-1];J.description=T.trimColon(i[u]),this.$=J;break;case 14:this.$={stmt:"relation",state1:i[u-2],state2:i[u]};break;case 15:const yt=T.trimColon(i[u]);this.$={stmt:"relation",state1:i[u-3],state2:i[u-1],description:yt};break;case 19:this.$={stmt:"state",id:i[u-3],type:"default",description:"",doc:i[u-1]};break;case 20:var V=i[u],H=i[u-2].trim();if(i[u].match(":")){var ot=i[u].split(":");V=ot[0],H=[H,ot[1]]}this.$={stmt:"state",id:V,type:"default",description:H};break;case 21:this.$={stmt:"state",id:i[u-3],type:"default",description:i[u-5],doc:i[u-1]};break;case 22:this.$={stmt:"state",id:i[u],type:"fork"};break;case 23:this.$={stmt:"state",id:i[u],type:"join"};break;case 24:this.$={stmt:"state",id:i[u],type:"choice"};break;case 25:this.$={stmt:"state",id:T.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:i[u-1].trim(),note:{position:i[u-2].trim(),text:i[u].trim()}};break;case 29:this.$=i[u].trim(),T.setAccTitle(this.$);break;case 30:case 31:this.$=i[u].trim(),T.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:i[u-1].trim(),classes:i[u].trim()};break;case 34:this.$={stmt:"style",id:i[u-1].trim(),styleClass:i[u].trim()};break;case 35:this.$={stmt:"applyClass",id:i[u-1].trim(),styleClass:i[u].trim()};break;case 36:T.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:T.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:T.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:T.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:i[u].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:i[u-2].trim(),classes:[i[u].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:i[u-2].trim(),classes:[i[u].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:t,5:s,6:n},{1:[3]},{3:5,4:t,5:s,6:n},{3:6,4:t,5:s,6:n},e([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],o,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:c,5:r,8:8,9:10,10:12,11:13,12:14,13:15,16:d,17:f,19:g,22:E,24:m,25:I,26:G,27:R,28:S,29:L,32:25,33:O,35:Y,37:F,38:w,42:$,45:et,48:st,49:it,50:rt,51:at,54:X},e(y,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:d,17:f,19:g,22:E,24:m,25:I,26:G,27:R,28:S,29:L,32:25,33:O,35:Y,37:F,38:w,42:$,45:et,48:st,49:it,50:rt,51:at,54:X},e(y,[2,7]),e(y,[2,8]),e(y,[2,9]),e(y,[2,10]),e(y,[2,11]),e(y,[2,12],{14:[1,39],15:[1,40]}),e(y,[2,16]),{18:[1,41]},e(y,[2,18],{20:[1,42]}),{23:[1,43]},e(y,[2,22]),e(y,[2,23]),e(y,[2,24]),e(y,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},e(y,[2,28]),{34:[1,48]},{36:[1,49]},e(y,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},e(nt,[2,42],{55:[1,54]}),e(nt,[2,43],{55:[1,55]}),e(y,[2,36]),e(y,[2,37]),e(y,[2,38]),e(y,[2,39]),e(y,[2,6]),e(y,[2,13]),{13:56,24:m,54:X},e(y,[2,17]),e(At,o,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},e(y,[2,29]),e(y,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},e(y,[2,14],{14:[1,67]}),{4:c,5:r,8:8,9:10,10:12,11:13,12:14,13:15,16:d,17:f,19:g,21:[1,68],22:E,24:m,25:I,26:G,27:R,28:S,29:L,32:25,33:O,35:Y,37:F,38:w,42:$,45:et,48:st,49:it,50:rt,51:at,54:X},e(y,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},e(y,[2,32]),e(y,[2,33]),e(y,[2,34]),e(y,[2,35]),e(nt,[2,44]),e(nt,[2,45]),e(y,[2,15]),e(y,[2,19]),e(At,o,{7:72}),e(y,[2,26]),e(y,[2,27]),{4:c,5:r,8:8,9:10,10:12,11:13,12:14,13:15,16:d,17:f,19:g,21:[1,73],22:E,24:m,25:I,26:G,27:R,28:S,29:L,32:25,33:O,35:Y,37:F,38:w,42:$,45:et,48:st,49:it,50:rt,51:at,54:X},e(y,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:p(function(l,h){if(h.recoverable)this.trace(l);else{var a=new Error(l);throw a.hash=h,a}},"parseError"),parse:p(function(l){var h=this,a=[0],T=[],_=[null],i=[],K=this.table,u="",V=0,H=0,ot=2,J=1,yt=i.slice.call(arguments,1),D=Object.create(this.lexer),M={yy:{}};for(var gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gt)&&(M.yy[gt]=this.yy[gt]);D.setInput(l,M.yy),M.yy.lexer=D,M.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Tt=D.yylloc;i.push(Tt);var se=D.options&&D.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ie(C){a.length=a.length-2*C,_.length=_.length-C,i.length=i.length-C}p(ie,"popStack");function Lt(){var C;return C=T.pop()||D.lex()||J,typeof C!="number"&&(C instanceof Array&&(T=C,C=T.pop()),C=h.symbols_[C]||C),C}p(Lt,"lex");for(var k,U,x,_t,W={},ct,N,It,ht;;){if(U=a[a.length-1],this.defaultActions[U]?x=this.defaultActions[U]:((k===null||typeof k>"u")&&(k=Lt()),x=K[U]&&K[U][k]),typeof x>"u"||!x.length||!x[0]){var Et="";ht=[];for(ct in K[U])this.terminals_[ct]&&ct>ot&&ht.push("'"+this.terminals_[ct]+"'");D.showPosition?Et="Parse error on line "+(V+1)+`: +var re=Object.defineProperty;var ae=(e,t,s)=>t in e?re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var b=(e,t,s)=>ae(e,typeof t!="symbol"?t+"":t,s);import{g as ne,s as le}from"./chunk-RZ5BOZE2-C762jHXr.js";import{_ as p,l as v,c as A,r as oe,u as ce,a0 as he,k as j,z as ue,a as de,b as fe,g as pe,s as Se,q as ye,t as ge}from"./mermaid-vendor-d7rbry5E.js";var bt=function(){var e=p(function(P,l,h,a){for(h=h||{},a=P.length;a--;h[P[a]]=l);return h},"o"),t=[1,2],s=[1,3],n=[1,4],o=[2,4],c=[1,9],r=[1,11],d=[1,16],f=[1,17],g=[1,18],E=[1,19],m=[1,32],I=[1,20],G=[1,21],R=[1,22],S=[1,23],L=[1,24],O=[1,26],Y=[1,27],F=[1,28],w=[1,29],$=[1,30],et=[1,31],st=[1,34],it=[1,35],rt=[1,36],at=[1,37],X=[1,33],y=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],nt=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],At=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],St={trace:p(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:p(function(l,h,a,T,_,i,K){var u=i.length-1;switch(_){case 3:return T.setRootDoc(i[u]),i[u];case 4:this.$=[];break;case 5:i[u]!="nl"&&(i[u-1].push(i[u]),this.$=i[u-1]);break;case 6:case 7:this.$=i[u];break;case 8:this.$="nl";break;case 12:this.$=i[u];break;case 13:const J=i[u-1];J.description=T.trimColon(i[u]),this.$=J;break;case 14:this.$={stmt:"relation",state1:i[u-2],state2:i[u]};break;case 15:const yt=T.trimColon(i[u]);this.$={stmt:"relation",state1:i[u-3],state2:i[u-1],description:yt};break;case 19:this.$={stmt:"state",id:i[u-3],type:"default",description:"",doc:i[u-1]};break;case 20:var V=i[u],H=i[u-2].trim();if(i[u].match(":")){var ot=i[u].split(":");V=ot[0],H=[H,ot[1]]}this.$={stmt:"state",id:V,type:"default",description:H};break;case 21:this.$={stmt:"state",id:i[u-3],type:"default",description:i[u-5],doc:i[u-1]};break;case 22:this.$={stmt:"state",id:i[u],type:"fork"};break;case 23:this.$={stmt:"state",id:i[u],type:"join"};break;case 24:this.$={stmt:"state",id:i[u],type:"choice"};break;case 25:this.$={stmt:"state",id:T.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:i[u-1].trim(),note:{position:i[u-2].trim(),text:i[u].trim()}};break;case 29:this.$=i[u].trim(),T.setAccTitle(this.$);break;case 30:case 31:this.$=i[u].trim(),T.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:i[u-1].trim(),classes:i[u].trim()};break;case 34:this.$={stmt:"style",id:i[u-1].trim(),styleClass:i[u].trim()};break;case 35:this.$={stmt:"applyClass",id:i[u-1].trim(),styleClass:i[u].trim()};break;case 36:T.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:T.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:T.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:T.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:i[u].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:i[u-2].trim(),classes:[i[u].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:i[u-2].trim(),classes:[i[u].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:t,5:s,6:n},{1:[3]},{3:5,4:t,5:s,6:n},{3:6,4:t,5:s,6:n},e([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],o,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:c,5:r,8:8,9:10,10:12,11:13,12:14,13:15,16:d,17:f,19:g,22:E,24:m,25:I,26:G,27:R,28:S,29:L,32:25,33:O,35:Y,37:F,38:w,42:$,45:et,48:st,49:it,50:rt,51:at,54:X},e(y,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:d,17:f,19:g,22:E,24:m,25:I,26:G,27:R,28:S,29:L,32:25,33:O,35:Y,37:F,38:w,42:$,45:et,48:st,49:it,50:rt,51:at,54:X},e(y,[2,7]),e(y,[2,8]),e(y,[2,9]),e(y,[2,10]),e(y,[2,11]),e(y,[2,12],{14:[1,39],15:[1,40]}),e(y,[2,16]),{18:[1,41]},e(y,[2,18],{20:[1,42]}),{23:[1,43]},e(y,[2,22]),e(y,[2,23]),e(y,[2,24]),e(y,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},e(y,[2,28]),{34:[1,48]},{36:[1,49]},e(y,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},e(nt,[2,42],{55:[1,54]}),e(nt,[2,43],{55:[1,55]}),e(y,[2,36]),e(y,[2,37]),e(y,[2,38]),e(y,[2,39]),e(y,[2,6]),e(y,[2,13]),{13:56,24:m,54:X},e(y,[2,17]),e(At,o,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},e(y,[2,29]),e(y,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},e(y,[2,14],{14:[1,67]}),{4:c,5:r,8:8,9:10,10:12,11:13,12:14,13:15,16:d,17:f,19:g,21:[1,68],22:E,24:m,25:I,26:G,27:R,28:S,29:L,32:25,33:O,35:Y,37:F,38:w,42:$,45:et,48:st,49:it,50:rt,51:at,54:X},e(y,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},e(y,[2,32]),e(y,[2,33]),e(y,[2,34]),e(y,[2,35]),e(nt,[2,44]),e(nt,[2,45]),e(y,[2,15]),e(y,[2,19]),e(At,o,{7:72}),e(y,[2,26]),e(y,[2,27]),{4:c,5:r,8:8,9:10,10:12,11:13,12:14,13:15,16:d,17:f,19:g,21:[1,73],22:E,24:m,25:I,26:G,27:R,28:S,29:L,32:25,33:O,35:Y,37:F,38:w,42:$,45:et,48:st,49:it,50:rt,51:at,54:X},e(y,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:p(function(l,h){if(h.recoverable)this.trace(l);else{var a=new Error(l);throw a.hash=h,a}},"parseError"),parse:p(function(l){var h=this,a=[0],T=[],_=[null],i=[],K=this.table,u="",V=0,H=0,ot=2,J=1,yt=i.slice.call(arguments,1),D=Object.create(this.lexer),M={yy:{}};for(var gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gt)&&(M.yy[gt]=this.yy[gt]);D.setInput(l,M.yy),M.yy.lexer=D,M.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Tt=D.yylloc;i.push(Tt);var se=D.options&&D.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ie(C){a.length=a.length-2*C,_.length=_.length-C,i.length=i.length-C}p(ie,"popStack");function Lt(){var C;return C=T.pop()||D.lex()||J,typeof C!="number"&&(C instanceof Array&&(T=C,C=T.pop()),C=h.symbols_[C]||C),C}p(Lt,"lex");for(var k,U,x,_t,W={},ct,N,It,ht;;){if(U=a[a.length-1],this.defaultActions[U]?x=this.defaultActions[U]:((k===null||typeof k>"u")&&(k=Lt()),x=K[U]&&K[U][k]),typeof x>"u"||!x.length||!x[0]){var Et="";ht=[];for(ct in K[U])this.terminals_[ct]&&ct>ot&&ht.push("'"+this.terminals_[ct]+"'");D.showPosition?Et="Parse error on line "+(V+1)+`: `+D.showPosition()+` Expecting `+ht.join(", ")+", got '"+(this.terminals_[k]||k)+"'":Et="Parse error on line "+(V+1)+": Unexpected "+(k==J?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(Et,{text:D.match,token:this.terminals_[k]||k,line:D.yylineno,loc:Tt,expected:ht})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+U+", token: "+k);switch(x[0]){case 1:a.push(k),_.push(D.yytext),i.push(D.yylloc),a.push(x[1]),k=null,H=D.yyleng,u=D.yytext,V=D.yylineno,Tt=D.yylloc;break;case 2:if(N=this.productions_[x[1]][1],W.$=_[_.length-N],W._$={first_line:i[i.length-(N||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(N||1)].first_column,last_column:i[i.length-1].last_column},se&&(W._$.range=[i[i.length-(N||1)].range[0],i[i.length-1].range[1]]),_t=this.performAction.apply(W,[u,H,V,M.yy,x[1],_,i].concat(yt)),typeof _t<"u")return _t;N&&(a=a.slice(0,-1*N*2),_=_.slice(0,-1*N),i=i.slice(0,-1*N)),a.push(this.productions_[x[1]][0]),_.push(W.$),i.push(W._$),It=K[a[a.length-2]][a[a.length-1]],a.push(It);break;case 3:return!0}}return!0},"parse")},ee=function(){var P={EOF:1,parseError:p(function(h,a){if(this.yy.parser)this.yy.parser.parseError(h,a);else throw new Error(h)},"parseError"),setInput:p(function(l,h){return this.yy=h||this.yy||{},this._input=l,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:p(function(){var l=this._input[0];this.yytext+=l,this.yyleng++,this.offset++,this.match+=l,this.matched+=l;var h=l.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),l},"input"),unput:p(function(l){var h=l.length,a=l.split(/(?:\r\n?|\n)/g);this._input=l+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var T=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var _=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===T.length?this.yylloc.first_column:0)+T[T.length-a.length].length-a[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[_[0],_[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:p(function(){return this._more=!0,this},"more"),reject:p(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:p(function(l){this.unput(this.match.slice(l))},"less"),pastInput:p(function(){var l=this.matched.substr(0,this.matched.length-this.match.length);return(l.length>20?"...":"")+l.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:p(function(){var l=this.match;return l.length<20&&(l+=this._input.substr(0,20-l.length)),(l.substr(0,20)+(l.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:p(function(){var l=this.pastInput(),h=new Array(l.length+1).join("-");return l+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/chunk-D6G4REZN-CO4Tk6j6.js b/lightrag/api/webui/assets/chunk-D6G4REZN-CQqXYBrW.js similarity index 95% rename from lightrag/api/webui/assets/chunk-D6G4REZN-CO4Tk6j6.js rename to lightrag/api/webui/assets/chunk-D6G4REZN-CQqXYBrW.js index 7c44b9b0..7b5cfea3 100644 --- a/lightrag/api/webui/assets/chunk-D6G4REZN-CO4Tk6j6.js +++ b/lightrag/api/webui/assets/chunk-D6G4REZN-CQqXYBrW.js @@ -1 +1 @@ -import{_ as n,a1 as x,j as l}from"./mermaid-vendor-SwnP6Sr8.js";var c=n((a,t)=>{const e=a.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class&&e.attr("class",t.class),e},"drawRect"),d=n((a,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};c(a,e).lower()},"drawBackgroundRect"),g=n((a,t)=>{const e=t.text.replace(x," "),r=a.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class&&r.attr("class",t.class);const s=r.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.text(e),r},"drawText"),h=n((a,t,e,r)=>{const s=a.append("image");s.attr("x",t),s.attr("y",e);const i=l.sanitizeUrl(r);s.attr("xlink:href",i)},"drawImage"),m=n((a,t,e,r)=>{const s=a.append("use");s.attr("x",t),s.attr("y",e);const i=l.sanitizeUrl(r);s.attr("xlink:href",`#${i}`)},"drawEmbeddedImage"),y=n(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),p=n(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj");export{d as a,p as b,m as c,c as d,h as e,g as f,y as g}; +import{_ as n,a1 as x,j as l}from"./mermaid-vendor-d7rbry5E.js";var c=n((a,t)=>{const e=a.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class&&e.attr("class",t.class),e},"drawRect"),d=n((a,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};c(a,e).lower()},"drawBackgroundRect"),g=n((a,t)=>{const e=t.text.replace(x," "),r=a.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class&&r.attr("class",t.class);const s=r.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.text(e),r},"drawText"),h=n((a,t,e,r)=>{const s=a.append("image");s.attr("x",t),s.attr("y",e);const i=l.sanitizeUrl(r);s.attr("xlink:href",i)},"drawImage"),m=n((a,t,e,r)=>{const s=a.append("use");s.attr("x",t),s.attr("y",e);const i=l.sanitizeUrl(r);s.attr("xlink:href",`#${i}`)},"drawEmbeddedImage"),y=n(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),p=n(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj");export{d as a,p as b,m as c,c as d,h as e,g as f,y as g}; diff --git a/lightrag/api/webui/assets/chunk-RZ5BOZE2-vCqEaZEa.js b/lightrag/api/webui/assets/chunk-RZ5BOZE2-C762jHXr.js similarity index 81% rename from lightrag/api/webui/assets/chunk-RZ5BOZE2-vCqEaZEa.js rename to lightrag/api/webui/assets/chunk-RZ5BOZE2-C762jHXr.js index 90a7eece..2165a0f3 100644 --- a/lightrag/api/webui/assets/chunk-RZ5BOZE2-vCqEaZEa.js +++ b/lightrag/api/webui/assets/chunk-RZ5BOZE2-C762jHXr.js @@ -1 +1 @@ -import{_ as n,d as r,e as d,l as g}from"./mermaid-vendor-SwnP6Sr8.js";var u=n((e,t)=>{let o;return t==="sandbox"&&(o=r("#i"+e)),(t==="sandbox"?r(o.nodes()[0].contentDocument.body):r("body")).select(`[id="${e}"]`)},"getDiagramElement"),b=n((e,t,o,i)=>{e.attr("class",o);const{width:a,height:s,x:h,y:x}=l(e,t);d(e,s,a,i);const c=w(h,x,a,s,t);e.attr("viewBox",c),g.debug(`viewBox configured: ${c} with padding: ${t}`)},"setupViewPortForSVG"),l=n((e,t)=>{var i;const o=((i=e.node())==null?void 0:i.getBBox())||{width:0,height:0,x:0,y:0};return{width:o.width+t*2,height:o.height+t*2,x:o.x,y:o.y}},"calculateDimensionsWithPadding"),w=n((e,t,o,i,a)=>`${e-a} ${t-a} ${o} ${i}`,"createViewBox");export{u as g,b as s}; +import{_ as n,d as r,e as d,l as g}from"./mermaid-vendor-d7rbry5E.js";var u=n((e,t)=>{let o;return t==="sandbox"&&(o=r("#i"+e)),(t==="sandbox"?r(o.nodes()[0].contentDocument.body):r("body")).select(`[id="${e}"]`)},"getDiagramElement"),b=n((e,t,o,i)=>{e.attr("class",o);const{width:a,height:s,x:h,y:x}=l(e,t);d(e,s,a,i);const c=w(h,x,a,s,t);e.attr("viewBox",c),g.debug(`viewBox configured: ${c} with padding: ${t}`)},"setupViewPortForSVG"),l=n((e,t)=>{var i;const o=((i=e.node())==null?void 0:i.getBBox())||{width:0,height:0,x:0,y:0};return{width:o.width+t*2,height:o.height+t*2,x:o.x,y:o.y}},"calculateDimensionsWithPadding"),w=n((e,t,o,i,a)=>`${e-a} ${t-a} ${o} ${i}`,"createViewBox");export{u as g,b as s}; diff --git a/lightrag/api/webui/assets/chunk-XZIHB7SX-BjHVUYBP.js b/lightrag/api/webui/assets/chunk-XZIHB7SX-CqkuoyXD.js similarity index 67% rename from lightrag/api/webui/assets/chunk-XZIHB7SX-BjHVUYBP.js rename to lightrag/api/webui/assets/chunk-XZIHB7SX-CqkuoyXD.js index e11dbf4b..79cbaa94 100644 --- a/lightrag/api/webui/assets/chunk-XZIHB7SX-BjHVUYBP.js +++ b/lightrag/api/webui/assets/chunk-XZIHB7SX-CqkuoyXD.js @@ -1 +1 @@ -import{_ as s}from"./mermaid-vendor-SwnP6Sr8.js";var t,e=(t=class{constructor(i){this.init=i,this.records=this.init()}reset(){this.records=this.init()}},s(t,"ImperativeState"),t);export{e as I}; +import{_ as s}from"./mermaid-vendor-d7rbry5E.js";var t,e=(t=class{constructor(i){this.init=i,this.records=this.init()}reset(){this.records=this.init()}},s(t,"ImperativeState"),t);export{e as I}; diff --git a/lightrag/api/webui/assets/classDiagram-GIVACNV2-DUFHlr92.js b/lightrag/api/webui/assets/classDiagram-GIVACNV2-Bx6IdAZy.js similarity index 61% rename from lightrag/api/webui/assets/classDiagram-GIVACNV2-DUFHlr92.js rename to lightrag/api/webui/assets/classDiagram-GIVACNV2-Bx6IdAZy.js index 1b46fb20..671954b9 100644 --- a/lightrag/api/webui/assets/classDiagram-GIVACNV2-DUFHlr92.js +++ b/lightrag/api/webui/assets/classDiagram-GIVACNV2-Bx6IdAZy.js @@ -1 +1 @@ -import{s as a,c as s,a as e,C as t}from"./chunk-A2AXSNBT-CTXPIZDs.js";import{_ as i}from"./mermaid-vendor-SwnP6Sr8.js";import"./chunk-RZ5BOZE2-vCqEaZEa.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var f={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{f as diagram}; +import{s as a,c as s,a as e,C as t}from"./chunk-A2AXSNBT-CvfQgLmG.js";import{_ as i}from"./mermaid-vendor-d7rbry5E.js";import"./chunk-RZ5BOZE2-C762jHXr.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var f={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{f as diagram}; diff --git a/lightrag/api/webui/assets/classDiagram-v2-COTLJTTW-DUFHlr92.js b/lightrag/api/webui/assets/classDiagram-v2-COTLJTTW-Bx6IdAZy.js similarity index 61% rename from lightrag/api/webui/assets/classDiagram-v2-COTLJTTW-DUFHlr92.js rename to lightrag/api/webui/assets/classDiagram-v2-COTLJTTW-Bx6IdAZy.js index 1b46fb20..671954b9 100644 --- a/lightrag/api/webui/assets/classDiagram-v2-COTLJTTW-DUFHlr92.js +++ b/lightrag/api/webui/assets/classDiagram-v2-COTLJTTW-Bx6IdAZy.js @@ -1 +1 @@ -import{s as a,c as s,a as e,C as t}from"./chunk-A2AXSNBT-CTXPIZDs.js";import{_ as i}from"./mermaid-vendor-SwnP6Sr8.js";import"./chunk-RZ5BOZE2-vCqEaZEa.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var f={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{f as diagram}; +import{s as a,c as s,a as e,C as t}from"./chunk-A2AXSNBT-CvfQgLmG.js";import{_ as i}from"./mermaid-vendor-d7rbry5E.js";import"./chunk-RZ5BOZE2-C762jHXr.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var f={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{f as diagram}; diff --git a/lightrag/api/webui/assets/clone-BHIBWXu-.js b/lightrag/api/webui/assets/clone-BHIBWXu-.js deleted file mode 100644 index 079c5aaf..00000000 --- a/lightrag/api/webui/assets/clone-BHIBWXu-.js +++ /dev/null @@ -1 +0,0 @@ -import{b as r}from"./_baseUniq-D81M49Y6.js";var e=4;function a(o){return r(o,e)}export{a as c}; diff --git a/lightrag/api/webui/assets/clone-vL6XIcCC.js b/lightrag/api/webui/assets/clone-vL6XIcCC.js new file mode 100644 index 00000000..140ee720 --- /dev/null +++ b/lightrag/api/webui/assets/clone-vL6XIcCC.js @@ -0,0 +1 @@ +import{b as r}from"./_baseUniq-OtJ11HbN.js";var e=4;function a(o){return r(o,e)}export{a as c}; diff --git a/lightrag/api/webui/assets/dagre-OKDRZEBW-hl_RTy2g.js b/lightrag/api/webui/assets/dagre-OKDRZEBW-K3MoIKXh.js similarity index 97% rename from lightrag/api/webui/assets/dagre-OKDRZEBW-hl_RTy2g.js rename to lightrag/api/webui/assets/dagre-OKDRZEBW-K3MoIKXh.js index 0dc72256..ca8ac07b 100644 --- a/lightrag/api/webui/assets/dagre-OKDRZEBW-hl_RTy2g.js +++ b/lightrag/api/webui/assets/dagre-OKDRZEBW-K3MoIKXh.js @@ -1,4 +1,4 @@ -import{_ as p,ah as F,ai as Y,aj as _,ak as H,l as i,c as V,al as U,am as $,a8 as q,ad as z,a9 as P,a7 as K,an as Q,ao as W,ap as Z}from"./mermaid-vendor-SwnP6Sr8.js";import{G as B}from"./graph-CmqUPRtj.js";import{l as I}from"./layout-Klo12PD4.js";import{i as x}from"./_baseUniq-D81M49Y6.js";import{c as L}from"./clone-BHIBWXu-.js";import{m as A}from"./_basePickBy--_O36kXE.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";function E(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:ee(e),edges:ne(e)};return x(e.graph())||(t.value=L(e.graph())),t}function ee(e){return A(e.nodes(),function(t){var n=e.node(t),o=e.parent(t),c={v:t};return x(n)||(c.value=n),x(o)||(c.parent=o),c})}function ne(e){return A(e.edges(),function(t){var n=e.edge(t),o={v:t.v,w:t.w};return x(t.name)||(o.name=t.name),x(n)||(o.value=n),o})}var f=new Map,b=new Map,J=new Map,te=p(()=>{b.clear(),J.clear(),f.clear()},"clear"),O=p((e,t)=>{const n=b.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),se=p((e,t)=>{const n=b.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||O(e.v,t)||O(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),G=p((e,t,n,o)=>{i.warn("Copying children of ",e,"root",o,"data",t.node(e),o);const c=t.children(e)||[];e!==o&&c.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",c),c.forEach(a=>{if(t.children(a).length>0)G(a,t,n,o);else{const r=t.node(a);i.info("cp ",a," to ",o," with parent ",e),n.setNode(a,r),o!==t.parent(a)&&(i.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==o&&a!==e?(i.debug("Setting parent",a,e),n.setParent(a,e)):(i.info("In copy ",e,"root",o,"data",t.node(e),o),i.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==o,"node!==clusterId",a!==e));const u=t.edges(a);i.debug("Copying Edges",u),u.forEach(l=>{i.info("Edge",l);const v=t.edge(l.v,l.w,l.name);i.info("Edge data",v,o);try{se(l,o)?(i.info("Copying as ",l.v,l.w,v,l.name),n.setEdge(l.v,l.w,v,l.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",l.v,"-->",l.w," rootId: ",o," clusterId:",e)}catch(C){i.error(C)}})}i.debug("Removing node",a),t.removeNode(a)})},"copy"),R=p((e,t)=>{const n=t.children(e);let o=[...n];for(const c of n)J.set(c,e),o=[...o,...R(c,t)];return o},"extractDescendants"),ie=p((e,t,n)=>{const o=e.edges().filter(l=>l.v===t||l.w===t),c=e.edges().filter(l=>l.v===n||l.w===n),a=o.map(l=>({v:l.v===t?n:l.v,w:l.w===t?t:l.w})),r=c.map(l=>({v:l.v,w:l.w}));return a.filter(l=>r.some(v=>l.v===v.v&&l.w===v.w))},"findCommonEdges"),D=p((e,t,n)=>{const o=t.children(e);if(i.trace("Searching children of id ",e,o),o.length<1)return e;let c;for(const a of o){const r=D(a,t,n),u=ie(t,n,r);if(r)if(u.length>0)c=r;else return r}return c},"findNonClusterChild"),k=p(e=>!f.has(e)||!f.get(e).externalConnections?e:f.has(e)?f.get(e).id:e,"getAnchorId"),re=p((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",D(n,e,n)),b.set(n,R(n,e)),f.set(n,{id:D(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const o=e.children(n),c=e.edges();o.length>0?(i.debug("Cluster identified",n,b),c.forEach(a=>{const r=O(a.v,n),u=O(a.w,n);r^u&&(i.warn("Edge: ",a," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",b.get(n)),f.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,b)});for(let n of f.keys()){const o=f.get(n).id,c=e.parent(o);c!==n&&f.has(c)&&!f.get(c).externalConnections&&(f.get(n).id=c)}e.edges().forEach(function(n){const o=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let c=n.v,a=n.w;if(i.warn("Fix XXX",f,"ids:",n.v,n.w,"Translating: ",f.get(n.v)," --- ",f.get(n.w)),f.get(n.v)||f.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),c=k(n.v),a=k(n.w),e.removeEdge(n.v,n.w,n.name),c!==n.v){const r=e.parent(c);f.get(r).externalConnections=!0,o.fromCluster=n.v}if(a!==n.w){const r=e.parent(a);f.get(r).externalConnections=!0,o.toCluster=n.w}i.warn("Fix Replacing with XXX",c,a,n.name),e.setEdge(c,a,o,n.name)}}),i.warn("Adjusted Graph",E(e)),T(e,0),i.trace(f)},"adjustClustersAndEdges"),T=p((e,t)=>{var c,a;if(i.warn("extractor - ",t,E(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),o=!1;for(const r of n){const u=e.children(r);o=o||u.length>0}if(!o){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const r of n)if(i.debug("Extracting node",r,f,f.has(r)&&!f.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!f.has(r))i.debug("Not a cluster",r,t);else if(!f.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){i.warn("Cluster without external connections, without a parent and with children",r,t);let l=e.graph().rankdir==="TB"?"LR":"TB";(a=(c=f.get(r))==null?void 0:c.clusterData)!=null&&a.dir&&(l=f.get(r).clusterData.dir,i.warn("Fixing dir",f.get(r).clusterData.dir,l));const v=new B({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",E(e)),G(r,e,v,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:f.get(r).clusterData,label:f.get(r).label,graph:v}),i.warn("New graph after copy node: (",r,")",E(v)),i.debug("Old graph after copy",E(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!f.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(f);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const u=e.node(r);i.warn(" Now next level",r,u),u!=null&&u.clusterNode&&T(u.graph,t+1)}},"extractor"),M=p((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(o=>{const c=e.children(o),a=M(e,c);n=[...n,...a]}),n},"sorter"),oe=p(e=>M(e,e.children()),"sortNodesByHierarchy"),j=p(async(e,t,n,o,c,a)=>{i.warn("Graph in recursive render:XAX",E(t),c);const r=t.graph().rankdir;i.trace("Dir in recursive render - dir:",r);const u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const l=u.insert("g").attr("class","clusters"),v=u.insert("g").attr("class","edgePaths"),C=u.insert("g").attr("class","edgeLabels"),g=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(d){const s=t.node(d);if(c!==void 0){const w=JSON.parse(JSON.stringify(c.clusterData));i.trace(`Setting data for parent cluster XXX +import{_ as p,ah as F,ai as Y,aj as _,ak as H,l as i,c as V,al as U,am as $,a8 as q,ad as z,a9 as P,a7 as K,an as Q,ao as W,ap as Z}from"./mermaid-vendor-d7rbry5E.js";import{G as B}from"./graph-DexVwBa8.js";import{l as I}from"./layout-WkuL70g8.js";import{i as x}from"./_baseUniq-OtJ11HbN.js";import{c as L}from"./clone-vL6XIcCC.js";import{m as A}from"./_basePickBy-Lz6agtdo.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";function E(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:ee(e),edges:ne(e)};return x(e.graph())||(t.value=L(e.graph())),t}function ee(e){return A(e.nodes(),function(t){var n=e.node(t),o=e.parent(t),c={v:t};return x(n)||(c.value=n),x(o)||(c.parent=o),c})}function ne(e){return A(e.edges(),function(t){var n=e.edge(t),o={v:t.v,w:t.w};return x(t.name)||(o.name=t.name),x(n)||(o.value=n),o})}var f=new Map,b=new Map,J=new Map,te=p(()=>{b.clear(),J.clear(),f.clear()},"clear"),O=p((e,t)=>{const n=b.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),se=p((e,t)=>{const n=b.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||O(e.v,t)||O(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),G=p((e,t,n,o)=>{i.warn("Copying children of ",e,"root",o,"data",t.node(e),o);const c=t.children(e)||[];e!==o&&c.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",c),c.forEach(a=>{if(t.children(a).length>0)G(a,t,n,o);else{const r=t.node(a);i.info("cp ",a," to ",o," with parent ",e),n.setNode(a,r),o!==t.parent(a)&&(i.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==o&&a!==e?(i.debug("Setting parent",a,e),n.setParent(a,e)):(i.info("In copy ",e,"root",o,"data",t.node(e),o),i.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==o,"node!==clusterId",a!==e));const u=t.edges(a);i.debug("Copying Edges",u),u.forEach(l=>{i.info("Edge",l);const v=t.edge(l.v,l.w,l.name);i.info("Edge data",v,o);try{se(l,o)?(i.info("Copying as ",l.v,l.w,v,l.name),n.setEdge(l.v,l.w,v,l.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",l.v,"-->",l.w," rootId: ",o," clusterId:",e)}catch(C){i.error(C)}})}i.debug("Removing node",a),t.removeNode(a)})},"copy"),R=p((e,t)=>{const n=t.children(e);let o=[...n];for(const c of n)J.set(c,e),o=[...o,...R(c,t)];return o},"extractDescendants"),ie=p((e,t,n)=>{const o=e.edges().filter(l=>l.v===t||l.w===t),c=e.edges().filter(l=>l.v===n||l.w===n),a=o.map(l=>({v:l.v===t?n:l.v,w:l.w===t?t:l.w})),r=c.map(l=>({v:l.v,w:l.w}));return a.filter(l=>r.some(v=>l.v===v.v&&l.w===v.w))},"findCommonEdges"),D=p((e,t,n)=>{const o=t.children(e);if(i.trace("Searching children of id ",e,o),o.length<1)return e;let c;for(const a of o){const r=D(a,t,n),u=ie(t,n,r);if(r)if(u.length>0)c=r;else return r}return c},"findNonClusterChild"),k=p(e=>!f.has(e)||!f.get(e).externalConnections?e:f.has(e)?f.get(e).id:e,"getAnchorId"),re=p((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",D(n,e,n)),b.set(n,R(n,e)),f.set(n,{id:D(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const o=e.children(n),c=e.edges();o.length>0?(i.debug("Cluster identified",n,b),c.forEach(a=>{const r=O(a.v,n),u=O(a.w,n);r^u&&(i.warn("Edge: ",a," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",b.get(n)),f.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,b)});for(let n of f.keys()){const o=f.get(n).id,c=e.parent(o);c!==n&&f.has(c)&&!f.get(c).externalConnections&&(f.get(n).id=c)}e.edges().forEach(function(n){const o=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let c=n.v,a=n.w;if(i.warn("Fix XXX",f,"ids:",n.v,n.w,"Translating: ",f.get(n.v)," --- ",f.get(n.w)),f.get(n.v)||f.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),c=k(n.v),a=k(n.w),e.removeEdge(n.v,n.w,n.name),c!==n.v){const r=e.parent(c);f.get(r).externalConnections=!0,o.fromCluster=n.v}if(a!==n.w){const r=e.parent(a);f.get(r).externalConnections=!0,o.toCluster=n.w}i.warn("Fix Replacing with XXX",c,a,n.name),e.setEdge(c,a,o,n.name)}}),i.warn("Adjusted Graph",E(e)),T(e,0),i.trace(f)},"adjustClustersAndEdges"),T=p((e,t)=>{var c,a;if(i.warn("extractor - ",t,E(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),o=!1;for(const r of n){const u=e.children(r);o=o||u.length>0}if(!o){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const r of n)if(i.debug("Extracting node",r,f,f.has(r)&&!f.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!f.has(r))i.debug("Not a cluster",r,t);else if(!f.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){i.warn("Cluster without external connections, without a parent and with children",r,t);let l=e.graph().rankdir==="TB"?"LR":"TB";(a=(c=f.get(r))==null?void 0:c.clusterData)!=null&&a.dir&&(l=f.get(r).clusterData.dir,i.warn("Fixing dir",f.get(r).clusterData.dir,l));const v=new B({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",E(e)),G(r,e,v,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:f.get(r).clusterData,label:f.get(r).label,graph:v}),i.warn("New graph after copy node: (",r,")",E(v)),i.debug("Old graph after copy",E(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!f.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(f);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const u=e.node(r);i.warn(" Now next level",r,u),u!=null&&u.clusterNode&&T(u.graph,t+1)}},"extractor"),M=p((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(o=>{const c=e.children(o),a=M(e,c);n=[...n,...a]}),n},"sorter"),oe=p(e=>M(e,e.children()),"sortNodesByHierarchy"),j=p(async(e,t,n,o,c,a)=>{i.warn("Graph in recursive render:XAX",E(t),c);const r=t.graph().rankdir;i.trace("Dir in recursive render - dir:",r);const u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const l=u.insert("g").attr("class","clusters"),v=u.insert("g").attr("class","edgePaths"),C=u.insert("g").attr("class","edgeLabels"),g=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(d){const s=t.node(d);if(c!==void 0){const w=JSON.parse(JSON.stringify(c.clusterData));i.trace(`Setting data for parent cluster XXX Node.id = `,d,` data=`,w.height,` Parent cluster`,c.height),t.setNode(c.id,w),t.parent(d)||(i.trace("Setting parent",d,c.id),t.setParent(d,c.id,w))}if(i.info("(Insert) Node XXX"+d+": "+JSON.stringify(t.node(d))),s!=null&&s.clusterNode){i.info("Cluster identified XBX",d,s.width,t.node(d));const{ranksep:w,nodesep:m}=t.graph();s.graph.setGraph({...s.graph.graph(),ranksep:w+25,nodesep:m});const N=await j(g,s.graph,n,o,t.node(d),a),S=N.elem;U(s,S),s.diff=N.diff||0,i.info("New compound node after recursive render XAX",d,"width",s.width,"height",s.height),$(S,s)}else t.children(d).length>0?(i.trace("Cluster - the non recursive path XBX",d,s.id,s,s.width,"Graph:",t),i.trace(D(s.id,t)),f.set(s.id,{id:D(s.id,t),node:s})):(i.trace("Node - the non recursive path XAX",d,g,t.node(d),r),await q(g,t.node(d),{config:a,dir:r}))})),await p(async()=>{const d=t.edges().map(async function(s){const w=t.edge(s.v,s.w,s.name);i.info("Edge "+s.v+" -> "+s.w+": "+JSON.stringify(s)),i.info("Edge "+s.v+" -> "+s.w+": ",s," ",JSON.stringify(t.edge(s))),i.info("Fix",f,"ids:",s.v,s.w,"Translating: ",f.get(s.v),f.get(s.w)),await Z(C,w)});await Promise.all(d)},"processEdges")(),i.info("Graph before layout:",JSON.stringify(E(t))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),I(t),i.info("Graph after layout:",JSON.stringify(E(t)));let y=0,{subGraphTitleTotalMargin:X}=z(a);return await Promise.all(oe(t).map(async function(d){var w;const s=t.node(d);if(i.info("Position XBX => "+d+": ("+s.x,","+s.y,") width: ",s.width," height: ",s.height),s!=null&&s.clusterNode)s.y+=X,i.info("A tainted cluster node XBX1",d,s.id,s.width,s.height,s.x,s.y,t.parent(d)),f.get(s.id).node=s,P(s);else if(t.children(d).length>0){i.info("A pure cluster node XBX1",d,s.id,s.x,s.y,s.width,s.height,t.parent(d)),s.height+=X,t.node(s.parentId);const m=(s==null?void 0:s.padding)/2||0,N=((w=s==null?void 0:s.labelBBox)==null?void 0:w.height)||0,S=N-m||0;i.debug("OffsetY",S,"labelHeight",N,"halfPadding",m),await K(l,s),f.get(s.id).node=s}else{const m=t.node(s.parentId);s.y+=X/2,i.info("A regular node XBX1 - using the padding",s.id,"parent",s.parentId,s.width,s.height,s.x,s.y,"offsetY",s.offsetY,"parent",m,m==null?void 0:m.offsetY,s),P(s)}})),t.edges().forEach(function(d){const s=t.edge(d);i.info("Edge "+d.v+" -> "+d.w+": "+JSON.stringify(s),s),s.points.forEach(S=>S.y+=X/2);const w=t.node(d.v);var m=t.node(d.w);const N=Q(v,s,f,n,w,m,o);W(s,N)}),t.nodes().forEach(function(d){const s=t.node(d);i.info(d,s.type,s.diff),s.isGroup&&(y=s.diff)}),i.warn("Returning from recursive render XAX",u,y),{elem:u,diff:y}},"recursiveRender"),pe=p(async(e,t)=>{var a,r,u,l,v,C;const n=new B({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:((a=e.config)==null?void 0:a.nodeSpacing)||((u=(r=e.config)==null?void 0:r.flowchart)==null?void 0:u.nodeSpacing)||e.nodeSpacing,ranksep:((l=e.config)==null?void 0:l.rankSpacing)||((C=(v=e.config)==null?void 0:v.flowchart)==null?void 0:C.rankSpacing)||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),o=t.select("g");F(o,e.markers,e.type,e.diagramId),Y(),_(),H(),te(),e.nodes.forEach(g=>{n.setNode(g.id,{...g}),g.parentId&&n.setParent(g.id,g.parentId)}),i.debug("Edges:",e.edges),e.edges.forEach(g=>{if(g.start===g.end){const h=g.start,y=h+"---"+h+"---1",X=h+"---"+h+"---2",d=n.node(h);n.setNode(y,{domId:y,id:y,parentId:d.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(y,d.parentId),n.setNode(X,{domId:X,id:X,parentId:d.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(X,d.parentId);const s=structuredClone(g),w=structuredClone(g),m=structuredClone(g);s.label="",s.arrowTypeEnd="none",s.id=h+"-cyclic-special-1",w.arrowTypeStart="none",w.arrowTypeEnd="none",w.id=h+"-cyclic-special-mid",m.label="",d.isGroup&&(s.fromCluster=h,m.toCluster=h),m.id=h+"-cyclic-special-2",m.arrowTypeStart="none",n.setEdge(h,y,s,h+"-cyclic-special-0"),n.setEdge(y,X,w,h+"-cyclic-special-1"),n.setEdge(X,h,m,h+"-cycy({...B,...C().radar}),"getConfig"),b=l(()=>g.axes,"getAxes"),q=l(()=>g.curves,"getCurves"),K=l(()=>g.options,"getOptions"),N=l(a=>{g.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Q=l(a=>{g.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:U(t.entries)}))},"setCurves"),U=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>{var o;return((o=s.axis)==null?void 0:o.$refText)===e.name});if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),X=l(a=>{var e,r,s,o,i;const t=a.reduce((n,c)=>(n[c.name]=c,n),{});g.options={showLegend:((e=t.showLegend)==null?void 0:e.value)??h.showLegend,ticks:((r=t.ticks)==null?void 0:r.value)??h.ticks,max:((s=t.max)==null?void 0:s.value)??h.max,min:((o=t.min)==null?void 0:o.value)??h.min,graticule:((i=t.graticule)==null?void 0:i.value)??h.graticule}},"setOptions"),Y=l(()=>{z(),g=structuredClone(w)},"clear"),$={getAxes:b,getCurves:q,getOptions:K,setAxes:N,setCurves:Q,setOptions:X,getConfig:j,clear:Y,setAccTitle:D,getAccTitle:E,setDiagramTitle:_,getDiagramTitle:I,getAccDescription:F,setAccDescription:R},Z=l(a=>{k(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),J={parse:l(async a=>{const t=await W("radar",a);H.debug(t),Z(t)},"parse")},tt=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),u=G(t),p=et(u,c),m=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),x=n.min,v=Math.min(c.width,c.height)/2;at(p,o,v,n.ticks,n.graticule),rt(p,o,v,c),M(p,o,i,x,m,n.graticule,c),T(p,i,n.showLegend,c),p.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),et=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return a.attr("viewbox",`0 0 ${e} ${r}`).attr("width",e).attr("height",r),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),at=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o{const p=2*u*Math.PI/o-Math.PI/2,m=n*Math.cos(p),x=n*Math.sin(p);return`${m},${x}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),rt=l((a,t,e,r)=>{const s=t.length;for(let o=0;o{if(d.entries.length!==n)return;const p=d.entries.map((m,x)=>{const v=2*Math.PI*x/n-Math.PI/2,f=A(m,r,s,c),O=f*Math.cos(v),S=f*Math.sin(v);return{x:O,y:S}});o==="circle"?a.append("path").attr("d",L(p,i.curveTension)).attr("class",`radarCurve-${u}`):o==="polygon"&&a.append("polygon").attr("points",p.map(m=>`${m.x},${m.y}`).join(" ")).attr("class",`radarCurve-${u}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var st={draw:tt},nt=l((a,t)=>{let e="";for(let r=0;ry({...B,...C().radar}),"getConfig"),b=l(()=>g.axes,"getAxes"),q=l(()=>g.curves,"getCurves"),K=l(()=>g.options,"getOptions"),N=l(a=>{g.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Q=l(a=>{g.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:U(t.entries)}))},"setCurves"),U=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>{var o;return((o=s.axis)==null?void 0:o.$refText)===e.name});if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),X=l(a=>{var e,r,s,o,i;const t=a.reduce((n,c)=>(n[c.name]=c,n),{});g.options={showLegend:((e=t.showLegend)==null?void 0:e.value)??h.showLegend,ticks:((r=t.ticks)==null?void 0:r.value)??h.ticks,max:((s=t.max)==null?void 0:s.value)??h.max,min:((o=t.min)==null?void 0:o.value)??h.min,graticule:((i=t.graticule)==null?void 0:i.value)??h.graticule}},"setOptions"),Y=l(()=>{z(),g=structuredClone(w)},"clear"),$={getAxes:b,getCurves:q,getOptions:K,setAxes:N,setCurves:Q,setOptions:X,getConfig:j,clear:Y,setAccTitle:D,getAccTitle:E,setDiagramTitle:_,getDiagramTitle:I,getAccDescription:F,setAccDescription:R},Z=l(a=>{k(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),J={parse:l(async a=>{const t=await W("radar",a);H.debug(t),Z(t)},"parse")},tt=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),u=G(t),p=et(u,c),m=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),x=n.min,v=Math.min(c.width,c.height)/2;at(p,o,v,n.ticks,n.graticule),rt(p,o,v,c),M(p,o,i,x,m,n.graticule,c),T(p,i,n.showLegend,c),p.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),et=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return a.attr("viewbox",`0 0 ${e} ${r}`).attr("width",e).attr("height",r),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),at=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o{const p=2*u*Math.PI/o-Math.PI/2,m=n*Math.cos(p),x=n*Math.sin(p);return`${m},${x}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),rt=l((a,t,e,r)=>{const s=t.length;for(let o=0;o{if(d.entries.length!==n)return;const p=d.entries.map((m,x)=>{const v=2*Math.PI*x/n-Math.PI/2,f=A(m,r,s,c),O=f*Math.cos(v),S=f*Math.sin(v);return{x:O,y:S}});o==="circle"?a.append("path").attr("d",L(p,i.curveTension)).attr("class",`radarCurve-${u}`):o==="polygon"&&a.append("polygon").attr("points",p.map(m=>`${m.x},${m.y}`).join(" ")).attr("class",`radarCurve-${u}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var st={draw:tt},nt=l((a,t)=>{let e="";for(let r=0;r{const t=x({...L,...A().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),G=n(()=>h.packet,"getPacket"),H=n(t=>{t.length>0&&h.packet.push(t)},"pushWord"),I=n(()=>{_(),h=structuredClone(C)},"clear"),m={pushWord:H,getPacket:G,getConfig:Y,clear:I,setAccTitle:W,getAccTitle:P,setDiagramTitle:z,getDiagramTitle:F,getAccDescription:S,setAccDescription:B},K=1e4,M=n(t=>{w(t,m);let e=-1,o=[],s=1;const{bitsPerRow:i}=m.getConfig();for(let{start:a,end:r,label:p}of t.blocks){if(r&&r{if(t.end===void 0&&(t.end=t.start),t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*o?[t,void 0]:[{start:t.start,end:e*o-1,label:t.label},{start:e*o,end:t.end,label:t.label}]},"getNextFittingBlock"),q={parse:n(async t=>{const e=await N("packet",t);v.debug(e),M(e)},"parse")},R=n((t,e,o,s)=>{const i=s.db,a=i.getConfig(),{rowHeight:r,paddingY:p,bitWidth:b,bitsPerRow:c}=a,u=i.getPacket(),l=i.getDiagramTitle(),g=r+p,d=g*(u.length+1)-(l?0:r),k=b*c+2,f=T(e);f.attr("viewbox",`0 0 ${k} ${d}`),D(f,d,k,a.useMaxWidth);for(const[$,y]of u.entries())U(f,y,$,a);f.append("text").text(l).attr("x",k/2).attr("y",d-g/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),U=n((t,e,o,{rowHeight:s,paddingX:i,paddingY:a,bitWidth:r,bitsPerRow:p,showBits:b})=>{const c=t.append("g"),u=o*(s+a)+a;for(const l of e){const g=l.start%p*r+1,d=(l.end-l.start+1)*r-i;if(c.append("rect").attr("x",g).attr("y",u).attr("width",d).attr("height",s).attr("class","packetBlock"),c.append("text").attr("x",g+d/2).attr("y",u+s/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(l.label),!b)continue;const k=l.end===l.start,f=u-2;c.append("text").attr("x",g+(k?d/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(l.start),k||c.append("text").attr("x",g+d).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(l.end)}},"drawWord"),X={draw:R},j={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},J=n(({packet:t}={})=>{const e=x(j,t);return` +import{p as w}from"./chunk-4BMEZGHF-Ct0jZH9M.js";import{_ as n,s as B,g as S,t as F,q as z,a as P,b as W,F as x,K as T,e as D,z as _,G as A,H as E,l as v}from"./mermaid-vendor-d7rbry5E.js";import{p as N}from"./radar-MK3ICKWK-zkXzSXFe.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-OtJ11HbN.js";import"./_basePickBy-Lz6agtdo.js";import"./clone-vL6XIcCC.js";var C={packet:[]},h=structuredClone(C),L=E.packet,Y=n(()=>{const t=x({...L,...A().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),G=n(()=>h.packet,"getPacket"),H=n(t=>{t.length>0&&h.packet.push(t)},"pushWord"),I=n(()=>{_(),h=structuredClone(C)},"clear"),m={pushWord:H,getPacket:G,getConfig:Y,clear:I,setAccTitle:W,getAccTitle:P,setDiagramTitle:z,getDiagramTitle:F,getAccDescription:S,setAccDescription:B},K=1e4,M=n(t=>{w(t,m);let e=-1,o=[],s=1;const{bitsPerRow:i}=m.getConfig();for(let{start:a,end:r,label:p}of t.blocks){if(r&&r{if(t.end===void 0&&(t.end=t.start),t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*o?[t,void 0]:[{start:t.start,end:e*o-1,label:t.label},{start:e*o,end:t.end,label:t.label}]},"getNextFittingBlock"),q={parse:n(async t=>{const e=await N("packet",t);v.debug(e),M(e)},"parse")},R=n((t,e,o,s)=>{const i=s.db,a=i.getConfig(),{rowHeight:r,paddingY:p,bitWidth:b,bitsPerRow:c}=a,u=i.getPacket(),l=i.getDiagramTitle(),g=r+p,d=g*(u.length+1)-(l?0:r),k=b*c+2,f=T(e);f.attr("viewbox",`0 0 ${k} ${d}`),D(f,d,k,a.useMaxWidth);for(const[$,y]of u.entries())U(f,y,$,a);f.append("text").text(l).attr("x",k/2).attr("y",d-g/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),U=n((t,e,o,{rowHeight:s,paddingX:i,paddingY:a,bitWidth:r,bitsPerRow:p,showBits:b})=>{const c=t.append("g"),u=o*(s+a)+a;for(const l of e){const g=l.start%p*r+1,d=(l.end-l.start+1)*r-i;if(c.append("rect").attr("x",g).attr("y",u).attr("width",d).attr("height",s).attr("class","packetBlock"),c.append("text").attr("x",g+d/2).attr("y",u+s/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(l.label),!b)continue;const k=l.end===l.start,f=u-2;c.append("text").attr("x",g+(k?d/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(l.start),k||c.append("text").attr("x",g+d).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(l.end)}},"drawWord"),X={draw:R},j={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},J=n(({packet:t}={})=>{const e=x(j,t);return` .packetByte { font-size: ${e.byteFontSize}; } diff --git a/lightrag/api/webui/assets/erDiagram-Q7BY3M3F-CAraTg_G.js b/lightrag/api/webui/assets/erDiagram-Q7BY3M3F-DQX4VtAS.js similarity index 99% rename from lightrag/api/webui/assets/erDiagram-Q7BY3M3F-CAraTg_G.js rename to lightrag/api/webui/assets/erDiagram-Q7BY3M3F-DQX4VtAS.js index 64e354e2..3cb05df1 100644 --- a/lightrag/api/webui/assets/erDiagram-Q7BY3M3F-CAraTg_G.js +++ b/lightrag/api/webui/assets/erDiagram-Q7BY3M3F-DQX4VtAS.js @@ -1,4 +1,4 @@ -import{g as Dt,s as wt}from"./chunk-RZ5BOZE2-vCqEaZEa.js";import{_ as u,b as Vt,a as Lt,s as Mt,g as Bt,q as Ft,t as Yt,c as tt,l as D,z as Pt,y as zt,B as Gt,C as Kt,D as Zt,p as Ut,r as jt,d as Wt,u as Qt}from"./mermaid-vendor-SwnP6Sr8.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var dt=function(){var s=u(function(R,n,a,c){for(a=a||{},c=R.length;c--;a[R[c]]=n);return a},"o"),i=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,50],h=[1,10],d=[1,11],o=[1,12],l=[1,13],f=[1,20],_=[1,21],E=[1,22],V=[1,23],Z=[1,24],S=[1,19],et=[1,25],U=[1,26],T=[1,18],L=[1,33],st=[1,34],it=[1,35],rt=[1,36],nt=[1,37],pt=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,50,63,64,65,66,67],O=[1,42],A=[1,43],M=[1,52],B=[40,50,68,69],F=[1,63],Y=[1,61],N=[1,58],P=[1,62],z=[1,64],j=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,63,64,65,66,67],yt=[63,64,65,66,67],ft=[1,81],_t=[1,80],gt=[1,78],bt=[1,79],mt=[6,10,42,47],v=[6,10,13,41,42,47,48,49],W=[1,89],Q=[1,88],X=[1,87],G=[19,56],Et=[1,98],kt=[1,97],at=[19,56,58,60],ct={trace:u(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,attribute:51,attributeType:52,attributeName:53,attributeKeyTypeList:54,attributeComment:55,ATTRIBUTE_WORD:56,attributeKeyType:57,",":58,ATTRIBUTE_KEY:59,COMMENT:60,cardinality:61,relType:62,ZERO_OR_ONE:63,ZERO_OR_MORE:64,ONE_OR_MORE:65,ONLY_ONE:66,MD_PARENT:67,NON_IDENTIFYING:68,IDENTIFYING:69,WORD:70,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",56:"ATTRIBUTE_WORD",58:",",59:"ATTRIBUTE_KEY",60:"COMMENT",63:"ZERO_OR_ONE",64:"ZERO_OR_MORE",65:"ONE_OR_MORE",66:"ONLY_ONE",67:"MD_PARENT",68:"NON_IDENTIFYING",69:"IDENTIFYING",70:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[18,1],[18,2],[51,2],[51,3],[51,3],[51,4],[52,1],[53,1],[54,1],[54,3],[57,1],[55,1],[12,3],[61,1],[61,1],[61,1],[61,1],[61,1],[62,1],[62,1],[14,1],[14,1],[14,1]],performAction:u(function(n,a,c,r,p,t,K){var e=t.length-1;switch(p){case 1:break;case 2:this.$=[];break;case 3:t[e-1].push(t[e]),this.$=t[e-1];break;case 4:case 5:this.$=t[e];break;case 6:case 7:this.$=[];break;case 8:r.addEntity(t[e-4]),r.addEntity(t[e-2]),r.addRelationship(t[e-4],t[e],t[e-2],t[e-3]);break;case 9:r.addEntity(t[e-8]),r.addEntity(t[e-4]),r.addRelationship(t[e-8],t[e],t[e-4],t[e-5]),r.setClass([t[e-8]],t[e-6]),r.setClass([t[e-4]],t[e-2]);break;case 10:r.addEntity(t[e-6]),r.addEntity(t[e-2]),r.addRelationship(t[e-6],t[e],t[e-2],t[e-3]),r.setClass([t[e-6]],t[e-4]);break;case 11:r.addEntity(t[e-6]),r.addEntity(t[e-4]),r.addRelationship(t[e-6],t[e],t[e-4],t[e-5]),r.setClass([t[e-4]],t[e-2]);break;case 12:r.addEntity(t[e-3]),r.addAttributes(t[e-3],t[e-1]);break;case 13:r.addEntity(t[e-5]),r.addAttributes(t[e-5],t[e-1]),r.setClass([t[e-5]],t[e-3]);break;case 14:r.addEntity(t[e-2]);break;case 15:r.addEntity(t[e-4]),r.setClass([t[e-4]],t[e-2]);break;case 16:r.addEntity(t[e]);break;case 17:r.addEntity(t[e-2]),r.setClass([t[e-2]],t[e]);break;case 18:r.addEntity(t[e-6],t[e-4]),r.addAttributes(t[e-6],t[e-1]);break;case 19:r.addEntity(t[e-8],t[e-6]),r.addAttributes(t[e-8],t[e-1]),r.setClass([t[e-8]],t[e-3]);break;case 20:r.addEntity(t[e-5],t[e-3]);break;case 21:r.addEntity(t[e-7],t[e-5]),r.setClass([t[e-7]],t[e-2]);break;case 22:r.addEntity(t[e-3],t[e-1]);break;case 23:r.addEntity(t[e-5],t[e-3]),r.setClass([t[e-5]],t[e]);break;case 24:case 25:this.$=t[e].trim(),r.setAccTitle(this.$);break;case 26:case 27:this.$=t[e].trim(),r.setAccDescription(this.$);break;case 32:r.setDirection("TB");break;case 33:r.setDirection("BT");break;case 34:r.setDirection("RL");break;case 35:r.setDirection("LR");break;case 36:this.$=t[e-3],r.addClass(t[e-2],t[e-1]);break;case 37:case 38:case 56:case 64:this.$=[t[e]];break;case 39:case 40:this.$=t[e-2].concat([t[e]]);break;case 41:this.$=t[e-2],r.setClass(t[e-1],t[e]);break;case 42:this.$=t[e-3],r.addCssStyles(t[e-2],t[e-1]);break;case 43:this.$=[t[e]];break;case 44:t[e-2].push(t[e]),this.$=t[e-2];break;case 46:this.$=t[e-1]+t[e];break;case 54:case 76:case 77:this.$=t[e].replace(/"/g,"");break;case 55:case 78:this.$=t[e];break;case 57:t[e].push(t[e-1]),this.$=t[e];break;case 58:this.$={type:t[e-1],name:t[e]};break;case 59:this.$={type:t[e-2],name:t[e-1],keys:t[e]};break;case 60:this.$={type:t[e-2],name:t[e-1],comment:t[e]};break;case 61:this.$={type:t[e-3],name:t[e-2],keys:t[e-1],comment:t[e]};break;case 62:case 63:case 66:this.$=t[e];break;case 65:t[e-2].push(t[e]),this.$=t[e-2];break;case 67:this.$=t[e].replace(/"/g,"");break;case 68:this.$={cardA:t[e],relType:t[e-1],cardB:t[e-2]};break;case 69:this.$=r.Cardinality.ZERO_OR_ONE;break;case 70:this.$=r.Cardinality.ZERO_OR_MORE;break;case 71:this.$=r.Cardinality.ONE_OR_MORE;break;case 72:this.$=r.Cardinality.ONLY_ONE;break;case 73:this.$=r.Cardinality.MD_PARENT;break;case 74:this.$=r.Identification.NON_IDENTIFYING;break;case 75:this.$=r.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},s(i,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:h,24:d,26:o,28:l,29:14,30:15,31:16,32:17,33:f,34:_,35:E,36:V,37:Z,40:S,43:et,44:U,50:T},s(i,[2,7],{1:[2,1]}),s(i,[2,3]),{9:27,11:9,22:h,24:d,26:o,28:l,29:14,30:15,31:16,32:17,33:f,34:_,35:E,36:V,37:Z,40:S,43:et,44:U,50:T},s(i,[2,5]),s(i,[2,6]),s(i,[2,16],{12:28,61:32,15:[1,29],17:[1,30],20:[1,31],63:L,64:st,65:it,66:rt,67:nt}),{23:[1,38]},{25:[1,39]},{27:[1,40]},s(i,[2,27]),s(i,[2,28]),s(i,[2,29]),s(i,[2,30]),s(i,[2,31]),s(pt,[2,54]),s(pt,[2,55]),s(i,[2,32]),s(i,[2,33]),s(i,[2,34]),s(i,[2,35]),{16:41,40:O,41:A},{16:44,40:O,41:A},{16:45,40:O,41:A},s(i,[2,4]),{11:46,40:S,50:T},{16:47,40:O,41:A},{18:48,19:[1,49],51:50,52:51,56:M},{11:53,40:S,50:T},{62:54,68:[1,55],69:[1,56]},s(B,[2,69]),s(B,[2,70]),s(B,[2,71]),s(B,[2,72]),s(B,[2,73]),s(i,[2,24]),s(i,[2,25]),s(i,[2,26]),{13:F,38:57,41:Y,42:N,45:59,46:60,48:P,49:z},s(j,[2,37]),s(j,[2,38]),{16:65,40:O,41:A,42:N},{13:F,38:66,41:Y,42:N,45:59,46:60,48:P,49:z},{13:[1,67],15:[1,68]},s(i,[2,17],{61:32,12:69,17:[1,70],42:N,63:L,64:st,65:it,66:rt,67:nt}),{19:[1,71]},s(i,[2,14]),{18:72,19:[2,56],51:50,52:51,56:M},{53:73,56:[1,74]},{56:[2,62]},{21:[1,75]},{61:76,63:L,64:st,65:it,66:rt,67:nt},s(yt,[2,74]),s(yt,[2,75]),{6:ft,10:_t,39:77,42:gt,47:bt},{40:[1,82],41:[1,83]},s(mt,[2,43],{46:84,13:F,41:Y,48:P,49:z}),s(v,[2,45]),s(v,[2,50]),s(v,[2,51]),s(v,[2,52]),s(v,[2,53]),s(i,[2,41],{42:N}),{6:ft,10:_t,39:85,42:gt,47:bt},{14:86,40:W,50:Q,70:X},{16:90,40:O,41:A},{11:91,40:S,50:T},{18:92,19:[1,93],51:50,52:51,56:M},s(i,[2,12]),{19:[2,57]},s(G,[2,58],{54:94,55:95,57:96,59:Et,60:kt}),s([19,56,59,60],[2,63]),s(i,[2,22],{15:[1,100],17:[1,99]}),s([40,50],[2,68]),s(i,[2,36]),{13:F,41:Y,45:101,46:60,48:P,49:z},s(i,[2,47]),s(i,[2,48]),s(i,[2,49]),s(j,[2,39]),s(j,[2,40]),s(v,[2,46]),s(i,[2,42]),s(i,[2,8]),s(i,[2,76]),s(i,[2,77]),s(i,[2,78]),{13:[1,102],42:N},{13:[1,104],15:[1,103]},{19:[1,105]},s(i,[2,15]),s(G,[2,59],{55:106,58:[1,107],60:kt}),s(G,[2,60]),s(at,[2,64]),s(G,[2,67]),s(at,[2,66]),{18:108,19:[1,109],51:50,52:51,56:M},{16:110,40:O,41:A},s(mt,[2,44],{46:84,13:F,41:Y,48:P,49:z}),{14:111,40:W,50:Q,70:X},{16:112,40:O,41:A},{14:113,40:W,50:Q,70:X},s(i,[2,13]),s(G,[2,61]),{57:114,59:Et},{19:[1,115]},s(i,[2,20]),s(i,[2,23],{17:[1,116],42:N}),s(i,[2,11]),{13:[1,117],42:N},s(i,[2,10]),s(at,[2,65]),s(i,[2,18]),{18:118,19:[1,119],51:50,52:51,56:M},{14:120,40:W,50:Q,70:X},{19:[1,121]},s(i,[2,21]),s(i,[2,9]),s(i,[2,19])],defaultActions:{52:[2,62],72:[2,57]},parseError:u(function(n,a){if(a.recoverable)this.trace(n);else{var c=new Error(n);throw c.hash=a,c}},"parseError"),parse:u(function(n){var a=this,c=[0],r=[],p=[null],t=[],K=this.table,e="",H=0,St=0,It=2,Tt=1,xt=t.slice.call(arguments,1),y=Object.create(this.lexer),I={yy:{}};for(var lt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,lt)&&(I.yy[lt]=this.yy[lt]);y.setInput(n,I.yy),I.yy.lexer=y,I.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var ot=y.yylloc;t.push(ot);var vt=y.options&&y.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ct(b){c.length=c.length-2*b,p.length=p.length-b,t.length=t.length-b}u(Ct,"popStack");function Ot(){var b;return b=r.pop()||y.lex()||Tt,typeof b!="number"&&(b instanceof Array&&(r=b,b=r.pop()),b=a.symbols_[b]||b),b}u(Ot,"lex");for(var g,x,m,ht,C={},J,k,At,$;;){if(x=c[c.length-1],this.defaultActions[x]?m=this.defaultActions[x]:((g===null||typeof g>"u")&&(g=Ot()),m=K[x]&&K[x][g]),typeof m>"u"||!m.length||!m[0]){var ut="";$=[];for(J in K[x])this.terminals_[J]&&J>It&&$.push("'"+this.terminals_[J]+"'");y.showPosition?ut="Parse error on line "+(H+1)+`: +import{g as Dt,s as wt}from"./chunk-RZ5BOZE2-C762jHXr.js";import{_ as u,b as Vt,a as Lt,s as Mt,g as Bt,q as Ft,t as Yt,c as tt,l as D,z as Pt,y as zt,B as Gt,C as Kt,D as Zt,p as Ut,r as jt,d as Wt,u as Qt}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var dt=function(){var s=u(function(R,n,a,c){for(a=a||{},c=R.length;c--;a[R[c]]=n);return a},"o"),i=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,50],h=[1,10],d=[1,11],o=[1,12],l=[1,13],f=[1,20],_=[1,21],E=[1,22],V=[1,23],Z=[1,24],S=[1,19],et=[1,25],U=[1,26],T=[1,18],L=[1,33],st=[1,34],it=[1,35],rt=[1,36],nt=[1,37],pt=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,50,63,64,65,66,67],O=[1,42],A=[1,43],M=[1,52],B=[40,50,68,69],F=[1,63],Y=[1,61],N=[1,58],P=[1,62],z=[1,64],j=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,63,64,65,66,67],yt=[63,64,65,66,67],ft=[1,81],_t=[1,80],gt=[1,78],bt=[1,79],mt=[6,10,42,47],v=[6,10,13,41,42,47,48,49],W=[1,89],Q=[1,88],X=[1,87],G=[19,56],Et=[1,98],kt=[1,97],at=[19,56,58,60],ct={trace:u(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,attribute:51,attributeType:52,attributeName:53,attributeKeyTypeList:54,attributeComment:55,ATTRIBUTE_WORD:56,attributeKeyType:57,",":58,ATTRIBUTE_KEY:59,COMMENT:60,cardinality:61,relType:62,ZERO_OR_ONE:63,ZERO_OR_MORE:64,ONE_OR_MORE:65,ONLY_ONE:66,MD_PARENT:67,NON_IDENTIFYING:68,IDENTIFYING:69,WORD:70,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",56:"ATTRIBUTE_WORD",58:",",59:"ATTRIBUTE_KEY",60:"COMMENT",63:"ZERO_OR_ONE",64:"ZERO_OR_MORE",65:"ONE_OR_MORE",66:"ONLY_ONE",67:"MD_PARENT",68:"NON_IDENTIFYING",69:"IDENTIFYING",70:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[18,1],[18,2],[51,2],[51,3],[51,3],[51,4],[52,1],[53,1],[54,1],[54,3],[57,1],[55,1],[12,3],[61,1],[61,1],[61,1],[61,1],[61,1],[62,1],[62,1],[14,1],[14,1],[14,1]],performAction:u(function(n,a,c,r,p,t,K){var e=t.length-1;switch(p){case 1:break;case 2:this.$=[];break;case 3:t[e-1].push(t[e]),this.$=t[e-1];break;case 4:case 5:this.$=t[e];break;case 6:case 7:this.$=[];break;case 8:r.addEntity(t[e-4]),r.addEntity(t[e-2]),r.addRelationship(t[e-4],t[e],t[e-2],t[e-3]);break;case 9:r.addEntity(t[e-8]),r.addEntity(t[e-4]),r.addRelationship(t[e-8],t[e],t[e-4],t[e-5]),r.setClass([t[e-8]],t[e-6]),r.setClass([t[e-4]],t[e-2]);break;case 10:r.addEntity(t[e-6]),r.addEntity(t[e-2]),r.addRelationship(t[e-6],t[e],t[e-2],t[e-3]),r.setClass([t[e-6]],t[e-4]);break;case 11:r.addEntity(t[e-6]),r.addEntity(t[e-4]),r.addRelationship(t[e-6],t[e],t[e-4],t[e-5]),r.setClass([t[e-4]],t[e-2]);break;case 12:r.addEntity(t[e-3]),r.addAttributes(t[e-3],t[e-1]);break;case 13:r.addEntity(t[e-5]),r.addAttributes(t[e-5],t[e-1]),r.setClass([t[e-5]],t[e-3]);break;case 14:r.addEntity(t[e-2]);break;case 15:r.addEntity(t[e-4]),r.setClass([t[e-4]],t[e-2]);break;case 16:r.addEntity(t[e]);break;case 17:r.addEntity(t[e-2]),r.setClass([t[e-2]],t[e]);break;case 18:r.addEntity(t[e-6],t[e-4]),r.addAttributes(t[e-6],t[e-1]);break;case 19:r.addEntity(t[e-8],t[e-6]),r.addAttributes(t[e-8],t[e-1]),r.setClass([t[e-8]],t[e-3]);break;case 20:r.addEntity(t[e-5],t[e-3]);break;case 21:r.addEntity(t[e-7],t[e-5]),r.setClass([t[e-7]],t[e-2]);break;case 22:r.addEntity(t[e-3],t[e-1]);break;case 23:r.addEntity(t[e-5],t[e-3]),r.setClass([t[e-5]],t[e]);break;case 24:case 25:this.$=t[e].trim(),r.setAccTitle(this.$);break;case 26:case 27:this.$=t[e].trim(),r.setAccDescription(this.$);break;case 32:r.setDirection("TB");break;case 33:r.setDirection("BT");break;case 34:r.setDirection("RL");break;case 35:r.setDirection("LR");break;case 36:this.$=t[e-3],r.addClass(t[e-2],t[e-1]);break;case 37:case 38:case 56:case 64:this.$=[t[e]];break;case 39:case 40:this.$=t[e-2].concat([t[e]]);break;case 41:this.$=t[e-2],r.setClass(t[e-1],t[e]);break;case 42:this.$=t[e-3],r.addCssStyles(t[e-2],t[e-1]);break;case 43:this.$=[t[e]];break;case 44:t[e-2].push(t[e]),this.$=t[e-2];break;case 46:this.$=t[e-1]+t[e];break;case 54:case 76:case 77:this.$=t[e].replace(/"/g,"");break;case 55:case 78:this.$=t[e];break;case 57:t[e].push(t[e-1]),this.$=t[e];break;case 58:this.$={type:t[e-1],name:t[e]};break;case 59:this.$={type:t[e-2],name:t[e-1],keys:t[e]};break;case 60:this.$={type:t[e-2],name:t[e-1],comment:t[e]};break;case 61:this.$={type:t[e-3],name:t[e-2],keys:t[e-1],comment:t[e]};break;case 62:case 63:case 66:this.$=t[e];break;case 65:t[e-2].push(t[e]),this.$=t[e-2];break;case 67:this.$=t[e].replace(/"/g,"");break;case 68:this.$={cardA:t[e],relType:t[e-1],cardB:t[e-2]};break;case 69:this.$=r.Cardinality.ZERO_OR_ONE;break;case 70:this.$=r.Cardinality.ZERO_OR_MORE;break;case 71:this.$=r.Cardinality.ONE_OR_MORE;break;case 72:this.$=r.Cardinality.ONLY_ONE;break;case 73:this.$=r.Cardinality.MD_PARENT;break;case 74:this.$=r.Identification.NON_IDENTIFYING;break;case 75:this.$=r.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},s(i,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:h,24:d,26:o,28:l,29:14,30:15,31:16,32:17,33:f,34:_,35:E,36:V,37:Z,40:S,43:et,44:U,50:T},s(i,[2,7],{1:[2,1]}),s(i,[2,3]),{9:27,11:9,22:h,24:d,26:o,28:l,29:14,30:15,31:16,32:17,33:f,34:_,35:E,36:V,37:Z,40:S,43:et,44:U,50:T},s(i,[2,5]),s(i,[2,6]),s(i,[2,16],{12:28,61:32,15:[1,29],17:[1,30],20:[1,31],63:L,64:st,65:it,66:rt,67:nt}),{23:[1,38]},{25:[1,39]},{27:[1,40]},s(i,[2,27]),s(i,[2,28]),s(i,[2,29]),s(i,[2,30]),s(i,[2,31]),s(pt,[2,54]),s(pt,[2,55]),s(i,[2,32]),s(i,[2,33]),s(i,[2,34]),s(i,[2,35]),{16:41,40:O,41:A},{16:44,40:O,41:A},{16:45,40:O,41:A},s(i,[2,4]),{11:46,40:S,50:T},{16:47,40:O,41:A},{18:48,19:[1,49],51:50,52:51,56:M},{11:53,40:S,50:T},{62:54,68:[1,55],69:[1,56]},s(B,[2,69]),s(B,[2,70]),s(B,[2,71]),s(B,[2,72]),s(B,[2,73]),s(i,[2,24]),s(i,[2,25]),s(i,[2,26]),{13:F,38:57,41:Y,42:N,45:59,46:60,48:P,49:z},s(j,[2,37]),s(j,[2,38]),{16:65,40:O,41:A,42:N},{13:F,38:66,41:Y,42:N,45:59,46:60,48:P,49:z},{13:[1,67],15:[1,68]},s(i,[2,17],{61:32,12:69,17:[1,70],42:N,63:L,64:st,65:it,66:rt,67:nt}),{19:[1,71]},s(i,[2,14]),{18:72,19:[2,56],51:50,52:51,56:M},{53:73,56:[1,74]},{56:[2,62]},{21:[1,75]},{61:76,63:L,64:st,65:it,66:rt,67:nt},s(yt,[2,74]),s(yt,[2,75]),{6:ft,10:_t,39:77,42:gt,47:bt},{40:[1,82],41:[1,83]},s(mt,[2,43],{46:84,13:F,41:Y,48:P,49:z}),s(v,[2,45]),s(v,[2,50]),s(v,[2,51]),s(v,[2,52]),s(v,[2,53]),s(i,[2,41],{42:N}),{6:ft,10:_t,39:85,42:gt,47:bt},{14:86,40:W,50:Q,70:X},{16:90,40:O,41:A},{11:91,40:S,50:T},{18:92,19:[1,93],51:50,52:51,56:M},s(i,[2,12]),{19:[2,57]},s(G,[2,58],{54:94,55:95,57:96,59:Et,60:kt}),s([19,56,59,60],[2,63]),s(i,[2,22],{15:[1,100],17:[1,99]}),s([40,50],[2,68]),s(i,[2,36]),{13:F,41:Y,45:101,46:60,48:P,49:z},s(i,[2,47]),s(i,[2,48]),s(i,[2,49]),s(j,[2,39]),s(j,[2,40]),s(v,[2,46]),s(i,[2,42]),s(i,[2,8]),s(i,[2,76]),s(i,[2,77]),s(i,[2,78]),{13:[1,102],42:N},{13:[1,104],15:[1,103]},{19:[1,105]},s(i,[2,15]),s(G,[2,59],{55:106,58:[1,107],60:kt}),s(G,[2,60]),s(at,[2,64]),s(G,[2,67]),s(at,[2,66]),{18:108,19:[1,109],51:50,52:51,56:M},{16:110,40:O,41:A},s(mt,[2,44],{46:84,13:F,41:Y,48:P,49:z}),{14:111,40:W,50:Q,70:X},{16:112,40:O,41:A},{14:113,40:W,50:Q,70:X},s(i,[2,13]),s(G,[2,61]),{57:114,59:Et},{19:[1,115]},s(i,[2,20]),s(i,[2,23],{17:[1,116],42:N}),s(i,[2,11]),{13:[1,117],42:N},s(i,[2,10]),s(at,[2,65]),s(i,[2,18]),{18:118,19:[1,119],51:50,52:51,56:M},{14:120,40:W,50:Q,70:X},{19:[1,121]},s(i,[2,21]),s(i,[2,9]),s(i,[2,19])],defaultActions:{52:[2,62],72:[2,57]},parseError:u(function(n,a){if(a.recoverable)this.trace(n);else{var c=new Error(n);throw c.hash=a,c}},"parseError"),parse:u(function(n){var a=this,c=[0],r=[],p=[null],t=[],K=this.table,e="",H=0,St=0,It=2,Tt=1,xt=t.slice.call(arguments,1),y=Object.create(this.lexer),I={yy:{}};for(var lt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,lt)&&(I.yy[lt]=this.yy[lt]);y.setInput(n,I.yy),I.yy.lexer=y,I.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var ot=y.yylloc;t.push(ot);var vt=y.options&&y.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ct(b){c.length=c.length-2*b,p.length=p.length-b,t.length=t.length-b}u(Ct,"popStack");function Ot(){var b;return b=r.pop()||y.lex()||Tt,typeof b!="number"&&(b instanceof Array&&(r=b,b=r.pop()),b=a.symbols_[b]||b),b}u(Ot,"lex");for(var g,x,m,ht,C={},J,k,At,$;;){if(x=c[c.length-1],this.defaultActions[x]?m=this.defaultActions[x]:((g===null||typeof g>"u")&&(g=Ot()),m=K[x]&&K[x][g]),typeof m>"u"||!m.length||!m[0]){var ut="";$=[];for(J in K[x])this.terminals_[J]&&J>It&&$.push("'"+this.terminals_[J]+"'");y.showPosition?ut="Parse error on line "+(H+1)+`: `+y.showPosition()+` Expecting `+$.join(", ")+", got '"+(this.terminals_[g]||g)+"'":ut="Parse error on line "+(H+1)+": Unexpected "+(g==Tt?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(ut,{text:y.match,token:this.terminals_[g]||g,line:y.yylineno,loc:ot,expected:$})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+g);switch(m[0]){case 1:c.push(g),p.push(y.yytext),t.push(y.yylloc),c.push(m[1]),g=null,St=y.yyleng,e=y.yytext,H=y.yylineno,ot=y.yylloc;break;case 2:if(k=this.productions_[m[1]][1],C.$=p[p.length-k],C._$={first_line:t[t.length-(k||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(k||1)].first_column,last_column:t[t.length-1].last_column},vt&&(C._$.range=[t[t.length-(k||1)].range[0],t[t.length-1].range[1]]),ht=this.performAction.apply(C,[e,St,H,I.yy,m[1],p,t].concat(xt)),typeof ht<"u")return ht;k&&(c=c.slice(0,-1*k*2),p=p.slice(0,-1*k),t=t.slice(0,-1*k)),c.push(this.productions_[m[1]][0]),p.push(C.$),t.push(C._$),At=K[c[c.length-2]][c[c.length-1]],c.push(At);break;case 3:return!0}}return!0},"parse")},Rt=function(){var R={EOF:1,parseError:u(function(a,c){if(this.yy.parser)this.yy.parser.parseError(a,c);else throw new Error(a)},"parseError"),setInput:u(function(n,a){return this.yy=a||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:u(function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var a=n.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},"input"),unput:u(function(n){var a=n.length,c=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===r.length?this.yylloc.first_column:0)+r[r.length-c.length].length-c[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:u(function(){return this._more=!0,this},"more"),reject:u(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:u(function(n){this.unput(this.match.slice(n))},"less"),pastInput:u(function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:u(function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:u(function(){var n=this.pastInput(),a=new Array(n.length+1).join("-");return n+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/feature-documents-BKQZIcI6.js b/lightrag/api/webui/assets/feature-documents-ClbgnjXg.js similarity index 99% rename from lightrag/api/webui/assets/feature-documents-BKQZIcI6.js rename to lightrag/api/webui/assets/feature-documents-ClbgnjXg.js index 7718b0ad..31eaf988 100644 --- a/lightrag/api/webui/assets/feature-documents-BKQZIcI6.js +++ b/lightrag/api/webui/assets/feature-documents-ClbgnjXg.js @@ -1,4 +1,4 @@ -import{j as i,_ as ee,d as Qa}from"./ui-vendor-CeCm8EER.js";import{r as c,g as Sa,R as Za}from"./react-vendor-DEwriMA6.js";import{c as O,C as Le,F as et,a as Be,b as Fa,u as le,s as at,d as q,U as Ue,S as tt,e as Oa,B as I,X as it,f as nt,g as X,D as Ve,h as Aa,i as Xe,j as Qe,k as Ze,l as ea,m as ot,n as lt,E as rt,T as ct,I as pt,o as st,p as dt,A as mt,q as ut,r as ft,t as xt,v as Se,w as Fe,x as vt,y as gt,z as da,G as ma,R as ht,H as bt,J as yt,K as Oe,L as Ae}from"./feature-graph-D6-O-kXP.js";const Ta=c.forwardRef(({className:e,...a},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:O("w-full caption-bottom text-sm",e),...a})}));Ta.displayName="Table";const _a=c.forwardRef(({className:e,...a},n)=>i.jsx("thead",{ref:n,className:O("[&_tr]:border-b",e),...a}));_a.displayName="TableHeader";const Ra=c.forwardRef(({className:e,...a},n)=>i.jsx("tbody",{ref:n,className:O("[&_tr:last-child]:border-0",e),...a}));Ra.displayName="TableBody";const wt=c.forwardRef(({className:e,...a},n)=>i.jsx("tfoot",{ref:n,className:O("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",e),...a}));wt.displayName="TableFooter";const $e=c.forwardRef(({className:e,...a},n)=>i.jsx("tr",{ref:n,className:O("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...a}));$e.displayName="TableRow";const J=c.forwardRef(({className:e,...a},n)=>i.jsx("th",{ref:n,className:O("text-muted-foreground h-10 px-2 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a}));J.displayName="TableHead";const V=c.forwardRef(({className:e,...a},n)=>i.jsx("td",{ref:n,className:O("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a}));V.displayName="TableCell";const jt=c.forwardRef(({className:e,...a},n)=>i.jsx("caption",{ref:n,className:O("text-muted-foreground mt-4 text-sm",e),...a}));jt.displayName="TableCaption";function kt({title:e,description:a,icon:n=et,action:t,className:o,...l}){return i.jsxs(Le,{className:O("flex w-full flex-col items-center justify-center space-y-6 bg-transparent p-16",o),...l,children:[i.jsx("div",{className:"mr-4 shrink-0 rounded-full border border-dashed p-4",children:i.jsx(n,{className:"text-muted-foreground size-8","aria-hidden":"true"})}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 text-center",children:[i.jsx(Be,{children:e}),a?i.jsx(Fa,{children:a}):null]}),t||null]})}var Te={exports:{}},_e,ua;function Dt(){if(ua)return _e;ua=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return _e=e,_e}var Re,fa;function zt(){if(fa)return Re;fa=1;var e=Dt();function a(){}function n(){}return n.resetWarningCache=a,Re=function(){function t(d,r,h,b,v,A){if(A!==e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}}t.isRequired=t;function o(){return t}var l={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:o,element:t,elementType:t,instanceOf:o,node:t,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:n,resetWarningCache:a};return l.PropTypes=l,l},Re}var xa;function Pt(){return xa||(xa=1,Te.exports=zt()()),Te.exports}var Nt=Pt();const z=Sa(Nt),Et=new Map([["1km","application/vnd.1000minds.decision-model+xml"],["3dml","text/vnd.in3d.3dml"],["3ds","image/x-3ds"],["3g2","video/3gpp2"],["3gp","video/3gp"],["3gpp","video/3gpp"],["3mf","model/3mf"],["7z","application/x-7z-compressed"],["7zip","application/x-7z-compressed"],["123","application/vnd.lotus-1-2-3"],["aab","application/x-authorware-bin"],["aac","audio/x-acc"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abw","application/x-abiword"],["ac","application/vnd.nokia.n-gage.ac+xml"],["ac3","audio/ac3"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acu","application/vnd.acucobol"],["acutc","application/vnd.acucorp"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afm","application/x-font-type1"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/pdf"],["aif","audio/x-aiff"],["aifc","audio/x-aiff"],["aiff","audio/x-aiff"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["amr","audio/amr"],["apk","application/vnd.android.package-archive"],["apng","image/apng"],["appcache","text/cache-manifest"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["arc","application/x-freearc"],["arj","application/x-arj"],["asc","application/pgp-signature"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asx","video/x-ms-asf"],["atc","application/vnd.acucorp"],["atom","application/atom+xml"],["atomcat","application/atomcat+xml"],["atomdeleted","application/atomdeleted+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au","audio/x-au"],["avi","video/x-msvideo"],["avif","image/avif"],["aw","application/applixware"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azv","image/vnd.airzip.accelerator.azv"],["azw","application/vnd.amazon.ebook"],["b16","image/vnd.pco.b16"],["bat","application/x-msdownload"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bdoc","application/x-bdoc"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin","application/octet-stream"],["blb","application/x-blorb"],["blorb","application/x-blorb"],["bmi","application/vnd.bmi"],["bmml","application/vnd.balsamiq.bmml+xml"],["bmp","image/bmp"],["book","application/vnd.framemaker"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bpk","application/octet-stream"],["bpmn","application/octet-stream"],["bsp","model/vnd.valve.source.compiled-map"],["btif","image/prs.btif"],["buffer","application/octet-stream"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c","text/x-c"],["c4d","application/vnd.clonk.c4group"],["c4f","application/vnd.clonk.c4group"],["c4g","application/vnd.clonk.c4group"],["c4p","application/vnd.clonk.c4group"],["c4u","application/vnd.clonk.c4group"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["cab","application/vnd.ms-cab-compressed"],["caf","audio/x-caf"],["cap","application/vnd.tcpdump.pcap"],["car","application/vnd.curl.car"],["cat","application/vnd.ms-pki.seccat"],["cb7","application/x-cbr"],["cba","application/x-cbr"],["cbr","application/x-cbr"],["cbt","application/x-cbr"],["cbz","application/x-cbr"],["cc","text/x-c"],["cco","application/x-cocoa"],["cct","application/x-director"],["ccxml","application/ccxml+xml"],["cdbcmsg","application/vnd.contact.cmsg"],["cda","application/x-cdf"],["cdf","application/x-netcdf"],["cdfx","application/cdfx+xml"],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdr","application/cdr"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer","application/pkix-cert"],["cfs","application/x-cfs-compressed"],["cgm","image/cgm"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cjs","application/node"],["cla","application/vnd.claymore"],["class","application/octet-stream"],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod","application/vnd.rim.cod"],["coffee","text/coffeescript"],["com","application/x-msdownload"],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt","application/mac-compactpro"],["crd","application/x-mscardfile"],["crl","application/pkix-crl"],["crt","application/x-x509-ca-cert"],["crx","application/x-chrome-extension"],["cryptonote","application/vnd.rig.cryptonote"],["csh","application/x-csh"],["csl","application/vnd.citationstyles.style+xml"],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["csr","application/octet-stream"],["css","text/css"],["cst","application/x-director"],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxt","application/x-director"],["cxx","text/x-c"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["dart","application/vnd.dart"],["dataless","application/vnd.fdsn.seed"],["davmount","application/davmount+xml"],["dbf","application/vnd.dbf"],["dbk","application/docbook+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["ddf","application/vnd.syncml.dmddf+xml"],["dds","image/vnd.ms-dds"],["deb","application/x-debian-package"],["def","text/plain"],["deploy","application/octet-stream"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dgc","application/x-dgc-compressed"],["dic","text/x-c"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["disposition-notification","message/disposition-notification"],["dist","application/octet-stream"],["distz","application/octet-stream"],["djv","image/vnd.djvu"],["djvu","image/vnd.djvu"],["dll","application/octet-stream"],["dmg","application/x-apple-diskimage"],["dmn","application/octet-stream"],["dmp","application/vnd.tcpdump.pcap"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.template.macroEnabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroEnabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp","application/vnd.osgi.dp"],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drle","image/dicom-rle"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dvb","video/vnd.dvb.file"],["dvi","application/x-dvi"],["dwd","application/atsc-dwd+xml"],["dwf","model/vnd.dwf"],["dwg","image/vnd.dwg"],["dxf","image/vnd.dxf"],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ear","application/java-archive"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["ecma","application/ecmascript"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["elc","application/octet-stream"],["emf","image/emf"],["eml","message/rfc822"],["emma","application/emma+xml"],["emotionml","application/emotionml+xml"],["emz","application/x-msmetafile"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es","application/ecmascript"],["es3","application/vnd.eszigno3+xml"],["esa","application/vnd.osgi.subsystem"],["esf","application/vnd.epson.esf"],["et3","application/vnd.eszigno3+xml"],["etx","text/x-setext"],["eva","application/x-eva"],["evy","application/x-envoy"],["exe","application/octet-stream"],["exi","application/exi"],["exp","application/express"],["exr","image/aces"],["ext","application/vnd.novadigm.ext"],["ez","application/andrew-inset"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f","text/x-fortran"],["f4v","video/mp4"],["f77","text/x-fortran"],["f90","text/x-fortran"],["fbs","image/vnd.fastbidsheet"],["fcdt","application/vnd.adobe.formscentral.fcdt"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fdt","application/fdt+xml"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fgd","application/x-director"],["fh","image/x-freehand"],["fh4","image/x-freehand"],["fh5","image/x-freehand"],["fh7","image/x-freehand"],["fhc","image/x-freehand"],["fig","application/x-xfig"],["fits","image/fits"],["flac","audio/x-flac"],["fli","video/x-fli"],["flo","application/vnd.micrografx.flo"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fnc","application/vnd.frogans.fnc"],["fo","application/vnd.software602.filler.form+xml"],["for","text/x-fortran"],["fpx","image/vnd.fpx"],["frame","application/vnd.framemaker"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fxpl","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gam","application/x-tads"],["gbr","application/rpki-ghostbusters"],["gca","application/x-gca-compressed"],["gdl","model/vnd.gdl"],["gdoc","application/vnd.google-apps.document"],["geo","application/vnd.dynageo"],["geojson","application/geo+json"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["glb","model/gltf-binary"],["gltf","model/gltf+json"],["gml","application/gml+xml"],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gpg","application/gpg-keys"],["gph","application/vnd.flographit"],["gpx","application/gpx+xml"],["gqf","application/vnd.grafeq"],["gqs","application/vnd.grafeq"],["gram","application/srgs"],["gramps","application/x-gramps-xml"],["gre","application/vnd.geometry-explorer"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsf","application/x-font-ghostscript"],["gsheet","application/vnd.google-apps.spreadsheet"],["gslides","application/vnd.google-apps.presentation"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxf","application/gxf"],["gxt","application/vnd.geonext"],["gz","application/gzip"],["gzip","application/gzip"],["h","text/x-c"],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hbs","text/x-handlebars-template"],["hdd","application/x-virtualbox-hdd"],["hdf","application/x-hdf"],["heic","image/heic"],["heics","image/heic-sequence"],["heif","image/heif"],["heifs","image/heif-sequence"],["hej2","image/hej2k"],["held","application/atsc-held+xml"],["hh","text/x-c"],["hjson","application/hjson"],["hlp","application/winhlp"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx","application/mac-binhex40"],["hsj2","image/hsj2"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["icm","application/vnd.iccprofile"],["ico","image/x-icon"],["ics","text/calendar"],["ief","image/ief"],["ifb","text/calendar"],["ifm","application/vnd.shana.informed.formdata"],["iges","model/iges"],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs","model/iges"],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["img","application/octet-stream"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["in","text/plain"],["ini","text/plain"],["ink","application/inkml+xml"],["inkml","application/inkml+xml"],["install","application/x-install-instructions"],["iota","application/vnd.astraea-software.iota"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["iso","application/x-iso9660-image"],["itp","application/vnd.shana.informed.formtemplate"],["its","application/its+xml"],["ivp","application/vnd.immervision-ivp"],["ivu","application/vnd.immervision-ivu"],["jad","text/vnd.sun.j2me.app-descriptor"],["jade","text/jade"],["jam","application/vnd.jam"],["jar","application/java-archive"],["jardiff","application/x-java-archive-diff"],["java","text/x-java-source"],["jhc","image/jphc"],["jisp","application/vnd.jisp"],["jls","image/jls"],["jlt","application/vnd.hp-jlyt"],["jng","image/x-jng"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jp2","image/jp2"],["jpe","image/jpeg"],["jpeg","image/jpeg"],["jpf","image/jpx"],["jpg","image/jpeg"],["jpg2","image/jp2"],["jpgm","video/jpm"],["jpgv","video/jpeg"],["jph","image/jph"],["jpm","video/jpm"],["jpx","image/jpx"],["js","application/javascript"],["json","application/json"],["json5","application/json5"],["jsonld","application/ld+json"],["jsonl","application/jsonl"],["jsonml","application/jsonml+json"],["jsx","text/jsx"],["jxr","image/jxr"],["jxra","image/jxra"],["jxrs","image/jxrs"],["jxs","image/jxs"],["jxsc","image/jxsc"],["jxsi","image/jxsi"],["jxss","image/jxss"],["kar","audio/midi"],["karbon","application/vnd.kde.karbon"],["kdb","application/octet-stream"],["kdbx","application/x-keepass2"],["key","application/x-iwork-keynote-sffkey"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["knp","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["kpt","application/vnd.kde.kpresenter"],["kpxx","application/vnd.ds-keypoint"],["ksp","application/vnd.kde.kspread"],["ktr","application/vnd.kahootz"],["ktx","image/ktx"],["ktx2","image/ktx2"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["kwt","application/vnd.kde.kword"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["less","text/less"],["lgr","application/lgr+xml"],["lha","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["list3820","application/vnd.ibm.modcap"],["listafp","application/vnd.ibm.modcap"],["litcoffee","text/coffeescript"],["lnk","application/x-ms-shortcut"],["log","text/plain"],["lostxml","application/lost+xml"],["lrf","application/octet-stream"],["lrm","application/vnd.ms-lrm"],["ltf","application/vnd.frogans.ltf"],["lua","text/x-lua"],["luac","application/x-lua-bytecode"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh","application/octet-stream"],["m1v","video/mpeg"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3a","audio/mpeg"],["m3u","text/plain"],["m3u8","application/vnd.apple.mpegurl"],["m4a","audio/x-m4a"],["m4p","application/mp4"],["m4s","video/iso.segment"],["m4u","application/vnd.mpegurl"],["m4v","video/x-m4v"],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m21","application/mp21"],["ma","application/mathematica"],["mads","application/mads+xml"],["maei","application/mmt-aei+xml"],["mag","application/vnd.ecowin.chart"],["maker","application/vnd.framemaker"],["man","text/troff"],["manifest","text/cache-manifest"],["map","application/json"],["mar","application/octet-stream"],["markdown","text/markdown"],["mathml","application/mathml+xml"],["mb","application/mathematica"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc1","application/vnd.medcalcdata"],["mcd","application/vnd.mcd"],["mcurl","text/vnd.curl.mcurl"],["md","text/markdown"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["mdx","text/mdx"],["me","text/troff"],["mesh","model/mesh"],["meta4","application/metalink4+xml"],["metalink","application/metalink+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mft","application/rpki-manifest"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mid","audio/midi"],["midi","audio/midi"],["mie","application/x-mie"],["mif","application/vnd.mif"],["mime","message/rfc822"],["mj2","video/mj2"],["mjp2","video/mj2"],["mjs","application/javascript"],["mk3d","video/x-matroska"],["mka","audio/x-matroska"],["mkd","text/x-markdown"],["mks","video/x-matroska"],["mkv","video/x-matroska"],["mlp","application/vnd.dolby.mlp"],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mmf","application/vnd.smaf"],["mml","text/mathml"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mng","video/x-mng"],["mny","application/x-msmoney"],["mobi","application/x-mobipocket-ebook"],["mods","application/mods+xml"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2","audio/mpeg"],["mp2a","audio/mpeg"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mp4a","audio/mp4"],["mp4s","application/mp4"],["mp4v","video/mp4"],["mp21","application/mp21"],["mpc","application/vnd.mophun.certificate"],["mpd","application/dash+xml"],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg","video/mpeg"],["mpg4","video/mp4"],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/vnd.ms-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","text/troff"],["mscml","application/mediaservercontrol+xml"],["mseed","application/vnd.fdsn.mseed"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msi","application/x-msdownload"],["msl","application/vnd.mobius.msl"],["msm","application/octet-stream"],["msp","application/octet-stream"],["msty","application/vnd.muvee.style"],["mtl","model/mtl"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musd","application/mmt-usd+xml"],["musicxml","application/vnd.recordare.musicxml+xml"],["mvb","application/x-msmediaview"],["mvt","application/vnd.mapbox-vector-tile"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxmf","audio/mobile-xmf"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nb","application/mathematica"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncx","application/x-dtbncx+xml"],["nfo","text/x-nfo"],["ngdat","application/vnd.nokia.n-gage.data"],["nitf","application/vnd.nitf"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nq","application/n-quads"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nt","application/n-triples"],["ntf","application/vnd.nitf"],["numbers","application/x-iwork-numbers-sffnumbers"],["nzb","application/x-nzb"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["obgx","application/vnd.openblox.game+xml"],["obj","model/obj"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogex","model/vnd.opengex"],["ogg","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omdoc","application/omdoc+xml"],["onepkg","application/onenote"],["onetmp","application/onenote"],["onetoc","application/onenote"],["onetoc2","application/onenote"],["opf","application/oebps-package+xml"],["opml","text/x-opml"],["oprc","application/vnd.palm"],["opus","audio/ogg"],["org","text/x-org"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["osm","application/vnd.openstreetmap.data+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","font/otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["ova","application/x-virtualbox-ova"],["ovf","application/x-virtualbox-ovf"],["owl","application/rdf+xml"],["oxps","application/oxps"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c","application/pkcs7-mime"],["p7m","application/pkcs7-mime"],["p7r","application/x-pkcs7-certreqresp"],["p7s","application/pkcs7-signature"],["p8","application/pkcs8"],["p10","application/x-pkcs10"],["p12","application/x-pkcs12"],["pac","application/x-ns-proxy-autoconfig"],["pages","application/x-iwork-pages-sffpages"],["pas","text/x-pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcap","application/vnd.tcpdump.pcap"],["pcf","application/x-font-pcf"],["pcl","application/vnd.hp-pcl"],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb","application/x-pilot"],["pde","text/x-processing"],["pdf","application/pdf"],["pem","application/x-x509-user-cert"],["pfa","application/x-font-type1"],["pfb","application/x-font-type1"],["pfm","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfx","application/x-pkcs12"],["pgm","image/x-portable-graymap"],["pgn","application/x-chess-pgn"],["pgp","application/pgp"],["php","application/x-httpd-php"],["php3","application/x-httpd-php"],["php4","application/x-httpd-php"],["phps","application/x-httpd-php-source"],["phtml","application/x-httpd-php"],["pic","image/x-pict"],["pkg","application/octet-stream"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pkpass","application/vnd.apple.pkpass"],["pl","application/x-perl"],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["pm","application/x-perl"],["pml","application/vnd.ctc-posml"],["png","image/png"],["pnm","image/x-portable-anymap"],["portpkg","application/vnd.macports.portpkg"],["pot","application/vnd.ms-powerpoint"],["potm","application/vnd.ms-powerpoint.presentation.macroEnabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroEnabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps","application/vnd.ms-powerpoint"],["ppsm","application/vnd.ms-powerpoint.slideshow.macroEnabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt","application/powerpoint"],["pptm","application/vnd.ms-powerpoint.presentation.macroEnabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["pqa","application/vnd.palm"],["prc","application/x-pilot"],["pre","application/vnd.lotus-freelance"],["prf","application/pics-rules"],["provx","application/provenance+xml"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd","application/x-photoshop"],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["pti","image/prs.pti"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pwn","application/vnd.3m.post-it-notes"],["pya","audio/vnd.ms-playready.media.pya"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qfx","application/vnd.intu.qfx"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qwd","application/vnd.quark.quarkxpress"],["qwt","application/vnd.quark.quarkxpress"],["qxb","application/vnd.quark.quarkxpress"],["qxd","application/vnd.quark.quarkxpress"],["qxl","application/vnd.quark.quarkxpress"],["qxt","application/vnd.quark.quarkxpress"],["ra","audio/x-realaudio"],["ram","audio/x-pn-realaudio"],["raml","application/raml+yaml"],["rapd","application/route-apd+xml"],["rar","application/x-rar"],["ras","image/x-cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["relo","application/p2p-overlay+xml"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["ris","application/x-research-info-systems"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm","audio/x-pn-realaudio"],["rmi","audio/midi"],["rmp","audio/x-pn-realaudio-plugin"],["rms","application/vnd.jcp.javame.midlet-rms"],["rmvb","application/vnd.rn-realmedia-vbr"],["rnc","application/relax-ng-compact-syntax"],["rng","application/xml"],["roa","application/rpki-roa"],["roff","text/troff"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsa","application/x-pkcs7"],["rsat","application/atsc-rsat+xml"],["rsd","application/rsd+xml"],["rsheet","application/urc-ressheet+xml"],["rss","application/rss+xml"],["rtf","text/rtf"],["rtx","text/richtext"],["run","application/x-makeself"],["rusd","application/route-usd+xml"],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["sass","text/x-sass"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm","application/vnd.lotus-screencam"],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["scss","text/x-scss"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkd","application/vnd.solent.sdkm+xml"],["sdkm","application/vnd.solent.sdkm+xml"],["sdp","application/sdp"],["sdw","application/vnd.stardivision.writer"],["sea","application/octet-stream"],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["senmlx","application/senml+xml"],["sensmlx","application/sensml+xml"],["ser","application/java-serialized-object"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sfv","text/x-sfv"],["sgi","image/sgi"],["sgl","application/vnd.stardivision.writer-global"],["sgm","text/sgml"],["sgml","text/sgml"],["sh","application/x-sh"],["shar","application/x-shar"],["shex","text/shex"],["shf","application/shf+xml"],["shtml","text/html"],["sid","image/x-mrsid-image"],["sieve","application/sieve"],["sig","application/pgp-signature"],["sil","audio/silk"],["silo","model/mesh"],["sis","application/vnd.symbian.install"],["sisx","application/vnd.symbian.install"],["sit","application/x-stuffit"],["sitx","application/x-stuffitx"],["siv","application/sieve"],["skd","application/vnd.koan"],["skm","application/vnd.koan"],["skp","application/vnd.koan"],["skt","application/vnd.koan"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slim","text/slim"],["slm","text/slim"],["sls","application/route-s-tsid+xml"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi","application/smil"],["smil","application/smil"],["smv","video/x-smv"],["smzip","application/vnd.stepmania.package"],["snd","audio/basic"],["snf","application/x-font-snf"],["so","application/octet-stream"],["spc","application/x-pkcs7-certificates"],["spdx","text/spdx"],["spf","application/vnd.yamaha.smaf-phrase"],["spl","application/x-futuresplash"],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spx","audio/ogg"],["sql","application/x-sql"],["src","application/x-wais-source"],["srt","application/x-subrip"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["ssdl","application/ssdl+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssml","application/ssml+xml"],["sst","application/octet-stream"],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl","model/stl"],["stpx","model/step+xml"],["stpxz","model/step-xml+zip"],["stpz","model/step+zip"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["styl","text/stylus"],["stylus","text/stylus"],["sub","text/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["susp","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svg","image/svg+xml"],["svgz","image/svg+xml"],["swa","application/x-director"],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["swidtag","application/swid+xml"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t","text/troff"],["t3","application/x-t3vm-image"],["t38","image/t38"],["taglet","application/vnd.mynfc"],["tao","application/vnd.tao.intent-module-archive"],["tap","image/vnd.tencent.tap"],["tar","application/x-tar"],["tcap","application/vnd.3gpp2.tcap"],["tcl","application/x-tcl"],["td","application/urc-targetdesc+xml"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["teicorpus","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text","text/plain"],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tfx","image/tiff-fx"],["tga","image/x-tga"],["tgz","application/x-tar"],["thmx","application/vnd.ms-officetheme"],["tif","image/tiff"],["tiff","image/tiff"],["tk","application/x-tcl"],["tmo","application/vnd.tmobile-livetv"],["toml","application/toml"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","text/troff"],["tra","application/vnd.trueapp"],["trig","application/trig"],["trm","application/x-msterminal"],["ts","video/mp2t"],["tsd","application/timestamped-data"],["tsv","text/tab-separated-values"],["ttc","font/collection"],["ttf","font/ttf"],["ttl","text/turtle"],["ttml","application/ttml+xml"],["twd","application/vnd.simtech-mindmapper"],["twds","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["u8dsn","message/global-delivery-status"],["u8hdr","message/global-headers"],["u8mdn","message/global-disposition-notification"],["u8msg","message/global"],["u32","application/x-authorware-bin"],["ubj","application/ubjson"],["udeb","application/x-debian-package"],["ufd","application/vnd.ufdl"],["ufdl","application/vnd.ufdl"],["ulx","application/x-glulx"],["umj","application/vnd.umajin"],["unityweb","application/vnd.unity"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["urls","text/uri-list"],["usdz","model/vnd.usdz+zip"],["ustar","application/x-ustar"],["utz","application/vnd.uiq.theme"],["uu","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvd","application/vnd.dece.data"],["uvf","application/vnd.dece.data"],["uvg","image/vnd.dece.graphic"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvt","application/vnd.dece.ttml+xml"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["uvva","audio/vnd.dece.audio"],["uvvd","application/vnd.dece.data"],["uvvf","application/vnd.dece.data"],["uvvg","image/vnd.dece.graphic"],["uvvh","video/vnd.dece.hd"],["uvvi","image/vnd.dece.graphic"],["uvvm","video/vnd.dece.mobile"],["uvvp","video/vnd.dece.pd"],["uvvs","video/vnd.dece.sd"],["uvvt","application/vnd.dece.ttml+xml"],["uvvu","video/vnd.uvvu.mp4"],["uvvv","video/vnd.dece.video"],["uvvx","application/vnd.dece.unspecified"],["uvvz","application/vnd.dece.zip"],["uvx","application/vnd.dece.unspecified"],["uvz","application/vnd.dece.zip"],["vbox","application/x-virtualbox-vbox"],["vbox-extpack","application/x-virtualbox-vbox-extpack"],["vcard","text/vcard"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vdi","application/x-virtualbox-vdi"],["vds","model/vnd.sap.vds"],["vhd","application/x-virtualbox-vhd"],["vis","application/vnd.visionary"],["viv","video/vnd.vivo"],["vlc","application/videolan"],["vmdk","application/x-virtualbox-vmdk"],["vob","video/x-ms-vob"],["vor","application/vnd.stardivision.writer"],["vox","application/x-authorware-bin"],["vrml","model/vrml"],["vsd","application/vnd.visio"],["vsf","application/vnd.vsf"],["vss","application/vnd.visio"],["vst","application/vnd.visio"],["vsw","application/vnd.visio"],["vtf","image/vnd.valve.source.texture"],["vtt","text/vtt"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w3d","application/x-director"],["wad","application/x-doom"],["wadl","application/vnd.sun.wadl+xml"],["war","application/java-archive"],["wasm","application/wasm"],["wav","audio/x-wav"],["wax","audio/x-ms-wax"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["wdp","image/vnd.ms-photo"],["weba","audio/webm"],["webapp","application/x-web-app-manifest+json"],["webm","video/webm"],["webmanifest","application/manifest+json"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf","image/wmf"],["wml","text/vnd.wap.wml"],["wmlc","application/wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-msmetafile"],["woff","font/woff"],["woff2","font/woff2"],["word","application/msword"],["wpd","application/vnd.wordperfect"],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wqd","application/vnd.wqd"],["wri","application/x-mswrite"],["wrl","model/vrml"],["wsc","message/vnd.wfa.wsc"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wtb","application/vnd.webturbo"],["wvx","video/x-ms-wvx"],["x3d","model/x3d+xml"],["x3db","model/x3d+fastinfoset"],["x3dbz","model/x3d+binary"],["x3dv","model/x3d-vrml"],["x3dvz","model/x3d+vrml"],["x3dz","model/x3d+xml"],["x32","application/x-authorware-bin"],["x_b","model/vnd.parasolid.transmit.binary"],["x_t","model/vnd.parasolid.transmit.text"],["xaml","application/xaml+xml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xav","application/xcap-att+xml"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm","image/x-xbitmap"],["xca","application/xcap-caps+xml"],["xcs","application/calendar+xml"],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xel","application/xcap-el+xml"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xht","application/xhtml+xml"],["xhtml","application/xhtml+xml"],["xhvml","application/xv+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla","application/vnd.ms-excel"],["xlam","application/vnd.ms-excel.addin.macroEnabled.12"],["xlc","application/vnd.ms-excel"],["xlf","application/xliff+xml"],["xlm","application/vnd.ms-excel"],["xls","application/vnd.ms-excel"],["xlsb","application/vnd.ms-excel.sheet.binary.macroEnabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroEnabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt","application/vnd.ms-excel"],["xltm","application/vnd.ms-excel.template.macroEnabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlw","application/vnd.ms-excel"],["xm","audio/xm"],["xml","application/xml"],["xns","application/xcap-ns+xml"],["xo","application/vnd.olpc-sugar"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpl","application/xproc+xml"],["xpm","image/x-xpixmap"],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xpx","application/vnd.intercon.formnet"],["xsd","application/xml"],["xsl","application/xml"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xul","application/vnd.mozilla.xul+xml"],["xvm","application/xv+xml"],["xvml","application/xv+xml"],["xwd","image/x-xwindowdump"],["xyz","chemical/x-xyz"],["xz","application/x-xz"],["yaml","text/yaml"],["yang","application/yang"],["yin","application/yin+xml"],["yml","text/yaml"],["ymp","text/x-suse-ymp"],["z","application/x-compress"],["z1","application/x-zmachine"],["z2","application/x-zmachine"],["z3","application/x-zmachine"],["z4","application/x-zmachine"],["z5","application/x-zmachine"],["z6","application/x-zmachine"],["z7","application/x-zmachine"],["z8","application/x-zmachine"],["zaz","application/vnd.zzazz.deck+xml"],["zip","application/zip"],["zir","application/vnd.zul"],["zirz","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zsh","text/x-scriptzsh"]]);function oe(e,a,n){const t=Ct(e),{webkitRelativePath:o}=e,l=typeof a=="string"?a:typeof o=="string"&&o.length>0?o:`./${e.name}`;return typeof t.path!="string"&&va(t,"path",l),va(t,"relativePath",l),t}function Ct(e){const{name:a}=e;if(a&&a.lastIndexOf(".")!==-1&&!e.type){const t=a.split(".").pop().toLowerCase(),o=Et.get(t);o&&Object.defineProperty(e,"type",{value:o,writable:!1,configurable:!1,enumerable:!0})}return e}function va(e,a,n){Object.defineProperty(e,a,{value:n,writable:!1,configurable:!1,enumerable:!0})}const St=[".DS_Store","Thumbs.db"];function Ft(e){return ee(this,void 0,void 0,function*(){return he(e)&&Ot(e.dataTransfer)?Rt(e.dataTransfer,e.type):At(e)?Tt(e):Array.isArray(e)&&e.every(a=>"getFile"in a&&typeof a.getFile=="function")?_t(e):[]})}function Ot(e){return he(e)}function At(e){return he(e)&&he(e.target)}function he(e){return typeof e=="object"&&e!==null}function Tt(e){return He(e.target.files).map(a=>oe(a))}function _t(e){return ee(this,void 0,void 0,function*(){return(yield Promise.all(e.map(n=>n.getFile()))).map(n=>oe(n))})}function Rt(e,a){return ee(this,void 0,void 0,function*(){if(e.items){const n=He(e.items).filter(o=>o.kind==="file");if(a!=="drop")return n;const t=yield Promise.all(n.map(Mt));return ga(Ma(t))}return ga(He(e.files).map(n=>oe(n)))})}function ga(e){return e.filter(a=>St.indexOf(a.name)===-1)}function He(e){if(e===null)return[];const a=[];for(let n=0;n[...a,...Array.isArray(n)?Ma(n):[n]],[])}function ha(e,a){return ee(this,void 0,void 0,function*(){var n;if(globalThis.isSecureContext&&typeof e.getAsFileSystemHandle=="function"){const l=yield e.getAsFileSystemHandle();if(l===null)throw new Error(`${e} is not a File`);if(l!==void 0){const d=yield l.getFile();return d.handle=l,oe(d)}}const t=e.getAsFile();if(!t)throw new Error(`${e} is not a File`);return oe(t,(n=a==null?void 0:a.fullPath)!==null&&n!==void 0?n:void 0)})}function qt(e){return ee(this,void 0,void 0,function*(){return e.isDirectory?qa(e):It(e)})}function qa(e){const a=e.createReader();return new Promise((n,t)=>{const o=[];function l(){a.readEntries(d=>ee(this,void 0,void 0,function*(){if(d.length){const r=Promise.all(d.map(qt));o.push(r),l()}else try{const r=yield Promise.all(o);n(r)}catch(r){t(r)}}),d=>{t(d)})}l()})}function It(e){return ee(this,void 0,void 0,function*(){return new Promise((a,n)=>{e.file(t=>{const o=oe(t,e.fullPath);a(o)},t=>{n(t)})})})}var ve={},ba;function Lt(){return ba||(ba=1,ve.__esModule=!0,ve.default=function(e,a){if(e&&a){var n=Array.isArray(a)?a:a.split(",");if(n.length===0)return!0;var t=e.name||"",o=(e.type||"").toLowerCase(),l=o.replace(/\/.*$/,"");return n.some(function(d){var r=d.trim().toLowerCase();return r.charAt(0)==="."?t.toLowerCase().endsWith(r):r.endsWith("/*")?l===r.replace(/\/.*$/,""):o===r})}return!0}),ve}var Bt=Lt();const Me=Sa(Bt);function ya(e){return Ht(e)||$t(e)||La(e)||Ut()}function Ut(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +import{j as i,_ as ee,d as Qa}from"./ui-vendor-CeCm8EER.js";import{r as c,g as Sa,R as Za}from"./react-vendor-DEwriMA6.js";import{c as O,C as Le,F as et,a as Be,b as Fa,u as le,s as at,d as q,U as Ue,S as tt,e as Oa,B as I,X as it,f as nt,g as X,D as Ve,h as Aa,i as Xe,j as Qe,k as Ze,l as ea,m as ot,n as lt,E as rt,T as ct,I as pt,o as st,p as dt,A as mt,q as ut,r as ft,t as xt,v as Se,w as Fe,x as vt,y as gt,z as da,G as ma,R as ht,H as bt,J as yt,K as Oe,L as Ae}from"./feature-graph-DbHHHM9y.js";const Ta=c.forwardRef(({className:e,...a},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:O("w-full caption-bottom text-sm",e),...a})}));Ta.displayName="Table";const _a=c.forwardRef(({className:e,...a},n)=>i.jsx("thead",{ref:n,className:O("[&_tr]:border-b",e),...a}));_a.displayName="TableHeader";const Ra=c.forwardRef(({className:e,...a},n)=>i.jsx("tbody",{ref:n,className:O("[&_tr:last-child]:border-0",e),...a}));Ra.displayName="TableBody";const wt=c.forwardRef(({className:e,...a},n)=>i.jsx("tfoot",{ref:n,className:O("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",e),...a}));wt.displayName="TableFooter";const $e=c.forwardRef(({className:e,...a},n)=>i.jsx("tr",{ref:n,className:O("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...a}));$e.displayName="TableRow";const J=c.forwardRef(({className:e,...a},n)=>i.jsx("th",{ref:n,className:O("text-muted-foreground h-10 px-2 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a}));J.displayName="TableHead";const V=c.forwardRef(({className:e,...a},n)=>i.jsx("td",{ref:n,className:O("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...a}));V.displayName="TableCell";const jt=c.forwardRef(({className:e,...a},n)=>i.jsx("caption",{ref:n,className:O("text-muted-foreground mt-4 text-sm",e),...a}));jt.displayName="TableCaption";function kt({title:e,description:a,icon:n=et,action:t,className:o,...l}){return i.jsxs(Le,{className:O("flex w-full flex-col items-center justify-center space-y-6 bg-transparent p-16",o),...l,children:[i.jsx("div",{className:"mr-4 shrink-0 rounded-full border border-dashed p-4",children:i.jsx(n,{className:"text-muted-foreground size-8","aria-hidden":"true"})}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 text-center",children:[i.jsx(Be,{children:e}),a?i.jsx(Fa,{children:a}):null]}),t||null]})}var Te={exports:{}},_e,ua;function Dt(){if(ua)return _e;ua=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return _e=e,_e}var Re,fa;function zt(){if(fa)return Re;fa=1;var e=Dt();function a(){}function n(){}return n.resetWarningCache=a,Re=function(){function t(d,r,h,b,v,A){if(A!==e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}}t.isRequired=t;function o(){return t}var l={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:o,element:t,elementType:t,instanceOf:o,node:t,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:n,resetWarningCache:a};return l.PropTypes=l,l},Re}var xa;function Pt(){return xa||(xa=1,Te.exports=zt()()),Te.exports}var Nt=Pt();const z=Sa(Nt),Et=new Map([["1km","application/vnd.1000minds.decision-model+xml"],["3dml","text/vnd.in3d.3dml"],["3ds","image/x-3ds"],["3g2","video/3gpp2"],["3gp","video/3gp"],["3gpp","video/3gpp"],["3mf","model/3mf"],["7z","application/x-7z-compressed"],["7zip","application/x-7z-compressed"],["123","application/vnd.lotus-1-2-3"],["aab","application/x-authorware-bin"],["aac","audio/x-acc"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abw","application/x-abiword"],["ac","application/vnd.nokia.n-gage.ac+xml"],["ac3","audio/ac3"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acu","application/vnd.acucobol"],["acutc","application/vnd.acucorp"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afm","application/x-font-type1"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/pdf"],["aif","audio/x-aiff"],["aifc","audio/x-aiff"],["aiff","audio/x-aiff"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["amr","audio/amr"],["apk","application/vnd.android.package-archive"],["apng","image/apng"],["appcache","text/cache-manifest"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["arc","application/x-freearc"],["arj","application/x-arj"],["asc","application/pgp-signature"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asx","video/x-ms-asf"],["atc","application/vnd.acucorp"],["atom","application/atom+xml"],["atomcat","application/atomcat+xml"],["atomdeleted","application/atomdeleted+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au","audio/x-au"],["avi","video/x-msvideo"],["avif","image/avif"],["aw","application/applixware"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azv","image/vnd.airzip.accelerator.azv"],["azw","application/vnd.amazon.ebook"],["b16","image/vnd.pco.b16"],["bat","application/x-msdownload"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bdoc","application/x-bdoc"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin","application/octet-stream"],["blb","application/x-blorb"],["blorb","application/x-blorb"],["bmi","application/vnd.bmi"],["bmml","application/vnd.balsamiq.bmml+xml"],["bmp","image/bmp"],["book","application/vnd.framemaker"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bpk","application/octet-stream"],["bpmn","application/octet-stream"],["bsp","model/vnd.valve.source.compiled-map"],["btif","image/prs.btif"],["buffer","application/octet-stream"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c","text/x-c"],["c4d","application/vnd.clonk.c4group"],["c4f","application/vnd.clonk.c4group"],["c4g","application/vnd.clonk.c4group"],["c4p","application/vnd.clonk.c4group"],["c4u","application/vnd.clonk.c4group"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["cab","application/vnd.ms-cab-compressed"],["caf","audio/x-caf"],["cap","application/vnd.tcpdump.pcap"],["car","application/vnd.curl.car"],["cat","application/vnd.ms-pki.seccat"],["cb7","application/x-cbr"],["cba","application/x-cbr"],["cbr","application/x-cbr"],["cbt","application/x-cbr"],["cbz","application/x-cbr"],["cc","text/x-c"],["cco","application/x-cocoa"],["cct","application/x-director"],["ccxml","application/ccxml+xml"],["cdbcmsg","application/vnd.contact.cmsg"],["cda","application/x-cdf"],["cdf","application/x-netcdf"],["cdfx","application/cdfx+xml"],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdr","application/cdr"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer","application/pkix-cert"],["cfs","application/x-cfs-compressed"],["cgm","image/cgm"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cjs","application/node"],["cla","application/vnd.claymore"],["class","application/octet-stream"],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod","application/vnd.rim.cod"],["coffee","text/coffeescript"],["com","application/x-msdownload"],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt","application/mac-compactpro"],["crd","application/x-mscardfile"],["crl","application/pkix-crl"],["crt","application/x-x509-ca-cert"],["crx","application/x-chrome-extension"],["cryptonote","application/vnd.rig.cryptonote"],["csh","application/x-csh"],["csl","application/vnd.citationstyles.style+xml"],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["csr","application/octet-stream"],["css","text/css"],["cst","application/x-director"],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxt","application/x-director"],["cxx","text/x-c"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["dart","application/vnd.dart"],["dataless","application/vnd.fdsn.seed"],["davmount","application/davmount+xml"],["dbf","application/vnd.dbf"],["dbk","application/docbook+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["ddf","application/vnd.syncml.dmddf+xml"],["dds","image/vnd.ms-dds"],["deb","application/x-debian-package"],["def","text/plain"],["deploy","application/octet-stream"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dgc","application/x-dgc-compressed"],["dic","text/x-c"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["disposition-notification","message/disposition-notification"],["dist","application/octet-stream"],["distz","application/octet-stream"],["djv","image/vnd.djvu"],["djvu","image/vnd.djvu"],["dll","application/octet-stream"],["dmg","application/x-apple-diskimage"],["dmn","application/octet-stream"],["dmp","application/vnd.tcpdump.pcap"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.template.macroEnabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroEnabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp","application/vnd.osgi.dp"],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drle","image/dicom-rle"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dvb","video/vnd.dvb.file"],["dvi","application/x-dvi"],["dwd","application/atsc-dwd+xml"],["dwf","model/vnd.dwf"],["dwg","image/vnd.dwg"],["dxf","image/vnd.dxf"],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ear","application/java-archive"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["ecma","application/ecmascript"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["elc","application/octet-stream"],["emf","image/emf"],["eml","message/rfc822"],["emma","application/emma+xml"],["emotionml","application/emotionml+xml"],["emz","application/x-msmetafile"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es","application/ecmascript"],["es3","application/vnd.eszigno3+xml"],["esa","application/vnd.osgi.subsystem"],["esf","application/vnd.epson.esf"],["et3","application/vnd.eszigno3+xml"],["etx","text/x-setext"],["eva","application/x-eva"],["evy","application/x-envoy"],["exe","application/octet-stream"],["exi","application/exi"],["exp","application/express"],["exr","image/aces"],["ext","application/vnd.novadigm.ext"],["ez","application/andrew-inset"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f","text/x-fortran"],["f4v","video/mp4"],["f77","text/x-fortran"],["f90","text/x-fortran"],["fbs","image/vnd.fastbidsheet"],["fcdt","application/vnd.adobe.formscentral.fcdt"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fdt","application/fdt+xml"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fgd","application/x-director"],["fh","image/x-freehand"],["fh4","image/x-freehand"],["fh5","image/x-freehand"],["fh7","image/x-freehand"],["fhc","image/x-freehand"],["fig","application/x-xfig"],["fits","image/fits"],["flac","audio/x-flac"],["fli","video/x-fli"],["flo","application/vnd.micrografx.flo"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fnc","application/vnd.frogans.fnc"],["fo","application/vnd.software602.filler.form+xml"],["for","text/x-fortran"],["fpx","image/vnd.fpx"],["frame","application/vnd.framemaker"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fxpl","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gam","application/x-tads"],["gbr","application/rpki-ghostbusters"],["gca","application/x-gca-compressed"],["gdl","model/vnd.gdl"],["gdoc","application/vnd.google-apps.document"],["geo","application/vnd.dynageo"],["geojson","application/geo+json"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["glb","model/gltf-binary"],["gltf","model/gltf+json"],["gml","application/gml+xml"],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gpg","application/gpg-keys"],["gph","application/vnd.flographit"],["gpx","application/gpx+xml"],["gqf","application/vnd.grafeq"],["gqs","application/vnd.grafeq"],["gram","application/srgs"],["gramps","application/x-gramps-xml"],["gre","application/vnd.geometry-explorer"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsf","application/x-font-ghostscript"],["gsheet","application/vnd.google-apps.spreadsheet"],["gslides","application/vnd.google-apps.presentation"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxf","application/gxf"],["gxt","application/vnd.geonext"],["gz","application/gzip"],["gzip","application/gzip"],["h","text/x-c"],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hbs","text/x-handlebars-template"],["hdd","application/x-virtualbox-hdd"],["hdf","application/x-hdf"],["heic","image/heic"],["heics","image/heic-sequence"],["heif","image/heif"],["heifs","image/heif-sequence"],["hej2","image/hej2k"],["held","application/atsc-held+xml"],["hh","text/x-c"],["hjson","application/hjson"],["hlp","application/winhlp"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx","application/mac-binhex40"],["hsj2","image/hsj2"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["icm","application/vnd.iccprofile"],["ico","image/x-icon"],["ics","text/calendar"],["ief","image/ief"],["ifb","text/calendar"],["ifm","application/vnd.shana.informed.formdata"],["iges","model/iges"],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs","model/iges"],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["img","application/octet-stream"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["in","text/plain"],["ini","text/plain"],["ink","application/inkml+xml"],["inkml","application/inkml+xml"],["install","application/x-install-instructions"],["iota","application/vnd.astraea-software.iota"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["iso","application/x-iso9660-image"],["itp","application/vnd.shana.informed.formtemplate"],["its","application/its+xml"],["ivp","application/vnd.immervision-ivp"],["ivu","application/vnd.immervision-ivu"],["jad","text/vnd.sun.j2me.app-descriptor"],["jade","text/jade"],["jam","application/vnd.jam"],["jar","application/java-archive"],["jardiff","application/x-java-archive-diff"],["java","text/x-java-source"],["jhc","image/jphc"],["jisp","application/vnd.jisp"],["jls","image/jls"],["jlt","application/vnd.hp-jlyt"],["jng","image/x-jng"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jp2","image/jp2"],["jpe","image/jpeg"],["jpeg","image/jpeg"],["jpf","image/jpx"],["jpg","image/jpeg"],["jpg2","image/jp2"],["jpgm","video/jpm"],["jpgv","video/jpeg"],["jph","image/jph"],["jpm","video/jpm"],["jpx","image/jpx"],["js","application/javascript"],["json","application/json"],["json5","application/json5"],["jsonld","application/ld+json"],["jsonl","application/jsonl"],["jsonml","application/jsonml+json"],["jsx","text/jsx"],["jxr","image/jxr"],["jxra","image/jxra"],["jxrs","image/jxrs"],["jxs","image/jxs"],["jxsc","image/jxsc"],["jxsi","image/jxsi"],["jxss","image/jxss"],["kar","audio/midi"],["karbon","application/vnd.kde.karbon"],["kdb","application/octet-stream"],["kdbx","application/x-keepass2"],["key","application/x-iwork-keynote-sffkey"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["knp","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["kpt","application/vnd.kde.kpresenter"],["kpxx","application/vnd.ds-keypoint"],["ksp","application/vnd.kde.kspread"],["ktr","application/vnd.kahootz"],["ktx","image/ktx"],["ktx2","image/ktx2"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["kwt","application/vnd.kde.kword"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["less","text/less"],["lgr","application/lgr+xml"],["lha","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["list3820","application/vnd.ibm.modcap"],["listafp","application/vnd.ibm.modcap"],["litcoffee","text/coffeescript"],["lnk","application/x-ms-shortcut"],["log","text/plain"],["lostxml","application/lost+xml"],["lrf","application/octet-stream"],["lrm","application/vnd.ms-lrm"],["ltf","application/vnd.frogans.ltf"],["lua","text/x-lua"],["luac","application/x-lua-bytecode"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh","application/octet-stream"],["m1v","video/mpeg"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3a","audio/mpeg"],["m3u","text/plain"],["m3u8","application/vnd.apple.mpegurl"],["m4a","audio/x-m4a"],["m4p","application/mp4"],["m4s","video/iso.segment"],["m4u","application/vnd.mpegurl"],["m4v","video/x-m4v"],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m21","application/mp21"],["ma","application/mathematica"],["mads","application/mads+xml"],["maei","application/mmt-aei+xml"],["mag","application/vnd.ecowin.chart"],["maker","application/vnd.framemaker"],["man","text/troff"],["manifest","text/cache-manifest"],["map","application/json"],["mar","application/octet-stream"],["markdown","text/markdown"],["mathml","application/mathml+xml"],["mb","application/mathematica"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc1","application/vnd.medcalcdata"],["mcd","application/vnd.mcd"],["mcurl","text/vnd.curl.mcurl"],["md","text/markdown"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["mdx","text/mdx"],["me","text/troff"],["mesh","model/mesh"],["meta4","application/metalink4+xml"],["metalink","application/metalink+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mft","application/rpki-manifest"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mid","audio/midi"],["midi","audio/midi"],["mie","application/x-mie"],["mif","application/vnd.mif"],["mime","message/rfc822"],["mj2","video/mj2"],["mjp2","video/mj2"],["mjs","application/javascript"],["mk3d","video/x-matroska"],["mka","audio/x-matroska"],["mkd","text/x-markdown"],["mks","video/x-matroska"],["mkv","video/x-matroska"],["mlp","application/vnd.dolby.mlp"],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mmf","application/vnd.smaf"],["mml","text/mathml"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mng","video/x-mng"],["mny","application/x-msmoney"],["mobi","application/x-mobipocket-ebook"],["mods","application/mods+xml"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2","audio/mpeg"],["mp2a","audio/mpeg"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mp4a","audio/mp4"],["mp4s","application/mp4"],["mp4v","video/mp4"],["mp21","application/mp21"],["mpc","application/vnd.mophun.certificate"],["mpd","application/dash+xml"],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg","video/mpeg"],["mpg4","video/mp4"],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/vnd.ms-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","text/troff"],["mscml","application/mediaservercontrol+xml"],["mseed","application/vnd.fdsn.mseed"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msi","application/x-msdownload"],["msl","application/vnd.mobius.msl"],["msm","application/octet-stream"],["msp","application/octet-stream"],["msty","application/vnd.muvee.style"],["mtl","model/mtl"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musd","application/mmt-usd+xml"],["musicxml","application/vnd.recordare.musicxml+xml"],["mvb","application/x-msmediaview"],["mvt","application/vnd.mapbox-vector-tile"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxmf","audio/mobile-xmf"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nb","application/mathematica"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncx","application/x-dtbncx+xml"],["nfo","text/x-nfo"],["ngdat","application/vnd.nokia.n-gage.data"],["nitf","application/vnd.nitf"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nq","application/n-quads"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nt","application/n-triples"],["ntf","application/vnd.nitf"],["numbers","application/x-iwork-numbers-sffnumbers"],["nzb","application/x-nzb"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["obgx","application/vnd.openblox.game+xml"],["obj","model/obj"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogex","model/vnd.opengex"],["ogg","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omdoc","application/omdoc+xml"],["onepkg","application/onenote"],["onetmp","application/onenote"],["onetoc","application/onenote"],["onetoc2","application/onenote"],["opf","application/oebps-package+xml"],["opml","text/x-opml"],["oprc","application/vnd.palm"],["opus","audio/ogg"],["org","text/x-org"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["osm","application/vnd.openstreetmap.data+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","font/otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["ova","application/x-virtualbox-ova"],["ovf","application/x-virtualbox-ovf"],["owl","application/rdf+xml"],["oxps","application/oxps"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c","application/pkcs7-mime"],["p7m","application/pkcs7-mime"],["p7r","application/x-pkcs7-certreqresp"],["p7s","application/pkcs7-signature"],["p8","application/pkcs8"],["p10","application/x-pkcs10"],["p12","application/x-pkcs12"],["pac","application/x-ns-proxy-autoconfig"],["pages","application/x-iwork-pages-sffpages"],["pas","text/x-pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcap","application/vnd.tcpdump.pcap"],["pcf","application/x-font-pcf"],["pcl","application/vnd.hp-pcl"],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb","application/x-pilot"],["pde","text/x-processing"],["pdf","application/pdf"],["pem","application/x-x509-user-cert"],["pfa","application/x-font-type1"],["pfb","application/x-font-type1"],["pfm","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfx","application/x-pkcs12"],["pgm","image/x-portable-graymap"],["pgn","application/x-chess-pgn"],["pgp","application/pgp"],["php","application/x-httpd-php"],["php3","application/x-httpd-php"],["php4","application/x-httpd-php"],["phps","application/x-httpd-php-source"],["phtml","application/x-httpd-php"],["pic","image/x-pict"],["pkg","application/octet-stream"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pkpass","application/vnd.apple.pkpass"],["pl","application/x-perl"],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["pm","application/x-perl"],["pml","application/vnd.ctc-posml"],["png","image/png"],["pnm","image/x-portable-anymap"],["portpkg","application/vnd.macports.portpkg"],["pot","application/vnd.ms-powerpoint"],["potm","application/vnd.ms-powerpoint.presentation.macroEnabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroEnabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps","application/vnd.ms-powerpoint"],["ppsm","application/vnd.ms-powerpoint.slideshow.macroEnabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt","application/powerpoint"],["pptm","application/vnd.ms-powerpoint.presentation.macroEnabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["pqa","application/vnd.palm"],["prc","application/x-pilot"],["pre","application/vnd.lotus-freelance"],["prf","application/pics-rules"],["provx","application/provenance+xml"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd","application/x-photoshop"],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["pti","image/prs.pti"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pwn","application/vnd.3m.post-it-notes"],["pya","audio/vnd.ms-playready.media.pya"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qfx","application/vnd.intu.qfx"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qwd","application/vnd.quark.quarkxpress"],["qwt","application/vnd.quark.quarkxpress"],["qxb","application/vnd.quark.quarkxpress"],["qxd","application/vnd.quark.quarkxpress"],["qxl","application/vnd.quark.quarkxpress"],["qxt","application/vnd.quark.quarkxpress"],["ra","audio/x-realaudio"],["ram","audio/x-pn-realaudio"],["raml","application/raml+yaml"],["rapd","application/route-apd+xml"],["rar","application/x-rar"],["ras","image/x-cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["relo","application/p2p-overlay+xml"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["ris","application/x-research-info-systems"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm","audio/x-pn-realaudio"],["rmi","audio/midi"],["rmp","audio/x-pn-realaudio-plugin"],["rms","application/vnd.jcp.javame.midlet-rms"],["rmvb","application/vnd.rn-realmedia-vbr"],["rnc","application/relax-ng-compact-syntax"],["rng","application/xml"],["roa","application/rpki-roa"],["roff","text/troff"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsa","application/x-pkcs7"],["rsat","application/atsc-rsat+xml"],["rsd","application/rsd+xml"],["rsheet","application/urc-ressheet+xml"],["rss","application/rss+xml"],["rtf","text/rtf"],["rtx","text/richtext"],["run","application/x-makeself"],["rusd","application/route-usd+xml"],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["sass","text/x-sass"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm","application/vnd.lotus-screencam"],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["scss","text/x-scss"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkd","application/vnd.solent.sdkm+xml"],["sdkm","application/vnd.solent.sdkm+xml"],["sdp","application/sdp"],["sdw","application/vnd.stardivision.writer"],["sea","application/octet-stream"],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["senmlx","application/senml+xml"],["sensmlx","application/sensml+xml"],["ser","application/java-serialized-object"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sfv","text/x-sfv"],["sgi","image/sgi"],["sgl","application/vnd.stardivision.writer-global"],["sgm","text/sgml"],["sgml","text/sgml"],["sh","application/x-sh"],["shar","application/x-shar"],["shex","text/shex"],["shf","application/shf+xml"],["shtml","text/html"],["sid","image/x-mrsid-image"],["sieve","application/sieve"],["sig","application/pgp-signature"],["sil","audio/silk"],["silo","model/mesh"],["sis","application/vnd.symbian.install"],["sisx","application/vnd.symbian.install"],["sit","application/x-stuffit"],["sitx","application/x-stuffitx"],["siv","application/sieve"],["skd","application/vnd.koan"],["skm","application/vnd.koan"],["skp","application/vnd.koan"],["skt","application/vnd.koan"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slim","text/slim"],["slm","text/slim"],["sls","application/route-s-tsid+xml"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi","application/smil"],["smil","application/smil"],["smv","video/x-smv"],["smzip","application/vnd.stepmania.package"],["snd","audio/basic"],["snf","application/x-font-snf"],["so","application/octet-stream"],["spc","application/x-pkcs7-certificates"],["spdx","text/spdx"],["spf","application/vnd.yamaha.smaf-phrase"],["spl","application/x-futuresplash"],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spx","audio/ogg"],["sql","application/x-sql"],["src","application/x-wais-source"],["srt","application/x-subrip"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["ssdl","application/ssdl+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssml","application/ssml+xml"],["sst","application/octet-stream"],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl","model/stl"],["stpx","model/step+xml"],["stpxz","model/step-xml+zip"],["stpz","model/step+zip"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["styl","text/stylus"],["stylus","text/stylus"],["sub","text/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["susp","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svg","image/svg+xml"],["svgz","image/svg+xml"],["swa","application/x-director"],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["swidtag","application/swid+xml"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t","text/troff"],["t3","application/x-t3vm-image"],["t38","image/t38"],["taglet","application/vnd.mynfc"],["tao","application/vnd.tao.intent-module-archive"],["tap","image/vnd.tencent.tap"],["tar","application/x-tar"],["tcap","application/vnd.3gpp2.tcap"],["tcl","application/x-tcl"],["td","application/urc-targetdesc+xml"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["teicorpus","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text","text/plain"],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tfx","image/tiff-fx"],["tga","image/x-tga"],["tgz","application/x-tar"],["thmx","application/vnd.ms-officetheme"],["tif","image/tiff"],["tiff","image/tiff"],["tk","application/x-tcl"],["tmo","application/vnd.tmobile-livetv"],["toml","application/toml"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","text/troff"],["tra","application/vnd.trueapp"],["trig","application/trig"],["trm","application/x-msterminal"],["ts","video/mp2t"],["tsd","application/timestamped-data"],["tsv","text/tab-separated-values"],["ttc","font/collection"],["ttf","font/ttf"],["ttl","text/turtle"],["ttml","application/ttml+xml"],["twd","application/vnd.simtech-mindmapper"],["twds","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["u8dsn","message/global-delivery-status"],["u8hdr","message/global-headers"],["u8mdn","message/global-disposition-notification"],["u8msg","message/global"],["u32","application/x-authorware-bin"],["ubj","application/ubjson"],["udeb","application/x-debian-package"],["ufd","application/vnd.ufdl"],["ufdl","application/vnd.ufdl"],["ulx","application/x-glulx"],["umj","application/vnd.umajin"],["unityweb","application/vnd.unity"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["urls","text/uri-list"],["usdz","model/vnd.usdz+zip"],["ustar","application/x-ustar"],["utz","application/vnd.uiq.theme"],["uu","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvd","application/vnd.dece.data"],["uvf","application/vnd.dece.data"],["uvg","image/vnd.dece.graphic"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvt","application/vnd.dece.ttml+xml"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["uvva","audio/vnd.dece.audio"],["uvvd","application/vnd.dece.data"],["uvvf","application/vnd.dece.data"],["uvvg","image/vnd.dece.graphic"],["uvvh","video/vnd.dece.hd"],["uvvi","image/vnd.dece.graphic"],["uvvm","video/vnd.dece.mobile"],["uvvp","video/vnd.dece.pd"],["uvvs","video/vnd.dece.sd"],["uvvt","application/vnd.dece.ttml+xml"],["uvvu","video/vnd.uvvu.mp4"],["uvvv","video/vnd.dece.video"],["uvvx","application/vnd.dece.unspecified"],["uvvz","application/vnd.dece.zip"],["uvx","application/vnd.dece.unspecified"],["uvz","application/vnd.dece.zip"],["vbox","application/x-virtualbox-vbox"],["vbox-extpack","application/x-virtualbox-vbox-extpack"],["vcard","text/vcard"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vdi","application/x-virtualbox-vdi"],["vds","model/vnd.sap.vds"],["vhd","application/x-virtualbox-vhd"],["vis","application/vnd.visionary"],["viv","video/vnd.vivo"],["vlc","application/videolan"],["vmdk","application/x-virtualbox-vmdk"],["vob","video/x-ms-vob"],["vor","application/vnd.stardivision.writer"],["vox","application/x-authorware-bin"],["vrml","model/vrml"],["vsd","application/vnd.visio"],["vsf","application/vnd.vsf"],["vss","application/vnd.visio"],["vst","application/vnd.visio"],["vsw","application/vnd.visio"],["vtf","image/vnd.valve.source.texture"],["vtt","text/vtt"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w3d","application/x-director"],["wad","application/x-doom"],["wadl","application/vnd.sun.wadl+xml"],["war","application/java-archive"],["wasm","application/wasm"],["wav","audio/x-wav"],["wax","audio/x-ms-wax"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["wdp","image/vnd.ms-photo"],["weba","audio/webm"],["webapp","application/x-web-app-manifest+json"],["webm","video/webm"],["webmanifest","application/manifest+json"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf","image/wmf"],["wml","text/vnd.wap.wml"],["wmlc","application/wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-msmetafile"],["woff","font/woff"],["woff2","font/woff2"],["word","application/msword"],["wpd","application/vnd.wordperfect"],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wqd","application/vnd.wqd"],["wri","application/x-mswrite"],["wrl","model/vrml"],["wsc","message/vnd.wfa.wsc"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wtb","application/vnd.webturbo"],["wvx","video/x-ms-wvx"],["x3d","model/x3d+xml"],["x3db","model/x3d+fastinfoset"],["x3dbz","model/x3d+binary"],["x3dv","model/x3d-vrml"],["x3dvz","model/x3d+vrml"],["x3dz","model/x3d+xml"],["x32","application/x-authorware-bin"],["x_b","model/vnd.parasolid.transmit.binary"],["x_t","model/vnd.parasolid.transmit.text"],["xaml","application/xaml+xml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xav","application/xcap-att+xml"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm","image/x-xbitmap"],["xca","application/xcap-caps+xml"],["xcs","application/calendar+xml"],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xel","application/xcap-el+xml"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xht","application/xhtml+xml"],["xhtml","application/xhtml+xml"],["xhvml","application/xv+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla","application/vnd.ms-excel"],["xlam","application/vnd.ms-excel.addin.macroEnabled.12"],["xlc","application/vnd.ms-excel"],["xlf","application/xliff+xml"],["xlm","application/vnd.ms-excel"],["xls","application/vnd.ms-excel"],["xlsb","application/vnd.ms-excel.sheet.binary.macroEnabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroEnabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt","application/vnd.ms-excel"],["xltm","application/vnd.ms-excel.template.macroEnabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlw","application/vnd.ms-excel"],["xm","audio/xm"],["xml","application/xml"],["xns","application/xcap-ns+xml"],["xo","application/vnd.olpc-sugar"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpl","application/xproc+xml"],["xpm","image/x-xpixmap"],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xpx","application/vnd.intercon.formnet"],["xsd","application/xml"],["xsl","application/xml"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xul","application/vnd.mozilla.xul+xml"],["xvm","application/xv+xml"],["xvml","application/xv+xml"],["xwd","image/x-xwindowdump"],["xyz","chemical/x-xyz"],["xz","application/x-xz"],["yaml","text/yaml"],["yang","application/yang"],["yin","application/yin+xml"],["yml","text/yaml"],["ymp","text/x-suse-ymp"],["z","application/x-compress"],["z1","application/x-zmachine"],["z2","application/x-zmachine"],["z3","application/x-zmachine"],["z4","application/x-zmachine"],["z5","application/x-zmachine"],["z6","application/x-zmachine"],["z7","application/x-zmachine"],["z8","application/x-zmachine"],["zaz","application/vnd.zzazz.deck+xml"],["zip","application/zip"],["zir","application/vnd.zul"],["zirz","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zsh","text/x-scriptzsh"]]);function oe(e,a,n){const t=Ct(e),{webkitRelativePath:o}=e,l=typeof a=="string"?a:typeof o=="string"&&o.length>0?o:`./${e.name}`;return typeof t.path!="string"&&va(t,"path",l),va(t,"relativePath",l),t}function Ct(e){const{name:a}=e;if(a&&a.lastIndexOf(".")!==-1&&!e.type){const t=a.split(".").pop().toLowerCase(),o=Et.get(t);o&&Object.defineProperty(e,"type",{value:o,writable:!1,configurable:!1,enumerable:!0})}return e}function va(e,a,n){Object.defineProperty(e,a,{value:n,writable:!1,configurable:!1,enumerable:!0})}const St=[".DS_Store","Thumbs.db"];function Ft(e){return ee(this,void 0,void 0,function*(){return he(e)&&Ot(e.dataTransfer)?Rt(e.dataTransfer,e.type):At(e)?Tt(e):Array.isArray(e)&&e.every(a=>"getFile"in a&&typeof a.getFile=="function")?_t(e):[]})}function Ot(e){return he(e)}function At(e){return he(e)&&he(e.target)}function he(e){return typeof e=="object"&&e!==null}function Tt(e){return He(e.target.files).map(a=>oe(a))}function _t(e){return ee(this,void 0,void 0,function*(){return(yield Promise.all(e.map(n=>n.getFile()))).map(n=>oe(n))})}function Rt(e,a){return ee(this,void 0,void 0,function*(){if(e.items){const n=He(e.items).filter(o=>o.kind==="file");if(a!=="drop")return n;const t=yield Promise.all(n.map(Mt));return ga(Ma(t))}return ga(He(e.files).map(n=>oe(n)))})}function ga(e){return e.filter(a=>St.indexOf(a.name)===-1)}function He(e){if(e===null)return[];const a=[];for(let n=0;n[...a,...Array.isArray(n)?Ma(n):[n]],[])}function ha(e,a){return ee(this,void 0,void 0,function*(){var n;if(globalThis.isSecureContext&&typeof e.getAsFileSystemHandle=="function"){const l=yield e.getAsFileSystemHandle();if(l===null)throw new Error(`${e} is not a File`);if(l!==void 0){const d=yield l.getFile();return d.handle=l,oe(d)}}const t=e.getAsFile();if(!t)throw new Error(`${e} is not a File`);return oe(t,(n=a==null?void 0:a.fullPath)!==null&&n!==void 0?n:void 0)})}function qt(e){return ee(this,void 0,void 0,function*(){return e.isDirectory?qa(e):It(e)})}function qa(e){const a=e.createReader();return new Promise((n,t)=>{const o=[];function l(){a.readEntries(d=>ee(this,void 0,void 0,function*(){if(d.length){const r=Promise.all(d.map(qt));o.push(r),l()}else try{const r=yield Promise.all(o);n(r)}catch(r){t(r)}}),d=>{t(d)})}l()})}function It(e){return ee(this,void 0,void 0,function*(){return new Promise((a,n)=>{e.file(t=>{const o=oe(t,e.fullPath);a(o)},t=>{n(t)})})})}var ve={},ba;function Lt(){return ba||(ba=1,ve.__esModule=!0,ve.default=function(e,a){if(e&&a){var n=Array.isArray(a)?a:a.split(",");if(n.length===0)return!0;var t=e.name||"",o=(e.type||"").toLowerCase(),l=o.replace(/\/.*$/,"");return n.some(function(d){var r=d.trim().toLowerCase();return r.charAt(0)==="."?t.toLowerCase().endsWith(r):r.endsWith("/*")?l===r.replace(/\/.*$/,""):o===r})}return!0}),ve}var Bt=Lt();const Me=Sa(Bt);function ya(e){return Ht(e)||$t(e)||La(e)||Ut()}function Ut(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $t(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Ht(e){if(Array.isArray(e))return Ke(e)}function wa(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,t)}return n}function ja(e){for(var a=1;ae.length)&&(a=e.length);for(var n=0,t=new Array(a);n0&&arguments[0]!==void 0?arguments[0]:"",n=a.split(","),t=n.length>1?"one of ".concat(n.join(", ")):n[0];return{code:Jt,message:"File type must be ".concat(t)}},ka=function(a){return{code:Vt,message:"File is larger than ".concat(a," ").concat(a===1?"byte":"bytes")}},Da=function(a){return{code:Xt,message:"File is smaller than ".concat(a," ").concat(a===1?"byte":"bytes")}},ei={code:Qt,message:"Too many files"};function Ba(e,a){var n=e.type==="application/x-moz-file"||Yt(e,a);return[n,n?null:Zt(a)]}function Ua(e,a,n){if(Z(e.size))if(Z(a)&&Z(n)){if(e.size>n)return[!1,ka(n)];if(e.sizen)return[!1,ka(n)]}return[!0,null]}function Z(e){return e!=null}function ai(e){var a=e.files,n=e.accept,t=e.minSize,o=e.maxSize,l=e.multiple,d=e.maxFiles,r=e.validator;return!l&&a.length>1||l&&d>=1&&a.length>d?!1:a.every(function(h){var b=Ba(h,n),v=ce(b,1),A=v[0],f=Ua(h,t,o),C=ce(f,1),P=C[0],M=r?r(h):null;return A&&P&&!M})}function be(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble<"u"?e.cancelBubble:!1}function ge(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(a){return a==="Files"||a==="application/x-moz-file"}):!!e.target&&!!e.target.files}function za(e){e.preventDefault()}function ti(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function ii(e){return e.indexOf("Edge/")!==-1}function ni(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return ti(e)||ii(e)}function K(){for(var e=arguments.length,a=new Array(e),n=0;n1?o-1:0),d=1;di.map(i=>d[i]); -var di=Object.defineProperty;var fi=(e,t,r)=>t in e?di(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var $e=(e,t,r)=>fi(e,typeof t!="symbol"?t+"":t,r);import{R as W,r as p,c as hi,g as He,d as gi,e as pi}from"./react-vendor-DEwriMA6.js";import{_ as aa,a as sa,f as er,N as ia,b as la,c as ca,D as bn,d as Ut,F as mi,E as ua,e as vi,g as Un,h as yi,n as qn,v as Be,i as da,j as fa,r as We,k as ha,y as ga,p as bi,l as wi,U as Yr,m as xi,o as Si,S as Ei}from"./graph-vendor-B-X5JegA.js";import{j as g,c as wn,P as St,a as pa,D as _i,C as Ci,S as ki,R as Ti,u as Xe,b as ft,d as ma,e as Ri,A as Ai,f as Ee,g as Ce,h as ji,i as Ii,O as xn,k as va,l as Sn,m as Li,T as ya,n as ba,o as wa,p as Ni,q as Pi,r as xa,s as zi,t as Di,v as Oi,w as Gi,x as Fi,y as ct,z as $i,B as Mi}from"./ui-vendor-CeCm8EER.js";import{t as Hi,c as Sa,a as tr,b as Bi}from"./utils-vendor-BysuhMZA.js";function fe(...e){return Hi(Sa(e))}function rr(e){return e instanceof Error?e.message:`${e}`}function $g(e,t){let r=0,n=null;return function(...a){const o=Date.now(),l=t-(o-r);l<=0?(n&&(clearTimeout(n),n=null),r=o,e.apply(this,a)):n||(n=setTimeout(()=>{r=Date.now(),n=null,e.apply(this,a)},l))}}const En=e=>{const t=e;t.use={};for(const r of Object.keys(t.getState()))t.use[r]=()=>t(n=>n[r]);return t},Kr="",Mg="/webui/",Le="ghost",Vi="#B2EBF2",Ui="#000",qi="#E2E2E2",Qr="#EEEEEE",Wi="#F57F17",Xi="#969696",Yi="#F57F17",Wn="#B2EBF2",It=50,Xn=100,ut=4,Jr=20,Hg=15,Yn="*",Bg={"text/plain":[".txt",".md",".html",".htm",".tex",".json",".xml",".yaml",".yml",".rtf",".odt",".epub",".csv",".log",".conf",".ini",".properties",".sql",".bat",".sh",".c",".cpp",".py",".java",".js",".ts",".swift",".go",".rb",".php",".css",".scss",".less"],"application/pdf":[".pdf"],"application/msword":[".doc"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":[".docx"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":[".pptx"]},Vg={name:"LightRAG",github:"https://github.com/HKUDS/LightRAG"},Ki="modulepreload",Qi=function(e){return"/webui/"+e},Kn={},Ji=function(t,r,n){let a=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),i=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));a=Promise.allSettled(r.map(s=>{if(s=Qi(s),s in Kn)return;Kn[s]=!0;const c=s.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${u}`))return;const d=document.createElement("link");if(d.rel=c?"stylesheet":Ki,c||(d.as="script"),d.crossOrigin="",d.href=s,i&&d.setAttribute("nonce",i),document.head.appendChild(d),c)return new Promise((h,f)=>{d.addEventListener("load",h),d.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${s}`)))})}))}function o(l){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=l,window.dispatchEvent(i),!i.defaultPrevented)throw l}return a.then(l=>{for(const i of l||[])i.status==="rejected"&&o(i.reason);return t().catch(o)})};function Ea(e,t){let r;try{r=e()}catch{return}return{getItem:a=>{var o;const l=s=>s===null?null:JSON.parse(s,void 0),i=(o=r.getItem(a))!=null?o:null;return i instanceof Promise?i.then(l):l(i)},setItem:(a,o)=>r.setItem(a,JSON.stringify(o,void 0)),removeItem:a=>r.removeItem(a)}}const Zr=e=>t=>{try{const r=e(t);return r instanceof Promise?r:{then(n){return Zr(n)(r)},catch(n){return this}}}catch(r){return{then(n){return this},catch(n){return Zr(n)(r)}}}},Zi=(e,t)=>(r,n,a)=>{let o={storage:Ea(()=>localStorage),partialize:y=>y,version:0,merge:(y,T)=>({...T,...y}),...t},l=!1;const i=new Set,s=new Set;let c=o.storage;if(!c)return e((...y)=>{console.warn(`[zustand persist middleware] Unable to update item '${o.name}', the given storage is currently unavailable.`),r(...y)},n,a);const u=()=>{const y=o.partialize({...n()});return c.setItem(o.name,{state:y,version:o.version})},d=a.setState;a.setState=(y,T)=>{d(y,T),u()};const h=e((...y)=>{r(...y),u()},n,a);a.getInitialState=()=>h;let f;const b=()=>{var y,T;if(!c)return;l=!1,i.forEach(_=>{var A;return _((A=n())!=null?A:h)});const N=((T=o.onRehydrateStorage)==null?void 0:T.call(o,(y=n())!=null?y:h))||void 0;return Zr(c.getItem.bind(c))(o.name).then(_=>{if(_)if(typeof _.version=="number"&&_.version!==o.version){if(o.migrate){const A=o.migrate(_.state,_.version);return A instanceof Promise?A.then(R=>[!0,R]):[!0,A]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,_.state];return[!1,void 0]}).then(_=>{var A;const[R,I]=_;if(f=o.merge(I,(A=n())!=null?A:h),r(f,!0),R)return u()}).then(()=>{N==null||N(f,void 0),f=n(),l=!0,s.forEach(_=>_(f))}).catch(_=>{N==null||N(void 0,_)})};return a.persist={setOptions:y=>{o={...o,...y},y.storage&&(c=y.storage)},clearStorage:()=>{c==null||c.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>b(),hasHydrated:()=>l,onHydrate:y=>(i.add(y),()=>{i.delete(y)}),onFinishHydration:y=>(s.add(y),()=>{s.delete(y)})},o.skipHydration||b(),f||h},el=Zi,tl=tr()(el(e=>({theme:"system",language:"en",showPropertyPanel:!0,showNodeSearchBar:!0,showLegend:!1,showNodeLabel:!0,enableNodeDrag:!0,showEdgeLabel:!1,enableHideUnselectedEdges:!0,enableEdgeEvents:!1,minEdgeSize:1,maxEdgeSize:1,graphQueryMaxDepth:3,graphMaxNodes:1e3,graphLayoutMaxIterations:15,queryLabel:Yn,enableHealthCheck:!0,apiKey:null,currentTab:"documents",showFileName:!1,retrievalHistory:[],querySettings:{mode:"global",response_type:"Multiple Paragraphs",top_k:10,max_token_for_text_unit:4e3,max_token_for_global_context:4e3,max_token_for_local_context:4e3,only_need_context:!1,only_need_prompt:!1,stream:!0,history_turns:3,hl_keywords:[],ll_keywords:[],user_prompt:""},setTheme:t=>e({theme:t}),setLanguage:t=>{e({language:t}),Ji(async()=>{const{default:r}=await import("./utils-vendor-BysuhMZA.js").then(n=>n.d);return{default:r}},__vite__mapDeps([0,1])).then(({default:r})=>{r.language!==t&&r.changeLanguage(t)})},setGraphLayoutMaxIterations:t=>e({graphLayoutMaxIterations:t}),setQueryLabel:t=>e({queryLabel:t}),setGraphQueryMaxDepth:t=>e({graphQueryMaxDepth:t}),setGraphMaxNodes:t=>e({graphMaxNodes:t}),setMinEdgeSize:t=>e({minEdgeSize:t}),setMaxEdgeSize:t=>e({maxEdgeSize:t}),setEnableHealthCheck:t=>e({enableHealthCheck:t}),setApiKey:t=>e({apiKey:t}),setCurrentTab:t=>e({currentTab:t}),setRetrievalHistory:t=>e({retrievalHistory:t}),updateQuerySettings:t=>e(r=>({querySettings:{...r.querySettings,...t}})),setShowFileName:t=>e({showFileName:t}),setShowLegend:t=>e({showLegend:t})}),{name:"settings-storage",storage:Ea(()=>localStorage),version:13,migrate:(e,t)=>(t<2&&(e.showEdgeLabel=!1),t<3&&(e.queryLabel=Yn),t<4&&(e.showPropertyPanel=!0,e.showNodeSearchBar=!0,e.showNodeLabel=!0,e.enableHealthCheck=!0,e.apiKey=null),t<5&&(e.currentTab="documents"),t<6&&(e.querySettings={mode:"global",response_type:"Multiple Paragraphs",top_k:10,max_token_for_text_unit:4e3,max_token_for_global_context:4e3,max_token_for_local_context:4e3,only_need_context:!1,only_need_prompt:!1,stream:!0,history_turns:3,hl_keywords:[],ll_keywords:[]},e.retrievalHistory=[]),t<7&&(e.graphQueryMaxDepth=3,e.graphLayoutMaxIterations=15),t<8&&(e.graphMinDegree=0,e.language="en"),t<9&&(e.showFileName=!1),t<10&&(delete e.graphMinDegree,e.graphMaxNodes=1e3),t<11&&(e.minEdgeSize=1,e.maxEdgeSize=1),t<12&&(e.retrievalHistory=[]),t<13&&e.querySettings&&(e.querySettings.user_prompt=""),e)})),re=En(tl);class rl{constructor(){$e(this,"nodes",[]);$e(this,"edges",[]);$e(this,"nodeIdMap",{});$e(this,"edgeIdMap",{});$e(this,"edgeDynamicIdMap",{});$e(this,"getNode",t=>{const r=this.nodeIdMap[t];if(r!==void 0)return this.nodes[r]});$e(this,"getEdge",(t,r=!0)=>{const n=r?this.edgeDynamicIdMap[t]:this.edgeIdMap[t];if(n!==void 0)return this.edges[n]});$e(this,"buildDynamicMap",()=>{this.edgeDynamicIdMap={};for(let t=0;t({selectedNode:null,focusedNode:null,selectedEdge:null,focusedEdge:null,moveToSelectedNode:!1,isFetching:!1,graphIsEmpty:!1,lastSuccessfulQueryLabel:"",graphDataFetchAttempted:!1,labelsFetchAttempted:!1,rawGraph:null,sigmaGraph:null,sigmaInstance:null,allDatabaseLabels:["*"],typeColorMap:new Map,searchEngine:null,setGraphIsEmpty:r=>e({graphIsEmpty:r}),setLastSuccessfulQueryLabel:r=>e({lastSuccessfulQueryLabel:r}),setIsFetching:r=>e({isFetching:r}),setSelectedNode:(r,n)=>e({selectedNode:r,moveToSelectedNode:n}),setFocusedNode:r=>e({focusedNode:r}),setSelectedEdge:r=>e({selectedEdge:r}),setFocusedEdge:r=>e({focusedEdge:r}),clearSelection:()=>e({selectedNode:null,focusedNode:null,selectedEdge:null,focusedEdge:null}),reset:()=>{e({selectedNode:null,focusedNode:null,selectedEdge:null,focusedEdge:null,rawGraph:null,sigmaGraph:null,searchEngine:null,moveToSelectedNode:!1,graphIsEmpty:!1})},setRawGraph:r=>e({rawGraph:r}),setSigmaGraph:r=>{e({sigmaGraph:r})},setAllDatabaseLabels:r=>e({allDatabaseLabels:r}),fetchAllDatabaseLabels:async()=>{try{console.log("Fetching all database labels...");const r=await al();e({allDatabaseLabels:["*",...r]});return}catch(r){throw console.error("Failed to fetch all database labels:",r),e({allDatabaseLabels:["*"]}),r}},setMoveToSelectedNode:r=>e({moveToSelectedNode:r}),setSigmaInstance:r=>e({sigmaInstance:r}),setTypeColorMap:r=>e({typeColorMap:r}),setSearchEngine:r=>e({searchEngine:r}),resetSearchEngine:()=>e({searchEngine:null}),setGraphDataFetchAttempted:r=>e({graphDataFetchAttempted:r}),setLabelsFetchAttempted:r=>e({labelsFetchAttempted:r}),nodeToExpand:null,nodeToPrune:null,triggerNodeExpand:r=>e({nodeToExpand:r}),triggerNodePrune:r=>e({nodeToPrune:r}),graphDataVersion:0,incrementGraphDataVersion:()=>e(r=>({graphDataVersion:r.graphDataVersion+1})),updateNodeAndSelect:async(r,n,a,o)=>{const l=t(),{sigmaGraph:i,rawGraph:s}=l;if(!(!i||!s||!i.hasNode(r)))try{const c=i.getNodeAttributes(r);if(console.log("updateNodeAndSelect",r,n,a,o),r===n&&a==="entity_id"){i.addNode(o,{...c,label:o});const u=[];i.forEachEdge(r,(h,f,b,y)=>{const T=b===r?y:b,N=b===r,_=h,A=s.edgeDynamicIdMap[_],R=i.addEdge(N?o:T,N?T:o,f);A!==void 0&&u.push({originalDynamicId:_,newEdgeId:R,edgeIndex:A}),i.dropEdge(h)}),i.dropNode(r);const d=s.nodeIdMap[r];d!==void 0&&(s.nodes[d].id=o,s.nodes[d].labels=[o],s.nodes[d].properties.entity_id=o,delete s.nodeIdMap[r],s.nodeIdMap[o]=d),u.forEach(({originalDynamicId:h,newEdgeId:f,edgeIndex:b})=>{s.edges[b]&&(s.edges[b].source===r&&(s.edges[b].source=o),s.edges[b].target===r&&(s.edges[b].target=o),s.edges[b].dynamicId=f,delete s.edgeDynamicIdMap[h],s.edgeDynamicIdMap[f]=b)}),e({selectedNode:o,moveToSelectedNode:!0})}else{const u=s.nodeIdMap[String(r)];u!==void 0&&(s.nodes[u].properties[a]=o,a==="entity_id"&&(s.nodes[u].labels=[o],i.setNodeAttribute(String(r),"label",o))),e(d=>({graphDataVersion:d.graphDataVersion+1}))}}catch(c){throw console.error("Error updating node in graph:",c),new Error("Failed to update node in graph")}},updateEdgeAndSelect:async(r,n,a,o,l,i)=>{const s=t(),{sigmaGraph:c,rawGraph:u}=s;if(!(!c||!u))try{const d=u.edgeIdMap[String(r)];d!==void 0&&u.edges[d]&&(u.edges[d].properties[l]=i,n!==void 0&&l==="keywords"&&c.setEdgeAttribute(n,"label",i)),e(h=>({graphDataVersion:h.graphDataVersion+1})),e({selectedEdge:n})}catch(d){throw console.error(`Error updating edge ${a}->${o} in graph:`,d),new Error("Failed to update edge in graph")}}})),ee=En(nl);class ol{constructor(){$e(this,"navigate",null)}setNavigate(t){this.navigate=t}resetAllApplicationState(t=!1){console.log("Resetting all application state...");const r=ee.getState(),n=r.sigmaInstance;r.reset(),r.setGraphDataFetchAttempted(!1),r.setLabelsFetchAttempted(!1),r.setSigmaInstance(null),r.setIsFetching(!1),_n.getState().clear(),t||re.getState().setRetrievalHistory([]),sessionStorage.clear(),n&&(n.getGraph().clear(),n.kill(),ee.getState().setSigmaInstance(null))}navigateToLogin(){if(!this.navigate){console.error("Navigation function not set");return}const t=qt.getState().username;t&&localStorage.setItem("LIGHTRAG-PREVIOUS-USER",t),this.resetAllApplicationState(!0),qt.getState().logout(),this.navigate("/login")}navigateToHome(){if(!this.navigate){console.error("Navigation function not set");return}this.navigate("/")}}const _a=new ol,Ug="Invalid API Key",qg="API Key required",_e=Bi.create({baseURL:Kr,headers:{"Content-Type":"application/json"}});_e.interceptors.request.use(e=>{const t=re.getState().apiKey,r=localStorage.getItem("LIGHTRAG-API-TOKEN");return r&&(e.headers.Authorization=`Bearer ${r}`),t&&(e.headers["X-API-Key"]=t),e});_e.interceptors.response.use(e=>e,e=>{var t,r,n,a;if(e.response){if(((t=e.response)==null?void 0:t.status)===401){if((n=(r=e.config)==null?void 0:r.url)!=null&&n.includes("/login"))throw e;return _a.navigateToLogin(),Promise.reject(new Error("Authentication required"))}throw new Error(`${e.response.status} ${e.response.statusText} +var di=Object.defineProperty;var fi=(e,t,r)=>t in e?di(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var $e=(e,t,r)=>fi(e,typeof t!="symbol"?t+"":t,r);import{R as W,r as p,c as hi,g as He,d as gi,e as pi}from"./react-vendor-DEwriMA6.js";import{_ as aa,a as sa,f as er,N as ia,b as la,c as ca,D as bn,d as Ut,F as mi,E as ua,e as vi,g as Un,h as yi,n as qn,v as Be,i as da,j as fa,r as We,k as ha,y as ga,p as bi,l as wi,U as Yr,m as xi,o as Si,S as Ei}from"./graph-vendor-B-X5JegA.js";import{j as g,c as wn,P as St,a as pa,D as _i,C as Ci,S as ki,R as Ti,u as Xe,b as ft,d as ma,e as Ri,A as Ai,f as Ee,g as Ce,h as ji,i as Ii,O as xn,k as va,l as Sn,m as Ni,T as ya,n as ba,o as wa,p as Li,q as Pi,r as xa,s as zi,t as Di,v as Oi,w as Gi,x as Fi,y as ct,z as $i,B as Mi}from"./ui-vendor-CeCm8EER.js";import{t as Hi,c as Sa,a as tr,b as Bi}from"./utils-vendor-BysuhMZA.js";function fe(...e){return Hi(Sa(e))}function rr(e){return e instanceof Error?e.message:`${e}`}function $g(e,t){let r=0,n=null;return function(...a){const o=Date.now(),l=t-(o-r);l<=0?(n&&(clearTimeout(n),n=null),r=o,e.apply(this,a)):n||(n=setTimeout(()=>{r=Date.now(),n=null,e.apply(this,a)},l))}}const En=e=>{const t=e;t.use={};for(const r of Object.keys(t.getState()))t.use[r]=()=>t(n=>n[r]);return t},Kr="",Mg="/webui/",Ne="ghost",Vi="#B2EBF2",Ui="#000",qi="#E2E2E2",Qr="#EEEEEE",Wi="#F57F17",Xi="#969696",Yi="#F57F17",Wn="#B2EBF2",It=50,Xn=100,ut=4,Jr=20,Hg=15,Yn="*",Bg={"text/plain":[".txt",".md",".html",".htm",".tex",".json",".xml",".yaml",".yml",".rtf",".odt",".epub",".csv",".log",".conf",".ini",".properties",".sql",".bat",".sh",".c",".cpp",".py",".java",".js",".ts",".swift",".go",".rb",".php",".css",".scss",".less"],"application/pdf":[".pdf"],"application/msword":[".doc"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":[".docx"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":[".pptx"]},Vg={name:"LightRAG",github:"https://github.com/HKUDS/LightRAG"},Ki="modulepreload",Qi=function(e){return"/webui/"+e},Kn={},Ji=function(t,r,n){let a=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),i=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));a=Promise.allSettled(r.map(s=>{if(s=Qi(s),s in Kn)return;Kn[s]=!0;const c=s.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${u}`))return;const d=document.createElement("link");if(d.rel=c?"stylesheet":Ki,c||(d.as="script"),d.crossOrigin="",d.href=s,i&&d.setAttribute("nonce",i),document.head.appendChild(d),c)return new Promise((h,f)=>{d.addEventListener("load",h),d.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${s}`)))})}))}function o(l){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=l,window.dispatchEvent(i),!i.defaultPrevented)throw l}return a.then(l=>{for(const i of l||[])i.status==="rejected"&&o(i.reason);return t().catch(o)})};function Ea(e,t){let r;try{r=e()}catch{return}return{getItem:a=>{var o;const l=s=>s===null?null:JSON.parse(s,void 0),i=(o=r.getItem(a))!=null?o:null;return i instanceof Promise?i.then(l):l(i)},setItem:(a,o)=>r.setItem(a,JSON.stringify(o,void 0)),removeItem:a=>r.removeItem(a)}}const Zr=e=>t=>{try{const r=e(t);return r instanceof Promise?r:{then(n){return Zr(n)(r)},catch(n){return this}}}catch(r){return{then(n){return this},catch(n){return Zr(n)(r)}}}},Zi=(e,t)=>(r,n,a)=>{let o={storage:Ea(()=>localStorage),partialize:y=>y,version:0,merge:(y,T)=>({...T,...y}),...t},l=!1;const i=new Set,s=new Set;let c=o.storage;if(!c)return e((...y)=>{console.warn(`[zustand persist middleware] Unable to update item '${o.name}', the given storage is currently unavailable.`),r(...y)},n,a);const u=()=>{const y=o.partialize({...n()});return c.setItem(o.name,{state:y,version:o.version})},d=a.setState;a.setState=(y,T)=>{d(y,T),u()};const h=e((...y)=>{r(...y),u()},n,a);a.getInitialState=()=>h;let f;const b=()=>{var y,T;if(!c)return;l=!1,i.forEach(_=>{var A;return _((A=n())!=null?A:h)});const L=((T=o.onRehydrateStorage)==null?void 0:T.call(o,(y=n())!=null?y:h))||void 0;return Zr(c.getItem.bind(c))(o.name).then(_=>{if(_)if(typeof _.version=="number"&&_.version!==o.version){if(o.migrate){const A=o.migrate(_.state,_.version);return A instanceof Promise?A.then(R=>[!0,R]):[!0,A]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,_.state];return[!1,void 0]}).then(_=>{var A;const[R,I]=_;if(f=o.merge(I,(A=n())!=null?A:h),r(f,!0),R)return u()}).then(()=>{L==null||L(f,void 0),f=n(),l=!0,s.forEach(_=>_(f))}).catch(_=>{L==null||L(void 0,_)})};return a.persist={setOptions:y=>{o={...o,...y},y.storage&&(c=y.storage)},clearStorage:()=>{c==null||c.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>b(),hasHydrated:()=>l,onHydrate:y=>(i.add(y),()=>{i.delete(y)}),onFinishHydration:y=>(s.add(y),()=>{s.delete(y)})},o.skipHydration||b(),f||h},el=Zi,tl=tr()(el(e=>({theme:"system",language:"en",showPropertyPanel:!0,showNodeSearchBar:!0,showLegend:!1,showNodeLabel:!0,enableNodeDrag:!0,showEdgeLabel:!1,enableHideUnselectedEdges:!0,enableEdgeEvents:!1,minEdgeSize:1,maxEdgeSize:1,graphQueryMaxDepth:3,graphMaxNodes:1e3,graphLayoutMaxIterations:15,queryLabel:Yn,enableHealthCheck:!0,apiKey:null,currentTab:"documents",showFileName:!1,retrievalHistory:[],querySettings:{mode:"global",response_type:"Multiple Paragraphs",top_k:10,max_token_for_text_unit:4e3,max_token_for_global_context:4e3,max_token_for_local_context:4e3,only_need_context:!1,only_need_prompt:!1,stream:!0,history_turns:3,hl_keywords:[],ll_keywords:[],user_prompt:""},setTheme:t=>e({theme:t}),setLanguage:t=>{e({language:t}),Ji(async()=>{const{default:r}=await import("./utils-vendor-BysuhMZA.js").then(n=>n.d);return{default:r}},__vite__mapDeps([0,1])).then(({default:r})=>{r.language!==t&&r.changeLanguage(t)})},setGraphLayoutMaxIterations:t=>e({graphLayoutMaxIterations:t}),setQueryLabel:t=>e({queryLabel:t}),setGraphQueryMaxDepth:t=>e({graphQueryMaxDepth:t}),setGraphMaxNodes:t=>e({graphMaxNodes:t}),setMinEdgeSize:t=>e({minEdgeSize:t}),setMaxEdgeSize:t=>e({maxEdgeSize:t}),setEnableHealthCheck:t=>e({enableHealthCheck:t}),setApiKey:t=>e({apiKey:t}),setCurrentTab:t=>e({currentTab:t}),setRetrievalHistory:t=>e({retrievalHistory:t}),updateQuerySettings:t=>e(r=>({querySettings:{...r.querySettings,...t}})),setShowFileName:t=>e({showFileName:t}),setShowLegend:t=>e({showLegend:t})}),{name:"settings-storage",storage:Ea(()=>localStorage),version:13,migrate:(e,t)=>(t<2&&(e.showEdgeLabel=!1),t<3&&(e.queryLabel=Yn),t<4&&(e.showPropertyPanel=!0,e.showNodeSearchBar=!0,e.showNodeLabel=!0,e.enableHealthCheck=!0,e.apiKey=null),t<5&&(e.currentTab="documents"),t<6&&(e.querySettings={mode:"global",response_type:"Multiple Paragraphs",top_k:10,max_token_for_text_unit:4e3,max_token_for_global_context:4e3,max_token_for_local_context:4e3,only_need_context:!1,only_need_prompt:!1,stream:!0,history_turns:3,hl_keywords:[],ll_keywords:[]},e.retrievalHistory=[]),t<7&&(e.graphQueryMaxDepth=3,e.graphLayoutMaxIterations=15),t<8&&(e.graphMinDegree=0,e.language="en"),t<9&&(e.showFileName=!1),t<10&&(delete e.graphMinDegree,e.graphMaxNodes=1e3),t<11&&(e.minEdgeSize=1,e.maxEdgeSize=1),t<12&&(e.retrievalHistory=[]),t<13&&e.querySettings&&(e.querySettings.user_prompt=""),e)})),re=En(tl);class rl{constructor(){$e(this,"nodes",[]);$e(this,"edges",[]);$e(this,"nodeIdMap",{});$e(this,"edgeIdMap",{});$e(this,"edgeDynamicIdMap",{});$e(this,"getNode",t=>{const r=this.nodeIdMap[t];if(r!==void 0)return this.nodes[r]});$e(this,"getEdge",(t,r=!0)=>{const n=r?this.edgeDynamicIdMap[t]:this.edgeIdMap[t];if(n!==void 0)return this.edges[n]});$e(this,"buildDynamicMap",()=>{this.edgeDynamicIdMap={};for(let t=0;t({selectedNode:null,focusedNode:null,selectedEdge:null,focusedEdge:null,moveToSelectedNode:!1,isFetching:!1,graphIsEmpty:!1,lastSuccessfulQueryLabel:"",graphDataFetchAttempted:!1,labelsFetchAttempted:!1,rawGraph:null,sigmaGraph:null,sigmaInstance:null,allDatabaseLabels:["*"],typeColorMap:new Map,searchEngine:null,setGraphIsEmpty:r=>e({graphIsEmpty:r}),setLastSuccessfulQueryLabel:r=>e({lastSuccessfulQueryLabel:r}),setIsFetching:r=>e({isFetching:r}),setSelectedNode:(r,n)=>e({selectedNode:r,moveToSelectedNode:n}),setFocusedNode:r=>e({focusedNode:r}),setSelectedEdge:r=>e({selectedEdge:r}),setFocusedEdge:r=>e({focusedEdge:r}),clearSelection:()=>e({selectedNode:null,focusedNode:null,selectedEdge:null,focusedEdge:null}),reset:()=>{e({selectedNode:null,focusedNode:null,selectedEdge:null,focusedEdge:null,rawGraph:null,sigmaGraph:null,searchEngine:null,moveToSelectedNode:!1,graphIsEmpty:!1})},setRawGraph:r=>e({rawGraph:r}),setSigmaGraph:r=>{e({sigmaGraph:r})},setAllDatabaseLabels:r=>e({allDatabaseLabels:r}),fetchAllDatabaseLabels:async()=>{try{console.log("Fetching all database labels...");const r=await al();e({allDatabaseLabels:["*",...r]});return}catch(r){throw console.error("Failed to fetch all database labels:",r),e({allDatabaseLabels:["*"]}),r}},setMoveToSelectedNode:r=>e({moveToSelectedNode:r}),setSigmaInstance:r=>e({sigmaInstance:r}),setTypeColorMap:r=>e({typeColorMap:r}),setSearchEngine:r=>e({searchEngine:r}),resetSearchEngine:()=>e({searchEngine:null}),setGraphDataFetchAttempted:r=>e({graphDataFetchAttempted:r}),setLabelsFetchAttempted:r=>e({labelsFetchAttempted:r}),nodeToExpand:null,nodeToPrune:null,triggerNodeExpand:r=>e({nodeToExpand:r}),triggerNodePrune:r=>e({nodeToPrune:r}),graphDataVersion:0,incrementGraphDataVersion:()=>e(r=>({graphDataVersion:r.graphDataVersion+1})),updateNodeAndSelect:async(r,n,a,o)=>{const l=t(),{sigmaGraph:i,rawGraph:s}=l;if(!(!i||!s||!i.hasNode(r)))try{const c=i.getNodeAttributes(r);if(console.log("updateNodeAndSelect",r,n,a,o),r===n&&a==="entity_id"){i.addNode(o,{...c,label:o});const u=[];i.forEachEdge(r,(h,f,b,y)=>{const T=b===r?y:b,L=b===r,_=h,A=s.edgeDynamicIdMap[_],R=i.addEdge(L?o:T,L?T:o,f);A!==void 0&&u.push({originalDynamicId:_,newEdgeId:R,edgeIndex:A}),i.dropEdge(h)}),i.dropNode(r);const d=s.nodeIdMap[r];d!==void 0&&(s.nodes[d].id=o,s.nodes[d].labels=[o],s.nodes[d].properties.entity_id=o,delete s.nodeIdMap[r],s.nodeIdMap[o]=d),u.forEach(({originalDynamicId:h,newEdgeId:f,edgeIndex:b})=>{s.edges[b]&&(s.edges[b].source===r&&(s.edges[b].source=o),s.edges[b].target===r&&(s.edges[b].target=o),s.edges[b].dynamicId=f,delete s.edgeDynamicIdMap[h],s.edgeDynamicIdMap[f]=b)}),e({selectedNode:o,moveToSelectedNode:!0})}else{const u=s.nodeIdMap[String(r)];u!==void 0&&(s.nodes[u].properties[a]=o,a==="entity_id"&&(s.nodes[u].labels=[o],i.setNodeAttribute(String(r),"label",o))),e(d=>({graphDataVersion:d.graphDataVersion+1}))}}catch(c){throw console.error("Error updating node in graph:",c),new Error("Failed to update node in graph")}},updateEdgeAndSelect:async(r,n,a,o,l,i)=>{const s=t(),{sigmaGraph:c,rawGraph:u}=s;if(!(!c||!u))try{const d=u.edgeIdMap[String(r)];d!==void 0&&u.edges[d]&&(u.edges[d].properties[l]=i,n!==void 0&&l==="keywords"&&c.setEdgeAttribute(n,"label",i)),e(h=>({graphDataVersion:h.graphDataVersion+1})),e({selectedEdge:n})}catch(d){throw console.error(`Error updating edge ${a}->${o} in graph:`,d),new Error("Failed to update edge in graph")}}})),ee=En(nl);class ol{constructor(){$e(this,"navigate",null)}setNavigate(t){this.navigate=t}resetAllApplicationState(t=!1){console.log("Resetting all application state...");const r=ee.getState(),n=r.sigmaInstance;r.reset(),r.setGraphDataFetchAttempted(!1),r.setLabelsFetchAttempted(!1),r.setSigmaInstance(null),r.setIsFetching(!1),_n.getState().clear(),t||re.getState().setRetrievalHistory([]),sessionStorage.clear(),n&&(n.getGraph().clear(),n.kill(),ee.getState().setSigmaInstance(null))}navigateToLogin(){if(!this.navigate){console.error("Navigation function not set");return}const t=qt.getState().username;t&&localStorage.setItem("LIGHTRAG-PREVIOUS-USER",t),this.resetAllApplicationState(!0),qt.getState().logout(),this.navigate("/login")}navigateToHome(){if(!this.navigate){console.error("Navigation function not set");return}this.navigate("/")}}const _a=new ol,Ug="Invalid API Key",qg="API Key required",_e=Bi.create({baseURL:Kr,headers:{"Content-Type":"application/json"}});_e.interceptors.request.use(e=>{const t=re.getState().apiKey,r=localStorage.getItem("LIGHTRAG-API-TOKEN");return r&&(e.headers.Authorization=`Bearer ${r}`),t&&(e.headers["X-API-Key"]=t),e});_e.interceptors.response.use(e=>e,e=>{var t,r,n,a;if(e.response){if(((t=e.response)==null?void 0:t.status)===401){if((n=(r=e.config)==null?void 0:r.url)!=null&&n.includes("/login"))throw e;return _a.navigateToLogin(),Promise.reject(new Error("Authentication required"))}throw new Error(`${e.response.status} ${e.response.statusText} ${JSON.stringify(e.response.data)} ${(a=e.config)==null?void 0:a.url}`)}throw e});const Ca=async(e,t,r)=>(await _e.get(`/graphs?label=${encodeURIComponent(e)}&max_depth=${t}&max_nodes=${r}`)).data,al=async()=>(await _e.get("/graph/label/list")).data,sl=async()=>{try{return(await _e.get("/health")).data}catch(e){return{status:"error",message:rr(e)}}},Wg=async()=>(await _e.get("/documents")).data,Xg=async()=>(await _e.post("/documents/scan")).data,Yg=async e=>(await _e.post("/query",e)).data,Kg=async(e,t,r)=>{const n=re.getState().apiKey,a=localStorage.getItem("LIGHTRAG-API-TOKEN"),o={"Content-Type":"application/json",Accept:"application/x-ndjson"};a&&(o.Authorization=`Bearer ${a}`),n&&(o["X-API-Key"]=n);try{const l=await fetch(`${Kr}/query/stream`,{method:"POST",headers:o,body:JSON.stringify(e)});if(!l.ok){if(l.status===401)throw _a.navigateToLogin(),new Error("Authentication required");let u="Unknown error";try{u=await l.text()}catch{}const d=`${Kr}/query/stream`;throw new Error(`${l.status} ${l.statusText} ${JSON.stringify({error:u})} ${d}`)}if(!l.body)throw new Error("Response body is null");const i=l.body.getReader(),s=new TextDecoder;let c="";for(;;){const{done:u,value:d}=await i.read();if(u)break;c+=s.decode(d,{stream:!0});const h=c.split(` `);c=h.pop()||"";for(const f of h)if(f.trim())try{const b=JSON.parse(f);b.response?t(b.response):b.error&&r&&r(b.error)}catch(b){console.error("Error parsing stream chunk:",f,b),r&&r(`Error parsing server response: ${f}`)}}if(c.trim())try{const u=JSON.parse(c);u.response?t(u.response):u.error&&r&&r(u.error)}catch(u){console.error("Error parsing final chunk:",c,u),r&&r(`Error parsing final server response: ${c}`)}}catch(l){const i=rr(l);if(i==="Authentication required"){console.error("Authentication required for stream request"),r&&r("Authentication required");return}const s=i.match(/^(\d{3})\s/);if(s){const c=parseInt(s[1],10);let u=i;switch(c){case 403:u="You do not have permission to access this resource (403 Forbidden)",console.error("Permission denied for stream request:",i);break;case 404:u="The requested resource does not exist (404 Not Found)",console.error("Resource not found for stream request:",i);break;case 429:u="Too many requests, please try again later (429 Too Many Requests)",console.error("Rate limited for stream request:",i);break;case 500:case 502:case 503:case 504:u=`Server error, please try again later (${c})`,console.error("Server error for stream request:",i);break;default:console.error("Stream request failed with status code:",c,i)}r&&r(u);return}if(i.includes("NetworkError")||i.includes("Failed to fetch")||i.includes("Network request failed")){console.error("Network error for stream request:",i),r&&r("Network connection error, please check your internet connection");return}if(i.includes("Error parsing")||i.includes("SyntaxError")){console.error("JSON parsing error in stream:",i),r&&r("Error processing response data");return}console.error("Unhandled stream error:",i),r?r(i):console.error("No error handler provided for stream error:",i)}},Qg=async(e,t)=>{const r=new FormData;return r.append("file",e),(await _e.post("/documents/upload",r,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:t!==void 0?a=>{const o=Math.round(a.loaded*100/a.total);t(o)}:void 0})).data},Jg=async()=>(await _e.delete("/documents")).data,Zg=async e=>(await _e.post("/documents/clear_cache",{modes:e})).data,ep=async()=>{try{const e=await _e.get("/auth-status",{timeout:5e3,headers:{Accept:"application/json"}});if((e.headers["content-type"]||"").includes("text/html"))return console.warn("Received HTML response instead of JSON for auth-status endpoint"),{auth_configured:!0,auth_mode:"enabled"};if(e.data&&typeof e.data=="object"&&"auth_configured"in e.data&&typeof e.data.auth_configured=="boolean"){if(e.data.auth_configured)return e.data;if(e.data.access_token&&typeof e.data.access_token=="string")return e.data;console.warn("Auth not configured but no valid access token provided")}return console.warn("Received invalid auth status response:",e.data),{auth_configured:!0,auth_mode:"enabled"}}catch(e){return console.error("Failed to get auth status:",rr(e)),{auth_configured:!0,auth_mode:"enabled"}}},tp=async()=>(await _e.get("/documents/pipeline_status")).data,rp=async(e,t)=>{const r=new FormData;return r.append("username",e),r.append("password",t),(await _e.post("/login",r,{headers:{"Content-Type":"multipart/form-data"}})).data},il=async(e,t,r=!1)=>(await _e.post("/graph/entity/edit",{entity_name:e,updated_data:t,allow_rename:r})).data,ll=async(e,t,r)=>(await _e.post("/graph/relation/edit",{source_id:e,target_id:t,updated_data:r})).data,cl=async e=>{try{return(await _e.get(`/graph/entity/exists?name=${encodeURIComponent(e)}`)).data.exists}catch(t){return console.error("Error checking entity name:",t),!1}},ul=tr()(e=>({health:!0,message:null,messageTitle:null,lastCheckTime:Date.now(),status:null,pipelineBusy:!1,check:async()=>{const t=await sl();return t.status==="healthy"?((t.core_version||t.api_version)&&qt.getState().setVersion(t.core_version||null,t.api_version||null),("webui_title"in t||"webui_description"in t)&&qt.getState().setCustomTitle("webui_title"in t?t.webui_title??null:null,"webui_description"in t?t.webui_description??null:null),e({health:!0,message:null,messageTitle:null,lastCheckTime:Date.now(),status:t,pipelineBusy:t.pipeline_busy}),!0):(e({health:!1,message:t.message,messageTitle:"Backend Health Check Error!",lastCheckTime:Date.now(),status:null}),!1)},clear:()=>{e({health:!0,message:null,messageTitle:null})},setErrorMessage:(t,r)=>{e({health:!1,message:t,messageTitle:r})},setPipelineBusy:t=>{e({pipelineBusy:t})}})),_n=En(ul),ka=e=>{try{const t=e.split(".");return t.length!==3?{}:JSON.parse(atob(t[1]))}catch(t){return console.error("Error parsing token payload:",t),{}}},Ta=e=>ka(e).sub||null,dl=e=>ka(e).role==="guest",fl=()=>{const e=localStorage.getItem("LIGHTRAG-API-TOKEN"),t=localStorage.getItem("LIGHTRAG-CORE-VERSION"),r=localStorage.getItem("LIGHTRAG-API-VERSION"),n=localStorage.getItem("LIGHTRAG-WEBUI-TITLE"),a=localStorage.getItem("LIGHTRAG-WEBUI-DESCRIPTION"),o=e?Ta(e):null;return e?{isAuthenticated:!0,isGuestMode:dl(e),coreVersion:t,apiVersion:r,username:o,webuiTitle:n,webuiDescription:a}:{isAuthenticated:!1,isGuestMode:!1,coreVersion:t,apiVersion:r,username:null,webuiTitle:n,webuiDescription:a}},qt=tr(e=>{const t=fl();return{isAuthenticated:t.isAuthenticated,isGuestMode:t.isGuestMode,coreVersion:t.coreVersion,apiVersion:t.apiVersion,username:t.username,webuiTitle:t.webuiTitle,webuiDescription:t.webuiDescription,login:(r,n=!1,a=null,o=null,l=null,i=null)=>{localStorage.setItem("LIGHTRAG-API-TOKEN",r),a&&localStorage.setItem("LIGHTRAG-CORE-VERSION",a),o&&localStorage.setItem("LIGHTRAG-API-VERSION",o),l?localStorage.setItem("LIGHTRAG-WEBUI-TITLE",l):localStorage.removeItem("LIGHTRAG-WEBUI-TITLE"),i?localStorage.setItem("LIGHTRAG-WEBUI-DESCRIPTION",i):localStorage.removeItem("LIGHTRAG-WEBUI-DESCRIPTION");const s=Ta(r);e({isAuthenticated:!0,isGuestMode:n,username:s,coreVersion:a,apiVersion:o,webuiTitle:l,webuiDescription:i})},logout:()=>{localStorage.removeItem("LIGHTRAG-API-TOKEN");const r=localStorage.getItem("LIGHTRAG-CORE-VERSION"),n=localStorage.getItem("LIGHTRAG-API-VERSION"),a=localStorage.getItem("LIGHTRAG-WEBUI-TITLE"),o=localStorage.getItem("LIGHTRAG-WEBUI-DESCRIPTION");e({isAuthenticated:!1,isGuestMode:!1,username:null,coreVersion:r,apiVersion:n,webuiTitle:a,webuiDescription:o})},setVersion:(r,n)=>{r&&localStorage.setItem("LIGHTRAG-CORE-VERSION",r),n&&localStorage.setItem("LIGHTRAG-API-VERSION",n),e({coreVersion:r,apiVersion:n})},setCustomTitle:(r,n)=>{r?localStorage.setItem("LIGHTRAG-WEBUI-TITLE",r):localStorage.removeItem("LIGHTRAG-WEBUI-TITLE"),n?localStorage.setItem("LIGHTRAG-WEBUI-DESCRIPTION",n):localStorage.removeItem("LIGHTRAG-WEBUI-DESCRIPTION"),e({webuiTitle:r,webuiDescription:n})}}});var hl=e=>{switch(e){case"success":return ml;case"info":return yl;case"warning":return vl;case"error":return bl;default:return null}},gl=Array(12).fill(0),pl=({visible:e,className:t})=>W.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},W.createElement("div",{className:"sonner-spinner"},gl.map((r,n)=>W.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${n}`})))),ml=W.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},W.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),vl=W.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},W.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),yl=W.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},W.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),bl=W.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},W.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),wl=W.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},W.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),W.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),xl=()=>{let[e,t]=W.useState(document.hidden);return W.useEffect(()=>{let r=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",r),()=>window.removeEventListener("visibilitychange",r)},[]),e},en=1,Sl=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:r,...n}=e,a=typeof(e==null?void 0:e.id)=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:en++,o=this.toasts.find(i=>i.id===a),l=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(a)&&this.dismissedToasts.delete(a),o?this.toasts=this.toasts.map(i=>i.id===a?(this.publish({...i,...e,id:a,title:r}),{...i,...e,id:a,dismissible:l,title:r}):i):this.addToast({title:r,...n,dismissible:l,id:a}),a},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(r=>r({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let r;t.loading!==void 0&&(r=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let n=e instanceof Promise?e:e(),a=r!==void 0,o,l=n.then(async s=>{if(o=["resolve",s],W.isValidElement(s))a=!1,this.create({id:r,type:"default",message:s});else if(_l(s)&&!s.ok){a=!1;let c=typeof t.error=="function"?await t.error(`HTTP error! status: ${s.status}`):t.error,u=typeof t.description=="function"?await t.description(`HTTP error! status: ${s.status}`):t.description;this.create({id:r,type:"error",message:c,description:u})}else if(t.success!==void 0){a=!1;let c=typeof t.success=="function"?await t.success(s):t.success,u=typeof t.description=="function"?await t.description(s):t.description;this.create({id:r,type:"success",message:c,description:u})}}).catch(async s=>{if(o=["reject",s],t.error!==void 0){a=!1;let c=typeof t.error=="function"?await t.error(s):t.error,u=typeof t.description=="function"?await t.description(s):t.description;this.create({id:r,type:"error",message:c,description:u})}}).finally(()=>{var s;a&&(this.dismiss(r),r=void 0),(s=t.finally)==null||s.call(t)}),i=()=>new Promise((s,c)=>l.then(()=>o[0]==="reject"?c(o[1]):s(o[1])).catch(c));return typeof r!="string"&&typeof r!="number"?{unwrap:i}:Object.assign(r,{unwrap:i})},this.custom=(e,t)=>{let r=(t==null?void 0:t.id)||en++;return this.create({jsx:e(r),id:r,...t}),r},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Ae=new Sl,El=(e,t)=>{let r=(t==null?void 0:t.id)||en++;return Ae.addToast({title:e,...t,id:r}),r},_l=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",Cl=El,kl=()=>Ae.toasts,Tl=()=>Ae.getActiveToasts(),rt=Object.assign(Cl,{success:Ae.success,info:Ae.info,warning:Ae.warning,error:Ae.error,custom:Ae.custom,message:Ae.message,promise:Ae.promise,dismiss:Ae.dismiss,loading:Ae.loading},{getHistory:kl,getToasts:Tl});function Rl(e,{insertAt:t}={}){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t==="top"&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}Rl(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} -`);function Lt(e){return e.label!==void 0}var Al=3,jl="32px",Il="16px",Qn=4e3,Ll=356,Nl=14,Pl=20,zl=200;function Fe(...e){return e.filter(Boolean).join(" ")}function Dl(e){let[t,r]=e.split("-"),n=[];return t&&n.push(t),r&&n.push(r),n}var Ol=e=>{var t,r,n,a,o,l,i,s,c,u,d;let{invert:h,toast:f,unstyled:b,interacting:y,setHeights:T,visibleToasts:N,heights:_,index:A,toasts:R,expanded:I,removeToast:D,defaultRichColors:m,closeButton:E,style:x,cancelButtonStyle:k,actionButtonStyle:L,className:j="",descriptionClassName:w="",duration:V,position:K,gap:O,loadingIcon:C,expandByDefault:S,classNames:H,icons:ae,closeButtonAriaLabel:$="Close toast",pauseWhenPageIsHidden:v}=e,[z,B]=W.useState(null),[M,J]=W.useState(null),[X,Y]=W.useState(!1),[ie,ne]=W.useState(!1),[se,F]=W.useState(!1),[Q,q]=W.useState(!1),[U,P]=W.useState(!1),[oe,ue]=W.useState(0),[te,Z]=W.useState(0),G=W.useRef(f.duration||V||Qn),ge=W.useRef(null),pe=W.useRef(null),ye=A===0,we=A+1<=N,de=f.type,me=f.dismissible!==!1,Ie=f.className||"",ke=f.descriptionClassName||"",Te=W.useMemo(()=>_.findIndex(le=>le.toastId===f.id)||0,[_,f.id]),Pe=W.useMemo(()=>{var le;return(le=f.closeButton)!=null?le:E},[f.closeButton,E]),Ye=W.useMemo(()=>f.duration||V||Qn,[f.duration,V]),Ke=W.useRef(0),Re=W.useRef(0),st=W.useRef(0),ze=W.useRef(null),[ii,li]=K.split("-"),Bn=W.useMemo(()=>_.reduce((le,he,ve)=>ve>=Te?le:le+he.height,0),[_,Te]),Vn=xl(),ci=f.invert||h,hr=de==="loading";Re.current=W.useMemo(()=>Te*O+Bn,[Te,Bn]),W.useEffect(()=>{G.current=Ye},[Ye]),W.useEffect(()=>{Y(!0)},[]),W.useEffect(()=>{let le=pe.current;if(le){let he=le.getBoundingClientRect().height;return Z(he),T(ve=>[{toastId:f.id,height:he,position:f.position},...ve]),()=>T(ve=>ve.filter(De=>De.toastId!==f.id))}},[T,f.id]),W.useLayoutEffect(()=>{if(!X)return;let le=pe.current,he=le.style.height;le.style.height="auto";let ve=le.getBoundingClientRect().height;le.style.height=he,Z(ve),T(De=>De.find(Oe=>Oe.toastId===f.id)?De.map(Oe=>Oe.toastId===f.id?{...Oe,height:ve}:Oe):[{toastId:f.id,height:ve,position:f.position},...De])},[X,f.title,f.description,T,f.id]);let Qe=W.useCallback(()=>{ne(!0),ue(Re.current),T(le=>le.filter(he=>he.toastId!==f.id)),setTimeout(()=>{D(f)},zl)},[f,D,T,Re]);W.useEffect(()=>{if(f.promise&&de==="loading"||f.duration===1/0||f.type==="loading")return;let le;return I||y||v&&Vn?(()=>{if(st.current{var he;(he=f.onAutoClose)==null||he.call(f,f),Qe()},G.current)),()=>clearTimeout(le)},[I,y,f,de,v,Vn,Qe]),W.useEffect(()=>{f.delete&&Qe()},[Qe,f.delete]);function ui(){var le,he,ve;return ae!=null&&ae.loading?W.createElement("div",{className:Fe(H==null?void 0:H.loader,(le=f==null?void 0:f.classNames)==null?void 0:le.loader,"sonner-loader"),"data-visible":de==="loading"},ae.loading):C?W.createElement("div",{className:Fe(H==null?void 0:H.loader,(he=f==null?void 0:f.classNames)==null?void 0:he.loader,"sonner-loader"),"data-visible":de==="loading"},C):W.createElement(pl,{className:Fe(H==null?void 0:H.loader,(ve=f==null?void 0:f.classNames)==null?void 0:ve.loader),visible:de==="loading"})}return W.createElement("li",{tabIndex:0,ref:pe,className:Fe(j,Ie,H==null?void 0:H.toast,(t=f==null?void 0:f.classNames)==null?void 0:t.toast,H==null?void 0:H.default,H==null?void 0:H[de],(r=f==null?void 0:f.classNames)==null?void 0:r[de]),"data-sonner-toast":"","data-rich-colors":(n=f.richColors)!=null?n:m,"data-styled":!(f.jsx||f.unstyled||b),"data-mounted":X,"data-promise":!!f.promise,"data-swiped":U,"data-removed":ie,"data-visible":we,"data-y-position":ii,"data-x-position":li,"data-index":A,"data-front":ye,"data-swiping":se,"data-dismissible":me,"data-type":de,"data-invert":ci,"data-swipe-out":Q,"data-swipe-direction":M,"data-expanded":!!(I||S&&X),style:{"--index":A,"--toasts-before":A,"--z-index":R.length-A,"--offset":`${ie?oe:Re.current}px`,"--initial-height":S?"auto":`${te}px`,...x,...f.style},onDragEnd:()=>{F(!1),B(null),ze.current=null},onPointerDown:le=>{hr||!me||(ge.current=new Date,ue(Re.current),le.target.setPointerCapture(le.pointerId),le.target.tagName!=="BUTTON"&&(F(!0),ze.current={x:le.clientX,y:le.clientY}))},onPointerUp:()=>{var le,he,ve,De;if(Q||!me)return;ze.current=null;let Oe=Number(((le=pe.current)==null?void 0:le.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Je=Number(((he=pe.current)==null?void 0:he.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),it=new Date().getTime()-((ve=ge.current)==null?void 0:ve.getTime()),Ge=z==="x"?Oe:Je,Ze=Math.abs(Ge)/it;if(Math.abs(Ge)>=Pl||Ze>.11){ue(Re.current),(De=f.onDismiss)==null||De.call(f,f),J(z==="x"?Oe>0?"right":"left":Je>0?"down":"up"),Qe(),q(!0),P(!1);return}F(!1),B(null)},onPointerMove:le=>{var he,ve,De,Oe;if(!ze.current||!me||((he=window.getSelection())==null?void 0:he.toString().length)>0)return;let Je=le.clientY-ze.current.y,it=le.clientX-ze.current.x,Ge=(ve=e.swipeDirections)!=null?ve:Dl(K);!z&&(Math.abs(it)>1||Math.abs(Je)>1)&&B(Math.abs(it)>Math.abs(Je)?"x":"y");let Ze={x:0,y:0};z==="y"?(Ge.includes("top")||Ge.includes("bottom"))&&(Ge.includes("top")&&Je<0||Ge.includes("bottom")&&Je>0)&&(Ze.y=Je):z==="x"&&(Ge.includes("left")||Ge.includes("right"))&&(Ge.includes("left")&&it<0||Ge.includes("right")&&it>0)&&(Ze.x=it),(Math.abs(Ze.x)>0||Math.abs(Ze.y)>0)&&P(!0),(De=pe.current)==null||De.style.setProperty("--swipe-amount-x",`${Ze.x}px`),(Oe=pe.current)==null||Oe.style.setProperty("--swipe-amount-y",`${Ze.y}px`)}},Pe&&!f.jsx?W.createElement("button",{"aria-label":$,"data-disabled":hr,"data-close-button":!0,onClick:hr||!me?()=>{}:()=>{var le;Qe(),(le=f.onDismiss)==null||le.call(f,f)},className:Fe(H==null?void 0:H.closeButton,(a=f==null?void 0:f.classNames)==null?void 0:a.closeButton)},(o=ae==null?void 0:ae.close)!=null?o:wl):null,f.jsx||p.isValidElement(f.title)?f.jsx?f.jsx:typeof f.title=="function"?f.title():f.title:W.createElement(W.Fragment,null,de||f.icon||f.promise?W.createElement("div",{"data-icon":"",className:Fe(H==null?void 0:H.icon,(l=f==null?void 0:f.classNames)==null?void 0:l.icon)},f.promise||f.type==="loading"&&!f.icon?f.icon||ui():null,f.type!=="loading"?f.icon||(ae==null?void 0:ae[de])||hl(de):null):null,W.createElement("div",{"data-content":"",className:Fe(H==null?void 0:H.content,(i=f==null?void 0:f.classNames)==null?void 0:i.content)},W.createElement("div",{"data-title":"",className:Fe(H==null?void 0:H.title,(s=f==null?void 0:f.classNames)==null?void 0:s.title)},typeof f.title=="function"?f.title():f.title),f.description?W.createElement("div",{"data-description":"",className:Fe(w,ke,H==null?void 0:H.description,(c=f==null?void 0:f.classNames)==null?void 0:c.description)},typeof f.description=="function"?f.description():f.description):null),p.isValidElement(f.cancel)?f.cancel:f.cancel&&Lt(f.cancel)?W.createElement("button",{"data-button":!0,"data-cancel":!0,style:f.cancelButtonStyle||k,onClick:le=>{var he,ve;Lt(f.cancel)&&me&&((ve=(he=f.cancel).onClick)==null||ve.call(he,le),Qe())},className:Fe(H==null?void 0:H.cancelButton,(u=f==null?void 0:f.classNames)==null?void 0:u.cancelButton)},f.cancel.label):null,p.isValidElement(f.action)?f.action:f.action&&Lt(f.action)?W.createElement("button",{"data-button":!0,"data-action":!0,style:f.actionButtonStyle||L,onClick:le=>{var he,ve;Lt(f.action)&&((ve=(he=f.action).onClick)==null||ve.call(he,le),!le.defaultPrevented&&Qe())},className:Fe(H==null?void 0:H.actionButton,(d=f==null?void 0:f.classNames)==null?void 0:d.actionButton)},f.action.label):null))};function Jn(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Gl(e,t){let r={};return[e,t].forEach((n,a)=>{let o=a===1,l=o?"--mobile-offset":"--offset",i=o?Il:jl;function s(c){["top","right","bottom","left"].forEach(u=>{r[`${l}-${u}`]=typeof c=="number"?`${c}px`:c})}typeof n=="number"||typeof n=="string"?s(n):typeof n=="object"?["top","right","bottom","left"].forEach(c=>{n[c]===void 0?r[`${l}-${c}`]=i:r[`${l}-${c}`]=typeof n[c]=="number"?`${n[c]}px`:n[c]}):s(i)}),r}var np=p.forwardRef(function(e,t){let{invert:r,position:n="bottom-right",hotkey:a=["altKey","KeyT"],expand:o,closeButton:l,className:i,offset:s,mobileOffset:c,theme:u="light",richColors:d,duration:h,style:f,visibleToasts:b=Al,toastOptions:y,dir:T=Jn(),gap:N=Nl,loadingIcon:_,icons:A,containerAriaLabel:R="Notifications",pauseWhenPageIsHidden:I}=e,[D,m]=W.useState([]),E=W.useMemo(()=>Array.from(new Set([n].concat(D.filter(v=>v.position).map(v=>v.position)))),[D,n]),[x,k]=W.useState([]),[L,j]=W.useState(!1),[w,V]=W.useState(!1),[K,O]=W.useState(u!=="system"?u:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),C=W.useRef(null),S=a.join("+").replace(/Key/g,"").replace(/Digit/g,""),H=W.useRef(null),ae=W.useRef(!1),$=W.useCallback(v=>{m(z=>{var B;return(B=z.find(M=>M.id===v.id))!=null&&B.delete||Ae.dismiss(v.id),z.filter(({id:M})=>M!==v.id)})},[]);return W.useEffect(()=>Ae.subscribe(v=>{if(v.dismiss){m(z=>z.map(B=>B.id===v.id?{...B,delete:!0}:B));return}setTimeout(()=>{hi.flushSync(()=>{m(z=>{let B=z.findIndex(M=>M.id===v.id);return B!==-1?[...z.slice(0,B),{...z[B],...v},...z.slice(B+1)]:[v,...z]})})})}),[]),W.useEffect(()=>{if(u!=="system"){O(u);return}if(u==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?O("dark"):O("light")),typeof window>"u")return;let v=window.matchMedia("(prefers-color-scheme: dark)");try{v.addEventListener("change",({matches:z})=>{O(z?"dark":"light")})}catch{v.addListener(({matches:B})=>{try{O(B?"dark":"light")}catch(M){console.error(M)}})}},[u]),W.useEffect(()=>{D.length<=1&&j(!1)},[D]),W.useEffect(()=>{let v=z=>{var B,M;a.every(J=>z[J]||z.code===J)&&(j(!0),(B=C.current)==null||B.focus()),z.code==="Escape"&&(document.activeElement===C.current||(M=C.current)!=null&&M.contains(document.activeElement))&&j(!1)};return document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)},[a]),W.useEffect(()=>{if(C.current)return()=>{H.current&&(H.current.focus({preventScroll:!0}),H.current=null,ae.current=!1)}},[C.current]),W.createElement("section",{ref:t,"aria-label":`${R} ${S}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},E.map((v,z)=>{var B;let[M,J]=v.split("-");return D.length?W.createElement("ol",{key:v,dir:T==="auto"?Jn():T,tabIndex:-1,ref:C,className:i,"data-sonner-toaster":!0,"data-theme":K,"data-y-position":M,"data-lifted":L&&D.length>1&&!o,"data-x-position":J,style:{"--front-toast-height":`${((B=x[0])==null?void 0:B.height)||0}px`,"--width":`${Ll}px`,"--gap":`${N}px`,...f,...Gl(s,c)},onBlur:X=>{ae.current&&!X.currentTarget.contains(X.relatedTarget)&&(ae.current=!1,H.current&&(H.current.focus({preventScroll:!0}),H.current=null))},onFocus:X=>{X.target instanceof HTMLElement&&X.target.dataset.dismissible==="false"||ae.current||(ae.current=!0,H.current=X.relatedTarget)},onMouseEnter:()=>j(!0),onMouseMove:()=>j(!0),onMouseLeave:()=>{w||j(!1)},onDragEnd:()=>j(!1),onPointerDown:X=>{X.target instanceof HTMLElement&&X.target.dataset.dismissible==="false"||V(!0)},onPointerUp:()=>V(!1)},D.filter(X=>!X.position&&z===0||X.position===v).map((X,Y)=>{var ie,ne;return W.createElement(Ol,{key:X.id,icons:A,index:Y,toast:X,defaultRichColors:d,duration:(ie=y==null?void 0:y.duration)!=null?ie:h,className:y==null?void 0:y.className,descriptionClassName:y==null?void 0:y.descriptionClassName,invert:r,visibleToasts:b,closeButton:(ne=y==null?void 0:y.closeButton)!=null?ne:l,interacting:w,position:v,style:y==null?void 0:y.style,unstyled:y==null?void 0:y.unstyled,classNames:y==null?void 0:y.classNames,cancelButtonStyle:y==null?void 0:y.cancelButtonStyle,actionButtonStyle:y==null?void 0:y.actionButtonStyle,removeToast:$,toasts:D.filter(se=>se.position==X.position),heights:x.filter(se=>se.position==X.position),setHeights:k,expandByDefault:o,gap:N,loadingIcon:_,expanded:L,pauseWhenPageIsHidden:I,swipeDirections:e.swipeDirections})})):null}))});const Fl={theme:"system",setTheme:()=>null},Ra=p.createContext(Fl);function op({children:e,...t}){const r=re.use.theme(),n=re.use.setTheme();p.useEffect(()=>{const o=window.document.documentElement;if(o.classList.remove("light","dark"),r==="system"){const l=window.matchMedia("(prefers-color-scheme: dark)"),i=s=>{o.classList.remove("light","dark"),o.classList.add(s.matches?"dark":"light")};return o.classList.add(l.matches?"dark":"light"),l.addEventListener("change",i),()=>l.removeEventListener("change",i)}else o.classList.add(r)},[r]);const a={theme:r,setTheme:n};return g.jsx(Ra.Provider,{...t,value:a,children:e})}const $l=(e,t,r,n)=>{var o,l,i,s;const a=[r,{code:t,...n||{}}];if((l=(o=e==null?void 0:e.services)==null?void 0:o.logger)!=null&&l.forward)return e.services.logger.forward(a,"warn","react-i18next::",!0);ht(a[0])&&(a[0]=`react-i18next:: ${a[0]}`),(s=(i=e==null?void 0:e.services)==null?void 0:i.logger)!=null&&s.warn?e.services.logger.warn(...a):console!=null&&console.warn&&console.warn(...a)},Zn={},tn=(e,t,r,n)=>{ht(r)&&Zn[r]||(ht(r)&&(Zn[r]=new Date),$l(e,t,r,n))},Aa=(e,t)=>()=>{if(e.isInitialized)t();else{const r=()=>{setTimeout(()=>{e.off("initialized",r)},0),t()};e.on("initialized",r)}},rn=(e,t,r)=>{e.loadNamespaces(t,Aa(e,r))},eo=(e,t,r,n)=>{if(ht(r)&&(r=[r]),e.options.preload&&e.options.preload.indexOf(t)>-1)return rn(e,r,n);r.forEach(a=>{e.options.ns.indexOf(a)<0&&e.options.ns.push(a)}),e.loadLanguages(t,Aa(e,n))},Ml=(e,t,r={})=>!t.languages||!t.languages.length?(tn(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:r.lng,precheck:(n,a)=>{var o;if(((o=r.bindI18n)==null?void 0:o.indexOf("languageChanging"))>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!a(n.isLanguageChangingTo,e))return!1}}),ht=e=>typeof e=="string",Hl=e=>typeof e=="object"&&e!==null,Bl=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Vl={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},Ul=e=>Vl[e],ql=e=>e.replace(Bl,Ul);let nn={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:ql};const Wl=(e={})=>{nn={...nn,...e}},Xl=()=>nn;let ja;const Yl=e=>{ja=e},Kl=()=>ja,ap={type:"3rdParty",init(e){Wl(e.options.react),Yl(e)}},Ql=p.createContext();class Jl{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(r=>{this.usedNamespaces[r]||(this.usedNamespaces[r]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const Zl=(e,t)=>{const r=p.useRef();return p.useEffect(()=>{r.current=e},[e,t]),r.current},Ia=(e,t,r,n)=>e.getFixedT(t,r,n),ec=(e,t,r,n)=>p.useCallback(Ia(e,t,r,n),[e,t,r,n]),xe=(e,t={})=>{var R,I,D,m;const{i18n:r}=t,{i18n:n,defaultNS:a}=p.useContext(Ql)||{},o=r||n||Kl();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new Jl),!o){tn(o,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const E=(k,L)=>ht(L)?L:Hl(L)&&ht(L.defaultValue)?L.defaultValue:Array.isArray(k)?k[k.length-1]:k,x=[E,{},!1];return x.t=E,x.i18n={},x.ready=!1,x}(R=o.options.react)!=null&&R.wait&&tn(o,"DEPRECATED_OPTION","useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const l={...Xl(),...o.options.react,...t},{useSuspense:i,keyPrefix:s}=l;let c=a||((I=o.options)==null?void 0:I.defaultNS);c=ht(c)?[c]:c||["translation"],(m=(D=o.reportNamespaces).addUsedNamespaces)==null||m.call(D,c);const u=(o.isInitialized||o.initializedStoreOnce)&&c.every(E=>Ml(E,o,l)),d=ec(o,t.lng||null,l.nsMode==="fallback"?c:c[0],s),h=()=>d,f=()=>Ia(o,t.lng||null,l.nsMode==="fallback"?c:c[0],s),[b,y]=p.useState(h);let T=c.join();t.lng&&(T=`${t.lng}${T}`);const N=Zl(T),_=p.useRef(!0);p.useEffect(()=>{const{bindI18n:E,bindI18nStore:x}=l;_.current=!0,!u&&!i&&(t.lng?eo(o,t.lng,c,()=>{_.current&&y(f)}):rn(o,c,()=>{_.current&&y(f)})),u&&N&&N!==T&&_.current&&y(f);const k=()=>{_.current&&y(f)};return E&&(o==null||o.on(E,k)),x&&(o==null||o.store.on(x,k)),()=>{_.current=!1,o&&(E==null||E.split(" ").forEach(L=>o.off(L,k))),x&&o&&x.split(" ").forEach(L=>o.store.off(L,k))}},[o,T]),p.useEffect(()=>{_.current&&u&&y(h)},[o,s,u]);const A=[b,o,u];if(A.t=b,A.i18n=o,A.ready=u,u||!u&&!i)return A;throw new Promise(E=>{t.lng?eo(o,t.lng,c,()=>E()):rn(o,c,()=>E())})},to=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,ro=Sa,tc=(e,t)=>r=>{var n;if((t==null?void 0:t.variants)==null)return ro(e,r==null?void 0:r.class,r==null?void 0:r.className);const{variants:a,defaultVariants:o}=t,l=Object.keys(a).map(c=>{const u=r==null?void 0:r[c],d=o==null?void 0:o[c];if(u===null)return null;const h=to(u)||to(d);return a[c][h]}),i=r&&Object.entries(r).reduce((c,u)=>{let[d,h]=u;return h===void 0||(c[d]=h),c},{}),s=t==null||(n=t.compoundVariants)===null||n===void 0?void 0:n.reduce((c,u)=>{let{class:d,className:h,...f}=u;return Object.entries(f).every(b=>{let[y,T]=b;return Array.isArray(T)?T.includes({...o,...i}[y]):{...o,...i}[y]===T})?[...c,d,h]:c},[]);return ro(e,l,s,r==null?void 0:r.class,r==null?void 0:r.className)};var[nr,sp]=wn("Tooltip",[pa]),or=pa(),La="TooltipProvider",rc=700,on="tooltip.open",[nc,Cn]=nr(La),Na=e=>{const{__scopeTooltip:t,delayDuration:r=rc,skipDelayDuration:n=300,disableHoverableContent:a=!1,children:o}=e,[l,i]=p.useState(!0),s=p.useRef(!1),c=p.useRef(0);return p.useEffect(()=>{const u=c.current;return()=>window.clearTimeout(u)},[]),g.jsx(nc,{scope:t,isOpenDelayed:l,delayDuration:r,onOpen:p.useCallback(()=>{window.clearTimeout(c.current),i(!1)},[]),onClose:p.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>i(!0),n)},[n]),isPointerInTransitRef:s,onPointerInTransitChange:p.useCallback(u=>{s.current=u},[]),disableHoverableContent:a,children:o})};Na.displayName=La;var ar="Tooltip",[oc,sr]=nr(ar),Pa=e=>{const{__scopeTooltip:t,children:r,open:n,defaultOpen:a=!1,onOpenChange:o,disableHoverableContent:l,delayDuration:i}=e,s=Cn(ar,e.__scopeTooltip),c=or(t),[u,d]=p.useState(null),h=ft(),f=p.useRef(0),b=l??s.disableHoverableContent,y=i??s.delayDuration,T=p.useRef(!1),[N=!1,_]=ma({prop:n,defaultProp:a,onChange:m=>{m?(s.onOpen(),document.dispatchEvent(new CustomEvent(on))):s.onClose(),o==null||o(m)}}),A=p.useMemo(()=>N?T.current?"delayed-open":"instant-open":"closed",[N]),R=p.useCallback(()=>{window.clearTimeout(f.current),f.current=0,T.current=!1,_(!0)},[_]),I=p.useCallback(()=>{window.clearTimeout(f.current),f.current=0,_(!1)},[_]),D=p.useCallback(()=>{window.clearTimeout(f.current),f.current=window.setTimeout(()=>{T.current=!0,_(!0),f.current=0},y)},[y,_]);return p.useEffect(()=>()=>{f.current&&(window.clearTimeout(f.current),f.current=0)},[]),g.jsx(Ri,{...c,children:g.jsx(oc,{scope:t,contentId:h,open:N,stateAttribute:A,trigger:u,onTriggerChange:d,onTriggerEnter:p.useCallback(()=>{s.isOpenDelayed?D():R()},[s.isOpenDelayed,D,R]),onTriggerLeave:p.useCallback(()=>{b?I():(window.clearTimeout(f.current),f.current=0)},[I,b]),onOpen:R,onClose:I,disableHoverableContent:b,children:r})})};Pa.displayName=ar;var an="TooltipTrigger",za=p.forwardRef((e,t)=>{const{__scopeTooltip:r,...n}=e,a=sr(an,r),o=Cn(an,r),l=or(r),i=p.useRef(null),s=Xe(t,i,a.onTriggerChange),c=p.useRef(!1),u=p.useRef(!1),d=p.useCallback(()=>c.current=!1,[]);return p.useEffect(()=>()=>document.removeEventListener("pointerup",d),[d]),g.jsx(Ai,{asChild:!0,...l,children:g.jsx(Ee.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...n,ref:s,onPointerMove:Ce(e.onPointerMove,h=>{h.pointerType!=="touch"&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:Ce(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:Ce(e.onPointerDown,()=>{c.current=!0,document.addEventListener("pointerup",d,{once:!0})}),onFocus:Ce(e.onFocus,()=>{c.current||a.onOpen()}),onBlur:Ce(e.onBlur,a.onClose),onClick:Ce(e.onClick,a.onClose)})})});za.displayName=an;var ac="TooltipPortal",[ip,sc]=nr(ac,{forceMount:void 0}),wt="TooltipContent",Da=p.forwardRef((e,t)=>{const r=sc(wt,e.__scopeTooltip),{forceMount:n=r.forceMount,side:a="top",...o}=e,l=sr(wt,e.__scopeTooltip);return g.jsx(St,{present:n||l.open,children:l.disableHoverableContent?g.jsx(Oa,{side:a,...o,ref:t}):g.jsx(ic,{side:a,...o,ref:t})})}),ic=p.forwardRef((e,t)=>{const r=sr(wt,e.__scopeTooltip),n=Cn(wt,e.__scopeTooltip),a=p.useRef(null),o=Xe(t,a),[l,i]=p.useState(null),{trigger:s,onClose:c}=r,u=a.current,{onPointerInTransitChange:d}=n,h=p.useCallback(()=>{i(null),d(!1)},[d]),f=p.useCallback((b,y)=>{const T=b.currentTarget,N={x:b.clientX,y:b.clientY},_=dc(N,T.getBoundingClientRect()),A=fc(N,_),R=hc(y.getBoundingClientRect()),I=pc([...A,...R]);i(I),d(!0)},[d]);return p.useEffect(()=>()=>h(),[h]),p.useEffect(()=>{if(s&&u){const b=T=>f(T,u),y=T=>f(T,s);return s.addEventListener("pointerleave",b),u.addEventListener("pointerleave",y),()=>{s.removeEventListener("pointerleave",b),u.removeEventListener("pointerleave",y)}}},[s,u,f,h]),p.useEffect(()=>{if(l){const b=y=>{const T=y.target,N={x:y.clientX,y:y.clientY},_=(s==null?void 0:s.contains(T))||(u==null?void 0:u.contains(T)),A=!gc(N,l);_?h():A&&(h(),c())};return document.addEventListener("pointermove",b),()=>document.removeEventListener("pointermove",b)}},[s,u,l,c,h]),g.jsx(Oa,{...e,ref:o})}),[lc,cc]=nr(ar,{isInside:!1}),Oa=p.forwardRef((e,t)=>{const{__scopeTooltip:r,children:n,"aria-label":a,onEscapeKeyDown:o,onPointerDownOutside:l,...i}=e,s=sr(wt,r),c=or(r),{onClose:u}=s;return p.useEffect(()=>(document.addEventListener(on,u),()=>document.removeEventListener(on,u)),[u]),p.useEffect(()=>{if(s.trigger){const d=h=>{const f=h.target;f!=null&&f.contains(s.trigger)&&u()};return window.addEventListener("scroll",d,{capture:!0}),()=>window.removeEventListener("scroll",d,{capture:!0})}},[s.trigger,u]),g.jsx(_i,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:d=>d.preventDefault(),onDismiss:u,children:g.jsxs(Ci,{"data-state":s.stateAttribute,...c,...i,ref:t,style:{...i.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[g.jsx(ki,{children:n}),g.jsx(lc,{scope:r,isInside:!0,children:g.jsx(Ti,{id:s.contentId,role:"tooltip",children:a||n})})]})})});Da.displayName=wt;var Ga="TooltipArrow",uc=p.forwardRef((e,t)=>{const{__scopeTooltip:r,...n}=e,a=or(r);return cc(Ga,r).isInside?null:g.jsx(ji,{...a,...n,ref:t})});uc.displayName=Ga;function dc(e,t){const r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(r,n,a,o)){case o:return"left";case a:return"right";case r:return"top";case n:return"bottom";default:throw new Error("unreachable")}}function fc(e,t,r=5){const n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r});break}return n}function hc(e){const{top:t,right:r,bottom:n,left:a}=e;return[{x:a,y:t},{x:r,y:t},{x:r,y:n},{x:a,y:n}]}function gc(e,t){const{x:r,y:n}=e;let a=!1;for(let o=0,l=t.length-1;on!=u>n&&r<(c-i)*(n-s)/(u-s)+i&&(a=!a)}return a}function pc(e){const t=e.slice();return t.sort((r,n)=>r.xn.x?1:r.yn.y?1:0),mc(t)}function mc(e){if(e.length<=1)return e.slice();const t=[];for(let n=0;n=2;){const o=t[t.length-1],l=t[t.length-2];if((o.x-l.x)*(a.y-l.y)>=(o.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const r=[];for(let n=e.length-1;n>=0;n--){const a=e[n];for(;r.length>=2;){const o=r[r.length-1],l=r[r.length-2];if((o.x-l.x)*(a.y-l.y)>=(o.y-l.y)*(a.x-l.x))r.pop();else break}r.push(a)}return r.pop(),t.length===1&&r.length===1&&t[0].x===r[0].x&&t[0].y===r[0].y?t:t.concat(r)}var vc=Na,yc=Pa,bc=za,Fa=Da;const $a=vc,Ma=yc,Ha=bc,wc=e=>typeof e!="string"?e:g.jsx("div",{className:"relative top-0 pt-1 whitespace-pre-wrap break-words",children:e}),kn=p.forwardRef(({className:e,side:t="left",align:r="start",children:n,...a},o)=>{const l=p.useRef(null);return p.useEffect(()=>{l.current&&(l.current.scrollTop=0)},[n]),g.jsx(Fa,{ref:o,side:t,align:r,className:fe("bg-popover text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-h-[60vh] overflow-y-auto whitespace-pre-wrap break-words rounded-md border px-3 py-2 text-sm shadow-md z-60",e),...a,children:typeof n=="string"?wc(n):n})});kn.displayName=Fa.displayName;const no=tc("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"size-8"}},defaultVariants:{variant:"default",size:"default"}}),be=p.forwardRef(({className:e,variant:t,tooltip:r,size:n,side:a="right",asChild:o=!1,...l},i)=>{const s=o?Ii:"button";return r?g.jsx($a,{children:g.jsxs(Ma,{children:[g.jsx(Ha,{asChild:!0,children:g.jsx(s,{className:fe(no({variant:t,size:n,className:e}),"cursor-pointer"),ref:i,...l})}),g.jsx(kn,{side:a,children:r})]})}):g.jsx(s,{className:fe(no({variant:t,size:n,className:e}),"cursor-pointer"),ref:i,...l})});be.displayName="Button";const Wt=p.forwardRef(({className:e,type:t,...r},n)=>g.jsx("input",{type:t,className:fe("border-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 rounded-md border bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm [&::-webkit-inner-spin-button]:opacity-50 [&::-webkit-outer-spin-button]:opacity-50",e),ref:n,...r}));Wt.displayName="Input";/** +`);function Nt(e){return e.label!==void 0}var Al=3,jl="32px",Il="16px",Qn=4e3,Nl=356,Ll=14,Pl=20,zl=200;function Fe(...e){return e.filter(Boolean).join(" ")}function Dl(e){let[t,r]=e.split("-"),n=[];return t&&n.push(t),r&&n.push(r),n}var Ol=e=>{var t,r,n,a,o,l,i,s,c,u,d;let{invert:h,toast:f,unstyled:b,interacting:y,setHeights:T,visibleToasts:L,heights:_,index:A,toasts:R,expanded:I,removeToast:D,defaultRichColors:m,closeButton:E,style:x,cancelButtonStyle:k,actionButtonStyle:N,className:j="",descriptionClassName:w="",duration:V,position:K,gap:O,loadingIcon:C,expandByDefault:S,classNames:H,icons:ae,closeButtonAriaLabel:$="Close toast",pauseWhenPageIsHidden:v}=e,[z,B]=W.useState(null),[M,J]=W.useState(null),[X,Y]=W.useState(!1),[ie,ne]=W.useState(!1),[se,F]=W.useState(!1),[Q,q]=W.useState(!1),[U,P]=W.useState(!1),[oe,ue]=W.useState(0),[te,Z]=W.useState(0),G=W.useRef(f.duration||V||Qn),ge=W.useRef(null),pe=W.useRef(null),ye=A===0,we=A+1<=L,de=f.type,me=f.dismissible!==!1,Ie=f.className||"",ke=f.descriptionClassName||"",Te=W.useMemo(()=>_.findIndex(le=>le.toastId===f.id)||0,[_,f.id]),Pe=W.useMemo(()=>{var le;return(le=f.closeButton)!=null?le:E},[f.closeButton,E]),Ye=W.useMemo(()=>f.duration||V||Qn,[f.duration,V]),Ke=W.useRef(0),Re=W.useRef(0),st=W.useRef(0),ze=W.useRef(null),[ii,li]=K.split("-"),Bn=W.useMemo(()=>_.reduce((le,he,ve)=>ve>=Te?le:le+he.height,0),[_,Te]),Vn=xl(),ci=f.invert||h,hr=de==="loading";Re.current=W.useMemo(()=>Te*O+Bn,[Te,Bn]),W.useEffect(()=>{G.current=Ye},[Ye]),W.useEffect(()=>{Y(!0)},[]),W.useEffect(()=>{let le=pe.current;if(le){let he=le.getBoundingClientRect().height;return Z(he),T(ve=>[{toastId:f.id,height:he,position:f.position},...ve]),()=>T(ve=>ve.filter(De=>De.toastId!==f.id))}},[T,f.id]),W.useLayoutEffect(()=>{if(!X)return;let le=pe.current,he=le.style.height;le.style.height="auto";let ve=le.getBoundingClientRect().height;le.style.height=he,Z(ve),T(De=>De.find(Oe=>Oe.toastId===f.id)?De.map(Oe=>Oe.toastId===f.id?{...Oe,height:ve}:Oe):[{toastId:f.id,height:ve,position:f.position},...De])},[X,f.title,f.description,T,f.id]);let Qe=W.useCallback(()=>{ne(!0),ue(Re.current),T(le=>le.filter(he=>he.toastId!==f.id)),setTimeout(()=>{D(f)},zl)},[f,D,T,Re]);W.useEffect(()=>{if(f.promise&&de==="loading"||f.duration===1/0||f.type==="loading")return;let le;return I||y||v&&Vn?(()=>{if(st.current{var he;(he=f.onAutoClose)==null||he.call(f,f),Qe()},G.current)),()=>clearTimeout(le)},[I,y,f,de,v,Vn,Qe]),W.useEffect(()=>{f.delete&&Qe()},[Qe,f.delete]);function ui(){var le,he,ve;return ae!=null&&ae.loading?W.createElement("div",{className:Fe(H==null?void 0:H.loader,(le=f==null?void 0:f.classNames)==null?void 0:le.loader,"sonner-loader"),"data-visible":de==="loading"},ae.loading):C?W.createElement("div",{className:Fe(H==null?void 0:H.loader,(he=f==null?void 0:f.classNames)==null?void 0:he.loader,"sonner-loader"),"data-visible":de==="loading"},C):W.createElement(pl,{className:Fe(H==null?void 0:H.loader,(ve=f==null?void 0:f.classNames)==null?void 0:ve.loader),visible:de==="loading"})}return W.createElement("li",{tabIndex:0,ref:pe,className:Fe(j,Ie,H==null?void 0:H.toast,(t=f==null?void 0:f.classNames)==null?void 0:t.toast,H==null?void 0:H.default,H==null?void 0:H[de],(r=f==null?void 0:f.classNames)==null?void 0:r[de]),"data-sonner-toast":"","data-rich-colors":(n=f.richColors)!=null?n:m,"data-styled":!(f.jsx||f.unstyled||b),"data-mounted":X,"data-promise":!!f.promise,"data-swiped":U,"data-removed":ie,"data-visible":we,"data-y-position":ii,"data-x-position":li,"data-index":A,"data-front":ye,"data-swiping":se,"data-dismissible":me,"data-type":de,"data-invert":ci,"data-swipe-out":Q,"data-swipe-direction":M,"data-expanded":!!(I||S&&X),style:{"--index":A,"--toasts-before":A,"--z-index":R.length-A,"--offset":`${ie?oe:Re.current}px`,"--initial-height":S?"auto":`${te}px`,...x,...f.style},onDragEnd:()=>{F(!1),B(null),ze.current=null},onPointerDown:le=>{hr||!me||(ge.current=new Date,ue(Re.current),le.target.setPointerCapture(le.pointerId),le.target.tagName!=="BUTTON"&&(F(!0),ze.current={x:le.clientX,y:le.clientY}))},onPointerUp:()=>{var le,he,ve,De;if(Q||!me)return;ze.current=null;let Oe=Number(((le=pe.current)==null?void 0:le.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Je=Number(((he=pe.current)==null?void 0:he.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),it=new Date().getTime()-((ve=ge.current)==null?void 0:ve.getTime()),Ge=z==="x"?Oe:Je,Ze=Math.abs(Ge)/it;if(Math.abs(Ge)>=Pl||Ze>.11){ue(Re.current),(De=f.onDismiss)==null||De.call(f,f),J(z==="x"?Oe>0?"right":"left":Je>0?"down":"up"),Qe(),q(!0),P(!1);return}F(!1),B(null)},onPointerMove:le=>{var he,ve,De,Oe;if(!ze.current||!me||((he=window.getSelection())==null?void 0:he.toString().length)>0)return;let Je=le.clientY-ze.current.y,it=le.clientX-ze.current.x,Ge=(ve=e.swipeDirections)!=null?ve:Dl(K);!z&&(Math.abs(it)>1||Math.abs(Je)>1)&&B(Math.abs(it)>Math.abs(Je)?"x":"y");let Ze={x:0,y:0};z==="y"?(Ge.includes("top")||Ge.includes("bottom"))&&(Ge.includes("top")&&Je<0||Ge.includes("bottom")&&Je>0)&&(Ze.y=Je):z==="x"&&(Ge.includes("left")||Ge.includes("right"))&&(Ge.includes("left")&&it<0||Ge.includes("right")&&it>0)&&(Ze.x=it),(Math.abs(Ze.x)>0||Math.abs(Ze.y)>0)&&P(!0),(De=pe.current)==null||De.style.setProperty("--swipe-amount-x",`${Ze.x}px`),(Oe=pe.current)==null||Oe.style.setProperty("--swipe-amount-y",`${Ze.y}px`)}},Pe&&!f.jsx?W.createElement("button",{"aria-label":$,"data-disabled":hr,"data-close-button":!0,onClick:hr||!me?()=>{}:()=>{var le;Qe(),(le=f.onDismiss)==null||le.call(f,f)},className:Fe(H==null?void 0:H.closeButton,(a=f==null?void 0:f.classNames)==null?void 0:a.closeButton)},(o=ae==null?void 0:ae.close)!=null?o:wl):null,f.jsx||p.isValidElement(f.title)?f.jsx?f.jsx:typeof f.title=="function"?f.title():f.title:W.createElement(W.Fragment,null,de||f.icon||f.promise?W.createElement("div",{"data-icon":"",className:Fe(H==null?void 0:H.icon,(l=f==null?void 0:f.classNames)==null?void 0:l.icon)},f.promise||f.type==="loading"&&!f.icon?f.icon||ui():null,f.type!=="loading"?f.icon||(ae==null?void 0:ae[de])||hl(de):null):null,W.createElement("div",{"data-content":"",className:Fe(H==null?void 0:H.content,(i=f==null?void 0:f.classNames)==null?void 0:i.content)},W.createElement("div",{"data-title":"",className:Fe(H==null?void 0:H.title,(s=f==null?void 0:f.classNames)==null?void 0:s.title)},typeof f.title=="function"?f.title():f.title),f.description?W.createElement("div",{"data-description":"",className:Fe(w,ke,H==null?void 0:H.description,(c=f==null?void 0:f.classNames)==null?void 0:c.description)},typeof f.description=="function"?f.description():f.description):null),p.isValidElement(f.cancel)?f.cancel:f.cancel&&Nt(f.cancel)?W.createElement("button",{"data-button":!0,"data-cancel":!0,style:f.cancelButtonStyle||k,onClick:le=>{var he,ve;Nt(f.cancel)&&me&&((ve=(he=f.cancel).onClick)==null||ve.call(he,le),Qe())},className:Fe(H==null?void 0:H.cancelButton,(u=f==null?void 0:f.classNames)==null?void 0:u.cancelButton)},f.cancel.label):null,p.isValidElement(f.action)?f.action:f.action&&Nt(f.action)?W.createElement("button",{"data-button":!0,"data-action":!0,style:f.actionButtonStyle||N,onClick:le=>{var he,ve;Nt(f.action)&&((ve=(he=f.action).onClick)==null||ve.call(he,le),!le.defaultPrevented&&Qe())},className:Fe(H==null?void 0:H.actionButton,(d=f==null?void 0:f.classNames)==null?void 0:d.actionButton)},f.action.label):null))};function Jn(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Gl(e,t){let r={};return[e,t].forEach((n,a)=>{let o=a===1,l=o?"--mobile-offset":"--offset",i=o?Il:jl;function s(c){["top","right","bottom","left"].forEach(u=>{r[`${l}-${u}`]=typeof c=="number"?`${c}px`:c})}typeof n=="number"||typeof n=="string"?s(n):typeof n=="object"?["top","right","bottom","left"].forEach(c=>{n[c]===void 0?r[`${l}-${c}`]=i:r[`${l}-${c}`]=typeof n[c]=="number"?`${n[c]}px`:n[c]}):s(i)}),r}var np=p.forwardRef(function(e,t){let{invert:r,position:n="bottom-right",hotkey:a=["altKey","KeyT"],expand:o,closeButton:l,className:i,offset:s,mobileOffset:c,theme:u="light",richColors:d,duration:h,style:f,visibleToasts:b=Al,toastOptions:y,dir:T=Jn(),gap:L=Ll,loadingIcon:_,icons:A,containerAriaLabel:R="Notifications",pauseWhenPageIsHidden:I}=e,[D,m]=W.useState([]),E=W.useMemo(()=>Array.from(new Set([n].concat(D.filter(v=>v.position).map(v=>v.position)))),[D,n]),[x,k]=W.useState([]),[N,j]=W.useState(!1),[w,V]=W.useState(!1),[K,O]=W.useState(u!=="system"?u:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),C=W.useRef(null),S=a.join("+").replace(/Key/g,"").replace(/Digit/g,""),H=W.useRef(null),ae=W.useRef(!1),$=W.useCallback(v=>{m(z=>{var B;return(B=z.find(M=>M.id===v.id))!=null&&B.delete||Ae.dismiss(v.id),z.filter(({id:M})=>M!==v.id)})},[]);return W.useEffect(()=>Ae.subscribe(v=>{if(v.dismiss){m(z=>z.map(B=>B.id===v.id?{...B,delete:!0}:B));return}setTimeout(()=>{hi.flushSync(()=>{m(z=>{let B=z.findIndex(M=>M.id===v.id);return B!==-1?[...z.slice(0,B),{...z[B],...v},...z.slice(B+1)]:[v,...z]})})})}),[]),W.useEffect(()=>{if(u!=="system"){O(u);return}if(u==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?O("dark"):O("light")),typeof window>"u")return;let v=window.matchMedia("(prefers-color-scheme: dark)");try{v.addEventListener("change",({matches:z})=>{O(z?"dark":"light")})}catch{v.addListener(({matches:B})=>{try{O(B?"dark":"light")}catch(M){console.error(M)}})}},[u]),W.useEffect(()=>{D.length<=1&&j(!1)},[D]),W.useEffect(()=>{let v=z=>{var B,M;a.every(J=>z[J]||z.code===J)&&(j(!0),(B=C.current)==null||B.focus()),z.code==="Escape"&&(document.activeElement===C.current||(M=C.current)!=null&&M.contains(document.activeElement))&&j(!1)};return document.addEventListener("keydown",v),()=>document.removeEventListener("keydown",v)},[a]),W.useEffect(()=>{if(C.current)return()=>{H.current&&(H.current.focus({preventScroll:!0}),H.current=null,ae.current=!1)}},[C.current]),W.createElement("section",{ref:t,"aria-label":`${R} ${S}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},E.map((v,z)=>{var B;let[M,J]=v.split("-");return D.length?W.createElement("ol",{key:v,dir:T==="auto"?Jn():T,tabIndex:-1,ref:C,className:i,"data-sonner-toaster":!0,"data-theme":K,"data-y-position":M,"data-lifted":N&&D.length>1&&!o,"data-x-position":J,style:{"--front-toast-height":`${((B=x[0])==null?void 0:B.height)||0}px`,"--width":`${Nl}px`,"--gap":`${L}px`,...f,...Gl(s,c)},onBlur:X=>{ae.current&&!X.currentTarget.contains(X.relatedTarget)&&(ae.current=!1,H.current&&(H.current.focus({preventScroll:!0}),H.current=null))},onFocus:X=>{X.target instanceof HTMLElement&&X.target.dataset.dismissible==="false"||ae.current||(ae.current=!0,H.current=X.relatedTarget)},onMouseEnter:()=>j(!0),onMouseMove:()=>j(!0),onMouseLeave:()=>{w||j(!1)},onDragEnd:()=>j(!1),onPointerDown:X=>{X.target instanceof HTMLElement&&X.target.dataset.dismissible==="false"||V(!0)},onPointerUp:()=>V(!1)},D.filter(X=>!X.position&&z===0||X.position===v).map((X,Y)=>{var ie,ne;return W.createElement(Ol,{key:X.id,icons:A,index:Y,toast:X,defaultRichColors:d,duration:(ie=y==null?void 0:y.duration)!=null?ie:h,className:y==null?void 0:y.className,descriptionClassName:y==null?void 0:y.descriptionClassName,invert:r,visibleToasts:b,closeButton:(ne=y==null?void 0:y.closeButton)!=null?ne:l,interacting:w,position:v,style:y==null?void 0:y.style,unstyled:y==null?void 0:y.unstyled,classNames:y==null?void 0:y.classNames,cancelButtonStyle:y==null?void 0:y.cancelButtonStyle,actionButtonStyle:y==null?void 0:y.actionButtonStyle,removeToast:$,toasts:D.filter(se=>se.position==X.position),heights:x.filter(se=>se.position==X.position),setHeights:k,expandByDefault:o,gap:L,loadingIcon:_,expanded:N,pauseWhenPageIsHidden:I,swipeDirections:e.swipeDirections})})):null}))});const Fl={theme:"system",setTheme:()=>null},Ra=p.createContext(Fl);function op({children:e,...t}){const r=re.use.theme(),n=re.use.setTheme();p.useEffect(()=>{const o=window.document.documentElement;if(o.classList.remove("light","dark"),r==="system"){const l=window.matchMedia("(prefers-color-scheme: dark)"),i=s=>{o.classList.remove("light","dark"),o.classList.add(s.matches?"dark":"light")};return o.classList.add(l.matches?"dark":"light"),l.addEventListener("change",i),()=>l.removeEventListener("change",i)}else o.classList.add(r)},[r]);const a={theme:r,setTheme:n};return g.jsx(Ra.Provider,{...t,value:a,children:e})}const $l=(e,t,r,n)=>{var o,l,i,s;const a=[r,{code:t,...n||{}}];if((l=(o=e==null?void 0:e.services)==null?void 0:o.logger)!=null&&l.forward)return e.services.logger.forward(a,"warn","react-i18next::",!0);ht(a[0])&&(a[0]=`react-i18next:: ${a[0]}`),(s=(i=e==null?void 0:e.services)==null?void 0:i.logger)!=null&&s.warn?e.services.logger.warn(...a):console!=null&&console.warn&&console.warn(...a)},Zn={},tn=(e,t,r,n)=>{ht(r)&&Zn[r]||(ht(r)&&(Zn[r]=new Date),$l(e,t,r,n))},Aa=(e,t)=>()=>{if(e.isInitialized)t();else{const r=()=>{setTimeout(()=>{e.off("initialized",r)},0),t()};e.on("initialized",r)}},rn=(e,t,r)=>{e.loadNamespaces(t,Aa(e,r))},eo=(e,t,r,n)=>{if(ht(r)&&(r=[r]),e.options.preload&&e.options.preload.indexOf(t)>-1)return rn(e,r,n);r.forEach(a=>{e.options.ns.indexOf(a)<0&&e.options.ns.push(a)}),e.loadLanguages(t,Aa(e,n))},Ml=(e,t,r={})=>!t.languages||!t.languages.length?(tn(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:r.lng,precheck:(n,a)=>{var o;if(((o=r.bindI18n)==null?void 0:o.indexOf("languageChanging"))>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!a(n.isLanguageChangingTo,e))return!1}}),ht=e=>typeof e=="string",Hl=e=>typeof e=="object"&&e!==null,Bl=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Vl={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},Ul=e=>Vl[e],ql=e=>e.replace(Bl,Ul);let nn={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:ql};const Wl=(e={})=>{nn={...nn,...e}},Xl=()=>nn;let ja;const Yl=e=>{ja=e},Kl=()=>ja,ap={type:"3rdParty",init(e){Wl(e.options.react),Yl(e)}},Ql=p.createContext();class Jl{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(r=>{this.usedNamespaces[r]||(this.usedNamespaces[r]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const Zl=(e,t)=>{const r=p.useRef();return p.useEffect(()=>{r.current=e},[e,t]),r.current},Ia=(e,t,r,n)=>e.getFixedT(t,r,n),ec=(e,t,r,n)=>p.useCallback(Ia(e,t,r,n),[e,t,r,n]),xe=(e,t={})=>{var R,I,D,m;const{i18n:r}=t,{i18n:n,defaultNS:a}=p.useContext(Ql)||{},o=r||n||Kl();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new Jl),!o){tn(o,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const E=(k,N)=>ht(N)?N:Hl(N)&&ht(N.defaultValue)?N.defaultValue:Array.isArray(k)?k[k.length-1]:k,x=[E,{},!1];return x.t=E,x.i18n={},x.ready=!1,x}(R=o.options.react)!=null&&R.wait&&tn(o,"DEPRECATED_OPTION","useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const l={...Xl(),...o.options.react,...t},{useSuspense:i,keyPrefix:s}=l;let c=a||((I=o.options)==null?void 0:I.defaultNS);c=ht(c)?[c]:c||["translation"],(m=(D=o.reportNamespaces).addUsedNamespaces)==null||m.call(D,c);const u=(o.isInitialized||o.initializedStoreOnce)&&c.every(E=>Ml(E,o,l)),d=ec(o,t.lng||null,l.nsMode==="fallback"?c:c[0],s),h=()=>d,f=()=>Ia(o,t.lng||null,l.nsMode==="fallback"?c:c[0],s),[b,y]=p.useState(h);let T=c.join();t.lng&&(T=`${t.lng}${T}`);const L=Zl(T),_=p.useRef(!0);p.useEffect(()=>{const{bindI18n:E,bindI18nStore:x}=l;_.current=!0,!u&&!i&&(t.lng?eo(o,t.lng,c,()=>{_.current&&y(f)}):rn(o,c,()=>{_.current&&y(f)})),u&&L&&L!==T&&_.current&&y(f);const k=()=>{_.current&&y(f)};return E&&(o==null||o.on(E,k)),x&&(o==null||o.store.on(x,k)),()=>{_.current=!1,o&&(E==null||E.split(" ").forEach(N=>o.off(N,k))),x&&o&&x.split(" ").forEach(N=>o.store.off(N,k))}},[o,T]),p.useEffect(()=>{_.current&&u&&y(h)},[o,s,u]);const A=[b,o,u];if(A.t=b,A.i18n=o,A.ready=u,u||!u&&!i)return A;throw new Promise(E=>{t.lng?eo(o,t.lng,c,()=>E()):rn(o,c,()=>E())})},to=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,ro=Sa,tc=(e,t)=>r=>{var n;if((t==null?void 0:t.variants)==null)return ro(e,r==null?void 0:r.class,r==null?void 0:r.className);const{variants:a,defaultVariants:o}=t,l=Object.keys(a).map(c=>{const u=r==null?void 0:r[c],d=o==null?void 0:o[c];if(u===null)return null;const h=to(u)||to(d);return a[c][h]}),i=r&&Object.entries(r).reduce((c,u)=>{let[d,h]=u;return h===void 0||(c[d]=h),c},{}),s=t==null||(n=t.compoundVariants)===null||n===void 0?void 0:n.reduce((c,u)=>{let{class:d,className:h,...f}=u;return Object.entries(f).every(b=>{let[y,T]=b;return Array.isArray(T)?T.includes({...o,...i}[y]):{...o,...i}[y]===T})?[...c,d,h]:c},[]);return ro(e,l,s,r==null?void 0:r.class,r==null?void 0:r.className)};var[nr,sp]=wn("Tooltip",[pa]),or=pa(),Na="TooltipProvider",rc=700,on="tooltip.open",[nc,Cn]=nr(Na),La=e=>{const{__scopeTooltip:t,delayDuration:r=rc,skipDelayDuration:n=300,disableHoverableContent:a=!1,children:o}=e,[l,i]=p.useState(!0),s=p.useRef(!1),c=p.useRef(0);return p.useEffect(()=>{const u=c.current;return()=>window.clearTimeout(u)},[]),g.jsx(nc,{scope:t,isOpenDelayed:l,delayDuration:r,onOpen:p.useCallback(()=>{window.clearTimeout(c.current),i(!1)},[]),onClose:p.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>i(!0),n)},[n]),isPointerInTransitRef:s,onPointerInTransitChange:p.useCallback(u=>{s.current=u},[]),disableHoverableContent:a,children:o})};La.displayName=Na;var ar="Tooltip",[oc,sr]=nr(ar),Pa=e=>{const{__scopeTooltip:t,children:r,open:n,defaultOpen:a=!1,onOpenChange:o,disableHoverableContent:l,delayDuration:i}=e,s=Cn(ar,e.__scopeTooltip),c=or(t),[u,d]=p.useState(null),h=ft(),f=p.useRef(0),b=l??s.disableHoverableContent,y=i??s.delayDuration,T=p.useRef(!1),[L=!1,_]=ma({prop:n,defaultProp:a,onChange:m=>{m?(s.onOpen(),document.dispatchEvent(new CustomEvent(on))):s.onClose(),o==null||o(m)}}),A=p.useMemo(()=>L?T.current?"delayed-open":"instant-open":"closed",[L]),R=p.useCallback(()=>{window.clearTimeout(f.current),f.current=0,T.current=!1,_(!0)},[_]),I=p.useCallback(()=>{window.clearTimeout(f.current),f.current=0,_(!1)},[_]),D=p.useCallback(()=>{window.clearTimeout(f.current),f.current=window.setTimeout(()=>{T.current=!0,_(!0),f.current=0},y)},[y,_]);return p.useEffect(()=>()=>{f.current&&(window.clearTimeout(f.current),f.current=0)},[]),g.jsx(Ri,{...c,children:g.jsx(oc,{scope:t,contentId:h,open:L,stateAttribute:A,trigger:u,onTriggerChange:d,onTriggerEnter:p.useCallback(()=>{s.isOpenDelayed?D():R()},[s.isOpenDelayed,D,R]),onTriggerLeave:p.useCallback(()=>{b?I():(window.clearTimeout(f.current),f.current=0)},[I,b]),onOpen:R,onClose:I,disableHoverableContent:b,children:r})})};Pa.displayName=ar;var an="TooltipTrigger",za=p.forwardRef((e,t)=>{const{__scopeTooltip:r,...n}=e,a=sr(an,r),o=Cn(an,r),l=or(r),i=p.useRef(null),s=Xe(t,i,a.onTriggerChange),c=p.useRef(!1),u=p.useRef(!1),d=p.useCallback(()=>c.current=!1,[]);return p.useEffect(()=>()=>document.removeEventListener("pointerup",d),[d]),g.jsx(Ai,{asChild:!0,...l,children:g.jsx(Ee.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...n,ref:s,onPointerMove:Ce(e.onPointerMove,h=>{h.pointerType!=="touch"&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:Ce(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:Ce(e.onPointerDown,()=>{c.current=!0,document.addEventListener("pointerup",d,{once:!0})}),onFocus:Ce(e.onFocus,()=>{c.current||a.onOpen()}),onBlur:Ce(e.onBlur,a.onClose),onClick:Ce(e.onClick,a.onClose)})})});za.displayName=an;var ac="TooltipPortal",[ip,sc]=nr(ac,{forceMount:void 0}),wt="TooltipContent",Da=p.forwardRef((e,t)=>{const r=sc(wt,e.__scopeTooltip),{forceMount:n=r.forceMount,side:a="top",...o}=e,l=sr(wt,e.__scopeTooltip);return g.jsx(St,{present:n||l.open,children:l.disableHoverableContent?g.jsx(Oa,{side:a,...o,ref:t}):g.jsx(ic,{side:a,...o,ref:t})})}),ic=p.forwardRef((e,t)=>{const r=sr(wt,e.__scopeTooltip),n=Cn(wt,e.__scopeTooltip),a=p.useRef(null),o=Xe(t,a),[l,i]=p.useState(null),{trigger:s,onClose:c}=r,u=a.current,{onPointerInTransitChange:d}=n,h=p.useCallback(()=>{i(null),d(!1)},[d]),f=p.useCallback((b,y)=>{const T=b.currentTarget,L={x:b.clientX,y:b.clientY},_=dc(L,T.getBoundingClientRect()),A=fc(L,_),R=hc(y.getBoundingClientRect()),I=pc([...A,...R]);i(I),d(!0)},[d]);return p.useEffect(()=>()=>h(),[h]),p.useEffect(()=>{if(s&&u){const b=T=>f(T,u),y=T=>f(T,s);return s.addEventListener("pointerleave",b),u.addEventListener("pointerleave",y),()=>{s.removeEventListener("pointerleave",b),u.removeEventListener("pointerleave",y)}}},[s,u,f,h]),p.useEffect(()=>{if(l){const b=y=>{const T=y.target,L={x:y.clientX,y:y.clientY},_=(s==null?void 0:s.contains(T))||(u==null?void 0:u.contains(T)),A=!gc(L,l);_?h():A&&(h(),c())};return document.addEventListener("pointermove",b),()=>document.removeEventListener("pointermove",b)}},[s,u,l,c,h]),g.jsx(Oa,{...e,ref:o})}),[lc,cc]=nr(ar,{isInside:!1}),Oa=p.forwardRef((e,t)=>{const{__scopeTooltip:r,children:n,"aria-label":a,onEscapeKeyDown:o,onPointerDownOutside:l,...i}=e,s=sr(wt,r),c=or(r),{onClose:u}=s;return p.useEffect(()=>(document.addEventListener(on,u),()=>document.removeEventListener(on,u)),[u]),p.useEffect(()=>{if(s.trigger){const d=h=>{const f=h.target;f!=null&&f.contains(s.trigger)&&u()};return window.addEventListener("scroll",d,{capture:!0}),()=>window.removeEventListener("scroll",d,{capture:!0})}},[s.trigger,u]),g.jsx(_i,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:d=>d.preventDefault(),onDismiss:u,children:g.jsxs(Ci,{"data-state":s.stateAttribute,...c,...i,ref:t,style:{...i.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[g.jsx(ki,{children:n}),g.jsx(lc,{scope:r,isInside:!0,children:g.jsx(Ti,{id:s.contentId,role:"tooltip",children:a||n})})]})})});Da.displayName=wt;var Ga="TooltipArrow",uc=p.forwardRef((e,t)=>{const{__scopeTooltip:r,...n}=e,a=or(r);return cc(Ga,r).isInside?null:g.jsx(ji,{...a,...n,ref:t})});uc.displayName=Ga;function dc(e,t){const r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(r,n,a,o)){case o:return"left";case a:return"right";case r:return"top";case n:return"bottom";default:throw new Error("unreachable")}}function fc(e,t,r=5){const n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r});break}return n}function hc(e){const{top:t,right:r,bottom:n,left:a}=e;return[{x:a,y:t},{x:r,y:t},{x:r,y:n},{x:a,y:n}]}function gc(e,t){const{x:r,y:n}=e;let a=!1;for(let o=0,l=t.length-1;on!=u>n&&r<(c-i)*(n-s)/(u-s)+i&&(a=!a)}return a}function pc(e){const t=e.slice();return t.sort((r,n)=>r.xn.x?1:r.yn.y?1:0),mc(t)}function mc(e){if(e.length<=1)return e.slice();const t=[];for(let n=0;n=2;){const o=t[t.length-1],l=t[t.length-2];if((o.x-l.x)*(a.y-l.y)>=(o.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const r=[];for(let n=e.length-1;n>=0;n--){const a=e[n];for(;r.length>=2;){const o=r[r.length-1],l=r[r.length-2];if((o.x-l.x)*(a.y-l.y)>=(o.y-l.y)*(a.x-l.x))r.pop();else break}r.push(a)}return r.pop(),t.length===1&&r.length===1&&t[0].x===r[0].x&&t[0].y===r[0].y?t:t.concat(r)}var vc=La,yc=Pa,bc=za,Fa=Da;const $a=vc,Ma=yc,Ha=bc,wc=e=>typeof e!="string"?e:g.jsx("div",{className:"relative top-0 pt-1 whitespace-pre-wrap break-words",children:e}),kn=p.forwardRef(({className:e,side:t="left",align:r="start",children:n,...a},o)=>{const l=p.useRef(null);return p.useEffect(()=>{l.current&&(l.current.scrollTop=0)},[n]),g.jsx(Fa,{ref:o,side:t,align:r,className:fe("bg-popover text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 max-h-[60vh] overflow-y-auto whitespace-pre-wrap break-words rounded-md border px-3 py-2 text-sm shadow-md z-60",e),...a,children:typeof n=="string"?wc(n):n})});kn.displayName=Fa.displayName;const no=tc("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"size-8"}},defaultVariants:{variant:"default",size:"default"}}),be=p.forwardRef(({className:e,variant:t,tooltip:r,size:n,side:a="right",asChild:o=!1,...l},i)=>{const s=o?Ii:"button";return r?g.jsx($a,{children:g.jsxs(Ma,{children:[g.jsx(Ha,{asChild:!0,children:g.jsx(s,{className:fe(no({variant:t,size:n,className:e}),"cursor-pointer"),ref:i,...l})}),g.jsx(kn,{side:a,children:r})]})}):g.jsx(s,{className:fe(no({variant:t,size:n,className:e}),"cursor-pointer"),ref:i,...l})});be.displayName="Button";const Wt=p.forwardRef(({className:e,type:t,...r},n)=>g.jsx("input",{type:t,className:fe("border-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 rounded-md border bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm [&::-webkit-inner-spin-button]:opacity-50 [&::-webkit-outer-spin-button]:opacity-50",e),ref:n,...r}));Wt.displayName="Input";/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. @@ -65,12 +65,12 @@ ${d}`)}if(!l.body)throw new Error("Response body is null");const i=l.body.getRea * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Lc=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Va=ce("Check",Lc);/** + */const Nc=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Va=ce("Check",Nc);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Nc=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],gp=ce("ChevronDown",Nc);/** + */const Lc=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],gp=ce("ChevronDown",Lc);/** * @license lucide-react v0.475.0 - ISC * * This source code is licensed under the ISC license. @@ -240,7 +240,7 @@ ${d}`)}if(!l.body)throw new Error("Response body is null");const i=l.body.getRea * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ju=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],Iu=ce("ZoomOut",ju),Lu=wa,Ap=Ni,Nu=va,Wa=p.forwardRef(({className:e,...t},r)=>g.jsx(xn,{ref:r,className:fe("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/30",e),...t}));Wa.displayName=xn.displayName;const Xa=p.forwardRef(({className:e,children:t,...r},n)=>g.jsxs(Nu,{children:[g.jsx(Wa,{}),g.jsxs(Sn,{ref:n,className:fe("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",e),...r,children:[t,g.jsxs(Li,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[g.jsx(ku,{className:"h-4 w-4"}),g.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Xa.displayName=Sn.displayName;const Ya=({className:e,...t})=>g.jsx("div",{className:fe("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Ya.displayName="DialogHeader";const Ka=({className:e,...t})=>g.jsx("div",{className:fe("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Ka.displayName="DialogFooter";const Qa=p.forwardRef(({className:e,...t},r)=>g.jsx(ya,{ref:r,className:fe("text-lg leading-none font-semibold tracking-tight",e),...t}));Qa.displayName=ya.displayName;const Ja=p.forwardRef(({className:e,...t},r)=>g.jsx(ba,{ref:r,className:fe("text-muted-foreground text-sm",e),...t}));Ja.displayName=ba.displayName;const Tn=zi,Rn=Di,ir=p.forwardRef(({className:e,align:t="center",sideOffset:r=4,collisionPadding:n,sticky:a,avoidCollisions:o=!1,...l},i)=>g.jsx(Pi,{children:g.jsx(xa,{ref:i,align:t,sideOffset:r,collisionPadding:n,sticky:a,avoidCollisions:o,className:fe("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 rounded-md border p-4 shadow-md outline-none",e),...l})}));ir.displayName=xa.displayName;var Pu=` + */const ju=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],Iu=ce("ZoomOut",ju),Nu=wa,Ap=Li,Lu=va,Wa=p.forwardRef(({className:e,...t},r)=>g.jsx(xn,{ref:r,className:fe("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/30",e),...t}));Wa.displayName=xn.displayName;const Xa=p.forwardRef(({className:e,children:t,...r},n)=>g.jsxs(Lu,{children:[g.jsx(Wa,{}),g.jsxs(Sn,{ref:n,className:fe("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",e),...r,children:[t,g.jsxs(Ni,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[g.jsx(ku,{className:"h-4 w-4"}),g.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Xa.displayName=Sn.displayName;const Ya=({className:e,...t})=>g.jsx("div",{className:fe("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Ya.displayName="DialogHeader";const Ka=({className:e,...t})=>g.jsx("div",{className:fe("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Ka.displayName="DialogFooter";const Qa=p.forwardRef(({className:e,...t},r)=>g.jsx(ya,{ref:r,className:fe("text-lg leading-none font-semibold tracking-tight",e),...t}));Qa.displayName=ya.displayName;const Ja=p.forwardRef(({className:e,...t},r)=>g.jsx(ba,{ref:r,className:fe("text-muted-foreground text-sm",e),...t}));Ja.displayName=ba.displayName;const Tn=zi,Rn=Di,ir=p.forwardRef(({className:e,align:t="center",sideOffset:r=4,collisionPadding:n,sticky:a,avoidCollisions:o=!1,...l},i)=>g.jsx(Pi,{children:g.jsx(xa,{ref:i,align:t,sideOffset:r,collisionPadding:n,sticky:a,avoidCollisions:o,className:fe("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 rounded-md border p-4 shadow-md outline-none",e),...l})}));ir.displayName=xa.displayName;var Pu=` precision mediump float; varying vec4 v_color; @@ -390,7 +390,7 @@ void main() { v_color.a *= bias; } -`,Mu=$u,es=WebGLRenderingContext,so=es.UNSIGNED_BYTE,Ue=es.FLOAT,Hu=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness","u_lengthToThicknessRatio"],Bu={lengthToThicknessRatio:bn.lengthToThicknessRatio};function ts(e){var t=Ut(Ut({},Bu),{});return function(r){function n(){return la(this,n),ca(this,n,arguments)}return aa(n,r),sa(n,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:Mu,FRAGMENT_SHADER_SOURCE:mi,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Hu,ATTRIBUTES:[{name:"a_positionStart",size:2,type:Ue},{name:"a_positionEnd",size:2,type:Ue},{name:"a_normal",size:2,type:Ue},{name:"a_color",size:4,type:so,normalized:!0},{name:"a_id",size:4,type:so,normalized:!0},{name:"a_sourceRadius",size:1,type:Ue},{name:"a_targetRadius",size:1,type:Ue}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:Ue},{name:"a_normalCoef",size:1,type:Ue},{name:"a_sourceRadiusCoef",size:1,type:Ue},{name:"a_targetRadiusCoef",size:1,type:Ue}],CONSTANT_DATA:[[0,1,-1,0],[0,-1,1,0],[1,1,0,1],[1,1,0,1],[0,-1,1,0],[1,-1,0,-1]]}}},{key:"processVisibleItem",value:function(o,l,i,s,c){var u=c.size||1,d=i.x,h=i.y,f=s.x,b=s.y,y=er(c.color),T=f-d,N=b-h,_=i.size||1,A=s.size||1,R=T*T+N*N,I=0,D=0;R&&(R=1/Math.sqrt(R),I=-N*R*u,D=T*R*u);var m=this.array;m[l++]=d,m[l++]=h,m[l++]=f,m[l++]=b,m[l++]=I,m[l++]=D,m[l++]=y,m[l++]=o,m[l++]=_,m[l++]=A}},{key:"setUniforms",value:function(o,l){var i=l.gl,s=l.uniformLocations,c=s.u_matrix,u=s.u_zoomRatio,d=s.u_feather,h=s.u_pixelRatio,f=s.u_correctionRatio,b=s.u_sizeRatio,y=s.u_minEdgeThickness,T=s.u_lengthToThicknessRatio;i.uniformMatrix3fv(c,!1,o.matrix),i.uniform1f(u,o.zoomRatio),i.uniform1f(b,o.sizeRatio),i.uniform1f(f,o.correctionRatio),i.uniform1f(h,o.pixelRatio),i.uniform1f(d,o.antiAliasingFeather),i.uniform1f(y,o.minEdgeThickness),i.uniform1f(T,t.lengthToThicknessRatio)}}])}(ua)}ts();function Vu(e){return vi([ts(),Un(e),Un(Ut(Ut({},e),{},{extremity:"source"}))])}Vu();function Uu(e){if(Array.isArray(e))return e}function qu(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,a,o,l,i=[],s=!0,c=!1;try{if(o=(r=r.call(e)).next,t!==0)for(;!(s=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);s=!0);}catch(u){c=!0,a=u}finally{try{if(!s&&r.return!=null&&(l=r.return(),Object(l)!==l))return}finally{if(c)throw a}}return i}}function sn(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);rz){var B="…";for(y=y+B,v=o.measureText(y).width;v>z&&y.length>1;)y=y.slice(0,-2)+B,v=o.measureText(y).width;if(y.length<4)return}for(var M={},J=0,X=y.length;Je.length)&&(t=e.length);for(var r=0,n=Array(t);rz){var B="…";for(y=y+B,v=o.measureText(y).width;v>z&&y.length>1;)y=y.slice(0,-2)+B,v=o.measureText(y).width;if(y.length<4)return}for(var M={},J=0,X=y.length;J{const r=Be(),{gotoNode:n}=da();return p.useEffect(()=>{const a=r.getGraph();if(t){if(e&&a.hasNode(e))try{a.setNodeAttribute(e,"highlighted",!0),n(e)}catch(o){console.error("Error focusing on node:",o)}else r.setCustomBBox(null),r.getCamera().animate({x:.5,y:.5,ratio:1},{duration:0});ee.getState().setMoveToSelectedNode(!1)}else if(e&&a.hasNode(e))try{a.setNodeAttribute(e,"highlighted",!0)}catch(o){console.error("Error highlighting node:",o)}return()=>{if(e&&a.hasNode(e))try{a.setNodeAttribute(e,"highlighted",!1)}catch(o){console.error("Error cleaning up node highlight:",o)}}},[e,t,r,n]),null};function Et(e,t){const r=Be(),n=p.useRef(t);return fa(n.current,t)||(n.current=t),{positions:p.useCallback(()=>n.current?e(r.getGraph(),n.current):{},[r,n,e]),assign:p.useCallback(()=>{n.current&&e.assign(r.getGraph(),n.current)},[r,n,e])}}function jn(e,t){const r=Be(),[n,a]=p.useState(!1),[o,l]=p.useState(null),i=p.useRef(t);return fa(i.current,t)||(i.current=t),p.useEffect(()=>{a(!1);let s=null;return i.current&&(s=new e(r.getGraph(),i.current)),l(s),()=>{s!==null&&s.kill()}},[r,i,l,a,e]),{stop:p.useCallback(()=>{o&&(o.stop(),a(!1))},[o,a]),start:p.useCallback(()=>{o&&(o.start(),a(!0))},[o,a]),kill:p.useCallback(()=>{o&&o.kill(),a(!1)},[o,a]),isRunning:n}}var mr,ho;function At(){if(ho)return mr;ho=1;function e(r){return!r||typeof r!="object"||typeof r=="function"||Array.isArray(r)||r instanceof Set||r instanceof Map||r instanceof RegExp||r instanceof Date}function t(r,n){r=r||{};var a={};for(var o in n){var l=r[o],i=n[o];if(!e(i)){a[o]=t(l,i);continue}l===void 0?a[o]=i:a[o]=l}return a}return mr=t,mr}var vr,go;function Id(){if(go)return vr;go=1;function e(r){return function(n,a){return n+Math.floor(r()*(a-n+1))}}var t=e(Math.random);return t.createRandom=e,vr=t,vr}var yr,po;function Ld(){if(po)return yr;po=1;var e=Id().createRandom;function t(n){var a=e(n);return function(o){for(var l=o.length,i=l-1,s=-1;++s0},a.prototype.addChild=function(m,E){this.children[m]=E,++this.countChildren},a.prototype.getChild=function(m){if(!this.children.hasOwnProperty(m)){var E=new a;this.children[m]=E,++this.countChildren}return this.children[m]},a.prototype.applyPositionToChildren=function(){if(this.hasChildren()){var m=this;for(var E in m.children){var x=m.children[E];x.x+=m.x,x.y+=m.y,x.applyPositionToChildren()}}};function o(m,E,x){for(var k in E.children){var L=E.children[k];L.hasChildren()?o(m,L,x):x[L.id]={x:L.x,y:L.y}}}function l(m,E){var x=m.r-E.r,k=E.x-m.x,L=E.y-m.y;return x<0||x*x0&&x*x>k*k+L*L}function s(m,E){for(var x=0;xK?(L=(O+K-j)/(2*O),V=Math.sqrt(Math.max(0,K/O-L*L)),x.x=m.x-L*k-V*w,x.y=m.y-L*w+V*k):(L=(O+j-K)/(2*O),V=Math.sqrt(Math.max(0,j/O-L*L)),x.x=E.x+L*k-V*w,x.y=E.y+L*w+V*k)):(x.x=E.x+x.r,x.y=E.y)}function N(m,E){var x=m.r+E.r-1e-6,k=E.x-m.x,L=E.y-m.y;return x>0&&x*x>k*k+L*L}function _(m,E){var x=m.length;if(x===0)return 0;var k,L,j,w,V,K,O,C,S,H;if(k=m[0],k.x=0,k.y=0,x<=1)return k.r;if(L=m[1],k.x=-L.r,L.x=k.r,L.y=0,x<=2)return k.r+L.r;j=m[2],T(L,k,j),k=new a(null,null,null,null,k),L=new a(null,null,null,null,L),j=new a(null,null,null,null,j),k.next=j.previous=L,L.next=k.previous=j,j.next=L.previous=k;e:for(K=3;K"u"?a:c};typeof a=="function"&&(l=a);var i=function(c){return l(c[n])},s=function(){return l(void 0)};return typeof n=="string"?(o.fromAttributes=i,o.fromGraph=function(c,u){return i(c.getNodeAttributes(u))},o.fromEntry=function(c,u){return i(u)}):typeof n=="function"?(o.fromAttributes=function(){throw new Error("graphology-utils/getters/createNodeValueGetter: irrelevant usage.")},o.fromGraph=function(c,u){return l(n(u,c.getNodeAttributes(u)))},o.fromEntry=function(c,u){return l(n(c,u))}):(o.fromAttributes=s,o.fromGraph=s,o.fromEntry=s),o}function r(n,a){var o={},l=function(c){return typeof c>"u"?a:c};typeof a=="function"&&(l=a);var i=function(c){return l(c[n])},s=function(){return l(void 0)};return typeof n=="string"?(o.fromAttributes=i,o.fromGraph=function(c,u){return i(c.getEdgeAttributes(u))},o.fromEntry=function(c,u){return i(u)},o.fromPartialEntry=o.fromEntry,o.fromMinimalEntry=o.fromEntry):typeof n=="function"?(o.fromAttributes=function(){throw new Error("graphology-utils/getters/createEdgeValueGetter: irrelevant usage.")},o.fromGraph=function(c,u){var d=c.extremities(u);return l(n(u,c.getEdgeAttributes(u),d[0],d[1],c.getNodeAttributes(d[0]),c.getNodeAttributes(d[1]),c.isUndirected(u)))},o.fromEntry=function(c,u,d,h,f,b,y){return l(n(c,u,d,h,f,b,y))},o.fromPartialEntry=function(c,u,d,h){return l(n(c,u,d,h))},o.fromMinimalEntry=function(c,u){return l(n(c,u))}):(o.fromAttributes=s,o.fromGraph=s,o.fromEntry=s,o.fromMinimalEntry=s),o}return kt.createNodeValueGetter=t,kt.createEdgeValueGetter=r,kt.createEdgeWeightGetter=function(n){return r(n,e)},kt}var xr,bo;function hs(){if(bo)return xr;bo=1;const{createNodeValueGetter:e,createEdgeValueGetter:t}=In();return xr=function(n,a,o){const{nodeXAttribute:l,nodeYAttribute:i}=o,{attraction:s,repulsion:c,gravity:u,inertia:d,maxMove:h}=o.settings;let{shouldSkipNode:f,shouldSkipEdge:b,isNodeFixed:y}=o;y=e(y),f=e(f,!1),b=t(b,!1);const T=n.filterNodes((A,R)=>!f.fromEntry(A,R)),N=T.length;for(let A=0;A{if(I===D||f.fromEntry(I,m)||f.fromEntry(D,E)||b.fromEntry(A,R,I,D,m,E,x))return;const k=a[I],L=a[D],j=L.x-k.x,w=L.y-k.y,V=Math.sqrt(j*j+w*w)||1,K=s*V*j,O=s*V*w;k.dx+=K,k.dy+=O,L.dx-=K,L.dy-=O}),u)for(let A=0;Ah&&(I.dx*=h/D,I.dy*=h/D),y.fromGraph(n,R)?I.fixed=!0:(I.x+=I.dx,I.y+=I.dy,I.fixed=!1)}return{converged:_}},xr}var Pt={},wo;function gs(){return wo||(wo=1,Pt.assignLayoutChanges=function(e,t,r){const{nodeXAttribute:n,nodeYAttribute:a}=r;e.updateEachNodeAttributes((o,l)=>{const i=t[o];return!i||i.fixed||(l[n]=i.x,l[a]=i.y),l},{attributes:["x","y"]})},Pt.collectLayoutChanges=function(e){const t={};for(const r in e){const n=e[r];t[r]={x:n.x,y:n.y}}return t}),Pt}var Sr,xo;function ps(){return xo||(xo=1,Sr={nodeXAttribute:"x",nodeYAttribute:"y",isNodeFixed:"fixed",shouldSkipNode:null,shouldSkipEdge:null,settings:{attraction:5e-4,repulsion:.1,gravity:1e-4,inertia:.6,maxMove:200}}),Sr}var Er,So;function Md(){if(So)return Er;So=1;const e=We(),t=At(),r=hs(),n=gs(),a=ps();function o(i,s,c){if(!e(s))throw new Error("graphology-layout-force: the given graph is not a valid graphology instance.");typeof c=="number"?c={maxIterations:c}:c=c||{};const u=c.maxIterations;if(c=t(c,a),typeof u!="number"||u<=0)throw new Error("graphology-layout-force: you should provide a positive number of maximum iterations.");const d={};let h=null,f;for(f=0;fthis.runFrame())},o.prototype.stop=function(){return this.running=!1,this.frameID!==null&&(window.cancelAnimationFrame(this.frameID),this.frameID=null),this},o.prototype.start=function(){if(this.killed)throw new Error("graphology-layout-force/worker.start: layout was killed.");this.running||(this.running=!0,this.runFrame())},o.prototype.kill=function(){this.stop(),delete this.nodeStates,this.killed=!0},_r=o,_r}var Ud=Vd();const qd=He(Ud);function Wd(e={maxIterations:100}){return Et(Bd,e)}function Xd(e={}){return jn(qd,e)}var Cr,_o;function Yd(){if(_o)return Cr;_o=1;var e=0,t=1,r=2,n=3,a=4,o=5,l=6,i=7,s=8,c=9,u=0,d=1,h=2,f=0,b=1,y=2,T=3,N=4,_=5,A=6,R=7,I=8,D=3,m=10,E=3,x=9,k=10;return Cr=function(j,w,V){var K,O,C,S,H,ae,$,v,z,B,M=w.length,J=V.length,X=j.adjustSizes,Y=j.barnesHutTheta*j.barnesHutTheta,ie,ne,se,F,Q,q,U,P=[];for(C=0;Cwe?(te-=(ye-we)/2,Z=te+ye):(oe-=(we-ye)/2,ue=oe+we),P[0+f]=-1,P[0+b]=(oe+ue)/2,P[0+y]=(te+Z)/2,P[0+T]=Math.max(ue-oe,Z-te),P[0+N]=-1,P[0+_]=-1,P[0+A]=0,P[0+R]=0,P[0+I]=0,K=1,C=0;C=0){w[C+e]=0)if(q=Math.pow(w[C+e]-P[O+R],2)+Math.pow(w[C+t]-P[O+I],2),B=P[O+T],4*B*B/q0?(U=ne*w[C+l]*P[O+A]/q,w[C+r]+=se*U,w[C+n]+=F*U):q<0&&(U=-ne*w[C+l]*P[O+A]/Math.sqrt(q),w[C+r]+=se*U,w[C+n]+=F*U):q>0&&(U=ne*w[C+l]*P[O+A]/q,w[C+r]+=se*U,w[C+n]+=F*U),O=P[O+N],O<0)break;continue}else{O=P[O+_];continue}else{if(ae=P[O+f],ae>=0&&ae!==C&&(se=w[C+e]-w[ae+e],F=w[C+t]-w[ae+t],q=se*se+F*F,X===!0?q>0?(U=ne*w[C+l]*w[ae+l]/q,w[C+r]+=se*U,w[C+n]+=F*U):q<0&&(U=-ne*w[C+l]*w[ae+l]/Math.sqrt(q),w[C+r]+=se*U,w[C+n]+=F*U):q>0&&(U=ne*w[C+l]*w[ae+l]/q,w[C+r]+=se*U,w[C+n]+=F*U)),O=P[O+N],O<0)break;continue}else for(ne=j.scalingRatio,S=0;S0?(U=ne*w[S+l]*w[H+l]/q/q,w[S+r]+=se*U,w[S+n]+=F*U,w[H+r]-=se*U,w[H+n]-=F*U):q<0&&(U=100*ne*w[S+l]*w[H+l],w[S+r]+=se*U,w[S+n]+=F*U,w[H+r]-=se*U,w[H+n]-=F*U)):(q=Math.sqrt(se*se+F*F),q>0&&(U=ne*w[S+l]*w[H+l]/q/q,w[S+r]+=se*U,w[S+n]+=F*U,w[H+r]-=se*U,w[H+n]-=F*U));for(z=j.gravity/j.scalingRatio,ne=j.scalingRatio,C=0;C0&&(U=ne*w[C+l]*z):q>0&&(U=ne*w[C+l]*z/q),w[C+r]-=se*U,w[C+n]-=F*U;for(ne=1*(j.outboundAttractionDistribution?ie:1),$=0;$0&&(U=-ne*Q*Math.log(1+q)/q/w[S+l]):q>0&&(U=-ne*Q*Math.log(1+q)/q):j.outboundAttractionDistribution?q>0&&(U=-ne*Q/w[S+l]):q>0&&(U=-ne*Q)):(q=Math.sqrt(Math.pow(se,2)+Math.pow(F,2)),j.linLogMode?j.outboundAttractionDistribution?q>0&&(U=-ne*Q*Math.log(1+q)/q/w[S+l]):q>0&&(U=-ne*Q*Math.log(1+q)/q):j.outboundAttractionDistribution?(q=1,U=-ne*Q/w[S+l]):(q=1,U=-ne*Q)),q>0&&(w[S+r]+=se*U,w[S+n]+=F*U,w[H+r]-=se*U,w[H+n]-=F*U);var de,me,Ie,ke,Te,Pe;if(X===!0)for(C=0;Ck&&(w[C+r]=w[C+r]*k/de,w[C+n]=w[C+n]*k/de),me=w[C+l]*Math.sqrt((w[C+a]-w[C+r])*(w[C+a]-w[C+r])+(w[C+o]-w[C+n])*(w[C+o]-w[C+n])),Ie=Math.sqrt((w[C+a]+w[C+r])*(w[C+a]+w[C+r])+(w[C+o]+w[C+n])*(w[C+o]+w[C+n]))/2,ke=.1*Math.log(1+Ie)/(1+Math.sqrt(me)),Te=w[C+e]+w[C+r]*(ke/j.slowDown),w[C+e]=Te,Pe=w[C+t]+w[C+n]*(ke/j.slowDown),w[C+t]=Pe);else for(C=0;C=0)?{message:"the `scalingRatio` setting should be a number >= 0."}:"strongGravityMode"in r&&typeof r.strongGravityMode!="boolean"?{message:"the `strongGravityMode` setting should be a boolean."}:"gravity"in r&&!(typeof r.gravity=="number"&&r.gravity>=0)?{message:"the `gravity` setting should be a number >= 0."}:"slowDown"in r&&!(typeof r.slowDown=="number"||r.slowDown>=0)?{message:"the `slowDown` setting should be a number >= 0."}:"barnesHutOptimize"in r&&typeof r.barnesHutOptimize!="boolean"?{message:"the `barnesHutOptimize` setting should be a boolean."}:"barnesHutTheta"in r&&!(typeof r.barnesHutTheta=="number"&&r.barnesHutTheta>=0)?{message:"the `barnesHutTheta` setting should be a number >= 0."}:null},qe.graphToByteArrays=function(r,n){var a=r.order,o=r.size,l={},i,s=new Float32Array(a*e),c=new Float32Array(o*t);return i=0,r.forEachNode(function(u,d){l[u]=i,s[i]=d.x,s[i+1]=d.y,s[i+2]=0,s[i+3]=0,s[i+4]=0,s[i+5]=0,s[i+6]=1,s[i+7]=1,s[i+8]=d.size||1,s[i+9]=d.fixed?1:0,i+=e}),i=0,r.forEachEdge(function(u,d,h,f,b,y,T){var N=l[h],_=l[f],A=n(u,d,h,f,b,y,T);s[N+6]+=A,s[_+6]+=A,c[i]=N,c[i+1]=_,c[i+2]=A,i+=t}),{nodes:s,edges:c}},qe.assignLayoutChanges=function(r,n,a){var o=0;r.updateEachNodeAttributes(function(l,i){return i.x=n[o],i.y=n[o+1],o+=e,a?a(l,i):i})},qe.readGraphPositions=function(r,n){var a=0;r.forEachNode(function(o,l){n[a]=l.x,n[a+1]=l.y,a+=e})},qe.collectLayoutChanges=function(r,n,a){for(var o=r.nodes(),l={},i=0,s=0,c=n.length;i2e3,strongGravityMode:!0,gravity:.05,scalingRatio:10,slowDown:1+Math.log(c)}}var i=o.bind(null,!1);return i.assign=o.bind(null,!0),i.inferSettings=l,Tr=i,Tr}var Qd=Kd();const Jd=He(Qd);var Rr,Ro;function Zd(){return Ro||(Ro=1,Rr=function(){var t,r,n={};(function(){var o=0,l=1,i=2,s=3,c=4,u=5,d=6,h=7,f=8,b=9,y=0,T=1,N=2,_=0,A=1,R=2,I=3,D=4,m=5,E=6,x=7,k=8,L=3,j=10,w=3,V=9,K=10;n.exports=function(C,S,H){var ae,$,v,z,B,M,J,X,Y,ie,ne=S.length,se=H.length,F=C.adjustSizes,Q=C.barnesHutTheta*C.barnesHutTheta,q,U,P,oe,ue,te,Z,G=[];for(v=0;vTe?(ye-=(ke-Te)/2,we=ye+ke):(ge-=(Te-ke)/2,pe=ge+Te),G[0+_]=-1,G[0+A]=(ge+pe)/2,G[0+R]=(ye+we)/2,G[0+I]=Math.max(pe-ge,we-ye),G[0+D]=-1,G[0+m]=-1,G[0+E]=0,G[0+x]=0,G[0+k]=0,ae=1,v=0;v=0){S[v+o]=0)if(te=Math.pow(S[v+o]-G[$+x],2)+Math.pow(S[v+l]-G[$+k],2),ie=G[$+I],4*ie*ie/te0?(Z=U*S[v+d]*G[$+E]/te,S[v+i]+=P*Z,S[v+s]+=oe*Z):te<0&&(Z=-U*S[v+d]*G[$+E]/Math.sqrt(te),S[v+i]+=P*Z,S[v+s]+=oe*Z):te>0&&(Z=U*S[v+d]*G[$+E]/te,S[v+i]+=P*Z,S[v+s]+=oe*Z),$=G[$+D],$<0)break;continue}else{$=G[$+m];continue}else{if(M=G[$+_],M>=0&&M!==v&&(P=S[v+o]-S[M+o],oe=S[v+l]-S[M+l],te=P*P+oe*oe,F===!0?te>0?(Z=U*S[v+d]*S[M+d]/te,S[v+i]+=P*Z,S[v+s]+=oe*Z):te<0&&(Z=-U*S[v+d]*S[M+d]/Math.sqrt(te),S[v+i]+=P*Z,S[v+s]+=oe*Z):te>0&&(Z=U*S[v+d]*S[M+d]/te,S[v+i]+=P*Z,S[v+s]+=oe*Z)),$=G[$+D],$<0)break;continue}else for(U=C.scalingRatio,z=0;z0?(Z=U*S[z+d]*S[B+d]/te/te,S[z+i]+=P*Z,S[z+s]+=oe*Z,S[B+i]-=P*Z,S[B+s]-=oe*Z):te<0&&(Z=100*U*S[z+d]*S[B+d],S[z+i]+=P*Z,S[z+s]+=oe*Z,S[B+i]-=P*Z,S[B+s]-=oe*Z)):(te=Math.sqrt(P*P+oe*oe),te>0&&(Z=U*S[z+d]*S[B+d]/te/te,S[z+i]+=P*Z,S[z+s]+=oe*Z,S[B+i]-=P*Z,S[B+s]-=oe*Z));for(Y=C.gravity/C.scalingRatio,U=C.scalingRatio,v=0;v0&&(Z=U*S[v+d]*Y):te>0&&(Z=U*S[v+d]*Y/te),S[v+i]-=P*Z,S[v+s]-=oe*Z;for(U=1*(C.outboundAttractionDistribution?q:1),J=0;J0&&(Z=-U*ue*Math.log(1+te)/te/S[z+d]):te>0&&(Z=-U*ue*Math.log(1+te)/te):C.outboundAttractionDistribution?te>0&&(Z=-U*ue/S[z+d]):te>0&&(Z=-U*ue)):(te=Math.sqrt(Math.pow(P,2)+Math.pow(oe,2)),C.linLogMode?C.outboundAttractionDistribution?te>0&&(Z=-U*ue*Math.log(1+te)/te/S[z+d]):te>0&&(Z=-U*ue*Math.log(1+te)/te):C.outboundAttractionDistribution?(te=1,Z=-U*ue/S[z+d]):(te=1,Z=-U*ue)),te>0&&(S[z+i]+=P*Z,S[z+s]+=oe*Z,S[B+i]-=P*Z,S[B+s]-=oe*Z);var Pe,Ye,Ke,Re,st,ze;if(F===!0)for(v=0;vK&&(S[v+i]=S[v+i]*K/Pe,S[v+s]=S[v+s]*K/Pe),Ye=S[v+d]*Math.sqrt((S[v+c]-S[v+i])*(S[v+c]-S[v+i])+(S[v+u]-S[v+s])*(S[v+u]-S[v+s])),Ke=Math.sqrt((S[v+c]+S[v+i])*(S[v+c]+S[v+i])+(S[v+u]+S[v+s])*(S[v+u]+S[v+s]))/2,Re=.1*Math.log(1+Ke)/(1+Math.sqrt(Ye)),st=S[v+o]+S[v+i]*(Re/C.slowDown),S[v+o]=st,ze=S[v+l]+S[v+s]*(Re/C.slowDown),S[v+l]=ze);else for(v=0;v1&&se.has(Z))&&(S>1&&se.add(Z),U=s[Q+e],oe=s[Q+t],te=s[Q+r],G=U-q,ge=oe-P,pe=Math.sqrt(G*G+ge*ge),ye=pe0?(m[Q]+=G/pe*(1+ue),E[Q]+=ge/pe*(1+ue)):(m[Q]+=w*o(),E[Q]+=V*o())));for(b=0,y=0;b1&&U.has(ye))&&(v>1&&U.add(ye),te=h[oe+a],G=h[oe+o],pe=h[oe+l],we=te-ue,de=G-Z,me=Math.sqrt(we*we+de*de),Ie=me0?(L[oe]+=we/me*(1+ge),j[oe]+=de/me*(1+ge)):(L[oe]+=C*c(),j[oe]+=S*c())));for(_=0,A=0;_=0;)d=fn(e,t,r,n,c+1,o+1,l),d>u&&(c===a?d*=Oo:_f.test(e.charAt(c-1))?(d*=wf,f=e.slice(a,c-1).match(Cf),f&&a>0&&(d*=Math.pow(Or,f.length))):kf.test(e.charAt(c-1))?(d*=bf,b=e.slice(a,c-1).match(xs),b&&a>0&&(d*=Math.pow(Or,b.length))):(d*=xf,a>0&&(d*=Math.pow(Or,c-a))),e.charAt(c)!==t.charAt(o)&&(d*=Sf)),(dd&&(d=h*Dr)),d>u&&(u=d),c=r.indexOf(s,c+1);return l[i]=u,u}function Go(e){return e.toLowerCase().replace(xs," ")}function Tf(e,t,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,fn(e,t,Go(e),Go(t),0,0,{})}var Gr={exports:{}},Fr={};/** +`);return a}var ds=.25,Td={arrowHead:null,curvatureAttribute:"curvature",defaultCurvature:ds},fs=WebGLRenderingContext,fo=fs.UNSIGNED_BYTE,et=fs.FLOAT;function An(e){var t=Yt(Yt({},Td),e||{}),r=t,n=r.arrowHead,a=r.curvatureAttribute,o=r.drawLabel,l=(n==null?void 0:n.extremity)==="target"||(n==null?void 0:n.extremity)==="both",i=(n==null?void 0:n.extremity)==="source"||(n==null?void 0:n.extremity)==="both",s=["u_matrix","u_sizeRatio","u_dimensions","u_pixelRatio","u_feather","u_minEdgeThickness"].concat(pr(n?["u_lengthToThicknessRatio","u_widenessToThicknessRatio"]:[]));return function(c){yd(u,c);function u(){var d;hd(this,u);for(var h=arguments.length,f=new Array(h),b=0;b{const r=Be(),{gotoNode:n}=da();return p.useEffect(()=>{const a=r.getGraph();if(t){if(e&&a.hasNode(e))try{a.setNodeAttribute(e,"highlighted",!0),n(e)}catch(o){console.error("Error focusing on node:",o)}else r.setCustomBBox(null),r.getCamera().animate({x:.5,y:.5,ratio:1},{duration:0});ee.getState().setMoveToSelectedNode(!1)}else if(e&&a.hasNode(e))try{a.setNodeAttribute(e,"highlighted",!0)}catch(o){console.error("Error highlighting node:",o)}return()=>{if(e&&a.hasNode(e))try{a.setNodeAttribute(e,"highlighted",!1)}catch(o){console.error("Error cleaning up node highlight:",o)}}},[e,t,r,n]),null};function Et(e,t){const r=Be(),n=p.useRef(t);return fa(n.current,t)||(n.current=t),{positions:p.useCallback(()=>n.current?e(r.getGraph(),n.current):{},[r,n,e]),assign:p.useCallback(()=>{n.current&&e.assign(r.getGraph(),n.current)},[r,n,e])}}function jn(e,t){const r=Be(),[n,a]=p.useState(!1),[o,l]=p.useState(null),i=p.useRef(t);return fa(i.current,t)||(i.current=t),p.useEffect(()=>{a(!1);let s=null;return i.current&&(s=new e(r.getGraph(),i.current)),l(s),()=>{s!==null&&s.kill()}},[r,i,l,a,e]),{stop:p.useCallback(()=>{o&&(o.stop(),a(!1))},[o,a]),start:p.useCallback(()=>{o&&(o.start(),a(!0))},[o,a]),kill:p.useCallback(()=>{o&&o.kill(),a(!1)},[o,a]),isRunning:n}}var mr,ho;function At(){if(ho)return mr;ho=1;function e(r){return!r||typeof r!="object"||typeof r=="function"||Array.isArray(r)||r instanceof Set||r instanceof Map||r instanceof RegExp||r instanceof Date}function t(r,n){r=r||{};var a={};for(var o in n){var l=r[o],i=n[o];if(!e(i)){a[o]=t(l,i);continue}l===void 0?a[o]=i:a[o]=l}return a}return mr=t,mr}var vr,go;function Id(){if(go)return vr;go=1;function e(r){return function(n,a){return n+Math.floor(r()*(a-n+1))}}var t=e(Math.random);return t.createRandom=e,vr=t,vr}var yr,po;function Nd(){if(po)return yr;po=1;var e=Id().createRandom;function t(n){var a=e(n);return function(o){for(var l=o.length,i=l-1,s=-1;++s0},a.prototype.addChild=function(m,E){this.children[m]=E,++this.countChildren},a.prototype.getChild=function(m){if(!this.children.hasOwnProperty(m)){var E=new a;this.children[m]=E,++this.countChildren}return this.children[m]},a.prototype.applyPositionToChildren=function(){if(this.hasChildren()){var m=this;for(var E in m.children){var x=m.children[E];x.x+=m.x,x.y+=m.y,x.applyPositionToChildren()}}};function o(m,E,x){for(var k in E.children){var N=E.children[k];N.hasChildren()?o(m,N,x):x[N.id]={x:N.x,y:N.y}}}function l(m,E){var x=m.r-E.r,k=E.x-m.x,N=E.y-m.y;return x<0||x*x0&&x*x>k*k+N*N}function s(m,E){for(var x=0;xK?(N=(O+K-j)/(2*O),V=Math.sqrt(Math.max(0,K/O-N*N)),x.x=m.x-N*k-V*w,x.y=m.y-N*w+V*k):(N=(O+j-K)/(2*O),V=Math.sqrt(Math.max(0,j/O-N*N)),x.x=E.x+N*k-V*w,x.y=E.y+N*w+V*k)):(x.x=E.x+x.r,x.y=E.y)}function L(m,E){var x=m.r+E.r-1e-6,k=E.x-m.x,N=E.y-m.y;return x>0&&x*x>k*k+N*N}function _(m,E){var x=m.length;if(x===0)return 0;var k,N,j,w,V,K,O,C,S,H;if(k=m[0],k.x=0,k.y=0,x<=1)return k.r;if(N=m[1],k.x=-N.r,N.x=k.r,N.y=0,x<=2)return k.r+N.r;j=m[2],T(N,k,j),k=new a(null,null,null,null,k),N=new a(null,null,null,null,N),j=new a(null,null,null,null,j),k.next=j.previous=N,N.next=k.previous=j,j.next=N.previous=k;e:for(K=3;K"u"?a:c};typeof a=="function"&&(l=a);var i=function(c){return l(c[n])},s=function(){return l(void 0)};return typeof n=="string"?(o.fromAttributes=i,o.fromGraph=function(c,u){return i(c.getNodeAttributes(u))},o.fromEntry=function(c,u){return i(u)}):typeof n=="function"?(o.fromAttributes=function(){throw new Error("graphology-utils/getters/createNodeValueGetter: irrelevant usage.")},o.fromGraph=function(c,u){return l(n(u,c.getNodeAttributes(u)))},o.fromEntry=function(c,u){return l(n(c,u))}):(o.fromAttributes=s,o.fromGraph=s,o.fromEntry=s),o}function r(n,a){var o={},l=function(c){return typeof c>"u"?a:c};typeof a=="function"&&(l=a);var i=function(c){return l(c[n])},s=function(){return l(void 0)};return typeof n=="string"?(o.fromAttributes=i,o.fromGraph=function(c,u){return i(c.getEdgeAttributes(u))},o.fromEntry=function(c,u){return i(u)},o.fromPartialEntry=o.fromEntry,o.fromMinimalEntry=o.fromEntry):typeof n=="function"?(o.fromAttributes=function(){throw new Error("graphology-utils/getters/createEdgeValueGetter: irrelevant usage.")},o.fromGraph=function(c,u){var d=c.extremities(u);return l(n(u,c.getEdgeAttributes(u),d[0],d[1],c.getNodeAttributes(d[0]),c.getNodeAttributes(d[1]),c.isUndirected(u)))},o.fromEntry=function(c,u,d,h,f,b,y){return l(n(c,u,d,h,f,b,y))},o.fromPartialEntry=function(c,u,d,h){return l(n(c,u,d,h))},o.fromMinimalEntry=function(c,u){return l(n(c,u))}):(o.fromAttributes=s,o.fromGraph=s,o.fromEntry=s,o.fromMinimalEntry=s),o}return kt.createNodeValueGetter=t,kt.createEdgeValueGetter=r,kt.createEdgeWeightGetter=function(n){return r(n,e)},kt}var xr,bo;function hs(){if(bo)return xr;bo=1;const{createNodeValueGetter:e,createEdgeValueGetter:t}=In();return xr=function(n,a,o){const{nodeXAttribute:l,nodeYAttribute:i}=o,{attraction:s,repulsion:c,gravity:u,inertia:d,maxMove:h}=o.settings;let{shouldSkipNode:f,shouldSkipEdge:b,isNodeFixed:y}=o;y=e(y),f=e(f,!1),b=t(b,!1);const T=n.filterNodes((A,R)=>!f.fromEntry(A,R)),L=T.length;for(let A=0;A{if(I===D||f.fromEntry(I,m)||f.fromEntry(D,E)||b.fromEntry(A,R,I,D,m,E,x))return;const k=a[I],N=a[D],j=N.x-k.x,w=N.y-k.y,V=Math.sqrt(j*j+w*w)||1,K=s*V*j,O=s*V*w;k.dx+=K,k.dy+=O,N.dx-=K,N.dy-=O}),u)for(let A=0;Ah&&(I.dx*=h/D,I.dy*=h/D),y.fromGraph(n,R)?I.fixed=!0:(I.x+=I.dx,I.y+=I.dy,I.fixed=!1)}return{converged:_}},xr}var Pt={},wo;function gs(){return wo||(wo=1,Pt.assignLayoutChanges=function(e,t,r){const{nodeXAttribute:n,nodeYAttribute:a}=r;e.updateEachNodeAttributes((o,l)=>{const i=t[o];return!i||i.fixed||(l[n]=i.x,l[a]=i.y),l},{attributes:["x","y"]})},Pt.collectLayoutChanges=function(e){const t={};for(const r in e){const n=e[r];t[r]={x:n.x,y:n.y}}return t}),Pt}var Sr,xo;function ps(){return xo||(xo=1,Sr={nodeXAttribute:"x",nodeYAttribute:"y",isNodeFixed:"fixed",shouldSkipNode:null,shouldSkipEdge:null,settings:{attraction:5e-4,repulsion:.1,gravity:1e-4,inertia:.6,maxMove:200}}),Sr}var Er,So;function Md(){if(So)return Er;So=1;const e=We(),t=At(),r=hs(),n=gs(),a=ps();function o(i,s,c){if(!e(s))throw new Error("graphology-layout-force: the given graph is not a valid graphology instance.");typeof c=="number"?c={maxIterations:c}:c=c||{};const u=c.maxIterations;if(c=t(c,a),typeof u!="number"||u<=0)throw new Error("graphology-layout-force: you should provide a positive number of maximum iterations.");const d={};let h=null,f;for(f=0;fthis.runFrame())},o.prototype.stop=function(){return this.running=!1,this.frameID!==null&&(window.cancelAnimationFrame(this.frameID),this.frameID=null),this},o.prototype.start=function(){if(this.killed)throw new Error("graphology-layout-force/worker.start: layout was killed.");this.running||(this.running=!0,this.runFrame())},o.prototype.kill=function(){this.stop(),delete this.nodeStates,this.killed=!0},_r=o,_r}var Ud=Vd();const qd=He(Ud);function Wd(e={maxIterations:100}){return Et(Bd,e)}function Xd(e={}){return jn(qd,e)}var Cr,_o;function Yd(){if(_o)return Cr;_o=1;var e=0,t=1,r=2,n=3,a=4,o=5,l=6,i=7,s=8,c=9,u=0,d=1,h=2,f=0,b=1,y=2,T=3,L=4,_=5,A=6,R=7,I=8,D=3,m=10,E=3,x=9,k=10;return Cr=function(j,w,V){var K,O,C,S,H,ae,$,v,z,B,M=w.length,J=V.length,X=j.adjustSizes,Y=j.barnesHutTheta*j.barnesHutTheta,ie,ne,se,F,Q,q,U,P=[];for(C=0;Cwe?(te-=(ye-we)/2,Z=te+ye):(oe-=(we-ye)/2,ue=oe+we),P[0+f]=-1,P[0+b]=(oe+ue)/2,P[0+y]=(te+Z)/2,P[0+T]=Math.max(ue-oe,Z-te),P[0+L]=-1,P[0+_]=-1,P[0+A]=0,P[0+R]=0,P[0+I]=0,K=1,C=0;C=0){w[C+e]=0)if(q=Math.pow(w[C+e]-P[O+R],2)+Math.pow(w[C+t]-P[O+I],2),B=P[O+T],4*B*B/q0?(U=ne*w[C+l]*P[O+A]/q,w[C+r]+=se*U,w[C+n]+=F*U):q<0&&(U=-ne*w[C+l]*P[O+A]/Math.sqrt(q),w[C+r]+=se*U,w[C+n]+=F*U):q>0&&(U=ne*w[C+l]*P[O+A]/q,w[C+r]+=se*U,w[C+n]+=F*U),O=P[O+L],O<0)break;continue}else{O=P[O+_];continue}else{if(ae=P[O+f],ae>=0&&ae!==C&&(se=w[C+e]-w[ae+e],F=w[C+t]-w[ae+t],q=se*se+F*F,X===!0?q>0?(U=ne*w[C+l]*w[ae+l]/q,w[C+r]+=se*U,w[C+n]+=F*U):q<0&&(U=-ne*w[C+l]*w[ae+l]/Math.sqrt(q),w[C+r]+=se*U,w[C+n]+=F*U):q>0&&(U=ne*w[C+l]*w[ae+l]/q,w[C+r]+=se*U,w[C+n]+=F*U)),O=P[O+L],O<0)break;continue}else for(ne=j.scalingRatio,S=0;S0?(U=ne*w[S+l]*w[H+l]/q/q,w[S+r]+=se*U,w[S+n]+=F*U,w[H+r]-=se*U,w[H+n]-=F*U):q<0&&(U=100*ne*w[S+l]*w[H+l],w[S+r]+=se*U,w[S+n]+=F*U,w[H+r]-=se*U,w[H+n]-=F*U)):(q=Math.sqrt(se*se+F*F),q>0&&(U=ne*w[S+l]*w[H+l]/q/q,w[S+r]+=se*U,w[S+n]+=F*U,w[H+r]-=se*U,w[H+n]-=F*U));for(z=j.gravity/j.scalingRatio,ne=j.scalingRatio,C=0;C0&&(U=ne*w[C+l]*z):q>0&&(U=ne*w[C+l]*z/q),w[C+r]-=se*U,w[C+n]-=F*U;for(ne=1*(j.outboundAttractionDistribution?ie:1),$=0;$0&&(U=-ne*Q*Math.log(1+q)/q/w[S+l]):q>0&&(U=-ne*Q*Math.log(1+q)/q):j.outboundAttractionDistribution?q>0&&(U=-ne*Q/w[S+l]):q>0&&(U=-ne*Q)):(q=Math.sqrt(Math.pow(se,2)+Math.pow(F,2)),j.linLogMode?j.outboundAttractionDistribution?q>0&&(U=-ne*Q*Math.log(1+q)/q/w[S+l]):q>0&&(U=-ne*Q*Math.log(1+q)/q):j.outboundAttractionDistribution?(q=1,U=-ne*Q/w[S+l]):(q=1,U=-ne*Q)),q>0&&(w[S+r]+=se*U,w[S+n]+=F*U,w[H+r]-=se*U,w[H+n]-=F*U);var de,me,Ie,ke,Te,Pe;if(X===!0)for(C=0;Ck&&(w[C+r]=w[C+r]*k/de,w[C+n]=w[C+n]*k/de),me=w[C+l]*Math.sqrt((w[C+a]-w[C+r])*(w[C+a]-w[C+r])+(w[C+o]-w[C+n])*(w[C+o]-w[C+n])),Ie=Math.sqrt((w[C+a]+w[C+r])*(w[C+a]+w[C+r])+(w[C+o]+w[C+n])*(w[C+o]+w[C+n]))/2,ke=.1*Math.log(1+Ie)/(1+Math.sqrt(me)),Te=w[C+e]+w[C+r]*(ke/j.slowDown),w[C+e]=Te,Pe=w[C+t]+w[C+n]*(ke/j.slowDown),w[C+t]=Pe);else for(C=0;C=0)?{message:"the `scalingRatio` setting should be a number >= 0."}:"strongGravityMode"in r&&typeof r.strongGravityMode!="boolean"?{message:"the `strongGravityMode` setting should be a boolean."}:"gravity"in r&&!(typeof r.gravity=="number"&&r.gravity>=0)?{message:"the `gravity` setting should be a number >= 0."}:"slowDown"in r&&!(typeof r.slowDown=="number"||r.slowDown>=0)?{message:"the `slowDown` setting should be a number >= 0."}:"barnesHutOptimize"in r&&typeof r.barnesHutOptimize!="boolean"?{message:"the `barnesHutOptimize` setting should be a boolean."}:"barnesHutTheta"in r&&!(typeof r.barnesHutTheta=="number"&&r.barnesHutTheta>=0)?{message:"the `barnesHutTheta` setting should be a number >= 0."}:null},qe.graphToByteArrays=function(r,n){var a=r.order,o=r.size,l={},i,s=new Float32Array(a*e),c=new Float32Array(o*t);return i=0,r.forEachNode(function(u,d){l[u]=i,s[i]=d.x,s[i+1]=d.y,s[i+2]=0,s[i+3]=0,s[i+4]=0,s[i+5]=0,s[i+6]=1,s[i+7]=1,s[i+8]=d.size||1,s[i+9]=d.fixed?1:0,i+=e}),i=0,r.forEachEdge(function(u,d,h,f,b,y,T){var L=l[h],_=l[f],A=n(u,d,h,f,b,y,T);s[L+6]+=A,s[_+6]+=A,c[i]=L,c[i+1]=_,c[i+2]=A,i+=t}),{nodes:s,edges:c}},qe.assignLayoutChanges=function(r,n,a){var o=0;r.updateEachNodeAttributes(function(l,i){return i.x=n[o],i.y=n[o+1],o+=e,a?a(l,i):i})},qe.readGraphPositions=function(r,n){var a=0;r.forEachNode(function(o,l){n[a]=l.x,n[a+1]=l.y,a+=e})},qe.collectLayoutChanges=function(r,n,a){for(var o=r.nodes(),l={},i=0,s=0,c=n.length;i2e3,strongGravityMode:!0,gravity:.05,scalingRatio:10,slowDown:1+Math.log(c)}}var i=o.bind(null,!1);return i.assign=o.bind(null,!0),i.inferSettings=l,Tr=i,Tr}var Qd=Kd();const Jd=He(Qd);var Rr,Ro;function Zd(){return Ro||(Ro=1,Rr=function(){var t,r,n={};(function(){var o=0,l=1,i=2,s=3,c=4,u=5,d=6,h=7,f=8,b=9,y=0,T=1,L=2,_=0,A=1,R=2,I=3,D=4,m=5,E=6,x=7,k=8,N=3,j=10,w=3,V=9,K=10;n.exports=function(C,S,H){var ae,$,v,z,B,M,J,X,Y,ie,ne=S.length,se=H.length,F=C.adjustSizes,Q=C.barnesHutTheta*C.barnesHutTheta,q,U,P,oe,ue,te,Z,G=[];for(v=0;vTe?(ye-=(ke-Te)/2,we=ye+ke):(ge-=(Te-ke)/2,pe=ge+Te),G[0+_]=-1,G[0+A]=(ge+pe)/2,G[0+R]=(ye+we)/2,G[0+I]=Math.max(pe-ge,we-ye),G[0+D]=-1,G[0+m]=-1,G[0+E]=0,G[0+x]=0,G[0+k]=0,ae=1,v=0;v=0){S[v+o]=0)if(te=Math.pow(S[v+o]-G[$+x],2)+Math.pow(S[v+l]-G[$+k],2),ie=G[$+I],4*ie*ie/te0?(Z=U*S[v+d]*G[$+E]/te,S[v+i]+=P*Z,S[v+s]+=oe*Z):te<0&&(Z=-U*S[v+d]*G[$+E]/Math.sqrt(te),S[v+i]+=P*Z,S[v+s]+=oe*Z):te>0&&(Z=U*S[v+d]*G[$+E]/te,S[v+i]+=P*Z,S[v+s]+=oe*Z),$=G[$+D],$<0)break;continue}else{$=G[$+m];continue}else{if(M=G[$+_],M>=0&&M!==v&&(P=S[v+o]-S[M+o],oe=S[v+l]-S[M+l],te=P*P+oe*oe,F===!0?te>0?(Z=U*S[v+d]*S[M+d]/te,S[v+i]+=P*Z,S[v+s]+=oe*Z):te<0&&(Z=-U*S[v+d]*S[M+d]/Math.sqrt(te),S[v+i]+=P*Z,S[v+s]+=oe*Z):te>0&&(Z=U*S[v+d]*S[M+d]/te,S[v+i]+=P*Z,S[v+s]+=oe*Z)),$=G[$+D],$<0)break;continue}else for(U=C.scalingRatio,z=0;z0?(Z=U*S[z+d]*S[B+d]/te/te,S[z+i]+=P*Z,S[z+s]+=oe*Z,S[B+i]-=P*Z,S[B+s]-=oe*Z):te<0&&(Z=100*U*S[z+d]*S[B+d],S[z+i]+=P*Z,S[z+s]+=oe*Z,S[B+i]-=P*Z,S[B+s]-=oe*Z)):(te=Math.sqrt(P*P+oe*oe),te>0&&(Z=U*S[z+d]*S[B+d]/te/te,S[z+i]+=P*Z,S[z+s]+=oe*Z,S[B+i]-=P*Z,S[B+s]-=oe*Z));for(Y=C.gravity/C.scalingRatio,U=C.scalingRatio,v=0;v0&&(Z=U*S[v+d]*Y):te>0&&(Z=U*S[v+d]*Y/te),S[v+i]-=P*Z,S[v+s]-=oe*Z;for(U=1*(C.outboundAttractionDistribution?q:1),J=0;J0&&(Z=-U*ue*Math.log(1+te)/te/S[z+d]):te>0&&(Z=-U*ue*Math.log(1+te)/te):C.outboundAttractionDistribution?te>0&&(Z=-U*ue/S[z+d]):te>0&&(Z=-U*ue)):(te=Math.sqrt(Math.pow(P,2)+Math.pow(oe,2)),C.linLogMode?C.outboundAttractionDistribution?te>0&&(Z=-U*ue*Math.log(1+te)/te/S[z+d]):te>0&&(Z=-U*ue*Math.log(1+te)/te):C.outboundAttractionDistribution?(te=1,Z=-U*ue/S[z+d]):(te=1,Z=-U*ue)),te>0&&(S[z+i]+=P*Z,S[z+s]+=oe*Z,S[B+i]-=P*Z,S[B+s]-=oe*Z);var Pe,Ye,Ke,Re,st,ze;if(F===!0)for(v=0;vK&&(S[v+i]=S[v+i]*K/Pe,S[v+s]=S[v+s]*K/Pe),Ye=S[v+d]*Math.sqrt((S[v+c]-S[v+i])*(S[v+c]-S[v+i])+(S[v+u]-S[v+s])*(S[v+u]-S[v+s])),Ke=Math.sqrt((S[v+c]+S[v+i])*(S[v+c]+S[v+i])+(S[v+u]+S[v+s])*(S[v+u]+S[v+s]))/2,Re=.1*Math.log(1+Ke)/(1+Math.sqrt(Ye)),st=S[v+o]+S[v+i]*(Re/C.slowDown),S[v+o]=st,ze=S[v+l]+S[v+s]*(Re/C.slowDown),S[v+l]=ze);else for(v=0;v1&&se.has(Z))&&(S>1&&se.add(Z),U=s[Q+e],oe=s[Q+t],te=s[Q+r],G=U-q,ge=oe-P,pe=Math.sqrt(G*G+ge*ge),ye=pe0?(m[Q]+=G/pe*(1+ue),E[Q]+=ge/pe*(1+ue)):(m[Q]+=w*o(),E[Q]+=V*o())));for(b=0,y=0;b1&&U.has(ye))&&(v>1&&U.add(ye),te=h[oe+a],G=h[oe+o],pe=h[oe+l],we=te-ue,de=G-Z,me=Math.sqrt(we*we+de*de),Ie=me0?(N[oe]+=we/me*(1+ge),j[oe]+=de/me*(1+ge)):(N[oe]+=C*c(),j[oe]+=S*c())));for(_=0,A=0;_=0;)d=fn(e,t,r,n,c+1,o+1,l),d>u&&(c===a?d*=Oo:_f.test(e.charAt(c-1))?(d*=wf,f=e.slice(a,c-1).match(Cf),f&&a>0&&(d*=Math.pow(Or,f.length))):kf.test(e.charAt(c-1))?(d*=bf,b=e.slice(a,c-1).match(xs),b&&a>0&&(d*=Math.pow(Or,b.length))):(d*=xf,a>0&&(d*=Math.pow(Or,c-a))),e.charAt(c)!==t.charAt(o)&&(d*=Sf)),(dd&&(d=h*Dr)),d>u&&(u=d),c=r.indexOf(s,c+1);return l[i]=u,u}function Go(e){return e.toLowerCase().replace(xs," ")}function Tf(e,t,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,fn(e,t,Go(e),Go(t),0,0,{})}var Gr={exports:{}},Fr={};/** * @license React * use-sync-external-store-shim.production.js * @@ -696,4 +696,4 @@ void main() { * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Fo;function Rf(){if(Fo)return Fr;Fo=1;var e=gi();function t(d,h){return d===h&&(d!==0||1/d===1/h)||d!==d&&h!==h}var r=typeof Object.is=="function"?Object.is:t,n=e.useState,a=e.useEffect,o=e.useLayoutEffect,l=e.useDebugValue;function i(d,h){var f=h(),b=n({inst:{value:f,getSnapshot:h}}),y=b[0].inst,T=b[1];return o(function(){y.value=f,y.getSnapshot=h,s(y)&&T({inst:y})},[d,f,h]),a(function(){return s(y)&&T({inst:y}),d(function(){s(y)&&T({inst:y})})},[d]),l(f),f}function s(d){var h=d.getSnapshot;d=d.value;try{var f=h();return!r(d,f)}catch{return!0}}function c(d,h){return h()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:i;return Fr.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:u,Fr}var $o;function Af(){return $o||($o=1,Gr.exports=Rf()),Gr.exports}var jf=Af(),Tt='[cmdk-group=""]',$r='[cmdk-group-items=""]',If='[cmdk-group-heading=""]',Ln='[cmdk-item=""]',Mo=`${Ln}:not([aria-disabled="true"])`,hn="cmdk-item-select",dt="data-value",Lf=(e,t,r)=>Tf(e,t,r),Ss=p.createContext(void 0),jt=()=>p.useContext(Ss),Es=p.createContext(void 0),Nn=()=>p.useContext(Es),_s=p.createContext(void 0),Cs=p.forwardRef((e,t)=>{let r=yt(()=>{var v,z;return{search:"",value:(z=(v=e.value)!=null?v:e.defaultValue)!=null?z:"",filtered:{count:0,items:new Map,groups:new Set}}}),n=yt(()=>new Set),a=yt(()=>new Map),o=yt(()=>new Map),l=yt(()=>new Set),i=ks(e),{label:s,children:c,value:u,onValueChange:d,filter:h,shouldFilter:f,loop:b,disablePointerSelection:y=!1,vimBindings:T=!0,...N}=e,_=ft(),A=ft(),R=ft(),I=p.useRef(null),D=Bf();gt(()=>{if(u!==void 0){let v=u.trim();r.current.value=v,m.emit()}},[u]),gt(()=>{D(6,w)},[]);let m=p.useMemo(()=>({subscribe:v=>(l.current.add(v),()=>l.current.delete(v)),snapshot:()=>r.current,setState:(v,z,B)=>{var M,J,X;if(!Object.is(r.current[v],z)){if(r.current[v]=z,v==="search")j(),k(),D(1,L);else if(v==="value"&&(B||D(5,w),((M=i.current)==null?void 0:M.value)!==void 0)){let Y=z??"";(X=(J=i.current).onValueChange)==null||X.call(J,Y);return}m.emit()}},emit:()=>{l.current.forEach(v=>v())}}),[]),E=p.useMemo(()=>({value:(v,z,B)=>{var M;z!==((M=o.current.get(v))==null?void 0:M.value)&&(o.current.set(v,{value:z,keywords:B}),r.current.filtered.items.set(v,x(z,B)),D(2,()=>{k(),m.emit()}))},item:(v,z)=>(n.current.add(v),z&&(a.current.has(z)?a.current.get(z).add(v):a.current.set(z,new Set([v]))),D(3,()=>{j(),k(),r.current.value||L(),m.emit()}),()=>{o.current.delete(v),n.current.delete(v),r.current.filtered.items.delete(v);let B=V();D(4,()=>{j(),(B==null?void 0:B.getAttribute("id"))===v&&L(),m.emit()})}),group:v=>(a.current.has(v)||a.current.set(v,new Set),()=>{o.current.delete(v),a.current.delete(v)}),filter:()=>i.current.shouldFilter,label:s||e["aria-label"],getDisablePointerSelection:()=>i.current.disablePointerSelection,listId:_,inputId:R,labelId:A,listInnerRef:I}),[]);function x(v,z){var B,M;let J=(M=(B=i.current)==null?void 0:B.filter)!=null?M:Lf;return v?J(v,r.current.search,z):0}function k(){if(!r.current.search||i.current.shouldFilter===!1)return;let v=r.current.filtered.items,z=[];r.current.filtered.groups.forEach(M=>{let J=a.current.get(M),X=0;J.forEach(Y=>{let ie=v.get(Y);X=Math.max(ie,X)}),z.push([M,X])});let B=I.current;K().sort((M,J)=>{var X,Y;let ie=M.getAttribute("id"),ne=J.getAttribute("id");return((X=v.get(ne))!=null?X:0)-((Y=v.get(ie))!=null?Y:0)}).forEach(M=>{let J=M.closest($r);J?J.appendChild(M.parentElement===J?M:M.closest(`${$r} > *`)):B.appendChild(M.parentElement===B?M:M.closest(`${$r} > *`))}),z.sort((M,J)=>J[1]-M[1]).forEach(M=>{var J;let X=(J=I.current)==null?void 0:J.querySelector(`${Tt}[${dt}="${encodeURIComponent(M[0])}"]`);X==null||X.parentElement.appendChild(X)})}function L(){let v=K().find(B=>B.getAttribute("aria-disabled")!=="true"),z=v==null?void 0:v.getAttribute(dt);m.setState("value",z||void 0)}function j(){var v,z,B,M;if(!r.current.search||i.current.shouldFilter===!1){r.current.filtered.count=n.current.size;return}r.current.filtered.groups=new Set;let J=0;for(let X of n.current){let Y=(z=(v=o.current.get(X))==null?void 0:v.value)!=null?z:"",ie=(M=(B=o.current.get(X))==null?void 0:B.keywords)!=null?M:[],ne=x(Y,ie);r.current.filtered.items.set(X,ne),ne>0&&J++}for(let[X,Y]of a.current)for(let ie of Y)if(r.current.filtered.items.get(ie)>0){r.current.filtered.groups.add(X);break}r.current.filtered.count=J}function w(){var v,z,B;let M=V();M&&(((v=M.parentElement)==null?void 0:v.firstChild)===M&&((B=(z=M.closest(Tt))==null?void 0:z.querySelector(If))==null||B.scrollIntoView({block:"nearest"})),M.scrollIntoView({block:"nearest"}))}function V(){var v;return(v=I.current)==null?void 0:v.querySelector(`${Ln}[aria-selected="true"]`)}function K(){var v;return Array.from(((v=I.current)==null?void 0:v.querySelectorAll(Mo))||[])}function O(v){let z=K()[v];z&&m.setState("value",z.getAttribute(dt))}function C(v){var z;let B=V(),M=K(),J=M.findIndex(Y=>Y===B),X=M[J+v];(z=i.current)!=null&&z.loop&&(X=J+v<0?M[M.length-1]:J+v===M.length?M[0]:M[J+v]),X&&m.setState("value",X.getAttribute(dt))}function S(v){let z=V(),B=z==null?void 0:z.closest(Tt),M;for(;B&&!M;)B=v>0?Mf(B,Tt):Hf(B,Tt),M=B==null?void 0:B.querySelector(Mo);M?m.setState("value",M.getAttribute(dt)):C(v)}let H=()=>O(K().length-1),ae=v=>{v.preventDefault(),v.metaKey?H():v.altKey?S(1):C(1)},$=v=>{v.preventDefault(),v.metaKey?O(0):v.altKey?S(-1):C(-1)};return p.createElement(Ee.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:v=>{var z;if((z=N.onKeyDown)==null||z.call(N,v),!v.defaultPrevented)switch(v.key){case"n":case"j":{T&&v.ctrlKey&&ae(v);break}case"ArrowDown":{ae(v);break}case"p":case"k":{T&&v.ctrlKey&&$(v);break}case"ArrowUp":{$(v);break}case"Home":{v.preventDefault(),O(0);break}case"End":{v.preventDefault(),H();break}case"Enter":if(!v.nativeEvent.isComposing&&v.keyCode!==229){v.preventDefault();let B=V();if(B){let M=new Event(hn);B.dispatchEvent(M)}}}}},p.createElement("label",{"cmdk-label":"",htmlFor:E.inputId,id:E.labelId,style:Uf},s),lr(e,v=>p.createElement(Es.Provider,{value:m},p.createElement(Ss.Provider,{value:E},v))))}),Nf=p.forwardRef((e,t)=>{var r,n;let a=ft(),o=p.useRef(null),l=p.useContext(_s),i=jt(),s=ks(e),c=(n=(r=s.current)==null?void 0:r.forceMount)!=null?n:l==null?void 0:l.forceMount;gt(()=>{if(!c)return i.item(a,l==null?void 0:l.id)},[c]);let u=Ts(a,o,[e.value,e.children,o],e.keywords),d=Nn(),h=pt(D=>D.value&&D.value===u.current),f=pt(D=>c||i.filter()===!1?!0:D.search?D.filtered.items.get(a)>0:!0);p.useEffect(()=>{let D=o.current;if(!(!D||e.disabled))return D.addEventListener(hn,b),()=>D.removeEventListener(hn,b)},[f,e.onSelect,e.disabled]);function b(){var D,m;y(),(m=(D=s.current).onSelect)==null||m.call(D,u.current)}function y(){d.setState("value",u.current,!0)}if(!f)return null;let{disabled:T,value:N,onSelect:_,forceMount:A,keywords:R,...I}=e;return p.createElement(Ee.div,{ref:Rt([o,t]),...I,id:a,"cmdk-item":"",role:"option","aria-disabled":!!T,"aria-selected":!!h,"data-disabled":!!T,"data-selected":!!h,onPointerMove:T||i.getDisablePointerSelection()?void 0:y,onClick:T?void 0:b},e.children)}),Pf=p.forwardRef((e,t)=>{let{heading:r,children:n,forceMount:a,...o}=e,l=ft(),i=p.useRef(null),s=p.useRef(null),c=ft(),u=jt(),d=pt(f=>a||u.filter()===!1?!0:f.search?f.filtered.groups.has(l):!0);gt(()=>u.group(l),[]),Ts(l,i,[e.value,e.heading,s]);let h=p.useMemo(()=>({id:l,forceMount:a}),[a]);return p.createElement(Ee.div,{ref:Rt([i,t]),...o,"cmdk-group":"",role:"presentation",hidden:d?void 0:!0},r&&p.createElement("div",{ref:s,"cmdk-group-heading":"","aria-hidden":!0,id:c},r),lr(e,f=>p.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?c:void 0},p.createElement(_s.Provider,{value:h},f))))}),zf=p.forwardRef((e,t)=>{let{alwaysRender:r,...n}=e,a=p.useRef(null),o=pt(l=>!l.search);return!r&&!o?null:p.createElement(Ee.div,{ref:Rt([a,t]),...n,"cmdk-separator":"",role:"separator"})}),Df=p.forwardRef((e,t)=>{let{onValueChange:r,...n}=e,a=e.value!=null,o=Nn(),l=pt(u=>u.search),i=pt(u=>u.value),s=jt(),c=p.useMemo(()=>{var u;let d=(u=s.listInnerRef.current)==null?void 0:u.querySelector(`${Ln}[${dt}="${encodeURIComponent(i)}"]`);return d==null?void 0:d.getAttribute("id")},[]);return p.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),p.createElement(Ee.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":s.listId,"aria-labelledby":s.labelId,"aria-activedescendant":c,id:s.inputId,type:"text",value:a?e.value:l,onChange:u=>{a||o.setState("search",u.target.value),r==null||r(u.target.value)}})}),Of=p.forwardRef((e,t)=>{let{children:r,label:n="Suggestions",...a}=e,o=p.useRef(null),l=p.useRef(null),i=jt();return p.useEffect(()=>{if(l.current&&o.current){let s=l.current,c=o.current,u,d=new ResizeObserver(()=>{u=requestAnimationFrame(()=>{let h=s.offsetHeight;c.style.setProperty("--cmdk-list-height",h.toFixed(1)+"px")})});return d.observe(s),()=>{cancelAnimationFrame(u),d.unobserve(s)}}},[]),p.createElement(Ee.div,{ref:Rt([o,t]),...a,"cmdk-list":"",role:"listbox","aria-label":n,id:i.listId},lr(e,s=>p.createElement("div",{ref:Rt([l,i.listInnerRef]),"cmdk-list-sizer":""},s)))}),Gf=p.forwardRef((e,t)=>{let{open:r,onOpenChange:n,overlayClassName:a,contentClassName:o,container:l,...i}=e;return p.createElement(wa,{open:r,onOpenChange:n},p.createElement(va,{container:l},p.createElement(xn,{"cmdk-overlay":"",className:a}),p.createElement(Sn,{"aria-label":e.label,"cmdk-dialog":"",className:o},p.createElement(Cs,{ref:t,...i}))))}),Ff=p.forwardRef((e,t)=>pt(r=>r.filtered.count===0)?p.createElement(Ee.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),$f=p.forwardRef((e,t)=>{let{progress:r,children:n,label:a="Loading...",...o}=e;return p.createElement(Ee.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},lr(e,l=>p.createElement("div",{"aria-hidden":!0},l)))}),je=Object.assign(Cs,{List:Of,Item:Nf,Input:Df,Group:Pf,Separator:zf,Dialog:Gf,Empty:Ff,Loading:$f});function Mf(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}function Hf(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}function ks(e){let t=p.useRef(e);return gt(()=>{t.current=e}),t}var gt=typeof window>"u"?p.useEffect:p.useLayoutEffect;function yt(e){let t=p.useRef();return t.current===void 0&&(t.current=e()),t}function Rt(e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}function pt(e){let t=Nn(),r=()=>e(t.snapshot());return jf.useSyncExternalStore(t.subscribe,r,r)}function Ts(e,t,r,n=[]){let a=p.useRef(),o=jt();return gt(()=>{var l;let i=(()=>{var c;for(let u of r){if(typeof u=="string")return u.trim();if(typeof u=="object"&&"current"in u)return u.current?(c=u.current.textContent)==null?void 0:c.trim():a.current}})(),s=n.map(c=>c.trim());o.value(e,i,s),(l=t.current)==null||l.setAttribute(dt,i),a.current=i}),a}var Bf=()=>{let[e,t]=p.useState(),r=yt(()=>new Map);return gt(()=>{r.current.forEach(n=>n()),r.current=new Map},[e]),(n,a)=>{r.current.set(n,a),t({})}};function Vf(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function lr({asChild:e,children:t},r){return e&&p.isValidElement(t)?p.cloneElement(Vf(t),{ref:t.ref},r(t.props.children)):r(t)}var Uf={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const cr=p.forwardRef(({className:e,...t},r)=>g.jsx(je,{ref:r,className:fe("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...t}));cr.displayName=je.displayName;const Pn=p.forwardRef(({className:e,...t},r)=>g.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[g.jsx(yu,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),g.jsx(je.Input,{ref:r,className:fe("placeholder:text-muted-foreground flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));Pn.displayName=je.Input.displayName;const ur=p.forwardRef(({className:e,...t},r)=>g.jsx(je.List,{ref:r,className:fe("max-h-[300px] overflow-x-hidden overflow-y-auto",e),...t}));ur.displayName=je.List.displayName;const zn=p.forwardRef((e,t)=>g.jsx(je.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));zn.displayName=je.Empty.displayName;const _t=p.forwardRef(({className:e,...t},r)=>g.jsx(je.Group,{ref:r,className:fe("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...t}));_t.displayName=je.Group.displayName;const qf=p.forwardRef(({className:e,...t},r)=>g.jsx(je.Separator,{ref:r,className:fe("bg-border -mx-1 h-px",e),...t}));qf.displayName=je.Separator.displayName;const Ct=p.forwardRef(({className:e,...t},r)=>g.jsx(je.Item,{ref:r,className:fe("data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));Ct.displayName=je.Item.displayName;const Wf=({layout:e,autoRunFor:t,mainLayout:r})=>{const n=Be(),[a,o]=p.useState(!1),l=p.useRef(null),{t:i}=xe(),s=p.useCallback(()=>{if(n)try{const u=n.getGraph();if(!u||u.order===0)return;const d=r.positions();ha(u,d,{duration:300})}catch(u){console.error("Error updating positions:",u),l.current&&(window.clearInterval(l.current),l.current=null,o(!1))}},[n,r]),c=p.useCallback(()=>{if(a){console.log("Stopping layout animation"),l.current&&(window.clearInterval(l.current),l.current=null);try{typeof e.kill=="function"?(e.kill(),console.log("Layout algorithm killed")):typeof e.stop=="function"&&(e.stop(),console.log("Layout algorithm stopped"))}catch(u){console.error("Error stopping layout algorithm:",u)}o(!1)}else console.log("Starting layout animation"),s(),l.current=window.setInterval(()=>{s()},200),o(!0),setTimeout(()=>{if(l.current){console.log("Auto-stopping layout animation after 3 seconds"),window.clearInterval(l.current),l.current=null,o(!1);try{typeof e.kill=="function"?e.kill():typeof e.stop=="function"&&e.stop()}catch(u){console.error("Error stopping layout algorithm:",u)}}},3e3)},[a,e,s]);return p.useEffect(()=>{if(!n){console.log("No sigma instance available");return}let u=null;return t!==void 0&&t>-1&&n.getGraph().order>0&&(console.log("Auto-starting layout animation"),s(),l.current=window.setInterval(()=>{s()},200),o(!0),t>0&&(u=window.setTimeout(()=>{console.log("Auto-stopping layout animation after timeout"),l.current&&(window.clearInterval(l.current),l.current=null),o(!1)},t))),()=>{l.current&&(window.clearInterval(l.current),l.current=null),u&&window.clearTimeout(u),o(!1)}},[t,n,s]),g.jsx(be,{size:"icon",onClick:c,tooltip:i(a?"graphPanel.sideBar.layoutsControl.stopAnimation":"graphPanel.sideBar.layoutsControl.startAnimation"),variant:Le,children:a?g.jsx(ou,{}):g.jsx(lu,{})})},Xf=()=>{const e=Be(),{t}=xe(),[r,n]=p.useState("Circular"),[a,o]=p.useState(!1),l=re.use.graphLayoutMaxIterations(),i=$d(),s=Dd(),c=yf(),u=hf({maxIterations:l,settings:{margin:5,expansion:1.1,gridSize:1,ratio:1,speed:3}}),d=Wd({maxIterations:l,settings:{attraction:3e-4,repulsion:.02,gravity:.02,inertia:.4,maxMove:100}}),h=ys({iterations:l}),f=gf(),b=Xd(),y=nf(),T=p.useMemo(()=>({Circular:{layout:i},Circlepack:{layout:s},Random:{layout:c},Noverlaps:{layout:u,worker:f},"Force Directed":{layout:d,worker:b},"Force Atlas":{layout:h,worker:y}}),[s,i,d,h,u,c,b,f,y]),N=p.useCallback(_=>{console.debug("Running layout:",_);const{positions:A}=T[_].layout;try{const R=e.getGraph();if(!R){console.error("No graph available");return}const I=A();console.log("Positions calculated, animating nodes"),ha(R,I,{duration:400}),n(_)}catch(R){console.error("Error running layout:",R)}},[T,e]);return g.jsxs("div",{children:[g.jsx("div",{children:T[r]&&"worker"in T[r]&&g.jsx(Wf,{layout:T[r].worker,mainLayout:T[r].layout})}),g.jsx("div",{children:g.jsxs(Tn,{open:a,onOpenChange:o,children:[g.jsx(Rn,{asChild:!0,children:g.jsx(be,{size:"icon",variant:Le,onClick:()=>o(_=>!_),tooltip:t("graphPanel.sideBar.layoutsControl.layoutGraph"),children:g.jsx(Xc,{})})}),g.jsx(ir,{side:"right",align:"start",sideOffset:8,collisionPadding:5,sticky:"always",className:"p-1 min-w-auto",children:g.jsx(cr,{children:g.jsx(ur,{children:g.jsx(_t,{children:Object.keys(T).map(_=>g.jsx(Ct,{onSelect:()=>{N(_)},className:"cursor-pointer text-xs",children:t(`graphPanel.sideBar.layoutsControl.layouts.${_}`)},_))})})})})]})})]})},Yf=()=>{const e=p.useContext(Ra);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},zt=e=>!!(e.type.startsWith("mouse")&&e.buttons!==0),Kf=({disableHoverEffect:e})=>{const t=Be(),r=ga(),n=bi(),a=re.use.graphLayoutMaxIterations(),{assign:o}=ys({iterations:a}),{theme:l}=Yf(),i=re.use.enableHideUnselectedEdges(),s=re.use.enableEdgeEvents(),c=re.use.showEdgeLabel(),u=re.use.showNodeLabel(),d=re.use.minEdgeSize(),h=re.use.maxEdgeSize(),f=ee.use.selectedNode(),b=ee.use.focusedNode(),y=ee.use.selectedEdge(),T=ee.use.focusedEdge(),N=ee.use.sigmaGraph();return p.useEffect(()=>{if(N&&t){try{typeof t.setGraph=="function"?(t.setGraph(N),console.log("Binding graph to sigma instance")):(t.graph=N,console.warn("Simgma missing setGraph function, set graph property directly"))}catch(_){console.error("Error setting graph on sigma instance:",_)}o(),console.log("Initial layout applied to graph")}},[t,N,o,a]),p.useEffect(()=>{t&&(ee.getState().sigmaInstance||(console.log("Setting sigma instance from GraphControl"),ee.getState().setSigmaInstance(t)))},[t]),p.useEffect(()=>{const{setFocusedNode:_,setSelectedNode:A,setFocusedEdge:R,setSelectedEdge:I,clearSelection:D}=ee.getState(),m={enterNode:E=>{zt(E.event.original)||t.getGraph().hasNode(E.node)&&_(E.node)},leaveNode:E=>{zt(E.event.original)||_(null)},clickNode:E=>{t.getGraph().hasNode(E.node)&&(A(E.node),I(null))},clickStage:()=>D()};s&&(m.clickEdge=E=>{I(E.edge),A(null)},m.enterEdge=E=>{zt(E.event.original)||R(E.edge)},m.leaveEdge=E=>{zt(E.event.original)||R(null)}),r(m)},[r,s]),p.useEffect(()=>{if(t&&N){const _=t.getGraph();let A=Number.MAX_SAFE_INTEGER,R=0;_.forEachEdge(D=>{const m=_.getEdgeAttribute(D,"originalWeight")||1;typeof m=="number"&&(A=Math.min(A,m),R=Math.max(R,m))});const I=R-A;if(I>0){const D=h-d;_.forEachEdge(m=>{const E=_.getEdgeAttribute(m,"originalWeight")||1;if(typeof E=="number"){const x=d+D*Math.pow((E-A)/I,.5);_.setEdgeAttribute(m,"size",x)}})}else _.forEachEdge(D=>{_.setEdgeAttribute(D,"size",d)});t.refresh()}},[t,N,d,h]),p.useEffect(()=>{const _=l==="dark",A=_?Vi:void 0,R=_?Xi:void 0;n({enableEdgeEvents:s,renderEdgeLabels:c,renderLabels:u,nodeReducer:(I,D)=>{const m=t.getGraph(),E={...D,highlighted:D.highlighted||!1,labelColor:A};if(!e){E.highlighted=!1;const x=b||f,k=T||y;if(x&&m.hasNode(x))try{(I===x||m.neighbors(x).includes(I))&&(E.highlighted=!0,I===f&&(E.borderColor=Wi))}catch(L){console.error("Error in nodeReducer:",L)}else if(k&&m.hasEdge(k))m.extremities(k).includes(I)&&(E.highlighted=!0,E.size=3);else return E;E.highlighted?_&&(E.labelColor=Ui):E.color=qi}return E},edgeReducer:(I,D)=>{const m=t.getGraph(),E={...D,hidden:!1,labelColor:A,color:R};if(!e){const x=b||f;if(x&&m.hasNode(x))try{i?m.extremities(I).includes(x)||(E.hidden=!0):m.extremities(I).includes(x)&&(E.color=Wn)}catch(k){console.error("Error in edgeReducer:",k)}else{const k=y&&m.hasEdge(y)?y:null,L=T&&m.hasEdge(T)?T:null;(k||L)&&(I===k?E.color=Yi:I===L?E.color=Wn:i&&(E.hidden=!0))}}return E}})},[f,b,y,T,n,t,e,l,i,s,c,u]),null},Qf=()=>{const{zoomIn:e,zoomOut:t,reset:r}=da({duration:200,factor:1.5}),n=Be(),{t:a}=xe(),o=p.useCallback(()=>e(),[e]),l=p.useCallback(()=>t(),[t]),i=p.useCallback(()=>{if(n)try{n.setCustomBBox(null),n.refresh();const u=n.getGraph();if(!(u!=null&&u.order)||u.nodes().length===0){r();return}n.getCamera().animate({x:.5,y:.5,ratio:1.1},{duration:1e3})}catch(u){console.error("Error resetting zoom:",u),r()}},[n,r]),s=p.useCallback(()=>{if(!n)return;const u=n.getCamera(),h=u.angle+Math.PI/8;u.animate({angle:h},{duration:200})},[n]),c=p.useCallback(()=>{if(!n)return;const u=n.getCamera(),h=u.angle-Math.PI/8;u.animate({angle:h},{duration:200})},[n]);return g.jsxs(g.Fragment,{children:[g.jsx(be,{variant:Le,onClick:s,tooltip:a("graphPanel.sideBar.zoomControl.rotateCamera"),size:"icon",children:g.jsx(gu,{})}),g.jsx(be,{variant:Le,onClick:c,tooltip:a("graphPanel.sideBar.zoomControl.rotateCameraCounterClockwise"),size:"icon",children:g.jsx(fu,{})}),g.jsx(be,{variant:Le,onClick:i,tooltip:a("graphPanel.sideBar.zoomControl.resetZoom"),size:"icon",children:g.jsx(Bc,{})}),g.jsx(be,{variant:Le,onClick:o,tooltip:a("graphPanel.sideBar.zoomControl.zoomIn"),size:"icon",children:g.jsx(Au,{})}),g.jsx(be,{variant:Le,onClick:l,tooltip:a("graphPanel.sideBar.zoomControl.zoomOut"),size:"icon",children:g.jsx(Iu,{})})]})},Jf=()=>{const{isFullScreen:e,toggle:t}=wi(),{t:r}=xe();return g.jsx(g.Fragment,{children:e?g.jsx(be,{variant:Le,onClick:t,tooltip:r("graphPanel.sideBar.fullScreenControl.windowed"),size:"icon",children:g.jsx(tu,{})}):g.jsx(be,{variant:Le,onClick:t,tooltip:r("graphPanel.sideBar.fullScreenControl.fullScreen"),size:"icon",children:g.jsx(Zc,{})})})};var Dn="Checkbox",[Zf,jp]=wn(Dn),[eh,th]=Zf(Dn),Rs=p.forwardRef((e,t)=>{const{__scopeCheckbox:r,name:n,checked:a,defaultChecked:o,required:l,disabled:i,value:s="on",onCheckedChange:c,form:u,...d}=e,[h,f]=p.useState(null),b=Xe(t,R=>f(R)),y=p.useRef(!1),T=h?u||!!h.closest("form"):!0,[N=!1,_]=ma({prop:a,defaultProp:o,onChange:c}),A=p.useRef(N);return p.useEffect(()=>{const R=h==null?void 0:h.form;if(R){const I=()=>_(A.current);return R.addEventListener("reset",I),()=>R.removeEventListener("reset",I)}},[h,_]),g.jsxs(eh,{scope:r,state:N,disabled:i,children:[g.jsx(Ee.button,{type:"button",role:"checkbox","aria-checked":ot(N)?"mixed":N,"aria-required":l,"data-state":Is(N),"data-disabled":i?"":void 0,disabled:i,value:s,...d,ref:b,onKeyDown:Ce(e.onKeyDown,R=>{R.key==="Enter"&&R.preventDefault()}),onClick:Ce(e.onClick,R=>{_(I=>ot(I)?!0:!I),T&&(y.current=R.isPropagationStopped(),y.current||R.stopPropagation())})}),T&&g.jsx(rh,{control:h,bubbles:!y.current,name:n,value:s,checked:N,required:l,disabled:i,form:u,style:{transform:"translateX(-100%)"},defaultChecked:ot(o)?!1:o})]})});Rs.displayName=Dn;var As="CheckboxIndicator",js=p.forwardRef((e,t)=>{const{__scopeCheckbox:r,forceMount:n,...a}=e,o=th(As,r);return g.jsx(St,{present:n||ot(o.state)||o.state===!0,children:g.jsx(Ee.span,{"data-state":Is(o.state),"data-disabled":o.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});js.displayName=As;var rh=e=>{const{control:t,checked:r,bubbles:n=!0,defaultChecked:a,...o}=e,l=p.useRef(null),i=Oi(r),s=Gi(t);p.useEffect(()=>{const u=l.current,d=window.HTMLInputElement.prototype,f=Object.getOwnPropertyDescriptor(d,"checked").set;if(i!==r&&f){const b=new Event("click",{bubbles:n});u.indeterminate=ot(r),f.call(u,ot(r)?!1:r),u.dispatchEvent(b)}},[i,r,n]);const c=p.useRef(ot(r)?!1:r);return g.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:a??c.current,...o,tabIndex:-1,ref:l,style:{...e.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function ot(e){return e==="indeterminate"}function Is(e){return ot(e)?"indeterminate":e?"checked":"unchecked"}var Ls=Rs,nh=js;const Ns=p.forwardRef(({className:e,...t},r)=>g.jsx(Ls,{ref:r,className:fe("peer border-primary ring-offset-background focus-visible:ring-ring data-[state=checked]:bg-muted data-[state=checked]:text-muted-foreground h-4 w-4 shrink-0 rounded-sm border focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:g.jsx(nh,{className:fe("flex items-center justify-center text-current"),children:g.jsx(Va,{className:"h-4 w-4"})})}));Ns.displayName=Ls.displayName;var oh="Separator",Ho="horizontal",ah=["horizontal","vertical"],Ps=p.forwardRef((e,t)=>{const{decorative:r,orientation:n=Ho,...a}=e,o=sh(n)?n:Ho,i=r?{role:"none"}:{"aria-orientation":o==="vertical"?o:void 0,role:"separator"};return g.jsx(Ee.div,{"data-orientation":o,...i,...a,ref:t})});Ps.displayName=oh;function sh(e){return ah.includes(e)}var zs=Ps;const bt=p.forwardRef(({className:e,orientation:t="horizontal",decorative:r=!0,...n},a)=>g.jsx(zs,{ref:a,decorative:r,orientation:t,className:fe("bg-border shrink-0",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));bt.displayName=zs.displayName;const tt=({checked:e,onCheckedChange:t,label:r})=>{const n=`checkbox-${r.toLowerCase().replace(/\s+/g,"-")}`;return g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx(Ns,{id:n,checked:e,onCheckedChange:t}),g.jsx("label",{htmlFor:n,className:"text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:r})]})},Mr=({value:e,onEditFinished:t,label:r,min:n,max:a,defaultValue:o})=>{const{t:l}=xe(),[i,s]=p.useState(e),c=`input-${r.toLowerCase().replace(/\s+/g,"-")}`,u=p.useCallback(f=>{const b=f.target.value.trim();if(b.length===0){s(null);return}const y=Number.parseInt(b);if(!isNaN(y)&&y!==i){if(n!==void 0&&ya)return;s(y)}},[i,n,a]),d=p.useCallback(()=>{i!==null&&e!==i&&t(i)},[e,i,t]),h=p.useCallback(()=>{o!==void 0&&e!==o&&(s(o),t(o))},[o,e,t]);return g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsx("label",{htmlFor:c,className:"text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:r}),g.jsxs("div",{className:"flex items-center gap-1",children:[g.jsx(Wt,{id:c,type:"number",value:i===null?"":i,onChange:u,className:"h-6 w-full min-w-0 pr-1",min:n,max:a,onBlur:d,onKeyDown:f=>{f.key==="Enter"&&d()}}),o!==void 0&&g.jsx(be,{variant:"ghost",size:"icon",className:"h-6 w-6 flex-shrink-0 hover:bg-muted text-muted-foreground hover:text-foreground",onClick:h,type:"button",title:l("graphPanel.sideBar.settings.resetToDefault"),children:g.jsx(qa,{className:"h-3.5 w-3.5"})})]})]})};function ih(){const[e,t]=p.useState(!1),r=re.use.showPropertyPanel(),n=re.use.showNodeSearchBar(),a=re.use.showNodeLabel(),o=re.use.enableEdgeEvents(),l=re.use.enableNodeDrag(),i=re.use.enableHideUnselectedEdges(),s=re.use.showEdgeLabel(),c=re.use.minEdgeSize(),u=re.use.maxEdgeSize(),d=re.use.graphQueryMaxDepth(),h=re.use.graphMaxNodes(),f=re.use.graphLayoutMaxIterations(),b=re.use.enableHealthCheck(),y=p.useCallback(()=>re.setState(j=>({enableNodeDrag:!j.enableNodeDrag})),[]),T=p.useCallback(()=>re.setState(j=>({enableEdgeEvents:!j.enableEdgeEvents})),[]),N=p.useCallback(()=>re.setState(j=>({enableHideUnselectedEdges:!j.enableHideUnselectedEdges})),[]),_=p.useCallback(()=>re.setState(j=>({showEdgeLabel:!j.showEdgeLabel})),[]),A=p.useCallback(()=>re.setState(j=>({showPropertyPanel:!j.showPropertyPanel})),[]),R=p.useCallback(()=>re.setState(j=>({showNodeSearchBar:!j.showNodeSearchBar})),[]),I=p.useCallback(()=>re.setState(j=>({showNodeLabel:!j.showNodeLabel})),[]),D=p.useCallback(()=>re.setState(j=>({enableHealthCheck:!j.enableHealthCheck})),[]),m=p.useCallback(j=>{if(j<1)return;re.setState({graphQueryMaxDepth:j});const w=re.getState().queryLabel;re.getState().setQueryLabel(""),setTimeout(()=>{re.getState().setQueryLabel(w)},300)},[]),E=p.useCallback(j=>{if(j<1||j>1e3)return;re.setState({graphMaxNodes:j});const w=re.getState().queryLabel;re.getState().setQueryLabel(""),setTimeout(()=>{re.getState().setQueryLabel(w)},300)},[]),x=p.useCallback(j=>{j<1||re.setState({graphLayoutMaxIterations:j})},[]),{t:k}=xe(),L=()=>t(!1);return g.jsx(g.Fragment,{children:g.jsxs(Tn,{open:e,onOpenChange:t,children:[g.jsx(Rn,{asChild:!0,children:g.jsx(be,{variant:Le,tooltip:k("graphPanel.sideBar.settings.settings"),size:"icon",children:g.jsx(xu,{})})}),g.jsx(ir,{side:"right",align:"end",sideOffset:8,collisionPadding:5,className:"p-2 max-w-[200px]",onCloseAutoFocus:j=>j.preventDefault(),children:g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsx(tt,{checked:b,onCheckedChange:D,label:k("graphPanel.sideBar.settings.healthCheck")}),g.jsx(bt,{}),g.jsx(tt,{checked:r,onCheckedChange:A,label:k("graphPanel.sideBar.settings.showPropertyPanel")}),g.jsx(tt,{checked:n,onCheckedChange:R,label:k("graphPanel.sideBar.settings.showSearchBar")}),g.jsx(bt,{}),g.jsx(tt,{checked:a,onCheckedChange:I,label:k("graphPanel.sideBar.settings.showNodeLabel")}),g.jsx(tt,{checked:l,onCheckedChange:y,label:k("graphPanel.sideBar.settings.nodeDraggable")}),g.jsx(bt,{}),g.jsx(tt,{checked:s,onCheckedChange:_,label:k("graphPanel.sideBar.settings.showEdgeLabel")}),g.jsx(tt,{checked:i,onCheckedChange:N,label:k("graphPanel.sideBar.settings.hideUnselectedEdges")}),g.jsx(tt,{checked:o,onCheckedChange:T,label:k("graphPanel.sideBar.settings.edgeEvents")}),g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsx("label",{htmlFor:"edge-size-min",className:"text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:k("graphPanel.sideBar.settings.edgeSizeRange")}),g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx(Wt,{id:"edge-size-min",type:"number",value:c,onChange:j=>{const w=Number(j.target.value);!isNaN(w)&&w>=1&&w<=u&&re.setState({minEdgeSize:w})},className:"h-6 w-16 min-w-0 pr-1",min:1,max:Math.min(u,10)}),g.jsx("span",{children:"-"}),g.jsxs("div",{className:"flex items-center gap-1",children:[g.jsx(Wt,{id:"edge-size-max",type:"number",value:u,onChange:j=>{const w=Number(j.target.value);!isNaN(w)&&w>=c&&w>=1&&w<=10&&re.setState({maxEdgeSize:w})},className:"h-6 w-16 min-w-0 pr-1",min:c,max:10}),g.jsx(be,{variant:"ghost",size:"icon",className:"h-6 w-6 flex-shrink-0 hover:bg-muted text-muted-foreground hover:text-foreground",onClick:()=>re.setState({minEdgeSize:1,maxEdgeSize:5}),type:"button",title:k("graphPanel.sideBar.settings.resetToDefault"),children:g.jsx(qa,{className:"h-3.5 w-3.5"})})]})]})]}),g.jsx(bt,{}),g.jsx(Mr,{label:k("graphPanel.sideBar.settings.maxQueryDepth"),min:1,value:d,defaultValue:3,onEditFinished:m}),g.jsx(Mr,{label:k("graphPanel.sideBar.settings.maxNodes"),min:1,max:1e3,value:h,defaultValue:1e3,onEditFinished:E}),g.jsx(Mr,{label:k("graphPanel.sideBar.settings.maxLayoutIterations"),min:1,max:30,value:f,defaultValue:15,onEditFinished:x}),g.jsx(bt,{}),g.jsx(be,{onClick:L,variant:"outline",size:"sm",className:"ml-auto px-4",children:k("graphPanel.sideBar.settings.save")})]})})]})})}const lh="ENTRIES",Ds="KEYS",Os="VALUES",Se="";class Hr{constructor(t,r){const n=t._tree,a=Array.from(n.keys());this.set=t,this._type=r,this._path=a.length>0?[{node:n,keys:a}]:[]}next(){const t=this.dive();return this.backtrack(),t}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:t,keys:r}=mt(this._path);if(mt(r)===Se)return{done:!1,value:this.result()};const n=t.get(mt(r));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const t=mt(this._path).keys;t.pop(),!(t.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:t})=>mt(t)).filter(t=>t!==Se).join("")}value(){return mt(this._path).node.get(Se)}result(){switch(this._type){case Os:return this.value();case Ds:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const mt=e=>e[e.length-1],ch=(e,t,r)=>{const n=new Map;if(t===void 0)return n;const a=t.length+1,o=a+r,l=new Uint8Array(o*a).fill(r+1);for(let i=0;i{const s=o*l;e:for(const c of e.keys())if(c===Se){const u=a[s-1];u<=r&&n.set(i,[e.get(c),u])}else{let u=o;for(let d=0;dr)continue e}Gs(e.get(c),t,r,n,a,u,l,i+c)}};class nt{constructor(t=new Map,r=""){this._size=void 0,this._tree=t,this._prefix=r}atPrefix(t){if(!t.startsWith(this._prefix))throw new Error("Mismatched prefix");const[r,n]=Qt(this._tree,t.slice(this._prefix.length));if(r===void 0){const[a,o]=On(n);for(const l of a.keys())if(l!==Se&&l.startsWith(o)){const i=new Map;return i.set(l.slice(o.length),a.get(l)),new nt(i,t)}}return new nt(r,t)}clear(){this._size=void 0,this._tree.clear()}delete(t){return this._size=void 0,uh(this._tree,t)}entries(){return new Hr(this,lh)}forEach(t){for(const[r,n]of this)t(r,n,this)}fuzzyGet(t,r){return ch(this._tree,t,r)}get(t){const r=gn(this._tree,t);return r!==void 0?r.get(Se):void 0}has(t){const r=gn(this._tree,t);return r!==void 0&&r.has(Se)}keys(){return new Hr(this,Ds)}set(t,r){if(typeof t!="string")throw new Error("key must be a string");return this._size=void 0,Br(this._tree,t).set(Se,r),this}get size(){if(this._size)return this._size;this._size=0;const t=this.entries();for(;!t.next().done;)this._size+=1;return this._size}update(t,r){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=Br(this._tree,t);return n.set(Se,r(n.get(Se))),this}fetch(t,r){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=Br(this._tree,t);let a=n.get(Se);return a===void 0&&n.set(Se,a=r()),a}values(){return new Hr(this,Os)}[Symbol.iterator](){return this.entries()}static from(t){const r=new nt;for(const[n,a]of t)r.set(n,a);return r}static fromObject(t){return nt.from(Object.entries(t))}}const Qt=(e,t,r=[])=>{if(t.length===0||e==null)return[e,r];for(const n of e.keys())if(n!==Se&&t.startsWith(n))return r.push([e,n]),Qt(e.get(n),t.slice(n.length),r);return r.push([e,t]),Qt(void 0,"",r)},gn=(e,t)=>{if(t.length===0||e==null)return e;for(const r of e.keys())if(r!==Se&&t.startsWith(r))return gn(e.get(r),t.slice(r.length))},Br=(e,t)=>{const r=t.length;e:for(let n=0;e&&n{const[r,n]=Qt(e,t);if(r!==void 0){if(r.delete(Se),r.size===0)Fs(n);else if(r.size===1){const[a,o]=r.entries().next().value;$s(n,a,o)}}},Fs=e=>{if(e.length===0)return;const[t,r]=On(e);if(t.delete(r),t.size===0)Fs(e.slice(0,-1));else if(t.size===1){const[n,a]=t.entries().next().value;n!==Se&&$s(e.slice(0,-1),n,a)}},$s=(e,t,r)=>{if(e.length===0)return;const[n,a]=On(e);n.set(a+t,r),n.delete(a)},On=e=>e[e.length-1],Gn="or",Ms="and",dh="and_not";class at{constructor(t){if((t==null?void 0:t.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');const r=t.autoVacuum==null||t.autoVacuum===!0?qr:t.autoVacuum;this._options={...Ur,...t,autoVacuum:r,searchOptions:{...Bo,...t.searchOptions||{}},autoSuggestOptions:{...mh,...t.autoSuggestOptions||{}}},this._index=new nt,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=mn,this.addFields(this._options.fields)}add(t){const{extractField:r,tokenize:n,processTerm:a,fields:o,idField:l}=this._options,i=r(t,l);if(i==null)throw new Error(`MiniSearch: document does not have ID field "${l}"`);if(this._idToShortId.has(i))throw new Error(`MiniSearch: duplicate ID ${i}`);const s=this.addDocumentId(i);this.saveStoredFields(s,t);for(const c of o){const u=r(t,c);if(u==null)continue;const d=n(u.toString(),c),h=this._fieldIds[c],f=new Set(d).size;this.addFieldLength(s,h,this._documentCount-1,f);for(const b of d){const y=a(b,c);if(Array.isArray(y))for(const T of y)this.addTerm(h,s,T);else y&&this.addTerm(h,s,y)}}}addAll(t){for(const r of t)this.add(r)}addAllAsync(t,r={}){const{chunkSize:n=10}=r,a={chunk:[],promise:Promise.resolve()},{chunk:o,promise:l}=t.reduce(({chunk:i,promise:s},c,u)=>(i.push(c),(u+1)%n===0?{chunk:[],promise:s.then(()=>new Promise(d=>setTimeout(d,0))).then(()=>this.addAll(i))}:{chunk:i,promise:s}),a);return l.then(()=>this.addAll(o))}remove(t){const{tokenize:r,processTerm:n,extractField:a,fields:o,idField:l}=this._options,i=a(t,l);if(i==null)throw new Error(`MiniSearch: document does not have ID field "${l}"`);const s=this._idToShortId.get(i);if(s==null)throw new Error(`MiniSearch: cannot remove document with ID ${i}: it is not in the index`);for(const c of o){const u=a(t,c);if(u==null)continue;const d=r(u.toString(),c),h=this._fieldIds[c],f=new Set(d).size;this.removeFieldLength(s,h,this._documentCount,f);for(const b of d){const y=n(b,c);if(Array.isArray(y))for(const T of y)this.removeTerm(h,s,T);else y&&this.removeTerm(h,s,y)}}this._storedFields.delete(s),this._documentIds.delete(s),this._idToShortId.delete(i),this._fieldLength.delete(s),this._documentCount-=1}removeAll(t){if(t)for(const r of t)this.remove(r);else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new nt,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}}discard(t){const r=this._idToShortId.get(t);if(r==null)throw new Error(`MiniSearch: cannot discard document with ID ${t}: it is not in the index`);this._idToShortId.delete(t),this._documentIds.delete(r),this._storedFields.delete(r),(this._fieldLength.get(r)||[]).forEach((n,a)=>{this.removeFieldLength(r,a,this._documentCount,n)}),this._fieldLength.delete(r),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;const{minDirtFactor:t,minDirtCount:r,batchSize:n,batchWait:a}=this._options.autoVacuum;this.conditionalVacuum({batchSize:n,batchWait:a},{minDirtCount:r,minDirtFactor:t})}discardAll(t){const r=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(const n of t)this.discard(n)}finally{this._options.autoVacuum=r}this.maybeAutoVacuum()}replace(t){const{idField:r,extractField:n}=this._options,a=n(t,r);this.discard(a),this.add(t)}vacuum(t={}){return this.conditionalVacuum(t)}conditionalVacuum(t,r){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&r,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(()=>{const n=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=mn,this.performVacuuming(t,n)}),this._enqueuedVacuum)):this.vacuumConditionsMet(r)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(t),this._currentVacuum)}async performVacuuming(t,r){const n=this._dirtCount;if(this.vacuumConditionsMet(r)){const a=t.batchSize||pn.batchSize,o=t.batchWait||pn.batchWait;let l=1;for(const[i,s]of this._index){for(const[c,u]of s)for(const[d]of u)this._documentIds.has(d)||(u.size<=1?s.delete(c):u.delete(d));this._index.get(i).size===0&&this._index.delete(i),l%a===0&&await new Promise(c=>setTimeout(c,o)),l+=1}this._dirtCount-=n}await null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null}vacuumConditionsMet(t){if(t==null)return!0;let{minDirtCount:r,minDirtFactor:n}=t;return r=r||qr.minDirtCount,n=n||qr.minDirtFactor,this.dirtCount>=r&&this.dirtFactor>=n}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(t){return this._idToShortId.has(t)}getStoredFields(t){const r=this._idToShortId.get(t);if(r!=null)return this._storedFields.get(r)}search(t,r={}){const{searchOptions:n}=this._options,a={...n,...r},o=this.executeQuery(t,r),l=[];for(const[i,{score:s,terms:c,match:u}]of o){const d=c.length||1,h={id:this._documentIds.get(i),score:s*d,terms:Object.keys(u),queryTerms:c,match:u};Object.assign(h,this._storedFields.get(i)),(a.filter==null||a.filter(h))&&l.push(h)}return t===at.wildcard&&a.boostDocument==null||l.sort(Uo),l}autoSuggest(t,r={}){r={...this._options.autoSuggestOptions,...r};const n=new Map;for(const{score:o,terms:l}of this.search(t,r)){const i=l.join(" "),s=n.get(i);s!=null?(s.score+=o,s.count+=1):n.set(i,{score:o,terms:l,count:1})}const a=[];for(const[o,{score:l,terms:i,count:s}]of n)a.push({suggestion:o,terms:i,score:l/s});return a.sort(Uo),a}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(t,r){if(r==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(t),r)}static async loadJSONAsync(t,r){if(r==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJSAsync(JSON.parse(t),r)}static getDefault(t){if(Ur.hasOwnProperty(t))return Vr(Ur,t);throw new Error(`MiniSearch: unknown option "${t}"`)}static loadJS(t,r){const{index:n,documentIds:a,fieldLength:o,storedFields:l,serializationVersion:i}=t,s=this.instantiateMiniSearch(t,r);s._documentIds=Dt(a),s._fieldLength=Dt(o),s._storedFields=Dt(l);for(const[c,u]of s._documentIds)s._idToShortId.set(u,c);for(const[c,u]of n){const d=new Map;for(const h of Object.keys(u)){let f=u[h];i===1&&(f=f.ds),d.set(parseInt(h,10),Dt(f))}s._index.set(c,d)}return s}static async loadJSAsync(t,r){const{index:n,documentIds:a,fieldLength:o,storedFields:l,serializationVersion:i}=t,s=this.instantiateMiniSearch(t,r);s._documentIds=await Ot(a),s._fieldLength=await Ot(o),s._storedFields=await Ot(l);for(const[u,d]of s._documentIds)s._idToShortId.set(d,u);let c=0;for(const[u,d]of n){const h=new Map;for(const f of Object.keys(d)){let b=d[f];i===1&&(b=b.ds),h.set(parseInt(f,10),await Ot(b))}++c%1e3===0&&await Hs(0),s._index.set(u,h)}return s}static instantiateMiniSearch(t,r){const{documentCount:n,nextId:a,fieldIds:o,averageFieldLength:l,dirtCount:i,serializationVersion:s}=t;if(s!==1&&s!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");const c=new at(r);return c._documentCount=n,c._nextId=a,c._idToShortId=new Map,c._fieldIds=o,c._avgFieldLength=l,c._dirtCount=i||0,c._index=new nt,c}executeQuery(t,r={}){if(t===at.wildcard)return this.executeWildcardQuery(r);if(typeof t!="string"){const h={...r,...t,queries:void 0},f=t.queries.map(b=>this.executeQuery(b,h));return this.combineResults(f,h.combineWith)}const{tokenize:n,processTerm:a,searchOptions:o}=this._options,l={tokenize:n,processTerm:a,...o,...r},{tokenize:i,processTerm:s}=l,d=i(t).flatMap(h=>s(h)).filter(h=>!!h).map(ph(l)).map(h=>this.executeQuerySpec(h,l));return this.combineResults(d,l.combineWith)}executeQuerySpec(t,r){const n={...this._options.searchOptions,...r},a=(n.fields||this._options.fields).reduce((y,T)=>({...y,[T]:Vr(n.boost,T)||1}),{}),{boostDocument:o,weights:l,maxFuzzy:i,bm25:s}=n,{fuzzy:c,prefix:u}={...Bo.weights,...l},d=this._index.get(t.term),h=this.termResults(t.term,t.term,1,t.termBoost,d,a,o,s);let f,b;if(t.prefix&&(f=this._index.atPrefix(t.term)),t.fuzzy){const y=t.fuzzy===!0?.2:t.fuzzy,T=y<1?Math.min(i,Math.round(t.term.length*y)):y;T&&(b=this._index.fuzzyGet(t.term,T))}if(f)for(const[y,T]of f){const N=y.length-t.term.length;if(!N)continue;b==null||b.delete(y);const _=u*y.length/(y.length+.3*N);this.termResults(t.term,y,_,t.termBoost,T,a,o,s,h)}if(b)for(const y of b.keys()){const[T,N]=b.get(y);if(!N)continue;const _=c*y.length/(y.length+N);this.termResults(t.term,y,_,t.termBoost,T,a,o,s,h)}return h}executeWildcardQuery(t){const r=new Map,n={...this._options.searchOptions,...t};for(const[a,o]of this._documentIds){const l=n.boostDocument?n.boostDocument(o,"",this._storedFields.get(a)):1;r.set(a,{score:l,terms:[],match:{}})}return r}combineResults(t,r=Gn){if(t.length===0)return new Map;const n=r.toLowerCase(),a=fh[n];if(!a)throw new Error(`Invalid combination operator: ${r}`);return t.reduce(a)||new Map}toJSON(){const t=[];for(const[r,n]of this._index){const a={};for(const[o,l]of n)a[o]=Object.fromEntries(l);t.push([r,a])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:t,serializationVersion:2}}termResults(t,r,n,a,o,l,i,s,c=new Map){if(o==null)return c;for(const u of Object.keys(l)){const d=l[u],h=this._fieldIds[u],f=o.get(h);if(f==null)continue;let b=f.size;const y=this._avgFieldLength[h];for(const T of f.keys()){if(!this._documentIds.has(T)){this.removeTerm(h,T,r),b-=1;continue}const N=i?i(this._documentIds.get(T),r,this._storedFields.get(T)):1;if(!N)continue;const _=f.get(T),A=this._fieldLength.get(T)[h],R=gh(_,b,this._documentCount,A,y,s),I=n*a*d*N*R,D=c.get(T);if(D){D.score+=I,vh(D.terms,t);const m=Vr(D.match,r);m?m.push(u):D.match[r]=[u]}else c.set(T,{score:I,terms:[t],match:{[r]:[u]}})}}return c}addTerm(t,r,n){const a=this._index.fetch(n,qo);let o=a.get(t);if(o==null)o=new Map,o.set(r,1),a.set(t,o);else{const l=o.get(r);o.set(r,(l||0)+1)}}removeTerm(t,r,n){if(!this._index.has(n)){this.warnDocumentChanged(r,t,n);return}const a=this._index.fetch(n,qo),o=a.get(t);o==null||o.get(r)==null?this.warnDocumentChanged(r,t,n):o.get(r)<=1?o.size<=1?a.delete(t):o.delete(r):o.set(r,o.get(r)-1),this._index.get(n).size===0&&this._index.delete(n)}warnDocumentChanged(t,r,n){for(const a of Object.keys(this._fieldIds))if(this._fieldIds[a]===r){this._options.logger("warn",`MiniSearch: document with ID ${this._documentIds.get(t)} has changed before removal: term "${n}" was not present in field "${a}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}}addDocumentId(t){const r=this._nextId;return this._idToShortId.set(t,r),this._documentIds.set(r,t),this._documentCount+=1,this._nextId+=1,r}addFields(t){for(let r=0;rObject.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,fh={[Gn]:(e,t)=>{for(const r of t.keys()){const n=e.get(r);if(n==null)e.set(r,t.get(r));else{const{score:a,terms:o,match:l}=t.get(r);n.score=n.score+a,n.match=Object.assign(n.match,l),Vo(n.terms,o)}}return e},[Ms]:(e,t)=>{const r=new Map;for(const n of t.keys()){const a=e.get(n);if(a==null)continue;const{score:o,terms:l,match:i}=t.get(n);Vo(a.terms,l),r.set(n,{score:a.score+o,terms:a.terms,match:Object.assign(a.match,i)})}return r},[dh]:(e,t)=>{for(const r of t.keys())e.delete(r);return e}},hh={k:1.2,b:.7,d:.5},gh=(e,t,r,n,a,o)=>{const{k:l,b:i,d:s}=o;return Math.log(1+(r-t+.5)/(t+.5))*(s+e*(l+1)/(e+l*(1-i+i*n/a)))},ph=e=>(t,r,n)=>{const a=typeof e.fuzzy=="function"?e.fuzzy(t,r,n):e.fuzzy||!1,o=typeof e.prefix=="function"?e.prefix(t,r,n):e.prefix===!0,l=typeof e.boostTerm=="function"?e.boostTerm(t,r,n):1;return{term:t,fuzzy:a,prefix:o,termBoost:l}},Ur={idField:"id",extractField:(e,t)=>e[t],tokenize:e=>e.split(yh),processTerm:e=>e.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(e,t)=>{typeof(console==null?void 0:console[e])=="function"&&console[e](t)},autoVacuum:!0},Bo={combineWith:Gn,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:hh},mh={combineWith:Ms,prefix:(e,t,r)=>t===r.length-1},pn={batchSize:1e3,batchWait:10},mn={minDirtFactor:.1,minDirtCount:20},qr={...pn,...mn},vh=(e,t)=>{e.includes(t)||e.push(t)},Vo=(e,t)=>{for(const r of t)e.includes(r)||e.push(r)},Uo=({score:e},{score:t})=>t-e,qo=()=>new Map,Dt=e=>{const t=new Map;for(const r of Object.keys(e))t.set(parseInt(r,10),e[r]);return t},Ot=async e=>{const t=new Map;let r=0;for(const n of Object.keys(e))t.set(parseInt(n,10),e[n]),++r%1e3===0&&await Hs(0);return t},Hs=e=>new Promise(t=>setTimeout(t,e)),yh=/[\n\r\p{Z}\p{P}]+/u,bh={index:new at({fields:[]})};p.createContext(bh);const vn=({label:e,color:t,hidden:r,labels:n={}})=>W.createElement("div",{className:"node"},W.createElement("span",{className:"render "+(r?"circle":"disc"),style:{backgroundColor:t||"#000"}}),W.createElement("span",{className:`label ${r?"text-muted":""} ${e?"":"text-italic"}`},e||n.no_label||"No label")),wh=({id:e,labels:t})=>{const r=Be(),n=p.useMemo(()=>{const a=r.getGraph().getNodeAttributes(e),o=r.getSetting("nodeReducer");return Object.assign(Object.assign({color:r.getSetting("defaultNodeColor")},a),o?o(e,a):{})},[r,e]);return W.createElement(vn,Object.assign({},n,{labels:t}))},xh=({label:e,color:t,source:r,target:n,hidden:a,directed:o,labels:l={}})=>W.createElement("div",{className:"edge"},W.createElement(vn,Object.assign({},r,{labels:l})),W.createElement("div",{className:"body"},W.createElement("div",{className:"render"},W.createElement("span",{className:a?"dotted":"dash",style:{borderColor:t||"#000"}})," ",o&&W.createElement("span",{className:"arrow",style:{borderTopColor:t||"#000"}})),W.createElement("span",{className:`label ${a?"text-muted":""} ${e?"":"fst-italic"}`},e||l.no_label||"No label")),W.createElement(vn,Object.assign({},n,{labels:l}))),Sh=({id:e,labels:t})=>{const r=Be(),n=p.useMemo(()=>{const a=r.getGraph().getEdgeAttributes(e),o=r.getSetting("nodeReducer"),l=r.getSetting("edgeReducer"),i=r.getGraph().getNodeAttributes(r.getGraph().source(e)),s=r.getGraph().getNodeAttributes(r.getGraph().target(e));return Object.assign(Object.assign(Object.assign({color:r.getSetting("defaultEdgeColor"),directed:r.getGraph().isDirected(e)},a),l?l(e,a):{}),{source:Object.assign(Object.assign({color:r.getSetting("defaultNodeColor")},i),o?o(e,i):{}),target:Object.assign(Object.assign({color:r.getSetting("defaultNodeColor")},s),o?o(e,s):{})})},[r,e]);return W.createElement(xh,Object.assign({},n,{labels:t}))};function Bs(e,t){const[r,n]=p.useState(e);return p.useEffect(()=>{const a=setTimeout(()=>{n(e)},t);return()=>{clearTimeout(a)}},[e,t]),r}function Eh({fetcher:e,preload:t,filterFn:r,renderOption:n,getOptionValue:a,notFound:o,loadingSkeleton:l,label:i,placeholder:s="Select...",value:c,onChange:u,onFocus:d,disabled:h=!1,className:f,noResultsMessage:b}){const[y,T]=p.useState(!1),[N,_]=p.useState(!1),[A,R]=p.useState([]),[I,D]=p.useState(!1),[m,E]=p.useState(null),[x,k]=p.useState(""),L=Bs(x,t?0:150),j=p.useRef(null);p.useEffect(()=>{T(!0)},[]),p.useEffect(()=>{const C=S=>{j.current&&!j.current.contains(S.target)&&N&&_(!1)};return document.addEventListener("mousedown",C),()=>{document.removeEventListener("mousedown",C)}},[N]);const w=p.useCallback(async C=>{try{D(!0),E(null);const S=await e(C);R(S)}catch(S){E(S instanceof Error?S.message:"Failed to fetch options")}finally{D(!1)}},[e]);p.useEffect(()=>{y&&(t?L&&R(C=>C.filter(S=>r?r(S,L):!0)):w(L))},[y,L,t,r,w]),p.useEffect(()=>{!y||!c||w(c)},[y,c,w]);const V=p.useCallback(C=>{u(C),requestAnimationFrame(()=>{const S=document.activeElement;S==null||S.blur(),_(!1)})},[u]),K=p.useCallback(()=>{_(!0),w(x)},[x,w]),O=p.useCallback(C=>{C.target.closest(".cmd-item")&&C.preventDefault()},[]);return g.jsx("div",{ref:j,className:fe(h&&"cursor-not-allowed opacity-50",f),onMouseDown:O,children:g.jsxs(cr,{shouldFilter:!1,className:"bg-transparent",children:[g.jsxs("div",{children:[g.jsx(Pn,{placeholder:s,value:x,className:"max-h-8",onFocus:K,onValueChange:C=>{k(C),N||_(!0)}}),I&&g.jsx("div",{className:"absolute top-1/2 right-2 flex -translate-y-1/2 transform items-center",children:g.jsx(Ua,{className:"h-4 w-4 animate-spin"})})]}),g.jsxs(ur,{hidden:!N,children:[m&&g.jsx("div",{className:"text-destructive p-4 text-center",children:m}),I&&A.length===0&&(l||g.jsx(_h,{})),!I&&!m&&A.length===0&&(o||g.jsx(zn,{children:b??`No ${i.toLowerCase()} found.`})),g.jsx(_t,{children:A.map((C,S)=>g.jsxs(W.Fragment,{children:[g.jsx(Ct,{value:a(C),onSelect:V,onMouseMove:()=>d(a(C)),className:"truncate cmd-item",children:n(C)},a(C)+`${S}`),S!==A.length-1&&g.jsx("div",{className:"bg-foreground/10 h-[1px]"},`divider-${S}`)]},a(C)+`-fragment-${S}`))})]})]})})}function _h(){return g.jsx(_t,{children:g.jsx(Ct,{disabled:!0,children:g.jsxs("div",{className:"flex w-full items-center gap-2",children:[g.jsx("div",{className:"bg-muted h-6 w-6 animate-pulse rounded-full"}),g.jsxs("div",{className:"flex flex-1 flex-col gap-1",children:[g.jsx("div",{className:"bg-muted h-4 w-24 animate-pulse rounded"}),g.jsx("div",{className:"bg-muted h-3 w-16 animate-pulse rounded"})]})]})})})}const Wr="__message_item",Ch=({id:e})=>{const t=ee.use.sigmaGraph();return t!=null&&t.hasNode(e)?g.jsx(wh,{id:e}):null};function kh(e){return g.jsxs("div",{children:[e.type==="nodes"&&g.jsx(Ch,{id:e.id}),e.type==="edges"&&g.jsx(Sh,{id:e.id}),e.type==="message"&&g.jsx("div",{children:e.message})]})}const Th=({onChange:e,onFocus:t,value:r})=>{const{t:n}=xe(),a=ee.use.sigmaGraph(),o=ee.use.searchEngine();p.useEffect(()=>{a&&ee.getState().resetSearchEngine()},[a]),p.useEffect(()=>{if(!a||a.nodes().length===0||o)return;const i=new at({idField:"id",fields:["label"],searchOptions:{prefix:!0,fuzzy:.2,boost:{label:2}}}),s=a.nodes().map(c=>({id:c,label:a.getNodeAttribute(c,"label")}));i.addAll(s),ee.getState().setSearchEngine(i)},[a,o]);const l=p.useCallback(async i=>{if(t&&t(null),!a||!o)return[];if(a.nodes().length===0)return[];if(!i)return a.nodes().filter(u=>a.hasNode(u)).slice(0,It).map(u=>({id:u,type:"nodes"}));let s=o.search(i).filter(c=>a.hasNode(c.id)).map(c=>({id:c.id,type:"nodes"}));if(s.length<5){const c=new Set(s.map(d=>d.id)),u=a.nodes().filter(d=>{if(c.has(d))return!1;const h=a.getNodeAttribute(d,"label");return h&&typeof h=="string"&&!h.toLowerCase().startsWith(i.toLowerCase())&&h.toLowerCase().includes(i.toLowerCase())}).map(d=>({id:d,type:"nodes"}));s=[...s,...u]}return s.length<=It?s:[...s.slice(0,It),{type:"message",id:Wr,message:n("graphPanel.search.message",{count:s.length-It})}]},[a,o,t,n]);return g.jsx(Eh,{className:"bg-background/60 w-24 rounded-xl border-1 opacity-60 backdrop-blur-lg transition-all hover:w-fit hover:opacity-100",fetcher:l,renderOption:kh,getOptionValue:i=>i.id,value:r&&r.type!=="message"?r.id:null,onChange:i=>{i!==Wr&&e(i?{id:i,type:"nodes"}:null)},onFocus:i=>{i!==Wr&&t&&t(i?{id:i,type:"nodes"}:null)},label:"item",placeholder:n("graphPanel.search.placeholder")})},Rh=({...e})=>g.jsx(Th,{...e});function Ah({fetcher:e,preload:t,filterFn:r,renderOption:n,getOptionValue:a,getDisplayValue:o,notFound:l,loadingSkeleton:i,label:s,placeholder:c="Select...",value:u,onChange:d,disabled:h=!1,className:f,triggerClassName:b,searchInputClassName:y,noResultsMessage:T,triggerTooltip:N,clearable:_=!0}){const[A,R]=p.useState(!1),[I,D]=p.useState(!1),[m,E]=p.useState([]),[x,k]=p.useState(!1),[L,j]=p.useState(null),[w,V]=p.useState(u),[K,O]=p.useState(null),[C,S]=p.useState(""),H=Bs(C,t?0:150),[ae,$]=p.useState([]),[v,z]=p.useState(null);p.useEffect(()=>{R(!0),V(u)},[u]),p.useEffect(()=>{u&&(!m.length||!K)?z(g.jsx("div",{children:u})):K&&z(null)},[u,m.length,K]),p.useEffect(()=>{if(u&&m.length>0){const M=m.find(J=>a(J)===u);M&&O(M)}},[u,m,a]),p.useEffect(()=>{A||(async()=>{try{k(!0),j(null);const J=await e(u);$(J),E(J)}catch(J){j(J instanceof Error?J.message:"Failed to fetch options")}finally{k(!1)}})()},[A,e,u]),p.useEffect(()=>{const M=async()=>{try{k(!0),j(null);const J=await e(H);$(J),E(J)}catch(J){j(J instanceof Error?J.message:"Failed to fetch options")}finally{k(!1)}};A&&t?t&&E(H?ae.filter(J=>r?r(J,H):!0):ae):M()},[e,H,A,t,r]);const B=p.useCallback(M=>{const J=_&&M===w?"":M;V(J),O(m.find(X=>a(X)===J)||null),d(J),D(!1)},[w,d,_,m,a]);return g.jsxs(Tn,{open:I,onOpenChange:D,children:[g.jsx(Rn,{asChild:!0,children:g.jsxs(be,{variant:"outline",role:"combobox","aria-expanded":I,className:fe("justify-between",h&&"cursor-not-allowed opacity-50",b),disabled:h,tooltip:N,side:"bottom",children:[u==="*"?g.jsx("div",{children:"*"}):K?o(K):v||c,g.jsx(Dc,{className:"opacity-50",size:10})]})}),g.jsx(ir,{className:fe("p-0",f),onCloseAutoFocus:M=>M.preventDefault(),align:"start",sideOffset:8,collisionPadding:5,children:g.jsxs(cr,{shouldFilter:!1,children:[g.jsxs("div",{className:"relative w-full border-b",children:[g.jsx(Pn,{placeholder:`Search ${s.toLowerCase()}...`,value:C,onValueChange:M=>{S(M)},className:y}),x&&m.length>0&&g.jsx("div",{className:"absolute top-1/2 right-2 flex -translate-y-1/2 transform items-center",children:g.jsx(Ua,{className:"h-4 w-4 animate-spin"})})]}),g.jsxs(ur,{children:[L&&g.jsx("div",{className:"text-destructive p-4 text-center",children:L}),x&&m.length===0&&(i||g.jsx(jh,{})),!x&&!L&&m.length===0&&(l||g.jsx(zn,{children:T??`No ${s.toLowerCase()} found.`})),g.jsx(_t,{children:m.map(M=>g.jsxs(Ct,{value:a(M),onSelect:B,className:"truncate",children:[n(M),g.jsx(Va,{className:fe("ml-auto h-3 w-3",w===a(M)?"opacity-100":"opacity-0")})]},a(M)))})]})]})})]})}function jh(){return g.jsx(_t,{children:g.jsx(Ct,{disabled:!0,children:g.jsxs("div",{className:"flex w-full items-center gap-2",children:[g.jsx("div",{className:"bg-muted h-6 w-6 animate-pulse rounded-full"}),g.jsxs("div",{className:"flex flex-1 flex-col gap-1",children:[g.jsx("div",{className:"bg-muted h-4 w-24 animate-pulse rounded"}),g.jsx("div",{className:"bg-muted h-3 w-16 animate-pulse rounded"})]})]})})})}const Ih=()=>{const{t:e}=xe(),t=re.use.queryLabel(),r=ee.use.allDatabaseLabels(),n=ee.use.labelsFetchAttempted(),a=p.useCallback(()=>{const i=new at({idField:"id",fields:["value"],searchOptions:{prefix:!0,fuzzy:.2,boost:{label:2}}}),s=r.map((c,u)=>({id:u,value:c}));return i.addAll(s),{labels:r,searchEngine:i}},[r]),o=p.useCallback(async i=>{const{labels:s,searchEngine:c}=a();let u=s;if(i&&(u=c.search(i).map(d=>s[d.id]),u.length<15)){const d=new Set(u),h=s.filter(f=>d.has(f)?!1:f&&typeof f=="string"&&!f.toLowerCase().startsWith(i.toLowerCase())&&f.toLowerCase().includes(i.toLowerCase()));u=[...u,...h]}return u.length<=Xn?u:[...u.slice(0,Xn),"..."]},[a]);p.useEffect(()=>{n&&(r.length>1?t&&t!=="*"&&!r.includes(t)?(console.log(`Label "${t}" not in available labels, setting to "*"`),re.getState().setQueryLabel("*")):console.log(`Label "${t}" is valid`):t&&r.length<=1&&t&&t!=="*"&&(console.log("Available labels list is empty, setting label to empty"),re.getState().setQueryLabel("")),ee.getState().setLabelsFetchAttempted(!1))},[r,t,n]);const l=p.useCallback(()=>{ee.getState().setLabelsFetchAttempted(!1),ee.getState().setGraphDataFetchAttempted(!1),ee.getState().setLastSuccessfulQueryLabel("");const i=re.getState().queryLabel;i?(re.getState().setQueryLabel(""),setTimeout(()=>{re.getState().setQueryLabel(i)},0)):re.getState().setQueryLabel("*")},[]);return g.jsxs("div",{className:"flex items-center",children:[g.jsx(be,{size:"icon",variant:Le,onClick:l,tooltip:e("graphPanel.graphLabels.refreshTooltip"),className:"mr-2",children:g.jsx(uu,{className:"h-4 w-4"})}),g.jsx(Ah,{className:"min-w-[300px]",triggerClassName:"max-h-8",searchInputClassName:"max-h-8",triggerTooltip:e("graphPanel.graphLabels.selectTooltip"),fetcher:o,renderOption:i=>g.jsx("div",{children:i}),getOptionValue:i=>i,getDisplayValue:i=>g.jsx("div",{children:i}),notFound:g.jsx("div",{className:"py-6 text-center text-sm",children:"No labels found"}),label:e("graphPanel.graphLabels.label"),placeholder:e("graphPanel.graphLabels.placeholder"),value:t!==null?t:"*",onChange:i=>{const s=re.getState().queryLabel;i==="..."&&(i="*"),i===s&&i!=="*"&&(i="*"),ee.getState().setGraphDataFetchAttempted(!1),re.getState().setQueryLabel(i)},clearable:!1})]})},Vs=({text:e,className:t,tooltipClassName:r,tooltip:n,side:a,onClick:o})=>n?g.jsx($a,{delayDuration:200,children:g.jsxs(Ma,{children:[g.jsx(Ha,{asChild:!0,children:g.jsx("label",{className:fe(t,o!==void 0?"cursor-pointer":void 0),onClick:o,children:e})}),g.jsx(kn,{side:a,className:r,children:n})]})}):g.jsx("label",{className:fe(t,o!==void 0?"cursor-pointer":void 0),onClick:o,children:e});var Gt={exports:{}},Lh=Gt.exports,Wo;function Nh(){return Wo||(Wo=1,function(e){(function(t,r,n){function a(s){var c=this,u=i();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=u(" "),c.s1=u(" "),c.s2=u(" "),c.s0-=u(s),c.s0<0&&(c.s0+=1),c.s1-=u(s),c.s1<0&&(c.s1+=1),c.s2-=u(s),c.s2<0&&(c.s2+=1),u=null}function o(s,c){return c.c=s.c,c.s0=s.s0,c.s1=s.s1,c.s2=s.s2,c}function l(s,c){var u=new a(s),d=c&&c.state,h=u.next;return h.int32=function(){return u.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&o(d,u),h.state=function(){return o(u,{})}),h}function i(){var s=4022871197,c=function(u){u=String(u);for(var d=0;d>>0,h-=s,h*=s,s=h>>>0,h-=s,s+=h*4294967296}return(s>>>0)*23283064365386963e-26};return c}r&&r.exports?r.exports=l:this.alea=l})(Lh,e)}(Gt)),Gt.exports}var Ft={exports:{}},Ph=Ft.exports,Xo;function zh(){return Xo||(Xo=1,function(e){(function(t,r,n){function a(i){var s=this,c="";s.x=0,s.y=0,s.z=0,s.w=0,s.next=function(){var d=s.x^s.x<<11;return s.x=s.y,s.y=s.z,s.z=s.w,s.w^=s.w>>>19^d^d>>>8},i===(i|0)?s.x=i:c+=i;for(var u=0;u>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(typeof u=="object"&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.xor128=l})(Ph,e)}(Ft)),Ft.exports}var $t={exports:{}},Dh=$t.exports,Yo;function Oh(){return Yo||(Yo=1,function(e){(function(t,r,n){function a(i){var s=this,c="";s.next=function(){var d=s.x^s.x>>>2;return s.x=s.y,s.y=s.z,s.z=s.w,s.w=s.v,(s.d=s.d+362437|0)+(s.v=s.v^s.v<<4^(d^d<<1))|0},s.x=0,s.y=0,s.z=0,s.w=0,s.v=0,i===(i|0)?s.x=i:c+=i;for(var u=0;u>>4),s.next()}function o(i,s){return s.x=i.x,s.y=i.y,s.z=i.z,s.w=i.w,s.v=i.v,s.d=i.d,s}function l(i,s){var c=new a(i),u=s&&s.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(typeof u=="object"&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.xorwow=l})(Dh,e)}($t)),$t.exports}var Mt={exports:{}},Gh=Mt.exports,Ko;function Fh(){return Ko||(Ko=1,function(e){(function(t,r,n){function a(i){var s=this;s.next=function(){var u=s.x,d=s.i,h,f;return h=u[d],h^=h>>>7,f=h^h<<24,h=u[d+1&7],f^=h^h>>>10,h=u[d+3&7],f^=h^h>>>3,h=u[d+4&7],f^=h^h<<7,h=u[d+7&7],h=h^h<<13,f^=h^h<<9,u[d]=f,s.i=d+1&7,f};function c(u,d){var h,f=[];if(d===(d|0))f[0]=d;else for(d=""+d,h=0;h0;--h)u.next()}c(s,i)}function o(i,s){return s.x=i.x.slice(),s.i=i.i,s}function l(i,s){i==null&&(i=+new Date);var c=new a(i),u=s&&s.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(u.x&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.xorshift7=l})(Gh,e)}(Mt)),Mt.exports}var Ht={exports:{}},$h=Ht.exports,Qo;function Mh(){return Qo||(Qo=1,function(e){(function(t,r,n){function a(i){var s=this;s.next=function(){var u=s.w,d=s.X,h=s.i,f,b;return s.w=u=u+1640531527|0,b=d[h+34&127],f=d[h=h+1&127],b^=b<<13,f^=f<<17,b^=b>>>15,f^=f>>>12,b=d[h]=b^f,s.i=h,b+(u^u>>>16)|0};function c(u,d){var h,f,b,y,T,N=[],_=128;for(d===(d|0)?(f=d,d=null):(d=d+"\0",f=0,_=Math.max(_,d.length)),b=0,y=-32;y<_;++y)d&&(f^=d.charCodeAt((y+32)%d.length)),y===0&&(T=f),f^=f<<10,f^=f>>>15,f^=f<<4,f^=f>>>13,y>=0&&(T=T+1640531527|0,h=N[y&127]^=f+T,b=h==0?b+1:0);for(b>=128&&(N[(d&&d.length||0)&127]=-1),b=127,y=4*128;y>0;--y)f=N[b+34&127],h=N[b=b+1&127],f^=f<<13,h^=h<<17,f^=f>>>15,h^=h>>>12,N[b]=f^h;u.w=T,u.X=N,u.i=b}c(s,i)}function o(i,s){return s.i=i.i,s.w=i.w,s.X=i.X.slice(),s}function l(i,s){i==null&&(i=+new Date);var c=new a(i),u=s&&s.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(u.X&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.xor4096=l})($h,e)}(Ht)),Ht.exports}var Bt={exports:{}},Hh=Bt.exports,Jo;function Bh(){return Jo||(Jo=1,function(e){(function(t,r,n){function a(i){var s=this,c="";s.next=function(){var d=s.b,h=s.c,f=s.d,b=s.a;return d=d<<25^d>>>7^h,h=h-f|0,f=f<<24^f>>>8^b,b=b-d|0,s.b=d=d<<20^d>>>12^h,s.c=h=h-f|0,s.d=f<<16^h>>>16^b,s.a=b-d|0},s.a=0,s.b=0,s.c=-1640531527,s.d=1367130551,i===Math.floor(i)?(s.a=i/4294967296|0,s.b=i|0):c+=i;for(var u=0;u>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(typeof u=="object"&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.tychei=l})(Hh,e)}(Bt)),Bt.exports}var Vt={exports:{}};const Vh={},Uh=Object.freeze(Object.defineProperty({__proto__:null,default:Vh},Symbol.toStringTag,{value:"Module"})),qh=pi(Uh);var Wh=Vt.exports,Zo;function Xh(){return Zo||(Zo=1,function(e){(function(t,r,n){var a=256,o=6,l=52,i="random",s=n.pow(a,o),c=n.pow(2,l),u=c*2,d=a-1,h;function f(R,I,D){var m=[];I=I==!0?{entropy:!0}:I||{};var E=N(T(I.entropy?[R,A(r)]:R??_(),3),m),x=new b(m),k=function(){for(var L=x.g(o),j=s,w=0;L=u;)L/=2,j/=2,w>>>=1;return(L+w)/j};return k.int32=function(){return x.g(4)|0},k.quick=function(){return x.g(4)/4294967296},k.double=k,N(A(x.S),r),(I.pass||D||function(L,j,w,V){return V&&(V.S&&y(V,x),L.state=function(){return y(x,{})}),w?(n[i]=L,j):L})(k,E,"global"in I?I.global:this==n,I.state)}function b(R){var I,D=R.length,m=this,E=0,x=m.i=m.j=0,k=m.S=[];for(D||(R=[D++]);E{const t="#5D6D7E",r=e?e.toLowerCase():"unknown",n=ee.getState().typeColorMap;if(n.has(r))return n.get(r)||t;const a=Qh[r];if(a){const c=ta[a],u=new Map(n);return u.set(r,c),ee.setState({typeColorMap:u}),c}const o=new Set(Array.from(n.entries()).filter(([,c])=>!Object.values(ta).includes(c)).map(([,c])=>c)),i=Jh.find(c=>!o.has(c))||t,s=new Map(n);return s.set(r,i),ee.setState({typeColorMap:s}),i},Zh=e=>{if(!e)return console.log("Graph validation failed: graph is null"),!1;if(!Array.isArray(e.nodes)||!Array.isArray(e.edges))return console.log("Graph validation failed: nodes or edges is not an array"),!1;if(e.nodes.length===0)return console.log("Graph validation failed: nodes array is empty"),!1;for(const t of e.nodes)if(!t.id||!t.labels||!t.properties)return console.log("Graph validation failed: invalid node structure"),!1;for(const t of e.edges)if(!t.id||!t.source||!t.target)return console.log("Graph validation failed: invalid edge structure"),!1;for(const t of e.edges){const r=e.getNode(t.source),n=e.getNode(t.target);if(r==null||n==null)return console.log("Graph validation failed: edge references non-existent node"),!1}return console.log("Graph validation passed"),!0},eg=async(e,t,r)=>{let n=null;if(!ee.getState().lastSuccessfulQueryLabel){console.log("Last successful queryLabel is empty");try{await ee.getState().fetchAllDatabaseLabels()}catch(i){console.error("Failed to fetch all database labels:",i)}}ee.getState().setLabelsFetchAttempted(!0);const o=e||"*";try{console.log(`Fetching graph label: ${o}, depth: ${t}, nodes: ${r}`),n=await Ca(o,t,r)}catch(i){return _n.getState().setErrorMessage(rr(i),"Query Graphs Error!"),null}let l=null;if(n){const i={},s={};for(let h=0;h0){const h=Jr-ut;for(const f of n.nodes)f.size=Math.round(ut+h*Math.pow((f.degree-c)/d,.5))}l=new rl,l.nodes=n.nodes,l.edges=n.edges,l.nodeIdMap=i,l.edgeIdMap=s,Zh(l)||(l=null,console.warn("Invalid graph data")),console.log("Graph data loaded")}return{rawGraph:l,is_truncated:n.is_truncated}},tg=e=>{var i,s;const t=re.getState().minEdgeSize,r=re.getState().maxEdgeSize;if(!e||!e.nodes.length)return console.log("No graph data available, skipping sigma graph creation"),null;const n=new Yr;for(const c of(e==null?void 0:e.nodes)??[]){yn(c.id+Date.now().toString(),{global:!0});const u=Math.random(),d=Math.random();n.addNode(c.id,{label:c.labels.join(", "),color:c.color,x:u,y:d,size:c.size,borderColor:Qr,borderSize:.2})}for(const c of(e==null?void 0:e.edges)??[]){const u=((i=c.properties)==null?void 0:i.weight)!==void 0?Number(c.properties.weight):1;c.dynamicId=n.addEdge(c.source,c.target,{label:((s=c.properties)==null?void 0:s.keywords)||void 0,size:u,originalWeight:u,type:"curvedNoArrow"})}let a=Number.MAX_SAFE_INTEGER,o=0;n.forEachEdge(c=>{const u=n.getEdgeAttribute(c,"originalWeight")||1;a=Math.min(a,u),o=Math.max(o,u)});const l=o-a;if(l>0){const c=r-t;n.forEachEdge(u=>{const d=n.getEdgeAttribute(u,"originalWeight")||1,h=t+c*Math.pow((d-a)/l,.5);n.setEdgeAttribute(u,"size",h)})}else n.forEachEdge(c=>{n.setEdgeAttribute(c,"size",t)});return n},rg=()=>{const{t:e}=xe(),t=re.use.queryLabel(),r=ee.use.rawGraph(),n=ee.use.sigmaGraph(),a=re.use.graphQueryMaxDepth(),o=re.use.graphMaxNodes(),l=ee.use.isFetching(),i=ee.use.nodeToExpand(),s=ee.use.nodeToPrune(),c=p.useRef(!1),u=p.useRef(!1),d=p.useRef(!1),h=p.useCallback(N=>(r==null?void 0:r.getNode(N))||null,[r]),f=p.useCallback((N,_=!0)=>(r==null?void 0:r.getEdge(N,_))||null,[r]),b=p.useRef(!1);p.useEffect(()=>{if(!t&&(r!==null||n!==null)){const N=ee.getState();N.reset(),N.setGraphDataFetchAttempted(!1),N.setLabelsFetchAttempted(!1),c.current=!1,u.current=!1}},[t,r,n]),p.useEffect(()=>{if(!b.current&&!(!t&&d.current)&&!l&&!ee.getState().graphDataFetchAttempted){b.current=!0,ee.getState().setGraphDataFetchAttempted(!0);const N=ee.getState();N.setIsFetching(!0),N.clearSelection(),N.sigmaGraph&&N.sigmaGraph.forEachNode(D=>{var m;(m=N.sigmaGraph)==null||m.setNodeAttribute(D,"highlighted",!1)}),console.log("Preparing graph data...");const _=t,A=a,R=o;let I;_?I=eg(_,A,R):(console.log("Query label is empty, show empty graph"),I=Promise.resolve({rawGraph:null,is_truncated:!1})),I.then(D=>{const m=ee.getState(),E=D==null?void 0:D.rawGraph;if(E&&E.nodes&&E.nodes.forEach(x=>{var L;const k=(L=x.properties)==null?void 0:L.entity_type;x.color=ra(k)}),D!=null&&D.is_truncated&&rt.info(e("graphPanel.dataIsTruncated","Graph data is truncated to Max Nodes")),m.reset(),!E||!E.nodes||E.nodes.length===0){const x=new Yr;x.addNode("empty-graph-node",{label:e("graphPanel.emptyGraph"),color:"#5D6D7E",x:.5,y:.5,size:15,borderColor:Qr,borderSize:.2}),m.setSigmaGraph(x),m.setRawGraph(null),m.setGraphIsEmpty(!0);const k=_n.getState().message,L=k&&k.includes("Authentication required");!L&&_&&re.getState().setQueryLabel(""),L?console.log("Keep queryLabel for post-login reload"):m.setLastSuccessfulQueryLabel(""),console.log(`Graph data is empty, created graph with empty graph node. Auth error: ${L}`)}else{const x=tg(E);E.buildDynamicMap(),m.setSigmaGraph(x),m.setRawGraph(E),m.setGraphIsEmpty(!1),m.setLastSuccessfulQueryLabel(_),m.setMoveToSelectedNode(!0)}c.current=!0,u.current=!0,b.current=!1,m.setIsFetching(!1),(!E||!E.nodes||E.nodes.length===0)&&!_&&(d.current=!0)}).catch(D=>{console.error("Error fetching graph data:",D);const m=ee.getState();m.setIsFetching(!1),c.current=!1,b.current=!1,m.setGraphDataFetchAttempted(!1),m.setLastSuccessfulQueryLabel("")})}},[t,a,o,l,e]),p.useEffect(()=>{i&&((async _=>{var A,R,I,D,m,E;if(!(!_||!n||!r))try{const x=r.getNode(_);if(!x){console.error("Node not found:",_);return}const k=x.labels[0];if(!k){console.error("Node has no label:",_);return}const L=await Ca(k,2,1e3);if(!L||!L.nodes||!L.edges){console.error("Failed to fetch extended graph");return}const j=[];for(const F of L.nodes){yn(F.id,{global:!0});const Q=(A=F.properties)==null?void 0:A.entity_type,q=ra(Q);j.push({id:F.id,labels:F.labels,properties:F.properties,size:10,x:Math.random(),y:Math.random(),color:q,degree:0})}const w=[];for(const F of L.edges)w.push({id:F.id,source:F.source,target:F.target,type:F.type,properties:F.properties,dynamicId:""});const V={};n.forEachNode(F=>{V[F]={x:n.getNodeAttribute(F,"x"),y:n.getNodeAttribute(F,"y")}});const K=new Set(n.nodes()),O=new Set,C=new Set,S=1;let H=0,ae=Number.MAX_SAFE_INTEGER,$=0;n.forEachNode(F=>{const Q=n.degree(F);H=Math.max(H,Q)}),n.forEachEdge(F=>{const Q=n.getEdgeAttribute(F,"originalWeight")||1;ae=Math.min(ae,Q),$=Math.max($,Q)});for(const F of j){if(K.has(F.id))continue;w.some(q=>q.source===_&&q.target===F.id||q.target===_&&q.source===F.id)&&O.add(F.id)}const v=new Map,z=new Map,B=new Set;for(const F of w){const Q=K.has(F.source)||O.has(F.source),q=K.has(F.target)||O.has(F.target);Q&&q?(C.add(F.id),O.has(F.source)?v.set(F.source,(v.get(F.source)||0)+1):K.has(F.source)&&z.set(F.source,(z.get(F.source)||0)+1),O.has(F.target)?v.set(F.target,(v.get(F.target)||0)+1):K.has(F.target)&&z.set(F.target,(z.get(F.target)||0)+1)):(n.hasNode(F.source)?B.add(F.source):O.has(F.source)&&(B.add(F.source),v.set(F.source,(v.get(F.source)||0)+1)),n.hasNode(F.target)?B.add(F.target):O.has(F.target)&&(B.add(F.target),v.set(F.target,(v.get(F.target)||0)+1)))}const M=(F,Q,q,U)=>{const P=U-q||1,oe=Jr-ut;for(const ue of Q)if(F.hasNode(ue)){let te=F.degree(ue);te+=1;const Z=Math.min(te,U+1),G=Math.round(ut+oe*Math.pow((Z-q)/P,.5));F.setNodeAttribute(ue,"size",G)}},J=(F,Q,q)=>{const U=re.getState().minEdgeSize,P=re.getState().maxEdgeSize,oe=q-Q||1,ue=P-U;F.forEachEdge(te=>{const Z=F.getEdgeAttribute(te,"originalWeight")||1,G=U+ue*Math.pow((Z-Q)/oe,.5);F.setEdgeAttribute(te,"size",G)})};if(O.size===0){M(n,B,S,H),rt.info(e("graphPanel.propertiesView.node.noNewNodes"));return}for(const[,F]of v.entries())H=Math.max(H,F);for(const[F,Q]of z.entries()){const U=n.degree(F)+Q;H=Math.max(H,U)}const X=H-S||1,Y=Jr-ut,ie=((R=ee.getState().sigmaInstance)==null?void 0:R.getCamera().ratio)||1,ne=Math.max(Math.sqrt(x.size)*4,Math.sqrt(O.size)*3)/ie;yn(Date.now().toString(),{global:!0});const se=Math.random()*2*Math.PI;console.log("nodeSize:",x.size,"nodesToAdd:",O.size),console.log("cameraRatio:",Math.round(ie*100)/100,"spreadFactor:",Math.round(ne*100)/100);for(const F of O){const Q=j.find(Z=>Z.id===F),q=v.get(F)||0,U=Math.min(q,H+1),P=Math.round(ut+Y*Math.pow((U-S)/X,.5)),oe=2*Math.PI*(Array.from(O).indexOf(F)/O.size),ue=((I=V[F])==null?void 0:I.x)||V[x.id].x+Math.cos(se+oe)*ne,te=((D=V[F])==null?void 0:D.y)||V[x.id].y+Math.sin(se+oe)*ne;n.addNode(F,{label:Q.labels.join(", "),color:Q.color,x:ue,y:te,size:P,borderColor:Qr,borderSize:.2}),r.getNode(F)||(Q.size=P,Q.x=ue,Q.y=te,Q.degree=q,r.nodes.push(Q),r.nodeIdMap[F]=r.nodes.length-1)}for(const F of C){const Q=w.find(U=>U.id===F);if(n.hasEdge(Q.source,Q.target))continue;const q=((m=Q.properties)==null?void 0:m.weight)!==void 0?Number(Q.properties.weight):1;ae=Math.min(ae,q),$=Math.max($,q),Q.dynamicId=n.addEdge(Q.source,Q.target,{label:((E=Q.properties)==null?void 0:E.keywords)||void 0,size:q,originalWeight:q,type:"curvedNoArrow"}),r.getEdge(Q.id,!1)?console.error("Edge already exists in rawGraph:",Q.id):(r.edges.push(Q),r.edgeIdMap[Q.id]=r.edges.length-1,r.edgeDynamicIdMap[Q.dynamicId]=r.edges.length-1)}if(r.buildDynamicMap(),ee.getState().resetSearchEngine(),M(n,B,S,H),J(n,ae,$),n.hasNode(_)){const F=n.degree(_),Q=Math.min(F,H+1),q=Math.round(ut+Y*Math.pow((Q-S)/X,.5));n.setNodeAttribute(_,"size",q),x.size=q,x.degree=F}}catch(x){console.error("Error expanding node:",x)}})(i),window.setTimeout(()=>{ee.getState().triggerNodeExpand(null)},0))},[i,n,r,e]);const y=p.useCallback((N,_)=>{const A=new Set([N]);return _.forEachNode(R=>{if(R===N)return;const I=_.neighbors(R);I.length===1&&I[0]===N&&A.add(R)}),A},[]);return p.useEffect(()=>{s&&((_=>{if(!(!_||!n||!r))try{const A=ee.getState();if(!n.hasNode(_)){console.error("Node not found:",_);return}const R=y(_,n);if(R.size===n.nodes().length){rt.error(e("graphPanel.propertiesView.node.deleteAllNodesError"));return}A.clearSelection();for(const I of R){n.dropNode(I);const D=r.nodeIdMap[I];if(D!==void 0){const m=r.edges.filter(E=>E.source===I||E.target===I);for(const E of m){const x=r.edgeIdMap[E.id];if(x!==void 0){r.edges.splice(x,1);for(const[k,L]of Object.entries(r.edgeIdMap))L>x&&(r.edgeIdMap[k]=L-1);delete r.edgeIdMap[E.id],delete r.edgeDynamicIdMap[E.dynamicId]}}r.nodes.splice(D,1);for(const[E,x]of Object.entries(r.nodeIdMap))x>D&&(r.nodeIdMap[E]=x-1);delete r.nodeIdMap[I]}}r.buildDynamicMap(),ee.getState().resetSearchEngine(),R.size>1&&rt.info(e("graphPanel.propertiesView.node.nodesRemoved",{count:R.size}))}catch(A){console.error("Error pruning node:",A)}})(s),window.setTimeout(()=>{ee.getState().triggerNodePrune(null)},0))},[s,n,r,y,e]),{lightrageGraph:p.useCallback(()=>{if(n)return n;console.log("Creating new Sigma graph instance");const N=new Yr;return ee.getState().setSigmaGraph(N),N},[n]),getNode:h,getEdge:f}},ng=({name:e})=>{const{t}=xe(),r=n=>{const a=`graphPanel.propertiesView.node.propertyNames.${n}`,o=t(a);return o===a?n:o};return g.jsx("span",{className:"text-primary/60 tracking-wide whitespace-nowrap",children:r(e)})},og=({onClick:e})=>g.jsx("div",{children:g.jsx(su,{className:"h-3 w-3 text-gray-500 hover:text-gray-700 cursor-pointer",onClick:e})}),ag=({value:e,onClick:t,tooltip:r})=>g.jsx("div",{className:"flex items-center gap-1 overflow-hidden",children:g.jsx(Vs,{className:"hover:bg-primary/20 rounded p-1 overflow-hidden text-ellipsis whitespace-nowrap",tooltipClassName:"max-w-80 -translate-x-15",text:e,tooltip:r||(typeof e=="string"?e:JSON.stringify(e,null,2)),side:"left",onClick:t})}),sg=({isOpen:e,onClose:t,onSave:r,propertyName:n,initialValue:a,isSubmitting:o=!1})=>{const{t:l}=xe(),[i,s]=p.useState("");p.useEffect(()=>{e&&s(a)},[e,a]);const c=h=>{const f=`graphPanel.propertiesView.node.propertyNames.${h}`,b=l(f);return b===f?h:b},u=h=>{switch(h){case"description":return{className:"max-h-[50vh] min-h-[10em] resize-y",style:{height:"70vh",minHeight:"20em",resize:"vertical"}};case"entity_id":return{rows:2,className:"",style:{}};case"keywords":return{rows:4,className:"",style:{}};default:return{rows:5,className:"",style:{}}}},d=()=>{i.trim()!==""&&(r(i),t())};return g.jsx(Lu,{open:e,onOpenChange:h=>!h&&t(),children:g.jsxs(Xa,{className:"sm:max-w-md",children:[g.jsxs(Ya,{children:[g.jsx(Qa,{children:l("graphPanel.propertiesView.editProperty",{property:c(n)})}),g.jsx(Ja,{children:l("graphPanel.propertiesView.editPropertyDescription")})]}),g.jsx("div",{className:"grid gap-4 py-4",children:(()=>{const h=u(n);return n==="description"?g.jsx("textarea",{value:i,onChange:f=>s(f.target.value),className:`border-input focus-visible:ring-ring flex w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm transition-colors focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${h.className}`,style:h.style,disabled:o}):g.jsx("textarea",{value:i,onChange:f=>s(f.target.value),rows:h.rows,className:`border-input focus-visible:ring-ring flex w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm transition-colors focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${h.className}`,disabled:o})})()}),g.jsxs(Ka,{children:[g.jsx(be,{type:"button",variant:"outline",onClick:t,disabled:o,children:l("common.cancel")}),g.jsx(be,{type:"button",onClick:d,disabled:o,children:l("common.save")})]})]})})},ig=({name:e,value:t,onClick:r,nodeId:n,edgeId:a,entityId:o,dynamicId:l,entityType:i,sourceId:s,targetId:c,onValueChange:u,isEditable:d=!1,tooltip:h})=>{const{t:f}=xe(),[b,y]=p.useState(!1),[T,N]=p.useState(!1),[_,A]=p.useState(t);p.useEffect(()=>{A(t)},[t]);const R=()=>{d&&!b&&y(!0)},I=()=>{y(!1)},D=async m=>{if(T||m===String(_)){y(!1);return}N(!0);try{if(i==="node"&&o&&n){let E={[e]:m};if(e==="entity_id"){if(await cl(m)){rt.error(f("graphPanel.propertiesView.errors.duplicateName"));return}E={entity_name:m}}await il(o,E,!0);try{await ee.getState().updateNodeAndSelect(n,o,e,m)}catch(x){throw console.error("Error updating node in graph:",x),new Error("Failed to update node in graph")}rt.success(f("graphPanel.propertiesView.success.entityUpdated"))}else if(i==="edge"&&s&&c&&a&&l){const E={[e]:m};await ll(s,c,E);try{await ee.getState().updateEdgeAndSelect(a,l,s,c,e,m)}catch(x){throw console.error(`Error updating edge ${s}->${c} in graph:`,x),new Error("Failed to update edge in graph")}rt.success(f("graphPanel.propertiesView.success.relationUpdated"))}y(!1),A(m),u==null||u(m)}catch(E){console.error("Error updating property:",E),rt.error(f("graphPanel.propertiesView.errors.updateFailed"))}finally{N(!1)}};return g.jsxs("div",{className:"flex items-center gap-1 overflow-hidden",children:[g.jsx(ng,{name:e}),g.jsx(og,{onClick:R}),":",g.jsx(ag,{value:_,onClick:r,tooltip:h||(typeof _=="string"?_:JSON.stringify(_,null,2))}),g.jsx(sg,{isOpen:b,onClose:I,onSave:D,propertyName:e,initialValue:String(_),isSubmitting:T})]})},lg=()=>{const{getNode:e,getEdge:t}=rg(),r=ee.use.selectedNode(),n=ee.use.focusedNode(),a=ee.use.selectedEdge(),o=ee.use.focusedEdge(),l=ee.use.graphDataVersion(),[i,s]=p.useState(null),[c,u]=p.useState(null);return p.useEffect(()=>{let d=null,h=null;n?(d="node",h=e(n)):r?(d="node",h=e(r)):o?(d="edge",h=t(o,!0)):a&&(d="edge",h=t(a,!0)),h?(d=="node"?s(cg(h)):s(ug(h)),u(d)):(s(null),u(null))},[n,r,o,a,l,s,u,e,t]),i?g.jsx("div",{className:"bg-background/80 max-w-xs rounded-lg border-2 p-2 text-xs backdrop-blur-lg",children:c=="node"?g.jsx(dg,{node:i}):g.jsx(fg,{edge:i})}):g.jsx(g.Fragment,{})},cg=e=>{const t=ee.getState(),r=[];if(t.sigmaGraph&&t.rawGraph)try{if(!t.sigmaGraph.hasNode(e.id))return console.warn("Node not found in sigmaGraph:",e.id),{...e,relationships:[]};const n=t.sigmaGraph.edges(e.id);for(const a of n){if(!t.sigmaGraph.hasEdge(a))continue;const o=t.rawGraph.getEdge(a,!0);if(o){const i=e.id===o.source?o.target:o.source;if(!t.sigmaGraph.hasNode(i))continue;const s=t.rawGraph.getNode(i);s&&r.push({type:"Neighbour",id:i,label:s.properties.entity_id?s.properties.entity_id:s.labels.join(", ")})}}}catch(n){console.error("Error refining node properties:",n)}return{...e,relationships:r}},ug=e=>{const t=ee.getState();let r,n;if(t.sigmaGraph&&t.rawGraph)try{if(!t.sigmaGraph.hasEdge(e.dynamicId))return console.warn("Edge not found in sigmaGraph:",e.id,"dynamicId:",e.dynamicId),{...e,sourceNode:void 0,targetNode:void 0};t.sigmaGraph.hasNode(e.source)&&(r=t.rawGraph.getNode(e.source)),t.sigmaGraph.hasNode(e.target)&&(n=t.rawGraph.getNode(e.target))}catch(a){console.error("Error refining edge properties:",a)}return{...e,sourceNode:r,targetNode:n}},Me=({name:e,value:t,onClick:r,tooltip:n,nodeId:a,edgeId:o,dynamicId:l,entityId:i,entityType:s,sourceId:c,targetId:u,isEditable:d=!1})=>{const{t:h}=xe(),f=b=>{const y=`graphPanel.propertiesView.node.propertyNames.${b}`,T=h(y);return T===y?b:T};return d&&(e==="description"||e==="entity_id"||e==="keywords")?g.jsx(ig,{name:e,value:t,onClick:r,nodeId:a,entityId:i,edgeId:o,dynamicId:l,entityType:s,sourceId:c,targetId:u,isEditable:!0,tooltip:n||(typeof t=="string"?t:JSON.stringify(t,null,2))}):g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx("span",{className:"text-primary/60 tracking-wide whitespace-nowrap",children:f(e)}),":",g.jsx(Vs,{className:"hover:bg-primary/20 rounded p-1 overflow-hidden text-ellipsis",tooltipClassName:"max-w-80 -translate-x-13",text:t,tooltip:n||(typeof t=="string"?t:JSON.stringify(t,null,2)),side:"left",onClick:r})]})},dg=({node:e})=>{const{t}=xe(),r=()=>{ee.getState().triggerNodeExpand(e.id)},n=()=>{ee.getState().triggerNodePrune(e.id)};return g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsxs("div",{className:"flex justify-between items-center",children:[g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-blue-700",children:t("graphPanel.propertiesView.node.title")}),g.jsxs("div",{className:"flex gap-3",children:[g.jsx(be,{size:"icon",variant:"ghost",className:"h-7 w-7 border border-gray-400 hover:bg-gray-200 dark:border-gray-600 dark:hover:bg-gray-700",onClick:r,tooltip:t("graphPanel.propertiesView.node.expandNode"),children:g.jsx(Uc,{className:"h-4 w-4 text-gray-700 dark:text-gray-300"})}),g.jsx(be,{size:"icon",variant:"ghost",className:"h-7 w-7 border border-gray-400 hover:bg-gray-200 dark:border-gray-600 dark:hover:bg-gray-700",onClick:n,tooltip:t("graphPanel.propertiesView.node.pruneNode"),children:g.jsx(mu,{className:"h-4 w-4 text-gray-900 dark:text-gray-300"})})]})]}),g.jsxs("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:[g.jsx(Me,{name:t("graphPanel.propertiesView.node.id"),value:String(e.id)}),g.jsx(Me,{name:t("graphPanel.propertiesView.node.labels"),value:e.labels.join(", "),onClick:()=>{ee.getState().setSelectedNode(e.id,!0)}}),g.jsx(Me,{name:t("graphPanel.propertiesView.node.degree"),value:e.degree})]}),g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-amber-700",children:t("graphPanel.propertiesView.node.properties")}),g.jsx("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:Object.keys(e.properties).sort().map(a=>a==="created_at"?null:g.jsx(Me,{name:a,value:e.properties[a],nodeId:String(e.id),entityId:e.properties.entity_id,entityType:"node",isEditable:a==="description"||a==="entity_id"},a))}),e.relationships.length>0&&g.jsxs(g.Fragment,{children:[g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-emerald-700",children:t("graphPanel.propertiesView.node.relationships")}),g.jsx("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:e.relationships.map(({type:a,id:o,label:l})=>g.jsx(Me,{name:a,value:l,onClick:()=>{ee.getState().setSelectedNode(o,!0)}},o))})]})]})},fg=({edge:e})=>{const{t}=xe();return g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-violet-700",children:t("graphPanel.propertiesView.edge.title")}),g.jsxs("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:[g.jsx(Me,{name:t("graphPanel.propertiesView.edge.id"),value:e.id}),e.type&&g.jsx(Me,{name:t("graphPanel.propertiesView.edge.type"),value:e.type}),g.jsx(Me,{name:t("graphPanel.propertiesView.edge.source"),value:e.sourceNode?e.sourceNode.labels.join(", "):e.source,onClick:()=>{ee.getState().setSelectedNode(e.source,!0)}}),g.jsx(Me,{name:t("graphPanel.propertiesView.edge.target"),value:e.targetNode?e.targetNode.labels.join(", "):e.target,onClick:()=>{ee.getState().setSelectedNode(e.target,!0)}})]}),g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-amber-700",children:t("graphPanel.propertiesView.edge.properties")}),g.jsx("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:Object.keys(e.properties).sort().map(r=>{var n,a;return r==="created_at"?null:g.jsx(Me,{name:r,value:e.properties[r],edgeId:String(e.id),dynamicId:String(e.dynamicId),entityType:"edge",sourceId:((n=e.sourceNode)==null?void 0:n.properties.entity_id)||e.source,targetId:((a=e.targetNode)==null?void 0:a.properties.entity_id)||e.target,isEditable:r==="description"||r==="keywords"},r)})})]})},hg=()=>{const{t:e}=xe(),t=re.use.graphQueryMaxDepth(),r=re.use.graphMaxNodes();return g.jsxs("div",{className:"absolute bottom-4 left-[calc(1rem+2.5rem)] flex items-center gap-2 text-xs text-gray-400",children:[g.jsxs("div",{children:[e("graphPanel.sideBar.settings.depth"),": ",t]}),g.jsxs("div",{children:[e("graphPanel.sideBar.settings.max"),": ",r]})]})},Us=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("bg-card text-card-foreground rounded-xl border shadow",e),...t}));Us.displayName="Card";const gg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("flex flex-col space-y-1.5 p-6",e),...t}));gg.displayName="CardHeader";const pg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("leading-none font-semibold tracking-tight",e),...t}));pg.displayName="CardTitle";const mg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("text-muted-foreground text-sm",e),...t}));mg.displayName="CardDescription";const vg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("p-6 pt-0",e),...t}));vg.displayName="CardContent";const yg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("flex items-center p-6 pt-0",e),...t}));yg.displayName="CardFooter";function bg(e,t){return p.useReducer((r,n)=>t[r][n]??r,e)}var Fn="ScrollArea",[qs,Ip]=wn(Fn),[wg,Ne]=qs(Fn),Ws=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,type:n="hover",dir:a,scrollHideDelay:o=600,...l}=e,[i,s]=p.useState(null),[c,u]=p.useState(null),[d,h]=p.useState(null),[f,b]=p.useState(null),[y,T]=p.useState(null),[N,_]=p.useState(0),[A,R]=p.useState(0),[I,D]=p.useState(!1),[m,E]=p.useState(!1),x=Xe(t,L=>s(L)),k=Fi(a);return g.jsx(wg,{scope:r,type:n,dir:k,scrollHideDelay:o,scrollArea:i,viewport:c,onViewportChange:u,content:d,onContentChange:h,scrollbarX:f,onScrollbarXChange:b,scrollbarXEnabled:I,onScrollbarXEnabledChange:D,scrollbarY:y,onScrollbarYChange:T,scrollbarYEnabled:m,onScrollbarYEnabledChange:E,onCornerWidthChange:_,onCornerHeightChange:R,children:g.jsx(Ee.div,{dir:k,...l,ref:x,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":A+"px",...e.style}})})});Ws.displayName=Fn;var Xs="ScrollAreaViewport",Ys=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,children:n,nonce:a,...o}=e,l=Ne(Xs,r),i=p.useRef(null),s=Xe(t,i,l.onViewportChange);return g.jsxs(g.Fragment,{children:[g.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),g.jsx(Ee.div,{"data-radix-scroll-area-viewport":"",...o,ref:s,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:g.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});Ys.displayName=Xs;var Ve="ScrollAreaScrollbar",$n=p.forwardRef((e,t)=>{const{forceMount:r,...n}=e,a=Ne(Ve,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:l}=a,i=e.orientation==="horizontal";return p.useEffect(()=>(i?o(!0):l(!0),()=>{i?o(!1):l(!1)}),[i,o,l]),a.type==="hover"?g.jsx(xg,{...n,ref:t,forceMount:r}):a.type==="scroll"?g.jsx(Sg,{...n,ref:t,forceMount:r}):a.type==="auto"?g.jsx(Ks,{...n,ref:t,forceMount:r}):a.type==="always"?g.jsx(Mn,{...n,ref:t}):null});$n.displayName=Ve;var xg=p.forwardRef((e,t)=>{const{forceMount:r,...n}=e,a=Ne(Ve,e.__scopeScrollArea),[o,l]=p.useState(!1);return p.useEffect(()=>{const i=a.scrollArea;let s=0;if(i){const c=()=>{window.clearTimeout(s),l(!0)},u=()=>{s=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return i.addEventListener("pointerenter",c),i.addEventListener("pointerleave",u),()=>{window.clearTimeout(s),i.removeEventListener("pointerenter",c),i.removeEventListener("pointerleave",u)}}},[a.scrollArea,a.scrollHideDelay]),g.jsx(St,{present:r||o,children:g.jsx(Ks,{"data-state":o?"visible":"hidden",...n,ref:t})})}),Sg=p.forwardRef((e,t)=>{const{forceMount:r,...n}=e,a=Ne(Ve,e.__scopeScrollArea),o=e.orientation==="horizontal",l=fr(()=>s("SCROLL_END"),100),[i,s]=bg("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return p.useEffect(()=>{if(i==="idle"){const c=window.setTimeout(()=>s("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(c)}},[i,a.scrollHideDelay,s]),p.useEffect(()=>{const c=a.viewport,u=o?"scrollLeft":"scrollTop";if(c){let d=c[u];const h=()=>{const f=c[u];d!==f&&(s("SCROLL"),l()),d=f};return c.addEventListener("scroll",h),()=>c.removeEventListener("scroll",h)}},[a.viewport,o,s,l]),g.jsx(St,{present:r||i!=="hidden",children:g.jsx(Mn,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:Ce(e.onPointerEnter,()=>s("POINTER_ENTER")),onPointerLeave:Ce(e.onPointerLeave,()=>s("POINTER_LEAVE"))})})}),Ks=p.forwardRef((e,t)=>{const r=Ne(Ve,e.__scopeScrollArea),{forceMount:n,...a}=e,[o,l]=p.useState(!1),i=e.orientation==="horizontal",s=fr(()=>{if(r.viewport){const c=r.viewport.offsetWidth{const{orientation:r="vertical",...n}=e,a=Ne(Ve,e.__scopeScrollArea),o=p.useRef(null),l=p.useRef(0),[i,s]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=ti(i.viewport,i.content),u={...n,sizes:i,onSizesChange:s,hasThumb:c>0&&c<1,onThumbChange:h=>o.current=h,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:h=>l.current=h};function d(h,f){return Rg(h,l.current,i,f)}return r==="horizontal"?g.jsx(Eg,{...u,ref:t,onThumbPositionChange:()=>{if(a.viewport&&o.current){const h=a.viewport.scrollLeft,f=na(h,i,a.dir);o.current.style.transform=`translate3d(${f}px, 0, 0)`}},onWheelScroll:h=>{a.viewport&&(a.viewport.scrollLeft=h)},onDragScroll:h=>{a.viewport&&(a.viewport.scrollLeft=d(h,a.dir))}}):r==="vertical"?g.jsx(_g,{...u,ref:t,onThumbPositionChange:()=>{if(a.viewport&&o.current){const h=a.viewport.scrollTop,f=na(h,i);o.current.style.transform=`translate3d(0, ${f}px, 0)`}},onWheelScroll:h=>{a.viewport&&(a.viewport.scrollTop=h)},onDragScroll:h=>{a.viewport&&(a.viewport.scrollTop=d(h))}}):null}),Eg=p.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...a}=e,o=Ne(Ve,e.__scopeScrollArea),[l,i]=p.useState(),s=p.useRef(null),c=Xe(t,s,o.onScrollbarXChange);return p.useEffect(()=>{s.current&&i(getComputedStyle(s.current))},[s]),g.jsx(Js,{"data-orientation":"horizontal",...a,ref:c,sizes:r,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":dr(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,d)=>{if(o.viewport){const h=o.viewport.scrollLeft+u.deltaX;e.onWheelScroll(h),ni(h,d)&&u.preventDefault()}},onResize:()=>{s.current&&o.viewport&&l&&n({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:s.current.clientWidth,paddingStart:Zt(l.paddingLeft),paddingEnd:Zt(l.paddingRight)}})}})}),_g=p.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...a}=e,o=Ne(Ve,e.__scopeScrollArea),[l,i]=p.useState(),s=p.useRef(null),c=Xe(t,s,o.onScrollbarYChange);return p.useEffect(()=>{s.current&&i(getComputedStyle(s.current))},[s]),g.jsx(Js,{"data-orientation":"vertical",...a,ref:c,sizes:r,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":dr(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,d)=>{if(o.viewport){const h=o.viewport.scrollTop+u.deltaY;e.onWheelScroll(h),ni(h,d)&&u.preventDefault()}},onResize:()=>{s.current&&o.viewport&&l&&n({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:s.current.clientHeight,paddingStart:Zt(l.paddingTop),paddingEnd:Zt(l.paddingBottom)}})}})}),[Cg,Qs]=qs(Ve),Js=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:a,onThumbChange:o,onThumbPointerUp:l,onThumbPointerDown:i,onThumbPositionChange:s,onDragScroll:c,onWheelScroll:u,onResize:d,...h}=e,f=Ne(Ve,r),[b,y]=p.useState(null),T=Xe(t,x=>y(x)),N=p.useRef(null),_=p.useRef(""),A=f.viewport,R=n.content-n.viewport,I=ct(u),D=ct(s),m=fr(d,10);function E(x){if(N.current){const k=x.clientX-N.current.left,L=x.clientY-N.current.top;c({x:k,y:L})}}return p.useEffect(()=>{const x=k=>{const L=k.target;(b==null?void 0:b.contains(L))&&I(k,R)};return document.addEventListener("wheel",x,{passive:!1}),()=>document.removeEventListener("wheel",x,{passive:!1})},[A,b,R,I]),p.useEffect(D,[n,D]),xt(b,m),xt(f.content,m),g.jsx(Cg,{scope:r,scrollbar:b,hasThumb:a,onThumbChange:ct(o),onThumbPointerUp:ct(l),onThumbPositionChange:D,onThumbPointerDown:ct(i),children:g.jsx(Ee.div,{...h,ref:T,style:{position:"absolute",...h.style},onPointerDown:Ce(e.onPointerDown,x=>{x.button===0&&(x.target.setPointerCapture(x.pointerId),N.current=b.getBoundingClientRect(),_.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",f.viewport&&(f.viewport.style.scrollBehavior="auto"),E(x))}),onPointerMove:Ce(e.onPointerMove,E),onPointerUp:Ce(e.onPointerUp,x=>{const k=x.target;k.hasPointerCapture(x.pointerId)&&k.releasePointerCapture(x.pointerId),document.body.style.webkitUserSelect=_.current,f.viewport&&(f.viewport.style.scrollBehavior=""),N.current=null})})})}),Jt="ScrollAreaThumb",Zs=p.forwardRef((e,t)=>{const{forceMount:r,...n}=e,a=Qs(Jt,e.__scopeScrollArea);return g.jsx(St,{present:r||a.hasThumb,children:g.jsx(kg,{ref:t,...n})})}),kg=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,style:n,...a}=e,o=Ne(Jt,r),l=Qs(Jt,r),{onThumbPositionChange:i}=l,s=Xe(t,d=>l.onThumbChange(d)),c=p.useRef(void 0),u=fr(()=>{c.current&&(c.current(),c.current=void 0)},100);return p.useEffect(()=>{const d=o.viewport;if(d){const h=()=>{if(u(),!c.current){const f=Ag(d,i);c.current=f,i()}};return i(),d.addEventListener("scroll",h),()=>d.removeEventListener("scroll",h)}},[o.viewport,u,i]),g.jsx(Ee.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:s,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:Ce(e.onPointerDownCapture,d=>{const f=d.target.getBoundingClientRect(),b=d.clientX-f.left,y=d.clientY-f.top;l.onThumbPointerDown({x:b,y})}),onPointerUp:Ce(e.onPointerUp,l.onThumbPointerUp)})});Zs.displayName=Jt;var Hn="ScrollAreaCorner",ei=p.forwardRef((e,t)=>{const r=Ne(Hn,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?g.jsx(Tg,{...e,ref:t}):null});ei.displayName=Hn;var Tg=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,...n}=e,a=Ne(Hn,r),[o,l]=p.useState(0),[i,s]=p.useState(0),c=!!(o&&i);return xt(a.scrollbarX,()=>{var d;const u=((d=a.scrollbarX)==null?void 0:d.offsetHeight)||0;a.onCornerHeightChange(u),s(u)}),xt(a.scrollbarY,()=>{var d;const u=((d=a.scrollbarY)==null?void 0:d.offsetWidth)||0;a.onCornerWidthChange(u),l(u)}),c?g.jsx(Ee.div,{...n,ref:t,style:{width:o,height:i,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Zt(e){return e?parseInt(e,10):0}function ti(e,t){const r=e/t;return isNaN(r)?0:r}function dr(e){const t=ti(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function Rg(e,t,r,n="ltr"){const a=dr(r),o=a/2,l=t||o,i=a-l,s=r.scrollbar.paddingStart+l,c=r.scrollbar.size-r.scrollbar.paddingEnd-i,u=r.content-r.viewport,d=n==="ltr"?[0,u]:[u*-1,0];return ri([s,c],d)(e)}function na(e,t,r="ltr"){const n=dr(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-a,l=t.content-t.viewport,i=o-n,s=r==="ltr"?[0,l]:[l*-1,0],c=Mi(e,s);return ri([0,l],[0,i])(c)}function ri(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function ni(e,t){return e>0&&e{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return function a(){const o={left:e.scrollLeft,top:e.scrollTop},l=r.left!==o.left,i=r.top!==o.top;(l||i)&&t(),r=o,n=window.requestAnimationFrame(a)}(),()=>window.cancelAnimationFrame(n)};function fr(e,t){const r=ct(e),n=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(n.current),[]),p.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function xt(e,t){const r=ct(t);$i(()=>{let n=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return a.observe(e),()=>{window.cancelAnimationFrame(n),a.unobserve(e)}}},[e,r])}var oi=Ws,jg=Ys,Ig=ei;const ai=p.forwardRef(({className:e,children:t,...r},n)=>g.jsxs(oi,{ref:n,className:fe("relative overflow-hidden",e),...r,children:[g.jsx(jg,{className:"h-full w-full rounded-[inherit]",children:t}),g.jsx(si,{}),g.jsx(Ig,{})]}));ai.displayName=oi.displayName;const si=p.forwardRef(({className:e,orientation:t="vertical",...r},n)=>g.jsx($n,{ref:n,orientation:t,className:fe("flex touch-none transition-colors select-none",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...r,children:g.jsx(Zs,{className:"bg-border relative flex-1 rounded-full"})}));si.displayName=$n.displayName;const Lg=({className:e})=>{const{t}=xe(),r=ee.use.typeColorMap();return!r||r.size===0?null:g.jsxs(Us,{className:`p-2 max-w-xs ${e}`,children:[g.jsx("h3",{className:"text-sm font-medium mb-2",children:t("graphPanel.legend")}),g.jsx(ai,{className:"max-h-80",children:g.jsx("div",{className:"flex flex-col gap-1",children:Array.from(r.entries()).map(([n,a])=>g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx("div",{className:"w-4 h-4 rounded-full",style:{backgroundColor:a}}),g.jsx("span",{className:"text-xs truncate",title:n,children:t(`graphPanel.nodeTypes.${n.toLowerCase()}`,n)})]},n))})})]})},Ng=()=>{const{t:e}=xe(),t=re.use.showLegend(),r=re.use.setShowLegend(),n=p.useCallback(()=>{r(!t)},[t,r]);return g.jsx(be,{variant:Le,onClick:n,tooltip:e("graphPanel.sideBar.legendControl.toggleLegend"),size:"icon",children:g.jsx(Ic,{})})},oa={allowInvalidContainer:!0,defaultNodeType:"default",defaultEdgeType:"curvedNoArrow",renderEdgeLabels:!1,edgeProgramClasses:{arrow:Si,curvedArrow:Ad,curvedNoArrow:Rd},nodeProgramClasses:{default:dd,circel:xi,point:Fu},labelGridCellSize:60,labelRenderedSizeThreshold:12,enableEdgeEvents:!0,labelColor:{color:"#000",attribute:"labelColor"},edgeLabelColor:{color:"#000",attribute:"labelColor"},edgeLabelSize:8,labelSize:12},Pg=()=>{const e=ga(),t=Be(),[r,n]=p.useState(null);return p.useEffect(()=>{e({downNode:a=>{n(a.node),t.getGraph().setNodeAttribute(a.node,"highlighted",!0)},mousemovebody:a=>{if(!r)return;const o=t.viewportToGraph(a);t.getGraph().setNodeAttribute(r,"x",o.x),t.getGraph().setNodeAttribute(r,"y",o.y),a.preventSigmaDefault(),a.original.preventDefault(),a.original.stopPropagation()},mouseup:()=>{r&&(n(null),t.getGraph().removeNodeAttribute(r,"highlighted"))},mousedown:a=>{a.original.buttons!==0&&!t.getCustomBBox()&&t.setCustomBBox(t.getBBox())}})},[e,t,r]),null},Lp=()=>{const[e,t]=p.useState(oa),r=p.useRef(null),n=ee.use.selectedNode(),a=ee.use.focusedNode(),o=ee.use.moveToSelectedNode(),l=ee.use.isFetching(),i=re.use.showPropertyPanel(),s=re.use.showNodeSearchBar(),c=re.use.enableNodeDrag(),u=re.use.showLegend();p.useEffect(()=>{t(oa),console.log("Initialized sigma settings")},[]),p.useEffect(()=>()=>{const y=ee.getState().sigmaInstance;if(y)try{y.kill(),ee.getState().setSigmaInstance(null),console.log("Cleared sigma instance on Graphviewer unmount")}catch(T){console.error("Error cleaning up sigma instance:",T)}},[]);const d=p.useCallback(y=>{y===null?ee.getState().setFocusedNode(null):y.type==="nodes"&&ee.getState().setFocusedNode(y.id)},[]),h=p.useCallback(y=>{y===null?ee.getState().setSelectedNode(null):y.type==="nodes"&&ee.getState().setSelectedNode(y.id,!0)},[]),f=p.useMemo(()=>a??n,[a,n]),b=p.useMemo(()=>n?{type:"nodes",id:n}:null,[n]);return g.jsxs("div",{className:"relative h-full w-full overflow-hidden",children:[g.jsxs(Ei,{settings:e,className:"!bg-background !size-full overflow-hidden",ref:r,children:[g.jsx(Kf,{}),c&&g.jsx(Pg,{}),g.jsx(jd,{node:f,move:o}),g.jsxs("div",{className:"absolute top-2 left-2 flex items-start gap-2",children:[g.jsx(Ih,{}),s&&g.jsx(Rh,{value:b,onFocus:d,onChange:h})]}),g.jsxs("div",{className:"bg-background/60 absolute bottom-2 left-2 flex flex-col rounded-xl border-2 backdrop-blur-lg",children:[g.jsx(Xf,{}),g.jsx(Qf,{}),g.jsx(Jf,{}),g.jsx(Ng,{}),g.jsx(ih,{})]}),i&&g.jsx("div",{className:"absolute top-2 right-2",children:g.jsx(lg,{})}),u&&g.jsx("div",{className:"absolute bottom-10 right-2",children:g.jsx(Lg,{className:"bg-background/60 backdrop-blur-lg"})}),g.jsx(hg,{})]}),l&&g.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-background/80 z-10",children:g.jsxs("div",{className:"text-center",children:[g.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),g.jsx("p",{children:"Loading Graph Data..."})]})})]})};export{Kg as $,up as A,be as B,Us as C,Lu as D,vp as E,bp as F,vg as G,lp as H,Wt as I,wp as J,hp as K,fp as L,gp as M,pp as N,Va as O,$a as P,Ma as Q,uu as R,ai as S,kp as T,Tp as U,Ha as V,kn as W,ku as X,Yf as Y,mp as Z,Sp as _,pg as a,Yg as a0,$g as a1,Bs as a2,Cp as a3,Ji as a4,no as a5,Ug as a6,qg as a7,Tn as a8,Rn as a9,_p as aa,ir as ab,qt as ac,Mg as ad,Rp as ae,Vg as af,xp as ag,Ep as ah,_a as ai,Kr as aj,Hg as ak,op as al,Lp as am,ep as an,rp as ao,np as ap,ap as aq,mg as b,fe as c,rt as d,yp as e,Qg as f,rr as g,Ap as h,Xa as i,Ya as j,Qa as k,Ja as l,Jg as m,Zg as n,Ns as o,Ka as p,cp as q,dp as r,Bg as s,tp as t,xe as u,_n as v,re as w,Wg as x,Xg as y,gg as z}; + */var Fo;function Rf(){if(Fo)return Fr;Fo=1;var e=gi();function t(d,h){return d===h&&(d!==0||1/d===1/h)||d!==d&&h!==h}var r=typeof Object.is=="function"?Object.is:t,n=e.useState,a=e.useEffect,o=e.useLayoutEffect,l=e.useDebugValue;function i(d,h){var f=h(),b=n({inst:{value:f,getSnapshot:h}}),y=b[0].inst,T=b[1];return o(function(){y.value=f,y.getSnapshot=h,s(y)&&T({inst:y})},[d,f,h]),a(function(){return s(y)&&T({inst:y}),d(function(){s(y)&&T({inst:y})})},[d]),l(f),f}function s(d){var h=d.getSnapshot;d=d.value;try{var f=h();return!r(d,f)}catch{return!0}}function c(d,h){return h()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:i;return Fr.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:u,Fr}var $o;function Af(){return $o||($o=1,Gr.exports=Rf()),Gr.exports}var jf=Af(),Tt='[cmdk-group=""]',$r='[cmdk-group-items=""]',If='[cmdk-group-heading=""]',Nn='[cmdk-item=""]',Mo=`${Nn}:not([aria-disabled="true"])`,hn="cmdk-item-select",dt="data-value",Nf=(e,t,r)=>Tf(e,t,r),Ss=p.createContext(void 0),jt=()=>p.useContext(Ss),Es=p.createContext(void 0),Ln=()=>p.useContext(Es),_s=p.createContext(void 0),Cs=p.forwardRef((e,t)=>{let r=yt(()=>{var v,z;return{search:"",value:(z=(v=e.value)!=null?v:e.defaultValue)!=null?z:"",filtered:{count:0,items:new Map,groups:new Set}}}),n=yt(()=>new Set),a=yt(()=>new Map),o=yt(()=>new Map),l=yt(()=>new Set),i=ks(e),{label:s,children:c,value:u,onValueChange:d,filter:h,shouldFilter:f,loop:b,disablePointerSelection:y=!1,vimBindings:T=!0,...L}=e,_=ft(),A=ft(),R=ft(),I=p.useRef(null),D=Bf();gt(()=>{if(u!==void 0){let v=u.trim();r.current.value=v,m.emit()}},[u]),gt(()=>{D(6,w)},[]);let m=p.useMemo(()=>({subscribe:v=>(l.current.add(v),()=>l.current.delete(v)),snapshot:()=>r.current,setState:(v,z,B)=>{var M,J,X;if(!Object.is(r.current[v],z)){if(r.current[v]=z,v==="search")j(),k(),D(1,N);else if(v==="value"&&(B||D(5,w),((M=i.current)==null?void 0:M.value)!==void 0)){let Y=z??"";(X=(J=i.current).onValueChange)==null||X.call(J,Y);return}m.emit()}},emit:()=>{l.current.forEach(v=>v())}}),[]),E=p.useMemo(()=>({value:(v,z,B)=>{var M;z!==((M=o.current.get(v))==null?void 0:M.value)&&(o.current.set(v,{value:z,keywords:B}),r.current.filtered.items.set(v,x(z,B)),D(2,()=>{k(),m.emit()}))},item:(v,z)=>(n.current.add(v),z&&(a.current.has(z)?a.current.get(z).add(v):a.current.set(z,new Set([v]))),D(3,()=>{j(),k(),r.current.value||N(),m.emit()}),()=>{o.current.delete(v),n.current.delete(v),r.current.filtered.items.delete(v);let B=V();D(4,()=>{j(),(B==null?void 0:B.getAttribute("id"))===v&&N(),m.emit()})}),group:v=>(a.current.has(v)||a.current.set(v,new Set),()=>{o.current.delete(v),a.current.delete(v)}),filter:()=>i.current.shouldFilter,label:s||e["aria-label"],getDisablePointerSelection:()=>i.current.disablePointerSelection,listId:_,inputId:R,labelId:A,listInnerRef:I}),[]);function x(v,z){var B,M;let J=(M=(B=i.current)==null?void 0:B.filter)!=null?M:Nf;return v?J(v,r.current.search,z):0}function k(){if(!r.current.search||i.current.shouldFilter===!1)return;let v=r.current.filtered.items,z=[];r.current.filtered.groups.forEach(M=>{let J=a.current.get(M),X=0;J.forEach(Y=>{let ie=v.get(Y);X=Math.max(ie,X)}),z.push([M,X])});let B=I.current;K().sort((M,J)=>{var X,Y;let ie=M.getAttribute("id"),ne=J.getAttribute("id");return((X=v.get(ne))!=null?X:0)-((Y=v.get(ie))!=null?Y:0)}).forEach(M=>{let J=M.closest($r);J?J.appendChild(M.parentElement===J?M:M.closest(`${$r} > *`)):B.appendChild(M.parentElement===B?M:M.closest(`${$r} > *`))}),z.sort((M,J)=>J[1]-M[1]).forEach(M=>{var J;let X=(J=I.current)==null?void 0:J.querySelector(`${Tt}[${dt}="${encodeURIComponent(M[0])}"]`);X==null||X.parentElement.appendChild(X)})}function N(){let v=K().find(B=>B.getAttribute("aria-disabled")!=="true"),z=v==null?void 0:v.getAttribute(dt);m.setState("value",z||void 0)}function j(){var v,z,B,M;if(!r.current.search||i.current.shouldFilter===!1){r.current.filtered.count=n.current.size;return}r.current.filtered.groups=new Set;let J=0;for(let X of n.current){let Y=(z=(v=o.current.get(X))==null?void 0:v.value)!=null?z:"",ie=(M=(B=o.current.get(X))==null?void 0:B.keywords)!=null?M:[],ne=x(Y,ie);r.current.filtered.items.set(X,ne),ne>0&&J++}for(let[X,Y]of a.current)for(let ie of Y)if(r.current.filtered.items.get(ie)>0){r.current.filtered.groups.add(X);break}r.current.filtered.count=J}function w(){var v,z,B;let M=V();M&&(((v=M.parentElement)==null?void 0:v.firstChild)===M&&((B=(z=M.closest(Tt))==null?void 0:z.querySelector(If))==null||B.scrollIntoView({block:"nearest"})),M.scrollIntoView({block:"nearest"}))}function V(){var v;return(v=I.current)==null?void 0:v.querySelector(`${Nn}[aria-selected="true"]`)}function K(){var v;return Array.from(((v=I.current)==null?void 0:v.querySelectorAll(Mo))||[])}function O(v){let z=K()[v];z&&m.setState("value",z.getAttribute(dt))}function C(v){var z;let B=V(),M=K(),J=M.findIndex(Y=>Y===B),X=M[J+v];(z=i.current)!=null&&z.loop&&(X=J+v<0?M[M.length-1]:J+v===M.length?M[0]:M[J+v]),X&&m.setState("value",X.getAttribute(dt))}function S(v){let z=V(),B=z==null?void 0:z.closest(Tt),M;for(;B&&!M;)B=v>0?Mf(B,Tt):Hf(B,Tt),M=B==null?void 0:B.querySelector(Mo);M?m.setState("value",M.getAttribute(dt)):C(v)}let H=()=>O(K().length-1),ae=v=>{v.preventDefault(),v.metaKey?H():v.altKey?S(1):C(1)},$=v=>{v.preventDefault(),v.metaKey?O(0):v.altKey?S(-1):C(-1)};return p.createElement(Ee.div,{ref:t,tabIndex:-1,...L,"cmdk-root":"",onKeyDown:v=>{var z;if((z=L.onKeyDown)==null||z.call(L,v),!v.defaultPrevented)switch(v.key){case"n":case"j":{T&&v.ctrlKey&&ae(v);break}case"ArrowDown":{ae(v);break}case"p":case"k":{T&&v.ctrlKey&&$(v);break}case"ArrowUp":{$(v);break}case"Home":{v.preventDefault(),O(0);break}case"End":{v.preventDefault(),H();break}case"Enter":if(!v.nativeEvent.isComposing&&v.keyCode!==229){v.preventDefault();let B=V();if(B){let M=new Event(hn);B.dispatchEvent(M)}}}}},p.createElement("label",{"cmdk-label":"",htmlFor:E.inputId,id:E.labelId,style:Uf},s),lr(e,v=>p.createElement(Es.Provider,{value:m},p.createElement(Ss.Provider,{value:E},v))))}),Lf=p.forwardRef((e,t)=>{var r,n;let a=ft(),o=p.useRef(null),l=p.useContext(_s),i=jt(),s=ks(e),c=(n=(r=s.current)==null?void 0:r.forceMount)!=null?n:l==null?void 0:l.forceMount;gt(()=>{if(!c)return i.item(a,l==null?void 0:l.id)},[c]);let u=Ts(a,o,[e.value,e.children,o],e.keywords),d=Ln(),h=pt(D=>D.value&&D.value===u.current),f=pt(D=>c||i.filter()===!1?!0:D.search?D.filtered.items.get(a)>0:!0);p.useEffect(()=>{let D=o.current;if(!(!D||e.disabled))return D.addEventListener(hn,b),()=>D.removeEventListener(hn,b)},[f,e.onSelect,e.disabled]);function b(){var D,m;y(),(m=(D=s.current).onSelect)==null||m.call(D,u.current)}function y(){d.setState("value",u.current,!0)}if(!f)return null;let{disabled:T,value:L,onSelect:_,forceMount:A,keywords:R,...I}=e;return p.createElement(Ee.div,{ref:Rt([o,t]),...I,id:a,"cmdk-item":"",role:"option","aria-disabled":!!T,"aria-selected":!!h,"data-disabled":!!T,"data-selected":!!h,onPointerMove:T||i.getDisablePointerSelection()?void 0:y,onClick:T?void 0:b},e.children)}),Pf=p.forwardRef((e,t)=>{let{heading:r,children:n,forceMount:a,...o}=e,l=ft(),i=p.useRef(null),s=p.useRef(null),c=ft(),u=jt(),d=pt(f=>a||u.filter()===!1?!0:f.search?f.filtered.groups.has(l):!0);gt(()=>u.group(l),[]),Ts(l,i,[e.value,e.heading,s]);let h=p.useMemo(()=>({id:l,forceMount:a}),[a]);return p.createElement(Ee.div,{ref:Rt([i,t]),...o,"cmdk-group":"",role:"presentation",hidden:d?void 0:!0},r&&p.createElement("div",{ref:s,"cmdk-group-heading":"","aria-hidden":!0,id:c},r),lr(e,f=>p.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?c:void 0},p.createElement(_s.Provider,{value:h},f))))}),zf=p.forwardRef((e,t)=>{let{alwaysRender:r,...n}=e,a=p.useRef(null),o=pt(l=>!l.search);return!r&&!o?null:p.createElement(Ee.div,{ref:Rt([a,t]),...n,"cmdk-separator":"",role:"separator"})}),Df=p.forwardRef((e,t)=>{let{onValueChange:r,...n}=e,a=e.value!=null,o=Ln(),l=pt(u=>u.search),i=pt(u=>u.value),s=jt(),c=p.useMemo(()=>{var u;let d=(u=s.listInnerRef.current)==null?void 0:u.querySelector(`${Nn}[${dt}="${encodeURIComponent(i)}"]`);return d==null?void 0:d.getAttribute("id")},[]);return p.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),p.createElement(Ee.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":s.listId,"aria-labelledby":s.labelId,"aria-activedescendant":c,id:s.inputId,type:"text",value:a?e.value:l,onChange:u=>{a||o.setState("search",u.target.value),r==null||r(u.target.value)}})}),Of=p.forwardRef((e,t)=>{let{children:r,label:n="Suggestions",...a}=e,o=p.useRef(null),l=p.useRef(null),i=jt();return p.useEffect(()=>{if(l.current&&o.current){let s=l.current,c=o.current,u,d=new ResizeObserver(()=>{u=requestAnimationFrame(()=>{let h=s.offsetHeight;c.style.setProperty("--cmdk-list-height",h.toFixed(1)+"px")})});return d.observe(s),()=>{cancelAnimationFrame(u),d.unobserve(s)}}},[]),p.createElement(Ee.div,{ref:Rt([o,t]),...a,"cmdk-list":"",role:"listbox","aria-label":n,id:i.listId},lr(e,s=>p.createElement("div",{ref:Rt([l,i.listInnerRef]),"cmdk-list-sizer":""},s)))}),Gf=p.forwardRef((e,t)=>{let{open:r,onOpenChange:n,overlayClassName:a,contentClassName:o,container:l,...i}=e;return p.createElement(wa,{open:r,onOpenChange:n},p.createElement(va,{container:l},p.createElement(xn,{"cmdk-overlay":"",className:a}),p.createElement(Sn,{"aria-label":e.label,"cmdk-dialog":"",className:o},p.createElement(Cs,{ref:t,...i}))))}),Ff=p.forwardRef((e,t)=>pt(r=>r.filtered.count===0)?p.createElement(Ee.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),$f=p.forwardRef((e,t)=>{let{progress:r,children:n,label:a="Loading...",...o}=e;return p.createElement(Ee.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},lr(e,l=>p.createElement("div",{"aria-hidden":!0},l)))}),je=Object.assign(Cs,{List:Of,Item:Lf,Input:Df,Group:Pf,Separator:zf,Dialog:Gf,Empty:Ff,Loading:$f});function Mf(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}function Hf(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}function ks(e){let t=p.useRef(e);return gt(()=>{t.current=e}),t}var gt=typeof window>"u"?p.useEffect:p.useLayoutEffect;function yt(e){let t=p.useRef();return t.current===void 0&&(t.current=e()),t}function Rt(e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}function pt(e){let t=Ln(),r=()=>e(t.snapshot());return jf.useSyncExternalStore(t.subscribe,r,r)}function Ts(e,t,r,n=[]){let a=p.useRef(),o=jt();return gt(()=>{var l;let i=(()=>{var c;for(let u of r){if(typeof u=="string")return u.trim();if(typeof u=="object"&&"current"in u)return u.current?(c=u.current.textContent)==null?void 0:c.trim():a.current}})(),s=n.map(c=>c.trim());o.value(e,i,s),(l=t.current)==null||l.setAttribute(dt,i),a.current=i}),a}var Bf=()=>{let[e,t]=p.useState(),r=yt(()=>new Map);return gt(()=>{r.current.forEach(n=>n()),r.current=new Map},[e]),(n,a)=>{r.current.set(n,a),t({})}};function Vf(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function lr({asChild:e,children:t},r){return e&&p.isValidElement(t)?p.cloneElement(Vf(t),{ref:t.ref},r(t.props.children)):r(t)}var Uf={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const cr=p.forwardRef(({className:e,...t},r)=>g.jsx(je,{ref:r,className:fe("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...t}));cr.displayName=je.displayName;const Pn=p.forwardRef(({className:e,...t},r)=>g.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[g.jsx(yu,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),g.jsx(je.Input,{ref:r,className:fe("placeholder:text-muted-foreground flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));Pn.displayName=je.Input.displayName;const ur=p.forwardRef(({className:e,...t},r)=>g.jsx(je.List,{ref:r,className:fe("max-h-[300px] overflow-x-hidden overflow-y-auto",e),...t}));ur.displayName=je.List.displayName;const zn=p.forwardRef((e,t)=>g.jsx(je.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));zn.displayName=je.Empty.displayName;const _t=p.forwardRef(({className:e,...t},r)=>g.jsx(je.Group,{ref:r,className:fe("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...t}));_t.displayName=je.Group.displayName;const qf=p.forwardRef(({className:e,...t},r)=>g.jsx(je.Separator,{ref:r,className:fe("bg-border -mx-1 h-px",e),...t}));qf.displayName=je.Separator.displayName;const Ct=p.forwardRef(({className:e,...t},r)=>g.jsx(je.Item,{ref:r,className:fe("data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));Ct.displayName=je.Item.displayName;const Wf=({layout:e,autoRunFor:t,mainLayout:r})=>{const n=Be(),[a,o]=p.useState(!1),l=p.useRef(null),{t:i}=xe(),s=p.useCallback(()=>{if(n)try{const u=n.getGraph();if(!u||u.order===0)return;const d=r.positions();ha(u,d,{duration:300})}catch(u){console.error("Error updating positions:",u),l.current&&(window.clearInterval(l.current),l.current=null,o(!1))}},[n,r]),c=p.useCallback(()=>{if(a){console.log("Stopping layout animation"),l.current&&(window.clearInterval(l.current),l.current=null);try{typeof e.kill=="function"?(e.kill(),console.log("Layout algorithm killed")):typeof e.stop=="function"&&(e.stop(),console.log("Layout algorithm stopped"))}catch(u){console.error("Error stopping layout algorithm:",u)}o(!1)}else console.log("Starting layout animation"),s(),l.current=window.setInterval(()=>{s()},200),o(!0),setTimeout(()=>{if(l.current){console.log("Auto-stopping layout animation after 3 seconds"),window.clearInterval(l.current),l.current=null,o(!1);try{typeof e.kill=="function"?e.kill():typeof e.stop=="function"&&e.stop()}catch(u){console.error("Error stopping layout algorithm:",u)}}},3e3)},[a,e,s]);return p.useEffect(()=>{if(!n){console.log("No sigma instance available");return}let u=null;return t!==void 0&&t>-1&&n.getGraph().order>0&&(console.log("Auto-starting layout animation"),s(),l.current=window.setInterval(()=>{s()},200),o(!0),t>0&&(u=window.setTimeout(()=>{console.log("Auto-stopping layout animation after timeout"),l.current&&(window.clearInterval(l.current),l.current=null),o(!1)},t))),()=>{l.current&&(window.clearInterval(l.current),l.current=null),u&&window.clearTimeout(u),o(!1)}},[t,n,s]),g.jsx(be,{size:"icon",onClick:c,tooltip:i(a?"graphPanel.sideBar.layoutsControl.stopAnimation":"graphPanel.sideBar.layoutsControl.startAnimation"),variant:Ne,children:a?g.jsx(ou,{}):g.jsx(lu,{})})},Xf=()=>{const e=Be(),{t}=xe(),[r,n]=p.useState("Circular"),[a,o]=p.useState(!1),l=re.use.graphLayoutMaxIterations(),i=$d(),s=Dd(),c=yf(),u=hf({maxIterations:l,settings:{margin:5,expansion:1.1,gridSize:1,ratio:1,speed:3}}),d=Wd({maxIterations:l,settings:{attraction:3e-4,repulsion:.02,gravity:.02,inertia:.4,maxMove:100}}),h=ys({iterations:l}),f=gf(),b=Xd(),y=nf(),T=p.useMemo(()=>({Circular:{layout:i},Circlepack:{layout:s},Random:{layout:c},Noverlaps:{layout:u,worker:f},"Force Directed":{layout:d,worker:b},"Force Atlas":{layout:h,worker:y}}),[s,i,d,h,u,c,b,f,y]),L=p.useCallback(_=>{console.debug("Running layout:",_);const{positions:A}=T[_].layout;try{const R=e.getGraph();if(!R){console.error("No graph available");return}const I=A();console.log("Positions calculated, animating nodes"),ha(R,I,{duration:400}),n(_)}catch(R){console.error("Error running layout:",R)}},[T,e]);return g.jsxs("div",{children:[g.jsx("div",{children:T[r]&&"worker"in T[r]&&g.jsx(Wf,{layout:T[r].worker,mainLayout:T[r].layout})}),g.jsx("div",{children:g.jsxs(Tn,{open:a,onOpenChange:o,children:[g.jsx(Rn,{asChild:!0,children:g.jsx(be,{size:"icon",variant:Ne,onClick:()=>o(_=>!_),tooltip:t("graphPanel.sideBar.layoutsControl.layoutGraph"),children:g.jsx(Xc,{})})}),g.jsx(ir,{side:"right",align:"start",sideOffset:8,collisionPadding:5,sticky:"always",className:"p-1 min-w-auto",children:g.jsx(cr,{children:g.jsx(ur,{children:g.jsx(_t,{children:Object.keys(T).map(_=>g.jsx(Ct,{onSelect:()=>{L(_)},className:"cursor-pointer text-xs",children:t(`graphPanel.sideBar.layoutsControl.layouts.${_}`)},_))})})})})]})})]})},Yf=()=>{const e=p.useContext(Ra);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},zt=e=>!!(e.type.startsWith("mouse")&&e.buttons!==0),Kf=({disableHoverEffect:e})=>{const t=Be(),r=ga(),n=bi(),a=re.use.graphLayoutMaxIterations(),{assign:o}=ys({iterations:a}),{theme:l}=Yf(),i=re.use.enableHideUnselectedEdges(),s=re.use.enableEdgeEvents(),c=re.use.showEdgeLabel(),u=re.use.showNodeLabel(),d=re.use.minEdgeSize(),h=re.use.maxEdgeSize(),f=ee.use.selectedNode(),b=ee.use.focusedNode(),y=ee.use.selectedEdge(),T=ee.use.focusedEdge(),L=ee.use.sigmaGraph();return p.useEffect(()=>{if(L&&t){try{typeof t.setGraph=="function"?(t.setGraph(L),console.log("Binding graph to sigma instance")):(t.graph=L,console.warn("Simgma missing setGraph function, set graph property directly"))}catch(_){console.error("Error setting graph on sigma instance:",_)}o(),console.log("Initial layout applied to graph")}},[t,L,o,a]),p.useEffect(()=>{t&&(ee.getState().sigmaInstance||(console.log("Setting sigma instance from GraphControl"),ee.getState().setSigmaInstance(t)))},[t]),p.useEffect(()=>{const{setFocusedNode:_,setSelectedNode:A,setFocusedEdge:R,setSelectedEdge:I,clearSelection:D}=ee.getState(),m={enterNode:E=>{zt(E.event.original)||t.getGraph().hasNode(E.node)&&_(E.node)},leaveNode:E=>{zt(E.event.original)||_(null)},clickNode:E=>{t.getGraph().hasNode(E.node)&&(A(E.node),I(null))},clickStage:()=>D()};s&&(m.clickEdge=E=>{I(E.edge),A(null)},m.enterEdge=E=>{zt(E.event.original)||R(E.edge)},m.leaveEdge=E=>{zt(E.event.original)||R(null)}),r(m)},[r,s]),p.useEffect(()=>{if(t&&L){const _=t.getGraph();let A=Number.MAX_SAFE_INTEGER,R=0;_.forEachEdge(D=>{const m=_.getEdgeAttribute(D,"originalWeight")||1;typeof m=="number"&&(A=Math.min(A,m),R=Math.max(R,m))});const I=R-A;if(I>0){const D=h-d;_.forEachEdge(m=>{const E=_.getEdgeAttribute(m,"originalWeight")||1;if(typeof E=="number"){const x=d+D*Math.pow((E-A)/I,.5);_.setEdgeAttribute(m,"size",x)}})}else _.forEachEdge(D=>{_.setEdgeAttribute(D,"size",d)});t.refresh()}},[t,L,d,h]),p.useEffect(()=>{const _=l==="dark",A=_?Vi:void 0,R=_?Xi:void 0;n({enableEdgeEvents:s,renderEdgeLabels:c,renderLabels:u,nodeReducer:(I,D)=>{const m=t.getGraph(),E={...D,highlighted:D.highlighted||!1,labelColor:A};if(!e){E.highlighted=!1;const x=b||f,k=T||y;if(x&&m.hasNode(x))try{(I===x||m.neighbors(x).includes(I))&&(E.highlighted=!0,I===f&&(E.borderColor=Wi))}catch(N){console.error("Error in nodeReducer:",N)}else if(k&&m.hasEdge(k))m.extremities(k).includes(I)&&(E.highlighted=!0,E.size=3);else return E;E.highlighted?_&&(E.labelColor=Ui):E.color=qi}return E},edgeReducer:(I,D)=>{const m=t.getGraph(),E={...D,hidden:!1,labelColor:A,color:R};if(!e){const x=b||f;if(x&&m.hasNode(x))try{i?m.extremities(I).includes(x)||(E.hidden=!0):m.extremities(I).includes(x)&&(E.color=Wn)}catch(k){console.error("Error in edgeReducer:",k)}else{const k=y&&m.hasEdge(y)?y:null,N=T&&m.hasEdge(T)?T:null;(k||N)&&(I===k?E.color=Yi:I===N?E.color=Wn:i&&(E.hidden=!0))}}return E}})},[f,b,y,T,n,t,e,l,i,s,c,u]),null},Qf=()=>{const{zoomIn:e,zoomOut:t,reset:r}=da({duration:200,factor:1.5}),n=Be(),{t:a}=xe(),o=p.useCallback(()=>e(),[e]),l=p.useCallback(()=>t(),[t]),i=p.useCallback(()=>{if(n)try{n.setCustomBBox(null),n.refresh();const u=n.getGraph();if(!(u!=null&&u.order)||u.nodes().length===0){r();return}n.getCamera().animate({x:.5,y:.5,ratio:1.1},{duration:1e3})}catch(u){console.error("Error resetting zoom:",u),r()}},[n,r]),s=p.useCallback(()=>{if(!n)return;const u=n.getCamera(),h=u.angle+Math.PI/8;u.animate({angle:h},{duration:200})},[n]),c=p.useCallback(()=>{if(!n)return;const u=n.getCamera(),h=u.angle-Math.PI/8;u.animate({angle:h},{duration:200})},[n]);return g.jsxs(g.Fragment,{children:[g.jsx(be,{variant:Ne,onClick:s,tooltip:a("graphPanel.sideBar.zoomControl.rotateCamera"),size:"icon",children:g.jsx(gu,{})}),g.jsx(be,{variant:Ne,onClick:c,tooltip:a("graphPanel.sideBar.zoomControl.rotateCameraCounterClockwise"),size:"icon",children:g.jsx(fu,{})}),g.jsx(be,{variant:Ne,onClick:i,tooltip:a("graphPanel.sideBar.zoomControl.resetZoom"),size:"icon",children:g.jsx(Bc,{})}),g.jsx(be,{variant:Ne,onClick:o,tooltip:a("graphPanel.sideBar.zoomControl.zoomIn"),size:"icon",children:g.jsx(Au,{})}),g.jsx(be,{variant:Ne,onClick:l,tooltip:a("graphPanel.sideBar.zoomControl.zoomOut"),size:"icon",children:g.jsx(Iu,{})})]})},Jf=()=>{const{isFullScreen:e,toggle:t}=wi(),{t:r}=xe();return g.jsx(g.Fragment,{children:e?g.jsx(be,{variant:Ne,onClick:t,tooltip:r("graphPanel.sideBar.fullScreenControl.windowed"),size:"icon",children:g.jsx(tu,{})}):g.jsx(be,{variant:Ne,onClick:t,tooltip:r("graphPanel.sideBar.fullScreenControl.fullScreen"),size:"icon",children:g.jsx(Zc,{})})})};var Dn="Checkbox",[Zf,jp]=wn(Dn),[eh,th]=Zf(Dn),Rs=p.forwardRef((e,t)=>{const{__scopeCheckbox:r,name:n,checked:a,defaultChecked:o,required:l,disabled:i,value:s="on",onCheckedChange:c,form:u,...d}=e,[h,f]=p.useState(null),b=Xe(t,R=>f(R)),y=p.useRef(!1),T=h?u||!!h.closest("form"):!0,[L=!1,_]=ma({prop:a,defaultProp:o,onChange:c}),A=p.useRef(L);return p.useEffect(()=>{const R=h==null?void 0:h.form;if(R){const I=()=>_(A.current);return R.addEventListener("reset",I),()=>R.removeEventListener("reset",I)}},[h,_]),g.jsxs(eh,{scope:r,state:L,disabled:i,children:[g.jsx(Ee.button,{type:"button",role:"checkbox","aria-checked":ot(L)?"mixed":L,"aria-required":l,"data-state":Is(L),"data-disabled":i?"":void 0,disabled:i,value:s,...d,ref:b,onKeyDown:Ce(e.onKeyDown,R=>{R.key==="Enter"&&R.preventDefault()}),onClick:Ce(e.onClick,R=>{_(I=>ot(I)?!0:!I),T&&(y.current=R.isPropagationStopped(),y.current||R.stopPropagation())})}),T&&g.jsx(rh,{control:h,bubbles:!y.current,name:n,value:s,checked:L,required:l,disabled:i,form:u,style:{transform:"translateX(-100%)"},defaultChecked:ot(o)?!1:o})]})});Rs.displayName=Dn;var As="CheckboxIndicator",js=p.forwardRef((e,t)=>{const{__scopeCheckbox:r,forceMount:n,...a}=e,o=th(As,r);return g.jsx(St,{present:n||ot(o.state)||o.state===!0,children:g.jsx(Ee.span,{"data-state":Is(o.state),"data-disabled":o.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});js.displayName=As;var rh=e=>{const{control:t,checked:r,bubbles:n=!0,defaultChecked:a,...o}=e,l=p.useRef(null),i=Oi(r),s=Gi(t);p.useEffect(()=>{const u=l.current,d=window.HTMLInputElement.prototype,f=Object.getOwnPropertyDescriptor(d,"checked").set;if(i!==r&&f){const b=new Event("click",{bubbles:n});u.indeterminate=ot(r),f.call(u,ot(r)?!1:r),u.dispatchEvent(b)}},[i,r,n]);const c=p.useRef(ot(r)?!1:r);return g.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:a??c.current,...o,tabIndex:-1,ref:l,style:{...e.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function ot(e){return e==="indeterminate"}function Is(e){return ot(e)?"indeterminate":e?"checked":"unchecked"}var Ns=Rs,nh=js;const Ls=p.forwardRef(({className:e,...t},r)=>g.jsx(Ns,{ref:r,className:fe("peer border-primary ring-offset-background focus-visible:ring-ring data-[state=checked]:bg-muted data-[state=checked]:text-muted-foreground h-4 w-4 shrink-0 rounded-sm border focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:g.jsx(nh,{className:fe("flex items-center justify-center text-current"),children:g.jsx(Va,{className:"h-4 w-4"})})}));Ls.displayName=Ns.displayName;var oh="Separator",Ho="horizontal",ah=["horizontal","vertical"],Ps=p.forwardRef((e,t)=>{const{decorative:r,orientation:n=Ho,...a}=e,o=sh(n)?n:Ho,i=r?{role:"none"}:{"aria-orientation":o==="vertical"?o:void 0,role:"separator"};return g.jsx(Ee.div,{"data-orientation":o,...i,...a,ref:t})});Ps.displayName=oh;function sh(e){return ah.includes(e)}var zs=Ps;const bt=p.forwardRef(({className:e,orientation:t="horizontal",decorative:r=!0,...n},a)=>g.jsx(zs,{ref:a,decorative:r,orientation:t,className:fe("bg-border shrink-0",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));bt.displayName=zs.displayName;const tt=({checked:e,onCheckedChange:t,label:r})=>{const n=`checkbox-${r.toLowerCase().replace(/\s+/g,"-")}`;return g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx(Ls,{id:n,checked:e,onCheckedChange:t}),g.jsx("label",{htmlFor:n,className:"text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:r})]})},Mr=({value:e,onEditFinished:t,label:r,min:n,max:a,defaultValue:o})=>{const{t:l}=xe(),[i,s]=p.useState(e),c=`input-${r.toLowerCase().replace(/\s+/g,"-")}`,u=p.useCallback(f=>{const b=f.target.value.trim();if(b.length===0){s(null);return}const y=Number.parseInt(b);if(!isNaN(y)&&y!==i){if(n!==void 0&&ya)return;s(y)}},[i,n,a]),d=p.useCallback(()=>{i!==null&&e!==i&&t(i)},[e,i,t]),h=p.useCallback(()=>{o!==void 0&&e!==o&&(s(o),t(o))},[o,e,t]);return g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsx("label",{htmlFor:c,className:"text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:r}),g.jsxs("div",{className:"flex items-center gap-1",children:[g.jsx(Wt,{id:c,type:"number",value:i===null?"":i,onChange:u,className:"h-6 w-full min-w-0 pr-1",min:n,max:a,onBlur:d,onKeyDown:f=>{f.key==="Enter"&&d()}}),o!==void 0&&g.jsx(be,{variant:"ghost",size:"icon",className:"h-6 w-6 flex-shrink-0 hover:bg-muted text-muted-foreground hover:text-foreground",onClick:h,type:"button",title:l("graphPanel.sideBar.settings.resetToDefault"),children:g.jsx(qa,{className:"h-3.5 w-3.5"})})]})]})};function ih(){const[e,t]=p.useState(!1),r=re.use.showPropertyPanel(),n=re.use.showNodeSearchBar(),a=re.use.showNodeLabel(),o=re.use.enableEdgeEvents(),l=re.use.enableNodeDrag(),i=re.use.enableHideUnselectedEdges(),s=re.use.showEdgeLabel(),c=re.use.minEdgeSize(),u=re.use.maxEdgeSize(),d=re.use.graphQueryMaxDepth(),h=re.use.graphMaxNodes(),f=re.use.graphLayoutMaxIterations(),b=re.use.enableHealthCheck(),y=p.useCallback(()=>re.setState(j=>({enableNodeDrag:!j.enableNodeDrag})),[]),T=p.useCallback(()=>re.setState(j=>({enableEdgeEvents:!j.enableEdgeEvents})),[]),L=p.useCallback(()=>re.setState(j=>({enableHideUnselectedEdges:!j.enableHideUnselectedEdges})),[]),_=p.useCallback(()=>re.setState(j=>({showEdgeLabel:!j.showEdgeLabel})),[]),A=p.useCallback(()=>re.setState(j=>({showPropertyPanel:!j.showPropertyPanel})),[]),R=p.useCallback(()=>re.setState(j=>({showNodeSearchBar:!j.showNodeSearchBar})),[]),I=p.useCallback(()=>re.setState(j=>({showNodeLabel:!j.showNodeLabel})),[]),D=p.useCallback(()=>re.setState(j=>({enableHealthCheck:!j.enableHealthCheck})),[]),m=p.useCallback(j=>{if(j<1)return;re.setState({graphQueryMaxDepth:j});const w=re.getState().queryLabel;re.getState().setQueryLabel(""),setTimeout(()=>{re.getState().setQueryLabel(w)},300)},[]),E=p.useCallback(j=>{if(j<1||j>1e3)return;re.setState({graphMaxNodes:j});const w=re.getState().queryLabel;re.getState().setQueryLabel(""),setTimeout(()=>{re.getState().setQueryLabel(w)},300)},[]),x=p.useCallback(j=>{j<1||re.setState({graphLayoutMaxIterations:j})},[]),{t:k}=xe(),N=()=>t(!1);return g.jsx(g.Fragment,{children:g.jsxs(Tn,{open:e,onOpenChange:t,children:[g.jsx(Rn,{asChild:!0,children:g.jsx(be,{variant:Ne,tooltip:k("graphPanel.sideBar.settings.settings"),size:"icon",children:g.jsx(xu,{})})}),g.jsx(ir,{side:"right",align:"end",sideOffset:8,collisionPadding:5,className:"p-2 max-w-[200px]",onCloseAutoFocus:j=>j.preventDefault(),children:g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsx(tt,{checked:b,onCheckedChange:D,label:k("graphPanel.sideBar.settings.healthCheck")}),g.jsx(bt,{}),g.jsx(tt,{checked:r,onCheckedChange:A,label:k("graphPanel.sideBar.settings.showPropertyPanel")}),g.jsx(tt,{checked:n,onCheckedChange:R,label:k("graphPanel.sideBar.settings.showSearchBar")}),g.jsx(bt,{}),g.jsx(tt,{checked:a,onCheckedChange:I,label:k("graphPanel.sideBar.settings.showNodeLabel")}),g.jsx(tt,{checked:l,onCheckedChange:y,label:k("graphPanel.sideBar.settings.nodeDraggable")}),g.jsx(bt,{}),g.jsx(tt,{checked:s,onCheckedChange:_,label:k("graphPanel.sideBar.settings.showEdgeLabel")}),g.jsx(tt,{checked:i,onCheckedChange:L,label:k("graphPanel.sideBar.settings.hideUnselectedEdges")}),g.jsx(tt,{checked:o,onCheckedChange:T,label:k("graphPanel.sideBar.settings.edgeEvents")}),g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsx("label",{htmlFor:"edge-size-min",className:"text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:k("graphPanel.sideBar.settings.edgeSizeRange")}),g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx(Wt,{id:"edge-size-min",type:"number",value:c,onChange:j=>{const w=Number(j.target.value);!isNaN(w)&&w>=1&&w<=u&&re.setState({minEdgeSize:w})},className:"h-6 w-16 min-w-0 pr-1",min:1,max:Math.min(u,10)}),g.jsx("span",{children:"-"}),g.jsxs("div",{className:"flex items-center gap-1",children:[g.jsx(Wt,{id:"edge-size-max",type:"number",value:u,onChange:j=>{const w=Number(j.target.value);!isNaN(w)&&w>=c&&w>=1&&w<=10&&re.setState({maxEdgeSize:w})},className:"h-6 w-16 min-w-0 pr-1",min:c,max:10}),g.jsx(be,{variant:"ghost",size:"icon",className:"h-6 w-6 flex-shrink-0 hover:bg-muted text-muted-foreground hover:text-foreground",onClick:()=>re.setState({minEdgeSize:1,maxEdgeSize:5}),type:"button",title:k("graphPanel.sideBar.settings.resetToDefault"),children:g.jsx(qa,{className:"h-3.5 w-3.5"})})]})]})]}),g.jsx(bt,{}),g.jsx(Mr,{label:k("graphPanel.sideBar.settings.maxQueryDepth"),min:1,value:d,defaultValue:3,onEditFinished:m}),g.jsx(Mr,{label:k("graphPanel.sideBar.settings.maxNodes"),min:1,max:1e3,value:h,defaultValue:1e3,onEditFinished:E}),g.jsx(Mr,{label:k("graphPanel.sideBar.settings.maxLayoutIterations"),min:1,max:30,value:f,defaultValue:15,onEditFinished:x}),g.jsx(bt,{}),g.jsx(be,{onClick:N,variant:"outline",size:"sm",className:"ml-auto px-4",children:k("graphPanel.sideBar.settings.save")})]})})]})})}const lh="ENTRIES",Ds="KEYS",Os="VALUES",Se="";class Hr{constructor(t,r){const n=t._tree,a=Array.from(n.keys());this.set=t,this._type=r,this._path=a.length>0?[{node:n,keys:a}]:[]}next(){const t=this.dive();return this.backtrack(),t}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:t,keys:r}=mt(this._path);if(mt(r)===Se)return{done:!1,value:this.result()};const n=t.get(mt(r));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const t=mt(this._path).keys;t.pop(),!(t.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:t})=>mt(t)).filter(t=>t!==Se).join("")}value(){return mt(this._path).node.get(Se)}result(){switch(this._type){case Os:return this.value();case Ds:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const mt=e=>e[e.length-1],ch=(e,t,r)=>{const n=new Map;if(t===void 0)return n;const a=t.length+1,o=a+r,l=new Uint8Array(o*a).fill(r+1);for(let i=0;i{const s=o*l;e:for(const c of e.keys())if(c===Se){const u=a[s-1];u<=r&&n.set(i,[e.get(c),u])}else{let u=o;for(let d=0;dr)continue e}Gs(e.get(c),t,r,n,a,u,l,i+c)}};class nt{constructor(t=new Map,r=""){this._size=void 0,this._tree=t,this._prefix=r}atPrefix(t){if(!t.startsWith(this._prefix))throw new Error("Mismatched prefix");const[r,n]=Qt(this._tree,t.slice(this._prefix.length));if(r===void 0){const[a,o]=On(n);for(const l of a.keys())if(l!==Se&&l.startsWith(o)){const i=new Map;return i.set(l.slice(o.length),a.get(l)),new nt(i,t)}}return new nt(r,t)}clear(){this._size=void 0,this._tree.clear()}delete(t){return this._size=void 0,uh(this._tree,t)}entries(){return new Hr(this,lh)}forEach(t){for(const[r,n]of this)t(r,n,this)}fuzzyGet(t,r){return ch(this._tree,t,r)}get(t){const r=gn(this._tree,t);return r!==void 0?r.get(Se):void 0}has(t){const r=gn(this._tree,t);return r!==void 0&&r.has(Se)}keys(){return new Hr(this,Ds)}set(t,r){if(typeof t!="string")throw new Error("key must be a string");return this._size=void 0,Br(this._tree,t).set(Se,r),this}get size(){if(this._size)return this._size;this._size=0;const t=this.entries();for(;!t.next().done;)this._size+=1;return this._size}update(t,r){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=Br(this._tree,t);return n.set(Se,r(n.get(Se))),this}fetch(t,r){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=Br(this._tree,t);let a=n.get(Se);return a===void 0&&n.set(Se,a=r()),a}values(){return new Hr(this,Os)}[Symbol.iterator](){return this.entries()}static from(t){const r=new nt;for(const[n,a]of t)r.set(n,a);return r}static fromObject(t){return nt.from(Object.entries(t))}}const Qt=(e,t,r=[])=>{if(t.length===0||e==null)return[e,r];for(const n of e.keys())if(n!==Se&&t.startsWith(n))return r.push([e,n]),Qt(e.get(n),t.slice(n.length),r);return r.push([e,t]),Qt(void 0,"",r)},gn=(e,t)=>{if(t.length===0||e==null)return e;for(const r of e.keys())if(r!==Se&&t.startsWith(r))return gn(e.get(r),t.slice(r.length))},Br=(e,t)=>{const r=t.length;e:for(let n=0;e&&n{const[r,n]=Qt(e,t);if(r!==void 0){if(r.delete(Se),r.size===0)Fs(n);else if(r.size===1){const[a,o]=r.entries().next().value;$s(n,a,o)}}},Fs=e=>{if(e.length===0)return;const[t,r]=On(e);if(t.delete(r),t.size===0)Fs(e.slice(0,-1));else if(t.size===1){const[n,a]=t.entries().next().value;n!==Se&&$s(e.slice(0,-1),n,a)}},$s=(e,t,r)=>{if(e.length===0)return;const[n,a]=On(e);n.set(a+t,r),n.delete(a)},On=e=>e[e.length-1],Gn="or",Ms="and",dh="and_not";class at{constructor(t){if((t==null?void 0:t.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');const r=t.autoVacuum==null||t.autoVacuum===!0?qr:t.autoVacuum;this._options={...Ur,...t,autoVacuum:r,searchOptions:{...Bo,...t.searchOptions||{}},autoSuggestOptions:{...mh,...t.autoSuggestOptions||{}}},this._index=new nt,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=mn,this.addFields(this._options.fields)}add(t){const{extractField:r,tokenize:n,processTerm:a,fields:o,idField:l}=this._options,i=r(t,l);if(i==null)throw new Error(`MiniSearch: document does not have ID field "${l}"`);if(this._idToShortId.has(i))throw new Error(`MiniSearch: duplicate ID ${i}`);const s=this.addDocumentId(i);this.saveStoredFields(s,t);for(const c of o){const u=r(t,c);if(u==null)continue;const d=n(u.toString(),c),h=this._fieldIds[c],f=new Set(d).size;this.addFieldLength(s,h,this._documentCount-1,f);for(const b of d){const y=a(b,c);if(Array.isArray(y))for(const T of y)this.addTerm(h,s,T);else y&&this.addTerm(h,s,y)}}}addAll(t){for(const r of t)this.add(r)}addAllAsync(t,r={}){const{chunkSize:n=10}=r,a={chunk:[],promise:Promise.resolve()},{chunk:o,promise:l}=t.reduce(({chunk:i,promise:s},c,u)=>(i.push(c),(u+1)%n===0?{chunk:[],promise:s.then(()=>new Promise(d=>setTimeout(d,0))).then(()=>this.addAll(i))}:{chunk:i,promise:s}),a);return l.then(()=>this.addAll(o))}remove(t){const{tokenize:r,processTerm:n,extractField:a,fields:o,idField:l}=this._options,i=a(t,l);if(i==null)throw new Error(`MiniSearch: document does not have ID field "${l}"`);const s=this._idToShortId.get(i);if(s==null)throw new Error(`MiniSearch: cannot remove document with ID ${i}: it is not in the index`);for(const c of o){const u=a(t,c);if(u==null)continue;const d=r(u.toString(),c),h=this._fieldIds[c],f=new Set(d).size;this.removeFieldLength(s,h,this._documentCount,f);for(const b of d){const y=n(b,c);if(Array.isArray(y))for(const T of y)this.removeTerm(h,s,T);else y&&this.removeTerm(h,s,y)}}this._storedFields.delete(s),this._documentIds.delete(s),this._idToShortId.delete(i),this._fieldLength.delete(s),this._documentCount-=1}removeAll(t){if(t)for(const r of t)this.remove(r);else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new nt,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}}discard(t){const r=this._idToShortId.get(t);if(r==null)throw new Error(`MiniSearch: cannot discard document with ID ${t}: it is not in the index`);this._idToShortId.delete(t),this._documentIds.delete(r),this._storedFields.delete(r),(this._fieldLength.get(r)||[]).forEach((n,a)=>{this.removeFieldLength(r,a,this._documentCount,n)}),this._fieldLength.delete(r),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;const{minDirtFactor:t,minDirtCount:r,batchSize:n,batchWait:a}=this._options.autoVacuum;this.conditionalVacuum({batchSize:n,batchWait:a},{minDirtCount:r,minDirtFactor:t})}discardAll(t){const r=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(const n of t)this.discard(n)}finally{this._options.autoVacuum=r}this.maybeAutoVacuum()}replace(t){const{idField:r,extractField:n}=this._options,a=n(t,r);this.discard(a),this.add(t)}vacuum(t={}){return this.conditionalVacuum(t)}conditionalVacuum(t,r){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&r,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(()=>{const n=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=mn,this.performVacuuming(t,n)}),this._enqueuedVacuum)):this.vacuumConditionsMet(r)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(t),this._currentVacuum)}async performVacuuming(t,r){const n=this._dirtCount;if(this.vacuumConditionsMet(r)){const a=t.batchSize||pn.batchSize,o=t.batchWait||pn.batchWait;let l=1;for(const[i,s]of this._index){for(const[c,u]of s)for(const[d]of u)this._documentIds.has(d)||(u.size<=1?s.delete(c):u.delete(d));this._index.get(i).size===0&&this._index.delete(i),l%a===0&&await new Promise(c=>setTimeout(c,o)),l+=1}this._dirtCount-=n}await null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null}vacuumConditionsMet(t){if(t==null)return!0;let{minDirtCount:r,minDirtFactor:n}=t;return r=r||qr.minDirtCount,n=n||qr.minDirtFactor,this.dirtCount>=r&&this.dirtFactor>=n}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(t){return this._idToShortId.has(t)}getStoredFields(t){const r=this._idToShortId.get(t);if(r!=null)return this._storedFields.get(r)}search(t,r={}){const{searchOptions:n}=this._options,a={...n,...r},o=this.executeQuery(t,r),l=[];for(const[i,{score:s,terms:c,match:u}]of o){const d=c.length||1,h={id:this._documentIds.get(i),score:s*d,terms:Object.keys(u),queryTerms:c,match:u};Object.assign(h,this._storedFields.get(i)),(a.filter==null||a.filter(h))&&l.push(h)}return t===at.wildcard&&a.boostDocument==null||l.sort(Uo),l}autoSuggest(t,r={}){r={...this._options.autoSuggestOptions,...r};const n=new Map;for(const{score:o,terms:l}of this.search(t,r)){const i=l.join(" "),s=n.get(i);s!=null?(s.score+=o,s.count+=1):n.set(i,{score:o,terms:l,count:1})}const a=[];for(const[o,{score:l,terms:i,count:s}]of n)a.push({suggestion:o,terms:i,score:l/s});return a.sort(Uo),a}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(t,r){if(r==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(t),r)}static async loadJSONAsync(t,r){if(r==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJSAsync(JSON.parse(t),r)}static getDefault(t){if(Ur.hasOwnProperty(t))return Vr(Ur,t);throw new Error(`MiniSearch: unknown option "${t}"`)}static loadJS(t,r){const{index:n,documentIds:a,fieldLength:o,storedFields:l,serializationVersion:i}=t,s=this.instantiateMiniSearch(t,r);s._documentIds=Dt(a),s._fieldLength=Dt(o),s._storedFields=Dt(l);for(const[c,u]of s._documentIds)s._idToShortId.set(u,c);for(const[c,u]of n){const d=new Map;for(const h of Object.keys(u)){let f=u[h];i===1&&(f=f.ds),d.set(parseInt(h,10),Dt(f))}s._index.set(c,d)}return s}static async loadJSAsync(t,r){const{index:n,documentIds:a,fieldLength:o,storedFields:l,serializationVersion:i}=t,s=this.instantiateMiniSearch(t,r);s._documentIds=await Ot(a),s._fieldLength=await Ot(o),s._storedFields=await Ot(l);for(const[u,d]of s._documentIds)s._idToShortId.set(d,u);let c=0;for(const[u,d]of n){const h=new Map;for(const f of Object.keys(d)){let b=d[f];i===1&&(b=b.ds),h.set(parseInt(f,10),await Ot(b))}++c%1e3===0&&await Hs(0),s._index.set(u,h)}return s}static instantiateMiniSearch(t,r){const{documentCount:n,nextId:a,fieldIds:o,averageFieldLength:l,dirtCount:i,serializationVersion:s}=t;if(s!==1&&s!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");const c=new at(r);return c._documentCount=n,c._nextId=a,c._idToShortId=new Map,c._fieldIds=o,c._avgFieldLength=l,c._dirtCount=i||0,c._index=new nt,c}executeQuery(t,r={}){if(t===at.wildcard)return this.executeWildcardQuery(r);if(typeof t!="string"){const h={...r,...t,queries:void 0},f=t.queries.map(b=>this.executeQuery(b,h));return this.combineResults(f,h.combineWith)}const{tokenize:n,processTerm:a,searchOptions:o}=this._options,l={tokenize:n,processTerm:a,...o,...r},{tokenize:i,processTerm:s}=l,d=i(t).flatMap(h=>s(h)).filter(h=>!!h).map(ph(l)).map(h=>this.executeQuerySpec(h,l));return this.combineResults(d,l.combineWith)}executeQuerySpec(t,r){const n={...this._options.searchOptions,...r},a=(n.fields||this._options.fields).reduce((y,T)=>({...y,[T]:Vr(n.boost,T)||1}),{}),{boostDocument:o,weights:l,maxFuzzy:i,bm25:s}=n,{fuzzy:c,prefix:u}={...Bo.weights,...l},d=this._index.get(t.term),h=this.termResults(t.term,t.term,1,t.termBoost,d,a,o,s);let f,b;if(t.prefix&&(f=this._index.atPrefix(t.term)),t.fuzzy){const y=t.fuzzy===!0?.2:t.fuzzy,T=y<1?Math.min(i,Math.round(t.term.length*y)):y;T&&(b=this._index.fuzzyGet(t.term,T))}if(f)for(const[y,T]of f){const L=y.length-t.term.length;if(!L)continue;b==null||b.delete(y);const _=u*y.length/(y.length+.3*L);this.termResults(t.term,y,_,t.termBoost,T,a,o,s,h)}if(b)for(const y of b.keys()){const[T,L]=b.get(y);if(!L)continue;const _=c*y.length/(y.length+L);this.termResults(t.term,y,_,t.termBoost,T,a,o,s,h)}return h}executeWildcardQuery(t){const r=new Map,n={...this._options.searchOptions,...t};for(const[a,o]of this._documentIds){const l=n.boostDocument?n.boostDocument(o,"",this._storedFields.get(a)):1;r.set(a,{score:l,terms:[],match:{}})}return r}combineResults(t,r=Gn){if(t.length===0)return new Map;const n=r.toLowerCase(),a=fh[n];if(!a)throw new Error(`Invalid combination operator: ${r}`);return t.reduce(a)||new Map}toJSON(){const t=[];for(const[r,n]of this._index){const a={};for(const[o,l]of n)a[o]=Object.fromEntries(l);t.push([r,a])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:t,serializationVersion:2}}termResults(t,r,n,a,o,l,i,s,c=new Map){if(o==null)return c;for(const u of Object.keys(l)){const d=l[u],h=this._fieldIds[u],f=o.get(h);if(f==null)continue;let b=f.size;const y=this._avgFieldLength[h];for(const T of f.keys()){if(!this._documentIds.has(T)){this.removeTerm(h,T,r),b-=1;continue}const L=i?i(this._documentIds.get(T),r,this._storedFields.get(T)):1;if(!L)continue;const _=f.get(T),A=this._fieldLength.get(T)[h],R=gh(_,b,this._documentCount,A,y,s),I=n*a*d*L*R,D=c.get(T);if(D){D.score+=I,vh(D.terms,t);const m=Vr(D.match,r);m?m.push(u):D.match[r]=[u]}else c.set(T,{score:I,terms:[t],match:{[r]:[u]}})}}return c}addTerm(t,r,n){const a=this._index.fetch(n,qo);let o=a.get(t);if(o==null)o=new Map,o.set(r,1),a.set(t,o);else{const l=o.get(r);o.set(r,(l||0)+1)}}removeTerm(t,r,n){if(!this._index.has(n)){this.warnDocumentChanged(r,t,n);return}const a=this._index.fetch(n,qo),o=a.get(t);o==null||o.get(r)==null?this.warnDocumentChanged(r,t,n):o.get(r)<=1?o.size<=1?a.delete(t):o.delete(r):o.set(r,o.get(r)-1),this._index.get(n).size===0&&this._index.delete(n)}warnDocumentChanged(t,r,n){for(const a of Object.keys(this._fieldIds))if(this._fieldIds[a]===r){this._options.logger("warn",`MiniSearch: document with ID ${this._documentIds.get(t)} has changed before removal: term "${n}" was not present in field "${a}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}}addDocumentId(t){const r=this._nextId;return this._idToShortId.set(t,r),this._documentIds.set(r,t),this._documentCount+=1,this._nextId+=1,r}addFields(t){for(let r=0;rObject.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,fh={[Gn]:(e,t)=>{for(const r of t.keys()){const n=e.get(r);if(n==null)e.set(r,t.get(r));else{const{score:a,terms:o,match:l}=t.get(r);n.score=n.score+a,n.match=Object.assign(n.match,l),Vo(n.terms,o)}}return e},[Ms]:(e,t)=>{const r=new Map;for(const n of t.keys()){const a=e.get(n);if(a==null)continue;const{score:o,terms:l,match:i}=t.get(n);Vo(a.terms,l),r.set(n,{score:a.score+o,terms:a.terms,match:Object.assign(a.match,i)})}return r},[dh]:(e,t)=>{for(const r of t.keys())e.delete(r);return e}},hh={k:1.2,b:.7,d:.5},gh=(e,t,r,n,a,o)=>{const{k:l,b:i,d:s}=o;return Math.log(1+(r-t+.5)/(t+.5))*(s+e*(l+1)/(e+l*(1-i+i*n/a)))},ph=e=>(t,r,n)=>{const a=typeof e.fuzzy=="function"?e.fuzzy(t,r,n):e.fuzzy||!1,o=typeof e.prefix=="function"?e.prefix(t,r,n):e.prefix===!0,l=typeof e.boostTerm=="function"?e.boostTerm(t,r,n):1;return{term:t,fuzzy:a,prefix:o,termBoost:l}},Ur={idField:"id",extractField:(e,t)=>e[t],tokenize:e=>e.split(yh),processTerm:e=>e.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(e,t)=>{typeof(console==null?void 0:console[e])=="function"&&console[e](t)},autoVacuum:!0},Bo={combineWith:Gn,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:hh},mh={combineWith:Ms,prefix:(e,t,r)=>t===r.length-1},pn={batchSize:1e3,batchWait:10},mn={minDirtFactor:.1,minDirtCount:20},qr={...pn,...mn},vh=(e,t)=>{e.includes(t)||e.push(t)},Vo=(e,t)=>{for(const r of t)e.includes(r)||e.push(r)},Uo=({score:e},{score:t})=>t-e,qo=()=>new Map,Dt=e=>{const t=new Map;for(const r of Object.keys(e))t.set(parseInt(r,10),e[r]);return t},Ot=async e=>{const t=new Map;let r=0;for(const n of Object.keys(e))t.set(parseInt(n,10),e[n]),++r%1e3===0&&await Hs(0);return t},Hs=e=>new Promise(t=>setTimeout(t,e)),yh=/[\n\r\p{Z}\p{P}]+/u,bh={index:new at({fields:[]})};p.createContext(bh);const vn=({label:e,color:t,hidden:r,labels:n={}})=>W.createElement("div",{className:"node"},W.createElement("span",{className:"render "+(r?"circle":"disc"),style:{backgroundColor:t||"#000"}}),W.createElement("span",{className:`label ${r?"text-muted":""} ${e?"":"text-italic"}`},e||n.no_label||"No label")),wh=({id:e,labels:t})=>{const r=Be(),n=p.useMemo(()=>{const a=r.getGraph().getNodeAttributes(e),o=r.getSetting("nodeReducer");return Object.assign(Object.assign({color:r.getSetting("defaultNodeColor")},a),o?o(e,a):{})},[r,e]);return W.createElement(vn,Object.assign({},n,{labels:t}))},xh=({label:e,color:t,source:r,target:n,hidden:a,directed:o,labels:l={}})=>W.createElement("div",{className:"edge"},W.createElement(vn,Object.assign({},r,{labels:l})),W.createElement("div",{className:"body"},W.createElement("div",{className:"render"},W.createElement("span",{className:a?"dotted":"dash",style:{borderColor:t||"#000"}})," ",o&&W.createElement("span",{className:"arrow",style:{borderTopColor:t||"#000"}})),W.createElement("span",{className:`label ${a?"text-muted":""} ${e?"":"fst-italic"}`},e||l.no_label||"No label")),W.createElement(vn,Object.assign({},n,{labels:l}))),Sh=({id:e,labels:t})=>{const r=Be(),n=p.useMemo(()=>{const a=r.getGraph().getEdgeAttributes(e),o=r.getSetting("nodeReducer"),l=r.getSetting("edgeReducer"),i=r.getGraph().getNodeAttributes(r.getGraph().source(e)),s=r.getGraph().getNodeAttributes(r.getGraph().target(e));return Object.assign(Object.assign(Object.assign({color:r.getSetting("defaultEdgeColor"),directed:r.getGraph().isDirected(e)},a),l?l(e,a):{}),{source:Object.assign(Object.assign({color:r.getSetting("defaultNodeColor")},i),o?o(e,i):{}),target:Object.assign(Object.assign({color:r.getSetting("defaultNodeColor")},s),o?o(e,s):{})})},[r,e]);return W.createElement(xh,Object.assign({},n,{labels:t}))};function Bs(e,t){const[r,n]=p.useState(e);return p.useEffect(()=>{const a=setTimeout(()=>{n(e)},t);return()=>{clearTimeout(a)}},[e,t]),r}function Eh({fetcher:e,preload:t,filterFn:r,renderOption:n,getOptionValue:a,notFound:o,loadingSkeleton:l,label:i,placeholder:s="Select...",value:c,onChange:u,onFocus:d,disabled:h=!1,className:f,noResultsMessage:b}){const[y,T]=p.useState(!1),[L,_]=p.useState(!1),[A,R]=p.useState([]),[I,D]=p.useState(!1),[m,E]=p.useState(null),[x,k]=p.useState(""),N=Bs(x,t?0:150),j=p.useRef(null);p.useEffect(()=>{T(!0)},[]),p.useEffect(()=>{const C=S=>{j.current&&!j.current.contains(S.target)&&L&&_(!1)};return document.addEventListener("mousedown",C),()=>{document.removeEventListener("mousedown",C)}},[L]);const w=p.useCallback(async C=>{try{D(!0),E(null);const S=await e(C);R(S)}catch(S){E(S instanceof Error?S.message:"Failed to fetch options")}finally{D(!1)}},[e]);p.useEffect(()=>{y&&(t?N&&R(C=>C.filter(S=>r?r(S,N):!0)):w(N))},[y,N,t,r,w]),p.useEffect(()=>{!y||!c||w(c)},[y,c,w]);const V=p.useCallback(C=>{u(C),requestAnimationFrame(()=>{const S=document.activeElement;S==null||S.blur(),_(!1)})},[u]),K=p.useCallback(()=>{_(!0),w(x)},[x,w]),O=p.useCallback(C=>{C.target.closest(".cmd-item")&&C.preventDefault()},[]);return g.jsx("div",{ref:j,className:fe(h&&"cursor-not-allowed opacity-50",f),onMouseDown:O,children:g.jsxs(cr,{shouldFilter:!1,className:"bg-transparent",children:[g.jsxs("div",{children:[g.jsx(Pn,{placeholder:s,value:x,className:"max-h-8",onFocus:K,onValueChange:C=>{k(C),L||_(!0)}}),I&&g.jsx("div",{className:"absolute top-1/2 right-2 flex -translate-y-1/2 transform items-center",children:g.jsx(Ua,{className:"h-4 w-4 animate-spin"})})]}),g.jsxs(ur,{hidden:!L,children:[m&&g.jsx("div",{className:"text-destructive p-4 text-center",children:m}),I&&A.length===0&&(l||g.jsx(_h,{})),!I&&!m&&A.length===0&&(o||g.jsx(zn,{children:b??`No ${i.toLowerCase()} found.`})),g.jsx(_t,{children:A.map((C,S)=>g.jsxs(W.Fragment,{children:[g.jsx(Ct,{value:a(C),onSelect:V,onMouseMove:()=>d(a(C)),className:"truncate cmd-item",children:n(C)},a(C)+`${S}`),S!==A.length-1&&g.jsx("div",{className:"bg-foreground/10 h-[1px]"},`divider-${S}`)]},a(C)+`-fragment-${S}`))})]})]})})}function _h(){return g.jsx(_t,{children:g.jsx(Ct,{disabled:!0,children:g.jsxs("div",{className:"flex w-full items-center gap-2",children:[g.jsx("div",{className:"bg-muted h-6 w-6 animate-pulse rounded-full"}),g.jsxs("div",{className:"flex flex-1 flex-col gap-1",children:[g.jsx("div",{className:"bg-muted h-4 w-24 animate-pulse rounded"}),g.jsx("div",{className:"bg-muted h-3 w-16 animate-pulse rounded"})]})]})})})}const Wr="__message_item",Ch=({id:e})=>{const t=ee.use.sigmaGraph();return t!=null&&t.hasNode(e)?g.jsx(wh,{id:e}):null};function kh(e){return g.jsxs("div",{children:[e.type==="nodes"&&g.jsx(Ch,{id:e.id}),e.type==="edges"&&g.jsx(Sh,{id:e.id}),e.type==="message"&&g.jsx("div",{children:e.message})]})}const Th=({onChange:e,onFocus:t,value:r})=>{const{t:n}=xe(),a=ee.use.sigmaGraph(),o=ee.use.searchEngine();p.useEffect(()=>{a&&ee.getState().resetSearchEngine()},[a]),p.useEffect(()=>{if(!a||a.nodes().length===0||o)return;const i=new at({idField:"id",fields:["label"],searchOptions:{prefix:!0,fuzzy:.2,boost:{label:2}}}),s=a.nodes().map(c=>({id:c,label:a.getNodeAttribute(c,"label")}));i.addAll(s),ee.getState().setSearchEngine(i)},[a,o]);const l=p.useCallback(async i=>{if(t&&t(null),!a||!o)return[];if(a.nodes().length===0)return[];if(!i)return a.nodes().filter(u=>a.hasNode(u)).slice(0,It).map(u=>({id:u,type:"nodes"}));let s=o.search(i).filter(c=>a.hasNode(c.id)).map(c=>({id:c.id,type:"nodes"}));if(s.length<5){const c=new Set(s.map(d=>d.id)),u=a.nodes().filter(d=>{if(c.has(d))return!1;const h=a.getNodeAttribute(d,"label");return h&&typeof h=="string"&&!h.toLowerCase().startsWith(i.toLowerCase())&&h.toLowerCase().includes(i.toLowerCase())}).map(d=>({id:d,type:"nodes"}));s=[...s,...u]}return s.length<=It?s:[...s.slice(0,It),{type:"message",id:Wr,message:n("graphPanel.search.message",{count:s.length-It})}]},[a,o,t,n]);return g.jsx(Eh,{className:"bg-background/60 w-24 rounded-xl border-1 opacity-60 backdrop-blur-lg transition-all hover:w-fit hover:opacity-100",fetcher:l,renderOption:kh,getOptionValue:i=>i.id,value:r&&r.type!=="message"?r.id:null,onChange:i=>{i!==Wr&&e(i?{id:i,type:"nodes"}:null)},onFocus:i=>{i!==Wr&&t&&t(i?{id:i,type:"nodes"}:null)},label:"item",placeholder:n("graphPanel.search.placeholder")})},Rh=({...e})=>g.jsx(Th,{...e});function Ah({fetcher:e,preload:t,filterFn:r,renderOption:n,getOptionValue:a,getDisplayValue:o,notFound:l,loadingSkeleton:i,label:s,placeholder:c="Select...",value:u,onChange:d,disabled:h=!1,className:f,triggerClassName:b,searchInputClassName:y,noResultsMessage:T,triggerTooltip:L,clearable:_=!0}){const[A,R]=p.useState(!1),[I,D]=p.useState(!1),[m,E]=p.useState([]),[x,k]=p.useState(!1),[N,j]=p.useState(null),[w,V]=p.useState(u),[K,O]=p.useState(null),[C,S]=p.useState(""),H=Bs(C,t?0:150),[ae,$]=p.useState([]),[v,z]=p.useState(null);p.useEffect(()=>{R(!0),V(u)},[u]),p.useEffect(()=>{u&&(!m.length||!K)?z(g.jsx("div",{children:u})):K&&z(null)},[u,m.length,K]),p.useEffect(()=>{if(u&&m.length>0){const M=m.find(J=>a(J)===u);M&&O(M)}},[u,m,a]),p.useEffect(()=>{A||(async()=>{try{k(!0),j(null);const J=await e(u);$(J),E(J)}catch(J){j(J instanceof Error?J.message:"Failed to fetch options")}finally{k(!1)}})()},[A,e,u]),p.useEffect(()=>{const M=async()=>{try{k(!0),j(null);const J=await e(H);$(J),E(J)}catch(J){j(J instanceof Error?J.message:"Failed to fetch options")}finally{k(!1)}};A&&t?t&&E(H?ae.filter(J=>r?r(J,H):!0):ae):M()},[e,H,A,t,r]);const B=p.useCallback(M=>{const J=_&&M===w?"":M;V(J),O(m.find(X=>a(X)===J)||null),d(J),D(!1)},[w,d,_,m,a]);return g.jsxs(Tn,{open:I,onOpenChange:D,children:[g.jsx(Rn,{asChild:!0,children:g.jsxs(be,{variant:"outline",role:"combobox","aria-expanded":I,className:fe("justify-between",h&&"cursor-not-allowed opacity-50",b),disabled:h,tooltip:L,side:"bottom",children:[u==="*"?g.jsx("div",{children:"*"}):K?o(K):v||c,g.jsx(Dc,{className:"opacity-50",size:10})]})}),g.jsx(ir,{className:fe("p-0",f),onCloseAutoFocus:M=>M.preventDefault(),align:"start",sideOffset:8,collisionPadding:5,children:g.jsxs(cr,{shouldFilter:!1,children:[g.jsxs("div",{className:"relative w-full border-b",children:[g.jsx(Pn,{placeholder:`Search ${s.toLowerCase()}...`,value:C,onValueChange:M=>{S(M)},className:y}),x&&m.length>0&&g.jsx("div",{className:"absolute top-1/2 right-2 flex -translate-y-1/2 transform items-center",children:g.jsx(Ua,{className:"h-4 w-4 animate-spin"})})]}),g.jsxs(ur,{children:[N&&g.jsx("div",{className:"text-destructive p-4 text-center",children:N}),x&&m.length===0&&(i||g.jsx(jh,{})),!x&&!N&&m.length===0&&(l||g.jsx(zn,{children:T??`No ${s.toLowerCase()} found.`})),g.jsx(_t,{children:m.map(M=>g.jsxs(Ct,{value:a(M),onSelect:B,className:"truncate",children:[n(M),g.jsx(Va,{className:fe("ml-auto h-3 w-3",w===a(M)?"opacity-100":"opacity-0")})]},a(M)))})]})]})})]})}function jh(){return g.jsx(_t,{children:g.jsx(Ct,{disabled:!0,children:g.jsxs("div",{className:"flex w-full items-center gap-2",children:[g.jsx("div",{className:"bg-muted h-6 w-6 animate-pulse rounded-full"}),g.jsxs("div",{className:"flex flex-1 flex-col gap-1",children:[g.jsx("div",{className:"bg-muted h-4 w-24 animate-pulse rounded"}),g.jsx("div",{className:"bg-muted h-3 w-16 animate-pulse rounded"})]})]})})})}const Ih=()=>{const{t:e}=xe(),t=re.use.queryLabel(),r=ee.use.allDatabaseLabels(),n=ee.use.labelsFetchAttempted(),a=p.useCallback(()=>{const i=new at({idField:"id",fields:["value"],searchOptions:{prefix:!0,fuzzy:.2,boost:{label:2}}}),s=r.map((c,u)=>({id:u,value:c}));return i.addAll(s),{labels:r,searchEngine:i}},[r]),o=p.useCallback(async i=>{const{labels:s,searchEngine:c}=a();let u=s;if(i&&(u=c.search(i).map(d=>s[d.id]),u.length<15)){const d=new Set(u),h=s.filter(f=>d.has(f)?!1:f&&typeof f=="string"&&!f.toLowerCase().startsWith(i.toLowerCase())&&f.toLowerCase().includes(i.toLowerCase()));u=[...u,...h]}return u.length<=Xn?u:[...u.slice(0,Xn),"..."]},[a]);p.useEffect(()=>{n&&(r.length>1?t&&t!=="*"&&!r.includes(t)?(console.log(`Label "${t}" not in available labels, setting to "*"`),re.getState().setQueryLabel("*")):console.log(`Label "${t}" is valid`):t&&r.length<=1&&t&&t!=="*"&&(console.log("Available labels list is empty, setting label to empty"),re.getState().setQueryLabel("")),ee.getState().setLabelsFetchAttempted(!1))},[r,t,n]);const l=p.useCallback(()=>{ee.getState().setLabelsFetchAttempted(!1),ee.getState().setGraphDataFetchAttempted(!1),ee.getState().setLastSuccessfulQueryLabel("");const i=re.getState().queryLabel;i?(re.getState().setQueryLabel(""),setTimeout(()=>{re.getState().setQueryLabel(i)},0)):re.getState().setQueryLabel("*")},[]);return g.jsxs("div",{className:"flex items-center",children:[g.jsx(be,{size:"icon",variant:Ne,onClick:l,tooltip:e("graphPanel.graphLabels.refreshTooltip"),className:"mr-2",children:g.jsx(uu,{className:"h-4 w-4"})}),g.jsx(Ah,{className:"min-w-[300px]",triggerClassName:"max-h-8",searchInputClassName:"max-h-8",triggerTooltip:e("graphPanel.graphLabels.selectTooltip"),fetcher:o,renderOption:i=>g.jsx("div",{children:i}),getOptionValue:i=>i,getDisplayValue:i=>g.jsx("div",{children:i}),notFound:g.jsx("div",{className:"py-6 text-center text-sm",children:"No labels found"}),label:e("graphPanel.graphLabels.label"),placeholder:e("graphPanel.graphLabels.placeholder"),value:t!==null?t:"*",onChange:i=>{const s=re.getState().queryLabel;i==="..."&&(i="*"),i===s&&i!=="*"&&(i="*"),ee.getState().setGraphDataFetchAttempted(!1),re.getState().setQueryLabel(i)},clearable:!1})]})},Vs=({text:e,className:t,tooltipClassName:r,tooltip:n,side:a,onClick:o})=>n?g.jsx($a,{delayDuration:200,children:g.jsxs(Ma,{children:[g.jsx(Ha,{asChild:!0,children:g.jsx("label",{className:fe(t,o!==void 0?"cursor-pointer":void 0),onClick:o,children:e})}),g.jsx(kn,{side:a,className:r,children:n})]})}):g.jsx("label",{className:fe(t,o!==void 0?"cursor-pointer":void 0),onClick:o,children:e});var Gt={exports:{}},Nh=Gt.exports,Wo;function Lh(){return Wo||(Wo=1,function(e){(function(t,r,n){function a(s){var c=this,u=i();c.next=function(){var d=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=d-(c.c=d|0)},c.c=1,c.s0=u(" "),c.s1=u(" "),c.s2=u(" "),c.s0-=u(s),c.s0<0&&(c.s0+=1),c.s1-=u(s),c.s1<0&&(c.s1+=1),c.s2-=u(s),c.s2<0&&(c.s2+=1),u=null}function o(s,c){return c.c=s.c,c.s0=s.s0,c.s1=s.s1,c.s2=s.s2,c}function l(s,c){var u=new a(s),d=c&&c.state,h=u.next;return h.int32=function(){return u.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&o(d,u),h.state=function(){return o(u,{})}),h}function i(){var s=4022871197,c=function(u){u=String(u);for(var d=0;d>>0,h-=s,h*=s,s=h>>>0,h-=s,s+=h*4294967296}return(s>>>0)*23283064365386963e-26};return c}r&&r.exports?r.exports=l:this.alea=l})(Nh,e)}(Gt)),Gt.exports}var Ft={exports:{}},Ph=Ft.exports,Xo;function zh(){return Xo||(Xo=1,function(e){(function(t,r,n){function a(i){var s=this,c="";s.x=0,s.y=0,s.z=0,s.w=0,s.next=function(){var d=s.x^s.x<<11;return s.x=s.y,s.y=s.z,s.z=s.w,s.w^=s.w>>>19^d^d>>>8},i===(i|0)?s.x=i:c+=i;for(var u=0;u>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(typeof u=="object"&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.xor128=l})(Ph,e)}(Ft)),Ft.exports}var $t={exports:{}},Dh=$t.exports,Yo;function Oh(){return Yo||(Yo=1,function(e){(function(t,r,n){function a(i){var s=this,c="";s.next=function(){var d=s.x^s.x>>>2;return s.x=s.y,s.y=s.z,s.z=s.w,s.w=s.v,(s.d=s.d+362437|0)+(s.v=s.v^s.v<<4^(d^d<<1))|0},s.x=0,s.y=0,s.z=0,s.w=0,s.v=0,i===(i|0)?s.x=i:c+=i;for(var u=0;u>>4),s.next()}function o(i,s){return s.x=i.x,s.y=i.y,s.z=i.z,s.w=i.w,s.v=i.v,s.d=i.d,s}function l(i,s){var c=new a(i),u=s&&s.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(typeof u=="object"&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.xorwow=l})(Dh,e)}($t)),$t.exports}var Mt={exports:{}},Gh=Mt.exports,Ko;function Fh(){return Ko||(Ko=1,function(e){(function(t,r,n){function a(i){var s=this;s.next=function(){var u=s.x,d=s.i,h,f;return h=u[d],h^=h>>>7,f=h^h<<24,h=u[d+1&7],f^=h^h>>>10,h=u[d+3&7],f^=h^h>>>3,h=u[d+4&7],f^=h^h<<7,h=u[d+7&7],h=h^h<<13,f^=h^h<<9,u[d]=f,s.i=d+1&7,f};function c(u,d){var h,f=[];if(d===(d|0))f[0]=d;else for(d=""+d,h=0;h0;--h)u.next()}c(s,i)}function o(i,s){return s.x=i.x.slice(),s.i=i.i,s}function l(i,s){i==null&&(i=+new Date);var c=new a(i),u=s&&s.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(u.x&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.xorshift7=l})(Gh,e)}(Mt)),Mt.exports}var Ht={exports:{}},$h=Ht.exports,Qo;function Mh(){return Qo||(Qo=1,function(e){(function(t,r,n){function a(i){var s=this;s.next=function(){var u=s.w,d=s.X,h=s.i,f,b;return s.w=u=u+1640531527|0,b=d[h+34&127],f=d[h=h+1&127],b^=b<<13,f^=f<<17,b^=b>>>15,f^=f>>>12,b=d[h]=b^f,s.i=h,b+(u^u>>>16)|0};function c(u,d){var h,f,b,y,T,L=[],_=128;for(d===(d|0)?(f=d,d=null):(d=d+"\0",f=0,_=Math.max(_,d.length)),b=0,y=-32;y<_;++y)d&&(f^=d.charCodeAt((y+32)%d.length)),y===0&&(T=f),f^=f<<10,f^=f>>>15,f^=f<<4,f^=f>>>13,y>=0&&(T=T+1640531527|0,h=L[y&127]^=f+T,b=h==0?b+1:0);for(b>=128&&(L[(d&&d.length||0)&127]=-1),b=127,y=4*128;y>0;--y)f=L[b+34&127],h=L[b=b+1&127],f^=f<<13,h^=h<<17,f^=f>>>15,h^=h>>>12,L[b]=f^h;u.w=T,u.X=L,u.i=b}c(s,i)}function o(i,s){return s.i=i.i,s.w=i.w,s.X=i.X.slice(),s}function l(i,s){i==null&&(i=+new Date);var c=new a(i),u=s&&s.state,d=function(){return(c.next()>>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(u.X&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.xor4096=l})($h,e)}(Ht)),Ht.exports}var Bt={exports:{}},Hh=Bt.exports,Jo;function Bh(){return Jo||(Jo=1,function(e){(function(t,r,n){function a(i){var s=this,c="";s.next=function(){var d=s.b,h=s.c,f=s.d,b=s.a;return d=d<<25^d>>>7^h,h=h-f|0,f=f<<24^f>>>8^b,b=b-d|0,s.b=d=d<<20^d>>>12^h,s.c=h=h-f|0,s.d=f<<16^h>>>16^b,s.a=b-d|0},s.a=0,s.b=0,s.c=-1640531527,s.d=1367130551,i===Math.floor(i)?(s.a=i/4294967296|0,s.b=i|0):c+=i;for(var u=0;u>>0)/4294967296};return d.double=function(){do var h=c.next()>>>11,f=(c.next()>>>0)/4294967296,b=(h+f)/(1<<21);while(b===0);return b},d.int32=c.next,d.quick=d,u&&(typeof u=="object"&&o(u,c),d.state=function(){return o(c,{})}),d}r&&r.exports?r.exports=l:this.tychei=l})(Hh,e)}(Bt)),Bt.exports}var Vt={exports:{}};const Vh={},Uh=Object.freeze(Object.defineProperty({__proto__:null,default:Vh},Symbol.toStringTag,{value:"Module"})),qh=pi(Uh);var Wh=Vt.exports,Zo;function Xh(){return Zo||(Zo=1,function(e){(function(t,r,n){var a=256,o=6,l=52,i="random",s=n.pow(a,o),c=n.pow(2,l),u=c*2,d=a-1,h;function f(R,I,D){var m=[];I=I==!0?{entropy:!0}:I||{};var E=L(T(I.entropy?[R,A(r)]:R??_(),3),m),x=new b(m),k=function(){for(var N=x.g(o),j=s,w=0;N=u;)N/=2,j/=2,w>>>=1;return(N+w)/j};return k.int32=function(){return x.g(4)|0},k.quick=function(){return x.g(4)/4294967296},k.double=k,L(A(x.S),r),(I.pass||D||function(N,j,w,V){return V&&(V.S&&y(V,x),N.state=function(){return y(x,{})}),w?(n[i]=N,j):N})(k,E,"global"in I?I.global:this==n,I.state)}function b(R){var I,D=R.length,m=this,E=0,x=m.i=m.j=0,k=m.S=[];for(D||(R=[D++]);E{const t="#5D6D7E",r=e?e.toLowerCase():"unknown",n=ee.getState().typeColorMap;if(n.has(r))return n.get(r)||t;const a=Qh[r];if(a){const c=ta[a],u=new Map(n);return u.set(r,c),ee.setState({typeColorMap:u}),c}const o=new Set(Array.from(n.entries()).filter(([,c])=>!Object.values(ta).includes(c)).map(([,c])=>c)),i=Jh.find(c=>!o.has(c))||t,s=new Map(n);return s.set(r,i),ee.setState({typeColorMap:s}),i},Zh=e=>{if(!e)return console.log("Graph validation failed: graph is null"),!1;if(!Array.isArray(e.nodes)||!Array.isArray(e.edges))return console.log("Graph validation failed: nodes or edges is not an array"),!1;if(e.nodes.length===0)return console.log("Graph validation failed: nodes array is empty"),!1;for(const t of e.nodes)if(!t.id||!t.labels||!t.properties)return console.log("Graph validation failed: invalid node structure"),!1;for(const t of e.edges)if(!t.id||!t.source||!t.target)return console.log("Graph validation failed: invalid edge structure"),!1;for(const t of e.edges){const r=e.getNode(t.source),n=e.getNode(t.target);if(r==null||n==null)return console.log("Graph validation failed: edge references non-existent node"),!1}return console.log("Graph validation passed"),!0},eg=async(e,t,r)=>{let n=null;if(!ee.getState().lastSuccessfulQueryLabel){console.log("Last successful queryLabel is empty");try{await ee.getState().fetchAllDatabaseLabels()}catch(i){console.error("Failed to fetch all database labels:",i)}}ee.getState().setLabelsFetchAttempted(!0);const o=e||"*";try{console.log(`Fetching graph label: ${o}, depth: ${t}, nodes: ${r}`),n=await Ca(o,t,r)}catch(i){return _n.getState().setErrorMessage(rr(i),"Query Graphs Error!"),null}let l=null;if(n){const i={},s={};for(let h=0;h0){const h=Jr-ut;for(const f of n.nodes)f.size=Math.round(ut+h*Math.pow((f.degree-c)/d,.5))}l=new rl,l.nodes=n.nodes,l.edges=n.edges,l.nodeIdMap=i,l.edgeIdMap=s,Zh(l)||(l=null,console.warn("Invalid graph data")),console.log("Graph data loaded")}return{rawGraph:l,is_truncated:n.is_truncated}},tg=e=>{var i,s;const t=re.getState().minEdgeSize,r=re.getState().maxEdgeSize;if(!e||!e.nodes.length)return console.log("No graph data available, skipping sigma graph creation"),null;const n=new Yr;for(const c of(e==null?void 0:e.nodes)??[]){yn(c.id+Date.now().toString(),{global:!0});const u=Math.random(),d=Math.random();n.addNode(c.id,{label:c.labels.join(", "),color:c.color,x:u,y:d,size:c.size,borderColor:Qr,borderSize:.2})}for(const c of(e==null?void 0:e.edges)??[]){const u=((i=c.properties)==null?void 0:i.weight)!==void 0?Number(c.properties.weight):1;c.dynamicId=n.addEdge(c.source,c.target,{label:((s=c.properties)==null?void 0:s.keywords)||void 0,size:u,originalWeight:u,type:"curvedNoArrow"})}let a=Number.MAX_SAFE_INTEGER,o=0;n.forEachEdge(c=>{const u=n.getEdgeAttribute(c,"originalWeight")||1;a=Math.min(a,u),o=Math.max(o,u)});const l=o-a;if(l>0){const c=r-t;n.forEachEdge(u=>{const d=n.getEdgeAttribute(u,"originalWeight")||1,h=t+c*Math.pow((d-a)/l,.5);n.setEdgeAttribute(u,"size",h)})}else n.forEachEdge(c=>{n.setEdgeAttribute(c,"size",t)});return n},rg=()=>{const{t:e}=xe(),t=re.use.queryLabel(),r=ee.use.rawGraph(),n=ee.use.sigmaGraph(),a=re.use.graphQueryMaxDepth(),o=re.use.graphMaxNodes(),l=ee.use.isFetching(),i=ee.use.nodeToExpand(),s=ee.use.nodeToPrune(),c=p.useRef(!1),u=p.useRef(!1),d=p.useRef(!1),h=p.useCallback(L=>(r==null?void 0:r.getNode(L))||null,[r]),f=p.useCallback((L,_=!0)=>(r==null?void 0:r.getEdge(L,_))||null,[r]),b=p.useRef(!1);p.useEffect(()=>{if(!t&&(r!==null||n!==null)){const L=ee.getState();L.reset(),L.setGraphDataFetchAttempted(!1),L.setLabelsFetchAttempted(!1),c.current=!1,u.current=!1}},[t,r,n]),p.useEffect(()=>{if(!b.current&&!(!t&&d.current)&&!l&&!ee.getState().graphDataFetchAttempted){b.current=!0,ee.getState().setGraphDataFetchAttempted(!0);const L=ee.getState();L.setIsFetching(!0),L.clearSelection(),L.sigmaGraph&&L.sigmaGraph.forEachNode(D=>{var m;(m=L.sigmaGraph)==null||m.setNodeAttribute(D,"highlighted",!1)}),console.log("Preparing graph data...");const _=t,A=a,R=o;let I;_?I=eg(_,A,R):(console.log("Query label is empty, show empty graph"),I=Promise.resolve({rawGraph:null,is_truncated:!1})),I.then(D=>{const m=ee.getState(),E=D==null?void 0:D.rawGraph;if(E&&E.nodes&&E.nodes.forEach(x=>{var N;const k=(N=x.properties)==null?void 0:N.entity_type;x.color=ra(k)}),D!=null&&D.is_truncated&&rt.info(e("graphPanel.dataIsTruncated","Graph data is truncated to Max Nodes")),m.reset(),!E||!E.nodes||E.nodes.length===0){const x=new Yr;x.addNode("empty-graph-node",{label:e("graphPanel.emptyGraph"),color:"#5D6D7E",x:.5,y:.5,size:15,borderColor:Qr,borderSize:.2}),m.setSigmaGraph(x),m.setRawGraph(null),m.setGraphIsEmpty(!0);const k=_n.getState().message,N=k&&k.includes("Authentication required");!N&&_&&re.getState().setQueryLabel(""),N?console.log("Keep queryLabel for post-login reload"):m.setLastSuccessfulQueryLabel(""),console.log(`Graph data is empty, created graph with empty graph node. Auth error: ${N}`)}else{const x=tg(E);E.buildDynamicMap(),m.setSigmaGraph(x),m.setRawGraph(E),m.setGraphIsEmpty(!1),m.setLastSuccessfulQueryLabel(_),m.setMoveToSelectedNode(!0)}c.current=!0,u.current=!0,b.current=!1,m.setIsFetching(!1),(!E||!E.nodes||E.nodes.length===0)&&!_&&(d.current=!0)}).catch(D=>{console.error("Error fetching graph data:",D);const m=ee.getState();m.setIsFetching(!1),c.current=!1,b.current=!1,m.setGraphDataFetchAttempted(!1),m.setLastSuccessfulQueryLabel("")})}},[t,a,o,l,e]),p.useEffect(()=>{i&&((async _=>{var A,R,I,D,m,E;if(!(!_||!n||!r))try{const x=r.getNode(_);if(!x){console.error("Node not found:",_);return}const k=x.labels[0];if(!k){console.error("Node has no label:",_);return}const N=await Ca(k,2,1e3);if(!N||!N.nodes||!N.edges){console.error("Failed to fetch extended graph");return}const j=[];for(const F of N.nodes){yn(F.id,{global:!0});const Q=(A=F.properties)==null?void 0:A.entity_type,q=ra(Q);j.push({id:F.id,labels:F.labels,properties:F.properties,size:10,x:Math.random(),y:Math.random(),color:q,degree:0})}const w=[];for(const F of N.edges)w.push({id:F.id,source:F.source,target:F.target,type:F.type,properties:F.properties,dynamicId:""});const V={};n.forEachNode(F=>{V[F]={x:n.getNodeAttribute(F,"x"),y:n.getNodeAttribute(F,"y")}});const K=new Set(n.nodes()),O=new Set,C=new Set,S=1;let H=0,ae=Number.MAX_SAFE_INTEGER,$=0;n.forEachNode(F=>{const Q=n.degree(F);H=Math.max(H,Q)}),n.forEachEdge(F=>{const Q=n.getEdgeAttribute(F,"originalWeight")||1;ae=Math.min(ae,Q),$=Math.max($,Q)});for(const F of j){if(K.has(F.id))continue;w.some(q=>q.source===_&&q.target===F.id||q.target===_&&q.source===F.id)&&O.add(F.id)}const v=new Map,z=new Map,B=new Set;for(const F of w){const Q=K.has(F.source)||O.has(F.source),q=K.has(F.target)||O.has(F.target);Q&&q?(C.add(F.id),O.has(F.source)?v.set(F.source,(v.get(F.source)||0)+1):K.has(F.source)&&z.set(F.source,(z.get(F.source)||0)+1),O.has(F.target)?v.set(F.target,(v.get(F.target)||0)+1):K.has(F.target)&&z.set(F.target,(z.get(F.target)||0)+1)):(n.hasNode(F.source)?B.add(F.source):O.has(F.source)&&(B.add(F.source),v.set(F.source,(v.get(F.source)||0)+1)),n.hasNode(F.target)?B.add(F.target):O.has(F.target)&&(B.add(F.target),v.set(F.target,(v.get(F.target)||0)+1)))}const M=(F,Q,q,U)=>{const P=U-q||1,oe=Jr-ut;for(const ue of Q)if(F.hasNode(ue)){let te=F.degree(ue);te+=1;const Z=Math.min(te,U+1),G=Math.round(ut+oe*Math.pow((Z-q)/P,.5));F.setNodeAttribute(ue,"size",G)}},J=(F,Q,q)=>{const U=re.getState().minEdgeSize,P=re.getState().maxEdgeSize,oe=q-Q||1,ue=P-U;F.forEachEdge(te=>{const Z=F.getEdgeAttribute(te,"originalWeight")||1,G=U+ue*Math.pow((Z-Q)/oe,.5);F.setEdgeAttribute(te,"size",G)})};if(O.size===0){M(n,B,S,H),rt.info(e("graphPanel.propertiesView.node.noNewNodes"));return}for(const[,F]of v.entries())H=Math.max(H,F);for(const[F,Q]of z.entries()){const U=n.degree(F)+Q;H=Math.max(H,U)}const X=H-S||1,Y=Jr-ut,ie=((R=ee.getState().sigmaInstance)==null?void 0:R.getCamera().ratio)||1,ne=Math.max(Math.sqrt(x.size)*4,Math.sqrt(O.size)*3)/ie;yn(Date.now().toString(),{global:!0});const se=Math.random()*2*Math.PI;console.log("nodeSize:",x.size,"nodesToAdd:",O.size),console.log("cameraRatio:",Math.round(ie*100)/100,"spreadFactor:",Math.round(ne*100)/100);for(const F of O){const Q=j.find(Z=>Z.id===F),q=v.get(F)||0,U=Math.min(q,H+1),P=Math.round(ut+Y*Math.pow((U-S)/X,.5)),oe=2*Math.PI*(Array.from(O).indexOf(F)/O.size),ue=((I=V[F])==null?void 0:I.x)||V[x.id].x+Math.cos(se+oe)*ne,te=((D=V[F])==null?void 0:D.y)||V[x.id].y+Math.sin(se+oe)*ne;n.addNode(F,{label:Q.labels.join(", "),color:Q.color,x:ue,y:te,size:P,borderColor:Qr,borderSize:.2}),r.getNode(F)||(Q.size=P,Q.x=ue,Q.y=te,Q.degree=q,r.nodes.push(Q),r.nodeIdMap[F]=r.nodes.length-1)}for(const F of C){const Q=w.find(U=>U.id===F);if(n.hasEdge(Q.source,Q.target))continue;const q=((m=Q.properties)==null?void 0:m.weight)!==void 0?Number(Q.properties.weight):1;ae=Math.min(ae,q),$=Math.max($,q),Q.dynamicId=n.addEdge(Q.source,Q.target,{label:((E=Q.properties)==null?void 0:E.keywords)||void 0,size:q,originalWeight:q,type:"curvedNoArrow"}),r.getEdge(Q.id,!1)?console.error("Edge already exists in rawGraph:",Q.id):(r.edges.push(Q),r.edgeIdMap[Q.id]=r.edges.length-1,r.edgeDynamicIdMap[Q.dynamicId]=r.edges.length-1)}if(r.buildDynamicMap(),ee.getState().resetSearchEngine(),M(n,B,S,H),J(n,ae,$),n.hasNode(_)){const F=n.degree(_),Q=Math.min(F,H+1),q=Math.round(ut+Y*Math.pow((Q-S)/X,.5));n.setNodeAttribute(_,"size",q),x.size=q,x.degree=F}}catch(x){console.error("Error expanding node:",x)}})(i),window.setTimeout(()=>{ee.getState().triggerNodeExpand(null)},0))},[i,n,r,e]);const y=p.useCallback((L,_)=>{const A=new Set([L]);return _.forEachNode(R=>{if(R===L)return;const I=_.neighbors(R);I.length===1&&I[0]===L&&A.add(R)}),A},[]);return p.useEffect(()=>{s&&((_=>{if(!(!_||!n||!r))try{const A=ee.getState();if(!n.hasNode(_)){console.error("Node not found:",_);return}const R=y(_,n);if(R.size===n.nodes().length){rt.error(e("graphPanel.propertiesView.node.deleteAllNodesError"));return}A.clearSelection();for(const I of R){n.dropNode(I);const D=r.nodeIdMap[I];if(D!==void 0){const m=r.edges.filter(E=>E.source===I||E.target===I);for(const E of m){const x=r.edgeIdMap[E.id];if(x!==void 0){r.edges.splice(x,1);for(const[k,N]of Object.entries(r.edgeIdMap))N>x&&(r.edgeIdMap[k]=N-1);delete r.edgeIdMap[E.id],delete r.edgeDynamicIdMap[E.dynamicId]}}r.nodes.splice(D,1);for(const[E,x]of Object.entries(r.nodeIdMap))x>D&&(r.nodeIdMap[E]=x-1);delete r.nodeIdMap[I]}}r.buildDynamicMap(),ee.getState().resetSearchEngine(),R.size>1&&rt.info(e("graphPanel.propertiesView.node.nodesRemoved",{count:R.size}))}catch(A){console.error("Error pruning node:",A)}})(s),window.setTimeout(()=>{ee.getState().triggerNodePrune(null)},0))},[s,n,r,y,e]),{lightrageGraph:p.useCallback(()=>{if(n)return n;console.log("Creating new Sigma graph instance");const L=new Yr;return ee.getState().setSigmaGraph(L),L},[n]),getNode:h,getEdge:f}},ng=({name:e})=>{const{t}=xe(),r=n=>{const a=`graphPanel.propertiesView.node.propertyNames.${n}`,o=t(a);return o===a?n:o};return g.jsx("span",{className:"text-primary/60 tracking-wide whitespace-nowrap",children:r(e)})},og=({onClick:e})=>g.jsx("div",{children:g.jsx(su,{className:"h-3 w-3 text-gray-500 hover:text-gray-700 cursor-pointer",onClick:e})}),ag=({value:e,onClick:t,tooltip:r})=>g.jsx("div",{className:"flex items-center gap-1 overflow-hidden",children:g.jsx(Vs,{className:"hover:bg-primary/20 rounded p-1 overflow-hidden text-ellipsis whitespace-nowrap",tooltipClassName:"max-w-80 -translate-x-15",text:e,tooltip:r||(typeof e=="string"?e:JSON.stringify(e,null,2)),side:"left",onClick:t})}),sg=({isOpen:e,onClose:t,onSave:r,propertyName:n,initialValue:a,isSubmitting:o=!1})=>{const{t:l}=xe(),[i,s]=p.useState(""),[c,u]=p.useState(null);p.useEffect(()=>{e&&s(a)},[e,a]);const d=b=>{const y=`graphPanel.propertiesView.node.propertyNames.${b}`,T=l(y);return T===y?b:T},h=b=>{switch(b){case"description":return{className:"max-h-[50vh] min-h-[10em] resize-y",style:{height:"70vh",minHeight:"20em",resize:"vertical"}};case"entity_id":return{rows:2,className:"",style:{}};case"keywords":return{rows:4,className:"",style:{}};default:return{rows:5,className:"",style:{}}}},f=async()=>{if(i.trim()!==""){u(null);try{await r(i),t()}catch(b){console.error("Save error:",b),u(typeof b=="object"&&b!==null&&b.message||l("common.saveFailed"))}}};return g.jsx(Nu,{open:e,onOpenChange:b=>!b&&t(),children:g.jsxs(Xa,{className:"sm:max-w-md",children:[g.jsxs(Ya,{children:[g.jsx(Qa,{children:l("graphPanel.propertiesView.editProperty",{property:d(n)})}),g.jsx(Ja,{children:l("graphPanel.propertiesView.editPropertyDescription")})]}),c&&g.jsx("div",{className:"bg-destructive/15 text-destructive px-4 py-2 rounded-md text-sm mt-2",children:c}),g.jsx("div",{className:"grid gap-4 py-4",children:(()=>{const b=h(n);return n==="description"?g.jsx("textarea",{value:i,onChange:y=>s(y.target.value),className:`border-input focus-visible:ring-ring flex w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm transition-colors focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${b.className}`,style:b.style,disabled:o}):g.jsx("textarea",{value:i,onChange:y=>s(y.target.value),rows:b.rows,className:`border-input focus-visible:ring-ring flex w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm transition-colors focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 ${b.className}`,disabled:o})})()}),g.jsxs(Ka,{children:[g.jsx(be,{type:"button",variant:"outline",onClick:t,disabled:o,children:l("common.cancel")}),g.jsx(be,{type:"button",onClick:f,disabled:o,children:o?g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"mr-2",children:g.jsxs("svg",{className:"animate-spin h-4 w-4",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[g.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),g.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}),l("common.saving")]}):l("common.save")})]})]})})},ig=({name:e,value:t,onClick:r,nodeId:n,edgeId:a,entityId:o,dynamicId:l,entityType:i,sourceId:s,targetId:c,onValueChange:u,isEditable:d=!1,tooltip:h})=>{const{t:f}=xe(),[b,y]=p.useState(!1),[T,L]=p.useState(!1),[_,A]=p.useState(t);p.useEffect(()=>{A(t)},[t]);const R=()=>{d&&!b&&y(!0)},I=()=>{y(!1)},D=async m=>{if(T||m===String(_)){y(!1);return}L(!0);try{if(i==="node"&&o&&n){let E={[e]:m};if(e==="entity_id"){if(await cl(m)){rt.error(f("graphPanel.propertiesView.errors.duplicateName"));return}E={entity_name:m}}await il(o,E,!0);try{await ee.getState().updateNodeAndSelect(n,o,e,m)}catch(x){throw console.error("Error updating node in graph:",x),new Error("Failed to update node in graph")}rt.success(f("graphPanel.propertiesView.success.entityUpdated"))}else if(i==="edge"&&s&&c&&a&&l){const E={[e]:m};await ll(s,c,E);try{await ee.getState().updateEdgeAndSelect(a,l,s,c,e,m)}catch(x){throw console.error(`Error updating edge ${s}->${c} in graph:`,x),new Error("Failed to update edge in graph")}rt.success(f("graphPanel.propertiesView.success.relationUpdated"))}y(!1),A(m),u==null||u(m)}catch(E){console.error("Error updating property:",E),rt.error(f("graphPanel.propertiesView.errors.updateFailed"))}finally{L(!1)}};return g.jsxs("div",{className:"flex items-center gap-1 overflow-hidden",children:[g.jsx(ng,{name:e}),g.jsx(og,{onClick:R}),":",g.jsx(ag,{value:_,onClick:r,tooltip:h||(typeof _=="string"?_:JSON.stringify(_,null,2))}),g.jsx(sg,{isOpen:b,onClose:I,onSave:D,propertyName:e,initialValue:String(_),isSubmitting:T})]})},lg=()=>{const{getNode:e,getEdge:t}=rg(),r=ee.use.selectedNode(),n=ee.use.focusedNode(),a=ee.use.selectedEdge(),o=ee.use.focusedEdge(),l=ee.use.graphDataVersion(),[i,s]=p.useState(null),[c,u]=p.useState(null);return p.useEffect(()=>{let d=null,h=null;n?(d="node",h=e(n)):r?(d="node",h=e(r)):o?(d="edge",h=t(o,!0)):a&&(d="edge",h=t(a,!0)),h?(d=="node"?s(cg(h)):s(ug(h)),u(d)):(s(null),u(null))},[n,r,o,a,l,s,u,e,t]),i?g.jsx("div",{className:"bg-background/80 max-w-xs rounded-lg border-2 p-2 text-xs backdrop-blur-lg",children:c=="node"?g.jsx(dg,{node:i}):g.jsx(fg,{edge:i})}):g.jsx(g.Fragment,{})},cg=e=>{const t=ee.getState(),r=[];if(t.sigmaGraph&&t.rawGraph)try{if(!t.sigmaGraph.hasNode(e.id))return console.warn("Node not found in sigmaGraph:",e.id),{...e,relationships:[]};const n=t.sigmaGraph.edges(e.id);for(const a of n){if(!t.sigmaGraph.hasEdge(a))continue;const o=t.rawGraph.getEdge(a,!0);if(o){const i=e.id===o.source?o.target:o.source;if(!t.sigmaGraph.hasNode(i))continue;const s=t.rawGraph.getNode(i);s&&r.push({type:"Neighbour",id:i,label:s.properties.entity_id?s.properties.entity_id:s.labels.join(", ")})}}}catch(n){console.error("Error refining node properties:",n)}return{...e,relationships:r}},ug=e=>{const t=ee.getState();let r,n;if(t.sigmaGraph&&t.rawGraph)try{if(!t.sigmaGraph.hasEdge(e.dynamicId))return console.warn("Edge not found in sigmaGraph:",e.id,"dynamicId:",e.dynamicId),{...e,sourceNode:void 0,targetNode:void 0};t.sigmaGraph.hasNode(e.source)&&(r=t.rawGraph.getNode(e.source)),t.sigmaGraph.hasNode(e.target)&&(n=t.rawGraph.getNode(e.target))}catch(a){console.error("Error refining edge properties:",a)}return{...e,sourceNode:r,targetNode:n}},Me=({name:e,value:t,onClick:r,tooltip:n,nodeId:a,edgeId:o,dynamicId:l,entityId:i,entityType:s,sourceId:c,targetId:u,isEditable:d=!1})=>{const{t:h}=xe(),f=b=>{const y=`graphPanel.propertiesView.node.propertyNames.${b}`,T=h(y);return T===y?b:T};return d&&(e==="description"||e==="entity_id"||e==="keywords")?g.jsx(ig,{name:e,value:t,onClick:r,nodeId:a,entityId:i,edgeId:o,dynamicId:l,entityType:s,sourceId:c,targetId:u,isEditable:!0,tooltip:n||(typeof t=="string"?t:JSON.stringify(t,null,2))}):g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx("span",{className:"text-primary/60 tracking-wide whitespace-nowrap",children:f(e)}),":",g.jsx(Vs,{className:"hover:bg-primary/20 rounded p-1 overflow-hidden text-ellipsis",tooltipClassName:"max-w-80 -translate-x-13",text:t,tooltip:n||(typeof t=="string"?t:JSON.stringify(t,null,2)),side:"left",onClick:r})]})},dg=({node:e})=>{const{t}=xe(),r=()=>{ee.getState().triggerNodeExpand(e.id)},n=()=>{ee.getState().triggerNodePrune(e.id)};return g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsxs("div",{className:"flex justify-between items-center",children:[g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-blue-700",children:t("graphPanel.propertiesView.node.title")}),g.jsxs("div",{className:"flex gap-3",children:[g.jsx(be,{size:"icon",variant:"ghost",className:"h-7 w-7 border border-gray-400 hover:bg-gray-200 dark:border-gray-600 dark:hover:bg-gray-700",onClick:r,tooltip:t("graphPanel.propertiesView.node.expandNode"),children:g.jsx(Uc,{className:"h-4 w-4 text-gray-700 dark:text-gray-300"})}),g.jsx(be,{size:"icon",variant:"ghost",className:"h-7 w-7 border border-gray-400 hover:bg-gray-200 dark:border-gray-600 dark:hover:bg-gray-700",onClick:n,tooltip:t("graphPanel.propertiesView.node.pruneNode"),children:g.jsx(mu,{className:"h-4 w-4 text-gray-900 dark:text-gray-300"})})]})]}),g.jsxs("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:[g.jsx(Me,{name:t("graphPanel.propertiesView.node.id"),value:String(e.id)}),g.jsx(Me,{name:t("graphPanel.propertiesView.node.labels"),value:e.labels.join(", "),onClick:()=>{ee.getState().setSelectedNode(e.id,!0)}}),g.jsx(Me,{name:t("graphPanel.propertiesView.node.degree"),value:e.degree})]}),g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-amber-700",children:t("graphPanel.propertiesView.node.properties")}),g.jsx("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:Object.keys(e.properties).sort().map(a=>a==="created_at"?null:g.jsx(Me,{name:a,value:e.properties[a],nodeId:String(e.id),entityId:e.properties.entity_id,entityType:"node",isEditable:a==="description"||a==="entity_id"},a))}),e.relationships.length>0&&g.jsxs(g.Fragment,{children:[g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-emerald-700",children:t("graphPanel.propertiesView.node.relationships")}),g.jsx("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:e.relationships.map(({type:a,id:o,label:l})=>g.jsx(Me,{name:a,value:l,onClick:()=>{ee.getState().setSelectedNode(o,!0)}},o))})]})]})},fg=({edge:e})=>{const{t}=xe();return g.jsxs("div",{className:"flex flex-col gap-2",children:[g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-violet-700",children:t("graphPanel.propertiesView.edge.title")}),g.jsxs("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:[g.jsx(Me,{name:t("graphPanel.propertiesView.edge.id"),value:e.id}),e.type&&g.jsx(Me,{name:t("graphPanel.propertiesView.edge.type"),value:e.type}),g.jsx(Me,{name:t("graphPanel.propertiesView.edge.source"),value:e.sourceNode?e.sourceNode.labels.join(", "):e.source,onClick:()=>{ee.getState().setSelectedNode(e.source,!0)}}),g.jsx(Me,{name:t("graphPanel.propertiesView.edge.target"),value:e.targetNode?e.targetNode.labels.join(", "):e.target,onClick:()=>{ee.getState().setSelectedNode(e.target,!0)}})]}),g.jsx("h3",{className:"text-md pl-1 font-bold tracking-wide text-amber-700",children:t("graphPanel.propertiesView.edge.properties")}),g.jsx("div",{className:"bg-primary/5 max-h-96 overflow-auto rounded p-1",children:Object.keys(e.properties).sort().map(r=>{var n,a;return r==="created_at"?null:g.jsx(Me,{name:r,value:e.properties[r],edgeId:String(e.id),dynamicId:String(e.dynamicId),entityType:"edge",sourceId:((n=e.sourceNode)==null?void 0:n.properties.entity_id)||e.source,targetId:((a=e.targetNode)==null?void 0:a.properties.entity_id)||e.target,isEditable:r==="description"||r==="keywords"},r)})})]})},hg=()=>{const{t:e}=xe(),t=re.use.graphQueryMaxDepth(),r=re.use.graphMaxNodes();return g.jsxs("div",{className:"absolute bottom-4 left-[calc(1rem+2.5rem)] flex items-center gap-2 text-xs text-gray-400",children:[g.jsxs("div",{children:[e("graphPanel.sideBar.settings.depth"),": ",t]}),g.jsxs("div",{children:[e("graphPanel.sideBar.settings.max"),": ",r]})]})},Us=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("bg-card text-card-foreground rounded-xl border shadow",e),...t}));Us.displayName="Card";const gg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("flex flex-col space-y-1.5 p-6",e),...t}));gg.displayName="CardHeader";const pg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("leading-none font-semibold tracking-tight",e),...t}));pg.displayName="CardTitle";const mg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("text-muted-foreground text-sm",e),...t}));mg.displayName="CardDescription";const vg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("p-6 pt-0",e),...t}));vg.displayName="CardContent";const yg=p.forwardRef(({className:e,...t},r)=>g.jsx("div",{ref:r,className:fe("flex items-center p-6 pt-0",e),...t}));yg.displayName="CardFooter";function bg(e,t){return p.useReducer((r,n)=>t[r][n]??r,e)}var Fn="ScrollArea",[qs,Ip]=wn(Fn),[wg,Le]=qs(Fn),Ws=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,type:n="hover",dir:a,scrollHideDelay:o=600,...l}=e,[i,s]=p.useState(null),[c,u]=p.useState(null),[d,h]=p.useState(null),[f,b]=p.useState(null),[y,T]=p.useState(null),[L,_]=p.useState(0),[A,R]=p.useState(0),[I,D]=p.useState(!1),[m,E]=p.useState(!1),x=Xe(t,N=>s(N)),k=Fi(a);return g.jsx(wg,{scope:r,type:n,dir:k,scrollHideDelay:o,scrollArea:i,viewport:c,onViewportChange:u,content:d,onContentChange:h,scrollbarX:f,onScrollbarXChange:b,scrollbarXEnabled:I,onScrollbarXEnabledChange:D,scrollbarY:y,onScrollbarYChange:T,scrollbarYEnabled:m,onScrollbarYEnabledChange:E,onCornerWidthChange:_,onCornerHeightChange:R,children:g.jsx(Ee.div,{dir:k,...l,ref:x,style:{position:"relative","--radix-scroll-area-corner-width":L+"px","--radix-scroll-area-corner-height":A+"px",...e.style}})})});Ws.displayName=Fn;var Xs="ScrollAreaViewport",Ys=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,children:n,nonce:a,...o}=e,l=Le(Xs,r),i=p.useRef(null),s=Xe(t,i,l.onViewportChange);return g.jsxs(g.Fragment,{children:[g.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),g.jsx(Ee.div,{"data-radix-scroll-area-viewport":"",...o,ref:s,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:g.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});Ys.displayName=Xs;var Ve="ScrollAreaScrollbar",$n=p.forwardRef((e,t)=>{const{forceMount:r,...n}=e,a=Le(Ve,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:l}=a,i=e.orientation==="horizontal";return p.useEffect(()=>(i?o(!0):l(!0),()=>{i?o(!1):l(!1)}),[i,o,l]),a.type==="hover"?g.jsx(xg,{...n,ref:t,forceMount:r}):a.type==="scroll"?g.jsx(Sg,{...n,ref:t,forceMount:r}):a.type==="auto"?g.jsx(Ks,{...n,ref:t,forceMount:r}):a.type==="always"?g.jsx(Mn,{...n,ref:t}):null});$n.displayName=Ve;var xg=p.forwardRef((e,t)=>{const{forceMount:r,...n}=e,a=Le(Ve,e.__scopeScrollArea),[o,l]=p.useState(!1);return p.useEffect(()=>{const i=a.scrollArea;let s=0;if(i){const c=()=>{window.clearTimeout(s),l(!0)},u=()=>{s=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return i.addEventListener("pointerenter",c),i.addEventListener("pointerleave",u),()=>{window.clearTimeout(s),i.removeEventListener("pointerenter",c),i.removeEventListener("pointerleave",u)}}},[a.scrollArea,a.scrollHideDelay]),g.jsx(St,{present:r||o,children:g.jsx(Ks,{"data-state":o?"visible":"hidden",...n,ref:t})})}),Sg=p.forwardRef((e,t)=>{const{forceMount:r,...n}=e,a=Le(Ve,e.__scopeScrollArea),o=e.orientation==="horizontal",l=fr(()=>s("SCROLL_END"),100),[i,s]=bg("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return p.useEffect(()=>{if(i==="idle"){const c=window.setTimeout(()=>s("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(c)}},[i,a.scrollHideDelay,s]),p.useEffect(()=>{const c=a.viewport,u=o?"scrollLeft":"scrollTop";if(c){let d=c[u];const h=()=>{const f=c[u];d!==f&&(s("SCROLL"),l()),d=f};return c.addEventListener("scroll",h),()=>c.removeEventListener("scroll",h)}},[a.viewport,o,s,l]),g.jsx(St,{present:r||i!=="hidden",children:g.jsx(Mn,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:Ce(e.onPointerEnter,()=>s("POINTER_ENTER")),onPointerLeave:Ce(e.onPointerLeave,()=>s("POINTER_LEAVE"))})})}),Ks=p.forwardRef((e,t)=>{const r=Le(Ve,e.__scopeScrollArea),{forceMount:n,...a}=e,[o,l]=p.useState(!1),i=e.orientation==="horizontal",s=fr(()=>{if(r.viewport){const c=r.viewport.offsetWidth{const{orientation:r="vertical",...n}=e,a=Le(Ve,e.__scopeScrollArea),o=p.useRef(null),l=p.useRef(0),[i,s]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),c=ti(i.viewport,i.content),u={...n,sizes:i,onSizesChange:s,hasThumb:c>0&&c<1,onThumbChange:h=>o.current=h,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:h=>l.current=h};function d(h,f){return Rg(h,l.current,i,f)}return r==="horizontal"?g.jsx(Eg,{...u,ref:t,onThumbPositionChange:()=>{if(a.viewport&&o.current){const h=a.viewport.scrollLeft,f=na(h,i,a.dir);o.current.style.transform=`translate3d(${f}px, 0, 0)`}},onWheelScroll:h=>{a.viewport&&(a.viewport.scrollLeft=h)},onDragScroll:h=>{a.viewport&&(a.viewport.scrollLeft=d(h,a.dir))}}):r==="vertical"?g.jsx(_g,{...u,ref:t,onThumbPositionChange:()=>{if(a.viewport&&o.current){const h=a.viewport.scrollTop,f=na(h,i);o.current.style.transform=`translate3d(0, ${f}px, 0)`}},onWheelScroll:h=>{a.viewport&&(a.viewport.scrollTop=h)},onDragScroll:h=>{a.viewport&&(a.viewport.scrollTop=d(h))}}):null}),Eg=p.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...a}=e,o=Le(Ve,e.__scopeScrollArea),[l,i]=p.useState(),s=p.useRef(null),c=Xe(t,s,o.onScrollbarXChange);return p.useEffect(()=>{s.current&&i(getComputedStyle(s.current))},[s]),g.jsx(Js,{"data-orientation":"horizontal",...a,ref:c,sizes:r,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":dr(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,d)=>{if(o.viewport){const h=o.viewport.scrollLeft+u.deltaX;e.onWheelScroll(h),ni(h,d)&&u.preventDefault()}},onResize:()=>{s.current&&o.viewport&&l&&n({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:s.current.clientWidth,paddingStart:Zt(l.paddingLeft),paddingEnd:Zt(l.paddingRight)}})}})}),_g=p.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...a}=e,o=Le(Ve,e.__scopeScrollArea),[l,i]=p.useState(),s=p.useRef(null),c=Xe(t,s,o.onScrollbarYChange);return p.useEffect(()=>{s.current&&i(getComputedStyle(s.current))},[s]),g.jsx(Js,{"data-orientation":"vertical",...a,ref:c,sizes:r,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":dr(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,d)=>{if(o.viewport){const h=o.viewport.scrollTop+u.deltaY;e.onWheelScroll(h),ni(h,d)&&u.preventDefault()}},onResize:()=>{s.current&&o.viewport&&l&&n({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:s.current.clientHeight,paddingStart:Zt(l.paddingTop),paddingEnd:Zt(l.paddingBottom)}})}})}),[Cg,Qs]=qs(Ve),Js=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:a,onThumbChange:o,onThumbPointerUp:l,onThumbPointerDown:i,onThumbPositionChange:s,onDragScroll:c,onWheelScroll:u,onResize:d,...h}=e,f=Le(Ve,r),[b,y]=p.useState(null),T=Xe(t,x=>y(x)),L=p.useRef(null),_=p.useRef(""),A=f.viewport,R=n.content-n.viewport,I=ct(u),D=ct(s),m=fr(d,10);function E(x){if(L.current){const k=x.clientX-L.current.left,N=x.clientY-L.current.top;c({x:k,y:N})}}return p.useEffect(()=>{const x=k=>{const N=k.target;(b==null?void 0:b.contains(N))&&I(k,R)};return document.addEventListener("wheel",x,{passive:!1}),()=>document.removeEventListener("wheel",x,{passive:!1})},[A,b,R,I]),p.useEffect(D,[n,D]),xt(b,m),xt(f.content,m),g.jsx(Cg,{scope:r,scrollbar:b,hasThumb:a,onThumbChange:ct(o),onThumbPointerUp:ct(l),onThumbPositionChange:D,onThumbPointerDown:ct(i),children:g.jsx(Ee.div,{...h,ref:T,style:{position:"absolute",...h.style},onPointerDown:Ce(e.onPointerDown,x=>{x.button===0&&(x.target.setPointerCapture(x.pointerId),L.current=b.getBoundingClientRect(),_.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",f.viewport&&(f.viewport.style.scrollBehavior="auto"),E(x))}),onPointerMove:Ce(e.onPointerMove,E),onPointerUp:Ce(e.onPointerUp,x=>{const k=x.target;k.hasPointerCapture(x.pointerId)&&k.releasePointerCapture(x.pointerId),document.body.style.webkitUserSelect=_.current,f.viewport&&(f.viewport.style.scrollBehavior=""),L.current=null})})})}),Jt="ScrollAreaThumb",Zs=p.forwardRef((e,t)=>{const{forceMount:r,...n}=e,a=Qs(Jt,e.__scopeScrollArea);return g.jsx(St,{present:r||a.hasThumb,children:g.jsx(kg,{ref:t,...n})})}),kg=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,style:n,...a}=e,o=Le(Jt,r),l=Qs(Jt,r),{onThumbPositionChange:i}=l,s=Xe(t,d=>l.onThumbChange(d)),c=p.useRef(void 0),u=fr(()=>{c.current&&(c.current(),c.current=void 0)},100);return p.useEffect(()=>{const d=o.viewport;if(d){const h=()=>{if(u(),!c.current){const f=Ag(d,i);c.current=f,i()}};return i(),d.addEventListener("scroll",h),()=>d.removeEventListener("scroll",h)}},[o.viewport,u,i]),g.jsx(Ee.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:s,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:Ce(e.onPointerDownCapture,d=>{const f=d.target.getBoundingClientRect(),b=d.clientX-f.left,y=d.clientY-f.top;l.onThumbPointerDown({x:b,y})}),onPointerUp:Ce(e.onPointerUp,l.onThumbPointerUp)})});Zs.displayName=Jt;var Hn="ScrollAreaCorner",ei=p.forwardRef((e,t)=>{const r=Le(Hn,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?g.jsx(Tg,{...e,ref:t}):null});ei.displayName=Hn;var Tg=p.forwardRef((e,t)=>{const{__scopeScrollArea:r,...n}=e,a=Le(Hn,r),[o,l]=p.useState(0),[i,s]=p.useState(0),c=!!(o&&i);return xt(a.scrollbarX,()=>{var d;const u=((d=a.scrollbarX)==null?void 0:d.offsetHeight)||0;a.onCornerHeightChange(u),s(u)}),xt(a.scrollbarY,()=>{var d;const u=((d=a.scrollbarY)==null?void 0:d.offsetWidth)||0;a.onCornerWidthChange(u),l(u)}),c?g.jsx(Ee.div,{...n,ref:t,style:{width:o,height:i,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Zt(e){return e?parseInt(e,10):0}function ti(e,t){const r=e/t;return isNaN(r)?0:r}function dr(e){const t=ti(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function Rg(e,t,r,n="ltr"){const a=dr(r),o=a/2,l=t||o,i=a-l,s=r.scrollbar.paddingStart+l,c=r.scrollbar.size-r.scrollbar.paddingEnd-i,u=r.content-r.viewport,d=n==="ltr"?[0,u]:[u*-1,0];return ri([s,c],d)(e)}function na(e,t,r="ltr"){const n=dr(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-a,l=t.content-t.viewport,i=o-n,s=r==="ltr"?[0,l]:[l*-1,0],c=Mi(e,s);return ri([0,l],[0,i])(c)}function ri(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function ni(e,t){return e>0&&e{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return function a(){const o={left:e.scrollLeft,top:e.scrollTop},l=r.left!==o.left,i=r.top!==o.top;(l||i)&&t(),r=o,n=window.requestAnimationFrame(a)}(),()=>window.cancelAnimationFrame(n)};function fr(e,t){const r=ct(e),n=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(n.current),[]),p.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function xt(e,t){const r=ct(t);$i(()=>{let n=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return a.observe(e),()=>{window.cancelAnimationFrame(n),a.unobserve(e)}}},[e,r])}var oi=Ws,jg=Ys,Ig=ei;const ai=p.forwardRef(({className:e,children:t,...r},n)=>g.jsxs(oi,{ref:n,className:fe("relative overflow-hidden",e),...r,children:[g.jsx(jg,{className:"h-full w-full rounded-[inherit]",children:t}),g.jsx(si,{}),g.jsx(Ig,{})]}));ai.displayName=oi.displayName;const si=p.forwardRef(({className:e,orientation:t="vertical",...r},n)=>g.jsx($n,{ref:n,orientation:t,className:fe("flex touch-none transition-colors select-none",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...r,children:g.jsx(Zs,{className:"bg-border relative flex-1 rounded-full"})}));si.displayName=$n.displayName;const Ng=({className:e})=>{const{t}=xe(),r=ee.use.typeColorMap();return!r||r.size===0?null:g.jsxs(Us,{className:`p-2 max-w-xs ${e}`,children:[g.jsx("h3",{className:"text-sm font-medium mb-2",children:t("graphPanel.legend")}),g.jsx(ai,{className:"max-h-80",children:g.jsx("div",{className:"flex flex-col gap-1",children:Array.from(r.entries()).map(([n,a])=>g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx("div",{className:"w-4 h-4 rounded-full",style:{backgroundColor:a}}),g.jsx("span",{className:"text-xs truncate",title:n,children:t(`graphPanel.nodeTypes.${n.toLowerCase()}`,n)})]},n))})})]})},Lg=()=>{const{t:e}=xe(),t=re.use.showLegend(),r=re.use.setShowLegend(),n=p.useCallback(()=>{r(!t)},[t,r]);return g.jsx(be,{variant:Ne,onClick:n,tooltip:e("graphPanel.sideBar.legendControl.toggleLegend"),size:"icon",children:g.jsx(Ic,{})})},oa={allowInvalidContainer:!0,defaultNodeType:"default",defaultEdgeType:"curvedNoArrow",renderEdgeLabels:!1,edgeProgramClasses:{arrow:Si,curvedArrow:Ad,curvedNoArrow:Rd},nodeProgramClasses:{default:dd,circel:xi,point:Fu},labelGridCellSize:60,labelRenderedSizeThreshold:12,enableEdgeEvents:!0,labelColor:{color:"#000",attribute:"labelColor"},edgeLabelColor:{color:"#000",attribute:"labelColor"},edgeLabelSize:8,labelSize:12},Pg=()=>{const e=ga(),t=Be(),[r,n]=p.useState(null);return p.useEffect(()=>{e({downNode:a=>{n(a.node),t.getGraph().setNodeAttribute(a.node,"highlighted",!0)},mousemovebody:a=>{if(!r)return;const o=t.viewportToGraph(a);t.getGraph().setNodeAttribute(r,"x",o.x),t.getGraph().setNodeAttribute(r,"y",o.y),a.preventSigmaDefault(),a.original.preventDefault(),a.original.stopPropagation()},mouseup:()=>{r&&(n(null),t.getGraph().removeNodeAttribute(r,"highlighted"))},mousedown:a=>{a.original.buttons!==0&&!t.getCustomBBox()&&t.setCustomBBox(t.getBBox())}})},[e,t,r]),null},Np=()=>{const[e,t]=p.useState(oa),r=p.useRef(null),n=ee.use.selectedNode(),a=ee.use.focusedNode(),o=ee.use.moveToSelectedNode(),l=ee.use.isFetching(),i=re.use.showPropertyPanel(),s=re.use.showNodeSearchBar(),c=re.use.enableNodeDrag(),u=re.use.showLegend();p.useEffect(()=>{t(oa),console.log("Initialized sigma settings")},[]),p.useEffect(()=>()=>{const y=ee.getState().sigmaInstance;if(y)try{y.kill(),ee.getState().setSigmaInstance(null),console.log("Cleared sigma instance on Graphviewer unmount")}catch(T){console.error("Error cleaning up sigma instance:",T)}},[]);const d=p.useCallback(y=>{y===null?ee.getState().setFocusedNode(null):y.type==="nodes"&&ee.getState().setFocusedNode(y.id)},[]),h=p.useCallback(y=>{y===null?ee.getState().setSelectedNode(null):y.type==="nodes"&&ee.getState().setSelectedNode(y.id,!0)},[]),f=p.useMemo(()=>a??n,[a,n]),b=p.useMemo(()=>n?{type:"nodes",id:n}:null,[n]);return g.jsxs("div",{className:"relative h-full w-full overflow-hidden",children:[g.jsxs(Ei,{settings:e,className:"!bg-background !size-full overflow-hidden",ref:r,children:[g.jsx(Kf,{}),c&&g.jsx(Pg,{}),g.jsx(jd,{node:f,move:o}),g.jsxs("div",{className:"absolute top-2 left-2 flex items-start gap-2",children:[g.jsx(Ih,{}),s&&g.jsx(Rh,{value:b,onFocus:d,onChange:h})]}),g.jsxs("div",{className:"bg-background/60 absolute bottom-2 left-2 flex flex-col rounded-xl border-2 backdrop-blur-lg",children:[g.jsx(Xf,{}),g.jsx(Qf,{}),g.jsx(Jf,{}),g.jsx(Lg,{}),g.jsx(ih,{})]}),i&&g.jsx("div",{className:"absolute top-2 right-2",children:g.jsx(lg,{})}),u&&g.jsx("div",{className:"absolute bottom-10 right-2",children:g.jsx(Ng,{className:"bg-background/60 backdrop-blur-lg"})}),g.jsx(hg,{})]}),l&&g.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-background/80 z-10",children:g.jsxs("div",{className:"text-center",children:[g.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),g.jsx("p",{children:"Loading Graph Data..."})]})})]})};export{Kg as $,up as A,be as B,Us as C,Nu as D,vp as E,bp as F,vg as G,lp as H,Wt as I,wp as J,hp as K,fp as L,gp as M,pp as N,Va as O,$a as P,Ma as Q,uu as R,ai as S,kp as T,Tp as U,Ha as V,kn as W,ku as X,Yf as Y,mp as Z,Sp as _,pg as a,Yg as a0,$g as a1,Bs as a2,Cp as a3,Ji as a4,no as a5,Ug as a6,qg as a7,Tn as a8,Rn as a9,_p as aa,ir as ab,qt as ac,Mg as ad,Rp as ae,Vg as af,xp as ag,Ep as ah,_a as ai,Kr as aj,Hg as ak,op as al,Np as am,ep as an,rp as ao,np as ap,ap as aq,mg as b,fe as c,rt as d,yp as e,Qg as f,rr as g,Ap as h,Xa as i,Ya as j,Qa as k,Ja as l,Jg as m,Zg as n,Ls as o,Ka as p,cp as q,dp as r,Bg as s,tp as t,xe as u,_n as v,re as w,Wg as x,Xg as y,gg as z}; diff --git a/lightrag/api/webui/assets/feature-retrieval-wTZcnY1B.js b/lightrag/api/webui/assets/feature-retrieval-zozGWnLh.js similarity index 99% rename from lightrag/api/webui/assets/feature-retrieval-wTZcnY1B.js rename to lightrag/api/webui/assets/feature-retrieval-zozGWnLh.js index 8662f27c..5f83660e 100644 --- a/lightrag/api/webui/assets/feature-retrieval-wTZcnY1B.js +++ b/lightrag/api/webui/assets/feature-retrieval-zozGWnLh.js @@ -1,4 +1,4 @@ -import{j as r,E as Cr,I as Yr,F as Hr,G as jr,H as Zr,J as Tr,V as Xr,L as Or,K as Fr,M as $r,N as en,Q as Wr,U as on,W as rn,X as nn}from"./ui-vendor-CeCm8EER.js";import{c as ee,M as wo,N as Dr,O as an,I as So,B as he,u as vo,w as ue,C as tn,z as ln,a as cn,b as sn,G as dn,P as J,Q as Y,V as Z,W as X,o as xe,Y as un,Z as gn,_ as fn,$ as bn,a0 as pn,g as hn,a1 as mn,a2 as kn,E as yn,a3 as wn}from"./feature-graph-D6-O-kXP.js";import{r as f,R as se}from"./react-vendor-DEwriMA6.js";import{m as Ao}from"./mermaid-vendor-SwnP6Sr8.js";import{h as Mo,M as Sn,r as vn,a as xn,b as zn}from"./markdown-vendor-BBaHfVvE.js";const Co=on,Ho=nn,jo=rn,ko=f.forwardRef(({className:e,children:o,...n},a)=>r.jsxs(Cr,{ref:a,className:ee("border-input bg-background ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-10 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[o,r.jsx(Yr,{asChild:!0,children:r.jsx(wo,{className:"h-4 w-4 opacity-50"})})]}));ko.displayName=Cr.displayName;const Rr=f.forwardRef(({className:e,...o},n)=>r.jsx(Hr,{ref:n,className:ee("flex cursor-default items-center justify-center py-1",e),...o,children:r.jsx(Dr,{className:"h-4 w-4"})}));Rr.displayName=Hr.displayName;const Br=f.forwardRef(({className:e,...o},n)=>r.jsx(jr,{ref:n,className:ee("flex cursor-default items-center justify-center py-1",e),...o,children:r.jsx(wo,{className:"h-4 w-4"})}));Br.displayName=jr.displayName;const yo=f.forwardRef(({className:e,children:o,position:n="popper",...a},t)=>r.jsx(Zr,{children:r.jsxs(Tr,{ref:t,className:ee("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...a,children:[r.jsx(Rr,{}),r.jsx(Xr,{className:ee("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:o}),r.jsx(Br,{})]})}));yo.displayName=Tr.displayName;const An=f.forwardRef(({className:e,...o},n)=>r.jsx(Or,{ref:n,className:ee("py-1.5 pr-2 pl-8 text-sm font-semibold",e),...o}));An.displayName=Or.displayName;const $=f.forwardRef(({className:e,children:o,...n},a)=>r.jsxs(Fr,{ref:a,className:ee("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx($r,{children:r.jsx(an,{className:"h-4 w-4"})})}),r.jsx(en,{children:o})]}));$.displayName=Fr.displayName;const Mn=f.forwardRef(({className:e,...o},n)=>r.jsx(Wr,{ref:n,className:ee("bg-muted -mx-1 my-1 h-px",e),...o}));Mn.displayName=Wr.displayName;function _r(e,o){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&o.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var t=0,a=Object.getOwnPropertySymbols(e);t=z?t=t+To("0",i-z):t=(t.substring(0,i)||"0")+"."+t.substring(i),n+t}function Oo(e,o,n){if(["","-"].indexOf(e)!==-1)return e;var a=(e.indexOf(".")!==-1||n)&&o,t=xo(e),l=t.beforeDecimal,i=t.afterDecimal,z=t.hasNegation,A=parseFloat("0."+(i||"0")),p=i.length<=o?"0."+i:A.toFixed(o),M=p.split("."),b=l;l&&Number(M[0])&&(b=l.split("").reverse().reduce(function(d,g,w){return d.length>w?(Number(d[0])+Number(g)).toString()+d.substring(1,d.length):g+d},M[0]));var h=Er(M[1]||"",o,n),x=z?"-":"",u=a?".":"";return""+x+b+u+h}function ce(e,o){if(e.value=e.value,e!==null){if(e.createTextRange){var n=e.createTextRange();return n.move("character",o),n.select(),!0}return e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(o,o),!0):(e.focus(),!1)}}var Lr=Cn(function(e,o){for(var n=0,a=0,t=e.length,l=o.length;e[n]===o[n]&&nn&&t-a>n;)a++;return{from:{start:n,end:t-a},to:{start:n,end:l-a}}}),Wn=function(e,o){var n=Math.min(e.selectionStart,o);return{from:{start:n,end:e.selectionEnd},to:{start:n,end:o}}};function Dn(e,o,n){return Math.min(Math.max(e,o),n)}function ze(e){return Math.max(e.selectionStart,e.selectionEnd)}function Rn(){return typeof navigator<"u"&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function Bn(e){return{from:{start:0,end:0},to:{start:0,end:e.length},lastValue:""}}function _n(e){var o=e.currentValue,n=e.formattedValue,a=e.currentValueIndex,t=e.formattedValueIndex;return o[a]===n[t]}function Nn(e,o,n,a,t,l,i){i===void 0&&(i=_n);var z=t.findIndex(function(j){return j}),A=e.slice(0,z);!o&&!n.startsWith(A)&&(o=A,n=A+n,a=a+A.length);for(var p=n.length,M=e.length,b={},h=new Array(p),x=0;x0&&h[w]===-1;)w--;var S=w===-1||h[w]===-1?0:h[w]+1;return S>F?F:a-S=0&&!n[o];)o--;o===-1&&(o=n.indexOf(!0))}else{for(;o<=t&&!n[o];)o++;o>t&&(o=n.lastIndexOf(!0))}return o===-1&&(o=t),o}function Pn(e){for(var o=Array.from({length:e.length+1}).map(function(){return!0}),n=0,a=o.length;nV.length-i.length||HL||b>e.length-i.length)&&(I=b),e=e.substring(0,I),e=Vn(S?"-"+e:e,t),e=(e.match(In(u))||[]).join("");var U=e.indexOf(u);e=e.replace(new RegExp(Pr(u),"g"),function(k,O){return O===U?".":""});var Q=xo(e,t),W=Q.beforeDecimal,G=Q.afterDecimal,v=Q.addNegation;return p.end-p.startr.jsxs(Cr,{ref:a,className:ee("border-input bg-background ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-10 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[o,r.jsx(Yr,{asChild:!0,children:r.jsx(wo,{className:"h-4 w-4 opacity-50"})})]}));ko.displayName=Cr.displayName;const Rr=f.forwardRef(({className:e,...o},n)=>r.jsx(Hr,{ref:n,className:ee("flex cursor-default items-center justify-center py-1",e),...o,children:r.jsx(Dr,{className:"h-4 w-4"})}));Rr.displayName=Hr.displayName;const Br=f.forwardRef(({className:e,...o},n)=>r.jsx(jr,{ref:n,className:ee("flex cursor-default items-center justify-center py-1",e),...o,children:r.jsx(wo,{className:"h-4 w-4"})}));Br.displayName=jr.displayName;const yo=f.forwardRef(({className:e,children:o,position:n="popper",...a},t)=>r.jsx(Zr,{children:r.jsxs(Tr,{ref:t,className:ee("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...a,children:[r.jsx(Rr,{}),r.jsx(Xr,{className:ee("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:o}),r.jsx(Br,{})]})}));yo.displayName=Tr.displayName;const An=f.forwardRef(({className:e,...o},n)=>r.jsx(Or,{ref:n,className:ee("py-1.5 pr-2 pl-8 text-sm font-semibold",e),...o}));An.displayName=Or.displayName;const $=f.forwardRef(({className:e,children:o,...n},a)=>r.jsxs(Fr,{ref:a,className:ee("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx($r,{children:r.jsx(an,{className:"h-4 w-4"})})}),r.jsx(en,{children:o})]}));$.displayName=Fr.displayName;const Mn=f.forwardRef(({className:e,...o},n)=>r.jsx(Wr,{ref:n,className:ee("bg-muted -mx-1 my-1 h-px",e),...o}));Mn.displayName=Wr.displayName;function _r(e,o){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&o.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var t=0,a=Object.getOwnPropertySymbols(e);t=z?t=t+To("0",i-z):t=(t.substring(0,i)||"0")+"."+t.substring(i),n+t}function Oo(e,o,n){if(["","-"].indexOf(e)!==-1)return e;var a=(e.indexOf(".")!==-1||n)&&o,t=xo(e),l=t.beforeDecimal,i=t.afterDecimal,z=t.hasNegation,A=parseFloat("0."+(i||"0")),p=i.length<=o?"0."+i:A.toFixed(o),M=p.split("."),b=l;l&&Number(M[0])&&(b=l.split("").reverse().reduce(function(d,g,w){return d.length>w?(Number(d[0])+Number(g)).toString()+d.substring(1,d.length):g+d},M[0]));var h=Er(M[1]||"",o,n),x=z?"-":"",u=a?".":"";return""+x+b+u+h}function ce(e,o){if(e.value=e.value,e!==null){if(e.createTextRange){var n=e.createTextRange();return n.move("character",o),n.select(),!0}return e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(o,o),!0):(e.focus(),!1)}}var Lr=Cn(function(e,o){for(var n=0,a=0,t=e.length,l=o.length;e[n]===o[n]&&nn&&t-a>n;)a++;return{from:{start:n,end:t-a},to:{start:n,end:l-a}}}),Wn=function(e,o){var n=Math.min(e.selectionStart,o);return{from:{start:n,end:e.selectionEnd},to:{start:n,end:o}}};function Dn(e,o,n){return Math.min(Math.max(e,o),n)}function ze(e){return Math.max(e.selectionStart,e.selectionEnd)}function Rn(){return typeof navigator<"u"&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function Bn(e){return{from:{start:0,end:0},to:{start:0,end:e.length},lastValue:""}}function _n(e){var o=e.currentValue,n=e.formattedValue,a=e.currentValueIndex,t=e.formattedValueIndex;return o[a]===n[t]}function Nn(e,o,n,a,t,l,i){i===void 0&&(i=_n);var z=t.findIndex(function(j){return j}),A=e.slice(0,z);!o&&!n.startsWith(A)&&(o=A,n=A+n,a=a+A.length);for(var p=n.length,M=e.length,b={},h=new Array(p),x=0;x0&&h[w]===-1;)w--;var S=w===-1||h[w]===-1?0:h[w]+1;return S>F?F:a-S=0&&!n[o];)o--;o===-1&&(o=n.indexOf(!0))}else{for(;o<=t&&!n[o];)o++;o>t&&(o=n.lastIndexOf(!0))}return o===-1&&(o=t),o}function Pn(e){for(var o=Array.from({length:e.length+1}).map(function(){return!0}),n=0,a=o.length;nV.length-i.length||HL||b>e.length-i.length)&&(I=b),e=e.substring(0,I),e=Vn(S?"-"+e:e,t),e=(e.match(In(u))||[]).join("");var U=e.indexOf(u);e=e.replace(new RegExp(Pr(u),"g"),function(k,O){return O===U?".":""});var Q=xo(e,t),W=Q.beforeDecimal,G=Q.afterDecimal,v=Q.addNegation;return p.end-p.start4&&(V+=7),P.add(V,n));return B.diff(E,"week")+1},_.isoWeekday=function(S){return this.$utils().u(S)?this.day()||7:this.day(this.day()%7?S:S-7)};var Y=_.startOf;_.startOf=function(S,g){var M=this.$utils(),P=!!M.u(g)||g;return M.p(S)==="isoweek"?P?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):Y.bind(this)(S,g)}}})}(pe)),pe.exports}var Pt=Ot();const Vt=Ae(Pt);var ve={exports:{}},zt=ve.exports,$e;function Rt(){return $e||($e=1,function(e,s){(function(n,a){e.exports=a()})(zt,function(){var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},a=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d/,k=/\d\d/,f=/\d\d?/,_=/\d*[^-_:/,()\s\d]+/,Y={},S=function(p){return(p=+p)+(p>68?1900:2e3)},g=function(p){return function(C){this[p]=+C}},M=[/[+-]\d\d:?(\d\d)?|Z/,function(p){(this.zone||(this.zone={})).offset=function(C){if(!C||C==="Z")return 0;var F=C.match(/([+-]|\d\d)/g),L=60*F[1]+(+F[2]||0);return L===0?0:F[0]==="+"?-L:L}(p)}],P=function(p){var C=Y[p];return C&&(C.indexOf?C:C.s.concat(C.f))},V=function(p,C){var F,L=Y.meridiem;if(L){for(var G=1;G<=24;G+=1)if(p.indexOf(L(G,0,C))>-1){F=G>12;break}}else F=p===(C?"pm":"PM");return F},B={A:[_,function(p){this.afternoon=V(p,!1)}],a:[_,function(p){this.afternoon=V(p,!0)}],Q:[i,function(p){this.month=3*(p-1)+1}],S:[i,function(p){this.milliseconds=100*+p}],SS:[k,function(p){this.milliseconds=10*+p}],SSS:[/\d{3}/,function(p){this.milliseconds=+p}],s:[f,g("seconds")],ss:[f,g("seconds")],m:[f,g("minutes")],mm:[f,g("minutes")],H:[f,g("hours")],h:[f,g("hours")],HH:[f,g("hours")],hh:[f,g("hours")],D:[f,g("day")],DD:[k,g("day")],Do:[_,function(p){var C=Y.ordinal,F=p.match(/\d+/);if(this.day=F[0],C)for(var L=1;L<=31;L+=1)C(L).replace(/\[|\]/g,"")===p&&(this.day=L)}],w:[f,g("week")],ww:[k,g("week")],M:[f,g("month")],MM:[k,g("month")],MMM:[_,function(p){var C=P("months"),F=(P("monthsShort")||C.map(function(L){return L.slice(0,3)})).indexOf(p)+1;if(F<1)throw new Error;this.month=F%12||F}],MMMM:[_,function(p){var C=P("months").indexOf(p)+1;if(C<1)throw new Error;this.month=C%12||C}],Y:[/[+-]?\d+/,g("year")],YY:[k,function(p){this.year=S(p)}],YYYY:[/\d{4}/,g("year")],Z:M,ZZ:M};function E(p){var C,F;C=p,F=Y&&Y.formats;for(var L=(p=C.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(T,b,m){var w=m&&m.toUpperCase();return b||F[m]||n[m]||F[w].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(o,l,h){return l||h.slice(1)})})).match(a),G=L.length,H=0;H-1)return new Date((v==="X"?1e3:1)*d);var t=E(v)(d),I=t.year,D=t.month,A=t.day,N=t.hours,W=t.minutes,O=t.seconds,$=t.milliseconds,ae=t.zone,ie=t.week,de=new Date,fe=A||(I||D?1:de.getDate()),oe=I||de.getFullYear(),z=0;I&&!D||(z=D>0?D-1:de.getMonth());var Z,q=N||0,se=W||0,K=O||0,re=$||0;return ae?new Date(Date.UTC(oe,z,fe,q,se,K,re+60*ae.offset*1e3)):r?new Date(Date.UTC(oe,z,fe,q,se,K,re)):(Z=new Date(oe,z,fe,q,se,K,re),ie&&(Z=u(Z).week(ie).toDate()),Z)}catch{return new Date("")}}(Q,x,j,F),this.init(),w&&w!==!0&&(this.$L=this.locale(w).$L),m&&Q!=this.format(x)&&(this.$d=new Date("")),Y={}}else if(x instanceof Array)for(var o=x.length,l=1;l<=o;l+=1){y[1]=x[l-1];var h=F.apply(this,y);if(h.isValid()){this.$d=h.$d,this.$L=h.$L,this.init();break}l===o&&(this.$d=new Date(""))}else G.call(this,H)}}})}(ve)),ve.exports}var Nt=Rt();const Bt=Ae(Nt);var xe={exports:{}},qt=xe.exports,Ke;function Gt(){return Ke||(Ke=1,function(e,s){(function(n,a){e.exports=a()})(qt,function(){return function(n,a){var i=a.prototype,k=i.format;i.format=function(f){var _=this,Y=this.$locale();if(!this.isValid())return k.bind(this)(f);var S=this.$utils(),g=(f||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(M){switch(M){case"Q":return Math.ceil((_.$M+1)/3);case"Do":return Y.ordinal(_.$D);case"gggg":return _.weekYear();case"GGGG":return _.isoWeekYear();case"wo":return Y.ordinal(_.week(),"W");case"w":case"ww":return S.s(_.week(),M==="w"?1:2,"0");case"W":case"WW":return S.s(_.isoWeek(),M==="W"?1:2,"0");case"k":case"kk":return S.s(String(_.$H===0?24:_.$H),M==="k"?1:2,"0");case"X":return Math.floor(_.$d.getTime()/1e3);case"x":return _.$d.getTime();case"z":return"["+_.offsetName()+"]";case"zzz":return"["+_.offsetName("long")+"]";default:return M}});return k.bind(this)(g)}}})}(xe)),xe.exports}var Ht=Gt();const Xt=Ae(Ht);var Ee=function(){var e=c(function(w,o,l,h){for(l=l||{},h=w.length;h--;l[w[h]]=o);return l},"o"),s=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],n=[1,26],a=[1,27],i=[1,28],k=[1,29],f=[1,30],_=[1,31],Y=[1,32],S=[1,33],g=[1,34],M=[1,9],P=[1,10],V=[1,11],B=[1,12],E=[1,13],p=[1,14],C=[1,15],F=[1,16],L=[1,19],G=[1,20],H=[1,21],Q=[1,22],j=[1,23],y=[1,25],x=[1,35],T={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:c(function(o,l,h,d,v,r,u){var t=r.length-1;switch(v){case 1:return r[t-1];case 2:this.$=[];break;case 3:r[t-1].push(r[t]),this.$=r[t-1];break;case 4:case 5:this.$=r[t];break;case 6:case 7:this.$=[];break;case 8:d.setWeekday("monday");break;case 9:d.setWeekday("tuesday");break;case 10:d.setWeekday("wednesday");break;case 11:d.setWeekday("thursday");break;case 12:d.setWeekday("friday");break;case 13:d.setWeekday("saturday");break;case 14:d.setWeekday("sunday");break;case 15:d.setWeekend("friday");break;case 16:d.setWeekend("saturday");break;case 17:d.setDateFormat(r[t].substr(11)),this.$=r[t].substr(11);break;case 18:d.enableInclusiveEndDates(),this.$=r[t].substr(18);break;case 19:d.TopAxis(),this.$=r[t].substr(8);break;case 20:d.setAxisFormat(r[t].substr(11)),this.$=r[t].substr(11);break;case 21:d.setTickInterval(r[t].substr(13)),this.$=r[t].substr(13);break;case 22:d.setExcludes(r[t].substr(9)),this.$=r[t].substr(9);break;case 23:d.setIncludes(r[t].substr(9)),this.$=r[t].substr(9);break;case 24:d.setTodayMarker(r[t].substr(12)),this.$=r[t].substr(12);break;case 27:d.setDiagramTitle(r[t].substr(6)),this.$=r[t].substr(6);break;case 28:this.$=r[t].trim(),d.setAccTitle(this.$);break;case 29:case 30:this.$=r[t].trim(),d.setAccDescription(this.$);break;case 31:d.addSection(r[t].substr(8)),this.$=r[t].substr(8);break;case 33:d.addTask(r[t-1],r[t]),this.$="task";break;case 34:this.$=r[t-1],d.setClickEvent(r[t-1],r[t],null);break;case 35:this.$=r[t-2],d.setClickEvent(r[t-2],r[t-1],r[t]);break;case 36:this.$=r[t-2],d.setClickEvent(r[t-2],r[t-1],null),d.setLink(r[t-2],r[t]);break;case 37:this.$=r[t-3],d.setClickEvent(r[t-3],r[t-2],r[t-1]),d.setLink(r[t-3],r[t]);break;case 38:this.$=r[t-2],d.setClickEvent(r[t-2],r[t],null),d.setLink(r[t-2],r[t-1]);break;case 39:this.$=r[t-3],d.setClickEvent(r[t-3],r[t-1],r[t]),d.setLink(r[t-3],r[t-2]);break;case 40:this.$=r[t-1],d.setLink(r[t-1],r[t]);break;case 41:case 47:this.$=r[t-1]+" "+r[t];break;case 42:case 43:case 45:this.$=r[t-2]+" "+r[t-1]+" "+r[t];break;case 44:case 46:this.$=r[t-3]+" "+r[t-2]+" "+r[t-1]+" "+r[t];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(s,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:a,14:i,15:k,16:f,17:_,18:Y,19:18,20:S,21:g,22:M,23:P,24:V,25:B,26:E,27:p,28:C,29:F,30:L,31:G,33:H,35:Q,36:j,37:24,38:y,40:x},e(s,[2,7],{1:[2,1]}),e(s,[2,3]),{9:36,11:17,12:n,13:a,14:i,15:k,16:f,17:_,18:Y,19:18,20:S,21:g,22:M,23:P,24:V,25:B,26:E,27:p,28:C,29:F,30:L,31:G,33:H,35:Q,36:j,37:24,38:y,40:x},e(s,[2,5]),e(s,[2,6]),e(s,[2,17]),e(s,[2,18]),e(s,[2,19]),e(s,[2,20]),e(s,[2,21]),e(s,[2,22]),e(s,[2,23]),e(s,[2,24]),e(s,[2,25]),e(s,[2,26]),e(s,[2,27]),{32:[1,37]},{34:[1,38]},e(s,[2,30]),e(s,[2,31]),e(s,[2,32]),{39:[1,39]},e(s,[2,8]),e(s,[2,9]),e(s,[2,10]),e(s,[2,11]),e(s,[2,12]),e(s,[2,13]),e(s,[2,14]),e(s,[2,15]),e(s,[2,16]),{41:[1,40],43:[1,41]},e(s,[2,4]),e(s,[2,28]),e(s,[2,29]),e(s,[2,33]),e(s,[2,34],{42:[1,42],43:[1,43]}),e(s,[2,40],{41:[1,44]}),e(s,[2,35],{43:[1,45]}),e(s,[2,36]),e(s,[2,38],{42:[1,46]}),e(s,[2,37]),e(s,[2,39])],defaultActions:{},parseError:c(function(o,l){if(l.recoverable)this.trace(o);else{var h=new Error(o);throw h.hash=l,h}},"parseError"),parse:c(function(o){var l=this,h=[0],d=[],v=[null],r=[],u=this.table,t="",I=0,D=0,A=2,N=1,W=r.slice.call(arguments,1),O=Object.create(this.lexer),$={yy:{}};for(var ae in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ae)&&($.yy[ae]=this.yy[ae]);O.setInput(o,$.yy),$.yy.lexer=O,$.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var ie=O.yylloc;r.push(ie);var de=O.options&&O.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function fe(U){h.length=h.length-2*U,v.length=v.length-U,r.length=r.length-U}c(fe,"popStack");function oe(){var U;return U=d.pop()||O.lex()||N,typeof U!="number"&&(U instanceof Array&&(d=U,U=d.pop()),U=l.symbols_[U]||U),U}c(oe,"lex");for(var z,Z,q,se,K={},re,J,Be,ye;;){if(Z=h[h.length-1],this.defaultActions[Z]?q=this.defaultActions[Z]:((z===null||typeof z>"u")&&(z=oe()),q=u[Z]&&u[Z][z]),typeof q>"u"||!q.length||!q[0]){var Ce="";ye=[];for(re in u[Z])this.terminals_[re]&&re>A&&ye.push("'"+this.terminals_[re]+"'");O.showPosition?Ce="Parse error on line "+(I+1)+`: +import{_ as c,g as ut,s as dt,t as ft,q as ht,a as kt,b as mt,c as ce,d as ge,ay as yt,az as gt,aA as pt,e as vt,R as xt,aB as Tt,aC as X,l as we,aD as bt,aE as qe,aF as Ge,aG as wt,aH as _t,aI as Dt,aJ as Ct,aK as Et,aL as St,aM as Mt,aN as He,aO as Xe,aP as je,aQ as Ue,aR as Ze,aS as It,k as At,j as Ft,z as Lt,u as Yt}from"./mermaid-vendor-d7rbry5E.js";import{g as Ae}from"./react-vendor-DEwriMA6.js";import"./feature-graph-DbHHHM9y.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var pe={exports:{}},Wt=pe.exports,Qe;function Ot(){return Qe||(Qe=1,function(e,s){(function(n,a){e.exports=a()})(Wt,function(){var n="day";return function(a,i,k){var f=function(S){return S.add(4-S.isoWeekday(),n)},_=i.prototype;_.isoWeekYear=function(){return f(this).year()},_.isoWeek=function(S){if(!this.$utils().u(S))return this.add(7*(S-this.isoWeek()),n);var g,M,P,V,B=f(this),E=(g=this.isoWeekYear(),M=this.$u,P=(M?k.utc:k)().year(g).startOf("year"),V=4-P.isoWeekday(),P.isoWeekday()>4&&(V+=7),P.add(V,n));return B.diff(E,"week")+1},_.isoWeekday=function(S){return this.$utils().u(S)?this.day()||7:this.day(this.day()%7?S:S-7)};var Y=_.startOf;_.startOf=function(S,g){var M=this.$utils(),P=!!M.u(g)||g;return M.p(S)==="isoweek"?P?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):Y.bind(this)(S,g)}}})}(pe)),pe.exports}var Pt=Ot();const Vt=Ae(Pt);var ve={exports:{}},zt=ve.exports,$e;function Rt(){return $e||($e=1,function(e,s){(function(n,a){e.exports=a()})(zt,function(){var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},a=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d/,k=/\d\d/,f=/\d\d?/,_=/\d*[^-_:/,()\s\d]+/,Y={},S=function(p){return(p=+p)+(p>68?1900:2e3)},g=function(p){return function(C){this[p]=+C}},M=[/[+-]\d\d:?(\d\d)?|Z/,function(p){(this.zone||(this.zone={})).offset=function(C){if(!C||C==="Z")return 0;var F=C.match(/([+-]|\d\d)/g),L=60*F[1]+(+F[2]||0);return L===0?0:F[0]==="+"?-L:L}(p)}],P=function(p){var C=Y[p];return C&&(C.indexOf?C:C.s.concat(C.f))},V=function(p,C){var F,L=Y.meridiem;if(L){for(var G=1;G<=24;G+=1)if(p.indexOf(L(G,0,C))>-1){F=G>12;break}}else F=p===(C?"pm":"PM");return F},B={A:[_,function(p){this.afternoon=V(p,!1)}],a:[_,function(p){this.afternoon=V(p,!0)}],Q:[i,function(p){this.month=3*(p-1)+1}],S:[i,function(p){this.milliseconds=100*+p}],SS:[k,function(p){this.milliseconds=10*+p}],SSS:[/\d{3}/,function(p){this.milliseconds=+p}],s:[f,g("seconds")],ss:[f,g("seconds")],m:[f,g("minutes")],mm:[f,g("minutes")],H:[f,g("hours")],h:[f,g("hours")],HH:[f,g("hours")],hh:[f,g("hours")],D:[f,g("day")],DD:[k,g("day")],Do:[_,function(p){var C=Y.ordinal,F=p.match(/\d+/);if(this.day=F[0],C)for(var L=1;L<=31;L+=1)C(L).replace(/\[|\]/g,"")===p&&(this.day=L)}],w:[f,g("week")],ww:[k,g("week")],M:[f,g("month")],MM:[k,g("month")],MMM:[_,function(p){var C=P("months"),F=(P("monthsShort")||C.map(function(L){return L.slice(0,3)})).indexOf(p)+1;if(F<1)throw new Error;this.month=F%12||F}],MMMM:[_,function(p){var C=P("months").indexOf(p)+1;if(C<1)throw new Error;this.month=C%12||C}],Y:[/[+-]?\d+/,g("year")],YY:[k,function(p){this.year=S(p)}],YYYY:[/\d{4}/,g("year")],Z:M,ZZ:M};function E(p){var C,F;C=p,F=Y&&Y.formats;for(var L=(p=C.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(T,b,m){var w=m&&m.toUpperCase();return b||F[m]||n[m]||F[w].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(o,l,h){return l||h.slice(1)})})).match(a),G=L.length,H=0;H-1)return new Date((v==="X"?1e3:1)*d);var t=E(v)(d),I=t.year,D=t.month,A=t.day,N=t.hours,W=t.minutes,O=t.seconds,$=t.milliseconds,ae=t.zone,ie=t.week,de=new Date,fe=A||(I||D?1:de.getDate()),oe=I||de.getFullYear(),z=0;I&&!D||(z=D>0?D-1:de.getMonth());var Z,q=N||0,se=W||0,K=O||0,re=$||0;return ae?new Date(Date.UTC(oe,z,fe,q,se,K,re+60*ae.offset*1e3)):r?new Date(Date.UTC(oe,z,fe,q,se,K,re)):(Z=new Date(oe,z,fe,q,se,K,re),ie&&(Z=u(Z).week(ie).toDate()),Z)}catch{return new Date("")}}(Q,x,j,F),this.init(),w&&w!==!0&&(this.$L=this.locale(w).$L),m&&Q!=this.format(x)&&(this.$d=new Date("")),Y={}}else if(x instanceof Array)for(var o=x.length,l=1;l<=o;l+=1){y[1]=x[l-1];var h=F.apply(this,y);if(h.isValid()){this.$d=h.$d,this.$L=h.$L,this.init();break}l===o&&(this.$d=new Date(""))}else G.call(this,H)}}})}(ve)),ve.exports}var Nt=Rt();const Bt=Ae(Nt);var xe={exports:{}},qt=xe.exports,Ke;function Gt(){return Ke||(Ke=1,function(e,s){(function(n,a){e.exports=a()})(qt,function(){return function(n,a){var i=a.prototype,k=i.format;i.format=function(f){var _=this,Y=this.$locale();if(!this.isValid())return k.bind(this)(f);var S=this.$utils(),g=(f||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(M){switch(M){case"Q":return Math.ceil((_.$M+1)/3);case"Do":return Y.ordinal(_.$D);case"gggg":return _.weekYear();case"GGGG":return _.isoWeekYear();case"wo":return Y.ordinal(_.week(),"W");case"w":case"ww":return S.s(_.week(),M==="w"?1:2,"0");case"W":case"WW":return S.s(_.isoWeek(),M==="W"?1:2,"0");case"k":case"kk":return S.s(String(_.$H===0?24:_.$H),M==="k"?1:2,"0");case"X":return Math.floor(_.$d.getTime()/1e3);case"x":return _.$d.getTime();case"z":return"["+_.offsetName()+"]";case"zzz":return"["+_.offsetName("long")+"]";default:return M}});return k.bind(this)(g)}}})}(xe)),xe.exports}var Ht=Gt();const Xt=Ae(Ht);var Ee=function(){var e=c(function(w,o,l,h){for(l=l||{},h=w.length;h--;l[w[h]]=o);return l},"o"),s=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],n=[1,26],a=[1,27],i=[1,28],k=[1,29],f=[1,30],_=[1,31],Y=[1,32],S=[1,33],g=[1,34],M=[1,9],P=[1,10],V=[1,11],B=[1,12],E=[1,13],p=[1,14],C=[1,15],F=[1,16],L=[1,19],G=[1,20],H=[1,21],Q=[1,22],j=[1,23],y=[1,25],x=[1,35],T={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:c(function(o,l,h,d,v,r,u){var t=r.length-1;switch(v){case 1:return r[t-1];case 2:this.$=[];break;case 3:r[t-1].push(r[t]),this.$=r[t-1];break;case 4:case 5:this.$=r[t];break;case 6:case 7:this.$=[];break;case 8:d.setWeekday("monday");break;case 9:d.setWeekday("tuesday");break;case 10:d.setWeekday("wednesday");break;case 11:d.setWeekday("thursday");break;case 12:d.setWeekday("friday");break;case 13:d.setWeekday("saturday");break;case 14:d.setWeekday("sunday");break;case 15:d.setWeekend("friday");break;case 16:d.setWeekend("saturday");break;case 17:d.setDateFormat(r[t].substr(11)),this.$=r[t].substr(11);break;case 18:d.enableInclusiveEndDates(),this.$=r[t].substr(18);break;case 19:d.TopAxis(),this.$=r[t].substr(8);break;case 20:d.setAxisFormat(r[t].substr(11)),this.$=r[t].substr(11);break;case 21:d.setTickInterval(r[t].substr(13)),this.$=r[t].substr(13);break;case 22:d.setExcludes(r[t].substr(9)),this.$=r[t].substr(9);break;case 23:d.setIncludes(r[t].substr(9)),this.$=r[t].substr(9);break;case 24:d.setTodayMarker(r[t].substr(12)),this.$=r[t].substr(12);break;case 27:d.setDiagramTitle(r[t].substr(6)),this.$=r[t].substr(6);break;case 28:this.$=r[t].trim(),d.setAccTitle(this.$);break;case 29:case 30:this.$=r[t].trim(),d.setAccDescription(this.$);break;case 31:d.addSection(r[t].substr(8)),this.$=r[t].substr(8);break;case 33:d.addTask(r[t-1],r[t]),this.$="task";break;case 34:this.$=r[t-1],d.setClickEvent(r[t-1],r[t],null);break;case 35:this.$=r[t-2],d.setClickEvent(r[t-2],r[t-1],r[t]);break;case 36:this.$=r[t-2],d.setClickEvent(r[t-2],r[t-1],null),d.setLink(r[t-2],r[t]);break;case 37:this.$=r[t-3],d.setClickEvent(r[t-3],r[t-2],r[t-1]),d.setLink(r[t-3],r[t]);break;case 38:this.$=r[t-2],d.setClickEvent(r[t-2],r[t],null),d.setLink(r[t-2],r[t-1]);break;case 39:this.$=r[t-3],d.setClickEvent(r[t-3],r[t-1],r[t]),d.setLink(r[t-3],r[t-2]);break;case 40:this.$=r[t-1],d.setLink(r[t-1],r[t]);break;case 41:case 47:this.$=r[t-1]+" "+r[t];break;case 42:case 43:case 45:this.$=r[t-2]+" "+r[t-1]+" "+r[t];break;case 44:case 46:this.$=r[t-3]+" "+r[t-2]+" "+r[t-1]+" "+r[t];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(s,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:a,14:i,15:k,16:f,17:_,18:Y,19:18,20:S,21:g,22:M,23:P,24:V,25:B,26:E,27:p,28:C,29:F,30:L,31:G,33:H,35:Q,36:j,37:24,38:y,40:x},e(s,[2,7],{1:[2,1]}),e(s,[2,3]),{9:36,11:17,12:n,13:a,14:i,15:k,16:f,17:_,18:Y,19:18,20:S,21:g,22:M,23:P,24:V,25:B,26:E,27:p,28:C,29:F,30:L,31:G,33:H,35:Q,36:j,37:24,38:y,40:x},e(s,[2,5]),e(s,[2,6]),e(s,[2,17]),e(s,[2,18]),e(s,[2,19]),e(s,[2,20]),e(s,[2,21]),e(s,[2,22]),e(s,[2,23]),e(s,[2,24]),e(s,[2,25]),e(s,[2,26]),e(s,[2,27]),{32:[1,37]},{34:[1,38]},e(s,[2,30]),e(s,[2,31]),e(s,[2,32]),{39:[1,39]},e(s,[2,8]),e(s,[2,9]),e(s,[2,10]),e(s,[2,11]),e(s,[2,12]),e(s,[2,13]),e(s,[2,14]),e(s,[2,15]),e(s,[2,16]),{41:[1,40],43:[1,41]},e(s,[2,4]),e(s,[2,28]),e(s,[2,29]),e(s,[2,33]),e(s,[2,34],{42:[1,42],43:[1,43]}),e(s,[2,40],{41:[1,44]}),e(s,[2,35],{43:[1,45]}),e(s,[2,36]),e(s,[2,38],{42:[1,46]}),e(s,[2,37]),e(s,[2,39])],defaultActions:{},parseError:c(function(o,l){if(l.recoverable)this.trace(o);else{var h=new Error(o);throw h.hash=l,h}},"parseError"),parse:c(function(o){var l=this,h=[0],d=[],v=[null],r=[],u=this.table,t="",I=0,D=0,A=2,N=1,W=r.slice.call(arguments,1),O=Object.create(this.lexer),$={yy:{}};for(var ae in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ae)&&($.yy[ae]=this.yy[ae]);O.setInput(o,$.yy),$.yy.lexer=O,$.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var ie=O.yylloc;r.push(ie);var de=O.options&&O.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function fe(U){h.length=h.length-2*U,v.length=v.length-U,r.length=r.length-U}c(fe,"popStack");function oe(){var U;return U=d.pop()||O.lex()||N,typeof U!="number"&&(U instanceof Array&&(d=U,U=d.pop()),U=l.symbols_[U]||U),U}c(oe,"lex");for(var z,Z,q,se,K={},re,J,Be,ye;;){if(Z=h[h.length-1],this.defaultActions[Z]?q=this.defaultActions[Z]:((z===null||typeof z>"u")&&(z=oe()),q=u[Z]&&u[Z][z]),typeof q>"u"||!q.length||!q[0]){var Ce="";ye=[];for(re in u[Z])this.terminals_[re]&&re>A&&ye.push("'"+this.terminals_[re]+"'");O.showPosition?Ce="Parse error on line "+(I+1)+`: `+O.showPosition()+` Expecting `+ye.join(", ")+", got '"+(this.terminals_[z]||z)+"'":Ce="Parse error on line "+(I+1)+": Unexpected "+(z==N?"end of input":"'"+(this.terminals_[z]||z)+"'"),this.parseError(Ce,{text:O.match,token:this.terminals_[z]||z,line:O.yylineno,loc:ie,expected:ye})}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+z);switch(q[0]){case 1:h.push(z),v.push(O.yytext),r.push(O.yylloc),h.push(q[1]),z=null,D=O.yyleng,t=O.yytext,I=O.yylineno,ie=O.yylloc;break;case 2:if(J=this.productions_[q[1]][1],K.$=v[v.length-J],K._$={first_line:r[r.length-(J||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(J||1)].first_column,last_column:r[r.length-1].last_column},de&&(K._$.range=[r[r.length-(J||1)].range[0],r[r.length-1].range[1]]),se=this.performAction.apply(K,[t,D,I,$.yy,q[1],v,r].concat(W)),typeof se<"u")return se;J&&(h=h.slice(0,-1*J*2),v=v.slice(0,-1*J),r=r.slice(0,-1*J)),h.push(this.productions_[q[1]][0]),v.push(K.$),r.push(K._$),Be=u[h[h.length-2]][h[h.length-1]],h.push(Be);break;case 3:return!0}}return!0},"parse")},b=function(){var w={EOF:1,parseError:c(function(l,h){if(this.yy.parser)this.yy.parser.parseError(l,h);else throw new Error(l)},"parseError"),setInput:c(function(o,l){return this.yy=l||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:c(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var l=o.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:c(function(o){var l=o.length,h=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),h.length-1&&(this.yylineno-=h.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:h?(h.length===d.length?this.yylloc.first_column:0)+d[d.length-h.length].length-h[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},"unput"),more:c(function(){return this._more=!0,this},"more"),reject:c(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:c(function(o){this.unput(this.match.slice(o))},"less"),pastInput:c(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:c(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:c(function(){var o=this.pastInput(),l=new Array(o.length+1).join("-");return o+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/gitGraphDiagram-7IBYFJ6S-C7t9VG9x.js b/lightrag/api/webui/assets/gitGraphDiagram-7IBYFJ6S-fIZu_S0j.js similarity index 98% rename from lightrag/api/webui/assets/gitGraphDiagram-7IBYFJ6S-C7t9VG9x.js rename to lightrag/api/webui/assets/gitGraphDiagram-7IBYFJ6S-fIZu_S0j.js index 42276eb5..952ff294 100644 --- a/lightrag/api/webui/assets/gitGraphDiagram-7IBYFJ6S-C7t9VG9x.js +++ b/lightrag/api/webui/assets/gitGraphDiagram-7IBYFJ6S-fIZu_S0j.js @@ -1,4 +1,4 @@ -import{p as Z}from"./chunk-4BMEZGHF-M5QBFtoC.js";import{I as F}from"./chunk-XZIHB7SX-BjHVUYBP.js";import{_ as h,t as U,q as ee,s as re,g as te,a as ae,b as ne,l as w,c as se,d as ce,u as oe,E as ie,z as de,k as B,F as he,G as le,H as $e,I as fe}from"./mermaid-vendor-SwnP6Sr8.js";import{p as ge}from"./radar-MK3ICKWK-CihkADAx.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-D81M49Y6.js";import"./_basePickBy--_O36kXE.js";import"./clone-BHIBWXu-.js";var p={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ye=$e.gitGraph,z=h(()=>he({...ye,...le().gitGraph}),"getConfig"),i=new F(()=>{const t=z(),e=t.mainBranchName,a=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:a}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});function S(){return fe({length:7})}h(S,"getID");function N(t,e){const a=Object.create(null);return t.reduce((s,r)=>{const n=e(r);return a[n]||(a[n]=!0,s.push(r)),s},[])}h(N,"uniqBy");var ue=h(function(t){i.records.direction=t},"setDirection"),pe=h(function(t){w.debug("options str",t),t=t==null?void 0:t.trim(),t=t||"{}";try{i.records.options=JSON.parse(t)}catch(e){w.error("error while parsing gitGraph options",e.message)}},"setOptions"),xe=h(function(){return i.records.options},"getOptions"),be=h(function(t){let e=t.msg,a=t.id;const s=t.type;let r=t.tags;w.info("commit",e,a,s,r),w.debug("Entering commit:",e,a,s,r);const n=z();a=B.sanitizeText(a,n),e=B.sanitizeText(e,n),r=r==null?void 0:r.map(c=>B.sanitizeText(c,n));const o={id:a||i.records.seq+"-"+S(),message:e,seq:i.records.seq++,type:s??p.NORMAL,tags:r??[],parents:i.records.head==null?[]:[i.records.head.id],branch:i.records.currBranch};i.records.head=o,w.info("main branch",n.mainBranchName),i.records.commits.set(o.id,o),i.records.branches.set(i.records.currBranch,o.id),w.debug("in pushCommit "+o.id)},"commit"),me=h(function(t){let e=t.name;const a=t.order;if(e=B.sanitizeText(e,z()),i.records.branches.has(e))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);i.records.branches.set(e,i.records.head!=null?i.records.head.id:null),i.records.branchConfig.set(e,{name:e,order:a}),_(e),w.debug("in createBranch")},"branch"),we=h(t=>{let e=t.branch,a=t.id;const s=t.type,r=t.tags,n=z();e=B.sanitizeText(e,n),a&&(a=B.sanitizeText(a,n));const o=i.records.branches.get(i.records.currBranch),c=i.records.branches.get(e),$=o?i.records.commits.get(o):void 0,l=c?i.records.commits.get(c):void 0;if($&&l&&$.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(i.records.currBranch===e){const d=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},d}if($===void 0||!$){const d=new Error(`Incorrect usage of "merge". Current branch (${i.records.currBranch})has no commits`);throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},d}if(!i.records.branches.has(e)){const d=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},d}if(l===void 0||!l){const d=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},d}if($===l){const d=new Error('Incorrect usage of "merge". Both branches have same head');throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},d}if(a&&i.records.commits.has(a)){const d=new Error('Incorrect usage of "merge". Commit with id:'+a+" already exists, use different custom Id");throw d.hash={text:`merge ${e} ${a} ${s} ${r==null?void 0:r.join(" ")}`,token:`merge ${e} ${a} ${s} ${r==null?void 0:r.join(" ")}`,expected:[`merge ${e} ${a}_UNIQUE ${s} ${r==null?void 0:r.join(" ")}`]},d}const f=c||"",g={id:a||`${i.records.seq}-${S()}`,message:`merged branch ${e} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,f],branch:i.records.currBranch,type:p.MERGE,customType:s,customId:!!a,tags:r??[]};i.records.head=g,i.records.commits.set(g.id,g),i.records.branches.set(i.records.currBranch,g.id),w.debug(i.records.branches),w.debug("in mergeBranch")},"merge"),Ce=h(function(t){let e=t.id,a=t.targetId,s=t.tags,r=t.parent;w.debug("Entering cherryPick:",e,a,s);const n=z();if(e=B.sanitizeText(e,n),a=B.sanitizeText(a,n),s=s==null?void 0:s.map($=>B.sanitizeText($,n)),r=B.sanitizeText(r,n),!e||!i.records.commits.has(e)){const $=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw $.hash={text:`cherryPick ${e} ${a}`,token:`cherryPick ${e} ${a}`,expected:["cherry-pick abc"]},$}const o=i.records.commits.get(e);if(o===void 0||!o)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(r&&!(Array.isArray(o.parents)&&o.parents.includes(r)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const c=o.branch;if(o.type===p.MERGE&&!r)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!a||!i.records.commits.has(a)){if(c===i.records.currBranch){const g=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw g.hash={text:`cherryPick ${e} ${a}`,token:`cherryPick ${e} ${a}`,expected:["cherry-pick abc"]},g}const $=i.records.branches.get(i.records.currBranch);if($===void 0||!$){const g=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw g.hash={text:`cherryPick ${e} ${a}`,token:`cherryPick ${e} ${a}`,expected:["cherry-pick abc"]},g}const l=i.records.commits.get($);if(l===void 0||!l){const g=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw g.hash={text:`cherryPick ${e} ${a}`,token:`cherryPick ${e} ${a}`,expected:["cherry-pick abc"]},g}const f={id:i.records.seq+"-"+S(),message:`cherry-picked ${o==null?void 0:o.message} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,o.id],branch:i.records.currBranch,type:p.CHERRY_PICK,tags:s?s.filter(Boolean):[`cherry-pick:${o.id}${o.type===p.MERGE?`|parent:${r}`:""}`]};i.records.head=f,i.records.commits.set(f.id,f),i.records.branches.set(i.records.currBranch,f.id),w.debug(i.records.branches),w.debug("in cherryPick")}},"cherryPick"),_=h(function(t){if(t=B.sanitizeText(t,z()),i.records.branches.has(t)){i.records.currBranch=t;const e=i.records.branches.get(i.records.currBranch);e===void 0||!e?i.records.head=null:i.records.head=i.records.commits.get(e)??null}else{const e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");function A(t,e,a){const s=t.indexOf(e);s===-1?t.push(a):t.splice(s,1,a)}h(A,"upsert");function Y(t){const e=t.reduce((r,n)=>r.seq>n.seq?r:n,t[0]);let a="";t.forEach(function(r){r===e?a+=" *":a+=" |"});const s=[a,e.id,e.seq];for(const r in i.records.branches)i.records.branches.get(r)===e.id&&s.push(r);if(w.debug(s.join(" ")),e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){const r=i.records.commits.get(e.parents[0]);A(t,e,r),e.parents[1]&&t.push(i.records.commits.get(e.parents[1]))}else{if(e.parents.length==0)return;if(e.parents[0]){const r=i.records.commits.get(e.parents[0]);A(t,e,r)}}t=N(t,r=>r.id),Y(t)}h(Y,"prettyPrintCommitHistory");var ve=h(function(){w.debug(i.records.commits);const t=V()[0];Y([t])},"prettyPrint"),Ee=h(function(){i.reset(),de()},"clear"),Be=h(function(){return[...i.records.branchConfig.values()].map((e,a)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${a}`)}).sort((e,a)=>(e.order??0)-(a.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),ke=h(function(){return i.records.branches},"getBranches"),Le=h(function(){return i.records.commits},"getCommits"),V=h(function(){const t=[...i.records.commits.values()];return t.forEach(function(e){w.debug(e.id)}),t.sort((e,a)=>e.seq-a.seq),t},"getCommitsArray"),Te=h(function(){return i.records.currBranch},"getCurrentBranch"),Me=h(function(){return i.records.direction},"getDirection"),Re=h(function(){return i.records.head},"getHead"),X={commitType:p,getConfig:z,setDirection:ue,setOptions:pe,getOptions:xe,commit:be,branch:me,merge:we,cherryPick:Ce,checkout:_,prettyPrint:ve,clear:Ee,getBranchesAsObjArray:Be,getBranches:ke,getCommits:Le,getCommitsArray:V,getCurrentBranch:Te,getDirection:Me,getHead:Re,setAccTitle:ne,getAccTitle:ae,getAccDescription:te,setAccDescription:re,setDiagramTitle:ee,getDiagramTitle:U},Ie=h((t,e)=>{Z(t,e),t.dir&&e.setDirection(t.dir);for(const a of t.statements)qe(a,e)},"populate"),qe=h((t,e)=>{const s={Commit:h(r=>e.commit(Oe(r)),"Commit"),Branch:h(r=>e.branch(ze(r)),"Branch"),Merge:h(r=>e.merge(Ge(r)),"Merge"),Checkout:h(r=>e.checkout(He(r)),"Checkout"),CherryPicking:h(r=>e.cherryPick(Pe(r)),"CherryPicking")}[t.$type];s?s(t):w.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),Oe=h(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?p[t.type]:p.NORMAL,tags:t.tags??void 0}),"parseCommit"),ze=h(t=>({name:t.name,order:t.order??0}),"parseBranch"),Ge=h(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?p[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),He=h(t=>t.branch,"parseCheckout"),Pe=h(t=>{var a;return{id:t.id,targetId:"",tags:((a=t.tags)==null?void 0:a.length)===0?void 0:t.tags,parent:t.parent}},"parseCherryPicking"),We={parse:h(async t=>{const e=await ge("gitGraph",t);w.debug(e),Ie(e,X)},"parse")},j=se(),b=j==null?void 0:j.gitGraph,R=10,I=40,k=4,L=2,O=8,v=new Map,E=new Map,P=30,G=new Map,W=[],M=0,u="LR",Se=h(()=>{v.clear(),E.clear(),G.clear(),M=0,W=[],u="LR"},"clear"),J=h(t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|/gi):t).forEach(s=>{const r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","0"),r.setAttribute("class","row"),r.textContent=s.trim(),e.appendChild(r)}),e},"drawText"),Q=h(t=>{let e,a,s;return u==="BT"?(a=h((r,n)=>r<=n,"comparisonFunc"),s=1/0):(a=h((r,n)=>r>=n,"comparisonFunc"),s=0),t.forEach(r=>{var o,c;const n=u==="TB"||u=="BT"?(o=E.get(r))==null?void 0:o.y:(c=E.get(r))==null?void 0:c.x;n!==void 0&&a(n,s)&&(e=r,s=n)}),e},"findClosestParent"),je=h(t=>{let e="",a=1/0;return t.forEach(s=>{const r=E.get(s).y;r<=a&&(e=s,a=r)}),e||void 0},"findClosestParentBT"),Ae=h((t,e,a)=>{let s=a,r=a;const n=[];t.forEach(o=>{const c=e.get(o);if(!c)throw new Error(`Commit not found for key ${o}`);c.parents.length?(s=De(c),r=Math.max(s,r)):n.push(c),Ke(c,s)}),s=r,n.forEach(o=>{Ne(o,s,a)}),t.forEach(o=>{const c=e.get(o);if(c!=null&&c.parents.length){const $=je(c.parents);s=E.get($).y-I,s<=r&&(r=s);const l=v.get(c.branch).pos,f=s-R;E.set(c.id,{x:l,y:f})}})},"setParallelBTPos"),Ye=h(t=>{var s;const e=Q(t.parents.filter(r=>r!==null));if(!e)throw new Error(`Closest parent not found for commit ${t.id}`);const a=(s=E.get(e))==null?void 0:s.y;if(a===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return a},"findClosestParentPos"),De=h(t=>Ye(t)+I,"calculateCommitPosition"),Ke=h((t,e)=>{const a=v.get(t.branch);if(!a)throw new Error(`Branch not found for commit ${t.id}`);const s=a.pos,r=e+R;return E.set(t.id,{x:s,y:r}),{x:s,y:r}},"setCommitPosition"),Ne=h((t,e,a)=>{const s=v.get(t.branch);if(!s)throw new Error(`Branch not found for commit ${t.id}`);const r=e+a,n=s.pos;E.set(t.id,{x:n,y:r})},"setRootPosition"),_e=h((t,e,a,s,r,n)=>{if(n===p.HIGHLIGHT)t.append("rect").attr("x",a.x-10).attr("y",a.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${r%O} ${s}-outer`),t.append("rect").attr("x",a.x-6).attr("y",a.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${r%O} ${s}-inner`);else if(n===p.CHERRY_PICK)t.append("circle").attr("cx",a.x).attr("cy",a.y).attr("r",10).attr("class",`commit ${e.id} ${s}`),t.append("circle").attr("cx",a.x-3).attr("cy",a.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${s}`),t.append("circle").attr("cx",a.x+3).attr("cy",a.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${s}`),t.append("line").attr("x1",a.x+3).attr("y1",a.y+1).attr("x2",a.x).attr("y2",a.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${s}`),t.append("line").attr("x1",a.x-3).attr("y1",a.y+1).attr("x2",a.x).attr("y2",a.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${s}`);else{const o=t.append("circle");if(o.attr("cx",a.x),o.attr("cy",a.y),o.attr("r",e.type===p.MERGE?9:10),o.attr("class",`commit ${e.id} commit${r%O}`),n===p.MERGE){const c=t.append("circle");c.attr("cx",a.x),c.attr("cy",a.y),c.attr("r",6),c.attr("class",`commit ${s} ${e.id} commit${r%O}`)}n===p.REVERSE&&t.append("path").attr("d",`M ${a.x-5},${a.y-5}L${a.x+5},${a.y+5}M${a.x-5},${a.y+5}L${a.x+5},${a.y-5}`).attr("class",`commit ${s} ${e.id} commit${r%O}`)}},"drawCommitBullet"),Ve=h((t,e,a,s)=>{var r;if(e.type!==p.CHERRY_PICK&&(e.customId&&e.type===p.MERGE||e.type!==p.MERGE)&&(b!=null&&b.showCommitLabel)){const n=t.append("g"),o=n.insert("rect").attr("class","commit-label-bkg"),c=n.append("text").attr("x",s).attr("y",a.y+25).attr("class","commit-label").text(e.id),$=(r=c.node())==null?void 0:r.getBBox();if($&&(o.attr("x",a.posWithOffset-$.width/2-L).attr("y",a.y+13.5).attr("width",$.width+2*L).attr("height",$.height+2*L),u==="TB"||u==="BT"?(o.attr("x",a.x-($.width+4*k+5)).attr("y",a.y-12),c.attr("x",a.x-($.width+4*k)).attr("y",a.y+$.height-12)):c.attr("x",a.posWithOffset-$.width/2),b.rotateCommitLabel))if(u==="TB"||u==="BT")c.attr("transform","rotate(-45, "+a.x+", "+a.y+")"),o.attr("transform","rotate(-45, "+a.x+", "+a.y+")");else{const l=-7.5-($.width+10)/25*9.5,f=10+$.width/25*8.5;n.attr("transform","translate("+l+", "+f+") rotate(-45, "+s+", "+a.y+")")}}},"drawCommitLabel"),Xe=h((t,e,a,s)=>{var r;if(e.tags.length>0){let n=0,o=0,c=0;const $=[];for(const l of e.tags.reverse()){const f=t.insert("polygon"),g=t.append("circle"),d=t.append("text").attr("y",a.y-16-n).attr("class","tag-label").text(l),y=(r=d.node())==null?void 0:r.getBBox();if(!y)throw new Error("Tag bbox not found");o=Math.max(o,y.width),c=Math.max(c,y.height),d.attr("x",a.posWithOffset-y.width/2),$.push({tag:d,hole:g,rect:f,yOffset:n}),n+=20}for(const{tag:l,hole:f,rect:g,yOffset:d}of $){const y=c/2,x=a.y-19.2-d;if(g.attr("class","tag-label-bkg").attr("points",` +import{p as Z}from"./chunk-4BMEZGHF-Ct0jZH9M.js";import{I as F}from"./chunk-XZIHB7SX-CqkuoyXD.js";import{_ as h,t as U,q as ee,s as re,g as te,a as ae,b as ne,l as w,c as se,d as ce,u as oe,E as ie,z as de,k as B,F as he,G as le,H as $e,I as fe}from"./mermaid-vendor-d7rbry5E.js";import{p as ge}from"./radar-MK3ICKWK-zkXzSXFe.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-OtJ11HbN.js";import"./_basePickBy-Lz6agtdo.js";import"./clone-vL6XIcCC.js";var p={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ye=$e.gitGraph,z=h(()=>he({...ye,...le().gitGraph}),"getConfig"),i=new F(()=>{const t=z(),e=t.mainBranchName,a=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:a}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});function S(){return fe({length:7})}h(S,"getID");function N(t,e){const a=Object.create(null);return t.reduce((s,r)=>{const n=e(r);return a[n]||(a[n]=!0,s.push(r)),s},[])}h(N,"uniqBy");var ue=h(function(t){i.records.direction=t},"setDirection"),pe=h(function(t){w.debug("options str",t),t=t==null?void 0:t.trim(),t=t||"{}";try{i.records.options=JSON.parse(t)}catch(e){w.error("error while parsing gitGraph options",e.message)}},"setOptions"),xe=h(function(){return i.records.options},"getOptions"),be=h(function(t){let e=t.msg,a=t.id;const s=t.type;let r=t.tags;w.info("commit",e,a,s,r),w.debug("Entering commit:",e,a,s,r);const n=z();a=B.sanitizeText(a,n),e=B.sanitizeText(e,n),r=r==null?void 0:r.map(c=>B.sanitizeText(c,n));const o={id:a||i.records.seq+"-"+S(),message:e,seq:i.records.seq++,type:s??p.NORMAL,tags:r??[],parents:i.records.head==null?[]:[i.records.head.id],branch:i.records.currBranch};i.records.head=o,w.info("main branch",n.mainBranchName),i.records.commits.set(o.id,o),i.records.branches.set(i.records.currBranch,o.id),w.debug("in pushCommit "+o.id)},"commit"),me=h(function(t){let e=t.name;const a=t.order;if(e=B.sanitizeText(e,z()),i.records.branches.has(e))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);i.records.branches.set(e,i.records.head!=null?i.records.head.id:null),i.records.branchConfig.set(e,{name:e,order:a}),_(e),w.debug("in createBranch")},"branch"),we=h(t=>{let e=t.branch,a=t.id;const s=t.type,r=t.tags,n=z();e=B.sanitizeText(e,n),a&&(a=B.sanitizeText(a,n));const o=i.records.branches.get(i.records.currBranch),c=i.records.branches.get(e),$=o?i.records.commits.get(o):void 0,l=c?i.records.commits.get(c):void 0;if($&&l&&$.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(i.records.currBranch===e){const d=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},d}if($===void 0||!$){const d=new Error(`Incorrect usage of "merge". Current branch (${i.records.currBranch})has no commits`);throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},d}if(!i.records.branches.has(e)){const d=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},d}if(l===void 0||!l){const d=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},d}if($===l){const d=new Error('Incorrect usage of "merge". Both branches have same head');throw d.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},d}if(a&&i.records.commits.has(a)){const d=new Error('Incorrect usage of "merge". Commit with id:'+a+" already exists, use different custom Id");throw d.hash={text:`merge ${e} ${a} ${s} ${r==null?void 0:r.join(" ")}`,token:`merge ${e} ${a} ${s} ${r==null?void 0:r.join(" ")}`,expected:[`merge ${e} ${a}_UNIQUE ${s} ${r==null?void 0:r.join(" ")}`]},d}const f=c||"",g={id:a||`${i.records.seq}-${S()}`,message:`merged branch ${e} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,f],branch:i.records.currBranch,type:p.MERGE,customType:s,customId:!!a,tags:r??[]};i.records.head=g,i.records.commits.set(g.id,g),i.records.branches.set(i.records.currBranch,g.id),w.debug(i.records.branches),w.debug("in mergeBranch")},"merge"),Ce=h(function(t){let e=t.id,a=t.targetId,s=t.tags,r=t.parent;w.debug("Entering cherryPick:",e,a,s);const n=z();if(e=B.sanitizeText(e,n),a=B.sanitizeText(a,n),s=s==null?void 0:s.map($=>B.sanitizeText($,n)),r=B.sanitizeText(r,n),!e||!i.records.commits.has(e)){const $=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw $.hash={text:`cherryPick ${e} ${a}`,token:`cherryPick ${e} ${a}`,expected:["cherry-pick abc"]},$}const o=i.records.commits.get(e);if(o===void 0||!o)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(r&&!(Array.isArray(o.parents)&&o.parents.includes(r)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const c=o.branch;if(o.type===p.MERGE&&!r)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!a||!i.records.commits.has(a)){if(c===i.records.currBranch){const g=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw g.hash={text:`cherryPick ${e} ${a}`,token:`cherryPick ${e} ${a}`,expected:["cherry-pick abc"]},g}const $=i.records.branches.get(i.records.currBranch);if($===void 0||!$){const g=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw g.hash={text:`cherryPick ${e} ${a}`,token:`cherryPick ${e} ${a}`,expected:["cherry-pick abc"]},g}const l=i.records.commits.get($);if(l===void 0||!l){const g=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw g.hash={text:`cherryPick ${e} ${a}`,token:`cherryPick ${e} ${a}`,expected:["cherry-pick abc"]},g}const f={id:i.records.seq+"-"+S(),message:`cherry-picked ${o==null?void 0:o.message} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,o.id],branch:i.records.currBranch,type:p.CHERRY_PICK,tags:s?s.filter(Boolean):[`cherry-pick:${o.id}${o.type===p.MERGE?`|parent:${r}`:""}`]};i.records.head=f,i.records.commits.set(f.id,f),i.records.branches.set(i.records.currBranch,f.id),w.debug(i.records.branches),w.debug("in cherryPick")}},"cherryPick"),_=h(function(t){if(t=B.sanitizeText(t,z()),i.records.branches.has(t)){i.records.currBranch=t;const e=i.records.branches.get(i.records.currBranch);e===void 0||!e?i.records.head=null:i.records.head=i.records.commits.get(e)??null}else{const e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");function A(t,e,a){const s=t.indexOf(e);s===-1?t.push(a):t.splice(s,1,a)}h(A,"upsert");function Y(t){const e=t.reduce((r,n)=>r.seq>n.seq?r:n,t[0]);let a="";t.forEach(function(r){r===e?a+=" *":a+=" |"});const s=[a,e.id,e.seq];for(const r in i.records.branches)i.records.branches.get(r)===e.id&&s.push(r);if(w.debug(s.join(" ")),e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){const r=i.records.commits.get(e.parents[0]);A(t,e,r),e.parents[1]&&t.push(i.records.commits.get(e.parents[1]))}else{if(e.parents.length==0)return;if(e.parents[0]){const r=i.records.commits.get(e.parents[0]);A(t,e,r)}}t=N(t,r=>r.id),Y(t)}h(Y,"prettyPrintCommitHistory");var ve=h(function(){w.debug(i.records.commits);const t=V()[0];Y([t])},"prettyPrint"),Ee=h(function(){i.reset(),de()},"clear"),Be=h(function(){return[...i.records.branchConfig.values()].map((e,a)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${a}`)}).sort((e,a)=>(e.order??0)-(a.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),ke=h(function(){return i.records.branches},"getBranches"),Le=h(function(){return i.records.commits},"getCommits"),V=h(function(){const t=[...i.records.commits.values()];return t.forEach(function(e){w.debug(e.id)}),t.sort((e,a)=>e.seq-a.seq),t},"getCommitsArray"),Te=h(function(){return i.records.currBranch},"getCurrentBranch"),Me=h(function(){return i.records.direction},"getDirection"),Re=h(function(){return i.records.head},"getHead"),X={commitType:p,getConfig:z,setDirection:ue,setOptions:pe,getOptions:xe,commit:be,branch:me,merge:we,cherryPick:Ce,checkout:_,prettyPrint:ve,clear:Ee,getBranchesAsObjArray:Be,getBranches:ke,getCommits:Le,getCommitsArray:V,getCurrentBranch:Te,getDirection:Me,getHead:Re,setAccTitle:ne,getAccTitle:ae,getAccDescription:te,setAccDescription:re,setDiagramTitle:ee,getDiagramTitle:U},Ie=h((t,e)=>{Z(t,e),t.dir&&e.setDirection(t.dir);for(const a of t.statements)qe(a,e)},"populate"),qe=h((t,e)=>{const s={Commit:h(r=>e.commit(Oe(r)),"Commit"),Branch:h(r=>e.branch(ze(r)),"Branch"),Merge:h(r=>e.merge(Ge(r)),"Merge"),Checkout:h(r=>e.checkout(He(r)),"Checkout"),CherryPicking:h(r=>e.cherryPick(Pe(r)),"CherryPicking")}[t.$type];s?s(t):w.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),Oe=h(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?p[t.type]:p.NORMAL,tags:t.tags??void 0}),"parseCommit"),ze=h(t=>({name:t.name,order:t.order??0}),"parseBranch"),Ge=h(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?p[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),He=h(t=>t.branch,"parseCheckout"),Pe=h(t=>{var a;return{id:t.id,targetId:"",tags:((a=t.tags)==null?void 0:a.length)===0?void 0:t.tags,parent:t.parent}},"parseCherryPicking"),We={parse:h(async t=>{const e=await ge("gitGraph",t);w.debug(e),Ie(e,X)},"parse")},j=se(),b=j==null?void 0:j.gitGraph,R=10,I=40,k=4,L=2,O=8,v=new Map,E=new Map,P=30,G=new Map,W=[],M=0,u="LR",Se=h(()=>{v.clear(),E.clear(),G.clear(),M=0,W=[],u="LR"},"clear"),J=h(t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|/gi):t).forEach(s=>{const r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","0"),r.setAttribute("class","row"),r.textContent=s.trim(),e.appendChild(r)}),e},"drawText"),Q=h(t=>{let e,a,s;return u==="BT"?(a=h((r,n)=>r<=n,"comparisonFunc"),s=1/0):(a=h((r,n)=>r>=n,"comparisonFunc"),s=0),t.forEach(r=>{var o,c;const n=u==="TB"||u=="BT"?(o=E.get(r))==null?void 0:o.y:(c=E.get(r))==null?void 0:c.x;n!==void 0&&a(n,s)&&(e=r,s=n)}),e},"findClosestParent"),je=h(t=>{let e="",a=1/0;return t.forEach(s=>{const r=E.get(s).y;r<=a&&(e=s,a=r)}),e||void 0},"findClosestParentBT"),Ae=h((t,e,a)=>{let s=a,r=a;const n=[];t.forEach(o=>{const c=e.get(o);if(!c)throw new Error(`Commit not found for key ${o}`);c.parents.length?(s=De(c),r=Math.max(s,r)):n.push(c),Ke(c,s)}),s=r,n.forEach(o=>{Ne(o,s,a)}),t.forEach(o=>{const c=e.get(o);if(c!=null&&c.parents.length){const $=je(c.parents);s=E.get($).y-I,s<=r&&(r=s);const l=v.get(c.branch).pos,f=s-R;E.set(c.id,{x:l,y:f})}})},"setParallelBTPos"),Ye=h(t=>{var s;const e=Q(t.parents.filter(r=>r!==null));if(!e)throw new Error(`Closest parent not found for commit ${t.id}`);const a=(s=E.get(e))==null?void 0:s.y;if(a===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return a},"findClosestParentPos"),De=h(t=>Ye(t)+I,"calculateCommitPosition"),Ke=h((t,e)=>{const a=v.get(t.branch);if(!a)throw new Error(`Branch not found for commit ${t.id}`);const s=a.pos,r=e+R;return E.set(t.id,{x:s,y:r}),{x:s,y:r}},"setCommitPosition"),Ne=h((t,e,a)=>{const s=v.get(t.branch);if(!s)throw new Error(`Branch not found for commit ${t.id}`);const r=e+a,n=s.pos;E.set(t.id,{x:n,y:r})},"setRootPosition"),_e=h((t,e,a,s,r,n)=>{if(n===p.HIGHLIGHT)t.append("rect").attr("x",a.x-10).attr("y",a.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${r%O} ${s}-outer`),t.append("rect").attr("x",a.x-6).attr("y",a.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${r%O} ${s}-inner`);else if(n===p.CHERRY_PICK)t.append("circle").attr("cx",a.x).attr("cy",a.y).attr("r",10).attr("class",`commit ${e.id} ${s}`),t.append("circle").attr("cx",a.x-3).attr("cy",a.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${s}`),t.append("circle").attr("cx",a.x+3).attr("cy",a.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${s}`),t.append("line").attr("x1",a.x+3).attr("y1",a.y+1).attr("x2",a.x).attr("y2",a.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${s}`),t.append("line").attr("x1",a.x-3).attr("y1",a.y+1).attr("x2",a.x).attr("y2",a.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${s}`);else{const o=t.append("circle");if(o.attr("cx",a.x),o.attr("cy",a.y),o.attr("r",e.type===p.MERGE?9:10),o.attr("class",`commit ${e.id} commit${r%O}`),n===p.MERGE){const c=t.append("circle");c.attr("cx",a.x),c.attr("cy",a.y),c.attr("r",6),c.attr("class",`commit ${s} ${e.id} commit${r%O}`)}n===p.REVERSE&&t.append("path").attr("d",`M ${a.x-5},${a.y-5}L${a.x+5},${a.y+5}M${a.x-5},${a.y+5}L${a.x+5},${a.y-5}`).attr("class",`commit ${s} ${e.id} commit${r%O}`)}},"drawCommitBullet"),Ve=h((t,e,a,s)=>{var r;if(e.type!==p.CHERRY_PICK&&(e.customId&&e.type===p.MERGE||e.type!==p.MERGE)&&(b!=null&&b.showCommitLabel)){const n=t.append("g"),o=n.insert("rect").attr("class","commit-label-bkg"),c=n.append("text").attr("x",s).attr("y",a.y+25).attr("class","commit-label").text(e.id),$=(r=c.node())==null?void 0:r.getBBox();if($&&(o.attr("x",a.posWithOffset-$.width/2-L).attr("y",a.y+13.5).attr("width",$.width+2*L).attr("height",$.height+2*L),u==="TB"||u==="BT"?(o.attr("x",a.x-($.width+4*k+5)).attr("y",a.y-12),c.attr("x",a.x-($.width+4*k)).attr("y",a.y+$.height-12)):c.attr("x",a.posWithOffset-$.width/2),b.rotateCommitLabel))if(u==="TB"||u==="BT")c.attr("transform","rotate(-45, "+a.x+", "+a.y+")"),o.attr("transform","rotate(-45, "+a.x+", "+a.y+")");else{const l=-7.5-($.width+10)/25*9.5,f=10+$.width/25*8.5;n.attr("transform","translate("+l+", "+f+") rotate(-45, "+s+", "+a.y+")")}}},"drawCommitLabel"),Xe=h((t,e,a,s)=>{var r;if(e.tags.length>0){let n=0,o=0,c=0;const $=[];for(const l of e.tags.reverse()){const f=t.insert("polygon"),g=t.append("circle"),d=t.append("text").attr("y",a.y-16-n).attr("class","tag-label").text(l),y=(r=d.node())==null?void 0:r.getBBox();if(!y)throw new Error("Tag bbox not found");o=Math.max(o,y.width),c=Math.max(c,y.height),d.attr("x",a.posWithOffset-y.width/2),$.push({tag:d,hole:g,rect:f,yOffset:n}),n+=20}for(const{tag:l,hole:f,rect:g,yOffset:d}of $){const y=c/2,x=a.y-19.2-d;if(g.attr("class","tag-label-bkg").attr("points",` ${s-o/2-k/2},${x+L} ${s-o/2-k/2},${x-L} ${a.posWithOffset-o/2-k},${x-y-L} diff --git a/lightrag/api/webui/assets/graph-CmqUPRtj.js b/lightrag/api/webui/assets/graph-DexVwBa8.js similarity index 97% rename from lightrag/api/webui/assets/graph-CmqUPRtj.js rename to lightrag/api/webui/assets/graph-DexVwBa8.js index 9c6309d8..16514922 100644 --- a/lightrag/api/webui/assets/graph-CmqUPRtj.js +++ b/lightrag/api/webui/assets/graph-DexVwBa8.js @@ -1 +1 @@ -import{aq as N,ar as j,as as f,at as b,au as E}from"./mermaid-vendor-SwnP6Sr8.js";import{a as v,c as P,k as _,f as g,d,i as l,v as p,r as D}from"./_baseUniq-D81M49Y6.js";var w=N(function(o){return v(P(o,1,j,!0))}),F="\0",a="\0",O="";class L{constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=f(void 0),this._defaultEdgeLabelFn=f(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[a]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return b(e)||(e=f(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return _(this._nodes)}sources(){var e=this;return g(this.nodes(),function(t){return E(e._in[t])})}sinks(){var e=this;return g(this.nodes(),function(t){return E(e._out[t])})}setNodes(e,t){var s=arguments,i=this;return d(e,function(r){s.length>1?i.setNode(r,t):i.setNode(r)}),this}setNode(e,t){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=a,this._children[e]={},this._children[a][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var t=s=>this.removeEdge(this._edgeObjs[s]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],d(this.children(e),s=>{this.setParent(s)}),delete this._children[e]),d(_(this._in[e]),t),delete this._in[e],delete this._preds[e],d(_(this._out[e]),t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(l(t))t=a;else{t+="";for(var s=t;!l(s);s=this.parent(s))if(s===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==a)return t}}children(e){if(l(e)&&(e=a),this._isCompound){var t=this._children[e];if(t)return _(t)}else{if(e===a)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var t=this._preds[e];if(t)return _(t)}successors(e){var t=this._sucs[e];if(t)return _(t)}neighbors(e){var t=this.predecessors(e);if(t)return w(t,this.successors(e))}isLeaf(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0}filterNodes(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var s=this;d(this._nodes,function(n,h){e(h)&&t.setNode(h,n)}),d(this._edgeObjs,function(n){t.hasNode(n.v)&&t.hasNode(n.w)&&t.setEdge(n,s.edge(n))});var i={};function r(n){var h=s.parent(n);return h===void 0||t.hasNode(h)?(i[n]=h,h):h in i?i[h]:r(h)}return this._isCompound&&d(t.nodes(),function(n){t.setParent(n,r(n))}),t}setDefaultEdgeLabel(e){return b(e)||(e=f(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return p(this._edgeObjs)}setPath(e,t){var s=this,i=arguments;return D(e,function(r,n){return i.length>1?s.setEdge(r,n,t):s.setEdge(r,n),n}),this}setEdge(){var e,t,s,i,r=!1,n=arguments[0];typeof n=="object"&&n!==null&&"v"in n?(e=n.v,t=n.w,s=n.name,arguments.length===2&&(i=arguments[1],r=!0)):(e=n,t=arguments[1],s=arguments[3],arguments.length>2&&(i=arguments[2],r=!0)),e=""+e,t=""+t,l(s)||(s=""+s);var h=c(this._isDirected,e,t,s);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,h))return r&&(this._edgeLabels[h]=i),this;if(!l(s)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[h]=r?i:this._defaultEdgeLabelFn(e,t,s);var u=M(this._isDirected,e,t,s);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[h]=u,y(this._preds[t],e),y(this._sucs[e],t),this._in[t][h]=u,this._out[e][h]=u,this._edgeCount++,this}edge(e,t,s){var i=arguments.length===1?m(this._isDirected,arguments[0]):c(this._isDirected,e,t,s);return this._edgeLabels[i]}hasEdge(e,t,s){var i=arguments.length===1?m(this._isDirected,arguments[0]):c(this._isDirected,e,t,s);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,t,s){var i=arguments.length===1?m(this._isDirected,arguments[0]):c(this._isDirected,e,t,s),r=this._edgeObjs[i];return r&&(e=r.v,t=r.w,delete this._edgeLabels[i],delete this._edgeObjs[i],C(this._preds[t],e),C(this._sucs[e],t),delete this._in[t][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,t){var s=this._in[e];if(s){var i=p(s);return t?g(i,function(r){return r.v===t}):i}}outEdges(e,t){var s=this._out[e];if(s){var i=p(s);return t?g(i,function(r){return r.w===t}):i}}nodeEdges(e,t){var s=this.inEdges(e,t);if(s)return s.concat(this.outEdges(e,t))}}L.prototype._nodeCount=0;L.prototype._edgeCount=0;function y(o,e){o[e]?o[e]++:o[e]=1}function C(o,e){--o[e]||delete o[e]}function c(o,e,t,s){var i=""+e,r=""+t;if(!o&&i>r){var n=i;i=r,r=n}return i+O+r+O+(l(s)?F:s)}function M(o,e,t,s){var i=""+e,r=""+t;if(!o&&i>r){var n=i;i=r,r=n}var h={v:i,w:r};return s&&(h.name=s),h}function m(o,e){return c(o,e.v,e.w,e.name)}export{L as G}; +import{aq as N,ar as j,as as f,at as b,au as E}from"./mermaid-vendor-d7rbry5E.js";import{a as v,c as P,k as _,f as g,d,i as l,v as p,r as D}from"./_baseUniq-OtJ11HbN.js";var w=N(function(o){return v(P(o,1,j,!0))}),F="\0",a="\0",O="";class L{constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=f(void 0),this._defaultEdgeLabelFn=f(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[a]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return b(e)||(e=f(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return _(this._nodes)}sources(){var e=this;return g(this.nodes(),function(t){return E(e._in[t])})}sinks(){var e=this;return g(this.nodes(),function(t){return E(e._out[t])})}setNodes(e,t){var s=arguments,i=this;return d(e,function(r){s.length>1?i.setNode(r,t):i.setNode(r)}),this}setNode(e,t){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=a,this._children[e]={},this._children[a][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var t=s=>this.removeEdge(this._edgeObjs[s]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],d(this.children(e),s=>{this.setParent(s)}),delete this._children[e]),d(_(this._in[e]),t),delete this._in[e],delete this._preds[e],d(_(this._out[e]),t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(l(t))t=a;else{t+="";for(var s=t;!l(s);s=this.parent(s))if(s===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==a)return t}}children(e){if(l(e)&&(e=a),this._isCompound){var t=this._children[e];if(t)return _(t)}else{if(e===a)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var t=this._preds[e];if(t)return _(t)}successors(e){var t=this._sucs[e];if(t)return _(t)}neighbors(e){var t=this.predecessors(e);if(t)return w(t,this.successors(e))}isLeaf(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0}filterNodes(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var s=this;d(this._nodes,function(n,h){e(h)&&t.setNode(h,n)}),d(this._edgeObjs,function(n){t.hasNode(n.v)&&t.hasNode(n.w)&&t.setEdge(n,s.edge(n))});var i={};function r(n){var h=s.parent(n);return h===void 0||t.hasNode(h)?(i[n]=h,h):h in i?i[h]:r(h)}return this._isCompound&&d(t.nodes(),function(n){t.setParent(n,r(n))}),t}setDefaultEdgeLabel(e){return b(e)||(e=f(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return p(this._edgeObjs)}setPath(e,t){var s=this,i=arguments;return D(e,function(r,n){return i.length>1?s.setEdge(r,n,t):s.setEdge(r,n),n}),this}setEdge(){var e,t,s,i,r=!1,n=arguments[0];typeof n=="object"&&n!==null&&"v"in n?(e=n.v,t=n.w,s=n.name,arguments.length===2&&(i=arguments[1],r=!0)):(e=n,t=arguments[1],s=arguments[3],arguments.length>2&&(i=arguments[2],r=!0)),e=""+e,t=""+t,l(s)||(s=""+s);var h=c(this._isDirected,e,t,s);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,h))return r&&(this._edgeLabels[h]=i),this;if(!l(s)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[h]=r?i:this._defaultEdgeLabelFn(e,t,s);var u=M(this._isDirected,e,t,s);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[h]=u,y(this._preds[t],e),y(this._sucs[e],t),this._in[t][h]=u,this._out[e][h]=u,this._edgeCount++,this}edge(e,t,s){var i=arguments.length===1?m(this._isDirected,arguments[0]):c(this._isDirected,e,t,s);return this._edgeLabels[i]}hasEdge(e,t,s){var i=arguments.length===1?m(this._isDirected,arguments[0]):c(this._isDirected,e,t,s);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,t,s){var i=arguments.length===1?m(this._isDirected,arguments[0]):c(this._isDirected,e,t,s),r=this._edgeObjs[i];return r&&(e=r.v,t=r.w,delete this._edgeLabels[i],delete this._edgeObjs[i],C(this._preds[t],e),C(this._sucs[e],t),delete this._in[t][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,t){var s=this._in[e];if(s){var i=p(s);return t?g(i,function(r){return r.v===t}):i}}outEdges(e,t){var s=this._out[e];if(s){var i=p(s);return t?g(i,function(r){return r.w===t}):i}}nodeEdges(e,t){var s=this.inEdges(e,t);if(s)return s.concat(this.outEdges(e,t))}}L.prototype._nodeCount=0;L.prototype._edgeCount=0;function y(o,e){o[e]?o[e]++:o[e]=1}function C(o,e){--o[e]||delete o[e]}function c(o,e,t,s){var i=""+e,r=""+t;if(!o&&i>r){var n=i;i=r,r=n}return i+O+r+O+(l(s)?F:s)}function M(o,e,t,s){var i=""+e,r=""+t;if(!o&&i>r){var n=i;i=r,r=n}var h={v:i,w:r};return s&&(h.name=s),h}function m(o,e){return c(o,e.v,e.w,e.name)}export{L as G}; diff --git a/lightrag/api/webui/assets/index-m6I92ZpT.js b/lightrag/api/webui/assets/index-BLBnmXUl.js similarity index 93% rename from lightrag/api/webui/assets/index-m6I92ZpT.js rename to lightrag/api/webui/assets/index-BLBnmXUl.js index 15bc8044..6ff9c4f3 100644 --- a/lightrag/api/webui/assets/index-m6I92ZpT.js +++ b/lightrag/api/webui/assets/index-BLBnmXUl.js @@ -1,4 +1,4 @@ -import{j as o,Y as td,O as fg,k as dg,u as ad,Z as mg,c as hg,l as gg,g as pg,S as yg,T as vg,n as bg,m as nd,o as Sg,p as Tg,$ as ud,a0 as id,a1 as cd,a2 as xg}from"./ui-vendor-CeCm8EER.js";import{d as Ag,h as Dg,r as E,u as sd,H as Ng,i as Eg,j as kf}from"./react-vendor-DEwriMA6.js";import{w as Ve,c as Qe,a5 as od,u as ql,v as Gt,a6 as rd,a7 as fd,I as us,B as Cn,D as Mg,i as zg,j as Cg,k as Og,l as jg,a8 as Rg,a9 as Ug,aa as _g,ab as Hg,ac as Ll,ad as dd,ae as ss,af as is,P as Lg,Q as qg,V as Bg,W as Gg,ag as Yg,ah as Xg,ai as md,aj as Vg,ak as Qg,al as hd,am as wg,an as gd,C as Zg,z as Kg,G as kg,d as En,ao as Jg,ap as Fg,aq as $g}from"./feature-graph-D6-O-kXP.js";import{S as Jf,a as Ff,b as $f,c as Wf,d as ot,R as Wg}from"./feature-retrieval-wTZcnY1B.js";import{D as Pg}from"./feature-documents-BKQZIcI6.js";import{i as cs}from"./utils-vendor-BysuhMZA.js";import"./graph-vendor-B-X5JegA.js";import"./mermaid-vendor-SwnP6Sr8.js";import"./markdown-vendor-BBaHfVvE.js";(function(){const b=document.createElement("link").relList;if(b&&b.supports&&b.supports("modulepreload"))return;for(const N of document.querySelectorAll('link[rel="modulepreload"]'))d(N);new MutationObserver(N=>{for(const j of N)if(j.type==="childList")for(const H of j.addedNodes)H.tagName==="LINK"&&H.rel==="modulepreload"&&d(H)}).observe(document,{childList:!0,subtree:!0});function x(N){const j={};return N.integrity&&(j.integrity=N.integrity),N.referrerPolicy&&(j.referrerPolicy=N.referrerPolicy),N.crossOrigin==="use-credentials"?j.credentials="include":N.crossOrigin==="anonymous"?j.credentials="omit":j.credentials="same-origin",j}function d(N){if(N.ep)return;N.ep=!0;const j=x(N);fetch(N.href,j)}})();var ts={exports:{}},Mn={},as={exports:{}},ns={};/** +import{j as o,Y as td,O as fg,k as dg,u as ad,Z as mg,c as hg,l as gg,g as pg,S as yg,T as vg,n as bg,m as nd,o as Sg,p as Tg,$ as ud,a0 as id,a1 as cd,a2 as xg}from"./ui-vendor-CeCm8EER.js";import{d as Ag,h as Dg,r as E,u as sd,H as Ng,i as Eg,j as Jf}from"./react-vendor-DEwriMA6.js";import{w as Ve,c as Qe,a5 as od,u as ql,v as Gt,a6 as rd,a7 as fd,I as us,B as Cn,D as Mg,i as zg,j as Cg,k as Og,l as jg,a8 as Rg,a9 as Ug,aa as _g,ab as Hg,ac as Ll,ad as dd,ae as ss,af as is,P as Lg,Q as qg,V as Bg,W as Gg,ag as Yg,ah as Xg,ai as md,aj as Vg,ak as Qg,al as hd,am as wg,an as gd,C as Zg,z as Kg,G as Jg,d as En,ao as kg,ap as Fg,aq as $g}from"./feature-graph-DbHHHM9y.js";import{S as kf,a as Ff,b as $f,c as Wf,d as ot,R as Wg}from"./feature-retrieval-zozGWnLh.js";import{D as Pg}from"./feature-documents-ClbgnjXg.js";import{i as cs}from"./utils-vendor-BysuhMZA.js";import"./graph-vendor-B-X5JegA.js";import"./mermaid-vendor-d7rbry5E.js";import"./markdown-vendor-BBaHfVvE.js";(function(){const b=document.createElement("link").relList;if(b&&b.supports&&b.supports("modulepreload"))return;for(const N of document.querySelectorAll('link[rel="modulepreload"]'))d(N);new MutationObserver(N=>{for(const j of N)if(j.type==="childList")for(const H of j.addedNodes)H.tagName==="LINK"&&H.rel==="modulepreload"&&d(H)}).observe(document,{childList:!0,subtree:!0});function x(N){const j={};return N.integrity&&(j.integrity=N.integrity),N.referrerPolicy&&(j.referrerPolicy=N.referrerPolicy),N.crossOrigin==="use-credentials"?j.credentials="include":N.crossOrigin==="anonymous"?j.credentials="omit":j.credentials="same-origin",j}function d(N){if(N.ep)return;N.ep=!0;const j=x(N);fetch(N.href,j)}})();var ts={exports:{}},Mn={},as={exports:{}},ns={};/** * @license React * scheduler.production.js * @@ -6,7 +6,7 @@ import{j as o,Y as td,O as fg,k as dg,u as ad,Z as mg,c as hg,l as gg,g as pg,S * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Pf;function Ig(){return Pf||(Pf=1,function(g){function b(A,L){var U=A.length;A.push(L);e:for(;0>>1,oe=A[te];if(0>>1;teN(vl,U))wN(we,vl)?(A[te]=we,A[w]=U,te=w):(A[te]=vl,A[pt]=U,te=pt);else if(wN(we,U))A[te]=we,A[w]=U,te=w;else break e}}return L}function N(A,L){var U=A.sortIndex-L.sortIndex;return U!==0?U:A.id-L.id}if(g.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var j=performance;g.unstable_now=function(){return j.now()}}else{var H=Date,$=H.now();g.unstable_now=function(){return H.now()-$}}var Y=[],W=[],he=1,ge=null,V=3,pe=!1,le=!1,C=!1,pl=typeof setTimeout=="function"?setTimeout:null,rt=typeof clearTimeout=="function"?clearTimeout:null,je=typeof setImmediate<"u"?setImmediate:null;function ft(A){for(var L=x(W);L!==null;){if(L.callback===null)d(W);else if(L.startTime<=A)d(W),L.sortIndex=L.expirationTime,b(Y,L);else break;L=x(W)}}function Ea(A){if(C=!1,ft(A),!le)if(x(Y)!==null)le=!0,ht();else{var L=x(W);L!==null&>(Ea,L.startTime-A)}}var dt=!1,al=-1,On=5,Yt=-1;function R(){return!(g.unstable_now()-YtA&&R());){var te=ge.callback;if(typeof te=="function"){ge.callback=null,V=ge.priorityLevel;var oe=te(ge.expirationTime<=A);if(A=g.unstable_now(),typeof oe=="function"){ge.callback=oe,ft(A),L=!0;break l}ge===x(Y)&&d(Y),ft(A)}else d(Y);ge=x(Y)}if(ge!==null)L=!0;else{var Xt=x(W);Xt!==null&>(Ea,Xt.startTime-A),L=!1}}break e}finally{ge=null,V=U,pe=!1}L=void 0}}finally{L?yl():dt=!1}}}var yl;if(typeof je=="function")yl=function(){je(k)};else if(typeof MessageChannel<"u"){var Ma=new MessageChannel,mt=Ma.port2;Ma.port1.onmessage=k,yl=function(){mt.postMessage(null)}}else yl=function(){pl(k,0)};function ht(){dt||(dt=!0,yl())}function gt(A,L){al=pl(function(){A(g.unstable_now())},L)}g.unstable_IdlePriority=5,g.unstable_ImmediatePriority=1,g.unstable_LowPriority=4,g.unstable_NormalPriority=3,g.unstable_Profiling=null,g.unstable_UserBlockingPriority=2,g.unstable_cancelCallback=function(A){A.callback=null},g.unstable_continueExecution=function(){le||pe||(le=!0,ht())},g.unstable_forceFrameRate=function(A){0>A||125te?(A.sortIndex=U,b(W,A),x(Y)===null&&A===x(W)&&(C?(rt(al),al=-1):C=!0,gt(Ea,U-te))):(A.sortIndex=oe,b(Y,A),le||pe||(le=!0,ht())),A},g.unstable_shouldYield=R,g.unstable_wrapCallback=function(A){var L=V;return function(){var U=V;V=L;try{return A.apply(this,arguments)}finally{V=U}}}}(ns)),ns}var If;function ep(){return If||(If=1,as.exports=Ig()),as.exports}/** + */var Pf;function Ig(){return Pf||(Pf=1,function(g){function b(A,L){var U=A.length;A.push(L);e:for(;0>>1,oe=A[te];if(0>>1;teN(vl,U))wN(we,vl)?(A[te]=we,A[w]=U,te=w):(A[te]=vl,A[pt]=U,te=pt);else if(wN(we,U))A[te]=we,A[w]=U,te=w;else break e}}return L}function N(A,L){var U=A.sortIndex-L.sortIndex;return U!==0?U:A.id-L.id}if(g.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var j=performance;g.unstable_now=function(){return j.now()}}else{var H=Date,$=H.now();g.unstable_now=function(){return H.now()-$}}var Y=[],W=[],he=1,ge=null,V=3,pe=!1,le=!1,C=!1,pl=typeof setTimeout=="function"?setTimeout:null,rt=typeof clearTimeout=="function"?clearTimeout:null,je=typeof setImmediate<"u"?setImmediate:null;function ft(A){for(var L=x(W);L!==null;){if(L.callback===null)d(W);else if(L.startTime<=A)d(W),L.sortIndex=L.expirationTime,b(Y,L);else break;L=x(W)}}function Ea(A){if(C=!1,ft(A),!le)if(x(Y)!==null)le=!0,ht();else{var L=x(W);L!==null&>(Ea,L.startTime-A)}}var dt=!1,al=-1,On=5,Yt=-1;function R(){return!(g.unstable_now()-YtA&&R());){var te=ge.callback;if(typeof te=="function"){ge.callback=null,V=ge.priorityLevel;var oe=te(ge.expirationTime<=A);if(A=g.unstable_now(),typeof oe=="function"){ge.callback=oe,ft(A),L=!0;break l}ge===x(Y)&&d(Y),ft(A)}else d(Y);ge=x(Y)}if(ge!==null)L=!0;else{var Xt=x(W);Xt!==null&>(Ea,Xt.startTime-A),L=!1}}break e}finally{ge=null,V=U,pe=!1}L=void 0}}finally{L?yl():dt=!1}}}var yl;if(typeof je=="function")yl=function(){je(J)};else if(typeof MessageChannel<"u"){var Ma=new MessageChannel,mt=Ma.port2;Ma.port1.onmessage=J,yl=function(){mt.postMessage(null)}}else yl=function(){pl(J,0)};function ht(){dt||(dt=!0,yl())}function gt(A,L){al=pl(function(){A(g.unstable_now())},L)}g.unstable_IdlePriority=5,g.unstable_ImmediatePriority=1,g.unstable_LowPriority=4,g.unstable_NormalPriority=3,g.unstable_Profiling=null,g.unstable_UserBlockingPriority=2,g.unstable_cancelCallback=function(A){A.callback=null},g.unstable_continueExecution=function(){le||pe||(le=!0,ht())},g.unstable_forceFrameRate=function(A){0>A||125te?(A.sortIndex=U,b(W,A),x(Y)===null&&A===x(W)&&(C?(rt(al),al=-1):C=!0,gt(Ea,U-te))):(A.sortIndex=oe,b(Y,A),le||pe||(le=!0,ht())),A},g.unstable_shouldYield=R,g.unstable_wrapCallback=function(A){var L=V;return function(){var U=V;V=L;try{return A.apply(this,arguments)}finally{V=U}}}}(ns)),ns}var If;function ep(){return If||(If=1,as.exports=Ig()),as.exports}/** * @license React * react-dom-client.production.js * @@ -14,21 +14,21 @@ import{j as o,Y as td,O as fg,k as dg,u as ad,Z as mg,c as hg,l as gg,g as pg,S * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var ed;function lp(){if(ed)return Mn;ed=1;var g=ep(),b=Ag(),x=Dg();function d(e){var l="https://react.dev/errors/"+e;if(1)":-1n||s[a]!==f[n]){var v=` `+s[a].replace(" at new "," at ");return e.displayName&&v.includes("")&&(v=v.replace("",e.displayName)),v}while(1<=a&&0<=n);break}}}finally{ht=!1,Error.prepareStackTrace=t}return(t=e?e.displayName||e.name:"")?mt(t):""}function A(e){switch(e.tag){case 26:case 27:case 5:return mt(e.type);case 16:return mt("Lazy");case 13:return mt("Suspense");case 19:return mt("SuspenseList");case 0:case 15:return e=gt(e.type,!1),e;case 11:return e=gt(e.type.render,!1),e;case 1:return e=gt(e.type,!0),e;default:return""}}function L(e){try{var l="";do l+=A(e),e=e.return;while(e);return l}catch(t){return` Error generating stack: `+t.message+` -`+t.stack}}function U(e){var l=e,t=e;if(e.alternate)for(;l.return;)l=l.return;else{e=l;do l=e,l.flags&4098&&(t=l.return),e=l.return;while(e)}return l.tag===3?t:null}function te(e){if(e.tag===13){var l=e.memoizedState;if(l===null&&(e=e.alternate,e!==null&&(l=e.memoizedState)),l!==null)return l.dehydrated}return null}function oe(e){if(U(e)!==e)throw Error(d(188))}function Xt(e){var l=e.alternate;if(!l){if(l=U(e),l===null)throw Error(d(188));return l!==e?null:e}for(var t=e,a=l;;){var n=t.return;if(n===null)break;var u=n.alternate;if(u===null){if(a=n.return,a!==null){t=a;continue}break}if(n.child===u.child){for(u=n.child;u;){if(u===t)return oe(n),e;if(u===a)return oe(n),l;u=u.sibling}throw Error(d(188))}if(t.return!==a.return)t=n,a=u;else{for(var i=!1,c=n.child;c;){if(c===t){i=!0,t=n,a=u;break}if(c===a){i=!0,a=n,t=u;break}c=c.sibling}if(!i){for(c=u.child;c;){if(c===t){i=!0,t=u,a=n;break}if(c===a){i=!0,a=u,t=n;break}c=c.sibling}if(!i)throw Error(d(189))}}if(t.alternate!==a)throw Error(d(190))}if(t.tag!==3)throw Error(d(188));return t.stateNode.current===t?e:l}function pt(e){var l=e.tag;if(l===5||l===26||l===27||l===6)return e;for(e=e.child;e!==null;){if(l=pt(e),l!==null)return l;e=e.sibling}return null}var vl=Array.isArray,w=x.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,we={pending:!1,data:null,method:null,action:null},Ku=[],Vt=-1;function sl(e){return{current:e}}function be(e){0>Vt||(e.current=Ku[Vt],Ku[Vt]=null,Vt--)}function ae(e,l){Vt++,Ku[Vt]=e.current,e.current=l}var ol=sl(null),za=sl(null),Gl=sl(null),jn=sl(null);function Rn(e,l){switch(ae(Gl,l),ae(za,e),ae(ol,null),e=l.nodeType,e){case 9:case 11:l=(l=l.documentElement)&&(l=l.namespaceURI)?xf(l):0;break;default:if(e=e===8?l.parentNode:l,l=e.tagName,e=e.namespaceURI)e=xf(e),l=Af(e,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}be(ol),ae(ol,l)}function Qt(){be(ol),be(za),be(Gl)}function ku(e){e.memoizedState!==null&&ae(jn,e);var l=ol.current,t=Af(l,e.type);l!==t&&(ae(za,e),ae(ol,t))}function Un(e){za.current===e&&(be(ol),be(za)),jn.current===e&&(be(jn),Tn._currentValue=we)}var Ju=Object.prototype.hasOwnProperty,Fu=g.unstable_scheduleCallback,$u=g.unstable_cancelCallback,Qd=g.unstable_shouldYield,wd=g.unstable_requestPaint,rl=g.unstable_now,Zd=g.unstable_getCurrentPriorityLevel,os=g.unstable_ImmediatePriority,rs=g.unstable_UserBlockingPriority,_n=g.unstable_NormalPriority,Kd=g.unstable_LowPriority,fs=g.unstable_IdlePriority,kd=g.log,Jd=g.unstable_setDisableYieldValue,Ca=null,He=null;function Fd(e){if(He&&typeof He.onCommitFiberRoot=="function")try{He.onCommitFiberRoot(Ca,e,void 0,(e.current.flags&128)===128)}catch{}}function Yl(e){if(typeof kd=="function"&&Jd(e),He&&typeof He.setStrictMode=="function")try{He.setStrictMode(Ca,e)}catch{}}var Le=Math.clz32?Math.clz32:Pd,$d=Math.log,Wd=Math.LN2;function Pd(e){return e>>>=0,e===0?32:31-($d(e)/Wd|0)|0}var Hn=128,Ln=4194304;function yt(e){var l=e&42;if(l!==0)return l;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function qn(e,l){var t=e.pendingLanes;if(t===0)return 0;var a=0,n=e.suspendedLanes,u=e.pingedLanes,i=e.warmLanes;e=e.finishedLanes!==0;var c=t&134217727;return c!==0?(t=c&~n,t!==0?a=yt(t):(u&=c,u!==0?a=yt(u):e||(i=c&~i,i!==0&&(a=yt(i))))):(c=t&~n,c!==0?a=yt(c):u!==0?a=yt(u):e||(i=t&~i,i!==0&&(a=yt(i)))),a===0?0:l!==0&&l!==a&&!(l&n)&&(n=a&-a,i=l&-l,n>=i||n===32&&(i&4194176)!==0)?l:a}function Oa(e,l){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&l)===0}function Id(e,l){switch(e){case 1:case 2:case 4:case 8:return l+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ds(){var e=Hn;return Hn<<=1,!(Hn&4194176)&&(Hn=128),e}function ms(){var e=Ln;return Ln<<=1,!(Ln&62914560)&&(Ln=4194304),e}function Wu(e){for(var l=[],t=0;31>t;t++)l.push(e);return l}function ja(e,l){e.pendingLanes|=l,l!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function em(e,l,t,a,n,u){var i=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var c=e.entanglements,s=e.expirationTimes,f=e.hiddenUpdates;for(t=i&~t;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),nm=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Ts={},xs={};function um(e){return Ju.call(xs,e)?!0:Ju.call(Ts,e)?!1:nm.test(e)?xs[e]=!0:(Ts[e]=!0,!1)}function Bn(e,l,t){if(um(l))if(t===null)e.removeAttribute(l);else{switch(typeof t){case"undefined":case"function":case"symbol":e.removeAttribute(l);return;case"boolean":var a=l.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(l);return}}e.setAttribute(l,""+t)}}function Gn(e,l,t){if(t===null)e.removeAttribute(l);else{switch(typeof t){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(l);return}e.setAttribute(l,""+t)}}function Sl(e,l,t,a){if(a===null)e.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttributeNS(l,t,""+a)}}function Ze(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function As(e){var l=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function im(e){var l=As(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,l),a=""+e[l];if(!e.hasOwnProperty(l)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var n=t.get,u=t.set;return Object.defineProperty(e,l,{configurable:!0,get:function(){return n.call(this)},set:function(i){a=""+i,u.call(this,i)}}),Object.defineProperty(e,l,{enumerable:t.enumerable}),{getValue:function(){return a},setValue:function(i){a=""+i},stopTracking:function(){e._valueTracker=null,delete e[l]}}}}function Yn(e){e._valueTracker||(e._valueTracker=im(e))}function Ds(e){if(!e)return!1;var l=e._valueTracker;if(!l)return!0;var t=l.getValue(),a="";return e&&(a=As(e)?e.checked?"true":"false":e.value),e=a,e!==t?(l.setValue(e),!0):!1}function Xn(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var cm=/[\n"\\]/g;function Ke(e){return e.replace(cm,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function ei(e,l,t,a,n,u,i,c){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),l!=null?i==="number"?(l===0&&e.value===""||e.value!=l)&&(e.value=""+Ze(l)):e.value!==""+Ze(l)&&(e.value=""+Ze(l)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),l!=null?li(e,i,Ze(l)):t!=null?li(e,i,Ze(t)):a!=null&&e.removeAttribute("value"),n==null&&u!=null&&(e.defaultChecked=!!u),n!=null&&(e.checked=n&&typeof n!="function"&&typeof n!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?e.name=""+Ze(c):e.removeAttribute("name")}function Ns(e,l,t,a,n,u,i,c){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),l!=null||t!=null){if(!(u!=="submit"&&u!=="reset"||l!=null))return;t=t!=null?""+Ze(t):"",l=l!=null?""+Ze(l):t,c||l===e.value||(e.value=l),e.defaultValue=l}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=c?e.checked:!!a,e.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i)}function li(e,l,t){l==="number"&&Xn(e.ownerDocument)===e||e.defaultValue===""+t||(e.defaultValue=""+t)}function Jt(e,l,t,a){if(e=e.options,l){l={};for(var n=0;n=Ba),Bs=" ",Gs=!1;function Ys(e,l){switch(e){case"keyup":return Hm.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Xs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Pt=!1;function qm(e,l){switch(e){case"compositionend":return Xs(l);case"keypress":return l.which!==32?null:(Gs=!0,Bs);case"textInput":return e=l.data,e===Bs&&Gs?null:e;default:return null}}function Bm(e,l){if(Pt)return e==="compositionend"||!di&&Ys(e,l)?(e=Rs(),Qn=ci=Vl=null,Pt=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:t,offset:l-e};e=a}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Fs(t)}}function Ws(e,l){return e&&l?e===l?!0:e&&e.nodeType===3?!1:l&&l.nodeType===3?Ws(e,l.parentNode):"contains"in e?e.contains(l):e.compareDocumentPosition?!!(e.compareDocumentPosition(l)&16):!1:!1}function Ps(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var l=Xn(e.document);l instanceof e.HTMLIFrameElement;){try{var t=typeof l.contentWindow.location.href=="string"}catch{t=!1}if(t)e=l.contentWindow;else break;l=Xn(e.document)}return l}function gi(e){var l=e&&e.nodeName&&e.nodeName.toLowerCase();return l&&(l==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||l==="textarea"||e.contentEditable==="true")}function Km(e,l){var t=Ps(l);l=e.focusedElem;var a=e.selectionRange;if(t!==l&&l&&l.ownerDocument&&Ws(l.ownerDocument.documentElement,l)){if(a!==null&&gi(l)){if(e=a.start,t=a.end,t===void 0&&(t=e),"selectionStart"in l)l.selectionStart=e,l.selectionEnd=Math.min(t,l.value.length);else if(t=(e=l.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var n=l.textContent.length,u=Math.min(a.start,n);a=a.end===void 0?u:Math.min(a.end,n),!t.extend&&u>a&&(n=a,a=u,u=n),n=$s(l,u);var i=$s(l,a);n&&i&&(t.rangeCount!==1||t.anchorNode!==n.node||t.anchorOffset!==n.offset||t.focusNode!==i.node||t.focusOffset!==i.offset)&&(e=e.createRange(),e.setStart(n.node,n.offset),t.removeAllRanges(),u>a?(t.addRange(e),t.extend(i.node,i.offset)):(e.setEnd(i.node,i.offset),t.addRange(e)))}}for(e=[],t=l;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l=document.documentMode,It=null,pi=null,Va=null,yi=!1;function Is(e,l,t){var a=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;yi||It==null||It!==Xn(a)||(a=It,"selectionStart"in a&&gi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Va&&Xa(Va,a)||(Va=a,a=Ou(pi,"onSelect"),0>=i,n-=i,Tl=1<<32-Le(l)+n|t<O?(Ae=z,z=null):Ae=z.sibling;var K=p(m,z,h[O],S);if(K===null){z===null&&(z=Ae);break}e&&z&&K.alternate===null&&l(m,z),r=u(K,r,O),B===null?D=K:B.sibling=K,B=K,z=Ae}if(O===h.length)return t(m,z),Z&&Dt(m,O),D;if(z===null){for(;OO?(Ae=z,z=null):Ae=z.sibling;var st=p(m,z,K.value,S);if(st===null){z===null&&(z=Ae);break}e&&z&&st.alternate===null&&l(m,z),r=u(st,r,O),B===null?D=st:B.sibling=st,B=st,z=Ae}if(K.done)return t(m,z),Z&&Dt(m,O),D;if(z===null){for(;!K.done;O++,K=h.next())K=T(m,K.value,S),K!==null&&(r=u(K,r,O),B===null?D=K:B.sibling=K,B=K);return Z&&Dt(m,O),D}for(z=a(z);!K.done;O++,K=h.next())K=y(z,m,O,K.value,S),K!==null&&(e&&K.alternate!==null&&z.delete(K.key===null?O:K.key),r=u(K,r,O),B===null?D=K:B.sibling=K,B=K);return e&&z.forEach(function(rg){return l(m,rg)}),Z&&Dt(m,O),D}function se(m,r,h,S){if(typeof h=="object"&&h!==null&&h.type===Y&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case H:e:{for(var D=h.key;r!==null;){if(r.key===D){if(D=h.type,D===Y){if(r.tag===7){t(m,r.sibling),S=n(r,h.props.children),S.return=m,m=S;break e}}else if(r.elementType===D||typeof D=="object"&&D!==null&&D.$$typeof===je&&yo(D)===r.type){t(m,r.sibling),S=n(r,h.props),Fa(S,h),S.return=m,m=S;break e}t(m,r);break}else l(m,r);r=r.sibling}h.type===Y?(S=Ht(h.props.children,m.mode,S,h.key),S.return=m,m=S):(S=Su(h.type,h.key,h.props,null,m.mode,S),Fa(S,h),S.return=m,m=S)}return i(m);case $:e:{for(D=h.key;r!==null;){if(r.key===D)if(r.tag===4&&r.stateNode.containerInfo===h.containerInfo&&r.stateNode.implementation===h.implementation){t(m,r.sibling),S=n(r,h.children||[]),S.return=m,m=S;break e}else{t(m,r);break}else l(m,r);r=r.sibling}S=bc(h,m.mode,S),S.return=m,m=S}return i(m);case je:return D=h._init,h=D(h._payload),se(m,r,h,S)}if(vl(h))return M(m,r,h,S);if(al(h)){if(D=al(h),typeof D!="function")throw Error(d(150));return h=D.call(h),_(m,r,h,S)}if(typeof h.then=="function")return se(m,r,lu(h),S);if(h.$$typeof===pe)return se(m,r,yu(m,h),S);tu(m,h)}return typeof h=="string"&&h!==""||typeof h=="number"||typeof h=="bigint"?(h=""+h,r!==null&&r.tag===6?(t(m,r.sibling),S=n(r,h),S.return=m,m=S):(t(m,r),S=vc(h,m.mode,S),S.return=m,m=S),i(m)):t(m,r)}return function(m,r,h,S){try{Ja=0;var D=se(m,r,h,S);return ua=null,D}catch(z){if(z===Ka)throw z;var B=el(29,z,null,m.mode);return B.lanes=S,B.return=m,B}finally{}}}var Et=vo(!0),bo=vo(!1),ia=sl(null),au=sl(0);function So(e,l){e=Ul,ae(au,e),ae(ia,l),Ul=e|l.baseLanes}function Ni(){ae(au,Ul),ae(ia,ia.current)}function Ei(){Ul=au.current,be(ia),be(au)}var We=sl(null),dl=null;function wl(e){var l=e.alternate;ae(ye,ye.current&1),ae(We,e),dl===null&&(l===null||ia.current!==null||l.memoizedState!==null)&&(dl=e)}function To(e){if(e.tag===22){if(ae(ye,ye.current),ae(We,e),dl===null){var l=e.alternate;l!==null&&l.memoizedState!==null&&(dl=e)}}else Zl()}function Zl(){ae(ye,ye.current),ae(We,We.current)}function Al(e){be(We),dl===e&&(dl=null),be(ye)}var ye=sl(0);function nu(e){for(var l=e;l!==null;){if(l.tag===13){var t=l.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return l}else if(l.tag===19&&l.memoizedProps.revealOrder!==void 0){if(l.flags&128)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===e)break;for(;l.sibling===null;){if(l.return===null||l.return===e)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}var Wm=typeof AbortController<"u"?AbortController:function(){var e=[],l=this.signal={aborted:!1,addEventListener:function(t,a){e.push(a)}};this.abort=function(){l.aborted=!0,e.forEach(function(t){return t()})}},Pm=g.unstable_scheduleCallback,Im=g.unstable_NormalPriority,ve={$$typeof:pe,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Mi(){return{controller:new Wm,data:new Map,refCount:0}}function $a(e){e.refCount--,e.refCount===0&&Pm(Im,function(){e.controller.abort()})}var Wa=null,zi=0,ca=0,sa=null;function eh(e,l){if(Wa===null){var t=Wa=[];zi=0,ca=_c(),sa={status:"pending",value:void 0,then:function(a){t.push(a)}}}return zi++,l.then(xo,xo),l}function xo(){if(--zi===0&&Wa!==null){sa!==null&&(sa.status="fulfilled");var e=Wa;Wa=null,ca=0,sa=null;for(var l=0;lu?u:8;var i=R.T,c={};R.T=c,Zi(e,!1,l,t);try{var s=n(),f=R.S;if(f!==null&&f(c,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var v=lh(s,a);en(e,l,v,Xe(e))}else en(e,l,a,Xe(e))}catch(T){en(e,l,{then:function(){},status:"rejected",reason:T},Xe())}finally{w.p=u,R.T=i}}function ih(){}function Qi(e,l,t,a){if(e.tag!==5)throw Error(d(476));var n=Io(e).queue;Po(e,n,l,we,t===null?ih:function(){return er(e),t(a)})}function Io(e){var l=e.memoizedState;if(l!==null)return l;l={memoizedState:we,baseState:we,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Dl,lastRenderedState:we},next:null};var t={};return l.next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Dl,lastRenderedState:t},next:null},e.memoizedState=l,e=e.alternate,e!==null&&(e.memoizedState=l),l}function er(e){var l=Io(e).next.queue;en(e,l,{},Xe())}function wi(){return ze(Tn)}function lr(){return de().memoizedState}function tr(){return de().memoizedState}function ch(e){for(var l=e.return;l!==null;){switch(l.tag){case 24:case 3:var t=Xe();e=$l(t);var a=Wl(l,e,t);a!==null&&(Oe(a,l,t),an(a,l,t)),l={cache:Mi()},e.payload=l;return}l=l.return}}function sh(e,l,t){var a=Xe();t={lane:a,revertLane:0,action:t,hasEagerState:!1,eagerState:null,next:null},mu(e)?nr(l,t):(t=Si(e,l,t,a),t!==null&&(Oe(t,e,a),ur(t,l,a)))}function ar(e,l,t){var a=Xe();en(e,l,t,a)}function en(e,l,t,a){var n={lane:a,revertLane:0,action:t,hasEagerState:!1,eagerState:null,next:null};if(mu(e))nr(l,n);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=l.lastRenderedReducer,u!==null))try{var i=l.lastRenderedState,c=u(i,t);if(n.hasEagerState=!0,n.eagerState=c,qe(c,i))return $n(e,l,n,0),I===null&&Fn(),!1}catch{}finally{}if(t=Si(e,l,n,a),t!==null)return Oe(t,e,a),ur(t,l,a),!0}return!1}function Zi(e,l,t,a){if(a={lane:2,revertLane:_c(),action:a,hasEagerState:!1,eagerState:null,next:null},mu(e)){if(l)throw Error(d(479))}else l=Si(e,t,a,2),l!==null&&Oe(l,e,2)}function mu(e){var l=e.alternate;return e===q||l!==null&&l===q}function nr(e,l){oa=iu=!0;var t=e.pending;t===null?l.next=l:(l.next=t.next,t.next=l),e.pending=l}function ur(e,l,t){if(t&4194176){var a=l.lanes;a&=e.pendingLanes,t|=a,l.lanes=t,gs(e,t)}}var ml={readContext:ze,use:ou,useCallback:re,useContext:re,useEffect:re,useImperativeHandle:re,useLayoutEffect:re,useInsertionEffect:re,useMemo:re,useReducer:re,useRef:re,useState:re,useDebugValue:re,useDeferredValue:re,useTransition:re,useSyncExternalStore:re,useId:re};ml.useCacheRefresh=re,ml.useMemoCache=re,ml.useHostTransitionStatus=re,ml.useFormState=re,ml.useActionState=re,ml.useOptimistic=re;var Ct={readContext:ze,use:ou,useCallback:function(e,l){return _e().memoizedState=[e,l===void 0?null:l],e},useContext:ze,useEffect:wo,useImperativeHandle:function(e,l,t){t=t!=null?t.concat([e]):null,fu(4194308,4,ko.bind(null,l,e),t)},useLayoutEffect:function(e,l){return fu(4194308,4,e,l)},useInsertionEffect:function(e,l){fu(4,2,e,l)},useMemo:function(e,l){var t=_e();l=l===void 0?null:l;var a=e();if(zt){Yl(!0);try{e()}finally{Yl(!1)}}return t.memoizedState=[a,l],a},useReducer:function(e,l,t){var a=_e();if(t!==void 0){var n=t(l);if(zt){Yl(!0);try{t(l)}finally{Yl(!1)}}}else n=l;return a.memoizedState=a.baseState=n,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=sh.bind(null,q,e),[a.memoizedState,e]},useRef:function(e){var l=_e();return e={current:e},l.memoizedState=e},useState:function(e){e=Bi(e);var l=e.queue,t=ar.bind(null,q,l);return l.dispatch=t,[e.memoizedState,t]},useDebugValue:Xi,useDeferredValue:function(e,l){var t=_e();return Vi(t,e,l)},useTransition:function(){var e=Bi(!1);return e=Po.bind(null,q,e.queue,!0,!1),_e().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,l,t){var a=q,n=_e();if(Z){if(t===void 0)throw Error(d(407));t=t()}else{if(t=l(),I===null)throw Error(d(349));Q&60||zo(a,l,t)}n.memoizedState=t;var u={value:t,getSnapshot:l};return n.queue=u,wo(Oo.bind(null,a,u,e),[e]),a.flags|=2048,fa(9,Co.bind(null,a,u,t,l),{destroy:void 0},null),t},useId:function(){var e=_e(),l=I.identifierPrefix;if(Z){var t=xl,a=Tl;t=(a&~(1<<32-Le(a)-1)).toString(32)+t,l=":"+l+"R"+t,t=cu++,0 title"))),Ee(u,a,t),u[Me]=e,Se(u),a=u;break e;case"link":var i=Uf("link","href",n).get(a+(t.href||""));if(i){for(var c=0;c<\/script>",e=e.removeChild(e.firstChild);break;case"select":e=typeof a.is=="string"?n.createElement("select",{is:a.is}):n.createElement("select"),a.multiple?e.multiple=!0:a.size&&(e.size=a.size);break;default:e=typeof a.is=="string"?n.createElement(t,{is:a.is}):n.createElement(t)}}e[Me]=l,e[Re]=a;e:for(n=l.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.tag!==27&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===l)break e;for(;n.sibling===null;){if(n.return===null||n.return===l)break e;n=n.return}n.sibling.return=n.return,n=n.sibling}l.stateNode=e;e:switch(Ee(e,t,a),t){case"button":case"input":case"select":case"textarea":e=!!a.autoFocus;break e;case"img":e=!0;break e;default:e=!1}e&&jl(l)}}return ne(l),l.flags&=-16777217,null;case 6:if(e&&l.stateNode!=null)e.memoizedProps!==a&&jl(l);else{if(typeof a!="string"&&l.stateNode===null)throw Error(d(166));if(e=Gl.current,Qa(l)){if(e=l.stateNode,t=l.memoizedProps,a=null,n=Ce,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}e[Me]=l,e=!!(e.nodeValue===t||a!==null&&a.suppressHydrationWarning===!0||Tf(e.nodeValue,t)),e||Nt(l)}else e=Ru(e).createTextNode(a),e[Me]=l,l.stateNode=e}return ne(l),null;case 13:if(a=l.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(n=Qa(l),a!==null&&a.dehydrated!==null){if(e===null){if(!n)throw Error(d(318));if(n=l.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(d(317));n[Me]=l}else wa(),!(l.flags&128)&&(l.memoizedState=null),l.flags|=4;ne(l),n=!1}else ul!==null&&(Mc(ul),ul=null),n=!0;if(!n)return l.flags&256?(Al(l),l):(Al(l),null)}if(Al(l),l.flags&128)return l.lanes=t,l;if(t=a!==null,e=e!==null&&e.memoizedState!==null,t){a=l.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool);var u=null;a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),u!==n&&(a.flags|=2048)}return t!==e&&t&&(l.child.flags|=8192),Tu(l,l.updateQueue),ne(l),null;case 4:return Qt(),e===null&&Bc(l.stateNode.containerInfo),ne(l),null;case 10:return Ml(l.type),ne(l),null;case 19:if(be(ye),n=l.memoizedState,n===null)return ne(l),null;if(a=(l.flags&128)!==0,u=n.rendering,u===null)if(a)fn(n,!1);else{if(ce!==0||e!==null&&e.flags&128)for(e=l.child;e!==null;){if(u=nu(e),u!==null){for(l.flags|=128,fn(n,!1),e=u.updateQueue,l.updateQueue=e,Tu(l,e),l.subtreeFlags=0,e=t,t=l.child;t!==null;)Jr(t,e),t=t.sibling;return ae(ye,ye.current&1|2),l.child}e=e.sibling}n.tail!==null&&rl()>xu&&(l.flags|=128,a=!0,fn(n,!1),l.lanes=4194304)}else{if(!a)if(e=nu(u),e!==null){if(l.flags|=128,a=!0,e=e.updateQueue,l.updateQueue=e,Tu(l,e),fn(n,!0),n.tail===null&&n.tailMode==="hidden"&&!u.alternate&&!Z)return ne(l),null}else 2*rl()-n.renderingStartTime>xu&&t!==536870912&&(l.flags|=128,a=!0,fn(n,!1),l.lanes=4194304);n.isBackwards?(u.sibling=l.child,l.child=u):(e=n.last,e!==null?e.sibling=u:l.child=u,n.last=u)}return n.tail!==null?(l=n.tail,n.rendering=l,n.tail=l.sibling,n.renderingStartTime=rl(),l.sibling=null,e=ye.current,ae(ye,a?e&1|2:e&1),l):(ne(l),null);case 22:case 23:return Al(l),Ei(),a=l.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(l.flags|=8192):a&&(l.flags|=8192),a?t&536870912&&!(l.flags&128)&&(ne(l),l.subtreeFlags&6&&(l.flags|=8192)):ne(l),t=l.updateQueue,t!==null&&Tu(l,t.retryQueue),t=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(t=e.memoizedState.cachePool.pool),a=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(a=l.memoizedState.cachePool.pool),a!==t&&(l.flags|=2048),e!==null&&be(Mt),null;case 24:return t=null,e!==null&&(t=e.memoizedState.cache),l.memoizedState.cache!==t&&(l.flags|=2048),Ml(ve),ne(l),null;case 25:return null}throw Error(d(156,l.tag))}function gh(e,l){switch(xi(l),l.tag){case 1:return e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 3:return Ml(ve),Qt(),e=l.flags,e&65536&&!(e&128)?(l.flags=e&-65537|128,l):null;case 26:case 27:case 5:return Un(l),null;case 13:if(Al(l),e=l.memoizedState,e!==null&&e.dehydrated!==null){if(l.alternate===null)throw Error(d(340));wa()}return e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 19:return be(ye),null;case 4:return Qt(),null;case 10:return Ml(l.type),null;case 22:case 23:return Al(l),Ei(),e!==null&&be(Mt),e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 24:return Ml(ve),null;case 25:return null;default:return null}}function Wr(e,l){switch(xi(l),l.tag){case 3:Ml(ve),Qt();break;case 26:case 27:case 5:Un(l);break;case 4:Qt();break;case 13:Al(l);break;case 19:be(ye);break;case 10:Ml(l.type);break;case 22:case 23:Al(l),Ei(),e!==null&&be(Mt);break;case 24:Ml(ve)}}var ph={getCacheForType:function(e){var l=ze(ve),t=l.data.get(e);return t===void 0&&(t=e(),l.data.set(e,t)),t}},yh=typeof WeakMap=="function"?WeakMap:Map,ue=0,I=null,G=null,Q=0,ee=0,Ye=null,Rl=!1,ga=!1,Sc=!1,Ul=0,ce=0,tt=0,Lt=0,Tc=0,ll=0,pa=0,dn=null,hl=null,xc=!1,Ac=0,xu=1/0,Au=null,at=null,Du=!1,qt=null,mn=0,Dc=0,Nc=null,hn=0,Ec=null;function Xe(){if(ue&2&&Q!==0)return Q&-Q;if(R.T!==null){var e=ca;return e!==0?e:_c()}return ys()}function Pr(){ll===0&&(ll=!(Q&536870912)||Z?ds():536870912);var e=We.current;return e!==null&&(e.flags|=32),ll}function Oe(e,l,t){(e===I&&ee===2||e.cancelPendingCommit!==null)&&(ya(e,0),_l(e,Q,ll,!1)),ja(e,t),(!(ue&2)||e!==I)&&(e===I&&(!(ue&2)&&(Lt|=t),ce===4&&_l(e,Q,ll,!1)),gl(e))}function Ir(e,l,t){if(ue&6)throw Error(d(327));var a=!t&&(l&60)===0&&(l&e.expiredLanes)===0||Oa(e,l),n=a?Sh(e,l):Oc(e,l,!0),u=a;do{if(n===0){ga&&!a&&_l(e,l,0,!1);break}else if(n===6)_l(e,l,0,!Rl);else{if(t=e.current.alternate,u&&!vh(t)){n=Oc(e,l,!1),u=!1;continue}if(n===2){if(u=l,e.errorRecoveryDisabledLanes&u)var i=0;else i=e.pendingLanes&-536870913,i=i!==0?i:i&536870912?536870912:0;if(i!==0){l=i;e:{var c=e;n=dn;var s=c.current.memoizedState.isDehydrated;if(s&&(ya(c,i).flags|=256),i=Oc(c,i,!1),i!==2){if(Sc&&!s){c.errorRecoveryDisabledLanes|=u,Lt|=u,n=4;break e}u=hl,hl=n,u!==null&&Mc(u)}n=i}if(u=!1,n!==2)continue}}if(n===1){ya(e,0),_l(e,l,0,!0);break}e:{switch(a=e,n){case 0:case 1:throw Error(d(345));case 4:if((l&4194176)===l){_l(a,l,ll,!Rl);break e}break;case 2:hl=null;break;case 3:case 5:break;default:throw Error(d(329))}if(a.finishedWork=t,a.finishedLanes=l,(l&62914560)===l&&(u=Ac+300-rl(),10t?32:t,R.T=null,qt===null)var u=!1;else{t=Nc,Nc=null;var i=qt,c=mn;if(qt=null,mn=0,ue&6)throw Error(d(331));var s=ue;if(ue|=4,Kr(i.current),Qr(i,i.current,c,t),ue=s,gn(0,!1),He&&typeof He.onPostCommitFiberRoot=="function")try{He.onPostCommitFiberRoot(Ca,i)}catch{}u=!0}return u}finally{w.p=n,R.T=a,of(e,l)}}return!1}function rf(e,l,t){l=Je(t,l),l=Ji(e.stateNode,l,2),e=Wl(e,l,2),e!==null&&(ja(e,2),gl(e))}function P(e,l,t){if(e.tag===3)rf(e,e,t);else for(;l!==null;){if(l.tag===3){rf(l,e,t);break}else if(l.tag===1){var a=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(at===null||!at.has(a))){e=Je(t,e),t=dr(2),a=Wl(l,t,2),a!==null&&(mr(t,a,l,e),ja(a,2),gl(a));break}}l=l.return}}function jc(e,l,t){var a=e.pingCache;if(a===null){a=e.pingCache=new yh;var n=new Set;a.set(l,n)}else n=a.get(l),n===void 0&&(n=new Set,a.set(l,n));n.has(t)||(Sc=!0,n.add(t),e=Ah.bind(null,e,l,t),l.then(e,e))}function Ah(e,l,t){var a=e.pingCache;a!==null&&a.delete(l),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,I===e&&(Q&t)===t&&(ce===4||ce===3&&(Q&62914560)===Q&&300>rl()-Ac?!(ue&2)&&ya(e,0):Tc|=t,pa===Q&&(pa=0)),gl(e)}function ff(e,l){l===0&&(l=ms()),e=Ql(e,l),e!==null&&(ja(e,l),gl(e))}function Dh(e){var l=e.memoizedState,t=0;l!==null&&(t=l.retryLane),ff(e,t)}function Nh(e,l){var t=0;switch(e.tag){case 13:var a=e.stateNode,n=e.memoizedState;n!==null&&(t=n.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(d(314))}a!==null&&a.delete(l),ff(e,t)}function Eh(e,l){return Fu(e,l)}var Mu=null,Sa=null,Rc=!1,zu=!1,Uc=!1,Bt=0;function gl(e){e!==Sa&&e.next===null&&(Sa===null?Mu=Sa=e:Sa=Sa.next=e),zu=!0,Rc||(Rc=!0,zh(Mh))}function gn(e,l){if(!Uc&&zu){Uc=!0;do for(var t=!1,a=Mu;a!==null;){if(e!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var i=a.suspendedLanes,c=a.pingedLanes;u=(1<<31-Le(42|e)+1)-1,u&=n&~(i&~c),u=u&201326677?u&201326677|1:u?u|2:0}u!==0&&(t=!0,hf(a,u))}else u=Q,u=qn(a,a===I?u:0),!(u&3)||Oa(a,u)||(t=!0,hf(a,u));a=a.next}while(t);Uc=!1}}function Mh(){zu=Rc=!1;var e=0;Bt!==0&&(Lh()&&(e=Bt),Bt=0);for(var l=rl(),t=null,a=Mu;a!==null;){var n=a.next,u=df(a,l);u===0?(a.next=null,t===null?Mu=n:t.next=n,n===null&&(Sa=t)):(t=a,(e!==0||u&3)&&(zu=!0)),a=n}gn(e)}function df(e,l){for(var t=e.suspendedLanes,a=e.pingedLanes,n=e.expirationTimes,u=e.pendingLanes&-62914561;0"u"?null:document;function Cf(e,l,t){var a=xa;if(a&&typeof l=="string"&&l){var n=Ke(l);n='link[rel="'+e+'"][href="'+n+'"]',typeof t=="string"&&(n+='[crossorigin="'+t+'"]'),zf.has(n)||(zf.add(n),e={rel:e,crossOrigin:t,href:l},a.querySelector(n)===null&&(l=a.createElement("link"),Ee(l,"link",e),Se(l),a.head.appendChild(l)))}}function wh(e){Hl.D(e),Cf("dns-prefetch",e,null)}function Zh(e,l){Hl.C(e,l),Cf("preconnect",e,l)}function Kh(e,l,t){Hl.L(e,l,t);var a=xa;if(a&&e&&l){var n='link[rel="preload"][as="'+Ke(l)+'"]';l==="image"&&t&&t.imageSrcSet?(n+='[imagesrcset="'+Ke(t.imageSrcSet)+'"]',typeof t.imageSizes=="string"&&(n+='[imagesizes="'+Ke(t.imageSizes)+'"]')):n+='[href="'+Ke(e)+'"]';var u=n;switch(l){case"style":u=Aa(e);break;case"script":u=Da(e)}tl.has(u)||(e=k({rel:"preload",href:l==="image"&&t&&t.imageSrcSet?void 0:e,as:l},t),tl.set(u,e),a.querySelector(n)!==null||l==="style"&&a.querySelector(vn(u))||l==="script"&&a.querySelector(bn(u))||(l=a.createElement("link"),Ee(l,"link",e),Se(l),a.head.appendChild(l)))}}function kh(e,l){Hl.m(e,l);var t=xa;if(t&&e){var a=l&&typeof l.as=="string"?l.as:"script",n='link[rel="modulepreload"][as="'+Ke(a)+'"][href="'+Ke(e)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Da(e)}if(!tl.has(u)&&(e=k({rel:"modulepreload",href:e},l),tl.set(u,e),t.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(t.querySelector(bn(u)))return}a=t.createElement("link"),Ee(a,"link",e),Se(a),t.head.appendChild(a)}}}function Jh(e,l,t){Hl.S(e,l,t);var a=xa;if(a&&e){var n=Kt(a).hoistableStyles,u=Aa(e);l=l||"default";var i=n.get(u);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(vn(u)))c.loading=5;else{e=k({rel:"stylesheet",href:e,"data-precedence":l},t),(t=tl.get(u))&&kc(e,t);var s=i=a.createElement("link");Se(s),Ee(s,"link",e),s._p=new Promise(function(f,v){s.onload=f,s.onerror=v}),s.addEventListener("load",function(){c.loading|=1}),s.addEventListener("error",function(){c.loading|=2}),c.loading|=4,_u(i,l,a)}i={type:"stylesheet",instance:i,count:1,state:c},n.set(u,i)}}}function Fh(e,l){Hl.X(e,l);var t=xa;if(t&&e){var a=Kt(t).hoistableScripts,n=Da(e),u=a.get(n);u||(u=t.querySelector(bn(n)),u||(e=k({src:e,async:!0},l),(l=tl.get(n))&&Jc(e,l),u=t.createElement("script"),Se(u),Ee(u,"link",e),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function $h(e,l){Hl.M(e,l);var t=xa;if(t&&e){var a=Kt(t).hoistableScripts,n=Da(e),u=a.get(n);u||(u=t.querySelector(bn(n)),u||(e=k({src:e,async:!0,type:"module"},l),(l=tl.get(n))&&Jc(e,l),u=t.createElement("script"),Se(u),Ee(u,"link",e),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Of(e,l,t,a){var n=(n=Gl.current)?Uu(n):null;if(!n)throw Error(d(446));switch(e){case"meta":case"title":return null;case"style":return typeof t.precedence=="string"&&typeof t.href=="string"?(l=Aa(t.href),t=Kt(n).hoistableStyles,a=t.get(l),a||(a={type:"style",instance:null,count:0,state:null},t.set(l,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(t.rel==="stylesheet"&&typeof t.href=="string"&&typeof t.precedence=="string"){e=Aa(t.href);var u=Kt(n).hoistableStyles,i=u.get(e);if(i||(n=n.ownerDocument||n,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,i),(u=n.querySelector(vn(e)))&&!u._p&&(i.instance=u,i.state.loading=5),tl.has(e)||(t={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},tl.set(e,t),u||Wh(n,e,t,i.state))),l&&a===null)throw Error(d(528,""));return i}if(l&&a!==null)throw Error(d(529,""));return null;case"script":return l=t.async,t=t.src,typeof t=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Da(t),t=Kt(n).hoistableScripts,a=t.get(l),a||(a={type:"script",instance:null,count:0,state:null},t.set(l,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(d(444,e))}}function Aa(e){return'href="'+Ke(e)+'"'}function vn(e){return'link[rel="stylesheet"]['+e+"]"}function jf(e){return k({},e,{"data-precedence":e.precedence,precedence:null})}function Wh(e,l,t,a){e.querySelector('link[rel="preload"][as="style"]['+l+"]")?a.loading=1:(l=e.createElement("link"),a.preload=l,l.addEventListener("load",function(){return a.loading|=1}),l.addEventListener("error",function(){return a.loading|=2}),Ee(l,"link",t),Se(l),e.head.appendChild(l))}function Da(e){return'[src="'+Ke(e)+'"]'}function bn(e){return"script[async]"+e}function Rf(e,l,t){if(l.count++,l.instance===null)switch(l.type){case"style":var a=e.querySelector('style[data-href~="'+Ke(t.href)+'"]');if(a)return l.instance=a,Se(a),a;var n=k({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),Se(a),Ee(a,"style",n),_u(a,t.precedence,e),l.instance=a;case"stylesheet":n=Aa(t.href);var u=e.querySelector(vn(n));if(u)return l.state.loading|=4,l.instance=u,Se(u),u;a=jf(t),(n=tl.get(n))&&kc(a,n),u=(e.ownerDocument||e).createElement("link"),Se(u);var i=u;return i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ee(u,"link",a),l.state.loading|=4,_u(u,t.precedence,e),l.instance=u;case"script":return u=Da(t.src),(n=e.querySelector(bn(u)))?(l.instance=n,Se(n),n):(a=t,(n=tl.get(u))&&(a=k({},t),Jc(a,n)),e=e.ownerDocument||e,n=e.createElement("script"),Se(n),Ee(n,"link",a),e.head.appendChild(n),l.instance=n);case"void":return null;default:throw Error(d(443,l.type))}else l.type==="stylesheet"&&!(l.state.loading&4)&&(a=l.instance,l.state.loading|=4,_u(a,t.precedence,e));return l.instance}function _u(e,l,t){for(var a=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,u=n,i=0;i title"):null)}function Ph(e,l,t){if(t===1||l.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof l.precedence!="string"||typeof l.href!="string"||l.href==="")break;return!0;case"link":if(typeof l.rel!="string"||typeof l.href!="string"||l.href===""||l.onLoad||l.onError)break;switch(l.rel){case"stylesheet":return e=l.disabled,typeof l.precedence=="string"&&e==null;default:return!0}case"script":if(l.async&&typeof l.async!="function"&&typeof l.async!="symbol"&&!l.onLoad&&!l.onError&&l.src&&typeof l.src=="string")return!0}return!1}function Hf(e){return!(e.type==="stylesheet"&&!(e.state.loading&3))}var Sn=null;function Ih(){}function eg(e,l,t){if(Sn===null)throw Error(d(475));var a=Sn;if(l.type==="stylesheet"&&(typeof t.media!="string"||matchMedia(t.media).matches!==!1)&&!(l.state.loading&4)){if(l.instance===null){var n=Aa(t.href),u=e.querySelector(vn(n));if(u){e=u._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(a.count++,a=Lu.bind(a),e.then(a,a)),l.state.loading|=4,l.instance=u,Se(u);return}u=e.ownerDocument||e,t=jf(t),(n=tl.get(n))&&kc(t,n),u=u.createElement("link"),Se(u);var i=u;i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ee(u,"link",t),l.instance=u}a.stylesheets===null&&(a.stylesheets=new Map),a.stylesheets.set(l,e),(e=l.state.preload)&&!(l.state.loading&3)&&(a.count++,l=Lu.bind(a),e.addEventListener("load",l),e.addEventListener("error",l))}}function lg(){if(Sn===null)throw Error(d(475));var e=Sn;return e.stylesheets&&e.count===0&&Fc(e,e.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(g)}catch(b){console.error(b)}}return g(),ts.exports=lp(),ts.exports}var ap=tp();const np={visibleTabs:{},setTabVisibility:()=>{},isTabVisible:()=>!1},pd=E.createContext(np),up=({children:g})=>{const b=Ve.use.currentTab(),[x,d]=E.useState(()=>({documents:!0,"knowledge-graph":!0,retrieval:!0,api:!0}));E.useEffect(()=>{d(j=>({...j,documents:!0,"knowledge-graph":!0,retrieval:!0,api:!0}))},[b]);const N=E.useMemo(()=>({visibleTabs:x,setTabVisibility:(j,H)=>{d($=>({...$,[j]:H}))},isTabVisible:j=>!!x[j]}),[x]);return o.jsx(pd.Provider,{value:N,children:g})};var yd="AlertDialog",[ip,Yy]=hg(yd,[td]),Bl=td(),vd=g=>{const{__scopeAlertDialog:b,...x}=g,d=Bl(b);return o.jsx(Sg,{...d,...x,modal:!0})};vd.displayName=yd;var cp="AlertDialogTrigger",sp=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(Tg,{...N,...d,ref:b})});sp.displayName=cp;var op="AlertDialogPortal",bd=g=>{const{__scopeAlertDialog:b,...x}=g,d=Bl(b);return o.jsx(dg,{...d,...x})};bd.displayName=op;var rp="AlertDialogOverlay",Sd=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(fg,{...N,...d,ref:b})});Sd.displayName=rp;var Na="AlertDialogContent",[fp,dp]=ip(Na),Td=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,children:d,...N}=g,j=Bl(x),H=E.useRef(null),$=ad(b,H),Y=E.useRef(null);return o.jsx(mg,{contentName:Na,titleName:xd,docsSlug:"alert-dialog",children:o.jsx(fp,{scope:x,cancelRef:Y,children:o.jsxs(gg,{role:"alertdialog",...j,...N,ref:$,onOpenAutoFocus:pg(N.onOpenAutoFocus,W=>{var he;W.preventDefault(),(he=Y.current)==null||he.focus({preventScroll:!0})}),onPointerDownOutside:W=>W.preventDefault(),onInteractOutside:W=>W.preventDefault(),children:[o.jsx(yg,{children:d}),o.jsx(hp,{contentRef:H})]})})})});Td.displayName=Na;var xd="AlertDialogTitle",Ad=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(vg,{...N,...d,ref:b})});Ad.displayName=xd;var Dd="AlertDialogDescription",Nd=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(bg,{...N,...d,ref:b})});Nd.displayName=Dd;var mp="AlertDialogAction",Ed=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(nd,{...N,...d,ref:b})});Ed.displayName=mp;var Md="AlertDialogCancel",zd=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,{cancelRef:N}=dp(Md,x),j=Bl(x),H=ad(b,N);return o.jsx(nd,{...j,...d,ref:H})});zd.displayName=Md;var hp=({contentRef:g})=>{const b=`\`${Na}\` requires a description for the component to be accessible for screen reader users. +`+t.stack}}function U(e){var l=e,t=e;if(e.alternate)for(;l.return;)l=l.return;else{e=l;do l=e,l.flags&4098&&(t=l.return),e=l.return;while(e)}return l.tag===3?t:null}function te(e){if(e.tag===13){var l=e.memoizedState;if(l===null&&(e=e.alternate,e!==null&&(l=e.memoizedState)),l!==null)return l.dehydrated}return null}function oe(e){if(U(e)!==e)throw Error(d(188))}function Xt(e){var l=e.alternate;if(!l){if(l=U(e),l===null)throw Error(d(188));return l!==e?null:e}for(var t=e,a=l;;){var n=t.return;if(n===null)break;var u=n.alternate;if(u===null){if(a=n.return,a!==null){t=a;continue}break}if(n.child===u.child){for(u=n.child;u;){if(u===t)return oe(n),e;if(u===a)return oe(n),l;u=u.sibling}throw Error(d(188))}if(t.return!==a.return)t=n,a=u;else{for(var i=!1,c=n.child;c;){if(c===t){i=!0,t=n,a=u;break}if(c===a){i=!0,a=n,t=u;break}c=c.sibling}if(!i){for(c=u.child;c;){if(c===t){i=!0,t=u,a=n;break}if(c===a){i=!0,a=u,t=n;break}c=c.sibling}if(!i)throw Error(d(189))}}if(t.alternate!==a)throw Error(d(190))}if(t.tag!==3)throw Error(d(188));return t.stateNode.current===t?e:l}function pt(e){var l=e.tag;if(l===5||l===26||l===27||l===6)return e;for(e=e.child;e!==null;){if(l=pt(e),l!==null)return l;e=e.sibling}return null}var vl=Array.isArray,w=x.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,we={pending:!1,data:null,method:null,action:null},Ku=[],Vt=-1;function sl(e){return{current:e}}function be(e){0>Vt||(e.current=Ku[Vt],Ku[Vt]=null,Vt--)}function ae(e,l){Vt++,Ku[Vt]=e.current,e.current=l}var ol=sl(null),za=sl(null),Gl=sl(null),jn=sl(null);function Rn(e,l){switch(ae(Gl,l),ae(za,e),ae(ol,null),e=l.nodeType,e){case 9:case 11:l=(l=l.documentElement)&&(l=l.namespaceURI)?xf(l):0;break;default:if(e=e===8?l.parentNode:l,l=e.tagName,e=e.namespaceURI)e=xf(e),l=Af(e,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}be(ol),ae(ol,l)}function Qt(){be(ol),be(za),be(Gl)}function Ju(e){e.memoizedState!==null&&ae(jn,e);var l=ol.current,t=Af(l,e.type);l!==t&&(ae(za,e),ae(ol,t))}function Un(e){za.current===e&&(be(ol),be(za)),jn.current===e&&(be(jn),Tn._currentValue=we)}var ku=Object.prototype.hasOwnProperty,Fu=g.unstable_scheduleCallback,$u=g.unstable_cancelCallback,Qd=g.unstable_shouldYield,wd=g.unstable_requestPaint,rl=g.unstable_now,Zd=g.unstable_getCurrentPriorityLevel,os=g.unstable_ImmediatePriority,rs=g.unstable_UserBlockingPriority,_n=g.unstable_NormalPriority,Kd=g.unstable_LowPriority,fs=g.unstable_IdlePriority,Jd=g.log,kd=g.unstable_setDisableYieldValue,Ca=null,He=null;function Fd(e){if(He&&typeof He.onCommitFiberRoot=="function")try{He.onCommitFiberRoot(Ca,e,void 0,(e.current.flags&128)===128)}catch{}}function Yl(e){if(typeof Jd=="function"&&kd(e),He&&typeof He.setStrictMode=="function")try{He.setStrictMode(Ca,e)}catch{}}var Le=Math.clz32?Math.clz32:Pd,$d=Math.log,Wd=Math.LN2;function Pd(e){return e>>>=0,e===0?32:31-($d(e)/Wd|0)|0}var Hn=128,Ln=4194304;function yt(e){var l=e&42;if(l!==0)return l;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function qn(e,l){var t=e.pendingLanes;if(t===0)return 0;var a=0,n=e.suspendedLanes,u=e.pingedLanes,i=e.warmLanes;e=e.finishedLanes!==0;var c=t&134217727;return c!==0?(t=c&~n,t!==0?a=yt(t):(u&=c,u!==0?a=yt(u):e||(i=c&~i,i!==0&&(a=yt(i))))):(c=t&~n,c!==0?a=yt(c):u!==0?a=yt(u):e||(i=t&~i,i!==0&&(a=yt(i)))),a===0?0:l!==0&&l!==a&&!(l&n)&&(n=a&-a,i=l&-l,n>=i||n===32&&(i&4194176)!==0)?l:a}function Oa(e,l){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&l)===0}function Id(e,l){switch(e){case 1:case 2:case 4:case 8:return l+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ds(){var e=Hn;return Hn<<=1,!(Hn&4194176)&&(Hn=128),e}function ms(){var e=Ln;return Ln<<=1,!(Ln&62914560)&&(Ln=4194304),e}function Wu(e){for(var l=[],t=0;31>t;t++)l.push(e);return l}function ja(e,l){e.pendingLanes|=l,l!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function em(e,l,t,a,n,u){var i=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var c=e.entanglements,s=e.expirationTimes,f=e.hiddenUpdates;for(t=i&~t;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),nm=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Ts={},xs={};function um(e){return ku.call(xs,e)?!0:ku.call(Ts,e)?!1:nm.test(e)?xs[e]=!0:(Ts[e]=!0,!1)}function Bn(e,l,t){if(um(l))if(t===null)e.removeAttribute(l);else{switch(typeof t){case"undefined":case"function":case"symbol":e.removeAttribute(l);return;case"boolean":var a=l.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(l);return}}e.setAttribute(l,""+t)}}function Gn(e,l,t){if(t===null)e.removeAttribute(l);else{switch(typeof t){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(l);return}e.setAttribute(l,""+t)}}function Sl(e,l,t,a){if(a===null)e.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttributeNS(l,t,""+a)}}function Ze(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function As(e){var l=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function im(e){var l=As(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,l),a=""+e[l];if(!e.hasOwnProperty(l)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var n=t.get,u=t.set;return Object.defineProperty(e,l,{configurable:!0,get:function(){return n.call(this)},set:function(i){a=""+i,u.call(this,i)}}),Object.defineProperty(e,l,{enumerable:t.enumerable}),{getValue:function(){return a},setValue:function(i){a=""+i},stopTracking:function(){e._valueTracker=null,delete e[l]}}}}function Yn(e){e._valueTracker||(e._valueTracker=im(e))}function Ds(e){if(!e)return!1;var l=e._valueTracker;if(!l)return!0;var t=l.getValue(),a="";return e&&(a=As(e)?e.checked?"true":"false":e.value),e=a,e!==t?(l.setValue(e),!0):!1}function Xn(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var cm=/[\n"\\]/g;function Ke(e){return e.replace(cm,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function ei(e,l,t,a,n,u,i,c){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),l!=null?i==="number"?(l===0&&e.value===""||e.value!=l)&&(e.value=""+Ze(l)):e.value!==""+Ze(l)&&(e.value=""+Ze(l)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),l!=null?li(e,i,Ze(l)):t!=null?li(e,i,Ze(t)):a!=null&&e.removeAttribute("value"),n==null&&u!=null&&(e.defaultChecked=!!u),n!=null&&(e.checked=n&&typeof n!="function"&&typeof n!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?e.name=""+Ze(c):e.removeAttribute("name")}function Ns(e,l,t,a,n,u,i,c){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),l!=null||t!=null){if(!(u!=="submit"&&u!=="reset"||l!=null))return;t=t!=null?""+Ze(t):"",l=l!=null?""+Ze(l):t,c||l===e.value||(e.value=l),e.defaultValue=l}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=c?e.checked:!!a,e.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i)}function li(e,l,t){l==="number"&&Xn(e.ownerDocument)===e||e.defaultValue===""+t||(e.defaultValue=""+t)}function kt(e,l,t,a){if(e=e.options,l){l={};for(var n=0;n=Ba),Bs=" ",Gs=!1;function Ys(e,l){switch(e){case"keyup":return Hm.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Xs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Pt=!1;function qm(e,l){switch(e){case"compositionend":return Xs(l);case"keypress":return l.which!==32?null:(Gs=!0,Bs);case"textInput":return e=l.data,e===Bs&&Gs?null:e;default:return null}}function Bm(e,l){if(Pt)return e==="compositionend"||!di&&Ys(e,l)?(e=Rs(),Qn=ci=Vl=null,Pt=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:t,offset:l-e};e=a}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Fs(t)}}function Ws(e,l){return e&&l?e===l?!0:e&&e.nodeType===3?!1:l&&l.nodeType===3?Ws(e,l.parentNode):"contains"in e?e.contains(l):e.compareDocumentPosition?!!(e.compareDocumentPosition(l)&16):!1:!1}function Ps(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var l=Xn(e.document);l instanceof e.HTMLIFrameElement;){try{var t=typeof l.contentWindow.location.href=="string"}catch{t=!1}if(t)e=l.contentWindow;else break;l=Xn(e.document)}return l}function gi(e){var l=e&&e.nodeName&&e.nodeName.toLowerCase();return l&&(l==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||l==="textarea"||e.contentEditable==="true")}function Km(e,l){var t=Ps(l);l=e.focusedElem;var a=e.selectionRange;if(t!==l&&l&&l.ownerDocument&&Ws(l.ownerDocument.documentElement,l)){if(a!==null&&gi(l)){if(e=a.start,t=a.end,t===void 0&&(t=e),"selectionStart"in l)l.selectionStart=e,l.selectionEnd=Math.min(t,l.value.length);else if(t=(e=l.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var n=l.textContent.length,u=Math.min(a.start,n);a=a.end===void 0?u:Math.min(a.end,n),!t.extend&&u>a&&(n=a,a=u,u=n),n=$s(l,u);var i=$s(l,a);n&&i&&(t.rangeCount!==1||t.anchorNode!==n.node||t.anchorOffset!==n.offset||t.focusNode!==i.node||t.focusOffset!==i.offset)&&(e=e.createRange(),e.setStart(n.node,n.offset),t.removeAllRanges(),u>a?(t.addRange(e),t.extend(i.node,i.offset)):(e.setEnd(i.node,i.offset),t.addRange(e)))}}for(e=[],t=l;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l=document.documentMode,It=null,pi=null,Va=null,yi=!1;function Is(e,l,t){var a=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;yi||It==null||It!==Xn(a)||(a=It,"selectionStart"in a&&gi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Va&&Xa(Va,a)||(Va=a,a=Ou(pi,"onSelect"),0>=i,n-=i,Tl=1<<32-Le(l)+n|t<O?(Ae=z,z=null):Ae=z.sibling;var K=p(m,z,h[O],S);if(K===null){z===null&&(z=Ae);break}e&&z&&K.alternate===null&&l(m,z),r=u(K,r,O),B===null?D=K:B.sibling=K,B=K,z=Ae}if(O===h.length)return t(m,z),Z&&Dt(m,O),D;if(z===null){for(;OO?(Ae=z,z=null):Ae=z.sibling;var st=p(m,z,K.value,S);if(st===null){z===null&&(z=Ae);break}e&&z&&st.alternate===null&&l(m,z),r=u(st,r,O),B===null?D=st:B.sibling=st,B=st,z=Ae}if(K.done)return t(m,z),Z&&Dt(m,O),D;if(z===null){for(;!K.done;O++,K=h.next())K=T(m,K.value,S),K!==null&&(r=u(K,r,O),B===null?D=K:B.sibling=K,B=K);return Z&&Dt(m,O),D}for(z=a(z);!K.done;O++,K=h.next())K=y(z,m,O,K.value,S),K!==null&&(e&&K.alternate!==null&&z.delete(K.key===null?O:K.key),r=u(K,r,O),B===null?D=K:B.sibling=K,B=K);return e&&z.forEach(function(rg){return l(m,rg)}),Z&&Dt(m,O),D}function se(m,r,h,S){if(typeof h=="object"&&h!==null&&h.type===Y&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case H:e:{for(var D=h.key;r!==null;){if(r.key===D){if(D=h.type,D===Y){if(r.tag===7){t(m,r.sibling),S=n(r,h.props.children),S.return=m,m=S;break e}}else if(r.elementType===D||typeof D=="object"&&D!==null&&D.$$typeof===je&&yo(D)===r.type){t(m,r.sibling),S=n(r,h.props),Fa(S,h),S.return=m,m=S;break e}t(m,r);break}else l(m,r);r=r.sibling}h.type===Y?(S=Ht(h.props.children,m.mode,S,h.key),S.return=m,m=S):(S=Su(h.type,h.key,h.props,null,m.mode,S),Fa(S,h),S.return=m,m=S)}return i(m);case $:e:{for(D=h.key;r!==null;){if(r.key===D)if(r.tag===4&&r.stateNode.containerInfo===h.containerInfo&&r.stateNode.implementation===h.implementation){t(m,r.sibling),S=n(r,h.children||[]),S.return=m,m=S;break e}else{t(m,r);break}else l(m,r);r=r.sibling}S=bc(h,m.mode,S),S.return=m,m=S}return i(m);case je:return D=h._init,h=D(h._payload),se(m,r,h,S)}if(vl(h))return M(m,r,h,S);if(al(h)){if(D=al(h),typeof D!="function")throw Error(d(150));return h=D.call(h),_(m,r,h,S)}if(typeof h.then=="function")return se(m,r,lu(h),S);if(h.$$typeof===pe)return se(m,r,yu(m,h),S);tu(m,h)}return typeof h=="string"&&h!==""||typeof h=="number"||typeof h=="bigint"?(h=""+h,r!==null&&r.tag===6?(t(m,r.sibling),S=n(r,h),S.return=m,m=S):(t(m,r),S=vc(h,m.mode,S),S.return=m,m=S),i(m)):t(m,r)}return function(m,r,h,S){try{ka=0;var D=se(m,r,h,S);return ua=null,D}catch(z){if(z===Ka)throw z;var B=el(29,z,null,m.mode);return B.lanes=S,B.return=m,B}finally{}}}var Et=vo(!0),bo=vo(!1),ia=sl(null),au=sl(0);function So(e,l){e=Ul,ae(au,e),ae(ia,l),Ul=e|l.baseLanes}function Ni(){ae(au,Ul),ae(ia,ia.current)}function Ei(){Ul=au.current,be(ia),be(au)}var We=sl(null),dl=null;function wl(e){var l=e.alternate;ae(ye,ye.current&1),ae(We,e),dl===null&&(l===null||ia.current!==null||l.memoizedState!==null)&&(dl=e)}function To(e){if(e.tag===22){if(ae(ye,ye.current),ae(We,e),dl===null){var l=e.alternate;l!==null&&l.memoizedState!==null&&(dl=e)}}else Zl()}function Zl(){ae(ye,ye.current),ae(We,We.current)}function Al(e){be(We),dl===e&&(dl=null),be(ye)}var ye=sl(0);function nu(e){for(var l=e;l!==null;){if(l.tag===13){var t=l.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return l}else if(l.tag===19&&l.memoizedProps.revealOrder!==void 0){if(l.flags&128)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===e)break;for(;l.sibling===null;){if(l.return===null||l.return===e)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}var Wm=typeof AbortController<"u"?AbortController:function(){var e=[],l=this.signal={aborted:!1,addEventListener:function(t,a){e.push(a)}};this.abort=function(){l.aborted=!0,e.forEach(function(t){return t()})}},Pm=g.unstable_scheduleCallback,Im=g.unstable_NormalPriority,ve={$$typeof:pe,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Mi(){return{controller:new Wm,data:new Map,refCount:0}}function $a(e){e.refCount--,e.refCount===0&&Pm(Im,function(){e.controller.abort()})}var Wa=null,zi=0,ca=0,sa=null;function eh(e,l){if(Wa===null){var t=Wa=[];zi=0,ca=_c(),sa={status:"pending",value:void 0,then:function(a){t.push(a)}}}return zi++,l.then(xo,xo),l}function xo(){if(--zi===0&&Wa!==null){sa!==null&&(sa.status="fulfilled");var e=Wa;Wa=null,ca=0,sa=null;for(var l=0;lu?u:8;var i=R.T,c={};R.T=c,Zi(e,!1,l,t);try{var s=n(),f=R.S;if(f!==null&&f(c,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var v=lh(s,a);en(e,l,v,Xe(e))}else en(e,l,a,Xe(e))}catch(T){en(e,l,{then:function(){},status:"rejected",reason:T},Xe())}finally{w.p=u,R.T=i}}function ih(){}function Qi(e,l,t,a){if(e.tag!==5)throw Error(d(476));var n=Io(e).queue;Po(e,n,l,we,t===null?ih:function(){return er(e),t(a)})}function Io(e){var l=e.memoizedState;if(l!==null)return l;l={memoizedState:we,baseState:we,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Dl,lastRenderedState:we},next:null};var t={};return l.next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Dl,lastRenderedState:t},next:null},e.memoizedState=l,e=e.alternate,e!==null&&(e.memoizedState=l),l}function er(e){var l=Io(e).next.queue;en(e,l,{},Xe())}function wi(){return ze(Tn)}function lr(){return de().memoizedState}function tr(){return de().memoizedState}function ch(e){for(var l=e.return;l!==null;){switch(l.tag){case 24:case 3:var t=Xe();e=$l(t);var a=Wl(l,e,t);a!==null&&(Oe(a,l,t),an(a,l,t)),l={cache:Mi()},e.payload=l;return}l=l.return}}function sh(e,l,t){var a=Xe();t={lane:a,revertLane:0,action:t,hasEagerState:!1,eagerState:null,next:null},mu(e)?nr(l,t):(t=Si(e,l,t,a),t!==null&&(Oe(t,e,a),ur(t,l,a)))}function ar(e,l,t){var a=Xe();en(e,l,t,a)}function en(e,l,t,a){var n={lane:a,revertLane:0,action:t,hasEagerState:!1,eagerState:null,next:null};if(mu(e))nr(l,n);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=l.lastRenderedReducer,u!==null))try{var i=l.lastRenderedState,c=u(i,t);if(n.hasEagerState=!0,n.eagerState=c,qe(c,i))return $n(e,l,n,0),I===null&&Fn(),!1}catch{}finally{}if(t=Si(e,l,n,a),t!==null)return Oe(t,e,a),ur(t,l,a),!0}return!1}function Zi(e,l,t,a){if(a={lane:2,revertLane:_c(),action:a,hasEagerState:!1,eagerState:null,next:null},mu(e)){if(l)throw Error(d(479))}else l=Si(e,t,a,2),l!==null&&Oe(l,e,2)}function mu(e){var l=e.alternate;return e===q||l!==null&&l===q}function nr(e,l){oa=iu=!0;var t=e.pending;t===null?l.next=l:(l.next=t.next,t.next=l),e.pending=l}function ur(e,l,t){if(t&4194176){var a=l.lanes;a&=e.pendingLanes,t|=a,l.lanes=t,gs(e,t)}}var ml={readContext:ze,use:ou,useCallback:re,useContext:re,useEffect:re,useImperativeHandle:re,useLayoutEffect:re,useInsertionEffect:re,useMemo:re,useReducer:re,useRef:re,useState:re,useDebugValue:re,useDeferredValue:re,useTransition:re,useSyncExternalStore:re,useId:re};ml.useCacheRefresh=re,ml.useMemoCache=re,ml.useHostTransitionStatus=re,ml.useFormState=re,ml.useActionState=re,ml.useOptimistic=re;var Ct={readContext:ze,use:ou,useCallback:function(e,l){return _e().memoizedState=[e,l===void 0?null:l],e},useContext:ze,useEffect:wo,useImperativeHandle:function(e,l,t){t=t!=null?t.concat([e]):null,fu(4194308,4,Jo.bind(null,l,e),t)},useLayoutEffect:function(e,l){return fu(4194308,4,e,l)},useInsertionEffect:function(e,l){fu(4,2,e,l)},useMemo:function(e,l){var t=_e();l=l===void 0?null:l;var a=e();if(zt){Yl(!0);try{e()}finally{Yl(!1)}}return t.memoizedState=[a,l],a},useReducer:function(e,l,t){var a=_e();if(t!==void 0){var n=t(l);if(zt){Yl(!0);try{t(l)}finally{Yl(!1)}}}else n=l;return a.memoizedState=a.baseState=n,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=sh.bind(null,q,e),[a.memoizedState,e]},useRef:function(e){var l=_e();return e={current:e},l.memoizedState=e},useState:function(e){e=Bi(e);var l=e.queue,t=ar.bind(null,q,l);return l.dispatch=t,[e.memoizedState,t]},useDebugValue:Xi,useDeferredValue:function(e,l){var t=_e();return Vi(t,e,l)},useTransition:function(){var e=Bi(!1);return e=Po.bind(null,q,e.queue,!0,!1),_e().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,l,t){var a=q,n=_e();if(Z){if(t===void 0)throw Error(d(407));t=t()}else{if(t=l(),I===null)throw Error(d(349));Q&60||zo(a,l,t)}n.memoizedState=t;var u={value:t,getSnapshot:l};return n.queue=u,wo(Oo.bind(null,a,u,e),[e]),a.flags|=2048,fa(9,Co.bind(null,a,u,t,l),{destroy:void 0},null),t},useId:function(){var e=_e(),l=I.identifierPrefix;if(Z){var t=xl,a=Tl;t=(a&~(1<<32-Le(a)-1)).toString(32)+t,l=":"+l+"R"+t,t=cu++,0 title"))),Ee(u,a,t),u[Me]=e,Se(u),a=u;break e;case"link":var i=Uf("link","href",n).get(a+(t.href||""));if(i){for(var c=0;c<\/script>",e=e.removeChild(e.firstChild);break;case"select":e=typeof a.is=="string"?n.createElement("select",{is:a.is}):n.createElement("select"),a.multiple?e.multiple=!0:a.size&&(e.size=a.size);break;default:e=typeof a.is=="string"?n.createElement(t,{is:a.is}):n.createElement(t)}}e[Me]=l,e[Re]=a;e:for(n=l.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.tag!==27&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===l)break e;for(;n.sibling===null;){if(n.return===null||n.return===l)break e;n=n.return}n.sibling.return=n.return,n=n.sibling}l.stateNode=e;e:switch(Ee(e,t,a),t){case"button":case"input":case"select":case"textarea":e=!!a.autoFocus;break e;case"img":e=!0;break e;default:e=!1}e&&jl(l)}}return ne(l),l.flags&=-16777217,null;case 6:if(e&&l.stateNode!=null)e.memoizedProps!==a&&jl(l);else{if(typeof a!="string"&&l.stateNode===null)throw Error(d(166));if(e=Gl.current,Qa(l)){if(e=l.stateNode,t=l.memoizedProps,a=null,n=Ce,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}e[Me]=l,e=!!(e.nodeValue===t||a!==null&&a.suppressHydrationWarning===!0||Tf(e.nodeValue,t)),e||Nt(l)}else e=Ru(e).createTextNode(a),e[Me]=l,l.stateNode=e}return ne(l),null;case 13:if(a=l.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(n=Qa(l),a!==null&&a.dehydrated!==null){if(e===null){if(!n)throw Error(d(318));if(n=l.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(d(317));n[Me]=l}else wa(),!(l.flags&128)&&(l.memoizedState=null),l.flags|=4;ne(l),n=!1}else ul!==null&&(Mc(ul),ul=null),n=!0;if(!n)return l.flags&256?(Al(l),l):(Al(l),null)}if(Al(l),l.flags&128)return l.lanes=t,l;if(t=a!==null,e=e!==null&&e.memoizedState!==null,t){a=l.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool);var u=null;a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),u!==n&&(a.flags|=2048)}return t!==e&&t&&(l.child.flags|=8192),Tu(l,l.updateQueue),ne(l),null;case 4:return Qt(),e===null&&Bc(l.stateNode.containerInfo),ne(l),null;case 10:return Ml(l.type),ne(l),null;case 19:if(be(ye),n=l.memoizedState,n===null)return ne(l),null;if(a=(l.flags&128)!==0,u=n.rendering,u===null)if(a)fn(n,!1);else{if(ce!==0||e!==null&&e.flags&128)for(e=l.child;e!==null;){if(u=nu(e),u!==null){for(l.flags|=128,fn(n,!1),e=u.updateQueue,l.updateQueue=e,Tu(l,e),l.subtreeFlags=0,e=t,t=l.child;t!==null;)kr(t,e),t=t.sibling;return ae(ye,ye.current&1|2),l.child}e=e.sibling}n.tail!==null&&rl()>xu&&(l.flags|=128,a=!0,fn(n,!1),l.lanes=4194304)}else{if(!a)if(e=nu(u),e!==null){if(l.flags|=128,a=!0,e=e.updateQueue,l.updateQueue=e,Tu(l,e),fn(n,!0),n.tail===null&&n.tailMode==="hidden"&&!u.alternate&&!Z)return ne(l),null}else 2*rl()-n.renderingStartTime>xu&&t!==536870912&&(l.flags|=128,a=!0,fn(n,!1),l.lanes=4194304);n.isBackwards?(u.sibling=l.child,l.child=u):(e=n.last,e!==null?e.sibling=u:l.child=u,n.last=u)}return n.tail!==null?(l=n.tail,n.rendering=l,n.tail=l.sibling,n.renderingStartTime=rl(),l.sibling=null,e=ye.current,ae(ye,a?e&1|2:e&1),l):(ne(l),null);case 22:case 23:return Al(l),Ei(),a=l.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(l.flags|=8192):a&&(l.flags|=8192),a?t&536870912&&!(l.flags&128)&&(ne(l),l.subtreeFlags&6&&(l.flags|=8192)):ne(l),t=l.updateQueue,t!==null&&Tu(l,t.retryQueue),t=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(t=e.memoizedState.cachePool.pool),a=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(a=l.memoizedState.cachePool.pool),a!==t&&(l.flags|=2048),e!==null&&be(Mt),null;case 24:return t=null,e!==null&&(t=e.memoizedState.cache),l.memoizedState.cache!==t&&(l.flags|=2048),Ml(ve),ne(l),null;case 25:return null}throw Error(d(156,l.tag))}function gh(e,l){switch(xi(l),l.tag){case 1:return e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 3:return Ml(ve),Qt(),e=l.flags,e&65536&&!(e&128)?(l.flags=e&-65537|128,l):null;case 26:case 27:case 5:return Un(l),null;case 13:if(Al(l),e=l.memoizedState,e!==null&&e.dehydrated!==null){if(l.alternate===null)throw Error(d(340));wa()}return e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 19:return be(ye),null;case 4:return Qt(),null;case 10:return Ml(l.type),null;case 22:case 23:return Al(l),Ei(),e!==null&&be(Mt),e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 24:return Ml(ve),null;case 25:return null;default:return null}}function Wr(e,l){switch(xi(l),l.tag){case 3:Ml(ve),Qt();break;case 26:case 27:case 5:Un(l);break;case 4:Qt();break;case 13:Al(l);break;case 19:be(ye);break;case 10:Ml(l.type);break;case 22:case 23:Al(l),Ei(),e!==null&&be(Mt);break;case 24:Ml(ve)}}var ph={getCacheForType:function(e){var l=ze(ve),t=l.data.get(e);return t===void 0&&(t=e(),l.data.set(e,t)),t}},yh=typeof WeakMap=="function"?WeakMap:Map,ue=0,I=null,G=null,Q=0,ee=0,Ye=null,Rl=!1,ga=!1,Sc=!1,Ul=0,ce=0,tt=0,Lt=0,Tc=0,ll=0,pa=0,dn=null,hl=null,xc=!1,Ac=0,xu=1/0,Au=null,at=null,Du=!1,qt=null,mn=0,Dc=0,Nc=null,hn=0,Ec=null;function Xe(){if(ue&2&&Q!==0)return Q&-Q;if(R.T!==null){var e=ca;return e!==0?e:_c()}return ys()}function Pr(){ll===0&&(ll=!(Q&536870912)||Z?ds():536870912);var e=We.current;return e!==null&&(e.flags|=32),ll}function Oe(e,l,t){(e===I&&ee===2||e.cancelPendingCommit!==null)&&(ya(e,0),_l(e,Q,ll,!1)),ja(e,t),(!(ue&2)||e!==I)&&(e===I&&(!(ue&2)&&(Lt|=t),ce===4&&_l(e,Q,ll,!1)),gl(e))}function Ir(e,l,t){if(ue&6)throw Error(d(327));var a=!t&&(l&60)===0&&(l&e.expiredLanes)===0||Oa(e,l),n=a?Sh(e,l):Oc(e,l,!0),u=a;do{if(n===0){ga&&!a&&_l(e,l,0,!1);break}else if(n===6)_l(e,l,0,!Rl);else{if(t=e.current.alternate,u&&!vh(t)){n=Oc(e,l,!1),u=!1;continue}if(n===2){if(u=l,e.errorRecoveryDisabledLanes&u)var i=0;else i=e.pendingLanes&-536870913,i=i!==0?i:i&536870912?536870912:0;if(i!==0){l=i;e:{var c=e;n=dn;var s=c.current.memoizedState.isDehydrated;if(s&&(ya(c,i).flags|=256),i=Oc(c,i,!1),i!==2){if(Sc&&!s){c.errorRecoveryDisabledLanes|=u,Lt|=u,n=4;break e}u=hl,hl=n,u!==null&&Mc(u)}n=i}if(u=!1,n!==2)continue}}if(n===1){ya(e,0),_l(e,l,0,!0);break}e:{switch(a=e,n){case 0:case 1:throw Error(d(345));case 4:if((l&4194176)===l){_l(a,l,ll,!Rl);break e}break;case 2:hl=null;break;case 3:case 5:break;default:throw Error(d(329))}if(a.finishedWork=t,a.finishedLanes=l,(l&62914560)===l&&(u=Ac+300-rl(),10t?32:t,R.T=null,qt===null)var u=!1;else{t=Nc,Nc=null;var i=qt,c=mn;if(qt=null,mn=0,ue&6)throw Error(d(331));var s=ue;if(ue|=4,Kr(i.current),Qr(i,i.current,c,t),ue=s,gn(0,!1),He&&typeof He.onPostCommitFiberRoot=="function")try{He.onPostCommitFiberRoot(Ca,i)}catch{}u=!0}return u}finally{w.p=n,R.T=a,of(e,l)}}return!1}function rf(e,l,t){l=ke(t,l),l=ki(e.stateNode,l,2),e=Wl(e,l,2),e!==null&&(ja(e,2),gl(e))}function P(e,l,t){if(e.tag===3)rf(e,e,t);else for(;l!==null;){if(l.tag===3){rf(l,e,t);break}else if(l.tag===1){var a=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(at===null||!at.has(a))){e=ke(t,e),t=dr(2),a=Wl(l,t,2),a!==null&&(mr(t,a,l,e),ja(a,2),gl(a));break}}l=l.return}}function jc(e,l,t){var a=e.pingCache;if(a===null){a=e.pingCache=new yh;var n=new Set;a.set(l,n)}else n=a.get(l),n===void 0&&(n=new Set,a.set(l,n));n.has(t)||(Sc=!0,n.add(t),e=Ah.bind(null,e,l,t),l.then(e,e))}function Ah(e,l,t){var a=e.pingCache;a!==null&&a.delete(l),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,I===e&&(Q&t)===t&&(ce===4||ce===3&&(Q&62914560)===Q&&300>rl()-Ac?!(ue&2)&&ya(e,0):Tc|=t,pa===Q&&(pa=0)),gl(e)}function ff(e,l){l===0&&(l=ms()),e=Ql(e,l),e!==null&&(ja(e,l),gl(e))}function Dh(e){var l=e.memoizedState,t=0;l!==null&&(t=l.retryLane),ff(e,t)}function Nh(e,l){var t=0;switch(e.tag){case 13:var a=e.stateNode,n=e.memoizedState;n!==null&&(t=n.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(d(314))}a!==null&&a.delete(l),ff(e,t)}function Eh(e,l){return Fu(e,l)}var Mu=null,Sa=null,Rc=!1,zu=!1,Uc=!1,Bt=0;function gl(e){e!==Sa&&e.next===null&&(Sa===null?Mu=Sa=e:Sa=Sa.next=e),zu=!0,Rc||(Rc=!0,zh(Mh))}function gn(e,l){if(!Uc&&zu){Uc=!0;do for(var t=!1,a=Mu;a!==null;){if(e!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var i=a.suspendedLanes,c=a.pingedLanes;u=(1<<31-Le(42|e)+1)-1,u&=n&~(i&~c),u=u&201326677?u&201326677|1:u?u|2:0}u!==0&&(t=!0,hf(a,u))}else u=Q,u=qn(a,a===I?u:0),!(u&3)||Oa(a,u)||(t=!0,hf(a,u));a=a.next}while(t);Uc=!1}}function Mh(){zu=Rc=!1;var e=0;Bt!==0&&(Lh()&&(e=Bt),Bt=0);for(var l=rl(),t=null,a=Mu;a!==null;){var n=a.next,u=df(a,l);u===0?(a.next=null,t===null?Mu=n:t.next=n,n===null&&(Sa=t)):(t=a,(e!==0||u&3)&&(zu=!0)),a=n}gn(e)}function df(e,l){for(var t=e.suspendedLanes,a=e.pingedLanes,n=e.expirationTimes,u=e.pendingLanes&-62914561;0"u"?null:document;function Cf(e,l,t){var a=xa;if(a&&typeof l=="string"&&l){var n=Ke(l);n='link[rel="'+e+'"][href="'+n+'"]',typeof t=="string"&&(n+='[crossorigin="'+t+'"]'),zf.has(n)||(zf.add(n),e={rel:e,crossOrigin:t,href:l},a.querySelector(n)===null&&(l=a.createElement("link"),Ee(l,"link",e),Se(l),a.head.appendChild(l)))}}function wh(e){Hl.D(e),Cf("dns-prefetch",e,null)}function Zh(e,l){Hl.C(e,l),Cf("preconnect",e,l)}function Kh(e,l,t){Hl.L(e,l,t);var a=xa;if(a&&e&&l){var n='link[rel="preload"][as="'+Ke(l)+'"]';l==="image"&&t&&t.imageSrcSet?(n+='[imagesrcset="'+Ke(t.imageSrcSet)+'"]',typeof t.imageSizes=="string"&&(n+='[imagesizes="'+Ke(t.imageSizes)+'"]')):n+='[href="'+Ke(e)+'"]';var u=n;switch(l){case"style":u=Aa(e);break;case"script":u=Da(e)}tl.has(u)||(e=J({rel:"preload",href:l==="image"&&t&&t.imageSrcSet?void 0:e,as:l},t),tl.set(u,e),a.querySelector(n)!==null||l==="style"&&a.querySelector(vn(u))||l==="script"&&a.querySelector(bn(u))||(l=a.createElement("link"),Ee(l,"link",e),Se(l),a.head.appendChild(l)))}}function Jh(e,l){Hl.m(e,l);var t=xa;if(t&&e){var a=l&&typeof l.as=="string"?l.as:"script",n='link[rel="modulepreload"][as="'+Ke(a)+'"][href="'+Ke(e)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Da(e)}if(!tl.has(u)&&(e=J({rel:"modulepreload",href:e},l),tl.set(u,e),t.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(t.querySelector(bn(u)))return}a=t.createElement("link"),Ee(a,"link",e),Se(a),t.head.appendChild(a)}}}function kh(e,l,t){Hl.S(e,l,t);var a=xa;if(a&&e){var n=Kt(a).hoistableStyles,u=Aa(e);l=l||"default";var i=n.get(u);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(vn(u)))c.loading=5;else{e=J({rel:"stylesheet",href:e,"data-precedence":l},t),(t=tl.get(u))&&Jc(e,t);var s=i=a.createElement("link");Se(s),Ee(s,"link",e),s._p=new Promise(function(f,v){s.onload=f,s.onerror=v}),s.addEventListener("load",function(){c.loading|=1}),s.addEventListener("error",function(){c.loading|=2}),c.loading|=4,_u(i,l,a)}i={type:"stylesheet",instance:i,count:1,state:c},n.set(u,i)}}}function Fh(e,l){Hl.X(e,l);var t=xa;if(t&&e){var a=Kt(t).hoistableScripts,n=Da(e),u=a.get(n);u||(u=t.querySelector(bn(n)),u||(e=J({src:e,async:!0},l),(l=tl.get(n))&&kc(e,l),u=t.createElement("script"),Se(u),Ee(u,"link",e),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function $h(e,l){Hl.M(e,l);var t=xa;if(t&&e){var a=Kt(t).hoistableScripts,n=Da(e),u=a.get(n);u||(u=t.querySelector(bn(n)),u||(e=J({src:e,async:!0,type:"module"},l),(l=tl.get(n))&&kc(e,l),u=t.createElement("script"),Se(u),Ee(u,"link",e),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Of(e,l,t,a){var n=(n=Gl.current)?Uu(n):null;if(!n)throw Error(d(446));switch(e){case"meta":case"title":return null;case"style":return typeof t.precedence=="string"&&typeof t.href=="string"?(l=Aa(t.href),t=Kt(n).hoistableStyles,a=t.get(l),a||(a={type:"style",instance:null,count:0,state:null},t.set(l,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(t.rel==="stylesheet"&&typeof t.href=="string"&&typeof t.precedence=="string"){e=Aa(t.href);var u=Kt(n).hoistableStyles,i=u.get(e);if(i||(n=n.ownerDocument||n,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,i),(u=n.querySelector(vn(e)))&&!u._p&&(i.instance=u,i.state.loading=5),tl.has(e)||(t={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},tl.set(e,t),u||Wh(n,e,t,i.state))),l&&a===null)throw Error(d(528,""));return i}if(l&&a!==null)throw Error(d(529,""));return null;case"script":return l=t.async,t=t.src,typeof t=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Da(t),t=Kt(n).hoistableScripts,a=t.get(l),a||(a={type:"script",instance:null,count:0,state:null},t.set(l,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(d(444,e))}}function Aa(e){return'href="'+Ke(e)+'"'}function vn(e){return'link[rel="stylesheet"]['+e+"]"}function jf(e){return J({},e,{"data-precedence":e.precedence,precedence:null})}function Wh(e,l,t,a){e.querySelector('link[rel="preload"][as="style"]['+l+"]")?a.loading=1:(l=e.createElement("link"),a.preload=l,l.addEventListener("load",function(){return a.loading|=1}),l.addEventListener("error",function(){return a.loading|=2}),Ee(l,"link",t),Se(l),e.head.appendChild(l))}function Da(e){return'[src="'+Ke(e)+'"]'}function bn(e){return"script[async]"+e}function Rf(e,l,t){if(l.count++,l.instance===null)switch(l.type){case"style":var a=e.querySelector('style[data-href~="'+Ke(t.href)+'"]');if(a)return l.instance=a,Se(a),a;var n=J({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),Se(a),Ee(a,"style",n),_u(a,t.precedence,e),l.instance=a;case"stylesheet":n=Aa(t.href);var u=e.querySelector(vn(n));if(u)return l.state.loading|=4,l.instance=u,Se(u),u;a=jf(t),(n=tl.get(n))&&Jc(a,n),u=(e.ownerDocument||e).createElement("link"),Se(u);var i=u;return i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ee(u,"link",a),l.state.loading|=4,_u(u,t.precedence,e),l.instance=u;case"script":return u=Da(t.src),(n=e.querySelector(bn(u)))?(l.instance=n,Se(n),n):(a=t,(n=tl.get(u))&&(a=J({},t),kc(a,n)),e=e.ownerDocument||e,n=e.createElement("script"),Se(n),Ee(n,"link",a),e.head.appendChild(n),l.instance=n);case"void":return null;default:throw Error(d(443,l.type))}else l.type==="stylesheet"&&!(l.state.loading&4)&&(a=l.instance,l.state.loading|=4,_u(a,t.precedence,e));return l.instance}function _u(e,l,t){for(var a=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,u=n,i=0;i title"):null)}function Ph(e,l,t){if(t===1||l.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof l.precedence!="string"||typeof l.href!="string"||l.href==="")break;return!0;case"link":if(typeof l.rel!="string"||typeof l.href!="string"||l.href===""||l.onLoad||l.onError)break;switch(l.rel){case"stylesheet":return e=l.disabled,typeof l.precedence=="string"&&e==null;default:return!0}case"script":if(l.async&&typeof l.async!="function"&&typeof l.async!="symbol"&&!l.onLoad&&!l.onError&&l.src&&typeof l.src=="string")return!0}return!1}function Hf(e){return!(e.type==="stylesheet"&&!(e.state.loading&3))}var Sn=null;function Ih(){}function eg(e,l,t){if(Sn===null)throw Error(d(475));var a=Sn;if(l.type==="stylesheet"&&(typeof t.media!="string"||matchMedia(t.media).matches!==!1)&&!(l.state.loading&4)){if(l.instance===null){var n=Aa(t.href),u=e.querySelector(vn(n));if(u){e=u._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(a.count++,a=Lu.bind(a),e.then(a,a)),l.state.loading|=4,l.instance=u,Se(u);return}u=e.ownerDocument||e,t=jf(t),(n=tl.get(n))&&Jc(t,n),u=u.createElement("link"),Se(u);var i=u;i._p=new Promise(function(c,s){i.onload=c,i.onerror=s}),Ee(u,"link",t),l.instance=u}a.stylesheets===null&&(a.stylesheets=new Map),a.stylesheets.set(l,e),(e=l.state.preload)&&!(l.state.loading&3)&&(a.count++,l=Lu.bind(a),e.addEventListener("load",l),e.addEventListener("error",l))}}function lg(){if(Sn===null)throw Error(d(475));var e=Sn;return e.stylesheets&&e.count===0&&Fc(e,e.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(g)}catch(b){console.error(b)}}return g(),ts.exports=lp(),ts.exports}var ap=tp();const np={visibleTabs:{},setTabVisibility:()=>{},isTabVisible:()=>!1},pd=E.createContext(np),up=({children:g})=>{const b=Ve.use.currentTab(),[x,d]=E.useState(()=>({documents:!0,"knowledge-graph":!0,retrieval:!0,api:!0}));E.useEffect(()=>{d(j=>({...j,documents:!0,"knowledge-graph":!0,retrieval:!0,api:!0}))},[b]);const N=E.useMemo(()=>({visibleTabs:x,setTabVisibility:(j,H)=>{d($=>({...$,[j]:H}))},isTabVisible:j=>!!x[j]}),[x]);return o.jsx(pd.Provider,{value:N,children:g})};var yd="AlertDialog",[ip,Yy]=hg(yd,[td]),Bl=td(),vd=g=>{const{__scopeAlertDialog:b,...x}=g,d=Bl(b);return o.jsx(Sg,{...d,...x,modal:!0})};vd.displayName=yd;var cp="AlertDialogTrigger",sp=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(Tg,{...N,...d,ref:b})});sp.displayName=cp;var op="AlertDialogPortal",bd=g=>{const{__scopeAlertDialog:b,...x}=g,d=Bl(b);return o.jsx(dg,{...d,...x})};bd.displayName=op;var rp="AlertDialogOverlay",Sd=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(fg,{...N,...d,ref:b})});Sd.displayName=rp;var Na="AlertDialogContent",[fp,dp]=ip(Na),Td=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,children:d,...N}=g,j=Bl(x),H=E.useRef(null),$=ad(b,H),Y=E.useRef(null);return o.jsx(mg,{contentName:Na,titleName:xd,docsSlug:"alert-dialog",children:o.jsx(fp,{scope:x,cancelRef:Y,children:o.jsxs(gg,{role:"alertdialog",...j,...N,ref:$,onOpenAutoFocus:pg(N.onOpenAutoFocus,W=>{var he;W.preventDefault(),(he=Y.current)==null||he.focus({preventScroll:!0})}),onPointerDownOutside:W=>W.preventDefault(),onInteractOutside:W=>W.preventDefault(),children:[o.jsx(yg,{children:d}),o.jsx(hp,{contentRef:H})]})})})});Td.displayName=Na;var xd="AlertDialogTitle",Ad=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(vg,{...N,...d,ref:b})});Ad.displayName=xd;var Dd="AlertDialogDescription",Nd=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(bg,{...N,...d,ref:b})});Nd.displayName=Dd;var mp="AlertDialogAction",Ed=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,N=Bl(x);return o.jsx(nd,{...N,...d,ref:b})});Ed.displayName=mp;var Md="AlertDialogCancel",zd=E.forwardRef((g,b)=>{const{__scopeAlertDialog:x,...d}=g,{cancelRef:N}=dp(Md,x),j=Bl(x),H=ad(b,N);return o.jsx(nd,{...j,...d,ref:H})});zd.displayName=Md;var hp=({contentRef:g})=>{const b=`\`${Na}\` requires a description for the component to be accessible for screen reader users. You can add a description to the \`${Na}\` by passing a \`${Dd}\` component as a child, which also benefits sighted users by adding visible context to the dialog. Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Na}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. -For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return E.useEffect(()=>{var d;document.getElementById((d=g.current)==null?void 0:d.getAttribute("aria-describedby"))||console.warn(b)},[b,g]),null},gp=vd,pp=bd,Cd=Sd,Od=Td,jd=Ed,Rd=zd,Ud=Ad,_d=Nd;const yp=gp,vp=pp,Hd=E.forwardRef(({className:g,...b},x)=>o.jsx(Cd,{className:Qe("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",g),...b,ref:x}));Hd.displayName=Cd.displayName;const Ld=E.forwardRef(({className:g,...b},x)=>o.jsxs(vp,{children:[o.jsx(Hd,{}),o.jsx(Od,{ref:x,className:Qe("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",g),...b})]}));Ld.displayName=Od.displayName;const qd=({className:g,...b})=>o.jsx("div",{className:Qe("flex flex-col space-y-2 text-center sm:text-left",g),...b});qd.displayName="AlertDialogHeader";const Bd=E.forwardRef(({className:g,...b},x)=>o.jsx(Ud,{ref:x,className:Qe("text-lg font-semibold",g),...b}));Bd.displayName=Ud.displayName;const Gd=E.forwardRef(({className:g,...b},x)=>o.jsx(_d,{ref:x,className:Qe("text-muted-foreground text-sm",g),...b}));Gd.displayName=_d.displayName;const bp=E.forwardRef(({className:g,...b},x)=>o.jsx(jd,{ref:x,className:Qe(od(),g),...b}));bp.displayName=jd.displayName;const Sp=E.forwardRef(({className:g,...b},x)=>o.jsx(Rd,{ref:x,className:Qe(od({variant:"outline"}),"mt-2 sm:mt-0",g),...b}));Sp.displayName=Rd.displayName;const Tp=({open:g,onOpenChange:b})=>{const{t:x}=ql(),d=Ve.use.apiKey(),[N,j]=E.useState(""),H=Gt.use.message();E.useEffect(()=>{j(d||"")},[d,g]),E.useEffect(()=>{H&&(H.includes(rd)||H.includes(fd))&&b(!0)},[H,b]);const $=E.useCallback(()=>{Ve.setState({apiKey:N||null}),b(!1)},[N,b]),Y=E.useCallback(W=>{j(W.target.value)},[j]);return o.jsx(yp,{open:g,onOpenChange:b,children:o.jsxs(Ld,{children:[o.jsxs(qd,{children:[o.jsx(Bd,{children:x("apiKeyAlert.title")}),o.jsx(Gd,{children:x("apiKeyAlert.description")})]}),o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("form",{className:"flex gap-2",onSubmit:W=>W.preventDefault(),children:[o.jsx(us,{type:"password",value:N,onChange:Y,placeholder:x("apiKeyAlert.placeholder"),className:"max-h-full w-full min-w-0",autoComplete:"off"}),o.jsx(Cn,{onClick:$,variant:"outline",size:"sm",children:x("apiKeyAlert.save")})]}),H&&o.jsx("div",{className:"text-sm text-red-500",children:H})]})]})})},xp=({status:g})=>{const{t:b}=ql();return g?o.jsxs("div",{className:"min-w-[300px] space-y-2 text-xs",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.storageInfo")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.workingDirectory"),":"]}),o.jsx("span",{className:"truncate",children:g.working_directory}),o.jsxs("span",{children:[b("graphPanel.statusCard.inputDirectory"),":"]}),o.jsx("span",{className:"truncate",children:g.input_directory})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.llmConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.llmBinding"),":"]}),o.jsx("span",{children:g.configuration.llm_binding}),o.jsxs("span",{children:[b("graphPanel.statusCard.llmBindingHost"),":"]}),o.jsx("span",{children:g.configuration.llm_binding_host}),o.jsxs("span",{children:[b("graphPanel.statusCard.llmModel"),":"]}),o.jsx("span",{children:g.configuration.llm_model}),o.jsxs("span",{children:[b("graphPanel.statusCard.maxTokens"),":"]}),o.jsx("span",{children:g.configuration.max_tokens})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.embeddingConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingBinding"),":"]}),o.jsx("span",{children:g.configuration.embedding_binding}),o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingBindingHost"),":"]}),o.jsx("span",{children:g.configuration.embedding_binding_host}),o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingModel"),":"]}),o.jsx("span",{children:g.configuration.embedding_model})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.storageConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.kvStorage"),":"]}),o.jsx("span",{children:g.configuration.kv_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.docStatusStorage"),":"]}),o.jsx("span",{children:g.configuration.doc_status_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.graphStorage"),":"]}),o.jsx("span",{children:g.configuration.graph_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.vectorStorage"),":"]}),o.jsx("span",{children:g.configuration.vector_storage})]})]})]}):o.jsx("div",{className:"text-foreground text-xs",children:b("graphPanel.statusCard.unavailable")})},Ap=({open:g,onOpenChange:b,status:x})=>{const{t:d}=ql();return o.jsx(Mg,{open:g,onOpenChange:b,children:o.jsxs(zg,{className:"sm:max-w-[500px]",children:[o.jsxs(Cg,{children:[o.jsx(Og,{children:d("graphPanel.statusDialog.title")}),o.jsx(jg,{children:d("graphPanel.statusDialog.description")})]}),o.jsx(xp,{status:x})]})})},Dp=()=>{const{t:g}=ql(),b=Gt.use.health(),x=Gt.use.lastCheckTime(),d=Gt.use.status(),[N,j]=E.useState(!1),[H,$]=E.useState(!1);return E.useEffect(()=>{j(!0);const Y=setTimeout(()=>j(!1),300);return()=>clearTimeout(Y)},[x]),o.jsxs("div",{className:"fixed right-4 bottom-4 flex items-center gap-2 opacity-80 select-none",children:[o.jsxs("div",{className:"flex cursor-pointer items-center gap-2",onClick:()=>$(!0),children:[o.jsx("div",{className:Qe("h-3 w-3 rounded-full transition-all duration-300","shadow-[0_0_8px_rgba(0,0,0,0.2)]",b?"bg-green-500":"bg-red-500",N&&"scale-125",N&&b&&"shadow-[0_0_12px_rgba(34,197,94,0.4)]",N&&!b&&"shadow-[0_0_12px_rgba(239,68,68,0.4)]")}),o.jsx("span",{className:"text-muted-foreground text-xs",children:g(b?"graphPanel.statusIndicator.connected":"graphPanel.statusIndicator.disconnected")})]}),o.jsx(Ap,{open:H,onOpenChange:$,status:d})]})};function Yd({className:g}){const[b,x]=E.useState(!1),{t:d}=ql(),N=Ve.use.language(),j=Ve.use.setLanguage(),H=Ve.use.theme(),$=Ve.use.setTheme(),Y=E.useCallback(he=>{j(he)},[j]),W=E.useCallback(he=>{$(he)},[$]);return o.jsxs(Rg,{open:b,onOpenChange:x,children:[o.jsx(Ug,{asChild:!0,children:o.jsx(Cn,{variant:"ghost",size:"icon",className:Qe("h-9 w-9",g),children:o.jsx(_g,{className:"h-5 w-5"})})}),o.jsx(Hg,{side:"bottom",align:"end",className:"w-56",children:o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("label",{className:"text-sm font-medium",children:d("settings.language")}),o.jsxs(Jf,{value:N,onValueChange:Y,children:[o.jsx(Ff,{children:o.jsx($f,{})}),o.jsxs(Wf,{children:[o.jsx(ot,{value:"en",children:"English"}),o.jsx(ot,{value:"zh",children:"中文"}),o.jsx(ot,{value:"fr",children:"Français"}),o.jsx(ot,{value:"ar",children:"العربية"}),o.jsx(ot,{value:"zh_TW",children:"繁體中文"})]})]})]}),o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("label",{className:"text-sm font-medium",children:d("settings.theme")}),o.jsxs(Jf,{value:H,onValueChange:W,children:[o.jsx(Ff,{children:o.jsx($f,{})}),o.jsxs(Wf,{children:[o.jsx(ot,{value:"light",children:d("settings.light")}),o.jsx(ot,{value:"dark",children:d("settings.dark")}),o.jsx(ot,{value:"system",children:d("settings.system")})]})]})]})]})})]})}const Np=xg,Xd=E.forwardRef(({className:g,...b},x)=>o.jsx(ud,{ref:x,className:Qe("bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",g),...b}));Xd.displayName=ud.displayName;const Vd=E.forwardRef(({className:g,...b},x)=>o.jsx(id,{ref:x,className:Qe("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-sm px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm",g),...b}));Vd.displayName=id.displayName;const zn=E.forwardRef(({className:g,...b},x)=>o.jsx(cd,{ref:x,className:Qe("ring-offset-background focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none","data-[state=inactive]:invisible data-[state=active]:visible","h-full w-full",g),forceMount:!0,...b}));zn.displayName=cd.displayName;function Zu({value:g,currentTab:b,children:x}){return o.jsx(Vd,{value:g,className:Qe("cursor-pointer px-2 py-1 transition-all",b===g?"!bg-emerald-400 !text-zinc-50":"hover:bg-background/60"),children:x})}function Ep(){const g=Ve.use.currentTab(),{t:b}=ql();return o.jsx("div",{className:"flex h-8 self-center",children:o.jsxs(Xd,{className:"h-full gap-2",children:[o.jsx(Zu,{value:"documents",currentTab:g,children:b("header.documents")}),o.jsx(Zu,{value:"knowledge-graph",currentTab:g,children:b("header.knowledgeGraph")}),o.jsx(Zu,{value:"retrieval",currentTab:g,children:b("header.retrieval")}),o.jsx(Zu,{value:"api",currentTab:g,children:b("header.api")})]})})}function Mp(){const{t:g}=ql(),{isGuestMode:b,coreVersion:x,apiVersion:d,username:N,webuiTitle:j,webuiDescription:H}=Ll(),$=x&&d?`${x}/${d}`:null,Y=()=>{md.navigateToLogin()};return o.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[o.jsxs("div",{className:"min-w-[200px] w-auto flex items-center",children:[o.jsxs("a",{href:dd,className:"flex items-center gap-2",children:[o.jsx(ss,{className:"size-4 text-emerald-400","aria-hidden":"true"}),o.jsx("span",{className:"font-bold md:inline-block",children:is.name})]}),j&&o.jsxs("div",{className:"flex items-center",children:[o.jsx("span",{className:"mx-1 text-xs text-gray-500 dark:text-gray-400",children:"|"}),o.jsx(Lg,{children:o.jsxs(qg,{children:[o.jsx(Bg,{asChild:!0,children:o.jsx("span",{className:"font-medium text-sm cursor-default",children:j})}),H&&o.jsx(Gg,{side:"bottom",children:H})]})})]})]}),o.jsxs("div",{className:"flex h-10 flex-1 items-center justify-center",children:[o.jsx(Ep,{}),b&&o.jsx("div",{className:"ml-2 self-center px-2 py-1 text-xs bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-200 rounded-md",children:g("login.guestMode","Guest Mode")})]}),o.jsx("nav",{className:"w-[200px] flex items-center justify-end",children:o.jsxs("div",{className:"flex items-center gap-2",children:[$&&o.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-400 mr-1",children:["v",$]}),o.jsx(Cn,{variant:"ghost",size:"icon",side:"bottom",tooltip:g("header.projectRepository"),children:o.jsx("a",{href:is.github,target:"_blank",rel:"noopener noreferrer",children:o.jsx(Yg,{className:"size-4","aria-hidden":"true"})})}),o.jsx(Yd,{}),!b&&o.jsx(Cn,{variant:"ghost",size:"icon",side:"bottom",tooltip:`${g("header.logout")} (${N})`,onClick:Y,children:o.jsx(Xg,{className:"size-4","aria-hidden":"true"})})]})})]})}const zp=()=>{const g=E.useContext(pd);if(!g)throw new Error("useTabVisibility must be used within a TabVisibilityProvider");return g};function Cp(){const{t:g}=ql(),{isTabVisible:b}=zp(),x=b("api"),[d,N]=E.useState(!1);return E.useEffect(()=>{d||N(!0)},[d]),o.jsx("div",{className:`size-full ${x?"":"hidden"}`,children:d?o.jsx("iframe",{src:Vg+"/docs",className:"size-full w-full h-full",style:{width:"100%",height:"100%",border:"none"}},"api-docs-iframe"):o.jsx("div",{className:"flex h-full w-full items-center justify-center bg-background",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),o.jsx("p",{children:g("apiSite.loading")})]})})})}function Op(){const g=Gt.use.message(),b=Ve.use.enableHealthCheck(),x=Ve.use.currentTab(),[d,N]=E.useState(!1),[j,H]=E.useState(!0),$=E.useRef(!1),Y=E.useRef(!1),W=E.useCallback(V=>{N(V),V||Gt.getState().clear()},[]),he=E.useRef(!0);E.useEffect(()=>{he.current=!0;const V=()=>{he.current=!1};return window.addEventListener("beforeunload",V),()=>{he.current=!1,window.removeEventListener("beforeunload",V)}},[]),E.useEffect(()=>{if(!b||d)return;const V=async()=>{try{he.current&&await Gt.getState().check()}catch(le){console.error("Health check error:",le)}};Y.current||(Y.current=!0,V());const pe=setInterval(V,Qg*1e3);return()=>clearInterval(pe)},[b,d]),E.useEffect(()=>{(async()=>{if($.current)return;if($.current=!0,sessionStorage.getItem("VERSION_CHECKED_FROM_LOGIN")==="true"){H(!1);return}try{H(!0);const le=localStorage.getItem("LIGHTRAG-API-TOKEN"),C=await gd();if(!C.auth_configured&&C.access_token)Ll.getState().login(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null);else if(le&&(C.core_version||C.api_version||C.webui_title||C.webui_description)){const pl=C.auth_mode==="disabled"||Ll.getState().isGuestMode;Ll.getState().login(le,pl,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null)}sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true")}catch(le){console.error("Failed to get version info:",le)}finally{H(!1)}})()},[]);const ge=E.useCallback(V=>Ve.getState().setCurrentTab(V),[]);return E.useEffect(()=>{g&&(g.includes(rd)||g.includes(fd))&&N(!0)},[g]),o.jsx(hd,{children:o.jsx(up,{children:j?o.jsxs("div",{className:"flex h-screen w-screen flex-col",children:[o.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[o.jsx("div",{className:"min-w-[200px] w-auto flex items-center",children:o.jsxs("a",{href:dd,className:"flex items-center gap-2",children:[o.jsx(ss,{className:"size-4 text-emerald-400","aria-hidden":"true"}),o.jsx("span",{className:"font-bold md:inline-block",children:is.name})]})}),o.jsx("div",{className:"flex h-10 flex-1 items-center justify-center"}),o.jsx("nav",{className:"w-[200px] flex items-center justify-end"})]}),o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),o.jsx("p",{children:"Initializing..."})]})})]}):o.jsxs("main",{className:"flex h-screen w-screen overflow-hidden",children:[o.jsxs(Np,{defaultValue:x,className:"!m-0 flex grow flex-col !p-0 overflow-hidden",onValueChange:ge,children:[o.jsx(Mp,{}),o.jsxs("div",{className:"relative grow",children:[o.jsx(zn,{value:"documents",className:"absolute top-0 right-0 bottom-0 left-0 overflow-auto",children:o.jsx(Pg,{})}),o.jsx(zn,{value:"knowledge-graph",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(wg,{})}),o.jsx(zn,{value:"retrieval",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(Wg,{})}),o.jsx(zn,{value:"api",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(Cp,{})})]})]}),b&&o.jsx(Dp,{}),o.jsx(Tp,{open:d,onOpenChange:W})]})})})}const jp=()=>{const g=sd(),{login:b,isAuthenticated:x}=Ll(),{t:d}=ql(),[N,j]=E.useState(!1),[H,$]=E.useState(""),[Y,W]=E.useState(""),[he,ge]=E.useState(!0),V=E.useRef(!1);if(E.useEffect(()=>{console.log("LoginPage mounted")},[]),E.useEffect(()=>((async()=>{if(!V.current){V.current=!0;try{if(x){g("/");return}const C=await gd();if((C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),!C.auth_configured&&C.access_token){b(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),C.message&&En.info(C.message),g("/");return}ge(!1)}catch(C){console.error("Failed to check auth configuration:",C),ge(!1)}}})(),()=>{}),[x,b,g]),he)return null;const pe=async le=>{if(le.preventDefault(),!H||!Y){En.error(d("login.errorEmptyFields"));return}try{j(!0);const C=await Jg(H,Y);localStorage.getItem("LIGHTRAG-PREVIOUS-USER")===H?console.log("Same user logging in, preserving chat history"):(console.log("Different user logging in, clearing chat history"),Ve.getState().setRetrievalHistory([])),localStorage.setItem("LIGHTRAG-PREVIOUS-USER",H);const je=C.auth_mode==="disabled";b(C.access_token,je,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),(C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),je?En.info(C.message||d("login.authDisabled","Authentication is disabled. Using guest access.")):En.success(d("login.successMessage")),g("/")}catch(C){console.error("Login failed...",C),En.error(d("login.errorInvalidCredentials")),Ll.getState().logout(),localStorage.removeItem("LIGHTRAG-API-TOKEN")}finally{j(!1)}};return o.jsxs("div",{className:"flex h-screen w-screen items-center justify-center bg-gradient-to-br from-emerald-50 to-teal-100 dark:from-gray-900 dark:to-gray-800",children:[o.jsx("div",{className:"absolute top-4 right-4 flex items-center gap-2",children:o.jsx(Yd,{className:"bg-white/30 dark:bg-gray-800/30 backdrop-blur-sm rounded-md"})}),o.jsxs(Zg,{className:"w-full max-w-[480px] shadow-lg mx-4",children:[o.jsx(Kg,{className:"flex items-center justify-center space-y-2 pb-8 pt-6",children:o.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("img",{src:"logo.png",alt:"LightRAG Logo",className:"h-12 w-12"}),o.jsx(ss,{className:"size-10 text-emerald-400","aria-hidden":"true"})]}),o.jsxs("div",{className:"text-center space-y-2",children:[o.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"LightRAG"}),o.jsx("p",{className:"text-muted-foreground text-sm",children:d("login.description")})]})]})}),o.jsx(kg,{className:"px-8 pb-8",children:o.jsxs("form",{onSubmit:pe,className:"space-y-6",children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("label",{htmlFor:"username-input",className:"text-sm font-medium w-16 shrink-0",children:d("login.username")}),o.jsx(us,{id:"username-input",placeholder:d("login.usernamePlaceholder"),value:H,onChange:le=>$(le.target.value),required:!0,className:"h-11 flex-1"})]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("label",{htmlFor:"password-input",className:"text-sm font-medium w-16 shrink-0",children:d("login.password")}),o.jsx(us,{id:"password-input",type:"password",placeholder:d("login.passwordPlaceholder"),value:Y,onChange:le=>W(le.target.value),required:!0,className:"h-11 flex-1"})]}),o.jsx(Cn,{type:"submit",className:"w-full h-11 text-base font-medium mt-2",disabled:N,children:d(N?"login.loggingIn":"login.loginButton")})]})})]})]})},Rp=()=>{const[g,b]=E.useState(!0),{isAuthenticated:x}=Ll(),d=sd();return E.useEffect(()=>{md.setNavigate(d)},[d]),E.useEffect(()=>((async()=>{try{const j=localStorage.getItem("LIGHTRAG-API-TOKEN");if(j&&x){b(!1);return}j||Ll.getState().logout()}catch(j){console.error("Auth initialization error:",j),x||Ll.getState().logout()}finally{b(!1)}})(),()=>{}),[x]),E.useEffect(()=>{!g&&!x&&window.location.hash.slice(1)!=="/login"&&(console.log("Not authenticated, redirecting to login"),d("/login"))},[g,x,d]),g?null:o.jsxs(Eg,{children:[o.jsx(kf,{path:"/login",element:o.jsx(jp,{})}),o.jsx(kf,{path:"/*",element:x?o.jsx(Op,{}):null})]})},Up=()=>o.jsx(hd,{children:o.jsxs(Ng,{children:[o.jsx(Rp,{}),o.jsx(Fg,{position:"bottom-center",theme:"system",closeButton:!0,richColors:!0})]})}),_p={language:"Language",theme:"Theme",light:"Light",dark:"Dark",system:"System"},Hp={documents:"Documents",knowledgeGraph:"Knowledge Graph",retrieval:"Retrieval",api:"API",projectRepository:"Project Repository",logout:"Logout",themeToggle:{switchToLight:"Switch to light theme",switchToDark:"Switch to dark theme"}},Lp={description:"Please enter your account and password to log in to the system",username:"Username",usernamePlaceholder:"Please input a username",password:"Password",passwordPlaceholder:"Please input a password",loginButton:"Login",loggingIn:"Logging in...",successMessage:"Login succeeded",errorEmptyFields:"Please enter your username and password",errorInvalidCredentials:"Login failed, please check username and password",authDisabled:"Authentication is disabled. Using login free mode.",guestMode:"Login Free"},qp={cancel:"Cancel",save:"Save"},Bp={clearDocuments:{button:"Clear",tooltip:"Clear documents",title:"Clear Documents",description:"This will remove all documents from the system",warning:"WARNING: This action will permanently delete all documents and cannot be undone!",confirm:"Do you really want to clear all documents?",confirmPrompt:"Type 'yes' to confirm this action",confirmPlaceholder:"Type yes to confirm",clearCache:"Clear LLM cache",confirmButton:"YES",success:"Documents cleared successfully",cacheCleared:"Cache cleared successfully",cacheClearFailed:`Failed to clear cache: +For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return E.useEffect(()=>{var d;document.getElementById((d=g.current)==null?void 0:d.getAttribute("aria-describedby"))||console.warn(b)},[b,g]),null},gp=vd,pp=bd,Cd=Sd,Od=Td,jd=Ed,Rd=zd,Ud=Ad,_d=Nd;const yp=gp,vp=pp,Hd=E.forwardRef(({className:g,...b},x)=>o.jsx(Cd,{className:Qe("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",g),...b,ref:x}));Hd.displayName=Cd.displayName;const Ld=E.forwardRef(({className:g,...b},x)=>o.jsxs(vp,{children:[o.jsx(Hd,{}),o.jsx(Od,{ref:x,className:Qe("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",g),...b})]}));Ld.displayName=Od.displayName;const qd=({className:g,...b})=>o.jsx("div",{className:Qe("flex flex-col space-y-2 text-center sm:text-left",g),...b});qd.displayName="AlertDialogHeader";const Bd=E.forwardRef(({className:g,...b},x)=>o.jsx(Ud,{ref:x,className:Qe("text-lg font-semibold",g),...b}));Bd.displayName=Ud.displayName;const Gd=E.forwardRef(({className:g,...b},x)=>o.jsx(_d,{ref:x,className:Qe("text-muted-foreground text-sm",g),...b}));Gd.displayName=_d.displayName;const bp=E.forwardRef(({className:g,...b},x)=>o.jsx(jd,{ref:x,className:Qe(od(),g),...b}));bp.displayName=jd.displayName;const Sp=E.forwardRef(({className:g,...b},x)=>o.jsx(Rd,{ref:x,className:Qe(od({variant:"outline"}),"mt-2 sm:mt-0",g),...b}));Sp.displayName=Rd.displayName;const Tp=({open:g,onOpenChange:b})=>{const{t:x}=ql(),d=Ve.use.apiKey(),[N,j]=E.useState(""),H=Gt.use.message();E.useEffect(()=>{j(d||"")},[d,g]),E.useEffect(()=>{H&&(H.includes(rd)||H.includes(fd))&&b(!0)},[H,b]);const $=E.useCallback(()=>{Ve.setState({apiKey:N||null}),b(!1)},[N,b]),Y=E.useCallback(W=>{j(W.target.value)},[j]);return o.jsx(yp,{open:g,onOpenChange:b,children:o.jsxs(Ld,{children:[o.jsxs(qd,{children:[o.jsx(Bd,{children:x("apiKeyAlert.title")}),o.jsx(Gd,{children:x("apiKeyAlert.description")})]}),o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("form",{className:"flex gap-2",onSubmit:W=>W.preventDefault(),children:[o.jsx(us,{type:"password",value:N,onChange:Y,placeholder:x("apiKeyAlert.placeholder"),className:"max-h-full w-full min-w-0",autoComplete:"off"}),o.jsx(Cn,{onClick:$,variant:"outline",size:"sm",children:x("apiKeyAlert.save")})]}),H&&o.jsx("div",{className:"text-sm text-red-500",children:H})]})]})})},xp=({status:g})=>{const{t:b}=ql();return g?o.jsxs("div",{className:"min-w-[300px] space-y-2 text-xs",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.storageInfo")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.workingDirectory"),":"]}),o.jsx("span",{className:"truncate",children:g.working_directory}),o.jsxs("span",{children:[b("graphPanel.statusCard.inputDirectory"),":"]}),o.jsx("span",{className:"truncate",children:g.input_directory})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.llmConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.llmBinding"),":"]}),o.jsx("span",{children:g.configuration.llm_binding}),o.jsxs("span",{children:[b("graphPanel.statusCard.llmBindingHost"),":"]}),o.jsx("span",{children:g.configuration.llm_binding_host}),o.jsxs("span",{children:[b("graphPanel.statusCard.llmModel"),":"]}),o.jsx("span",{children:g.configuration.llm_model}),o.jsxs("span",{children:[b("graphPanel.statusCard.maxTokens"),":"]}),o.jsx("span",{children:g.configuration.max_tokens})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.embeddingConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingBinding"),":"]}),o.jsx("span",{children:g.configuration.embedding_binding}),o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingBindingHost"),":"]}),o.jsx("span",{children:g.configuration.embedding_binding_host}),o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingModel"),":"]}),o.jsx("span",{children:g.configuration.embedding_model})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.storageConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.kvStorage"),":"]}),o.jsx("span",{children:g.configuration.kv_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.docStatusStorage"),":"]}),o.jsx("span",{children:g.configuration.doc_status_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.graphStorage"),":"]}),o.jsx("span",{children:g.configuration.graph_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.vectorStorage"),":"]}),o.jsx("span",{children:g.configuration.vector_storage})]})]})]}):o.jsx("div",{className:"text-foreground text-xs",children:b("graphPanel.statusCard.unavailable")})},Ap=({open:g,onOpenChange:b,status:x})=>{const{t:d}=ql();return o.jsx(Mg,{open:g,onOpenChange:b,children:o.jsxs(zg,{className:"sm:max-w-[500px]",children:[o.jsxs(Cg,{children:[o.jsx(Og,{children:d("graphPanel.statusDialog.title")}),o.jsx(jg,{children:d("graphPanel.statusDialog.description")})]}),o.jsx(xp,{status:x})]})})},Dp=()=>{const{t:g}=ql(),b=Gt.use.health(),x=Gt.use.lastCheckTime(),d=Gt.use.status(),[N,j]=E.useState(!1),[H,$]=E.useState(!1);return E.useEffect(()=>{j(!0);const Y=setTimeout(()=>j(!1),300);return()=>clearTimeout(Y)},[x]),o.jsxs("div",{className:"fixed right-4 bottom-4 flex items-center gap-2 opacity-80 select-none",children:[o.jsxs("div",{className:"flex cursor-pointer items-center gap-2",onClick:()=>$(!0),children:[o.jsx("div",{className:Qe("h-3 w-3 rounded-full transition-all duration-300","shadow-[0_0_8px_rgba(0,0,0,0.2)]",b?"bg-green-500":"bg-red-500",N&&"scale-125",N&&b&&"shadow-[0_0_12px_rgba(34,197,94,0.4)]",N&&!b&&"shadow-[0_0_12px_rgba(239,68,68,0.4)]")}),o.jsx("span",{className:"text-muted-foreground text-xs",children:g(b?"graphPanel.statusIndicator.connected":"graphPanel.statusIndicator.disconnected")})]}),o.jsx(Ap,{open:H,onOpenChange:$,status:d})]})};function Yd({className:g}){const[b,x]=E.useState(!1),{t:d}=ql(),N=Ve.use.language(),j=Ve.use.setLanguage(),H=Ve.use.theme(),$=Ve.use.setTheme(),Y=E.useCallback(he=>{j(he)},[j]),W=E.useCallback(he=>{$(he)},[$]);return o.jsxs(Rg,{open:b,onOpenChange:x,children:[o.jsx(Ug,{asChild:!0,children:o.jsx(Cn,{variant:"ghost",size:"icon",className:Qe("h-9 w-9",g),children:o.jsx(_g,{className:"h-5 w-5"})})}),o.jsx(Hg,{side:"bottom",align:"end",className:"w-56",children:o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("label",{className:"text-sm font-medium",children:d("settings.language")}),o.jsxs(kf,{value:N,onValueChange:Y,children:[o.jsx(Ff,{children:o.jsx($f,{})}),o.jsxs(Wf,{children:[o.jsx(ot,{value:"en",children:"English"}),o.jsx(ot,{value:"zh",children:"中文"}),o.jsx(ot,{value:"fr",children:"Français"}),o.jsx(ot,{value:"ar",children:"العربية"}),o.jsx(ot,{value:"zh_TW",children:"繁體中文"})]})]})]}),o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("label",{className:"text-sm font-medium",children:d("settings.theme")}),o.jsxs(kf,{value:H,onValueChange:W,children:[o.jsx(Ff,{children:o.jsx($f,{})}),o.jsxs(Wf,{children:[o.jsx(ot,{value:"light",children:d("settings.light")}),o.jsx(ot,{value:"dark",children:d("settings.dark")}),o.jsx(ot,{value:"system",children:d("settings.system")})]})]})]})]})})]})}const Np=xg,Xd=E.forwardRef(({className:g,...b},x)=>o.jsx(ud,{ref:x,className:Qe("bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",g),...b}));Xd.displayName=ud.displayName;const Vd=E.forwardRef(({className:g,...b},x)=>o.jsx(id,{ref:x,className:Qe("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-sm px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm",g),...b}));Vd.displayName=id.displayName;const zn=E.forwardRef(({className:g,...b},x)=>o.jsx(cd,{ref:x,className:Qe("ring-offset-background focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none","data-[state=inactive]:invisible data-[state=active]:visible","h-full w-full",g),forceMount:!0,...b}));zn.displayName=cd.displayName;function Zu({value:g,currentTab:b,children:x}){return o.jsx(Vd,{value:g,className:Qe("cursor-pointer px-2 py-1 transition-all",b===g?"!bg-emerald-400 !text-zinc-50":"hover:bg-background/60"),children:x})}function Ep(){const g=Ve.use.currentTab(),{t:b}=ql();return o.jsx("div",{className:"flex h-8 self-center",children:o.jsxs(Xd,{className:"h-full gap-2",children:[o.jsx(Zu,{value:"documents",currentTab:g,children:b("header.documents")}),o.jsx(Zu,{value:"knowledge-graph",currentTab:g,children:b("header.knowledgeGraph")}),o.jsx(Zu,{value:"retrieval",currentTab:g,children:b("header.retrieval")}),o.jsx(Zu,{value:"api",currentTab:g,children:b("header.api")})]})})}function Mp(){const{t:g}=ql(),{isGuestMode:b,coreVersion:x,apiVersion:d,username:N,webuiTitle:j,webuiDescription:H}=Ll(),$=x&&d?`${x}/${d}`:null,Y=()=>{md.navigateToLogin()};return o.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[o.jsxs("div",{className:"min-w-[200px] w-auto flex items-center",children:[o.jsxs("a",{href:dd,className:"flex items-center gap-2",children:[o.jsx(ss,{className:"size-4 text-emerald-400","aria-hidden":"true"}),o.jsx("span",{className:"font-bold md:inline-block",children:is.name})]}),j&&o.jsxs("div",{className:"flex items-center",children:[o.jsx("span",{className:"mx-1 text-xs text-gray-500 dark:text-gray-400",children:"|"}),o.jsx(Lg,{children:o.jsxs(qg,{children:[o.jsx(Bg,{asChild:!0,children:o.jsx("span",{className:"font-medium text-sm cursor-default",children:j})}),H&&o.jsx(Gg,{side:"bottom",children:H})]})})]})]}),o.jsxs("div",{className:"flex h-10 flex-1 items-center justify-center",children:[o.jsx(Ep,{}),b&&o.jsx("div",{className:"ml-2 self-center px-2 py-1 text-xs bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-200 rounded-md",children:g("login.guestMode","Guest Mode")})]}),o.jsx("nav",{className:"w-[200px] flex items-center justify-end",children:o.jsxs("div",{className:"flex items-center gap-2",children:[$&&o.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-400 mr-1",children:["v",$]}),o.jsx(Cn,{variant:"ghost",size:"icon",side:"bottom",tooltip:g("header.projectRepository"),children:o.jsx("a",{href:is.github,target:"_blank",rel:"noopener noreferrer",children:o.jsx(Yg,{className:"size-4","aria-hidden":"true"})})}),o.jsx(Yd,{}),!b&&o.jsx(Cn,{variant:"ghost",size:"icon",side:"bottom",tooltip:`${g("header.logout")} (${N})`,onClick:Y,children:o.jsx(Xg,{className:"size-4","aria-hidden":"true"})})]})})]})}const zp=()=>{const g=E.useContext(pd);if(!g)throw new Error("useTabVisibility must be used within a TabVisibilityProvider");return g};function Cp(){const{t:g}=ql(),{isTabVisible:b}=zp(),x=b("api"),[d,N]=E.useState(!1);return E.useEffect(()=>{d||N(!0)},[d]),o.jsx("div",{className:`size-full ${x?"":"hidden"}`,children:d?o.jsx("iframe",{src:Vg+"/docs",className:"size-full w-full h-full",style:{width:"100%",height:"100%",border:"none"}},"api-docs-iframe"):o.jsx("div",{className:"flex h-full w-full items-center justify-center bg-background",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),o.jsx("p",{children:g("apiSite.loading")})]})})})}function Op(){const g=Gt.use.message(),b=Ve.use.enableHealthCheck(),x=Ve.use.currentTab(),[d,N]=E.useState(!1),[j,H]=E.useState(!0),$=E.useRef(!1),Y=E.useRef(!1),W=E.useCallback(V=>{N(V),V||Gt.getState().clear()},[]),he=E.useRef(!0);E.useEffect(()=>{he.current=!0;const V=()=>{he.current=!1};return window.addEventListener("beforeunload",V),()=>{he.current=!1,window.removeEventListener("beforeunload",V)}},[]),E.useEffect(()=>{if(!b||d)return;const V=async()=>{try{he.current&&await Gt.getState().check()}catch(le){console.error("Health check error:",le)}};Y.current||(Y.current=!0,V());const pe=setInterval(V,Qg*1e3);return()=>clearInterval(pe)},[b,d]),E.useEffect(()=>{(async()=>{if($.current)return;if($.current=!0,sessionStorage.getItem("VERSION_CHECKED_FROM_LOGIN")==="true"){H(!1);return}try{H(!0);const le=localStorage.getItem("LIGHTRAG-API-TOKEN"),C=await gd();if(!C.auth_configured&&C.access_token)Ll.getState().login(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null);else if(le&&(C.core_version||C.api_version||C.webui_title||C.webui_description)){const pl=C.auth_mode==="disabled"||Ll.getState().isGuestMode;Ll.getState().login(le,pl,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null)}sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true")}catch(le){console.error("Failed to get version info:",le)}finally{H(!1)}})()},[]);const ge=E.useCallback(V=>Ve.getState().setCurrentTab(V),[]);return E.useEffect(()=>{g&&(g.includes(rd)||g.includes(fd))&&N(!0)},[g]),o.jsx(hd,{children:o.jsx(up,{children:j?o.jsxs("div",{className:"flex h-screen w-screen flex-col",children:[o.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[o.jsx("div",{className:"min-w-[200px] w-auto flex items-center",children:o.jsxs("a",{href:dd,className:"flex items-center gap-2",children:[o.jsx(ss,{className:"size-4 text-emerald-400","aria-hidden":"true"}),o.jsx("span",{className:"font-bold md:inline-block",children:is.name})]})}),o.jsx("div",{className:"flex h-10 flex-1 items-center justify-center"}),o.jsx("nav",{className:"w-[200px] flex items-center justify-end"})]}),o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),o.jsx("p",{children:"Initializing..."})]})})]}):o.jsxs("main",{className:"flex h-screen w-screen overflow-hidden",children:[o.jsxs(Np,{defaultValue:x,className:"!m-0 flex grow flex-col !p-0 overflow-hidden",onValueChange:ge,children:[o.jsx(Mp,{}),o.jsxs("div",{className:"relative grow",children:[o.jsx(zn,{value:"documents",className:"absolute top-0 right-0 bottom-0 left-0 overflow-auto",children:o.jsx(Pg,{})}),o.jsx(zn,{value:"knowledge-graph",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(wg,{})}),o.jsx(zn,{value:"retrieval",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(Wg,{})}),o.jsx(zn,{value:"api",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(Cp,{})})]})]}),b&&o.jsx(Dp,{}),o.jsx(Tp,{open:d,onOpenChange:W})]})})})}const jp=()=>{const g=sd(),{login:b,isAuthenticated:x}=Ll(),{t:d}=ql(),[N,j]=E.useState(!1),[H,$]=E.useState(""),[Y,W]=E.useState(""),[he,ge]=E.useState(!0),V=E.useRef(!1);if(E.useEffect(()=>{console.log("LoginPage mounted")},[]),E.useEffect(()=>((async()=>{if(!V.current){V.current=!0;try{if(x){g("/");return}const C=await gd();if((C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),!C.auth_configured&&C.access_token){b(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),C.message&&En.info(C.message),g("/");return}ge(!1)}catch(C){console.error("Failed to check auth configuration:",C),ge(!1)}}})(),()=>{}),[x,b,g]),he)return null;const pe=async le=>{if(le.preventDefault(),!H||!Y){En.error(d("login.errorEmptyFields"));return}try{j(!0);const C=await kg(H,Y);localStorage.getItem("LIGHTRAG-PREVIOUS-USER")===H?console.log("Same user logging in, preserving chat history"):(console.log("Different user logging in, clearing chat history"),Ve.getState().setRetrievalHistory([])),localStorage.setItem("LIGHTRAG-PREVIOUS-USER",H);const je=C.auth_mode==="disabled";b(C.access_token,je,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),(C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),je?En.info(C.message||d("login.authDisabled","Authentication is disabled. Using guest access.")):En.success(d("login.successMessage")),g("/")}catch(C){console.error("Login failed...",C),En.error(d("login.errorInvalidCredentials")),Ll.getState().logout(),localStorage.removeItem("LIGHTRAG-API-TOKEN")}finally{j(!1)}};return o.jsxs("div",{className:"flex h-screen w-screen items-center justify-center bg-gradient-to-br from-emerald-50 to-teal-100 dark:from-gray-900 dark:to-gray-800",children:[o.jsx("div",{className:"absolute top-4 right-4 flex items-center gap-2",children:o.jsx(Yd,{className:"bg-white/30 dark:bg-gray-800/30 backdrop-blur-sm rounded-md"})}),o.jsxs(Zg,{className:"w-full max-w-[480px] shadow-lg mx-4",children:[o.jsx(Kg,{className:"flex items-center justify-center space-y-2 pb-8 pt-6",children:o.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("img",{src:"logo.png",alt:"LightRAG Logo",className:"h-12 w-12"}),o.jsx(ss,{className:"size-10 text-emerald-400","aria-hidden":"true"})]}),o.jsxs("div",{className:"text-center space-y-2",children:[o.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"LightRAG"}),o.jsx("p",{className:"text-muted-foreground text-sm",children:d("login.description")})]})]})}),o.jsx(Jg,{className:"px-8 pb-8",children:o.jsxs("form",{onSubmit:pe,className:"space-y-6",children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("label",{htmlFor:"username-input",className:"text-sm font-medium w-16 shrink-0",children:d("login.username")}),o.jsx(us,{id:"username-input",placeholder:d("login.usernamePlaceholder"),value:H,onChange:le=>$(le.target.value),required:!0,className:"h-11 flex-1"})]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("label",{htmlFor:"password-input",className:"text-sm font-medium w-16 shrink-0",children:d("login.password")}),o.jsx(us,{id:"password-input",type:"password",placeholder:d("login.passwordPlaceholder"),value:Y,onChange:le=>W(le.target.value),required:!0,className:"h-11 flex-1"})]}),o.jsx(Cn,{type:"submit",className:"w-full h-11 text-base font-medium mt-2",disabled:N,children:d(N?"login.loggingIn":"login.loginButton")})]})})]})]})},Rp=()=>{const[g,b]=E.useState(!0),{isAuthenticated:x}=Ll(),d=sd();return E.useEffect(()=>{md.setNavigate(d)},[d]),E.useEffect(()=>((async()=>{try{const j=localStorage.getItem("LIGHTRAG-API-TOKEN");if(j&&x){b(!1);return}j||Ll.getState().logout()}catch(j){console.error("Auth initialization error:",j),x||Ll.getState().logout()}finally{b(!1)}})(),()=>{}),[x]),E.useEffect(()=>{!g&&!x&&window.location.hash.slice(1)!=="/login"&&(console.log("Not authenticated, redirecting to login"),d("/login"))},[g,x,d]),g?null:o.jsxs(Eg,{children:[o.jsx(Jf,{path:"/login",element:o.jsx(jp,{})}),o.jsx(Jf,{path:"/*",element:x?o.jsx(Op,{}):null})]})},Up=()=>o.jsx(hd,{children:o.jsxs(Ng,{children:[o.jsx(Rp,{}),o.jsx(Fg,{position:"bottom-center",theme:"system",closeButton:!0,richColors:!0})]})}),_p={language:"Language",theme:"Theme",light:"Light",dark:"Dark",system:"System"},Hp={documents:"Documents",knowledgeGraph:"Knowledge Graph",retrieval:"Retrieval",api:"API",projectRepository:"Project Repository",logout:"Logout",themeToggle:{switchToLight:"Switch to light theme",switchToDark:"Switch to dark theme"}},Lp={description:"Please enter your account and password to log in to the system",username:"Username",usernamePlaceholder:"Please input a username",password:"Password",passwordPlaceholder:"Please input a password",loginButton:"Login",loggingIn:"Logging in...",successMessage:"Login succeeded",errorEmptyFields:"Please enter your username and password",errorInvalidCredentials:"Login failed, please check username and password",authDisabled:"Authentication is disabled. Using login free mode.",guestMode:"Login Free"},qp={cancel:"Cancel",save:"Save",saving:"Saving...",saveFailed:"Save failed"},Bp={clearDocuments:{button:"Clear",tooltip:"Clear documents",title:"Clear Documents",description:"This will remove all documents from the system",warning:"WARNING: This action will permanently delete all documents and cannot be undone!",confirm:"Do you really want to clear all documents?",confirmPrompt:"Type 'yes' to confirm this action",confirmPlaceholder:"Type yes to confirm",clearCache:"Clear LLM cache",confirmButton:"YES",success:"Documents cleared successfully",cacheCleared:"Cache cleared successfully",cacheClearFailed:`Failed to clear cache: {{error}}`,failed:`Clear Documents Failed: {{message}}`,error:`Clear Documents Failed: {{error}}`},uploadDocuments:{button:"Upload",tooltip:"Upload documents",title:"Upload Documents",description:"Drag and drop your documents here or click to browse.",single:{uploading:"Uploading {{name}}: {{percent}}%",success:`Upload Success: @@ -50,7 +50,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert- • Bypass: Passes query directly to LLM without retrieval`,queryModeOptions:{naive:"Naive",local:"Local",global:"Global",hybrid:"Hybrid",mix:"Mix",bypass:"Bypass"},responseFormat:"Response Format",responseFormatTooltip:`Defines the response format. Examples: • Multiple Paragraphs • Single Paragraph -• Bullet Points`,responseFormatOptions:{multipleParagraphs:"Multiple Paragraphs",singleParagraph:"Single Paragraph",bulletPoints:"Bullet Points"},topK:"Top K Results",topKTooltip:"Number of top items to retrieve. Represents entities in 'local' mode and relationships in 'global' mode",topKPlaceholder:"Number of results",maxTokensTextUnit:"Max Tokens for Text Unit",maxTokensTextUnitTooltip:"Maximum number of tokens allowed for each retrieved text chunk",maxTokensGlobalContext:"Max Tokens for Global Context",maxTokensGlobalContextTooltip:"Maximum number of tokens allocated for relationship descriptions in global retrieval",maxTokensLocalContext:"Max Tokens for Local Context",maxTokensLocalContextTooltip:"Maximum number of tokens allocated for entity descriptions in local retrieval",historyTurns:"History Turns",historyTurnsTooltip:"Number of complete conversation turns (user-assistant pairs) to consider in the response context",historyTurnsPlaceholder:"Number of history turns",onlyNeedContext:"Only Need Context",onlyNeedContextTooltip:"If True, only returns the retrieved context without generating a response",onlyNeedPrompt:"Only Need Prompt",onlyNeedPromptTooltip:"If True, only returns the generated prompt without producing a response",streamResponse:"Stream Response",streamResponseTooltip:"If True, enables streaming output for real-time responses",userPrompt:"User Prompt",userPromptTooltip:"Provide additional response requirements to the LLM (unrelated to query content, only for output processing).",userPromptPlaceholder:"Enter custom prompt (optional)"}},Xp={loading:"Loading API Documentation..."},Vp={title:"API Key is required",description:"Please enter your API key to access the service",placeholder:"Enter your API key",save:"Save"},Qp={settings:_p,header:Hp,login:Lp,common:qp,documentPanel:Bp,graphPanel:Gp,retrievePanel:Yp,apiSite:Xp,apiKeyAlert:Vp},wp={language:"语言",theme:"主题",light:"浅色",dark:"深色",system:"系统"},Zp={documents:"文档",knowledgeGraph:"知识图谱",retrieval:"检索",api:"API",projectRepository:"项目仓库",logout:"退出登录",themeToggle:{switchToLight:"切换到浅色主题",switchToDark:"切换到深色主题"}},Kp={description:"请输入您的账号和密码登录系统",username:"用户名",usernamePlaceholder:"请输入用户名",password:"密码",passwordPlaceholder:"请输入密码",loginButton:"登录",loggingIn:"登录中...",successMessage:"登录成功",errorEmptyFields:"请输入您的用户名和密码",errorInvalidCredentials:"登录失败,请检查用户名和密码",authDisabled:"认证已禁用,使用无需登陆模式。",guestMode:"无需登陆"},kp={cancel:"取消",save:"保存"},Jp={clearDocuments:{button:"清空",tooltip:"清空文档",title:"清空文档",description:"此操作将从系统中移除所有文档",warning:"警告:此操作将永久删除所有文档,无法恢复!",confirm:"确定要清空所有文档吗?",confirmPrompt:"请输入 yes 确认操作",confirmPlaceholder:"输入 yes 确认",clearCache:"清空LLM缓存",confirmButton:"确定",success:"文档清空成功",cacheCleared:"缓存清空成功",cacheClearFailed:`清空缓存失败: +• Bullet Points`,responseFormatOptions:{multipleParagraphs:"Multiple Paragraphs",singleParagraph:"Single Paragraph",bulletPoints:"Bullet Points"},topK:"Top K Results",topKTooltip:"Number of top items to retrieve. Represents entities in 'local' mode and relationships in 'global' mode",topKPlaceholder:"Number of results",maxTokensTextUnit:"Max Tokens for Text Unit",maxTokensTextUnitTooltip:"Maximum number of tokens allowed for each retrieved text chunk",maxTokensGlobalContext:"Max Tokens for Global Context",maxTokensGlobalContextTooltip:"Maximum number of tokens allocated for relationship descriptions in global retrieval",maxTokensLocalContext:"Max Tokens for Local Context",maxTokensLocalContextTooltip:"Maximum number of tokens allocated for entity descriptions in local retrieval",historyTurns:"History Turns",historyTurnsTooltip:"Number of complete conversation turns (user-assistant pairs) to consider in the response context",historyTurnsPlaceholder:"Number of history turns",onlyNeedContext:"Only Need Context",onlyNeedContextTooltip:"If True, only returns the retrieved context without generating a response",onlyNeedPrompt:"Only Need Prompt",onlyNeedPromptTooltip:"If True, only returns the generated prompt without producing a response",streamResponse:"Stream Response",streamResponseTooltip:"If True, enables streaming output for real-time responses",userPrompt:"User Prompt",userPromptTooltip:"Provide additional response requirements to the LLM (unrelated to query content, only for output processing).",userPromptPlaceholder:"Enter custom prompt (optional)"}},Xp={loading:"Loading API Documentation..."},Vp={title:"API Key is required",description:"Please enter your API key to access the service",placeholder:"Enter your API key",save:"Save"},Qp={settings:_p,header:Hp,login:Lp,common:qp,documentPanel:Bp,graphPanel:Gp,retrievePanel:Yp,apiSite:Xp,apiKeyAlert:Vp},wp={language:"语言",theme:"主题",light:"浅色",dark:"深色",system:"系统"},Zp={documents:"文档",knowledgeGraph:"知识图谱",retrieval:"检索",api:"API",projectRepository:"项目仓库",logout:"退出登录",themeToggle:{switchToLight:"切换到浅色主题",switchToDark:"切换到深色主题"}},Kp={description:"请输入您的账号和密码登录系统",username:"用户名",usernamePlaceholder:"请输入用户名",password:"密码",passwordPlaceholder:"请输入密码",loginButton:"登录",loggingIn:"登录中...",successMessage:"登录成功",errorEmptyFields:"请输入您的用户名和密码",errorInvalidCredentials:"登录失败,请检查用户名和密码",authDisabled:"认证已禁用,使用无需登陆模式。",guestMode:"无需登陆"},Jp={cancel:"取消",save:"保存",saving:"保存中...",saveFailed:"保存失败"},kp={clearDocuments:{button:"清空",tooltip:"清空文档",title:"清空文档",description:"此操作将从系统中移除所有文档",warning:"警告:此操作将永久删除所有文档,无法恢复!",confirm:"确定要清空所有文档吗?",confirmPrompt:"请输入 yes 确认操作",confirmPlaceholder:"输入 yes 确认",clearCache:"清空LLM缓存",confirmButton:"确定",success:"文档清空成功",cacheCleared:"缓存清空成功",cacheClearFailed:`清空缓存失败: {{error}}`,failed:`清空文档失败: {{message}}`,error:`清空文档失败: {{error}}`},uploadDocuments:{button:"上传",tooltip:"上传文档",title:"上传文档",description:"拖拽文件到此处或点击浏览",single:{uploading:"正在上传 {{name}}:{{percent}}%",success:`上传成功: @@ -72,7 +72,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert- • Bypass:直接传递查询到LLM,不进行检索`,queryModeOptions:{naive:"Naive",local:"Local",global:"Global",hybrid:"Hybrid",mix:"Mix",bypass:"Bypass"},responseFormat:"响应格式",responseFormatTooltip:`定义响应格式。例如: • 多段落 • 单段落 -• 要点`,responseFormatOptions:{multipleParagraphs:"多段落",singleParagraph:"单段落",bulletPoints:"要点"},topK:"Top K结果",topKTooltip:"检索的顶部项目数。在'local'模式下表示实体,在'global'模式下表示关系",topKPlaceholder:"结果数量",maxTokensTextUnit:"文本单元最大令牌数",maxTokensTextUnitTooltip:"每个检索文本块允许的最大令牌数",maxTokensGlobalContext:"全局上下文最大令牌数",maxTokensGlobalContextTooltip:"全局检索中关系描述的最大令牌数",maxTokensLocalContext:"本地上下文最大令牌数",maxTokensLocalContextTooltip:"本地检索中实体描述的最大令牌数",historyTurns:"历史轮次",historyTurnsTooltip:"响应上下文中考虑的完整对话轮次(用户-助手对)数量",historyTurnsPlaceholder:"历史轮次数",onlyNeedContext:"仅需上下文",onlyNeedContextTooltip:"如果为True,仅返回检索到的上下文而不生成响应",onlyNeedPrompt:"仅需提示",onlyNeedPromptTooltip:"如果为True,仅返回生成的提示而不产生响应",streamResponse:"流式响应",streamResponseTooltip:"如果为True,启用实时流式输出响应",userPrompt:"用户提示词",userPromptTooltip:"向LLM提供额外的响应要求(与查询内容无关,仅用于处理输出)。",userPromptPlaceholder:"输入自定义提示词(可选)"}},Wp={loading:"正在加载 API 文档..."},Pp={title:"需要 API Key",description:"请输入您的 API Key 以访问服务",placeholder:"请输入 API Key",save:"保存"},Ip={settings:wp,header:Zp,login:Kp,common:kp,documentPanel:Jp,graphPanel:Fp,retrievePanel:$p,apiSite:Wp,apiKeyAlert:Pp},ey={language:"Langue",theme:"Thème",light:"Clair",dark:"Sombre",system:"Système"},ly={documents:"Documents",knowledgeGraph:"Graphe de connaissances",retrieval:"Récupération",api:"API",projectRepository:"Référentiel du projet",logout:"Déconnexion",themeToggle:{switchToLight:"Passer au thème clair",switchToDark:"Passer au thème sombre"}},ty={description:"Veuillez entrer votre compte et mot de passe pour vous connecter au système",username:"Nom d'utilisateur",usernamePlaceholder:"Veuillez saisir un nom d'utilisateur",password:"Mot de passe",passwordPlaceholder:"Veuillez saisir un mot de passe",loginButton:"Connexion",loggingIn:"Connexion en cours...",successMessage:"Connexion réussie",errorEmptyFields:"Veuillez saisir votre nom d'utilisateur et mot de passe",errorInvalidCredentials:"Échec de la connexion, veuillez vérifier le nom d'utilisateur et le mot de passe",authDisabled:"L'authentification est désactivée. Utilisation du mode sans connexion.",guestMode:"Mode sans connexion"},ay={cancel:"Annuler",save:"Sauvegarder"},ny={clearDocuments:{button:"Effacer",tooltip:"Effacer les documents",title:"Effacer les documents",description:"Cette action supprimera tous les documents du système",warning:"ATTENTION : Cette action supprimera définitivement tous les documents et ne peut pas être annulée !",confirm:"Voulez-vous vraiment effacer tous les documents ?",confirmPrompt:"Tapez 'yes' pour confirmer cette action",confirmPlaceholder:"Tapez yes pour confirmer",clearCache:"Effacer le cache LLM",confirmButton:"OUI",success:"Documents effacés avec succès",cacheCleared:"Cache effacé avec succès",cacheClearFailed:`Échec de l'effacement du cache : +• 要点`,responseFormatOptions:{multipleParagraphs:"多段落",singleParagraph:"单段落",bulletPoints:"要点"},topK:"Top K结果",topKTooltip:"检索的顶部项目数。在'local'模式下表示实体,在'global'模式下表示关系",topKPlaceholder:"结果数量",maxTokensTextUnit:"文本单元最大令牌数",maxTokensTextUnitTooltip:"每个检索文本块允许的最大令牌数",maxTokensGlobalContext:"全局上下文最大令牌数",maxTokensGlobalContextTooltip:"全局检索中关系描述的最大令牌数",maxTokensLocalContext:"本地上下文最大令牌数",maxTokensLocalContextTooltip:"本地检索中实体描述的最大令牌数",historyTurns:"历史轮次",historyTurnsTooltip:"响应上下文中考虑的完整对话轮次(用户-助手对)数量",historyTurnsPlaceholder:"历史轮次数",onlyNeedContext:"仅需上下文",onlyNeedContextTooltip:"如果为True,仅返回检索到的上下文而不生成响应",onlyNeedPrompt:"仅需提示",onlyNeedPromptTooltip:"如果为True,仅返回生成的提示而不产生响应",streamResponse:"流式响应",streamResponseTooltip:"如果为True,启用实时流式输出响应",userPrompt:"用户提示词",userPromptTooltip:"向LLM提供额外的响应要求(与查询内容无关,仅用于处理输出)。",userPromptPlaceholder:"输入自定义提示词(可选)"}},Wp={loading:"正在加载 API 文档..."},Pp={title:"需要 API Key",description:"请输入您的 API Key 以访问服务",placeholder:"请输入 API Key",save:"保存"},Ip={settings:wp,header:Zp,login:Kp,common:Jp,documentPanel:kp,graphPanel:Fp,retrievePanel:$p,apiSite:Wp,apiKeyAlert:Pp},ey={language:"Langue",theme:"Thème",light:"Clair",dark:"Sombre",system:"Système"},ly={documents:"Documents",knowledgeGraph:"Graphe de connaissances",retrieval:"Récupération",api:"API",projectRepository:"Référentiel du projet",logout:"Déconnexion",themeToggle:{switchToLight:"Passer au thème clair",switchToDark:"Passer au thème sombre"}},ty={description:"Veuillez entrer votre compte et mot de passe pour vous connecter au système",username:"Nom d'utilisateur",usernamePlaceholder:"Veuillez saisir un nom d'utilisateur",password:"Mot de passe",passwordPlaceholder:"Veuillez saisir un mot de passe",loginButton:"Connexion",loggingIn:"Connexion en cours...",successMessage:"Connexion réussie",errorEmptyFields:"Veuillez saisir votre nom d'utilisateur et mot de passe",errorInvalidCredentials:"Échec de la connexion, veuillez vérifier le nom d'utilisateur et le mot de passe",authDisabled:"L'authentification est désactivée. Utilisation du mode sans connexion.",guestMode:"Mode sans connexion"},ay={cancel:"Annuler",save:"Sauvegarder",saving:"Sauvegarde en cours...",saveFailed:"Échec de la sauvegarde"},ny={clearDocuments:{button:"Effacer",tooltip:"Effacer les documents",title:"Effacer les documents",description:"Cette action supprimera tous les documents du système",warning:"ATTENTION : Cette action supprimera définitivement tous les documents et ne peut pas être annulée !",confirm:"Voulez-vous vraiment effacer tous les documents ?",confirmPrompt:"Tapez 'yes' pour confirmer cette action",confirmPlaceholder:"Tapez yes pour confirmer",clearCache:"Effacer le cache LLM",confirmButton:"OUI",success:"Documents effacés avec succès",cacheCleared:"Cache effacé avec succès",cacheClearFailed:`Échec de l'effacement du cache : {{error}}`,failed:`Échec de l'effacement des documents : {{message}}`,error:`Échec de l'effacement des documents : {{error}}`},uploadDocuments:{button:"Télécharger",tooltip:"Télécharger des documents",title:"Télécharger des documents",description:"Glissez-déposez vos documents ici ou cliquez pour parcourir.",single:{uploading:"Téléchargement de {{name}} : {{percent}}%",success:`Succès du téléchargement : @@ -94,7 +94,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert- • Bypass : Transmet directement la requête au LLM sans récupération`,queryModeOptions:{naive:"Naïf",local:"Local",global:"Global",hybrid:"Hybride",mix:"Mixte",bypass:"Bypass"},responseFormat:"Format de réponse",responseFormatTooltip:`Définit le format de la réponse. Exemples : • Plusieurs paragraphes • Paragraphe unique -• Points à puces`,responseFormatOptions:{multipleParagraphs:"Plusieurs paragraphes",singleParagraph:"Paragraphe unique",bulletPoints:"Points à puces"},topK:"Top K résultats",topKTooltip:"Nombre d'éléments supérieurs à récupérer. Représente les entités en mode 'local' et les relations en mode 'global'",topKPlaceholder:"Nombre de résultats",maxTokensTextUnit:"Nombre maximum de jetons pour l'unité de texte",maxTokensTextUnitTooltip:"Nombre maximum de jetons autorisés pour chaque fragment de texte récupéré",maxTokensGlobalContext:"Nombre maximum de jetons pour le contexte global",maxTokensGlobalContextTooltip:"Nombre maximum de jetons alloués pour les descriptions des relations dans la récupération globale",maxTokensLocalContext:"Nombre maximum de jetons pour le contexte local",maxTokensLocalContextTooltip:"Nombre maximum de jetons alloués pour les descriptions des entités dans la récupération locale",historyTurns:"Tours d'historique",historyTurnsTooltip:"Nombre de tours complets de conversation (paires utilisateur-assistant) à prendre en compte dans le contexte de la réponse",historyTurnsPlaceholder:"Nombre de tours d'historique",onlyNeedContext:"Besoin uniquement du contexte",onlyNeedContextTooltip:"Si vrai, ne renvoie que le contexte récupéré sans générer de réponse",onlyNeedPrompt:"Besoin uniquement de l'invite",onlyNeedPromptTooltip:"Si vrai, ne renvoie que l'invite générée sans produire de réponse",streamResponse:"Réponse en flux",streamResponseTooltip:"Si vrai, active la sortie en flux pour des réponses en temps réel",userPrompt:"Invite personnalisée",userPromptTooltip:"Fournir des exigences de réponse supplémentaires au LLM (sans rapport avec le contenu de la requête, uniquement pour le traitement de sortie).",userPromptPlaceholder:"Entrez une invite personnalisée (facultatif)"}},cy={loading:"Chargement de la documentation de l'API..."},sy={title:"Clé API requise",description:"Veuillez entrer votre clé API pour accéder au service",placeholder:"Entrez votre clé API",save:"Sauvegarder"},oy={settings:ey,header:ly,login:ty,common:ay,documentPanel:ny,graphPanel:uy,retrievePanel:iy,apiSite:cy,apiKeyAlert:sy},ry={language:"اللغة",theme:"السمة",light:"فاتح",dark:"داكن",system:"النظام"},fy={documents:"المستندات",knowledgeGraph:"شبكة المعرفة",retrieval:"الاسترجاع",api:"واجهة برمجة التطبيقات",projectRepository:"مستودع المشروع",logout:"تسجيل الخروج",themeToggle:{switchToLight:"التحويل إلى السمة الفاتحة",switchToDark:"التحويل إلى السمة الداكنة"}},dy={description:"الرجاء إدخال حسابك وكلمة المرور لتسجيل الدخول إلى النظام",username:"اسم المستخدم",usernamePlaceholder:"الرجاء إدخال اسم المستخدم",password:"كلمة المرور",passwordPlaceholder:"الرجاء إدخال كلمة المرور",loginButton:"تسجيل الدخول",loggingIn:"جاري تسجيل الدخول...",successMessage:"تم تسجيل الدخول بنجاح",errorEmptyFields:"الرجاء إدخال اسم المستخدم وكلمة المرور",errorInvalidCredentials:"فشل تسجيل الدخول، يرجى التحقق من اسم المستخدم وكلمة المرور",authDisabled:"تم تعطيل المصادقة. استخدام وضع بدون تسجيل دخول.",guestMode:"وضع بدون تسجيل دخول"},my={cancel:"إلغاء",save:"حفظ"},hy={clearDocuments:{button:"مسح",tooltip:"مسح المستندات",title:"مسح المستندات",description:"سيؤدي هذا إلى إزالة جميع المستندات من النظام",warning:"تحذير: سيؤدي هذا الإجراء إلى حذف جميع المستندات بشكل دائم ولا يمكن التراجع عنه!",confirm:"هل تريد حقًا مسح جميع المستندات؟",confirmPrompt:"اكتب 'yes' لتأكيد هذا الإجراء",confirmPlaceholder:"اكتب yes للتأكيد",clearCache:"مسح كاش نموذج اللغة",confirmButton:"نعم",success:"تم مسح المستندات بنجاح",cacheCleared:"تم مسح ذاكرة التخزين المؤقت بنجاح",cacheClearFailed:`فشل مسح ذاكرة التخزين المؤقت: +• Points à puces`,responseFormatOptions:{multipleParagraphs:"Plusieurs paragraphes",singleParagraph:"Paragraphe unique",bulletPoints:"Points à puces"},topK:"Top K résultats",topKTooltip:"Nombre d'éléments supérieurs à récupérer. Représente les entités en mode 'local' et les relations en mode 'global'",topKPlaceholder:"Nombre de résultats",maxTokensTextUnit:"Nombre maximum de jetons pour l'unité de texte",maxTokensTextUnitTooltip:"Nombre maximum de jetons autorisés pour chaque fragment de texte récupéré",maxTokensGlobalContext:"Nombre maximum de jetons pour le contexte global",maxTokensGlobalContextTooltip:"Nombre maximum de jetons alloués pour les descriptions des relations dans la récupération globale",maxTokensLocalContext:"Nombre maximum de jetons pour le contexte local",maxTokensLocalContextTooltip:"Nombre maximum de jetons alloués pour les descriptions des entités dans la récupération locale",historyTurns:"Tours d'historique",historyTurnsTooltip:"Nombre de tours complets de conversation (paires utilisateur-assistant) à prendre en compte dans le contexte de la réponse",historyTurnsPlaceholder:"Nombre de tours d'historique",onlyNeedContext:"Besoin uniquement du contexte",onlyNeedContextTooltip:"Si vrai, ne renvoie que le contexte récupéré sans générer de réponse",onlyNeedPrompt:"Besoin uniquement de l'invite",onlyNeedPromptTooltip:"Si vrai, ne renvoie que l'invite générée sans produire de réponse",streamResponse:"Réponse en flux",streamResponseTooltip:"Si vrai, active la sortie en flux pour des réponses en temps réel",userPrompt:"Invite personnalisée",userPromptTooltip:"Fournir des exigences de réponse supplémentaires au LLM (sans rapport avec le contenu de la requête, uniquement pour le traitement de sortie).",userPromptPlaceholder:"Entrez une invite personnalisée (facultatif)"}},cy={loading:"Chargement de la documentation de l'API..."},sy={title:"Clé API requise",description:"Veuillez entrer votre clé API pour accéder au service",placeholder:"Entrez votre clé API",save:"Sauvegarder"},oy={settings:ey,header:ly,login:ty,common:ay,documentPanel:ny,graphPanel:uy,retrievePanel:iy,apiSite:cy,apiKeyAlert:sy},ry={language:"اللغة",theme:"السمة",light:"فاتح",dark:"داكن",system:"النظام"},fy={documents:"المستندات",knowledgeGraph:"شبكة المعرفة",retrieval:"الاسترجاع",api:"واجهة برمجة التطبيقات",projectRepository:"مستودع المشروع",logout:"تسجيل الخروج",themeToggle:{switchToLight:"التحويل إلى السمة الفاتحة",switchToDark:"التحويل إلى السمة الداكنة"}},dy={description:"الرجاء إدخال حسابك وكلمة المرور لتسجيل الدخول إلى النظام",username:"اسم المستخدم",usernamePlaceholder:"الرجاء إدخال اسم المستخدم",password:"كلمة المرور",passwordPlaceholder:"الرجاء إدخال كلمة المرور",loginButton:"تسجيل الدخول",loggingIn:"جاري تسجيل الدخول...",successMessage:"تم تسجيل الدخول بنجاح",errorEmptyFields:"الرجاء إدخال اسم المستخدم وكلمة المرور",errorInvalidCredentials:"فشل تسجيل الدخول، يرجى التحقق من اسم المستخدم وكلمة المرور",authDisabled:"تم تعطيل المصادقة. استخدام وضع بدون تسجيل دخول.",guestMode:"وضع بدون تسجيل دخول"},my={cancel:"إلغاء",save:"حفظ",saving:"جارٍ الحفظ...",saveFailed:"فشل الحفظ"},hy={clearDocuments:{button:"مسح",tooltip:"مسح المستندات",title:"مسح المستندات",description:"سيؤدي هذا إلى إزالة جميع المستندات من النظام",warning:"تحذير: سيؤدي هذا الإجراء إلى حذف جميع المستندات بشكل دائم ولا يمكن التراجع عنه!",confirm:"هل تريد حقًا مسح جميع المستندات؟",confirmPrompt:"اكتب 'yes' لتأكيد هذا الإجراء",confirmPlaceholder:"اكتب yes للتأكيد",clearCache:"مسح كاش نموذج اللغة",confirmButton:"نعم",success:"تم مسح المستندات بنجاح",cacheCleared:"تم مسح ذاكرة التخزين المؤقت بنجاح",cacheClearFailed:`فشل مسح ذاكرة التخزين المؤقت: {{error}}`,failed:`فشل مسح المستندات: {{message}}`,error:`فشل مسح المستندات: {{error}}`},uploadDocuments:{button:"رفع",tooltip:"رفع المستندات",title:"رفع المستندات",description:"اسحب وأفلت مستنداتك هنا أو انقر للتصفح.",single:{uploading:"جارٍ الرفع {{name}}: {{percent}}%",success:`نجاح الرفع: @@ -116,7 +116,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert- • تجاوز: يمرر الاستعلام مباشرة إلى LLM بدون استرجاع`,queryModeOptions:{naive:"ساذج",local:"محلي",global:"عالمي",hybrid:"مختلط",mix:"مزيج",bypass:"تجاوز"},responseFormat:"تنسيق الرد",responseFormatTooltip:`يحدد تنسيق الرد. أمثلة: • فقرات متعددة • فقرة واحدة -• نقاط نقطية`,responseFormatOptions:{multipleParagraphs:"فقرات متعددة",singleParagraph:"فقرة واحدة",bulletPoints:"نقاط نقطية"},topK:"أعلى K نتائج",topKTooltip:"عدد العناصر العلوية للاسترجاع. يمثل الكيانات في وضع 'محلي' والعلاقات في وضع 'عالمي'",topKPlaceholder:"عدد النتائج",maxTokensTextUnit:"أقصى عدد من الرموز لوحدة النص",maxTokensTextUnitTooltip:"الحد الأقصى لعدد الرموز المسموح به لكل جزء نصي مسترجع",maxTokensGlobalContext:"أقصى عدد من الرموز للسياق العالمي",maxTokensGlobalContextTooltip:"الحد الأقصى لعدد الرموز المخصص لأوصاف العلاقات في الاسترجاع العالمي",maxTokensLocalContext:"أقصى عدد من الرموز للسياق المحلي",maxTokensLocalContextTooltip:"الحد الأقصى لعدد الرموز المخصص لأوصاف الكيانات في الاسترجاع المحلي",historyTurns:"دورات التاريخ",historyTurnsTooltip:"عدد الدورات الكاملة للمحادثة (أزواج المستخدم-المساعد) التي يجب مراعاتها في سياق الرد",historyTurnsPlaceholder:"عدد دورات التاريخ",onlyNeedContext:"تحتاج فقط إلى السياق",onlyNeedContextTooltip:"إذا كان صحيحًا، يتم إرجاع السياق المسترجع فقط دون إنشاء رد",onlyNeedPrompt:"تحتاج فقط إلى المطالبة",onlyNeedPromptTooltip:"إذا كان صحيحًا، يتم إرجاع المطالبة المولدة فقط دون إنتاج رد",streamResponse:"تدفق الرد",streamResponseTooltip:"إذا كان صحيحًا، يتيح إخراج التدفق للردود في الوقت الفعلي",userPrompt:"مطالبة مخصصة",userPromptTooltip:"تقديم متطلبات استجابة إضافية إلى نموذج اللغة الكبير (غير متعلقة بمحتوى الاستعلام، فقط لمعالجة المخرجات).",userPromptPlaceholder:"أدخل مطالبة مخصصة (اختياري)"}},yy={loading:"جارٍ تحميل وثائق واجهة برمجة التطبيقات..."},vy={title:"مفتاح واجهة برمجة التطبيقات مطلوب",description:"الرجاء إدخال مفتاح واجهة برمجة التطبيقات للوصول إلى الخدمة",placeholder:"أدخل مفتاح واجهة برمجة التطبيقات",save:"حفظ"},by={settings:ry,header:fy,login:dy,common:my,documentPanel:hy,graphPanel:gy,retrievePanel:py,apiSite:yy,apiKeyAlert:vy},Sy={language:"語言",theme:"主題",light:"淺色",dark:"深色",system:"系統"},Ty={documents:"文件",knowledgeGraph:"知識圖譜",retrieval:"檢索",api:"API",projectRepository:"專案庫",logout:"登出",themeToggle:{switchToLight:"切換至淺色主題",switchToDark:"切換至深色主題"}},xy={description:"請輸入您的帳號和密碼登入系統",username:"帳號",usernamePlaceholder:"請輸入帳號",password:"密碼",passwordPlaceholder:"請輸入密碼",loginButton:"登入",loggingIn:"登入中...",successMessage:"登入成功",errorEmptyFields:"請輸入您的帳號和密碼",errorInvalidCredentials:"登入失敗,請檢查帳號和密碼",authDisabled:"認證已停用,使用免登入模式",guestMode:"免登入"},Ay={cancel:"取消",save:"儲存"},Dy={clearDocuments:{button:"清空",tooltip:"清空文件",title:"清空文件",description:"此操作將從系統中移除所有文件",warning:"警告:此操作將永久刪除所有文件,無法復原!",confirm:"確定要清空所有文件嗎?",confirmPrompt:"請輸入 yes 確認操作",confirmPlaceholder:"輸入 yes 以確認",clearCache:"清空 LLM 快取",confirmButton:"確定",success:"文件清空成功",cacheCleared:"快取清空成功",cacheClearFailed:`清空快取失敗: +• نقاط نقطية`,responseFormatOptions:{multipleParagraphs:"فقرات متعددة",singleParagraph:"فقرة واحدة",bulletPoints:"نقاط نقطية"},topK:"أعلى K نتائج",topKTooltip:"عدد العناصر العلوية للاسترجاع. يمثل الكيانات في وضع 'محلي' والعلاقات في وضع 'عالمي'",topKPlaceholder:"عدد النتائج",maxTokensTextUnit:"أقصى عدد من الرموز لوحدة النص",maxTokensTextUnitTooltip:"الحد الأقصى لعدد الرموز المسموح به لكل جزء نصي مسترجع",maxTokensGlobalContext:"أقصى عدد من الرموز للسياق العالمي",maxTokensGlobalContextTooltip:"الحد الأقصى لعدد الرموز المخصص لأوصاف العلاقات في الاسترجاع العالمي",maxTokensLocalContext:"أقصى عدد من الرموز للسياق المحلي",maxTokensLocalContextTooltip:"الحد الأقصى لعدد الرموز المخصص لأوصاف الكيانات في الاسترجاع المحلي",historyTurns:"دورات التاريخ",historyTurnsTooltip:"عدد الدورات الكاملة للمحادثة (أزواج المستخدم-المساعد) التي يجب مراعاتها في سياق الرد",historyTurnsPlaceholder:"عدد دورات التاريخ",onlyNeedContext:"تحتاج فقط إلى السياق",onlyNeedContextTooltip:"إذا كان صحيحًا، يتم إرجاع السياق المسترجع فقط دون إنشاء رد",onlyNeedPrompt:"تحتاج فقط إلى المطالبة",onlyNeedPromptTooltip:"إذا كان صحيحًا، يتم إرجاع المطالبة المولدة فقط دون إنتاج رد",streamResponse:"تدفق الرد",streamResponseTooltip:"إذا كان صحيحًا، يتيح إخراج التدفق للردود في الوقت الفعلي",userPrompt:"مطالبة مخصصة",userPromptTooltip:"تقديم متطلبات استجابة إضافية إلى نموذج اللغة الكبير (غير متعلقة بمحتوى الاستعلام، فقط لمعالجة المخرجات).",userPromptPlaceholder:"أدخل مطالبة مخصصة (اختياري)"}},yy={loading:"جارٍ تحميل وثائق واجهة برمجة التطبيقات..."},vy={title:"مفتاح واجهة برمجة التطبيقات مطلوب",description:"الرجاء إدخال مفتاح واجهة برمجة التطبيقات للوصول إلى الخدمة",placeholder:"أدخل مفتاح واجهة برمجة التطبيقات",save:"حفظ"},by={settings:ry,header:fy,login:dy,common:my,documentPanel:hy,graphPanel:gy,retrievePanel:py,apiSite:yy,apiKeyAlert:vy},Sy={language:"語言",theme:"主題",light:"淺色",dark:"深色",system:"系統"},Ty={documents:"文件",knowledgeGraph:"知識圖譜",retrieval:"檢索",api:"API",projectRepository:"專案庫",logout:"登出",themeToggle:{switchToLight:"切換至淺色主題",switchToDark:"切換至深色主題"}},xy={description:"請輸入您的帳號和密碼登入系統",username:"帳號",usernamePlaceholder:"請輸入帳號",password:"密碼",passwordPlaceholder:"請輸入密碼",loginButton:"登入",loggingIn:"登入中...",successMessage:"登入成功",errorEmptyFields:"請輸入您的帳號和密碼",errorInvalidCredentials:"登入失敗,請檢查帳號和密碼",authDisabled:"認證已停用,使用免登入模式",guestMode:"免登入"},Ay={cancel:"取消",save:"儲存",saving:"儲存中...",saveFailed:"儲存失敗"},Dy={clearDocuments:{button:"清空",tooltip:"清空文件",title:"清空文件",description:"此操作將從系統中移除所有文件",warning:"警告:此操作將永久刪除所有文件,無法復原!",confirm:"確定要清空所有文件嗎?",confirmPrompt:"請輸入 yes 確認操作",confirmPlaceholder:"輸入 yes 以確認",clearCache:"清空 LLM 快取",confirmButton:"確定",success:"文件清空成功",cacheCleared:"快取清空成功",cacheClearFailed:`清空快取失敗: {{error}}`,failed:`清空文件失敗: {{message}}`,error:`清空文件失敗: {{error}}`},uploadDocuments:{button:"上傳",tooltip:"上傳文件",title:"上傳文件",description:"拖曳檔案至此處或點擊瀏覽",single:{uploading:"正在上傳 {{name}}:{{percent}}%",success:`上傳成功: @@ -138,4 +138,4 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert- • Bypass:直接傳遞查詢到LLM,不進行檢索`,queryModeOptions:{naive:"Naive",local:"Local",global:"Global",hybrid:"Hybrid",mix:"Mix",bypass:"Bypass"},responseFormat:"回應格式",responseFormatTooltip:`定義回應格式。例如: • 多段落 • 單段落 -• 重點`,responseFormatOptions:{multipleParagraphs:"多段落",singleParagraph:"單段落",bulletPoints:"重點"},topK:"Top K結果",topKTooltip:"檢索的前幾項結果數。在'local'模式下表示實體,在'global'模式下表示關係",topKPlaceholder:"結果數量",maxTokensTextUnit:"文字單元最大權杖數",maxTokensTextUnitTooltip:"每個檢索文字區塊允許的最大權杖數",maxTokensGlobalContext:"全域上下文最大權杖數",maxTokensGlobalContextTooltip:"全域檢索中關係描述的最大權杖數",maxTokensLocalContext:"本地上下文最大權杖數",maxTokensLocalContextTooltip:"本地檢索中實體描述的最大權杖數",historyTurns:"歷史輪次",historyTurnsTooltip:"回應上下文中考慮的完整對話輪次(使用者-助手對)數量",historyTurnsPlaceholder:"歷史輪次數",hlKeywords:"進階關鍵字",hlKeywordsTooltip:"檢索中優先考慮的進階關鍵字清單。用逗號分隔",hlkeywordsPlaceHolder:"輸入關鍵字",llKeywords:"基礎關鍵字",llKeywordsTooltip:"用於細化檢索重點的基礎關鍵字清單。用逗號分隔",onlyNeedContext:"僅需上下文",onlyNeedContextTooltip:"如果為True,僅回傳檢索到的上下文而不產生回應",onlyNeedPrompt:"僅需提示",onlyNeedPromptTooltip:"如果為True,僅回傳產生的提示而不產生回應",streamResponse:"串流回應",streamResponseTooltip:"如果為True,啟用即時串流輸出回應"}},My={loading:"正在載入 API 文件..."},zy={title:"需要 API key",description:"請輸入您的 API key 以存取服務",placeholder:"請輸入 API key",save:"儲存"},Cy={settings:Sy,header:Ty,login:xy,common:Ay,documentPanel:Dy,graphPanel:Ny,retrievePanel:Ey,apiSite:My,apiKeyAlert:zy},Oy=()=>{var g;try{const b=localStorage.getItem("settings-storage");if(b)return((g=JSON.parse(b).state)==null?void 0:g.language)||"en"}catch(b){console.error("Failed to get stored language:",b)}return"en"};cs.use($g).init({resources:{en:{translation:Qp},zh:{translation:Ip},fr:{translation:oy},ar:{translation:by},zh_TW:{translation:Cy}},lng:Oy(),fallbackLng:"en",interpolation:{escapeValue:!1},returnEmptyString:!1,returnNull:!1});Ve.subscribe(g=>{const b=g.language;cs.language!==b&&cs.changeLanguage(b)});ap.createRoot(document.getElementById("root")).render(o.jsx(E.StrictMode,{children:o.jsx(Up,{})})); +• 重點`,responseFormatOptions:{multipleParagraphs:"多段落",singleParagraph:"單段落",bulletPoints:"重點"},topK:"Top K結果",topKTooltip:"檢索的前幾項結果數。在'local'模式下表示實體,在'global'模式下表示關係",topKPlaceholder:"結果數量",maxTokensTextUnit:"文字單元最大權杖數",maxTokensTextUnitTooltip:"每個檢索文字區塊允許的最大權杖數",maxTokensGlobalContext:"全域上下文最大權杖數",maxTokensGlobalContextTooltip:"全域檢索中關係描述的最大權杖數",maxTokensLocalContext:"本地上下文最大權杖數",maxTokensLocalContextTooltip:"本地檢索中實體描述的最大權杖數",historyTurns:"歷史輪次",historyTurnsTooltip:"回應上下文中考慮的完整對話輪次(使用者-助手對)數量",historyTurnsPlaceholder:"歷史輪次數",onlyNeedContext:"僅需上下文",onlyNeedContextTooltip:"如果為True,僅回傳檢索到的上下文而不產生回應",onlyNeedPrompt:"僅需提示",onlyNeedPromptTooltip:"如果為True,僅回傳產生的提示而不產生回應",streamResponse:"串流回應",streamResponseTooltip:"如果為True,啟用即時串流輸出回應",userPrompt:"用戶提示詞",userPromptTooltip:"向LLM提供額外的響應要求(與查詢內容無關,僅用於處理輸出)。",userPromptPlaceholder:"輸入自定義提示詞(可選)"}},My={loading:"正在載入 API 文件..."},zy={title:"需要 API key",description:"請輸入您的 API key 以存取服務",placeholder:"請輸入 API key",save:"儲存"},Cy={settings:Sy,header:Ty,login:xy,common:Ay,documentPanel:Dy,graphPanel:Ny,retrievePanel:Ey,apiSite:My,apiKeyAlert:zy},Oy=()=>{var g;try{const b=localStorage.getItem("settings-storage");if(b)return((g=JSON.parse(b).state)==null?void 0:g.language)||"en"}catch(b){console.error("Failed to get stored language:",b)}return"en"};cs.use($g).init({resources:{en:{translation:Qp},zh:{translation:Ip},fr:{translation:oy},ar:{translation:by},zh_TW:{translation:Cy}},lng:Oy(),fallbackLng:"en",interpolation:{escapeValue:!1},returnEmptyString:!1,returnNull:!1});Ve.subscribe(g=>{const b=g.language;cs.language!==b&&cs.changeLanguage(b)});ap.createRoot(document.getElementById("root")).render(o.jsx(E.StrictMode,{children:o.jsx(Up,{})})); diff --git a/lightrag/api/webui/assets/index-C3vR7z2U.css b/lightrag/api/webui/assets/index-C3vR7z2U.css new file mode 100644 index 00000000..f18113d7 --- /dev/null +++ b/lightrag/api/webui/assets/index-C3vR7z2U.css @@ -0,0 +1 @@ +/*! tailwindcss v4.0.8 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(.936 .032 17.717);--color-red-400:oklch(.704 .191 22.216);--color-red-500:oklch(.637 .237 25.331);--color-red-600:oklch(.577 .245 27.325);--color-red-900:oklch(.396 .141 25.723);--color-red-950:oklch(.258 .092 26.042);--color-orange-500:oklch(.705 .213 47.604);--color-amber-100:oklch(.962 .059 95.617);--color-amber-200:oklch(.924 .12 95.746);--color-amber-700:oklch(.555 .163 48.998);--color-amber-800:oklch(.473 .137 46.201);--color-amber-900:oklch(.414 .112 45.904);--color-yellow-100:oklch(.973 .071 103.193);--color-yellow-400:oklch(.852 .199 91.936);--color-yellow-600:oklch(.681 .162 75.834);--color-yellow-900:oklch(.421 .095 57.708);--color-green-100:oklch(.962 .044 156.743);--color-green-400:oklch(.792 .209 151.711);--color-green-500:oklch(.723 .219 149.579);--color-green-600:oklch(.627 .194 149.214);--color-green-900:oklch(.393 .095 152.535);--color-emerald-50:oklch(.979 .021 166.113);--color-emerald-400:oklch(.765 .177 163.223);--color-emerald-700:oklch(.508 .118 165.612);--color-teal-100:oklch(.953 .051 180.801);--color-blue-100:oklch(.932 .032 255.585);--color-blue-400:oklch(.707 .165 254.624);--color-blue-600:oklch(.546 .245 262.881);--color-blue-700:oklch(.488 .243 264.376);--color-blue-900:oklch(.379 .146 265.522);--color-violet-700:oklch(.491 .27 292.581);--color-gray-100:oklch(.967 .003 264.542);--color-gray-200:oklch(.928 .006 264.531);--color-gray-300:oklch(.872 .01 258.338);--color-gray-400:oklch(.707 .022 261.325);--color-gray-500:oklch(.551 .027 264.364);--color-gray-600:oklch(.446 .03 256.802);--color-gray-700:oklch(.373 .034 259.733);--color-gray-800:oklch(.278 .033 256.848);--color-gray-900:oklch(.21 .034 264.665);--color-zinc-50:oklch(.985 0 0);--color-zinc-100:oklch(.967 .001 286.375);--color-zinc-200:oklch(.92 .004 286.32);--color-zinc-300:oklch(.871 .006 286.286);--color-zinc-600:oklch(.442 .017 285.786);--color-zinc-700:oklch(.37 .013 285.805);--color-zinc-800:oklch(.274 .006 286.033);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:color-mix(in oklab,var(--ring)50%,transparent)}body{background-color:var(--background);color:var(--foreground)}*{scrollbar-color:initial;scrollbar-width:initial}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-\[-1px\]{top:-1px;right:-1px;bottom:-1px;left:-1px}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-10{bottom:calc(var(--spacing)*10)}.\!left-1\/2{left:50%!important}.\!left-\[25\%\]{left:25%!important}.\!left-\[75\%\]{left:75%!important}.left-0{left:calc(var(--spacing)*0)}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.left-\[calc\(1rem\+2\.5rem\)\]{left:3.5rem}.z-10{z-index:10}.z-50{z-index:50}.z-60{z-index:60}.\!container{width:100%!important}@media (width>=40rem){.\!container{max-width:40rem!important}}@media (width>=48rem){.\!container{max-width:48rem!important}}@media (width>=64rem){.\!container{max-width:64rem!important}}@media (width>=80rem){.\!container{max-width:80rem!important}}@media (width>=96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.\!m-0{margin:calc(var(--spacing)*0)!important}.m-0{margin:calc(var(--spacing)*0)}.\!mx-4{margin-inline:calc(var(--spacing)*4)!important}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-4{margin-block:calc(var(--spacing)*4)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-4{margin-right:calc(var(--spacing)*4)}.mr-8{margin-right:calc(var(--spacing)*8)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!inline{display:inline!important}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.aspect-square{aspect-ratio:1}.\!size-full{width:100%!important;height:100%!important}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.h-1\/2{height:50%}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-24{height:calc(var(--spacing)*24)}.h-52{height:calc(var(--spacing)*52)}.h-\[1px\]{height:1px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-8{max-height:calc(var(--spacing)*8)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-80{max-height:calc(var(--spacing)*80)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[40vh\]{max-height:40vh}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[300px\]{max-height:300px}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\[7\.5em\]{min-height:7.5em}.min-h-\[10em\]{min-height:10em}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-56{width:calc(var(--spacing)*56)}.w-\[1px\]{width:1px}.w-\[95\%\]{width:95%}.w-\[200px\]{width:200px}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.max-w-80{max-width:calc(var(--spacing)*80)}.max-w-\[80\%\]{max-width:80%}.max-w-\[200px\]{max-width:200px}.max-w-\[250px\]{max-width:250px}.max-w-\[480px\]{max-width:480px}.max-w-lg{max-width:var(--container-lg)}.max-w-none{max-width:none}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-45{min-width:calc(var(--spacing)*45)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[200px\]{min-width:200px}.min-w-\[220px\]{min-width:220px}.min-w-\[300px\]{min-width:300px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-auto{min-width:auto}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.\!-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)!important}.\!translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)!important}.-translate-x-13{--tw-translate-x:calc(var(--spacing)*-13);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-15{--tw-translate-x:calc(var(--spacing)*-15);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.grid-cols-\[120px_1fr\]{grid-template-columns:120px 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\!overflow-hidden{overflow:hidden!important}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tr-none{border-top-right-radius:0}.rounded-br-none{border-bottom-right-radius:0}.border,.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\!border-input{border-color:var(--input)!important}.border-blue-400{border-color:var(--color-blue-400)}.border-border\/40{border-color:color-mix(in oklab,var(--border)40%,transparent)}.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-400{border-color:var(--color-gray-400)}.border-green-400{border-color:var(--color-green-400)}.border-input{border-color:var(--input)}.border-muted-foreground\/25{border-color:color-mix(in oklab,var(--muted-foreground)25%,transparent)}.border-muted-foreground\/50{border-color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}.border-primary{border-color:var(--primary)}.border-red-400{border-color:var(--color-red-400)}.border-transparent{border-color:#0000}.border-yellow-400{border-color:var(--color-yellow-400)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.\!bg-background{background-color:var(--background)!important}.\!bg-emerald-400{background-color:var(--color-emerald-400)!important}.bg-amber-100{background-color:var(--color-amber-100)}.bg-background{background-color:var(--background)}.bg-background\/60{background-color:color-mix(in oklab,var(--background)60%,transparent)}.bg-background\/80{background-color:color-mix(in oklab,var(--background)80%,transparent)}.bg-background\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-card\/95{background-color:color-mix(in oklab,var(--card)95%,transparent)}.bg-destructive{background-color:var(--destructive)}.bg-destructive\/15{background-color:color-mix(in oklab,var(--destructive)15%,transparent)}.bg-foreground\/10{background-color:color-mix(in oklab,var(--foreground)10%,transparent)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-muted{background-color:var(--muted)}.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-primary-foreground\/60{background-color:color-mix(in oklab,var(--primary-foreground)60%,transparent)}.bg-primary\/5{background-color:color-mix(in oklab,var(--primary)5%,transparent)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white\/30{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-800{background-color:var(--color-zinc-800)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-emerald-50{--tw-gradient-from:var(--color-emerald-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-100{--tw-gradient-to:var(--color-teal-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.\!p-0{padding:calc(var(--spacing)*0)!important}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-16{padding:calc(var(--spacing)*16)}.p-\[1px\]{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-zinc-50{color:var(--color-zinc-50)!important}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground{color:var(--foreground)}.text-foreground\/80{color:color-mix(in oklab,var(--foreground)80%,transparent)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground{color:var(--muted-foreground)}.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-primary\/60{color:color-mix(in oklab,var(--primary)60%,transparent)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-violet-700{color:var(--color-violet-700)}.text-yellow-600{color:var(--color-yellow-600)}.text-zinc-100{color:var(--color-zinc-100)}.text-zinc-800{color:var(--color-zinc-800)}.lowercase{text-transform:lowercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(34\,197\,94\,0\.4\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#22c55e66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(239\,68\,68\,0\.4\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#ef444466);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-1px_0_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:inset 0 -1px 0 var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-2000{--tw-duration:2s;transition-duration:2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-2000{animation-duration:2s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.fade-in-0{--tw-enter-opacity:0}.running{animation-play-state:running}.zoom-in-95{--tw-enter-scale:.95}@media (hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\:w-fit:hover{width:fit-content}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-background\/60:hover{background-color:color-mix(in oklab,var(--background)60%,transparent)}.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab,var(--destructive)80%,transparent)}.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-muted\/25:hover{background-color:color-mix(in oklab,var(--muted)25%,transparent)}.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab,var(--primary)5%,transparent)}.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--primary)20%,transparent)}.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}.hover\:bg-zinc-300:hover{background-color:var(--color-zinc-300)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-0:focus{outline-style:var(--tw-outline-style);outline-width:0}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:relative:focus-visible{position:relative}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:right-0:active{right:calc(var(--spacing)*0)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[state\=active\]\:visible[data-state=active]{visibility:visible}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:bg-muted[data-state=checked]{background-color:var(--muted)}.data-\[state\=checked\]\:text-muted-foreground[data-state=checked]{color:var(--muted-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=inactive\]\:invisible[data-state=inactive]{visibility:hidden}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-\[backdrop-filter\]\:bg-background\/60{background-color:color-mix(in oklab,var(--background)60%,transparent)}.supports-\[backdrop-filter\]\:bg-card\/75{background-color:color-mix(in oklab,var(--card)75%,transparent)}}@media (width>=40rem){.sm\:mt-0{margin-top:calc(var(--spacing)*0)}.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-\[800px\]{max-width:800px}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:px-5{padding-inline:calc(var(--spacing)*5)}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:inline-block{display:inline-block}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:border-blue-600:is(.dark *){border-color:var(--color-blue-600)}.dark\:border-destructive:is(.dark *){border-color:var(--destructive)}.dark\:border-gray-500:is(.dark *){border-color:var(--color-gray-500)}.dark\:border-gray-600:is(.dark *){border-color:var(--color-gray-600)}.dark\:border-gray-700:is(.dark *){border-color:var(--color-gray-700)}.dark\:border-green-600:is(.dark *){border-color:var(--color-green-600)}.dark\:border-red-600:is(.dark *){border-color:var(--color-red-600)}.dark\:border-yellow-600:is(.dark *){border-color:var(--color-yellow-600)}.dark\:bg-amber-900:is(.dark *){background-color:var(--color-amber-900)}.dark\:bg-blue-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}.dark\:bg-gray-800\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-gray-800)30%,transparent)}.dark\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\:bg-green-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-green-900)30%,transparent)}.dark\:bg-red-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-red-900)30%,transparent)}.dark\:bg-red-950:is(.dark *){background-color:var(--color-red-950)}.dark\:bg-yellow-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-yellow-900)30%,transparent)}.dark\:bg-zinc-700:is(.dark *){background-color:var(--color-zinc-700)}.dark\:from-gray-900:is(.dark *){--tw-gradient-from:var(--color-gray-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-gray-800:is(.dark *){--tw-gradient-to:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\:text-gray-300:is(.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-zinc-200:is(.dark *){color:var(--color-zinc-200)}@media (hover:hover){.dark\:hover\:bg-gray-700:is(.dark *):hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-800:is(.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-zinc-600:is(.dark *):hover{background-color:var(--color-zinc-600)}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing)*1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing)*12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing)*5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-inner-spin-button\]\:opacity-50::-webkit-inner-spin-button{opacity:.5}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:opacity-50::-webkit-outer-spin-button{opacity:.5}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing)*4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing)*4)}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing)*7)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}:root{--background:#fff;--foreground:#09090b;--card:#fff;--card-foreground:#09090b;--popover:#fff;--popover-foreground:#09090b;--primary:#18181b;--primary-foreground:#fafafa;--secondary:#f4f4f5;--secondary-foreground:#18181b;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#f4f4f5;--accent-foreground:#18181b;--destructive:#ef4444;--destructive-foreground:#fafafa;--border:#e4e4e7;--input:#e4e4e7;--ring:#09090b;--chart-1:#e76e50;--chart-2:#2a9d90;--chart-3:#274754;--chart-4:#e8c468;--chart-5:#f4a462;--radius:.6rem;--sidebar-background:#fafafa;--sidebar-foreground:#3f3f46;--sidebar-primary:#18181b;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e5e7eb;--sidebar-ring:#3b82f6}.dark{--background:#09090b;--foreground:#fafafa;--card:#09090b;--card-foreground:#fafafa;--popover:#09090b;--popover-foreground:#fafafa;--primary:#fafafa;--primary-foreground:#18181b;--secondary:#27272a;--secondary-foreground:#fafafa;--muted:#27272a;--muted-foreground:#a1a1aa;--accent:#27272a;--accent-foreground:#fafafa;--destructive:#7f1d1d;--destructive-foreground:#fafafa;--border:#27272a;--input:#27272a;--ring:#d4d4d8;--chart-1:#2662d9;--chart-2:#2eb88a;--chart-3:#e88c30;--chart-4:#af57db;--chart-5:#e23670;--sidebar-background:#18181b;--sidebar-foreground:#f4f4f5;--sidebar-primary:#1d4ed8;--sidebar-primary-foreground:#fff;--sidebar-accent:#27272a;--sidebar-accent-foreground:#f4f4f5;--sidebar-border:#27272a;--sidebar-ring:#3b82f6}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background-color:#ccc;border-radius:5px}::-webkit-scrollbar-track{background-color:#f2f2f2}.dark ::-webkit-scrollbar-thumb{background-color:#e6e6e6}.dark ::-webkit-scrollbar-track{background-color:#000}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false} diff --git a/lightrag/api/webui/assets/index-CM0YrL-d.css b/lightrag/api/webui/assets/index-CM0YrL-d.css deleted file mode 100644 index 51dd85b2..00000000 --- a/lightrag/api/webui/assets/index-CM0YrL-d.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.0.8 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(.936 .032 17.717);--color-red-400:oklch(.704 .191 22.216);--color-red-500:oklch(.637 .237 25.331);--color-red-600:oklch(.577 .245 27.325);--color-red-900:oklch(.396 .141 25.723);--color-red-950:oklch(.258 .092 26.042);--color-orange-500:oklch(.705 .213 47.604);--color-amber-100:oklch(.962 .059 95.617);--color-amber-200:oklch(.924 .12 95.746);--color-amber-700:oklch(.555 .163 48.998);--color-amber-800:oklch(.473 .137 46.201);--color-amber-900:oklch(.414 .112 45.904);--color-yellow-100:oklch(.973 .071 103.193);--color-yellow-400:oklch(.852 .199 91.936);--color-yellow-600:oklch(.681 .162 75.834);--color-yellow-900:oklch(.421 .095 57.708);--color-green-100:oklch(.962 .044 156.743);--color-green-400:oklch(.792 .209 151.711);--color-green-500:oklch(.723 .219 149.579);--color-green-600:oklch(.627 .194 149.214);--color-green-900:oklch(.393 .095 152.535);--color-emerald-50:oklch(.979 .021 166.113);--color-emerald-400:oklch(.765 .177 163.223);--color-emerald-700:oklch(.508 .118 165.612);--color-teal-100:oklch(.953 .051 180.801);--color-blue-100:oklch(.932 .032 255.585);--color-blue-400:oklch(.707 .165 254.624);--color-blue-600:oklch(.546 .245 262.881);--color-blue-700:oklch(.488 .243 264.376);--color-blue-900:oklch(.379 .146 265.522);--color-violet-700:oklch(.491 .27 292.581);--color-gray-100:oklch(.967 .003 264.542);--color-gray-200:oklch(.928 .006 264.531);--color-gray-300:oklch(.872 .01 258.338);--color-gray-400:oklch(.707 .022 261.325);--color-gray-500:oklch(.551 .027 264.364);--color-gray-600:oklch(.446 .03 256.802);--color-gray-700:oklch(.373 .034 259.733);--color-gray-800:oklch(.278 .033 256.848);--color-gray-900:oklch(.21 .034 264.665);--color-zinc-50:oklch(.985 0 0);--color-zinc-100:oklch(.967 .001 286.375);--color-zinc-200:oklch(.92 .004 286.32);--color-zinc-300:oklch(.871 .006 286.286);--color-zinc-600:oklch(.442 .017 285.786);--color-zinc-700:oklch(.37 .013 285.805);--color-zinc-800:oklch(.274 .006 286.033);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:color-mix(in oklab,var(--ring)50%,transparent)}body{background-color:var(--background);color:var(--foreground)}*{scrollbar-color:initial;scrollbar-width:initial}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-\[-1px\]{top:-1px;right:-1px;bottom:-1px;left:-1px}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-10{bottom:calc(var(--spacing)*10)}.\!left-1\/2{left:50%!important}.\!left-\[25\%\]{left:25%!important}.\!left-\[75\%\]{left:75%!important}.left-0{left:calc(var(--spacing)*0)}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.left-\[calc\(1rem\+2\.5rem\)\]{left:3.5rem}.z-10{z-index:10}.z-50{z-index:50}.z-60{z-index:60}.\!container{width:100%!important}@media (width>=40rem){.\!container{max-width:40rem!important}}@media (width>=48rem){.\!container{max-width:48rem!important}}@media (width>=64rem){.\!container{max-width:64rem!important}}@media (width>=80rem){.\!container{max-width:80rem!important}}@media (width>=96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.\!m-0{margin:calc(var(--spacing)*0)!important}.m-0{margin:calc(var(--spacing)*0)}.\!mx-4{margin-inline:calc(var(--spacing)*4)!important}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-4{margin-block:calc(var(--spacing)*4)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-4{margin-right:calc(var(--spacing)*4)}.mr-8{margin-right:calc(var(--spacing)*8)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!inline{display:inline!important}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.aspect-square{aspect-ratio:1}.\!size-full{width:100%!important;height:100%!important}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.h-1\/2{height:50%}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-24{height:calc(var(--spacing)*24)}.h-52{height:calc(var(--spacing)*52)}.h-\[1px\]{height:1px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-8{max-height:calc(var(--spacing)*8)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-80{max-height:calc(var(--spacing)*80)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[40vh\]{max-height:40vh}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[300px\]{max-height:300px}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\[7\.5em\]{min-height:7.5em}.min-h-\[10em\]{min-height:10em}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-56{width:calc(var(--spacing)*56)}.w-\[1px\]{width:1px}.w-\[95\%\]{width:95%}.w-\[200px\]{width:200px}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.max-w-80{max-width:calc(var(--spacing)*80)}.max-w-\[80\%\]{max-width:80%}.max-w-\[200px\]{max-width:200px}.max-w-\[250px\]{max-width:250px}.max-w-\[480px\]{max-width:480px}.max-w-lg{max-width:var(--container-lg)}.max-w-none{max-width:none}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-45{min-width:calc(var(--spacing)*45)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[200px\]{min-width:200px}.min-w-\[220px\]{min-width:220px}.min-w-\[300px\]{min-width:300px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-auto{min-width:auto}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.\!-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)!important}.\!translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)!important}.-translate-x-13{--tw-translate-x:calc(var(--spacing)*-13);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-15{--tw-translate-x:calc(var(--spacing)*-15);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x)var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.grid-cols-\[120px_1fr\]{grid-template-columns:120px 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\!overflow-hidden{overflow:hidden!important}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tr-none{border-top-right-radius:0}.rounded-br-none{border-bottom-right-radius:0}.border,.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\!border-input{border-color:var(--input)!important}.border-blue-400{border-color:var(--color-blue-400)}.border-border\/40{border-color:color-mix(in oklab,var(--border)40%,transparent)}.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-400{border-color:var(--color-gray-400)}.border-green-400{border-color:var(--color-green-400)}.border-input{border-color:var(--input)}.border-muted-foreground\/25{border-color:color-mix(in oklab,var(--muted-foreground)25%,transparent)}.border-muted-foreground\/50{border-color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}.border-primary{border-color:var(--primary)}.border-red-400{border-color:var(--color-red-400)}.border-transparent{border-color:#0000}.border-yellow-400{border-color:var(--color-yellow-400)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.\!bg-background{background-color:var(--background)!important}.\!bg-emerald-400{background-color:var(--color-emerald-400)!important}.bg-amber-100{background-color:var(--color-amber-100)}.bg-background{background-color:var(--background)}.bg-background\/60{background-color:color-mix(in oklab,var(--background)60%,transparent)}.bg-background\/80{background-color:color-mix(in oklab,var(--background)80%,transparent)}.bg-background\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-card\/95{background-color:color-mix(in oklab,var(--card)95%,transparent)}.bg-destructive{background-color:var(--destructive)}.bg-foreground\/10{background-color:color-mix(in oklab,var(--foreground)10%,transparent)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-muted{background-color:var(--muted)}.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-primary-foreground\/60{background-color:color-mix(in oklab,var(--primary-foreground)60%,transparent)}.bg-primary\/5{background-color:color-mix(in oklab,var(--primary)5%,transparent)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white\/30{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-800{background-color:var(--color-zinc-800)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-emerald-50{--tw-gradient-from:var(--color-emerald-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-teal-100{--tw-gradient-to:var(--color-teal-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.\!p-0{padding:calc(var(--spacing)*0)!important}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-16{padding:calc(var(--spacing)*16)}.p-\[1px\]{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-zinc-50{color:var(--color-zinc-50)!important}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground{color:var(--foreground)}.text-foreground\/80{color:color-mix(in oklab,var(--foreground)80%,transparent)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground{color:var(--muted-foreground)}.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-primary\/60{color:color-mix(in oklab,var(--primary)60%,transparent)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-violet-700{color:var(--color-violet-700)}.text-yellow-600{color:var(--color-yellow-600)}.text-zinc-100{color:var(--color-zinc-100)}.text-zinc-800{color:var(--color-zinc-800)}.lowercase{text-transform:lowercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(34\,197\,94\,0\.4\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#22c55e66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(239\,68\,68\,0\.4\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#ef444466);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-1px_0_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:inset 0 -1px 0 var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-2000{--tw-duration:2s;transition-duration:2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-2000{animation-duration:2s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.fade-in-0{--tw-enter-opacity:0}.running{animation-play-state:running}.zoom-in-95{--tw-enter-scale:.95}@media (hover:hover){.group-hover\:visible:is(:where(.group):hover *){visibility:visible}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\:w-fit:hover{width:fit-content}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-background\/60:hover{background-color:color-mix(in oklab,var(--background)60%,transparent)}.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab,var(--destructive)80%,transparent)}.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-muted\/25:hover{background-color:color-mix(in oklab,var(--muted)25%,transparent)}.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab,var(--primary)5%,transparent)}.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--primary)20%,transparent)}.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}.hover\:bg-zinc-300:hover{background-color:var(--color-zinc-300)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-0:focus{outline-style:var(--tw-outline-style);outline-width:0}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:relative:focus-visible{position:relative}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:right-0:active{right:calc(var(--spacing)*0)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[state\=active\]\:visible[data-state=active]{visibility:visible}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:bg-muted[data-state=checked]{background-color:var(--muted)}.data-\[state\=checked\]\:text-muted-foreground[data-state=checked]{color:var(--muted-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=inactive\]\:invisible[data-state=inactive]{visibility:hidden}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-\[backdrop-filter\]\:bg-background\/60{background-color:color-mix(in oklab,var(--background)60%,transparent)}.supports-\[backdrop-filter\]\:bg-card\/75{background-color:color-mix(in oklab,var(--card)75%,transparent)}}@media (width>=40rem){.sm\:mt-0{margin-top:calc(var(--spacing)*0)}.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-\[800px\]{max-width:800px}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:px-5{padding-inline:calc(var(--spacing)*5)}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:inline-block{display:inline-block}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:border-blue-600:is(.dark *){border-color:var(--color-blue-600)}.dark\:border-destructive:is(.dark *){border-color:var(--destructive)}.dark\:border-gray-500:is(.dark *){border-color:var(--color-gray-500)}.dark\:border-gray-600:is(.dark *){border-color:var(--color-gray-600)}.dark\:border-gray-700:is(.dark *){border-color:var(--color-gray-700)}.dark\:border-green-600:is(.dark *){border-color:var(--color-green-600)}.dark\:border-red-600:is(.dark *){border-color:var(--color-red-600)}.dark\:border-yellow-600:is(.dark *){border-color:var(--color-yellow-600)}.dark\:bg-amber-900:is(.dark *){background-color:var(--color-amber-900)}.dark\:bg-blue-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}.dark\:bg-gray-800\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-gray-800)30%,transparent)}.dark\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\:bg-green-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-green-900)30%,transparent)}.dark\:bg-red-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-red-900)30%,transparent)}.dark\:bg-red-950:is(.dark *){background-color:var(--color-red-950)}.dark\:bg-yellow-900\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-yellow-900)30%,transparent)}.dark\:bg-zinc-700:is(.dark *){background-color:var(--color-zinc-700)}.dark\:from-gray-900:is(.dark *){--tw-gradient-from:var(--color-gray-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-gray-800:is(.dark *){--tw-gradient-to:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\:text-gray-300:is(.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-zinc-200:is(.dark *){color:var(--color-zinc-200)}@media (hover:hover){.dark\:hover\:bg-gray-700:is(.dark *):hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-800:is(.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-zinc-600:is(.dark *):hover{background-color:var(--color-zinc-600)}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing)*1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing)*5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing)*12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing)*5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing)*5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-inner-spin-button\]\:opacity-50::-webkit-inner-spin-button{opacity:.5}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:opacity-50::-webkit-outer-spin-button{opacity:.5}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing)*4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing)*4)}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing)*7)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}:root{--background:#fff;--foreground:#09090b;--card:#fff;--card-foreground:#09090b;--popover:#fff;--popover-foreground:#09090b;--primary:#18181b;--primary-foreground:#fafafa;--secondary:#f4f4f5;--secondary-foreground:#18181b;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#f4f4f5;--accent-foreground:#18181b;--destructive:#ef4444;--destructive-foreground:#fafafa;--border:#e4e4e7;--input:#e4e4e7;--ring:#09090b;--chart-1:#e76e50;--chart-2:#2a9d90;--chart-3:#274754;--chart-4:#e8c468;--chart-5:#f4a462;--radius:.6rem;--sidebar-background:#fafafa;--sidebar-foreground:#3f3f46;--sidebar-primary:#18181b;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e5e7eb;--sidebar-ring:#3b82f6}.dark{--background:#09090b;--foreground:#fafafa;--card:#09090b;--card-foreground:#fafafa;--popover:#09090b;--popover-foreground:#fafafa;--primary:#fafafa;--primary-foreground:#18181b;--secondary:#27272a;--secondary-foreground:#fafafa;--muted:#27272a;--muted-foreground:#a1a1aa;--accent:#27272a;--accent-foreground:#fafafa;--destructive:#7f1d1d;--destructive-foreground:#fafafa;--border:#27272a;--input:#27272a;--ring:#d4d4d8;--chart-1:#2662d9;--chart-2:#2eb88a;--chart-3:#e88c30;--chart-4:#af57db;--chart-5:#e23670;--sidebar-background:#18181b;--sidebar-foreground:#f4f4f5;--sidebar-primary:#1d4ed8;--sidebar-primary-foreground:#fff;--sidebar-accent:#27272a;--sidebar-accent-foreground:#f4f4f5;--sidebar-border:#27272a;--sidebar-ring:#3b82f6}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background-color:#ccc;border-radius:5px}::-webkit-scrollbar-track{background-color:#f2f2f2}.dark ::-webkit-scrollbar-thumb{background-color:#e6e6e6}.dark ::-webkit-scrollbar-track{background-color:#000}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false} diff --git a/lightrag/api/webui/assets/infoDiagram-PH2N3AL5-C4VRyMR4.js b/lightrag/api/webui/assets/infoDiagram-PH2N3AL5-Bexk_QKW.js similarity index 61% rename from lightrag/api/webui/assets/infoDiagram-PH2N3AL5-C4VRyMR4.js rename to lightrag/api/webui/assets/infoDiagram-PH2N3AL5-Bexk_QKW.js index 46481c80..643269e7 100644 --- a/lightrag/api/webui/assets/infoDiagram-PH2N3AL5-C4VRyMR4.js +++ b/lightrag/api/webui/assets/infoDiagram-PH2N3AL5-Bexk_QKW.js @@ -1,2 +1,2 @@ -import{_ as e,l as o,K as i,e as n,L as p}from"./mermaid-vendor-SwnP6Sr8.js";import{p as m}from"./radar-MK3ICKWK-CihkADAx.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-D81M49Y6.js";import"./_basePickBy--_O36kXE.js";import"./clone-BHIBWXu-.js";var g={parse:e(async r=>{const a=await m("info",r);o.debug(a)},"parse")},v={version:p.version},d=e(()=>v.version,"getVersion"),c={getVersion:d},l=e((r,a,s)=>{o.debug(`rendering info diagram +import{_ as e,l as o,K as i,e as n,L as p}from"./mermaid-vendor-d7rbry5E.js";import{p as m}from"./radar-MK3ICKWK-zkXzSXFe.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-OtJ11HbN.js";import"./_basePickBy-Lz6agtdo.js";import"./clone-vL6XIcCC.js";var g={parse:e(async r=>{const a=await m("info",r);o.debug(a)},"parse")},v={version:p.version},d=e(()=>v.version,"getVersion"),c={getVersion:d},l=e((r,a,s)=>{o.debug(`rendering info diagram `+r);const t=i(a);n(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${s}`)},"draw"),f={draw:l},L={parser:g,db:c,renderer:f};export{L as diagram}; diff --git a/lightrag/api/webui/assets/journeyDiagram-U35MCT3I-YPalBptu.js b/lightrag/api/webui/assets/journeyDiagram-U35MCT3I-Drj8e4jk.js similarity index 99% rename from lightrag/api/webui/assets/journeyDiagram-U35MCT3I-YPalBptu.js rename to lightrag/api/webui/assets/journeyDiagram-U35MCT3I-Drj8e4jk.js index f5f5b8d3..0cd855b2 100644 --- a/lightrag/api/webui/assets/journeyDiagram-U35MCT3I-YPalBptu.js +++ b/lightrag/api/webui/assets/journeyDiagram-U35MCT3I-Drj8e4jk.js @@ -1,4 +1,4 @@ -import{a as pt,g as at,f as gt,d as mt}from"./chunk-D6G4REZN-CO4Tk6j6.js";import{_ as s,g as xt,s as kt,a as _t,b as bt,t as vt,q as wt,c as A,d as W,e as Tt,z as St,N as tt}from"./mermaid-vendor-SwnP6Sr8.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var H=function(){var t=s(function(g,r,a,l){for(a=a||{},l=g.length;l--;a[g[l]]=r);return a},"o"),e=[6,8,10,11,12,14,16,17,18],i=[1,9],c=[1,10],n=[1,11],u=[1,12],h=[1,13],f=[1,14],d={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,a,l,y,p,o,S){var _=o.length-1;switch(p){case 1:return o[_-1];case 2:this.$=[];break;case 3:o[_-1].push(o[_]),this.$=o[_-1];break;case 4:case 5:this.$=o[_];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(o[_].substr(6)),this.$=o[_].substr(6);break;case 9:this.$=o[_].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=o[_].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(o[_].substr(8)),this.$=o[_].substr(8);break;case 13:y.addTask(o[_-1],o[_]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:c,14:n,16:u,17:h,18:f},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:i,12:c,14:n,16:u,17:h,18:f},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,a){if(a.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=a,l}},"parseError"),parse:s(function(r){var a=this,l=[0],y=[],p=[null],o=[],S=this.table,_="",B=0,J=0,ut=2,K=1,yt=o.slice.call(arguments,1),k=Object.create(this.lexer),E={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(E.yy[O]=this.yy[O]);k.setInput(r,E.yy),E.yy.lexer=k,E.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var Y=k.yylloc;o.push(Y);var dt=k.options&&k.options.ranges;typeof E.yy.parseError=="function"?this.parseError=E.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ft(v){l.length=l.length-2*v,p.length=p.length-v,o.length=o.length-v}s(ft,"popStack");function Q(){var v;return v=y.pop()||k.lex()||K,typeof v!="number"&&(v instanceof Array&&(y=v,v=y.pop()),v=a.symbols_[v]||v),v}s(Q,"lex");for(var b,P,w,q,C={},N,$,D,j;;){if(P=l[l.length-1],this.defaultActions[P]?w=this.defaultActions[P]:((b===null||typeof b>"u")&&(b=Q()),w=S[P]&&S[P][b]),typeof w>"u"||!w.length||!w[0]){var G="";j=[];for(N in S[P])this.terminals_[N]&&N>ut&&j.push("'"+this.terminals_[N]+"'");k.showPosition?G="Parse error on line "+(B+1)+`: +import{a as pt,g as at,f as gt,d as mt}from"./chunk-D6G4REZN-CQqXYBrW.js";import{_ as s,g as xt,s as kt,a as _t,b as bt,t as vt,q as wt,c as A,d as W,e as Tt,z as St,N as tt}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var H=function(){var t=s(function(g,r,a,l){for(a=a||{},l=g.length;l--;a[g[l]]=r);return a},"o"),e=[6,8,10,11,12,14,16,17,18],i=[1,9],c=[1,10],n=[1,11],u=[1,12],h=[1,13],f=[1,14],d={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,a,l,y,p,o,S){var _=o.length-1;switch(p){case 1:return o[_-1];case 2:this.$=[];break;case 3:o[_-1].push(o[_]),this.$=o[_-1];break;case 4:case 5:this.$=o[_];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(o[_].substr(6)),this.$=o[_].substr(6);break;case 9:this.$=o[_].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=o[_].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(o[_].substr(8)),this.$=o[_].substr(8);break;case 13:y.addTask(o[_-1],o[_]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:c,14:n,16:u,17:h,18:f},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:i,12:c,14:n,16:u,17:h,18:f},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,a){if(a.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=a,l}},"parseError"),parse:s(function(r){var a=this,l=[0],y=[],p=[null],o=[],S=this.table,_="",B=0,J=0,ut=2,K=1,yt=o.slice.call(arguments,1),k=Object.create(this.lexer),E={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(E.yy[O]=this.yy[O]);k.setInput(r,E.yy),E.yy.lexer=k,E.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var Y=k.yylloc;o.push(Y);var dt=k.options&&k.options.ranges;typeof E.yy.parseError=="function"?this.parseError=E.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ft(v){l.length=l.length-2*v,p.length=p.length-v,o.length=o.length-v}s(ft,"popStack");function Q(){var v;return v=y.pop()||k.lex()||K,typeof v!="number"&&(v instanceof Array&&(y=v,v=y.pop()),v=a.symbols_[v]||v),v}s(Q,"lex");for(var b,P,w,q,C={},N,$,D,j;;){if(P=l[l.length-1],this.defaultActions[P]?w=this.defaultActions[P]:((b===null||typeof b>"u")&&(b=Q()),w=S[P]&&S[P][b]),typeof w>"u"||!w.length||!w[0]){var G="";j=[];for(N in S[P])this.terminals_[N]&&N>ut&&j.push("'"+this.terminals_[N]+"'");k.showPosition?G="Parse error on line "+(B+1)+`: `+k.showPosition()+` Expecting `+j.join(", ")+", got '"+(this.terminals_[b]||b)+"'":G="Parse error on line "+(B+1)+": Unexpected "+(b==K?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(G,{text:k.match,token:this.terminals_[b]||b,line:k.yylineno,loc:Y,expected:j})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+P+", token: "+b);switch(w[0]){case 1:l.push(b),p.push(k.yytext),o.push(k.yylloc),l.push(w[1]),b=null,J=k.yyleng,_=k.yytext,B=k.yylineno,Y=k.yylloc;break;case 2:if($=this.productions_[w[1]][1],C.$=p[p.length-$],C._$={first_line:o[o.length-($||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-($||1)].first_column,last_column:o[o.length-1].last_column},dt&&(C._$.range=[o[o.length-($||1)].range[0],o[o.length-1].range[1]]),q=this.performAction.apply(C,[_,J,B,E.yy,w[1],p,o].concat(yt)),typeof q<"u")return q;$&&(l=l.slice(0,-1*$*2),p=p.slice(0,-1*$),o=o.slice(0,-1*$)),l.push(this.productions_[w[1]][0]),p.push(C.$),o.push(C._$),D=S[l[l.length-2]][l[l.length-1]],l.push(D);break;case 3:return!0}}return!0},"parse")},x=function(){var g={EOF:1,parseError:s(function(a,l){if(this.yy.parser)this.yy.parser.parseError(a,l);else throw new Error(a)},"parseError"),setInput:s(function(r,a){return this.yy=a||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:s(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var a=r.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:s(function(r){var a=r.length,l=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===y.length?this.yylloc.first_column:0)+y[y.length-l.length].length-l[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:s(function(r){this.unput(this.match.slice(r))},"less"),pastInput:s(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var r=this.pastInput(),a=new Array(r.length+1).join("-");return r+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/kanban-definition-NDS4AKOZ-DDoftzBy.js b/lightrag/api/webui/assets/kanban-definition-NDS4AKOZ-ZF435Bcq.js similarity index 99% rename from lightrag/api/webui/assets/kanban-definition-NDS4AKOZ-DDoftzBy.js rename to lightrag/api/webui/assets/kanban-definition-NDS4AKOZ-ZF435Bcq.js index 3e738f9b..37ce7834 100644 --- a/lightrag/api/webui/assets/kanban-definition-NDS4AKOZ-DDoftzBy.js +++ b/lightrag/api/webui/assets/kanban-definition-NDS4AKOZ-ZF435Bcq.js @@ -1,4 +1,4 @@ -import{_ as c,l as te,c as W,K as fe,a7 as ye,a8 as be,a9 as me,a2 as _e,H as Y,i as G,v as Ee,J as ke,a3 as Se,a4 as le,a5 as ce}from"./mermaid-vendor-SwnP6Sr8.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var $=function(){var t=c(function(_,i,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=i);return n},"o"),g=[1,4],d=[1,13],r=[1,12],p=[1,15],E=[1,16],f=[1,20],h=[1,19],L=[6,7,8],C=[1,26],w=[1,24],N=[1,25],s=[6,7,11],H=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],M=[1,35],U=[1,36],A=[1,6,7,11,13,16,17,20,23],j=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(i,n,a,o,u,e,B){var l=e.length-1;switch(u){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",e[l-1].id),o.addNode(e[l-2].length,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 16:o.getLogger().info("Node: ",e[l].id),o.addNode(e[l-1].length,e[l].id,e[l].descr,e[l].type);break;case 17:o.getLogger().trace("Icon: ",e[l]),o.decorateNode({icon:e[l]});break;case 18:case 23:o.decorateNode({class:e[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",e[l-1].id),o.addNode(0,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 21:o.getLogger().trace("Node: ",e[l].id),o.addNode(0,e[l].id,e[l].descr,e[l].type);break;case 22:o.decorateNode({icon:e[l]});break;case 27:o.getLogger().trace("node found ..",e[l-2]),this.$={id:e[l-1],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 28:this.$={id:e[l],descr:e[l],type:0};break;case 29:o.getLogger().trace("node found ..",e[l-3]),this.$={id:e[l-3],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 30:this.$=e[l-1]+e[l];break;case 31:this.$=e[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:g},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:g},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:p,17:E,18:17,19:18,20:f,23:h},t(L,[2,3]),{1:[2,2]},t(L,[2,4]),t(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:p,17:E,18:17,19:18,20:f,23:h},{6:d,9:22,12:11,13:r,14:14,16:p,17:E,18:17,19:18,20:f,23:h},{6:C,7:w,10:23,11:N},t(s,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:f,23:h}),t(s,[2,19]),t(s,[2,21],{15:30,24:H}),t(s,[2,22]),t(s,[2,23]),t(x,[2,25]),t(x,[2,26]),t(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:C,7:w,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:p,17:E,18:17,19:18,20:f,23:h},t(P,[2,14],{7:M,11:U}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(s,[2,16],{15:37,24:H}),t(s,[2,17]),t(s,[2,18]),t(s,[2,20],{24:j}),t(x,[2,31]),{21:[1,39]},{22:[1,40]},t(P,[2,13],{7:M,11:U}),t(A,[2,11]),t(A,[2,12]),t(s,[2,15],{24:j}),t(x,[2,30]),{22:[1,41]},t(x,[2,27]),t(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},"parseError"),parse:c(function(i){var n=this,a=[0],o=[],u=[null],e=[],B=this.table,l="",z=0,se=0,ue=2,re=1,ge=e.slice.call(arguments,1),b=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);b.setInput(i,T.yy),T.yy.lexer=b,T.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var q=b.yylloc;e.push(q);var de=b.options&&b.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){a.length=a.length-2*S,u.length=u.length-S,e.length=e.length-S}c(pe,"popStack");function ae(){var S;return S=o.pop()||b.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var k,R,v,Q,F={},K,I,oe,X;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((k===null||typeof k>"u")&&(k=ae()),v=B[R]&&B[R][k]),typeof v>"u"||!v.length||!v[0]){var Z="";X=[];for(K in B[R])this.terminals_[K]&&K>ue&&X.push("'"+this.terminals_[K]+"'");b.showPosition?Z="Parse error on line "+(z+1)+`: +import{_ as c,l as te,c as W,K as fe,a7 as ye,a8 as be,a9 as me,a2 as _e,H as Y,i as G,v as Ee,J as ke,a3 as Se,a4 as le,a5 as ce}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var $=function(){var t=c(function(_,i,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=i);return n},"o"),g=[1,4],d=[1,13],r=[1,12],p=[1,15],E=[1,16],f=[1,20],h=[1,19],L=[6,7,8],C=[1,26],w=[1,24],N=[1,25],s=[6,7,11],H=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],M=[1,35],U=[1,36],A=[1,6,7,11,13,16,17,20,23],j=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(i,n,a,o,u,e,B){var l=e.length-1;switch(u){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",e[l-1].id),o.addNode(e[l-2].length,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 16:o.getLogger().info("Node: ",e[l].id),o.addNode(e[l-1].length,e[l].id,e[l].descr,e[l].type);break;case 17:o.getLogger().trace("Icon: ",e[l]),o.decorateNode({icon:e[l]});break;case 18:case 23:o.decorateNode({class:e[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",e[l-1].id),o.addNode(0,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 21:o.getLogger().trace("Node: ",e[l].id),o.addNode(0,e[l].id,e[l].descr,e[l].type);break;case 22:o.decorateNode({icon:e[l]});break;case 27:o.getLogger().trace("node found ..",e[l-2]),this.$={id:e[l-1],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 28:this.$={id:e[l],descr:e[l],type:0};break;case 29:o.getLogger().trace("node found ..",e[l-3]),this.$={id:e[l-3],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 30:this.$=e[l-1]+e[l];break;case 31:this.$=e[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:g},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:g},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:p,17:E,18:17,19:18,20:f,23:h},t(L,[2,3]),{1:[2,2]},t(L,[2,4]),t(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:p,17:E,18:17,19:18,20:f,23:h},{6:d,9:22,12:11,13:r,14:14,16:p,17:E,18:17,19:18,20:f,23:h},{6:C,7:w,10:23,11:N},t(s,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:f,23:h}),t(s,[2,19]),t(s,[2,21],{15:30,24:H}),t(s,[2,22]),t(s,[2,23]),t(x,[2,25]),t(x,[2,26]),t(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:C,7:w,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:p,17:E,18:17,19:18,20:f,23:h},t(P,[2,14],{7:M,11:U}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(s,[2,16],{15:37,24:H}),t(s,[2,17]),t(s,[2,18]),t(s,[2,20],{24:j}),t(x,[2,31]),{21:[1,39]},{22:[1,40]},t(P,[2,13],{7:M,11:U}),t(A,[2,11]),t(A,[2,12]),t(s,[2,15],{24:j}),t(x,[2,30]),{22:[1,41]},t(x,[2,27]),t(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},"parseError"),parse:c(function(i){var n=this,a=[0],o=[],u=[null],e=[],B=this.table,l="",z=0,se=0,ue=2,re=1,ge=e.slice.call(arguments,1),b=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);b.setInput(i,T.yy),T.yy.lexer=b,T.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var q=b.yylloc;e.push(q);var de=b.options&&b.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){a.length=a.length-2*S,u.length=u.length-S,e.length=e.length-S}c(pe,"popStack");function ae(){var S;return S=o.pop()||b.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var k,R,v,Q,F={},K,I,oe,X;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((k===null||typeof k>"u")&&(k=ae()),v=B[R]&&B[R][k]),typeof v>"u"||!v.length||!v[0]){var Z="";X=[];for(K in B[R])this.terminals_[K]&&K>ue&&X.push("'"+this.terminals_[K]+"'");b.showPosition?Z="Parse error on line "+(z+1)+`: `+b.showPosition()+` Expecting `+X.join(", ")+", got '"+(this.terminals_[k]||k)+"'":Z="Parse error on line "+(z+1)+": Unexpected "+(k==re?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(Z,{text:b.match,token:this.terminals_[k]||k,line:b.yylineno,loc:q,expected:X})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+k);switch(v[0]){case 1:a.push(k),u.push(b.yytext),e.push(b.yylloc),a.push(v[1]),k=null,se=b.yyleng,l=b.yytext,z=b.yylineno,q=b.yylloc;break;case 2:if(I=this.productions_[v[1]][1],F.$=u[u.length-I],F._$={first_line:e[e.length-(I||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(I||1)].first_column,last_column:e[e.length-1].last_column},de&&(F._$.range=[e[e.length-(I||1)].range[0],e[e.length-1].range[1]]),Q=this.performAction.apply(F,[l,se,z,T.yy,v[1],u,e].concat(ge)),typeof Q<"u")return Q;I&&(a=a.slice(0,-1*I*2),u=u.slice(0,-1*I),e=e.slice(0,-1*I)),a.push(this.productions_[v[1]][0]),u.push(F.$),e.push(F._$),oe=B[a[a.length-2]][a[a.length-1]],a.push(oe);break;case 3:return!0}}return!0},"parse")},m=function(){var _={EOF:1,parseError:c(function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},"parseError"),setInput:c(function(i,n){return this.yy=n||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:c(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:c(function(i){var n=i.length,a=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===o.length?this.yylloc.first_column:0)+o[o.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:c(function(){return this._more=!0,this},"more"),reject:c(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:c(function(i){this.unput(this.match.slice(i))},"less"),pastInput:c(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:c(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:c(function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/layout-Klo12PD4.js b/lightrag/api/webui/assets/layout-WkuL70g8.js similarity index 99% rename from lightrag/api/webui/assets/layout-Klo12PD4.js rename to lightrag/api/webui/assets/layout-WkuL70g8.js index 0fbb8805..2099b514 100644 --- a/lightrag/api/webui/assets/layout-Klo12PD4.js +++ b/lightrag/api/webui/assets/layout-WkuL70g8.js @@ -1 +1 @@ -import{G as g}from"./graph-CmqUPRtj.js";import{b as Te,p as ce,q as le,g as z,e as ee,l as j,o as Ie,s as Me,c as Se,u as Fe,d as f,i as m,f as _,v as x,r as M}from"./_baseUniq-D81M49Y6.js";import{f as O,b as he,a as je,c as Ve,d as Ae,t as V,m as w,e as P,h as ve,g as X,l as T,i as Be}from"./_basePickBy--_O36kXE.js";import{b1 as Ge,b2 as Ye,b3 as De,aW as qe,b4 as We,a_ as pe,aZ as we,b5 as $e,aV as q,aq as ze,b0 as Xe,as as Ue,b6 as W}from"./mermaid-vendor-SwnP6Sr8.js";function He(e){return Ge(Ye(e,void 0,O),e+"")}var Ze=1,Je=4;function Ke(e){return Te(e,Ze|Je)}function Qe(e,n){return e==null?e:De(e,ce(n),qe)}function en(e,n){return e&&le(e,ce(n))}function nn(e,n){return e>n}function S(e,n){var r={};return n=z(n),le(e,function(t,a,i){We(r,a,n(t,a,i))}),r}function y(e){return e&&e.length?he(e,pe,nn):void 0}function U(e,n){return e&&e.length?he(e,z(n),je):void 0}function rn(e,n){var r=e.length;for(e.sort(n);r--;)e[r]=e[r].value;return e}function tn(e,n){if(e!==n){var r=e!==void 0,t=e===null,a=e===e,i=ee(e),o=n!==void 0,u=n===null,d=n===n,s=ee(n);if(!u&&!s&&!i&&e>n||i&&o&&d&&!u&&!s||t&&o&&d||!r&&d||!a)return 1;if(!t&&!i&&!s&&e=u)return d;var s=r[t];return d*(s=="desc"?-1:1)}}return e.index-n.index}function on(e,n,r){n.length?n=j(n,function(i){return we(i)?function(o){return Ie(o,i.length===1?i[0]:i)}:i}):n=[pe];var t=-1;n=j(n,$e(z));var a=Ve(e,function(i,o,u){var d=j(n,function(s){return s(i)});return{criteria:d,index:++t,value:i}});return rn(a,function(i,o){return an(i,o,r)})}function un(e,n){return Ae(e,n,function(r,t){return Me(e,t)})}var I=He(function(e,n){return e==null?{}:un(e,n)}),dn=Math.ceil,sn=Math.max;function fn(e,n,r,t){for(var a=-1,i=sn(dn((n-e)/(r||1)),0),o=Array(i);i--;)o[++a]=e,e+=r;return o}function cn(e){return function(n,r,t){return t&&typeof t!="number"&&q(n,r,t)&&(r=t=void 0),n=V(n),r===void 0?(r=n,n=0):r=V(r),t=t===void 0?n1&&q(e,n[0],n[1])?n=[]:r>2&&q(n[0],n[1],n[2])&&(n=[n[0]]),on(e,Se(n),[])}),ln=0;function H(e){var n=++ln;return Fe(e)+n}function hn(e,n,r){for(var t=-1,a=e.length,i=n.length,o={};++t0;--u)if(o=n[u].dequeue(),o){t=t.concat(A(e,n,r,o,!0));break}}}return t}function A(e,n,r,t,a){var i=a?[]:void 0;return f(e.inEdges(t.v),function(o){var u=e.edge(o),d=e.node(o.v);a&&i.push({v:o.v,w:o.w}),d.out-=u,$(n,r,d)}),f(e.outEdges(t.v),function(o){var u=e.edge(o),d=o.w,s=e.node(d);s.in-=u,$(n,r,s)}),e.removeNode(t.v),i}function yn(e,n){var r=new g,t=0,a=0;f(e.nodes(),function(u){r.setNode(u,{v:u,in:0,out:0})}),f(e.edges(),function(u){var d=r.edge(u.v,u.w)||0,s=n(u),c=d+s;r.setEdge(u.v,u.w,c),a=Math.max(a,r.node(u.v).out+=s),t=Math.max(t,r.node(u.w).in+=s)});var i=E(a+t+3).map(function(){return new pn}),o=t+1;return f(r.nodes(),function(u){$(i,o,r.node(u))}),{graph:r,buckets:i,zeroIdx:o}}function $(e,n,r){r.out?r.in?e[r.out-r.in+n].enqueue(r):e[e.length-1].enqueue(r):e[0].enqueue(r)}function kn(e){var n=e.graph().acyclicer==="greedy"?mn(e,r(e)):xn(e);f(n,function(t){var a=e.edge(t);e.removeEdge(t),a.forwardName=t.name,a.reversed=!0,e.setEdge(t.w,t.v,a,H("rev"))});function r(t){return function(a){return t.edge(a).weight}}}function xn(e){var n=[],r={},t={};function a(i){Object.prototype.hasOwnProperty.call(t,i)||(t[i]=!0,r[i]=!0,f(e.outEdges(i),function(o){Object.prototype.hasOwnProperty.call(r,o.w)?n.push(o):a(o.w)}),delete r[i])}return f(e.nodes(),a),n}function En(e){f(e.edges(),function(n){var r=e.edge(n);if(r.reversed){e.removeEdge(n);var t=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(n.w,n.v,r,t)}})}function L(e,n,r,t){var a;do a=H(t);while(e.hasNode(a));return r.dummy=n,e.setNode(a,r),a}function On(e){var n=new g().setGraph(e.graph());return f(e.nodes(),function(r){n.setNode(r,e.node(r))}),f(e.edges(),function(r){var t=n.edge(r.v,r.w)||{weight:0,minlen:1},a=e.edge(r);n.setEdge(r.v,r.w,{weight:t.weight+a.weight,minlen:Math.max(t.minlen,a.minlen)})}),n}function be(e){var n=new g({multigraph:e.isMultigraph()}).setGraph(e.graph());return f(e.nodes(),function(r){e.children(r).length||n.setNode(r,e.node(r))}),f(e.edges(),function(r){n.setEdge(r,e.edge(r))}),n}function re(e,n){var r=e.x,t=e.y,a=n.x-r,i=n.y-t,o=e.width/2,u=e.height/2;if(!a&&!i)throw new Error("Not possible to find intersection inside of the rectangle");var d,s;return Math.abs(i)*o>Math.abs(a)*u?(i<0&&(u=-u),d=u*a/i,s=u):(a<0&&(o=-o),d=o,s=o*i/a),{x:r+d,y:t+s}}function F(e){var n=w(E(me(e)+1),function(){return[]});return f(e.nodes(),function(r){var t=e.node(r),a=t.rank;m(a)||(n[a][t.order]=r)}),n}function Ln(e){var n=P(w(e.nodes(),function(r){return e.node(r).rank}));f(e.nodes(),function(r){var t=e.node(r);ve(t,"rank")&&(t.rank-=n)})}function Nn(e){var n=P(w(e.nodes(),function(i){return e.node(i).rank})),r=[];f(e.nodes(),function(i){var o=e.node(i).rank-n;r[o]||(r[o]=[]),r[o].push(i)});var t=0,a=e.graph().nodeRankFactor;f(r,function(i,o){m(i)&&o%a!==0?--t:t&&f(i,function(u){e.node(u).rank+=t})})}function te(e,n,r,t){var a={width:0,height:0};return arguments.length>=4&&(a.rank=r,a.order=t),L(e,"border",a,n)}function me(e){return y(w(e.nodes(),function(n){var r=e.node(n).rank;if(!m(r))return r}))}function Pn(e,n){var r={lhs:[],rhs:[]};return f(e,function(t){n(t)?r.lhs.push(t):r.rhs.push(t)}),r}function Cn(e,n){return n()}function _n(e){function n(r){var t=e.children(r),a=e.node(r);if(t.length&&f(t,n),Object.prototype.hasOwnProperty.call(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var i=a.minRank,o=a.maxRank+1;io.lim&&(u=o,d=!0);var s=_(n.edges(),function(c){return d===oe(e,e.node(c.v),u)&&d!==oe(e,e.node(c.w),u)});return U(s,function(c){return C(n,c)})}function Pe(e,n,r,t){var a=r.v,i=r.w;e.removeEdge(a,i),e.setEdge(t.v,t.w,{}),K(e),J(e,n),Wn(e,n)}function Wn(e,n){var r=X(e.nodes(),function(a){return!n.node(a).parent}),t=Dn(e,r);t=t.slice(1),f(t,function(a){var i=e.node(a).parent,o=n.edge(a,i),u=!1;o||(o=n.edge(i,a),u=!0),n.node(a).rank=n.node(i).rank+(u?o.minlen:-o.minlen)})}function $n(e,n,r){return e.hasEdge(n,r)}function oe(e,n,r){return r.low<=n.lim&&n.lim<=r.lim}function zn(e){switch(e.graph().ranker){case"network-simplex":ue(e);break;case"tight-tree":Un(e);break;case"longest-path":Xn(e);break;default:ue(e)}}var Xn=Z;function Un(e){Z(e),ye(e)}function ue(e){k(e)}function Hn(e){var n=L(e,"root",{},"_root"),r=Zn(e),t=y(x(r))-1,a=2*t+1;e.graph().nestingRoot=n,f(e.edges(),function(o){e.edge(o).minlen*=a});var i=Jn(e)+1;f(e.children(),function(o){Ce(e,n,a,i,t,r,o)}),e.graph().nodeRankFactor=a}function Ce(e,n,r,t,a,i,o){var u=e.children(o);if(!u.length){o!==n&&e.setEdge(n,o,{weight:0,minlen:r});return}var d=te(e,"_bt"),s=te(e,"_bb"),c=e.node(o);e.setParent(d,o),c.borderTop=d,e.setParent(s,o),c.borderBottom=s,f(u,function(l){Ce(e,n,r,t,a,i,l);var h=e.node(l),v=h.borderTop?h.borderTop:l,p=h.borderBottom?h.borderBottom:l,b=h.borderTop?t:2*t,N=v!==p?1:a-i[o]+1;e.setEdge(d,v,{weight:b,minlen:N,nestingEdge:!0}),e.setEdge(p,s,{weight:b,minlen:N,nestingEdge:!0})}),e.parent(o)||e.setEdge(n,d,{weight:0,minlen:a+i[o]})}function Zn(e){var n={};function r(t,a){var i=e.children(t);i&&i.length&&f(i,function(o){r(o,a+1)}),n[t]=a}return f(e.children(),function(t){r(t,1)}),n}function Jn(e){return M(e.edges(),function(n,r){return n+e.edge(r).weight},0)}function Kn(e){var n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,f(e.edges(),function(r){var t=e.edge(r);t.nestingEdge&&e.removeEdge(r)})}function Qn(e,n,r){var t={},a;f(r,function(i){for(var o=e.parent(i),u,d;o;){if(u=e.parent(o),u?(d=t[u],t[u]=o):(d=a,a=o),d&&d!==o){n.setEdge(d,o);return}o=u}})}function er(e,n,r){var t=nr(e),a=new g({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(i){return e.node(i)});return f(e.nodes(),function(i){var o=e.node(i),u=e.parent(i);(o.rank===n||o.minRank<=n&&n<=o.maxRank)&&(a.setNode(i),a.setParent(i,u||t),f(e[r](i),function(d){var s=d.v===i?d.w:d.v,c=a.edge(s,i),l=m(c)?0:c.weight;a.setEdge(s,i,{weight:e.edge(d).weight+l})}),Object.prototype.hasOwnProperty.call(o,"minRank")&&a.setNode(i,{borderLeft:o.borderLeft[n],borderRight:o.borderRight[n]}))}),a}function nr(e){for(var n;e.hasNode(n=H("_root")););return n}function rr(e,n){for(var r=0,t=1;t0;)c%2&&(l+=u[c+1]),c=c-1>>1,u[c]+=s.weight;d+=s.weight*l})),d}function ar(e){var n={},r=_(e.nodes(),function(u){return!e.children(u).length}),t=y(w(r,function(u){return e.node(u).rank})),a=w(E(t+1),function(){return[]});function i(u){if(!ve(n,u)){n[u]=!0;var d=e.node(u);a[d.rank].push(u),f(e.successors(u),i)}}var o=R(r,function(u){return e.node(u).rank});return f(o,i),a}function ir(e,n){return w(n,function(r){var t=e.inEdges(r);if(t.length){var a=M(t,function(i,o){var u=e.edge(o),d=e.node(o.v);return{sum:i.sum+u.weight*d.order,weight:i.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:a.sum/a.weight,weight:a.weight}}else return{v:r}})}function or(e,n){var r={};f(e,function(a,i){var o=r[a.v]={indegree:0,in:[],out:[],vs:[a.v],i};m(a.barycenter)||(o.barycenter=a.barycenter,o.weight=a.weight)}),f(n.edges(),function(a){var i=r[a.v],o=r[a.w];!m(i)&&!m(o)&&(o.indegree++,i.out.push(r[a.w]))});var t=_(r,function(a){return!a.indegree});return ur(t)}function ur(e){var n=[];function r(i){return function(o){o.merged||(m(o.barycenter)||m(i.barycenter)||o.barycenter>=i.barycenter)&&dr(i,o)}}function t(i){return function(o){o.in.push(i),--o.indegree===0&&e.push(o)}}for(;e.length;){var a=e.pop();n.push(a),f(a.in.reverse(),r(a)),f(a.out,t(a))}return w(_(n,function(i){return!i.merged}),function(i){return I(i,["vs","i","barycenter","weight"])})}function dr(e,n){var r=0,t=0;e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=r/t,e.weight=t,e.i=Math.min(n.i,e.i),n.merged=!0}function sr(e,n){var r=Pn(e,function(c){return Object.prototype.hasOwnProperty.call(c,"barycenter")}),t=r.lhs,a=R(r.rhs,function(c){return-c.i}),i=[],o=0,u=0,d=0;t.sort(fr(!!n)),d=de(i,a,d),f(t,function(c){d+=c.vs.length,i.push(c.vs),o+=c.barycenter*c.weight,u+=c.weight,d=de(i,a,d)});var s={vs:O(i)};return u&&(s.barycenter=o/u,s.weight=u),s}function de(e,n,r){for(var t;n.length&&(t=T(n)).i<=r;)n.pop(),e.push(t.vs),r++;return r}function fr(e){return function(n,r){return n.barycenterr.barycenter?1:e?r.i-n.i:n.i-r.i}}function _e(e,n,r,t){var a=e.children(n),i=e.node(n),o=i?i.borderLeft:void 0,u=i?i.borderRight:void 0,d={};o&&(a=_(a,function(p){return p!==o&&p!==u}));var s=ir(e,a);f(s,function(p){if(e.children(p.v).length){var b=_e(e,p.v,r,t);d[p.v]=b,Object.prototype.hasOwnProperty.call(b,"barycenter")&&lr(p,b)}});var c=or(s,r);cr(c,d);var l=sr(c,t);if(o&&(l.vs=O([o,l.vs,u]),e.predecessors(o).length)){var h=e.node(e.predecessors(o)[0]),v=e.node(e.predecessors(u)[0]);Object.prototype.hasOwnProperty.call(l,"barycenter")||(l.barycenter=0,l.weight=0),l.barycenter=(l.barycenter*l.weight+h.order+v.order)/(l.weight+2),l.weight+=2}return l}function cr(e,n){f(e,function(r){r.vs=O(r.vs.map(function(t){return n[t]?n[t].vs:t}))})}function lr(e,n){m(e.barycenter)?(e.barycenter=n.barycenter,e.weight=n.weight):(e.barycenter=(e.barycenter*e.weight+n.barycenter*n.weight)/(e.weight+n.weight),e.weight+=n.weight)}function hr(e){var n=me(e),r=se(e,E(1,n+1),"inEdges"),t=se(e,E(n-1,-1,-1),"outEdges"),a=ar(e);fe(e,a);for(var i=Number.POSITIVE_INFINITY,o,u=0,d=0;d<4;++u,++d){vr(u%2?r:t,u%4>=2),a=F(e);var s=rr(e,a);so||u>n[d].lim));for(s=d,d=t;(d=e.parent(d))!==s;)i.push(d);return{path:a.concat(i.reverse()),lca:s}}function br(e){var n={},r=0;function t(a){var i=r;f(e.children(a),t),n[a]={low:i,lim:r++}}return f(e.children(),t),n}function mr(e,n){var r={};function t(a,i){var o=0,u=0,d=a.length,s=T(i);return f(i,function(c,l){var h=yr(e,c),v=h?e.node(h).order:d;(h||c===s)&&(f(i.slice(u,l+1),function(p){f(e.predecessors(p),function(b){var N=e.node(b),Q=N.order;(Qs)&&Re(r,h,c)})})}function a(i,o){var u=-1,d,s=0;return f(o,function(c,l){if(e.node(c).dummy==="border"){var h=e.predecessors(c);h.length&&(d=e.node(h[0]).order,t(o,s,l,u,d),s=l,u=d)}t(o,s,o.length,d,i.length)}),o}return M(n,a),r}function yr(e,n){if(e.node(n).dummy)return X(e.predecessors(n),function(r){return e.node(r).dummy})}function Re(e,n,r){if(n>r){var t=n;n=r,r=t}var a=e[n];a||(e[n]=a={}),a[r]=!0}function kr(e,n,r){if(n>r){var t=n;n=r,r=t}return!!e[n]&&Object.prototype.hasOwnProperty.call(e[n],r)}function xr(e,n,r,t){var a={},i={},o={};return f(n,function(u){f(u,function(d,s){a[d]=d,i[d]=d,o[d]=s})}),f(n,function(u){var d=-1;f(u,function(s){var c=t(s);if(c.length){c=R(c,function(b){return o[b]});for(var l=(c.length-1)/2,h=Math.floor(l),v=Math.ceil(l);h<=v;++h){var p=c[h];i[s]===s&&d{var t=r(" buildLayoutGraph",()=>qr(e));r(" runLayout",()=>Mr(t,r)),r(" updateInputGraph",()=>Sr(e,t))})}function Mr(e,n){n(" makeSpaceForEdgeLabels",()=>Wr(e)),n(" removeSelfEdges",()=>Qr(e)),n(" acyclic",()=>kn(e)),n(" nestingGraph.run",()=>Hn(e)),n(" rank",()=>zn(be(e))),n(" injectEdgeLabelProxies",()=>$r(e)),n(" removeEmptyRanks",()=>Nn(e)),n(" nestingGraph.cleanup",()=>Kn(e)),n(" normalizeRanks",()=>Ln(e)),n(" assignRankMinMax",()=>zr(e)),n(" removeEdgeLabelProxies",()=>Xr(e)),n(" normalize.run",()=>Sn(e)),n(" parentDummyChains",()=>pr(e)),n(" addBorderSegments",()=>_n(e)),n(" order",()=>hr(e)),n(" insertSelfEdges",()=>et(e)),n(" adjustCoordinateSystem",()=>Rn(e)),n(" position",()=>Tr(e)),n(" positionSelfEdges",()=>nt(e)),n(" removeBorderNodes",()=>Kr(e)),n(" normalize.undo",()=>jn(e)),n(" fixupEdgeLabelCoords",()=>Zr(e)),n(" undoCoordinateSystem",()=>Tn(e)),n(" translateGraph",()=>Ur(e)),n(" assignNodeIntersects",()=>Hr(e)),n(" reversePoints",()=>Jr(e)),n(" acyclic.undo",()=>En(e))}function Sr(e,n){f(e.nodes(),function(r){var t=e.node(r),a=n.node(r);t&&(t.x=a.x,t.y=a.y,n.children(r).length&&(t.width=a.width,t.height=a.height))}),f(e.edges(),function(r){var t=e.edge(r),a=n.edge(r);t.points=a.points,Object.prototype.hasOwnProperty.call(a,"x")&&(t.x=a.x,t.y=a.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height}var Fr=["nodesep","edgesep","ranksep","marginx","marginy"],jr={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},Vr=["acyclicer","ranker","rankdir","align"],Ar=["width","height"],Br={width:0,height:0},Gr=["minlen","weight","width","height","labeloffset"],Yr={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Dr=["labelpos"];function qr(e){var n=new g({multigraph:!0,compound:!0}),r=D(e.graph());return n.setGraph(W({},jr,Y(r,Fr),I(r,Vr))),f(e.nodes(),function(t){var a=D(e.node(t));n.setNode(t,Be(Y(a,Ar),Br)),n.setParent(t,e.parent(t))}),f(e.edges(),function(t){var a=D(e.edge(t));n.setEdge(t,W({},Yr,Y(a,Gr),I(a,Dr)))}),n}function Wr(e){var n=e.graph();n.ranksep/=2,f(e.edges(),function(r){var t=e.edge(r);t.minlen*=2,t.labelpos.toLowerCase()!=="c"&&(n.rankdir==="TB"||n.rankdir==="BT"?t.width+=t.labeloffset:t.height+=t.labeloffset)})}function $r(e){f(e.edges(),function(n){var r=e.edge(n);if(r.width&&r.height){var t=e.node(n.v),a=e.node(n.w),i={rank:(a.rank-t.rank)/2+t.rank,e:n};L(e,"edge-proxy",i,"_ep")}})}function zr(e){var n=0;f(e.nodes(),function(r){var t=e.node(r);t.borderTop&&(t.minRank=e.node(t.borderTop).rank,t.maxRank=e.node(t.borderBottom).rank,n=y(n,t.maxRank))}),e.graph().maxRank=n}function Xr(e){f(e.nodes(),function(n){var r=e.node(n);r.dummy==="edge-proxy"&&(e.edge(r.e).labelRank=r.rank,e.removeNode(n))})}function Ur(e){var n=Number.POSITIVE_INFINITY,r=0,t=Number.POSITIVE_INFINITY,a=0,i=e.graph(),o=i.marginx||0,u=i.marginy||0;function d(s){var c=s.x,l=s.y,h=s.width,v=s.height;n=Math.min(n,c-h/2),r=Math.max(r,c+h/2),t=Math.min(t,l-v/2),a=Math.max(a,l+v/2)}f(e.nodes(),function(s){d(e.node(s))}),f(e.edges(),function(s){var c=e.edge(s);Object.prototype.hasOwnProperty.call(c,"x")&&d(c)}),n-=o,t-=u,f(e.nodes(),function(s){var c=e.node(s);c.x-=n,c.y-=t}),f(e.edges(),function(s){var c=e.edge(s);f(c.points,function(l){l.x-=n,l.y-=t}),Object.prototype.hasOwnProperty.call(c,"x")&&(c.x-=n),Object.prototype.hasOwnProperty.call(c,"y")&&(c.y-=t)}),i.width=r-n+o,i.height=a-t+u}function Hr(e){f(e.edges(),function(n){var r=e.edge(n),t=e.node(n.v),a=e.node(n.w),i,o;r.points?(i=r.points[0],o=r.points[r.points.length-1]):(r.points=[],i=a,o=t),r.points.unshift(re(t,i)),r.points.push(re(a,o))})}function Zr(e){f(e.edges(),function(n){var r=e.edge(n);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function Jr(e){f(e.edges(),function(n){var r=e.edge(n);r.reversed&&r.points.reverse()})}function Kr(e){f(e.nodes(),function(n){if(e.children(n).length){var r=e.node(n),t=e.node(r.borderTop),a=e.node(r.borderBottom),i=e.node(T(r.borderLeft)),o=e.node(T(r.borderRight));r.width=Math.abs(o.x-i.x),r.height=Math.abs(a.y-t.y),r.x=i.x+r.width/2,r.y=t.y+r.height/2}}),f(e.nodes(),function(n){e.node(n).dummy==="border"&&e.removeNode(n)})}function Qr(e){f(e.edges(),function(n){if(n.v===n.w){var r=e.node(n.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})}function et(e){var n=F(e);f(n,function(r){var t=0;f(r,function(a,i){var o=e.node(a);o.order=i+t,f(o.selfEdges,function(u){L(e,"selfedge",{width:u.label.width,height:u.label.height,rank:o.rank,order:i+ ++t,e:u.e,label:u.label},"_se")}),delete o.selfEdges})})}function nt(e){f(e.nodes(),function(n){var r=e.node(n);if(r.dummy==="selfedge"){var t=e.node(r.e.v),a=t.x+t.width/2,i=t.y,o=r.x-a,u=t.height/2;e.setEdge(r.e,r.label),e.removeNode(n),r.label.points=[{x:a+2*o/3,y:i-u},{x:a+5*o/6,y:i-u},{x:a+o,y:i},{x:a+5*o/6,y:i+u},{x:a+2*o/3,y:i+u}],r.label.x=r.x,r.label.y=r.y}})}function Y(e,n){return S(I(e,n),Number)}function D(e){var n={};return f(e,function(r,t){n[t.toLowerCase()]=r}),n}export{ot as l}; +import{G as g}from"./graph-DexVwBa8.js";import{b as Te,p as ce,q as le,g as z,e as ee,l as j,o as Ie,s as Me,c as Se,u as Fe,d as f,i as m,f as _,v as x,r as M}from"./_baseUniq-OtJ11HbN.js";import{f as O,b as he,a as je,c as Ve,d as Ae,t as V,m as w,e as P,h as ve,g as X,l as T,i as Be}from"./_basePickBy-Lz6agtdo.js";import{b1 as Ge,b2 as Ye,b3 as De,aW as qe,b4 as We,a_ as pe,aZ as we,b5 as $e,aV as q,aq as ze,b0 as Xe,as as Ue,b6 as W}from"./mermaid-vendor-d7rbry5E.js";function He(e){return Ge(Ye(e,void 0,O),e+"")}var Ze=1,Je=4;function Ke(e){return Te(e,Ze|Je)}function Qe(e,n){return e==null?e:De(e,ce(n),qe)}function en(e,n){return e&&le(e,ce(n))}function nn(e,n){return e>n}function S(e,n){var r={};return n=z(n),le(e,function(t,a,i){We(r,a,n(t,a,i))}),r}function y(e){return e&&e.length?he(e,pe,nn):void 0}function U(e,n){return e&&e.length?he(e,z(n),je):void 0}function rn(e,n){var r=e.length;for(e.sort(n);r--;)e[r]=e[r].value;return e}function tn(e,n){if(e!==n){var r=e!==void 0,t=e===null,a=e===e,i=ee(e),o=n!==void 0,u=n===null,d=n===n,s=ee(n);if(!u&&!s&&!i&&e>n||i&&o&&d&&!u&&!s||t&&o&&d||!r&&d||!a)return 1;if(!t&&!i&&!s&&e=u)return d;var s=r[t];return d*(s=="desc"?-1:1)}}return e.index-n.index}function on(e,n,r){n.length?n=j(n,function(i){return we(i)?function(o){return Ie(o,i.length===1?i[0]:i)}:i}):n=[pe];var t=-1;n=j(n,$e(z));var a=Ve(e,function(i,o,u){var d=j(n,function(s){return s(i)});return{criteria:d,index:++t,value:i}});return rn(a,function(i,o){return an(i,o,r)})}function un(e,n){return Ae(e,n,function(r,t){return Me(e,t)})}var I=He(function(e,n){return e==null?{}:un(e,n)}),dn=Math.ceil,sn=Math.max;function fn(e,n,r,t){for(var a=-1,i=sn(dn((n-e)/(r||1)),0),o=Array(i);i--;)o[++a]=e,e+=r;return o}function cn(e){return function(n,r,t){return t&&typeof t!="number"&&q(n,r,t)&&(r=t=void 0),n=V(n),r===void 0?(r=n,n=0):r=V(r),t=t===void 0?n1&&q(e,n[0],n[1])?n=[]:r>2&&q(n[0],n[1],n[2])&&(n=[n[0]]),on(e,Se(n),[])}),ln=0;function H(e){var n=++ln;return Fe(e)+n}function hn(e,n,r){for(var t=-1,a=e.length,i=n.length,o={};++t0;--u)if(o=n[u].dequeue(),o){t=t.concat(A(e,n,r,o,!0));break}}}return t}function A(e,n,r,t,a){var i=a?[]:void 0;return f(e.inEdges(t.v),function(o){var u=e.edge(o),d=e.node(o.v);a&&i.push({v:o.v,w:o.w}),d.out-=u,$(n,r,d)}),f(e.outEdges(t.v),function(o){var u=e.edge(o),d=o.w,s=e.node(d);s.in-=u,$(n,r,s)}),e.removeNode(t.v),i}function yn(e,n){var r=new g,t=0,a=0;f(e.nodes(),function(u){r.setNode(u,{v:u,in:0,out:0})}),f(e.edges(),function(u){var d=r.edge(u.v,u.w)||0,s=n(u),c=d+s;r.setEdge(u.v,u.w,c),a=Math.max(a,r.node(u.v).out+=s),t=Math.max(t,r.node(u.w).in+=s)});var i=E(a+t+3).map(function(){return new pn}),o=t+1;return f(r.nodes(),function(u){$(i,o,r.node(u))}),{graph:r,buckets:i,zeroIdx:o}}function $(e,n,r){r.out?r.in?e[r.out-r.in+n].enqueue(r):e[e.length-1].enqueue(r):e[0].enqueue(r)}function kn(e){var n=e.graph().acyclicer==="greedy"?mn(e,r(e)):xn(e);f(n,function(t){var a=e.edge(t);e.removeEdge(t),a.forwardName=t.name,a.reversed=!0,e.setEdge(t.w,t.v,a,H("rev"))});function r(t){return function(a){return t.edge(a).weight}}}function xn(e){var n=[],r={},t={};function a(i){Object.prototype.hasOwnProperty.call(t,i)||(t[i]=!0,r[i]=!0,f(e.outEdges(i),function(o){Object.prototype.hasOwnProperty.call(r,o.w)?n.push(o):a(o.w)}),delete r[i])}return f(e.nodes(),a),n}function En(e){f(e.edges(),function(n){var r=e.edge(n);if(r.reversed){e.removeEdge(n);var t=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(n.w,n.v,r,t)}})}function L(e,n,r,t){var a;do a=H(t);while(e.hasNode(a));return r.dummy=n,e.setNode(a,r),a}function On(e){var n=new g().setGraph(e.graph());return f(e.nodes(),function(r){n.setNode(r,e.node(r))}),f(e.edges(),function(r){var t=n.edge(r.v,r.w)||{weight:0,minlen:1},a=e.edge(r);n.setEdge(r.v,r.w,{weight:t.weight+a.weight,minlen:Math.max(t.minlen,a.minlen)})}),n}function be(e){var n=new g({multigraph:e.isMultigraph()}).setGraph(e.graph());return f(e.nodes(),function(r){e.children(r).length||n.setNode(r,e.node(r))}),f(e.edges(),function(r){n.setEdge(r,e.edge(r))}),n}function re(e,n){var r=e.x,t=e.y,a=n.x-r,i=n.y-t,o=e.width/2,u=e.height/2;if(!a&&!i)throw new Error("Not possible to find intersection inside of the rectangle");var d,s;return Math.abs(i)*o>Math.abs(a)*u?(i<0&&(u=-u),d=u*a/i,s=u):(a<0&&(o=-o),d=o,s=o*i/a),{x:r+d,y:t+s}}function F(e){var n=w(E(me(e)+1),function(){return[]});return f(e.nodes(),function(r){var t=e.node(r),a=t.rank;m(a)||(n[a][t.order]=r)}),n}function Ln(e){var n=P(w(e.nodes(),function(r){return e.node(r).rank}));f(e.nodes(),function(r){var t=e.node(r);ve(t,"rank")&&(t.rank-=n)})}function Nn(e){var n=P(w(e.nodes(),function(i){return e.node(i).rank})),r=[];f(e.nodes(),function(i){var o=e.node(i).rank-n;r[o]||(r[o]=[]),r[o].push(i)});var t=0,a=e.graph().nodeRankFactor;f(r,function(i,o){m(i)&&o%a!==0?--t:t&&f(i,function(u){e.node(u).rank+=t})})}function te(e,n,r,t){var a={width:0,height:0};return arguments.length>=4&&(a.rank=r,a.order=t),L(e,"border",a,n)}function me(e){return y(w(e.nodes(),function(n){var r=e.node(n).rank;if(!m(r))return r}))}function Pn(e,n){var r={lhs:[],rhs:[]};return f(e,function(t){n(t)?r.lhs.push(t):r.rhs.push(t)}),r}function Cn(e,n){return n()}function _n(e){function n(r){var t=e.children(r),a=e.node(r);if(t.length&&f(t,n),Object.prototype.hasOwnProperty.call(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var i=a.minRank,o=a.maxRank+1;io.lim&&(u=o,d=!0);var s=_(n.edges(),function(c){return d===oe(e,e.node(c.v),u)&&d!==oe(e,e.node(c.w),u)});return U(s,function(c){return C(n,c)})}function Pe(e,n,r,t){var a=r.v,i=r.w;e.removeEdge(a,i),e.setEdge(t.v,t.w,{}),K(e),J(e,n),Wn(e,n)}function Wn(e,n){var r=X(e.nodes(),function(a){return!n.node(a).parent}),t=Dn(e,r);t=t.slice(1),f(t,function(a){var i=e.node(a).parent,o=n.edge(a,i),u=!1;o||(o=n.edge(i,a),u=!0),n.node(a).rank=n.node(i).rank+(u?o.minlen:-o.minlen)})}function $n(e,n,r){return e.hasEdge(n,r)}function oe(e,n,r){return r.low<=n.lim&&n.lim<=r.lim}function zn(e){switch(e.graph().ranker){case"network-simplex":ue(e);break;case"tight-tree":Un(e);break;case"longest-path":Xn(e);break;default:ue(e)}}var Xn=Z;function Un(e){Z(e),ye(e)}function ue(e){k(e)}function Hn(e){var n=L(e,"root",{},"_root"),r=Zn(e),t=y(x(r))-1,a=2*t+1;e.graph().nestingRoot=n,f(e.edges(),function(o){e.edge(o).minlen*=a});var i=Jn(e)+1;f(e.children(),function(o){Ce(e,n,a,i,t,r,o)}),e.graph().nodeRankFactor=a}function Ce(e,n,r,t,a,i,o){var u=e.children(o);if(!u.length){o!==n&&e.setEdge(n,o,{weight:0,minlen:r});return}var d=te(e,"_bt"),s=te(e,"_bb"),c=e.node(o);e.setParent(d,o),c.borderTop=d,e.setParent(s,o),c.borderBottom=s,f(u,function(l){Ce(e,n,r,t,a,i,l);var h=e.node(l),v=h.borderTop?h.borderTop:l,p=h.borderBottom?h.borderBottom:l,b=h.borderTop?t:2*t,N=v!==p?1:a-i[o]+1;e.setEdge(d,v,{weight:b,minlen:N,nestingEdge:!0}),e.setEdge(p,s,{weight:b,minlen:N,nestingEdge:!0})}),e.parent(o)||e.setEdge(n,d,{weight:0,minlen:a+i[o]})}function Zn(e){var n={};function r(t,a){var i=e.children(t);i&&i.length&&f(i,function(o){r(o,a+1)}),n[t]=a}return f(e.children(),function(t){r(t,1)}),n}function Jn(e){return M(e.edges(),function(n,r){return n+e.edge(r).weight},0)}function Kn(e){var n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,f(e.edges(),function(r){var t=e.edge(r);t.nestingEdge&&e.removeEdge(r)})}function Qn(e,n,r){var t={},a;f(r,function(i){for(var o=e.parent(i),u,d;o;){if(u=e.parent(o),u?(d=t[u],t[u]=o):(d=a,a=o),d&&d!==o){n.setEdge(d,o);return}o=u}})}function er(e,n,r){var t=nr(e),a=new g({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(i){return e.node(i)});return f(e.nodes(),function(i){var o=e.node(i),u=e.parent(i);(o.rank===n||o.minRank<=n&&n<=o.maxRank)&&(a.setNode(i),a.setParent(i,u||t),f(e[r](i),function(d){var s=d.v===i?d.w:d.v,c=a.edge(s,i),l=m(c)?0:c.weight;a.setEdge(s,i,{weight:e.edge(d).weight+l})}),Object.prototype.hasOwnProperty.call(o,"minRank")&&a.setNode(i,{borderLeft:o.borderLeft[n],borderRight:o.borderRight[n]}))}),a}function nr(e){for(var n;e.hasNode(n=H("_root")););return n}function rr(e,n){for(var r=0,t=1;t0;)c%2&&(l+=u[c+1]),c=c-1>>1,u[c]+=s.weight;d+=s.weight*l})),d}function ar(e){var n={},r=_(e.nodes(),function(u){return!e.children(u).length}),t=y(w(r,function(u){return e.node(u).rank})),a=w(E(t+1),function(){return[]});function i(u){if(!ve(n,u)){n[u]=!0;var d=e.node(u);a[d.rank].push(u),f(e.successors(u),i)}}var o=R(r,function(u){return e.node(u).rank});return f(o,i),a}function ir(e,n){return w(n,function(r){var t=e.inEdges(r);if(t.length){var a=M(t,function(i,o){var u=e.edge(o),d=e.node(o.v);return{sum:i.sum+u.weight*d.order,weight:i.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:a.sum/a.weight,weight:a.weight}}else return{v:r}})}function or(e,n){var r={};f(e,function(a,i){var o=r[a.v]={indegree:0,in:[],out:[],vs:[a.v],i};m(a.barycenter)||(o.barycenter=a.barycenter,o.weight=a.weight)}),f(n.edges(),function(a){var i=r[a.v],o=r[a.w];!m(i)&&!m(o)&&(o.indegree++,i.out.push(r[a.w]))});var t=_(r,function(a){return!a.indegree});return ur(t)}function ur(e){var n=[];function r(i){return function(o){o.merged||(m(o.barycenter)||m(i.barycenter)||o.barycenter>=i.barycenter)&&dr(i,o)}}function t(i){return function(o){o.in.push(i),--o.indegree===0&&e.push(o)}}for(;e.length;){var a=e.pop();n.push(a),f(a.in.reverse(),r(a)),f(a.out,t(a))}return w(_(n,function(i){return!i.merged}),function(i){return I(i,["vs","i","barycenter","weight"])})}function dr(e,n){var r=0,t=0;e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=r/t,e.weight=t,e.i=Math.min(n.i,e.i),n.merged=!0}function sr(e,n){var r=Pn(e,function(c){return Object.prototype.hasOwnProperty.call(c,"barycenter")}),t=r.lhs,a=R(r.rhs,function(c){return-c.i}),i=[],o=0,u=0,d=0;t.sort(fr(!!n)),d=de(i,a,d),f(t,function(c){d+=c.vs.length,i.push(c.vs),o+=c.barycenter*c.weight,u+=c.weight,d=de(i,a,d)});var s={vs:O(i)};return u&&(s.barycenter=o/u,s.weight=u),s}function de(e,n,r){for(var t;n.length&&(t=T(n)).i<=r;)n.pop(),e.push(t.vs),r++;return r}function fr(e){return function(n,r){return n.barycenterr.barycenter?1:e?r.i-n.i:n.i-r.i}}function _e(e,n,r,t){var a=e.children(n),i=e.node(n),o=i?i.borderLeft:void 0,u=i?i.borderRight:void 0,d={};o&&(a=_(a,function(p){return p!==o&&p!==u}));var s=ir(e,a);f(s,function(p){if(e.children(p.v).length){var b=_e(e,p.v,r,t);d[p.v]=b,Object.prototype.hasOwnProperty.call(b,"barycenter")&&lr(p,b)}});var c=or(s,r);cr(c,d);var l=sr(c,t);if(o&&(l.vs=O([o,l.vs,u]),e.predecessors(o).length)){var h=e.node(e.predecessors(o)[0]),v=e.node(e.predecessors(u)[0]);Object.prototype.hasOwnProperty.call(l,"barycenter")||(l.barycenter=0,l.weight=0),l.barycenter=(l.barycenter*l.weight+h.order+v.order)/(l.weight+2),l.weight+=2}return l}function cr(e,n){f(e,function(r){r.vs=O(r.vs.map(function(t){return n[t]?n[t].vs:t}))})}function lr(e,n){m(e.barycenter)?(e.barycenter=n.barycenter,e.weight=n.weight):(e.barycenter=(e.barycenter*e.weight+n.barycenter*n.weight)/(e.weight+n.weight),e.weight+=n.weight)}function hr(e){var n=me(e),r=se(e,E(1,n+1),"inEdges"),t=se(e,E(n-1,-1,-1),"outEdges"),a=ar(e);fe(e,a);for(var i=Number.POSITIVE_INFINITY,o,u=0,d=0;d<4;++u,++d){vr(u%2?r:t,u%4>=2),a=F(e);var s=rr(e,a);so||u>n[d].lim));for(s=d,d=t;(d=e.parent(d))!==s;)i.push(d);return{path:a.concat(i.reverse()),lca:s}}function br(e){var n={},r=0;function t(a){var i=r;f(e.children(a),t),n[a]={low:i,lim:r++}}return f(e.children(),t),n}function mr(e,n){var r={};function t(a,i){var o=0,u=0,d=a.length,s=T(i);return f(i,function(c,l){var h=yr(e,c),v=h?e.node(h).order:d;(h||c===s)&&(f(i.slice(u,l+1),function(p){f(e.predecessors(p),function(b){var N=e.node(b),Q=N.order;(Qs)&&Re(r,h,c)})})}function a(i,o){var u=-1,d,s=0;return f(o,function(c,l){if(e.node(c).dummy==="border"){var h=e.predecessors(c);h.length&&(d=e.node(h[0]).order,t(o,s,l,u,d),s=l,u=d)}t(o,s,o.length,d,i.length)}),o}return M(n,a),r}function yr(e,n){if(e.node(n).dummy)return X(e.predecessors(n),function(r){return e.node(r).dummy})}function Re(e,n,r){if(n>r){var t=n;n=r,r=t}var a=e[n];a||(e[n]=a={}),a[r]=!0}function kr(e,n,r){if(n>r){var t=n;n=r,r=t}return!!e[n]&&Object.prototype.hasOwnProperty.call(e[n],r)}function xr(e,n,r,t){var a={},i={},o={};return f(n,function(u){f(u,function(d,s){a[d]=d,i[d]=d,o[d]=s})}),f(n,function(u){var d=-1;f(u,function(s){var c=t(s);if(c.length){c=R(c,function(b){return o[b]});for(var l=(c.length-1)/2,h=Math.floor(l),v=Math.ceil(l);h<=v;++h){var p=c[h];i[s]===s&&d{var t=r(" buildLayoutGraph",()=>qr(e));r(" runLayout",()=>Mr(t,r)),r(" updateInputGraph",()=>Sr(e,t))})}function Mr(e,n){n(" makeSpaceForEdgeLabels",()=>Wr(e)),n(" removeSelfEdges",()=>Qr(e)),n(" acyclic",()=>kn(e)),n(" nestingGraph.run",()=>Hn(e)),n(" rank",()=>zn(be(e))),n(" injectEdgeLabelProxies",()=>$r(e)),n(" removeEmptyRanks",()=>Nn(e)),n(" nestingGraph.cleanup",()=>Kn(e)),n(" normalizeRanks",()=>Ln(e)),n(" assignRankMinMax",()=>zr(e)),n(" removeEdgeLabelProxies",()=>Xr(e)),n(" normalize.run",()=>Sn(e)),n(" parentDummyChains",()=>pr(e)),n(" addBorderSegments",()=>_n(e)),n(" order",()=>hr(e)),n(" insertSelfEdges",()=>et(e)),n(" adjustCoordinateSystem",()=>Rn(e)),n(" position",()=>Tr(e)),n(" positionSelfEdges",()=>nt(e)),n(" removeBorderNodes",()=>Kr(e)),n(" normalize.undo",()=>jn(e)),n(" fixupEdgeLabelCoords",()=>Zr(e)),n(" undoCoordinateSystem",()=>Tn(e)),n(" translateGraph",()=>Ur(e)),n(" assignNodeIntersects",()=>Hr(e)),n(" reversePoints",()=>Jr(e)),n(" acyclic.undo",()=>En(e))}function Sr(e,n){f(e.nodes(),function(r){var t=e.node(r),a=n.node(r);t&&(t.x=a.x,t.y=a.y,n.children(r).length&&(t.width=a.width,t.height=a.height))}),f(e.edges(),function(r){var t=e.edge(r),a=n.edge(r);t.points=a.points,Object.prototype.hasOwnProperty.call(a,"x")&&(t.x=a.x,t.y=a.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height}var Fr=["nodesep","edgesep","ranksep","marginx","marginy"],jr={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},Vr=["acyclicer","ranker","rankdir","align"],Ar=["width","height"],Br={width:0,height:0},Gr=["minlen","weight","width","height","labeloffset"],Yr={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Dr=["labelpos"];function qr(e){var n=new g({multigraph:!0,compound:!0}),r=D(e.graph());return n.setGraph(W({},jr,Y(r,Fr),I(r,Vr))),f(e.nodes(),function(t){var a=D(e.node(t));n.setNode(t,Be(Y(a,Ar),Br)),n.setParent(t,e.parent(t))}),f(e.edges(),function(t){var a=D(e.edge(t));n.setEdge(t,W({},Yr,Y(a,Gr),I(a,Dr)))}),n}function Wr(e){var n=e.graph();n.ranksep/=2,f(e.edges(),function(r){var t=e.edge(r);t.minlen*=2,t.labelpos.toLowerCase()!=="c"&&(n.rankdir==="TB"||n.rankdir==="BT"?t.width+=t.labeloffset:t.height+=t.labeloffset)})}function $r(e){f(e.edges(),function(n){var r=e.edge(n);if(r.width&&r.height){var t=e.node(n.v),a=e.node(n.w),i={rank:(a.rank-t.rank)/2+t.rank,e:n};L(e,"edge-proxy",i,"_ep")}})}function zr(e){var n=0;f(e.nodes(),function(r){var t=e.node(r);t.borderTop&&(t.minRank=e.node(t.borderTop).rank,t.maxRank=e.node(t.borderBottom).rank,n=y(n,t.maxRank))}),e.graph().maxRank=n}function Xr(e){f(e.nodes(),function(n){var r=e.node(n);r.dummy==="edge-proxy"&&(e.edge(r.e).labelRank=r.rank,e.removeNode(n))})}function Ur(e){var n=Number.POSITIVE_INFINITY,r=0,t=Number.POSITIVE_INFINITY,a=0,i=e.graph(),o=i.marginx||0,u=i.marginy||0;function d(s){var c=s.x,l=s.y,h=s.width,v=s.height;n=Math.min(n,c-h/2),r=Math.max(r,c+h/2),t=Math.min(t,l-v/2),a=Math.max(a,l+v/2)}f(e.nodes(),function(s){d(e.node(s))}),f(e.edges(),function(s){var c=e.edge(s);Object.prototype.hasOwnProperty.call(c,"x")&&d(c)}),n-=o,t-=u,f(e.nodes(),function(s){var c=e.node(s);c.x-=n,c.y-=t}),f(e.edges(),function(s){var c=e.edge(s);f(c.points,function(l){l.x-=n,l.y-=t}),Object.prototype.hasOwnProperty.call(c,"x")&&(c.x-=n),Object.prototype.hasOwnProperty.call(c,"y")&&(c.y-=t)}),i.width=r-n+o,i.height=a-t+u}function Hr(e){f(e.edges(),function(n){var r=e.edge(n),t=e.node(n.v),a=e.node(n.w),i,o;r.points?(i=r.points[0],o=r.points[r.points.length-1]):(r.points=[],i=a,o=t),r.points.unshift(re(t,i)),r.points.push(re(a,o))})}function Zr(e){f(e.edges(),function(n){var r=e.edge(n);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function Jr(e){f(e.edges(),function(n){var r=e.edge(n);r.reversed&&r.points.reverse()})}function Kr(e){f(e.nodes(),function(n){if(e.children(n).length){var r=e.node(n),t=e.node(r.borderTop),a=e.node(r.borderBottom),i=e.node(T(r.borderLeft)),o=e.node(T(r.borderRight));r.width=Math.abs(o.x-i.x),r.height=Math.abs(a.y-t.y),r.x=i.x+r.width/2,r.y=t.y+r.height/2}}),f(e.nodes(),function(n){e.node(n).dummy==="border"&&e.removeNode(n)})}function Qr(e){f(e.edges(),function(n){if(n.v===n.w){var r=e.node(n.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})}function et(e){var n=F(e);f(n,function(r){var t=0;f(r,function(a,i){var o=e.node(a);o.order=i+t,f(o.selfEdges,function(u){L(e,"selfedge",{width:u.label.width,height:u.label.height,rank:o.rank,order:i+ ++t,e:u.e,label:u.label},"_se")}),delete o.selfEdges})})}function nt(e){f(e.nodes(),function(n){var r=e.node(n);if(r.dummy==="selfedge"){var t=e.node(r.e.v),a=t.x+t.width/2,i=t.y,o=r.x-a,u=t.height/2;e.setEdge(r.e,r.label),e.removeNode(n),r.label.points=[{x:a+2*o/3,y:i-u},{x:a+5*o/6,y:i-u},{x:a+o,y:i},{x:a+5*o/6,y:i+u},{x:a+2*o/3,y:i+u}],r.label.x=r.x,r.label.y=r.y}})}function Y(e,n){return S(I(e,n),Number)}function D(e){var n={};return f(e,function(r,t){n[t.toLowerCase()]=r}),n}export{ot as l}; diff --git a/lightrag/api/webui/assets/mermaid-vendor-SwnP6Sr8.js b/lightrag/api/webui/assets/mermaid-vendor-d7rbry5E.js similarity index 99% rename from lightrag/api/webui/assets/mermaid-vendor-SwnP6Sr8.js rename to lightrag/api/webui/assets/mermaid-vendor-d7rbry5E.js index 6aab8f7e..ff3194e6 100644 --- a/lightrag/api/webui/assets/mermaid-vendor-SwnP6Sr8.js +++ b/lightrag/api/webui/assets/mermaid-vendor-d7rbry5E.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markdown-vendor-BBaHfVvE.js","assets/ui-vendor-CeCm8EER.js","assets/react-vendor-DEwriMA6.js","assets/dagre-OKDRZEBW-hl_RTy2g.js","assets/graph-CmqUPRtj.js","assets/_baseUniq-D81M49Y6.js","assets/layout-Klo12PD4.js","assets/_basePickBy--_O36kXE.js","assets/clone-BHIBWXu-.js","assets/feature-graph-D6-O-kXP.js","assets/graph-vendor-B-X5JegA.js","assets/utils-vendor-BysuhMZA.js","assets/feature-graph-BipNuM18.css","assets/c4Diagram-VJAJSXHY-DhTcycAT.js","assets/chunk-D6G4REZN-CO4Tk6j6.js","assets/flowDiagram-4HSFHLVR-DC7cFb2q.js","assets/chunk-RZ5BOZE2-vCqEaZEa.js","assets/erDiagram-Q7BY3M3F-CAraTg_G.js","assets/gitGraphDiagram-7IBYFJ6S-C7t9VG9x.js","assets/chunk-4BMEZGHF-M5QBFtoC.js","assets/chunk-XZIHB7SX-BjHVUYBP.js","assets/radar-MK3ICKWK-CihkADAx.js","assets/ganttDiagram-APWFNJXF-CkKq4NOY.js","assets/infoDiagram-PH2N3AL5-C4VRyMR4.js","assets/pieDiagram-IB7DONF6-B0cIkycz.js","assets/quadrantDiagram-7GDLP6J5-zmngfYyO.js","assets/xychartDiagram-VJFVF3MP-5OclOI0o.js","assets/requirementDiagram-KVF5MWMF-A4JwVpFF.js","assets/sequenceDiagram-X6HHIX6F-hDfAwQVw.js","assets/classDiagram-GIVACNV2-DUFHlr92.js","assets/chunk-A2AXSNBT-CTXPIZDs.js","assets/classDiagram-v2-COTLJTTW-DUFHlr92.js","assets/stateDiagram-DGXRK772-CcL234E-.js","assets/chunk-AEK57VVT-BRJnVklE.js","assets/stateDiagram-v2-YXO3MK2T-BnpIGSVY.js","assets/journeyDiagram-U35MCT3I-YPalBptu.js","assets/timeline-definition-BDJGKUSR-CFveliQS.js","assets/mindmap-definition-ALO5MXBD-DGAXVsL1.js","assets/cytoscape.esm-CfBqOv7Q.js","assets/kanban-definition-NDS4AKOZ-DDoftzBy.js","assets/sankeyDiagram-QLVOVGJD-DkTUSo82.js","assets/diagram-VNBRO52H-CpzL1-Is.js","assets/diagram-SSKATNLV-prPjpZ5y.js","assets/blockDiagram-JOT3LUYC-Ca9NC-96.js","assets/architectureDiagram-IEHRJDOE-Ba9Io2eo.js"])))=>i.map(i=>d[i]); -var qy=Object.defineProperty;var Hy=(e,t,r)=>t in e?qy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Ct=(e,t,r)=>Hy(e,typeof t!="symbol"?t+"":t,r);import{a4 as _t}from"./feature-graph-D6-O-kXP.js";import{g as Uy}from"./react-vendor-DEwriMA6.js";var na={exports:{}},Yy=na.exports,Kc;function jy(){return Kc||(Kc=1,function(e,t){(function(r,i){e.exports=i()})(Yy,function(){var r=1e3,i=6e4,n=36e5,a="millisecond",o="second",s="minute",c="hour",l="day",h="week",u="month",f="quarter",d="year",p="date",m="Invalid Date",y=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,x=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(A){var F=["th","st","nd","rd"],L=A%100;return"["+A+(F[(L-20)%10]||F[L]||F[0])+"]"}},C=function(A,F,L){var D=String(A);return!D||D.length>=F?A:""+Array(F+1-D.length).join(L)+A},v={s:C,z:function(A){var F=-A.utcOffset(),L=Math.abs(F),D=Math.floor(L/60),B=L%60;return(F<=0?"+":"-")+C(D,2,"0")+":"+C(B,2,"0")},m:function A(F,L){if(F.date()1)return A(U[0])}else{var X=F.name;_[X]=F,B=X}return!D&&B&&(k=B),B||!D&&k},$=function(A,F){if(O(A))return A.clone();var L=typeof F=="object"?F:{};return L.date=A,L.args=arguments,new I(L)},S=v;S.l=N,S.i=O,S.w=function(A,F){return $(A,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var I=function(){function A(L){this.$L=N(L.locale,null,!0),this.parse(L),this.$x=this.$x||L.x||{},this[w]=!0}var F=A.prototype;return F.parse=function(L){this.$d=function(D){var B=D.date,W=D.utc;if(B===null)return new Date(NaN);if(S.u(B))return new Date;if(B instanceof Date)return new Date(B);if(typeof B=="string"&&!/Z$/i.test(B)){var U=B.match(y);if(U){var X=U[2]-1||0,J=(U[7]||"0").substring(0,3);return W?new Date(Date.UTC(U[1],X,U[3]||1,U[4]||0,U[5]||0,U[6]||0,J)):new Date(U[1],X,U[3]||1,U[4]||0,U[5]||0,U[6]||0,J)}}return new Date(B)}(L),this.init()},F.init=function(){var L=this.$d;this.$y=L.getFullYear(),this.$M=L.getMonth(),this.$D=L.getDate(),this.$W=L.getDay(),this.$H=L.getHours(),this.$m=L.getMinutes(),this.$s=L.getSeconds(),this.$ms=L.getMilliseconds()},F.$utils=function(){return S},F.isValid=function(){return this.$d.toString()!==m},F.isSame=function(L,D){var B=$(L);return this.startOf(D)<=B&&B<=this.endOf(D)},F.isAfter=function(L,D){return $(L)e>=255?255:e<0?0:e,g:e=>e>=255?255:e<0?0:e,b:e=>e>=255?255:e<0?0:e,h:e=>e%360,s:e=>e>=100?100:e<0?0:e,l:e=>e>=100?100:e<0?0:e,a:e=>e>=1?1:e<0?0:e},toLinear:e=>{const t=e/255;return e>.03928?Math.pow((t+.055)/1.055,2.4):t/12.92},hue2rgb:(e,t,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e),hsl2rgb:({h:e,s:t,l:r},i)=>{if(!t)return r*2.55;e/=360,t/=100,r/=100;const n=r<.5?r*(1+t):r+t-r*t,a=2*r-n;switch(i){case"r":return aa.hue2rgb(a,n,e+1/3)*255;case"g":return aa.hue2rgb(a,n,e)*255;case"b":return aa.hue2rgb(a,n,e-1/3)*255}},rgb2hsl:({r:e,g:t,b:r},i)=>{e/=255,t/=255,r/=255;const n=Math.max(e,t,r),a=Math.min(e,t,r),o=(n+a)/2;if(i==="l")return o*100;if(n===a)return 0;const s=n-a,c=o>.5?s/(2-n-a):s/(n+a);if(i==="s")return c*100;switch(n){case e:return((t-r)/s+(tt>r?Math.min(t,Math.max(r,e)):Math.min(r,Math.max(t,e)),round:e=>Math.round(e*1e10)/1e10},Zy={dec2hex:e=>{const t=Math.round(e).toString(16);return t.length>1?t:`0${t}`}},lt={channel:aa,lang:Xy,unit:Zy},ar={};for(let e=0;e<=255;e++)ar[e]=lt.unit.dec2hex(e);const jt={ALL:0,RGB:1,HSL:2};class Ky{constructor(){this.type=jt.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=jt.ALL}is(t){return this.type===t}}class Qy{constructor(t,r){this.color=r,this.changed=!1,this.data=t,this.type=new Ky}set(t,r){return this.color=r,this.changed=!1,this.data=t,this.type.type=jt.ALL,this}_ensureHSL(){const t=this.data,{h:r,s:i,l:n}=t;r===void 0&&(t.h=lt.channel.rgb2hsl(t,"h")),i===void 0&&(t.s=lt.channel.rgb2hsl(t,"s")),n===void 0&&(t.l=lt.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r,g:i,b:n}=t;r===void 0&&(t.r=lt.channel.hsl2rgb(t,"r")),i===void 0&&(t.g=lt.channel.hsl2rgb(t,"g")),n===void 0&&(t.b=lt.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,r=t.r;return!this.type.is(jt.HSL)&&r!==void 0?r:(this._ensureHSL(),lt.channel.hsl2rgb(t,"r"))}get g(){const t=this.data,r=t.g;return!this.type.is(jt.HSL)&&r!==void 0?r:(this._ensureHSL(),lt.channel.hsl2rgb(t,"g"))}get b(){const t=this.data,r=t.b;return!this.type.is(jt.HSL)&&r!==void 0?r:(this._ensureHSL(),lt.channel.hsl2rgb(t,"b"))}get h(){const t=this.data,r=t.h;return!this.type.is(jt.RGB)&&r!==void 0?r:(this._ensureRGB(),lt.channel.rgb2hsl(t,"h"))}get s(){const t=this.data,r=t.s;return!this.type.is(jt.RGB)&&r!==void 0?r:(this._ensureRGB(),lt.channel.rgb2hsl(t,"s"))}get l(){const t=this.data,r=t.l;return!this.type.is(jt.RGB)&&r!==void 0?r:(this._ensureRGB(),lt.channel.rgb2hsl(t,"l"))}get a(){return this.data.a}set r(t){this.type.set(jt.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(jt.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(jt.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(jt.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(jt.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(jt.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}const fs=new Qy({r:0,g:0,b:0,a:0},"transparent"),ri={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:e=>{if(e.charCodeAt(0)!==35)return;const t=e.match(ri.re);if(!t)return;const r=t[1],i=parseInt(r,16),n=r.length,a=n%4===0,o=n>4,s=o?1:17,c=o?8:4,l=a?0:-1,h=o?255:15;return fs.set({r:(i>>c*(l+3)&h)*s,g:(i>>c*(l+2)&h)*s,b:(i>>c*(l+1)&h)*s,a:a?(i&h)*s/255:1},e)},stringify:e=>{const{r:t,g:r,b:i,a:n}=e;return n<1?`#${ar[Math.round(t)]}${ar[Math.round(r)]}${ar[Math.round(i)]}${ar[Math.round(n*255)]}`:`#${ar[Math.round(t)]}${ar[Math.round(r)]}${ar[Math.round(i)]}`}},Cr={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:e=>{const t=e.match(Cr.hueRe);if(t){const[,r,i]=t;switch(i){case"grad":return lt.channel.clamp.h(parseFloat(r)*.9);case"rad":return lt.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return lt.channel.clamp.h(parseFloat(r)*360)}}return lt.channel.clamp.h(parseFloat(e))},parse:e=>{const t=e.charCodeAt(0);if(t!==104&&t!==72)return;const r=e.match(Cr.re);if(!r)return;const[,i,n,a,o,s]=r;return fs.set({h:Cr._hue2deg(i),s:lt.channel.clamp.s(parseFloat(n)),l:lt.channel.clamp.l(parseFloat(a)),a:o?lt.channel.clamp.a(s?parseFloat(o)/100:parseFloat(o)):1},e)},stringify:e=>{const{h:t,s:r,l:i,a:n}=e;return n<1?`hsla(${lt.lang.round(t)}, ${lt.lang.round(r)}%, ${lt.lang.round(i)}%, ${n})`:`hsl(${lt.lang.round(t)}, ${lt.lang.round(r)}%, ${lt.lang.round(i)}%)`}},on={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:e=>{e=e.toLowerCase();const t=on.colors[e];if(t)return ri.parse(t)},stringify:e=>{const t=ri.stringify(e);for(const r in on.colors)if(on.colors[r]===t)return r}},Ji={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:e=>{const t=e.charCodeAt(0);if(t!==114&&t!==82)return;const r=e.match(Ji.re);if(!r)return;const[,i,n,a,o,s,c,l,h]=r;return fs.set({r:lt.channel.clamp.r(n?parseFloat(i)*2.55:parseFloat(i)),g:lt.channel.clamp.g(o?parseFloat(a)*2.55:parseFloat(a)),b:lt.channel.clamp.b(c?parseFloat(s)*2.55:parseFloat(s)),a:l?lt.channel.clamp.a(h?parseFloat(l)/100:parseFloat(l)):1},e)},stringify:e=>{const{r:t,g:r,b:i,a:n}=e;return n<1?`rgba(${lt.lang.round(t)}, ${lt.lang.round(r)}, ${lt.lang.round(i)}, ${lt.lang.round(n)})`:`rgb(${lt.lang.round(t)}, ${lt.lang.round(r)}, ${lt.lang.round(i)})`}},Te={format:{keyword:on,hex:ri,rgb:Ji,rgba:Ji,hsl:Cr,hsla:Cr},parse:e=>{if(typeof e!="string")return e;const t=ri.parse(e)||Ji.parse(e)||Cr.parse(e)||on.parse(e);if(t)return t;throw new Error(`Unsupported color format: "${e}"`)},stringify:e=>!e.changed&&e.color?e.color:e.type.is(jt.HSL)||e.data.r===void 0?Cr.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?Ji.stringify(e):ri.stringify(e)},Ku=(e,t)=>{const r=Te.parse(e);for(const i in t)r[i]=lt.channel.clamp[i](t[i]);return Te.stringify(r)},ln=(e,t,r=0,i=1)=>{if(typeof e!="number")return Ku(e,{a:t});const n=fs.set({r:lt.channel.clamp.r(e),g:lt.channel.clamp.g(t),b:lt.channel.clamp.b(r),a:lt.channel.clamp.a(i)});return Te.stringify(n)},a3=(e,t)=>lt.lang.round(Te.parse(e)[t]),Jy=e=>{const{r:t,g:r,b:i}=Te.parse(e),n=.2126*lt.channel.toLinear(t)+.7152*lt.channel.toLinear(r)+.0722*lt.channel.toLinear(i);return lt.lang.round(n)},tx=e=>Jy(e)>=.5,Mn=e=>!tx(e),Qu=(e,t,r)=>{const i=Te.parse(e),n=i[t],a=lt.channel.clamp[t](n+r);return n!==a&&(i[t]=a),Te.stringify(i)},Y=(e,t)=>Qu(e,"l",t),at=(e,t)=>Qu(e,"l",-t),M=(e,t)=>{const r=Te.parse(e),i={};for(const n in t)t[n]&&(i[n]=r[n]+t[n]);return Ku(e,i)},ex=(e,t,r=50)=>{const{r:i,g:n,b:a,a:o}=Te.parse(e),{r:s,g:c,b:l,a:h}=Te.parse(t),u=r/100,f=u*2-1,d=o-h,m=((f*d===-1?f:(f+d)/(1+f*d))+1)/2,y=1-m,x=i*m+s*y,b=n*m+c*y,C=a*m+l*y,v=o*u+h*(1-u);return ln(x,b,C,v)},H=(e,t=100)=>{const r=Te.parse(e);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,ex(r,e,t)};/*! @license DOMPurify 3.2.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.5/LICENSE */const{entries:Ju,setPrototypeOf:Qc,isFrozen:rx,getPrototypeOf:ix,getOwnPropertyDescriptor:nx}=Object;let{freeze:ie,seal:be,create:tf}=Object,{apply:Mo,construct:Ao}=typeof Reflect<"u"&&Reflect;ie||(ie=function(t){return t});be||(be=function(t){return t});Mo||(Mo=function(t,r,i){return t.apply(r,i)});Ao||(Ao=function(t,r){return new t(...r)});const Un=ne(Array.prototype.forEach),ax=ne(Array.prototype.lastIndexOf),Jc=ne(Array.prototype.pop),Ii=ne(Array.prototype.push),sx=ne(Array.prototype.splice),sa=ne(String.prototype.toLowerCase),Xs=ne(String.prototype.toString),th=ne(String.prototype.match),Pi=ne(String.prototype.replace),ox=ne(String.prototype.indexOf),lx=ne(String.prototype.trim),Ce=ne(Object.prototype.hasOwnProperty),Qt=ne(RegExp.prototype.test),Ni=cx(TypeError);function ne(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var r=arguments.length,i=new Array(r>1?r-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:sa;Qc&&Qc(e,null);let i=t.length;for(;i--;){let n=t[i];if(typeof n=="string"){const a=r(n);a!==n&&(rx(t)||(t[i]=a),n=a)}e[n]=!0}return e}function hx(e){for(let t=0;t/gm),gx=be(/\$\{[\w\W]*/gm),mx=be(/^data-[\-\w.\u00B7-\uFFFF]+$/),yx=be(/^aria-[\-\w]+$/),ef=be(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),xx=be(/^(?:\w+script|data):/i),bx=be(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),rf=be(/^html$/i),_x=be(/^[a-z][.\w]*(-[.\w]+)+$/i);var ah=Object.freeze({__proto__:null,ARIA_ATTR:yx,ATTR_WHITESPACE:bx,CUSTOM_ELEMENT:_x,DATA_ATTR:mx,DOCTYPE_NAME:rf,ERB_EXPR:px,IS_ALLOWED_URI:ef,IS_SCRIPT_OR_DATA:xx,MUSTACHE_EXPR:dx,TMPLIT_EXPR:gx});const Wi={element:1,text:3,progressingInstruction:7,comment:8,document:9},Cx=function(){return typeof window>"u"?null:window},wx=function(t,r){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null;const n="data-tt-policy-suffix";r&&r.hasAttribute(n)&&(i=r.getAttribute(n));const a="dompurify"+(i?"#"+i:"");try{return t.createPolicy(a,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},sh=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function nf(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Cx();const t=nt=>nf(nt);if(t.version="3.2.5",t.removed=[],!e||!e.document||e.document.nodeType!==Wi.document||!e.Element)return t.isSupported=!1,t;let{document:r}=e;const i=r,n=i.currentScript,{DocumentFragment:a,HTMLTemplateElement:o,Node:s,Element:c,NodeFilter:l,NamedNodeMap:h=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:u,DOMParser:f,trustedTypes:d}=e,p=c.prototype,m=zi(p,"cloneNode"),y=zi(p,"remove"),x=zi(p,"nextSibling"),b=zi(p,"childNodes"),C=zi(p,"parentNode");if(typeof o=="function"){const nt=r.createElement("template");nt.content&&nt.content.ownerDocument&&(r=nt.content.ownerDocument)}let v,k="";const{implementation:_,createNodeIterator:w,createDocumentFragment:O,getElementsByTagName:N}=r,{importNode:$}=i;let S=sh();t.isSupported=typeof Ju=="function"&&typeof C=="function"&&_&&_.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:I,ERB_EXPR:E,TMPLIT_EXPR:A,DATA_ATTR:F,ARIA_ATTR:L,IS_SCRIPT_OR_DATA:D,ATTR_WHITESPACE:B,CUSTOM_ELEMENT:W}=ah;let{IS_ALLOWED_URI:U}=ah,X=null;const J=ft({},[...eh,...Zs,...Ks,...Qs,...rh]);let it=null;const ut=ft({},[...ih,...Js,...nh,...Yn]);let Q=Object.seal(tf(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),kt=null,Tt=null,It=!0,q=!0,G=!1,ct=!0,P=!1,Mt=!0,dt=!1,Pt=!1,Nt=!1,ae=!1,pr=!1,Pn=!1,$c=!0,Dc=!1;const Dy="user-content-";let Hs=!0,Di=!1,Ur={},Yr=null;const Oc=ft({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Rc=null;const Ic=ft({},["audio","video","img","source","image","track"]);let Us=null;const Pc=ft({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Nn="http://www.w3.org/1998/Math/MathML",zn="http://www.w3.org/2000/svg",ze="http://www.w3.org/1999/xhtml";let jr=ze,Ys=!1,js=null;const Oy=ft({},[Nn,zn,ze],Xs);let Wn=ft({},["mi","mo","mn","ms","mtext"]),qn=ft({},["annotation-xml"]);const Ry=ft({},["title","style","font","a","script"]);let Oi=null;const Iy=["application/xhtml+xml","text/html"],Py="text/html";let Ot=null,Gr=null;const Ny=r.createElement("form"),Nc=function(T){return T instanceof RegExp||T instanceof Function},Gs=function(){let T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Gr&&Gr===T)){if((!T||typeof T!="object")&&(T={}),T=yr(T),Oi=Iy.indexOf(T.PARSER_MEDIA_TYPE)===-1?Py:T.PARSER_MEDIA_TYPE,Ot=Oi==="application/xhtml+xml"?Xs:sa,X=Ce(T,"ALLOWED_TAGS")?ft({},T.ALLOWED_TAGS,Ot):J,it=Ce(T,"ALLOWED_ATTR")?ft({},T.ALLOWED_ATTR,Ot):ut,js=Ce(T,"ALLOWED_NAMESPACES")?ft({},T.ALLOWED_NAMESPACES,Xs):Oy,Us=Ce(T,"ADD_URI_SAFE_ATTR")?ft(yr(Pc),T.ADD_URI_SAFE_ATTR,Ot):Pc,Rc=Ce(T,"ADD_DATA_URI_TAGS")?ft(yr(Ic),T.ADD_DATA_URI_TAGS,Ot):Ic,Yr=Ce(T,"FORBID_CONTENTS")?ft({},T.FORBID_CONTENTS,Ot):Oc,kt=Ce(T,"FORBID_TAGS")?ft({},T.FORBID_TAGS,Ot):{},Tt=Ce(T,"FORBID_ATTR")?ft({},T.FORBID_ATTR,Ot):{},Ur=Ce(T,"USE_PROFILES")?T.USE_PROFILES:!1,It=T.ALLOW_ARIA_ATTR!==!1,q=T.ALLOW_DATA_ATTR!==!1,G=T.ALLOW_UNKNOWN_PROTOCOLS||!1,ct=T.ALLOW_SELF_CLOSE_IN_ATTR!==!1,P=T.SAFE_FOR_TEMPLATES||!1,Mt=T.SAFE_FOR_XML!==!1,dt=T.WHOLE_DOCUMENT||!1,ae=T.RETURN_DOM||!1,pr=T.RETURN_DOM_FRAGMENT||!1,Pn=T.RETURN_TRUSTED_TYPE||!1,Nt=T.FORCE_BODY||!1,$c=T.SANITIZE_DOM!==!1,Dc=T.SANITIZE_NAMED_PROPS||!1,Hs=T.KEEP_CONTENT!==!1,Di=T.IN_PLACE||!1,U=T.ALLOWED_URI_REGEXP||ef,jr=T.NAMESPACE||ze,Wn=T.MATHML_TEXT_INTEGRATION_POINTS||Wn,qn=T.HTML_INTEGRATION_POINTS||qn,Q=T.CUSTOM_ELEMENT_HANDLING||{},T.CUSTOM_ELEMENT_HANDLING&&Nc(T.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Q.tagNameCheck=T.CUSTOM_ELEMENT_HANDLING.tagNameCheck),T.CUSTOM_ELEMENT_HANDLING&&Nc(T.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Q.attributeNameCheck=T.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),T.CUSTOM_ELEMENT_HANDLING&&typeof T.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Q.allowCustomizedBuiltInElements=T.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),P&&(q=!1),pr&&(ae=!0),Ur&&(X=ft({},rh),it=[],Ur.html===!0&&(ft(X,eh),ft(it,ih)),Ur.svg===!0&&(ft(X,Zs),ft(it,Js),ft(it,Yn)),Ur.svgFilters===!0&&(ft(X,Ks),ft(it,Js),ft(it,Yn)),Ur.mathMl===!0&&(ft(X,Qs),ft(it,nh),ft(it,Yn))),T.ADD_TAGS&&(X===J&&(X=yr(X)),ft(X,T.ADD_TAGS,Ot)),T.ADD_ATTR&&(it===ut&&(it=yr(it)),ft(it,T.ADD_ATTR,Ot)),T.ADD_URI_SAFE_ATTR&&ft(Us,T.ADD_URI_SAFE_ATTR,Ot),T.FORBID_CONTENTS&&(Yr===Oc&&(Yr=yr(Yr)),ft(Yr,T.FORBID_CONTENTS,Ot)),Hs&&(X["#text"]=!0),dt&&ft(X,["html","head","body"]),X.table&&(ft(X,["tbody"]),delete kt.tbody),T.TRUSTED_TYPES_POLICY){if(typeof T.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ni('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof T.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ni('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');v=T.TRUSTED_TYPES_POLICY,k=v.createHTML("")}else v===void 0&&(v=wx(d,n)),v!==null&&typeof k=="string"&&(k=v.createHTML(""));ie&&ie(T),Gr=T}},zc=ft({},[...Zs,...Ks,...ux]),Wc=ft({},[...Qs,...fx]),zy=function(T){let z=C(T);(!z||!z.tagName)&&(z={namespaceURI:jr,tagName:"template"});const Z=sa(T.tagName),vt=sa(z.tagName);return js[T.namespaceURI]?T.namespaceURI===zn?z.namespaceURI===ze?Z==="svg":z.namespaceURI===Nn?Z==="svg"&&(vt==="annotation-xml"||Wn[vt]):!!zc[Z]:T.namespaceURI===Nn?z.namespaceURI===ze?Z==="math":z.namespaceURI===zn?Z==="math"&&qn[vt]:!!Wc[Z]:T.namespaceURI===ze?z.namespaceURI===zn&&!qn[vt]||z.namespaceURI===Nn&&!Wn[vt]?!1:!Wc[Z]&&(Ry[Z]||!zc[Z]):!!(Oi==="application/xhtml+xml"&&js[T.namespaceURI]):!1},Ae=function(T){Ii(t.removed,{element:T});try{C(T).removeChild(T)}catch{y(T)}},Hn=function(T,z){try{Ii(t.removed,{attribute:z.getAttributeNode(T),from:z})}catch{Ii(t.removed,{attribute:null,from:z})}if(z.removeAttribute(T),T==="is")if(ae||pr)try{Ae(z)}catch{}else try{z.setAttribute(T,"")}catch{}},qc=function(T){let z=null,Z=null;if(Nt)T=""+T;else{const zt=th(T,/^[\r\n\t ]+/);Z=zt&&zt[0]}Oi==="application/xhtml+xml"&&jr===ze&&(T=''+T+"");const vt=v?v.createHTML(T):T;if(jr===ze)try{z=new f().parseFromString(vt,Oi)}catch{}if(!z||!z.documentElement){z=_.createDocument(jr,"template",null);try{z.documentElement.innerHTML=Ys?k:vt}catch{}}const Ut=z.body||z.documentElement;return T&&Z&&Ut.insertBefore(r.createTextNode(Z),Ut.childNodes[0]||null),jr===ze?N.call(z,dt?"html":"body")[0]:dt?z.documentElement:Ut},Hc=function(T){return w.call(T.ownerDocument||T,T,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Vs=function(T){return T instanceof u&&(typeof T.nodeName!="string"||typeof T.textContent!="string"||typeof T.removeChild!="function"||!(T.attributes instanceof h)||typeof T.removeAttribute!="function"||typeof T.setAttribute!="function"||typeof T.namespaceURI!="string"||typeof T.insertBefore!="function"||typeof T.hasChildNodes!="function")},Uc=function(T){return typeof s=="function"&&T instanceof s};function We(nt,T,z){Un(nt,Z=>{Z.call(t,T,z,Gr)})}const Yc=function(T){let z=null;if(We(S.beforeSanitizeElements,T,null),Vs(T))return Ae(T),!0;const Z=Ot(T.nodeName);if(We(S.uponSanitizeElement,T,{tagName:Z,allowedTags:X}),T.hasChildNodes()&&!Uc(T.firstElementChild)&&Qt(/<[/\w!]/g,T.innerHTML)&&Qt(/<[/\w!]/g,T.textContent)||T.nodeType===Wi.progressingInstruction||Mt&&T.nodeType===Wi.comment&&Qt(/<[/\w]/g,T.data))return Ae(T),!0;if(!X[Z]||kt[Z]){if(!kt[Z]&&Gc(Z)&&(Q.tagNameCheck instanceof RegExp&&Qt(Q.tagNameCheck,Z)||Q.tagNameCheck instanceof Function&&Q.tagNameCheck(Z)))return!1;if(Hs&&!Yr[Z]){const vt=C(T)||T.parentNode,Ut=b(T)||T.childNodes;if(Ut&&vt){const zt=Ut.length;for(let se=zt-1;se>=0;--se){const Le=m(Ut[se],!0);Le.__removalCount=(T.__removalCount||0)+1,vt.insertBefore(Le,x(T))}}}return Ae(T),!0}return T instanceof c&&!zy(T)||(Z==="noscript"||Z==="noembed"||Z==="noframes")&&Qt(/<\/no(script|embed|frames)/i,T.innerHTML)?(Ae(T),!0):(P&&T.nodeType===Wi.text&&(z=T.textContent,Un([I,E,A],vt=>{z=Pi(z,vt," ")}),T.textContent!==z&&(Ii(t.removed,{element:T.cloneNode()}),T.textContent=z)),We(S.afterSanitizeElements,T,null),!1)},jc=function(T,z,Z){if($c&&(z==="id"||z==="name")&&(Z in r||Z in Ny))return!1;if(!(q&&!Tt[z]&&Qt(F,z))){if(!(It&&Qt(L,z))){if(!it[z]||Tt[z]){if(!(Gc(T)&&(Q.tagNameCheck instanceof RegExp&&Qt(Q.tagNameCheck,T)||Q.tagNameCheck instanceof Function&&Q.tagNameCheck(T))&&(Q.attributeNameCheck instanceof RegExp&&Qt(Q.attributeNameCheck,z)||Q.attributeNameCheck instanceof Function&&Q.attributeNameCheck(z))||z==="is"&&Q.allowCustomizedBuiltInElements&&(Q.tagNameCheck instanceof RegExp&&Qt(Q.tagNameCheck,Z)||Q.tagNameCheck instanceof Function&&Q.tagNameCheck(Z))))return!1}else if(!Us[z]){if(!Qt(U,Pi(Z,B,""))){if(!((z==="src"||z==="xlink:href"||z==="href")&&T!=="script"&&ox(Z,"data:")===0&&Rc[T])){if(!(G&&!Qt(D,Pi(Z,B,"")))){if(Z)return!1}}}}}}return!0},Gc=function(T){return T!=="annotation-xml"&&th(T,W)},Vc=function(T){We(S.beforeSanitizeAttributes,T,null);const{attributes:z}=T;if(!z||Vs(T))return;const Z={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:it,forceKeepAttr:void 0};let vt=z.length;for(;vt--;){const Ut=z[vt],{name:zt,namespaceURI:se,value:Le}=Ut,Ri=Ot(zt);let Kt=zt==="value"?Le:lx(Le);if(Z.attrName=Ri,Z.attrValue=Kt,Z.keepAttr=!0,Z.forceKeepAttr=void 0,We(S.uponSanitizeAttribute,T,Z),Kt=Z.attrValue,Dc&&(Ri==="id"||Ri==="name")&&(Hn(zt,T),Kt=Dy+Kt),Mt&&Qt(/((--!?|])>)|<\/(style|title)/i,Kt)){Hn(zt,T);continue}if(Z.forceKeepAttr||(Hn(zt,T),!Z.keepAttr))continue;if(!ct&&Qt(/\/>/i,Kt)){Hn(zt,T);continue}P&&Un([I,E,A],Zc=>{Kt=Pi(Kt,Zc," ")});const Xc=Ot(T.nodeName);if(jc(Xc,Ri,Kt)){if(v&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!se)switch(d.getAttributeType(Xc,Ri)){case"TrustedHTML":{Kt=v.createHTML(Kt);break}case"TrustedScriptURL":{Kt=v.createScriptURL(Kt);break}}try{se?T.setAttributeNS(se,zt,Kt):T.setAttribute(zt,Kt),Vs(T)?Ae(T):Jc(t.removed)}catch{}}}We(S.afterSanitizeAttributes,T,null)},Wy=function nt(T){let z=null;const Z=Hc(T);for(We(S.beforeSanitizeShadowDOM,T,null);z=Z.nextNode();)We(S.uponSanitizeShadowNode,z,null),Yc(z),Vc(z),z.content instanceof a&&nt(z.content);We(S.afterSanitizeShadowDOM,T,null)};return t.sanitize=function(nt){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},z=null,Z=null,vt=null,Ut=null;if(Ys=!nt,Ys&&(nt=""),typeof nt!="string"&&!Uc(nt))if(typeof nt.toString=="function"){if(nt=nt.toString(),typeof nt!="string")throw Ni("dirty is not a string, aborting")}else throw Ni("toString is not a function");if(!t.isSupported)return nt;if(Pt||Gs(T),t.removed=[],typeof nt=="string"&&(Di=!1),Di){if(nt.nodeName){const Le=Ot(nt.nodeName);if(!X[Le]||kt[Le])throw Ni("root node is forbidden and cannot be sanitized in-place")}}else if(nt instanceof s)z=qc(""),Z=z.ownerDocument.importNode(nt,!0),Z.nodeType===Wi.element&&Z.nodeName==="BODY"||Z.nodeName==="HTML"?z=Z:z.appendChild(Z);else{if(!ae&&!P&&!dt&&nt.indexOf("<")===-1)return v&&Pn?v.createHTML(nt):nt;if(z=qc(nt),!z)return ae?null:Pn?k:""}z&&Nt&&Ae(z.firstChild);const zt=Hc(Di?nt:z);for(;vt=zt.nextNode();)Yc(vt),Vc(vt),vt.content instanceof a&&Wy(vt.content);if(Di)return nt;if(ae){if(pr)for(Ut=O.call(z.ownerDocument);z.firstChild;)Ut.appendChild(z.firstChild);else Ut=z;return(it.shadowroot||it.shadowrootmode)&&(Ut=$.call(i,Ut,!0)),Ut}let se=dt?z.outerHTML:z.innerHTML;return dt&&X["!doctype"]&&z.ownerDocument&&z.ownerDocument.doctype&&z.ownerDocument.doctype.name&&Qt(rf,z.ownerDocument.doctype.name)&&(se=" +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markdown-vendor-BBaHfVvE.js","assets/ui-vendor-CeCm8EER.js","assets/react-vendor-DEwriMA6.js","assets/dagre-OKDRZEBW-K3MoIKXh.js","assets/graph-DexVwBa8.js","assets/_baseUniq-OtJ11HbN.js","assets/layout-WkuL70g8.js","assets/_basePickBy-Lz6agtdo.js","assets/clone-vL6XIcCC.js","assets/feature-graph-DbHHHM9y.js","assets/graph-vendor-B-X5JegA.js","assets/utils-vendor-BysuhMZA.js","assets/feature-graph-BipNuM18.css","assets/c4Diagram-VJAJSXHY-B78G2kZD.js","assets/chunk-D6G4REZN-CQqXYBrW.js","assets/flowDiagram-4HSFHLVR-CtTg4KvT.js","assets/chunk-RZ5BOZE2-C762jHXr.js","assets/erDiagram-Q7BY3M3F-DQX4VtAS.js","assets/gitGraphDiagram-7IBYFJ6S-fIZu_S0j.js","assets/chunk-4BMEZGHF-Ct0jZH9M.js","assets/chunk-XZIHB7SX-CqkuoyXD.js","assets/radar-MK3ICKWK-zkXzSXFe.js","assets/ganttDiagram-APWFNJXF-DPZeRkyR.js","assets/infoDiagram-PH2N3AL5-Bexk_QKW.js","assets/pieDiagram-IB7DONF6-DrMdtRDI.js","assets/quadrantDiagram-7GDLP6J5-C56WKFyP.js","assets/xychartDiagram-VJFVF3MP-B3pR2K46.js","assets/requirementDiagram-KVF5MWMF-CtVTOxeE.js","assets/sequenceDiagram-X6HHIX6F-D6_yAdcj.js","assets/classDiagram-GIVACNV2-Bx6IdAZy.js","assets/chunk-A2AXSNBT-CvfQgLmG.js","assets/classDiagram-v2-COTLJTTW-Bx6IdAZy.js","assets/stateDiagram-DGXRK772-BGTY-Rrs.js","assets/chunk-AEK57VVT-ZyE42AjE.js","assets/stateDiagram-v2-YXO3MK2T-C15fufgb.js","assets/journeyDiagram-U35MCT3I-Drj8e4jk.js","assets/timeline-definition-BDJGKUSR-DdDk7fsZ.js","assets/mindmap-definition-ALO5MXBD-BQ2T_hsy.js","assets/cytoscape.esm-CfBqOv7Q.js","assets/kanban-definition-NDS4AKOZ-ZF435Bcq.js","assets/sankeyDiagram-QLVOVGJD-CSLnqTKw.js","assets/diagram-VNBRO52H-DXx0iDIJ.js","assets/diagram-SSKATNLV-C3O8bk3b.js","assets/blockDiagram-JOT3LUYC-l6jPCNSl.js","assets/architectureDiagram-IEHRJDOE-DuLLpJMS.js"])))=>i.map(i=>d[i]); +var qy=Object.defineProperty;var Hy=(e,t,r)=>t in e?qy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Ct=(e,t,r)=>Hy(e,typeof t!="symbol"?t+"":t,r);import{a4 as _t}from"./feature-graph-DbHHHM9y.js";import{g as Uy}from"./react-vendor-DEwriMA6.js";var na={exports:{}},Yy=na.exports,Kc;function jy(){return Kc||(Kc=1,function(e,t){(function(r,i){e.exports=i()})(Yy,function(){var r=1e3,i=6e4,n=36e5,a="millisecond",o="second",s="minute",c="hour",l="day",h="week",u="month",f="quarter",d="year",p="date",m="Invalid Date",y=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,x=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(A){var F=["th","st","nd","rd"],L=A%100;return"["+A+(F[(L-20)%10]||F[L]||F[0])+"]"}},C=function(A,F,L){var D=String(A);return!D||D.length>=F?A:""+Array(F+1-D.length).join(L)+A},v={s:C,z:function(A){var F=-A.utcOffset(),L=Math.abs(F),D=Math.floor(L/60),B=L%60;return(F<=0?"+":"-")+C(D,2,"0")+":"+C(B,2,"0")},m:function A(F,L){if(F.date()1)return A(U[0])}else{var X=F.name;_[X]=F,B=X}return!D&&B&&(k=B),B||!D&&k},$=function(A,F){if(O(A))return A.clone();var L=typeof F=="object"?F:{};return L.date=A,L.args=arguments,new I(L)},S=v;S.l=N,S.i=O,S.w=function(A,F){return $(A,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var I=function(){function A(L){this.$L=N(L.locale,null,!0),this.parse(L),this.$x=this.$x||L.x||{},this[w]=!0}var F=A.prototype;return F.parse=function(L){this.$d=function(D){var B=D.date,W=D.utc;if(B===null)return new Date(NaN);if(S.u(B))return new Date;if(B instanceof Date)return new Date(B);if(typeof B=="string"&&!/Z$/i.test(B)){var U=B.match(y);if(U){var X=U[2]-1||0,J=(U[7]||"0").substring(0,3);return W?new Date(Date.UTC(U[1],X,U[3]||1,U[4]||0,U[5]||0,U[6]||0,J)):new Date(U[1],X,U[3]||1,U[4]||0,U[5]||0,U[6]||0,J)}}return new Date(B)}(L),this.init()},F.init=function(){var L=this.$d;this.$y=L.getFullYear(),this.$M=L.getMonth(),this.$D=L.getDate(),this.$W=L.getDay(),this.$H=L.getHours(),this.$m=L.getMinutes(),this.$s=L.getSeconds(),this.$ms=L.getMilliseconds()},F.$utils=function(){return S},F.isValid=function(){return this.$d.toString()!==m},F.isSame=function(L,D){var B=$(L);return this.startOf(D)<=B&&B<=this.endOf(D)},F.isAfter=function(L,D){return $(L)e>=255?255:e<0?0:e,g:e=>e>=255?255:e<0?0:e,b:e=>e>=255?255:e<0?0:e,h:e=>e%360,s:e=>e>=100?100:e<0?0:e,l:e=>e>=100?100:e<0?0:e,a:e=>e>=1?1:e<0?0:e},toLinear:e=>{const t=e/255;return e>.03928?Math.pow((t+.055)/1.055,2.4):t/12.92},hue2rgb:(e,t,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e),hsl2rgb:({h:e,s:t,l:r},i)=>{if(!t)return r*2.55;e/=360,t/=100,r/=100;const n=r<.5?r*(1+t):r+t-r*t,a=2*r-n;switch(i){case"r":return aa.hue2rgb(a,n,e+1/3)*255;case"g":return aa.hue2rgb(a,n,e)*255;case"b":return aa.hue2rgb(a,n,e-1/3)*255}},rgb2hsl:({r:e,g:t,b:r},i)=>{e/=255,t/=255,r/=255;const n=Math.max(e,t,r),a=Math.min(e,t,r),o=(n+a)/2;if(i==="l")return o*100;if(n===a)return 0;const s=n-a,c=o>.5?s/(2-n-a):s/(n+a);if(i==="s")return c*100;switch(n){case e:return((t-r)/s+(tt>r?Math.min(t,Math.max(r,e)):Math.min(r,Math.max(t,e)),round:e=>Math.round(e*1e10)/1e10},Zy={dec2hex:e=>{const t=Math.round(e).toString(16);return t.length>1?t:`0${t}`}},lt={channel:aa,lang:Xy,unit:Zy},ar={};for(let e=0;e<=255;e++)ar[e]=lt.unit.dec2hex(e);const jt={ALL:0,RGB:1,HSL:2};class Ky{constructor(){this.type=jt.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=jt.ALL}is(t){return this.type===t}}class Qy{constructor(t,r){this.color=r,this.changed=!1,this.data=t,this.type=new Ky}set(t,r){return this.color=r,this.changed=!1,this.data=t,this.type.type=jt.ALL,this}_ensureHSL(){const t=this.data,{h:r,s:i,l:n}=t;r===void 0&&(t.h=lt.channel.rgb2hsl(t,"h")),i===void 0&&(t.s=lt.channel.rgb2hsl(t,"s")),n===void 0&&(t.l=lt.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r,g:i,b:n}=t;r===void 0&&(t.r=lt.channel.hsl2rgb(t,"r")),i===void 0&&(t.g=lt.channel.hsl2rgb(t,"g")),n===void 0&&(t.b=lt.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,r=t.r;return!this.type.is(jt.HSL)&&r!==void 0?r:(this._ensureHSL(),lt.channel.hsl2rgb(t,"r"))}get g(){const t=this.data,r=t.g;return!this.type.is(jt.HSL)&&r!==void 0?r:(this._ensureHSL(),lt.channel.hsl2rgb(t,"g"))}get b(){const t=this.data,r=t.b;return!this.type.is(jt.HSL)&&r!==void 0?r:(this._ensureHSL(),lt.channel.hsl2rgb(t,"b"))}get h(){const t=this.data,r=t.h;return!this.type.is(jt.RGB)&&r!==void 0?r:(this._ensureRGB(),lt.channel.rgb2hsl(t,"h"))}get s(){const t=this.data,r=t.s;return!this.type.is(jt.RGB)&&r!==void 0?r:(this._ensureRGB(),lt.channel.rgb2hsl(t,"s"))}get l(){const t=this.data,r=t.l;return!this.type.is(jt.RGB)&&r!==void 0?r:(this._ensureRGB(),lt.channel.rgb2hsl(t,"l"))}get a(){return this.data.a}set r(t){this.type.set(jt.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(jt.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(jt.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(jt.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(jt.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(jt.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}const fs=new Qy({r:0,g:0,b:0,a:0},"transparent"),ri={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:e=>{if(e.charCodeAt(0)!==35)return;const t=e.match(ri.re);if(!t)return;const r=t[1],i=parseInt(r,16),n=r.length,a=n%4===0,o=n>4,s=o?1:17,c=o?8:4,l=a?0:-1,h=o?255:15;return fs.set({r:(i>>c*(l+3)&h)*s,g:(i>>c*(l+2)&h)*s,b:(i>>c*(l+1)&h)*s,a:a?(i&h)*s/255:1},e)},stringify:e=>{const{r:t,g:r,b:i,a:n}=e;return n<1?`#${ar[Math.round(t)]}${ar[Math.round(r)]}${ar[Math.round(i)]}${ar[Math.round(n*255)]}`:`#${ar[Math.round(t)]}${ar[Math.round(r)]}${ar[Math.round(i)]}`}},Cr={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:e=>{const t=e.match(Cr.hueRe);if(t){const[,r,i]=t;switch(i){case"grad":return lt.channel.clamp.h(parseFloat(r)*.9);case"rad":return lt.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return lt.channel.clamp.h(parseFloat(r)*360)}}return lt.channel.clamp.h(parseFloat(e))},parse:e=>{const t=e.charCodeAt(0);if(t!==104&&t!==72)return;const r=e.match(Cr.re);if(!r)return;const[,i,n,a,o,s]=r;return fs.set({h:Cr._hue2deg(i),s:lt.channel.clamp.s(parseFloat(n)),l:lt.channel.clamp.l(parseFloat(a)),a:o?lt.channel.clamp.a(s?parseFloat(o)/100:parseFloat(o)):1},e)},stringify:e=>{const{h:t,s:r,l:i,a:n}=e;return n<1?`hsla(${lt.lang.round(t)}, ${lt.lang.round(r)}%, ${lt.lang.round(i)}%, ${n})`:`hsl(${lt.lang.round(t)}, ${lt.lang.round(r)}%, ${lt.lang.round(i)}%)`}},on={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:e=>{e=e.toLowerCase();const t=on.colors[e];if(t)return ri.parse(t)},stringify:e=>{const t=ri.stringify(e);for(const r in on.colors)if(on.colors[r]===t)return r}},Ji={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:e=>{const t=e.charCodeAt(0);if(t!==114&&t!==82)return;const r=e.match(Ji.re);if(!r)return;const[,i,n,a,o,s,c,l,h]=r;return fs.set({r:lt.channel.clamp.r(n?parseFloat(i)*2.55:parseFloat(i)),g:lt.channel.clamp.g(o?parseFloat(a)*2.55:parseFloat(a)),b:lt.channel.clamp.b(c?parseFloat(s)*2.55:parseFloat(s)),a:l?lt.channel.clamp.a(h?parseFloat(l)/100:parseFloat(l)):1},e)},stringify:e=>{const{r:t,g:r,b:i,a:n}=e;return n<1?`rgba(${lt.lang.round(t)}, ${lt.lang.round(r)}, ${lt.lang.round(i)}, ${lt.lang.round(n)})`:`rgb(${lt.lang.round(t)}, ${lt.lang.round(r)}, ${lt.lang.round(i)})`}},Te={format:{keyword:on,hex:ri,rgb:Ji,rgba:Ji,hsl:Cr,hsla:Cr},parse:e=>{if(typeof e!="string")return e;const t=ri.parse(e)||Ji.parse(e)||Cr.parse(e)||on.parse(e);if(t)return t;throw new Error(`Unsupported color format: "${e}"`)},stringify:e=>!e.changed&&e.color?e.color:e.type.is(jt.HSL)||e.data.r===void 0?Cr.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?Ji.stringify(e):ri.stringify(e)},Ku=(e,t)=>{const r=Te.parse(e);for(const i in t)r[i]=lt.channel.clamp[i](t[i]);return Te.stringify(r)},ln=(e,t,r=0,i=1)=>{if(typeof e!="number")return Ku(e,{a:t});const n=fs.set({r:lt.channel.clamp.r(e),g:lt.channel.clamp.g(t),b:lt.channel.clamp.b(r),a:lt.channel.clamp.a(i)});return Te.stringify(n)},a3=(e,t)=>lt.lang.round(Te.parse(e)[t]),Jy=e=>{const{r:t,g:r,b:i}=Te.parse(e),n=.2126*lt.channel.toLinear(t)+.7152*lt.channel.toLinear(r)+.0722*lt.channel.toLinear(i);return lt.lang.round(n)},tx=e=>Jy(e)>=.5,Mn=e=>!tx(e),Qu=(e,t,r)=>{const i=Te.parse(e),n=i[t],a=lt.channel.clamp[t](n+r);return n!==a&&(i[t]=a),Te.stringify(i)},Y=(e,t)=>Qu(e,"l",t),at=(e,t)=>Qu(e,"l",-t),M=(e,t)=>{const r=Te.parse(e),i={};for(const n in t)t[n]&&(i[n]=r[n]+t[n]);return Ku(e,i)},ex=(e,t,r=50)=>{const{r:i,g:n,b:a,a:o}=Te.parse(e),{r:s,g:c,b:l,a:h}=Te.parse(t),u=r/100,f=u*2-1,d=o-h,m=((f*d===-1?f:(f+d)/(1+f*d))+1)/2,y=1-m,x=i*m+s*y,b=n*m+c*y,C=a*m+l*y,v=o*u+h*(1-u);return ln(x,b,C,v)},H=(e,t=100)=>{const r=Te.parse(e);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,ex(r,e,t)};/*! @license DOMPurify 3.2.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.5/LICENSE */const{entries:Ju,setPrototypeOf:Qc,isFrozen:rx,getPrototypeOf:ix,getOwnPropertyDescriptor:nx}=Object;let{freeze:ie,seal:be,create:tf}=Object,{apply:Mo,construct:Ao}=typeof Reflect<"u"&&Reflect;ie||(ie=function(t){return t});be||(be=function(t){return t});Mo||(Mo=function(t,r,i){return t.apply(r,i)});Ao||(Ao=function(t,r){return new t(...r)});const Un=ne(Array.prototype.forEach),ax=ne(Array.prototype.lastIndexOf),Jc=ne(Array.prototype.pop),Ii=ne(Array.prototype.push),sx=ne(Array.prototype.splice),sa=ne(String.prototype.toLowerCase),Xs=ne(String.prototype.toString),th=ne(String.prototype.match),Pi=ne(String.prototype.replace),ox=ne(String.prototype.indexOf),lx=ne(String.prototype.trim),Ce=ne(Object.prototype.hasOwnProperty),Qt=ne(RegExp.prototype.test),Ni=cx(TypeError);function ne(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var r=arguments.length,i=new Array(r>1?r-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:sa;Qc&&Qc(e,null);let i=t.length;for(;i--;){let n=t[i];if(typeof n=="string"){const a=r(n);a!==n&&(rx(t)||(t[i]=a),n=a)}e[n]=!0}return e}function hx(e){for(let t=0;t/gm),gx=be(/\$\{[\w\W]*/gm),mx=be(/^data-[\-\w.\u00B7-\uFFFF]+$/),yx=be(/^aria-[\-\w]+$/),ef=be(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),xx=be(/^(?:\w+script|data):/i),bx=be(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),rf=be(/^html$/i),_x=be(/^[a-z][.\w]*(-[.\w]+)+$/i);var ah=Object.freeze({__proto__:null,ARIA_ATTR:yx,ATTR_WHITESPACE:bx,CUSTOM_ELEMENT:_x,DATA_ATTR:mx,DOCTYPE_NAME:rf,ERB_EXPR:px,IS_ALLOWED_URI:ef,IS_SCRIPT_OR_DATA:xx,MUSTACHE_EXPR:dx,TMPLIT_EXPR:gx});const Wi={element:1,text:3,progressingInstruction:7,comment:8,document:9},Cx=function(){return typeof window>"u"?null:window},wx=function(t,r){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null;const n="data-tt-policy-suffix";r&&r.hasAttribute(n)&&(i=r.getAttribute(n));const a="dompurify"+(i?"#"+i:"");try{return t.createPolicy(a,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},sh=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function nf(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Cx();const t=nt=>nf(nt);if(t.version="3.2.5",t.removed=[],!e||!e.document||e.document.nodeType!==Wi.document||!e.Element)return t.isSupported=!1,t;let{document:r}=e;const i=r,n=i.currentScript,{DocumentFragment:a,HTMLTemplateElement:o,Node:s,Element:c,NodeFilter:l,NamedNodeMap:h=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:u,DOMParser:f,trustedTypes:d}=e,p=c.prototype,m=zi(p,"cloneNode"),y=zi(p,"remove"),x=zi(p,"nextSibling"),b=zi(p,"childNodes"),C=zi(p,"parentNode");if(typeof o=="function"){const nt=r.createElement("template");nt.content&&nt.content.ownerDocument&&(r=nt.content.ownerDocument)}let v,k="";const{implementation:_,createNodeIterator:w,createDocumentFragment:O,getElementsByTagName:N}=r,{importNode:$}=i;let S=sh();t.isSupported=typeof Ju=="function"&&typeof C=="function"&&_&&_.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:I,ERB_EXPR:E,TMPLIT_EXPR:A,DATA_ATTR:F,ARIA_ATTR:L,IS_SCRIPT_OR_DATA:D,ATTR_WHITESPACE:B,CUSTOM_ELEMENT:W}=ah;let{IS_ALLOWED_URI:U}=ah,X=null;const J=ft({},[...eh,...Zs,...Ks,...Qs,...rh]);let it=null;const ut=ft({},[...ih,...Js,...nh,...Yn]);let Q=Object.seal(tf(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),kt=null,Tt=null,It=!0,q=!0,G=!1,ct=!0,P=!1,Mt=!0,dt=!1,Pt=!1,Nt=!1,ae=!1,pr=!1,Pn=!1,$c=!0,Dc=!1;const Dy="user-content-";let Hs=!0,Di=!1,Ur={},Yr=null;const Oc=ft({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Rc=null;const Ic=ft({},["audio","video","img","source","image","track"]);let Us=null;const Pc=ft({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Nn="http://www.w3.org/1998/Math/MathML",zn="http://www.w3.org/2000/svg",ze="http://www.w3.org/1999/xhtml";let jr=ze,Ys=!1,js=null;const Oy=ft({},[Nn,zn,ze],Xs);let Wn=ft({},["mi","mo","mn","ms","mtext"]),qn=ft({},["annotation-xml"]);const Ry=ft({},["title","style","font","a","script"]);let Oi=null;const Iy=["application/xhtml+xml","text/html"],Py="text/html";let Ot=null,Gr=null;const Ny=r.createElement("form"),Nc=function(T){return T instanceof RegExp||T instanceof Function},Gs=function(){let T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Gr&&Gr===T)){if((!T||typeof T!="object")&&(T={}),T=yr(T),Oi=Iy.indexOf(T.PARSER_MEDIA_TYPE)===-1?Py:T.PARSER_MEDIA_TYPE,Ot=Oi==="application/xhtml+xml"?Xs:sa,X=Ce(T,"ALLOWED_TAGS")?ft({},T.ALLOWED_TAGS,Ot):J,it=Ce(T,"ALLOWED_ATTR")?ft({},T.ALLOWED_ATTR,Ot):ut,js=Ce(T,"ALLOWED_NAMESPACES")?ft({},T.ALLOWED_NAMESPACES,Xs):Oy,Us=Ce(T,"ADD_URI_SAFE_ATTR")?ft(yr(Pc),T.ADD_URI_SAFE_ATTR,Ot):Pc,Rc=Ce(T,"ADD_DATA_URI_TAGS")?ft(yr(Ic),T.ADD_DATA_URI_TAGS,Ot):Ic,Yr=Ce(T,"FORBID_CONTENTS")?ft({},T.FORBID_CONTENTS,Ot):Oc,kt=Ce(T,"FORBID_TAGS")?ft({},T.FORBID_TAGS,Ot):{},Tt=Ce(T,"FORBID_ATTR")?ft({},T.FORBID_ATTR,Ot):{},Ur=Ce(T,"USE_PROFILES")?T.USE_PROFILES:!1,It=T.ALLOW_ARIA_ATTR!==!1,q=T.ALLOW_DATA_ATTR!==!1,G=T.ALLOW_UNKNOWN_PROTOCOLS||!1,ct=T.ALLOW_SELF_CLOSE_IN_ATTR!==!1,P=T.SAFE_FOR_TEMPLATES||!1,Mt=T.SAFE_FOR_XML!==!1,dt=T.WHOLE_DOCUMENT||!1,ae=T.RETURN_DOM||!1,pr=T.RETURN_DOM_FRAGMENT||!1,Pn=T.RETURN_TRUSTED_TYPE||!1,Nt=T.FORCE_BODY||!1,$c=T.SANITIZE_DOM!==!1,Dc=T.SANITIZE_NAMED_PROPS||!1,Hs=T.KEEP_CONTENT!==!1,Di=T.IN_PLACE||!1,U=T.ALLOWED_URI_REGEXP||ef,jr=T.NAMESPACE||ze,Wn=T.MATHML_TEXT_INTEGRATION_POINTS||Wn,qn=T.HTML_INTEGRATION_POINTS||qn,Q=T.CUSTOM_ELEMENT_HANDLING||{},T.CUSTOM_ELEMENT_HANDLING&&Nc(T.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Q.tagNameCheck=T.CUSTOM_ELEMENT_HANDLING.tagNameCheck),T.CUSTOM_ELEMENT_HANDLING&&Nc(T.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Q.attributeNameCheck=T.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),T.CUSTOM_ELEMENT_HANDLING&&typeof T.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Q.allowCustomizedBuiltInElements=T.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),P&&(q=!1),pr&&(ae=!0),Ur&&(X=ft({},rh),it=[],Ur.html===!0&&(ft(X,eh),ft(it,ih)),Ur.svg===!0&&(ft(X,Zs),ft(it,Js),ft(it,Yn)),Ur.svgFilters===!0&&(ft(X,Ks),ft(it,Js),ft(it,Yn)),Ur.mathMl===!0&&(ft(X,Qs),ft(it,nh),ft(it,Yn))),T.ADD_TAGS&&(X===J&&(X=yr(X)),ft(X,T.ADD_TAGS,Ot)),T.ADD_ATTR&&(it===ut&&(it=yr(it)),ft(it,T.ADD_ATTR,Ot)),T.ADD_URI_SAFE_ATTR&&ft(Us,T.ADD_URI_SAFE_ATTR,Ot),T.FORBID_CONTENTS&&(Yr===Oc&&(Yr=yr(Yr)),ft(Yr,T.FORBID_CONTENTS,Ot)),Hs&&(X["#text"]=!0),dt&&ft(X,["html","head","body"]),X.table&&(ft(X,["tbody"]),delete kt.tbody),T.TRUSTED_TYPES_POLICY){if(typeof T.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ni('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof T.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ni('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');v=T.TRUSTED_TYPES_POLICY,k=v.createHTML("")}else v===void 0&&(v=wx(d,n)),v!==null&&typeof k=="string"&&(k=v.createHTML(""));ie&&ie(T),Gr=T}},zc=ft({},[...Zs,...Ks,...ux]),Wc=ft({},[...Qs,...fx]),zy=function(T){let z=C(T);(!z||!z.tagName)&&(z={namespaceURI:jr,tagName:"template"});const Z=sa(T.tagName),vt=sa(z.tagName);return js[T.namespaceURI]?T.namespaceURI===zn?z.namespaceURI===ze?Z==="svg":z.namespaceURI===Nn?Z==="svg"&&(vt==="annotation-xml"||Wn[vt]):!!zc[Z]:T.namespaceURI===Nn?z.namespaceURI===ze?Z==="math":z.namespaceURI===zn?Z==="math"&&qn[vt]:!!Wc[Z]:T.namespaceURI===ze?z.namespaceURI===zn&&!qn[vt]||z.namespaceURI===Nn&&!Wn[vt]?!1:!Wc[Z]&&(Ry[Z]||!zc[Z]):!!(Oi==="application/xhtml+xml"&&js[T.namespaceURI]):!1},Ae=function(T){Ii(t.removed,{element:T});try{C(T).removeChild(T)}catch{y(T)}},Hn=function(T,z){try{Ii(t.removed,{attribute:z.getAttributeNode(T),from:z})}catch{Ii(t.removed,{attribute:null,from:z})}if(z.removeAttribute(T),T==="is")if(ae||pr)try{Ae(z)}catch{}else try{z.setAttribute(T,"")}catch{}},qc=function(T){let z=null,Z=null;if(Nt)T=""+T;else{const zt=th(T,/^[\r\n\t ]+/);Z=zt&&zt[0]}Oi==="application/xhtml+xml"&&jr===ze&&(T=''+T+"");const vt=v?v.createHTML(T):T;if(jr===ze)try{z=new f().parseFromString(vt,Oi)}catch{}if(!z||!z.documentElement){z=_.createDocument(jr,"template",null);try{z.documentElement.innerHTML=Ys?k:vt}catch{}}const Ut=z.body||z.documentElement;return T&&Z&&Ut.insertBefore(r.createTextNode(Z),Ut.childNodes[0]||null),jr===ze?N.call(z,dt?"html":"body")[0]:dt?z.documentElement:Ut},Hc=function(T){return w.call(T.ownerDocument||T,T,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Vs=function(T){return T instanceof u&&(typeof T.nodeName!="string"||typeof T.textContent!="string"||typeof T.removeChild!="function"||!(T.attributes instanceof h)||typeof T.removeAttribute!="function"||typeof T.setAttribute!="function"||typeof T.namespaceURI!="string"||typeof T.insertBefore!="function"||typeof T.hasChildNodes!="function")},Uc=function(T){return typeof s=="function"&&T instanceof s};function We(nt,T,z){Un(nt,Z=>{Z.call(t,T,z,Gr)})}const Yc=function(T){let z=null;if(We(S.beforeSanitizeElements,T,null),Vs(T))return Ae(T),!0;const Z=Ot(T.nodeName);if(We(S.uponSanitizeElement,T,{tagName:Z,allowedTags:X}),T.hasChildNodes()&&!Uc(T.firstElementChild)&&Qt(/<[/\w!]/g,T.innerHTML)&&Qt(/<[/\w!]/g,T.textContent)||T.nodeType===Wi.progressingInstruction||Mt&&T.nodeType===Wi.comment&&Qt(/<[/\w]/g,T.data))return Ae(T),!0;if(!X[Z]||kt[Z]){if(!kt[Z]&&Gc(Z)&&(Q.tagNameCheck instanceof RegExp&&Qt(Q.tagNameCheck,Z)||Q.tagNameCheck instanceof Function&&Q.tagNameCheck(Z)))return!1;if(Hs&&!Yr[Z]){const vt=C(T)||T.parentNode,Ut=b(T)||T.childNodes;if(Ut&&vt){const zt=Ut.length;for(let se=zt-1;se>=0;--se){const Le=m(Ut[se],!0);Le.__removalCount=(T.__removalCount||0)+1,vt.insertBefore(Le,x(T))}}}return Ae(T),!0}return T instanceof c&&!zy(T)||(Z==="noscript"||Z==="noembed"||Z==="noframes")&&Qt(/<\/no(script|embed|frames)/i,T.innerHTML)?(Ae(T),!0):(P&&T.nodeType===Wi.text&&(z=T.textContent,Un([I,E,A],vt=>{z=Pi(z,vt," ")}),T.textContent!==z&&(Ii(t.removed,{element:T.cloneNode()}),T.textContent=z)),We(S.afterSanitizeElements,T,null),!1)},jc=function(T,z,Z){if($c&&(z==="id"||z==="name")&&(Z in r||Z in Ny))return!1;if(!(q&&!Tt[z]&&Qt(F,z))){if(!(It&&Qt(L,z))){if(!it[z]||Tt[z]){if(!(Gc(T)&&(Q.tagNameCheck instanceof RegExp&&Qt(Q.tagNameCheck,T)||Q.tagNameCheck instanceof Function&&Q.tagNameCheck(T))&&(Q.attributeNameCheck instanceof RegExp&&Qt(Q.attributeNameCheck,z)||Q.attributeNameCheck instanceof Function&&Q.attributeNameCheck(z))||z==="is"&&Q.allowCustomizedBuiltInElements&&(Q.tagNameCheck instanceof RegExp&&Qt(Q.tagNameCheck,Z)||Q.tagNameCheck instanceof Function&&Q.tagNameCheck(Z))))return!1}else if(!Us[z]){if(!Qt(U,Pi(Z,B,""))){if(!((z==="src"||z==="xlink:href"||z==="href")&&T!=="script"&&ox(Z,"data:")===0&&Rc[T])){if(!(G&&!Qt(D,Pi(Z,B,"")))){if(Z)return!1}}}}}}return!0},Gc=function(T){return T!=="annotation-xml"&&th(T,W)},Vc=function(T){We(S.beforeSanitizeAttributes,T,null);const{attributes:z}=T;if(!z||Vs(T))return;const Z={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:it,forceKeepAttr:void 0};let vt=z.length;for(;vt--;){const Ut=z[vt],{name:zt,namespaceURI:se,value:Le}=Ut,Ri=Ot(zt);let Kt=zt==="value"?Le:lx(Le);if(Z.attrName=Ri,Z.attrValue=Kt,Z.keepAttr=!0,Z.forceKeepAttr=void 0,We(S.uponSanitizeAttribute,T,Z),Kt=Z.attrValue,Dc&&(Ri==="id"||Ri==="name")&&(Hn(zt,T),Kt=Dy+Kt),Mt&&Qt(/((--!?|])>)|<\/(style|title)/i,Kt)){Hn(zt,T);continue}if(Z.forceKeepAttr||(Hn(zt,T),!Z.keepAttr))continue;if(!ct&&Qt(/\/>/i,Kt)){Hn(zt,T);continue}P&&Un([I,E,A],Zc=>{Kt=Pi(Kt,Zc," ")});const Xc=Ot(T.nodeName);if(jc(Xc,Ri,Kt)){if(v&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!se)switch(d.getAttributeType(Xc,Ri)){case"TrustedHTML":{Kt=v.createHTML(Kt);break}case"TrustedScriptURL":{Kt=v.createScriptURL(Kt);break}}try{se?T.setAttributeNS(se,zt,Kt):T.setAttribute(zt,Kt),Vs(T)?Ae(T):Jc(t.removed)}catch{}}}We(S.afterSanitizeAttributes,T,null)},Wy=function nt(T){let z=null;const Z=Hc(T);for(We(S.beforeSanitizeShadowDOM,T,null);z=Z.nextNode();)We(S.uponSanitizeShadowNode,z,null),Yc(z),Vc(z),z.content instanceof a&&nt(z.content);We(S.afterSanitizeShadowDOM,T,null)};return t.sanitize=function(nt){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},z=null,Z=null,vt=null,Ut=null;if(Ys=!nt,Ys&&(nt=""),typeof nt!="string"&&!Uc(nt))if(typeof nt.toString=="function"){if(nt=nt.toString(),typeof nt!="string")throw Ni("dirty is not a string, aborting")}else throw Ni("toString is not a function");if(!t.isSupported)return nt;if(Pt||Gs(T),t.removed=[],typeof nt=="string"&&(Di=!1),Di){if(nt.nodeName){const Le=Ot(nt.nodeName);if(!X[Le]||kt[Le])throw Ni("root node is forbidden and cannot be sanitized in-place")}}else if(nt instanceof s)z=qc(""),Z=z.ownerDocument.importNode(nt,!0),Z.nodeType===Wi.element&&Z.nodeName==="BODY"||Z.nodeName==="HTML"?z=Z:z.appendChild(Z);else{if(!ae&&!P&&!dt&&nt.indexOf("<")===-1)return v&&Pn?v.createHTML(nt):nt;if(z=qc(nt),!z)return ae?null:Pn?k:""}z&&Nt&&Ae(z.firstChild);const zt=Hc(Di?nt:z);for(;vt=zt.nextNode();)Yc(vt),Vc(vt),vt.content instanceof a&&Wy(vt.content);if(Di)return nt;if(ae){if(pr)for(Ut=O.call(z.ownerDocument);z.firstChild;)Ut.appendChild(z.firstChild);else Ut=z;return(it.shadowroot||it.shadowrootmode)&&(Ut=$.call(i,Ut,!0)),Ut}let se=dt?z.outerHTML:z.innerHTML;return dt&&X["!doctype"]&&z.ownerDocument&&z.ownerDocument.doctype&&z.ownerDocument.doctype.name&&Qt(rf,z.ownerDocument.doctype.name)&&(se=" `+se),P&&Un([I,E,A],Le=>{se=Pi(se,Le," ")}),v&&Pn?v.createHTML(se):se},t.setConfig=function(){let nt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Gs(nt),Pt=!0},t.clearConfig=function(){Gr=null,Pt=!1},t.isValidAttribute=function(nt,T,z){Gr||Gs({});const Z=Ot(nt),vt=Ot(T);return jc(Z,vt,z)},t.addHook=function(nt,T){typeof T=="function"&&Ii(S[nt],T)},t.removeHook=function(nt,T){if(T!==void 0){const z=ax(S[nt],T);return z===-1?void 0:sx(S[nt],z,1)[0]}return Jc(S[nt])},t.removeHooks=function(nt){S[nt]=[]},t.removeAllHooks=function(){S=sh()},t}var pi=nf(),af=Object.defineProperty,g=(e,t)=>af(e,"name",{value:t,configurable:!0}),kx=(e,t)=>{for(var r in t)af(e,r,{get:t[r],enumerable:!0})},qe={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},R={trace:g((...e)=>{},"trace"),debug:g((...e)=>{},"debug"),info:g((...e)=>{},"info"),warn:g((...e)=>{},"warn"),error:g((...e)=>{},"error"),fatal:g((...e)=>{},"fatal")},Tl=g(function(e="fatal"){let t=qe.fatal;typeof e=="string"?e.toLowerCase()in qe&&(t=qe[e]):typeof e=="number"&&(t=e),R.trace=()=>{},R.debug=()=>{},R.info=()=>{},R.warn=()=>{},R.error=()=>{},R.fatal=()=>{},t<=qe.fatal&&(R.fatal=console.error?console.error.bind(console,pe("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",pe("FATAL"))),t<=qe.error&&(R.error=console.error?console.error.bind(console,pe("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",pe("ERROR"))),t<=qe.warn&&(R.warn=console.warn?console.warn.bind(console,pe("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",pe("WARN"))),t<=qe.info&&(R.info=console.info?console.info.bind(console,pe("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",pe("INFO"))),t<=qe.debug&&(R.debug=console.debug?console.debug.bind(console,pe("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",pe("DEBUG"))),t<=qe.trace&&(R.trace=console.debug?console.debug.bind(console,pe("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",pe("TRACE")))},"setLogLevel"),pe=g(e=>`%c${Vy().format("ss.SSS")} : ${e} : `,"format"),sf=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,cn=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,vx=/\s*%%.*\n/gm,si,of=(si=class extends Error{constructor(t){super(t),this.name="UnknownDiagramError"}},g(si,"UnknownDiagramError"),si),gi={},Ml=g(function(e,t){e=e.replace(sf,"").replace(cn,"").replace(vx,` `);for(const[r,{detector:i}]of Object.entries(gi))if(i(e,t))return r;throw new of(`No diagram type detected matching given configuration for text: ${e}`)},"detectType"),lf=g((...e)=>{for(const{id:t,detector:r,loader:i}of e)cf(t,r,i)},"registerLazyLoadedDiagrams"),cf=g((e,t,r)=>{gi[e]&&R.warn(`Detector with key ${e} already exists. Overwriting.`),gi[e]={detector:t,loader:r},R.debug(`Detector with key ${e} added${r?" with loader":""}`)},"addDetector"),Sx=g(e=>gi[e].loader,"getDiagramLoader"),Lo=g((e,t,{depth:r=2,clobber:i=!1}={})=>{const n={depth:r,clobber:i};return Array.isArray(t)&&!Array.isArray(e)?(t.forEach(a=>Lo(e,a,n)),e):Array.isArray(t)&&Array.isArray(e)?(t.forEach(a=>{e.includes(a)||e.push(a)}),e):e===void 0||r<=0?e!=null&&typeof e=="object"&&typeof t=="object"?Object.assign(e,t):t:(t!==void 0&&typeof e=="object"&&typeof t=="object"&&Object.keys(t).forEach(a=>{typeof t[a]=="object"&&(e[a]===void 0||typeof e[a]=="object")?(e[a]===void 0&&(e[a]=Array.isArray(t[a])?[]:{}),e[a]=Lo(e[a],t[a],{depth:r-1,clobber:i})):(i||typeof e[a]!="object"&&typeof t[a]!="object")&&(e[a]=t[a])}),e)},"assignWithDepth"),Ht=Lo,ds="#ffffff",ps="#f2f2f2",Jt=g((e,t)=>t?M(e,{s:-40,l:10}):M(e,{s:-40,l:-10}),"mkBorder"),oi,Tx=(oi=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var r,i,n,a,o,s,c,l,h,u,f,d,p,m,y,x,b,C,v,k,_;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||M(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||M(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Jt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Jt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||H(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||H(this.tertiaryColor),this.lineColor=this.lineColor||H(this.background),this.arrowheadColor=this.arrowheadColor||H(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?at(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||at(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||H(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Y(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.darkMode?(this.rowOdd=this.rowOdd||at(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||at(this.mainBkg,10)):(this.rowOdd=this.rowOdd||Y(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||Y(this.mainBkg,5)),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||M(this.primaryColor,{h:30}),this.cScale4=this.cScale4||M(this.primaryColor,{h:60}),this.cScale5=this.cScale5||M(this.primaryColor,{h:90}),this.cScale6=this.cScale6||M(this.primaryColor,{h:120}),this.cScale7=this.cScale7||M(this.primaryColor,{h:150}),this.cScale8=this.cScale8||M(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||M(this.primaryColor,{h:270}),this.cScale10=this.cScale10||M(this.primaryColor,{h:300}),this.cScale11=this.cScale11||M(this.primaryColor,{h:330}),this.darkMode)for(let w=0;w{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},g(oi,"Theme"),oi),Mx=g(e=>{const t=new Tx;return t.calculate(e),t},"getThemeVariables"),li,Ax=(li=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Y(this.primaryColor,16),this.tertiaryColor=M(this.primaryColor,{h:-160}),this.primaryBorderColor=H(this.background),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=H(this.primaryColor),this.secondaryTextColor=H(this.secondaryColor),this.tertiaryTextColor=H(this.tertiaryColor),this.lineColor=H(this.background),this.textColor=H(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Y(H("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=ln(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=at("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=at(this.sectionBkgColor,10),this.taskBorderColor=ln(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=ln(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Y(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||at(this.mainBkg,10),this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var t,r,i,n,a,o,s,c,l,h,u,f,d,p,m,y,x,b,C,v,k;this.secondBkg=Y(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Y(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Y(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=M(this.primaryColor,{h:64}),this.fillType3=M(this.secondaryColor,{h:64}),this.fillType4=M(this.primaryColor,{h:-64}),this.fillType5=M(this.secondaryColor,{h:-64}),this.fillType6=M(this.primaryColor,{h:128}),this.fillType7=M(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||M(this.primaryColor,{h:30}),this.cScale4=this.cScale4||M(this.primaryColor,{h:60}),this.cScale5=this.cScale5||M(this.primaryColor,{h:90}),this.cScale6=this.cScale6||M(this.primaryColor,{h:120}),this.cScale7=this.cScale7||M(this.primaryColor,{h:150}),this.cScale8=this.cScale8||M(this.primaryColor,{h:210}),this.cScale9=this.cScale9||M(this.primaryColor,{h:270}),this.cScale10=this.cScale10||M(this.primaryColor,{h:300}),this.cScale11=this.cScale11||M(this.primaryColor,{h:330});for(let _=0;_{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},g(li,"Theme"),li),Lx=g(e=>{const t=new Ax;return t.calculate(e),t},"getThemeVariables"),ci,Bx=(ci=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=M(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=M(this.primaryColor,{h:-160}),this.primaryBorderColor=Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=H(this.primaryColor),this.secondaryTextColor=H(this.secondaryColor),this.tertiaryTextColor=H(this.tertiaryColor),this.lineColor=H(this.background),this.textColor=H(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=ln(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd="calculated",this.rowEven="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var t,r,i,n,a,o,s,c,l,h,u,f,d,p,m,y,x,b,C,v,k;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||M(this.primaryColor,{h:30}),this.cScale4=this.cScale4||M(this.primaryColor,{h:60}),this.cScale5=this.cScale5||M(this.primaryColor,{h:90}),this.cScale6=this.cScale6||M(this.primaryColor,{h:120}),this.cScale7=this.cScale7||M(this.primaryColor,{h:150}),this.cScale8=this.cScale8||M(this.primaryColor,{h:210}),this.cScale9=this.cScale9||M(this.primaryColor,{h:270}),this.cScale10=this.cScale10||M(this.primaryColor,{h:300}),this.cScale11=this.cScale11||M(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||at(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||at(this.tertiaryColor,40);for(let _=0;_{this[i]==="calculated"&&(this[i]=void 0)}),typeof t!="object"){this.updateColors();return}const r=Object.keys(t);r.forEach(i=>{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},g(ci,"Theme"),ci),Ex=g(e=>{const t=new Bx;return t.calculate(e),t},"getThemeVariables"),hi,Fx=(hi=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Y("#cde498",10),this.primaryBorderColor=Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=H(this.primaryColor),this.secondaryTextColor=H(this.secondaryColor),this.tertiaryTextColor=H(this.primaryColor),this.lineColor=H(this.background),this.textColor=H(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var t,r,i,n,a,o,s,c,l,h,u,f,d,p,m,y,x,b,C,v,k;this.actorBorder=at(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||M(this.primaryColor,{h:30}),this.cScale4=this.cScale4||M(this.primaryColor,{h:60}),this.cScale5=this.cScale5||M(this.primaryColor,{h:90}),this.cScale6=this.cScale6||M(this.primaryColor,{h:120}),this.cScale7=this.cScale7||M(this.primaryColor,{h:150}),this.cScale8=this.cScale8||M(this.primaryColor,{h:210}),this.cScale9=this.cScale9||M(this.primaryColor,{h:270}),this.cScale10=this.cScale10||M(this.primaryColor,{h:300}),this.cScale11=this.cScale11||M(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||at(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||at(this.tertiaryColor,40);for(let _=0;_{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},g(hi,"Theme"),hi),$x=g(e=>{const t=new Fx;return t.calculate(e),t},"getThemeVariables"),ui,Dx=(ui=class{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Y(this.contrast,55),this.background="#ffffff",this.tertiaryColor=M(this.primaryColor,{h:-160}),this.primaryBorderColor=Jt(this.primaryColor,this.darkMode),this.secondaryBorderColor=Jt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Jt(this.tertiaryColor,this.darkMode),this.primaryTextColor=H(this.primaryColor),this.secondaryTextColor=H(this.secondaryColor),this.tertiaryTextColor=H(this.tertiaryColor),this.lineColor=H(this.background),this.textColor=H(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||Y(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||"#f4f4f4",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var t,r,i,n,a,o,s,c,l,h,u,f,d,p,m,y,x,b,C,v,k;this.secondBkg=Y(this.contrast,55),this.border2=this.contrast,this.actorBorder=Y(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let _=0;_{this[i]=t[i]}),this.updateColors(),r.forEach(i=>{this[i]=t[i]})}},g(ui,"Theme"),ui),Ox=g(e=>{const t=new Dx;return t.calculate(e),t},"getThemeVariables"),Ze={base:{getThemeVariables:Mx},dark:{getThemeVariables:Lx},default:{getThemeVariables:Ex},forest:{getThemeVariables:$x},neutral:{getThemeVariables:Ox}},He={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,nodeSpacing:140,rankSpacing:80,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},radar:{useMaxWidth:!0,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1},hf={...He,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:Ze.default.getThemeVariables(),sequence:{...He.sequence,messageFont:g(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:g(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:g(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...He.gantt,tickInterval:void 0,useWidth:void 0},c4:{...He.c4,useWidth:void 0,personFont:g(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:g(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:g(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:g(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:g(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:g(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:g(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:g(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:g(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:g(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:g(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:g(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:g(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:g(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:g(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:g(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:g(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:g(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:g(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:g(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:g(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:g(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...He.pie,useWidth:984},xyChart:{...He.xyChart,useWidth:void 0},requirement:{...He.requirement,useWidth:void 0},packet:{...He.packet},radar:{...He.radar}},uf=g((e,t="")=>Object.keys(e).reduce((r,i)=>Array.isArray(e[i])?r:typeof e[i]=="object"&&e[i]!==null?[...r,t+i,...uf(e[i],"")]:[...r,t+i],[]),"keyify"),Rx=new Set(uf(hf,"")),ff=hf,wa=g(e=>{if(R.debug("sanitizeDirective called with",e),!(typeof e!="object"||e==null)){if(Array.isArray(e)){e.forEach(t=>wa(t));return}for(const t of Object.keys(e)){if(R.debug("Checking key",t),t.startsWith("__")||t.includes("proto")||t.includes("constr")||!Rx.has(t)||e[t]==null){R.debug("sanitize deleting key: ",t),delete e[t];continue}if(typeof e[t]=="object"){R.debug("sanitizing object",t),wa(e[t]);continue}const r=["themeCSS","fontFamily","altFontFamily"];for(const i of r)t.includes(i)&&(R.debug("sanitizing css option",t),e[t]=Ix(e[t]))}if(e.themeVariables)for(const t of Object.keys(e.themeVariables)){const r=e.themeVariables[t];r!=null&&r.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(e.themeVariables[t]="")}R.debug("After sanitization",e)}},"sanitizeDirective"),Ix=g(e=>{let t=0,r=0;for(const i of e){if(t{let r=Ht({},e),i={};for(const n of t)mf(n),i=Ht(i,n);if(r=Ht(r,i),i.theme&&i.theme in Ze){const n=Ht({},df),a=Ht(n.themeVariables||{},i.themeVariables);r.theme&&r.theme in Ze&&(r.themeVariables=Ze[r.theme].getThemeVariables(a))}return hn=r,yf(hn),hn},"updateCurrentConfig"),Px=g(e=>(le=Ht({},mi),le=Ht(le,e),e.theme&&Ze[e.theme]&&(le.themeVariables=Ze[e.theme].getThemeVariables(e.themeVariables)),gs(le,yi),le),"setSiteConfig"),Nx=g(e=>{df=Ht({},e)},"saveConfigFromInitialize"),zx=g(e=>(le=Ht(le,e),gs(le,yi),le),"updateSiteConfig"),pf=g(()=>Ht({},le),"getSiteConfig"),gf=g(e=>(yf(e),Ht(hn,e),he()),"setConfig"),he=g(()=>Ht({},hn),"getConfig"),mf=g(e=>{e&&(["secure",...le.secure??[]].forEach(t=>{Object.hasOwn(e,t)&&(R.debug(`Denied attempt to modify a secure key ${t}`,e[t]),delete e[t])}),Object.keys(e).forEach(t=>{t.startsWith("__")&&delete e[t]}),Object.keys(e).forEach(t=>{typeof e[t]=="string"&&(e[t].includes("<")||e[t].includes(">")||e[t].includes("url(data:"))&&delete e[t],typeof e[t]=="object"&&mf(e[t])}))},"sanitize"),Wx=g(e=>{var t;wa(e),e.fontFamily&&!((t=e.themeVariables)!=null&&t.fontFamily)&&(e.themeVariables={...e.themeVariables,fontFamily:e.fontFamily}),yi.push(e),gs(le,yi)},"addDirective"),ka=g((e=le)=>{yi=[],gs(e,yi)},"reset"),qx={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},oh={},Hx=g(e=>{oh[e]||(R.warn(qx[e]),oh[e]=!0)},"issueWarning"),yf=g(e=>{e&&(e.lazyLoadedDiagrams||e.loadExternalDiagramsAtStartup)&&Hx("LAZY_LOAD_DEPRECATED")},"checkConfig"),An=//gi,Ux=g(e=>e?_f(e).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),Yx=(()=>{let e=!1;return()=>{e||(xf(),e=!0)}})();function xf(){const e="data-temp-href-target";pi.addHook("beforeSanitizeAttributes",t=>{t instanceof Element&&t.tagName==="A"&&t.hasAttribute("target")&&t.setAttribute(e,t.getAttribute("target")??"")}),pi.addHook("afterSanitizeAttributes",t=>{t instanceof Element&&t.tagName==="A"&&t.hasAttribute(e)&&(t.setAttribute("target",t.getAttribute(e)??""),t.removeAttribute(e),t.getAttribute("target")==="_blank"&&t.setAttribute("rel","noopener"))})}g(xf,"setupDompurifyHooks");var bf=g(e=>(Yx(),pi.sanitize(e)),"removeScript"),lh=g((e,t)=>{var r;if(((r=t.flowchart)==null?void 0:r.htmlLabels)!==!1){const i=t.securityLevel;i==="antiscript"||i==="strict"?e=bf(e):i!=="loose"&&(e=_f(e),e=e.replace(//g,">"),e=e.replace(/=/g,"="),e=Xx(e))}return e},"sanitizeMore"),Ar=g((e,t)=>e&&(t.dompurifyConfig?e=pi.sanitize(lh(e,t),t.dompurifyConfig).toString():e=pi.sanitize(lh(e,t),{FORBID_TAGS:["style"]}).toString(),e),"sanitizeText"),jx=g((e,t)=>typeof e=="string"?Ar(e,t):e.flat().map(r=>Ar(r,t)),"sanitizeTextOrArray"),Gx=g(e=>An.test(e),"hasBreaks"),Vx=g(e=>e.split(An),"splitBreaks"),Xx=g(e=>e.replace(/#br#/g,"
"),"placeholderToBreak"),_f=g(e=>e.replace(An,"#br#"),"breakToPlaceholder"),Zx=g(e=>{let t="";return e&&(t=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,t=t.replaceAll(/\(/g,"\\("),t=t.replaceAll(/\)/g,"\\)")),t},"getUrl"),$t=g(e=>!(e===!1||["false","null","0"].includes(String(e).trim().toLowerCase())),"evaluate"),Kx=g(function(...e){const t=e.filter(r=>!isNaN(r));return Math.max(...t)},"getMax"),Qx=g(function(...e){const t=e.filter(r=>!isNaN(r));return Math.min(...t)},"getMin"),ch=g(function(e){const t=e.split(/(,)/),r=[];for(let i=0;i0&&i+1Math.max(0,e.split(t).length-1),"countOccurrence"),Jx=g((e,t)=>{const r=Bo(e,"~"),i=Bo(t,"~");return r===1&&i===1},"shouldCombineSets"),tb=g(e=>{const t=Bo(e,"~");let r=!1;if(t<=1)return e;t%2!==0&&e.startsWith("~")&&(e=e.substring(1),r=!0);const i=[...e];let n=i.indexOf("~"),a=i.lastIndexOf("~");for(;n!==-1&&a!==-1&&n!==a;)i[n]="<",i[a]=">",n=i.indexOf("~"),a=i.lastIndexOf("~");return r&&i.unshift("~"),i.join("")},"processSet"),hh=g(()=>window.MathMLElement!==void 0,"isMathMLSupported"),Eo=/\$\$(.*)\$\$/g,xi=g(e=>{var t;return(((t=e.match(Eo))==null?void 0:t.length)??0)>0},"hasKatex"),s3=g(async(e,t)=>{e=await Al(e,t);const r=document.createElement("div");r.innerHTML=e,r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0";const i=document.querySelector("body");i==null||i.insertAdjacentElement("beforeend",r);const n={width:r.clientWidth,height:r.clientHeight};return r.remove(),n},"calculateMathMLDimensions"),Al=g(async(e,t)=>{if(!xi(e))return e;if(!(hh()||t.legacyMathML||t.forceLegacyMathML))return e.replace(Eo,"MathML is unsupported in this environment.");const{default:r}=await _t(async()=>{const{default:n}=await import("./markdown-vendor-BBaHfVvE.js").then(a=>a.k);return{default:n}},__vite__mapDeps([0,1,2])),i=t.forceLegacyMathML||!hh()&&t.legacyMathML?"htmlAndMathml":"mathml";return e.split(An).map(n=>xi(n)?`
${n}
`:`
${n}
`).join("").replace(Eo,(n,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:i}).replace(/\n/g," ").replace(//g,""))},"renderKatex"),Ai={getRows:Ux,sanitizeText:Ar,sanitizeTextOrArray:jx,hasBreaks:Gx,splitBreaks:Vx,lineBreakRegex:An,removeScript:bf,getUrl:Zx,evaluate:$t,getMax:Kx,getMin:Qx},eb=g(function(e,t){for(let r of t)e.attr(r[0],r[1])},"d3Attrs"),rb=g(function(e,t,r){let i=new Map;return r?(i.set("width","100%"),i.set("style",`max-width: ${t}px;`)):(i.set("height",e),i.set("width",t)),i},"calculateSvgSizeAttrs"),Cf=g(function(e,t,r,i){const n=rb(t,r,i);eb(e,n)},"configureSvgSize"),ib=g(function(e,t,r,i){const n=t.node().getBBox(),a=n.width,o=n.height;R.info(`SVG bounds: ${a}x${o}`,n);let s=0,c=0;R.info(`Graph bounds: ${s}x${c}`,e),s=a+r*2,c=o+r*2,R.info(`Calculated bounds: ${s}x${c}`),Cf(t,c,s,i);const l=`${n.x-r} ${n.y-r} ${n.width+2*r} ${n.height+2*r}`;t.attr("viewBox",l)},"setupGraphViewbox"),oa={},nb=g((e,t,r)=>{let i="";return e in oa&&oa[e]?i=oa[e](r):R.warn(`No theme found for ${e}`),` & { font-family: ${r.fontFamily}; @@ -199,8 +199,8 @@ res:`,j.polygon(t,l,f)),j.polygon(t,l,f)},n}g(f0,"question");async function d0(e node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const i=e.x,n=e.y,a=Math.abs(i-r.x),o=e.width/2;let s=r.xMath.abs(i-t.x)*c){let u=r.y{R.warn("abc88 cutPathAtIntersect",e,t);let r=[],i=e[0],n=!1;return e.forEach(a=>{if(R.info("abc88 checking point",a,t),!vL(t,a)&&!n){const o=SL(t,i,a);R.debug("abc88 inside",a,i,o),R.debug("abc88 intersection",o,t);let s=!1;r.forEach(c=>{s=s||c.x===o.x&&c.y===o.y}),r.some(c=>c.x===o.x&&c.y===o.y)?R.warn("abc88 no intersect",o,r):r.push(o),n=!0}else R.warn("abc88 outside",a,i),i=a,n||r.push(a)}),R.debug("returning points",r),r},"cutPathAtIntersect");function z0(e){const t=[],r=[];for(let i=1;i5&&Math.abs(a.y-n.y)>5||n.y===a.y&&a.x===o.x&&Math.abs(a.x-n.x)>5&&Math.abs(a.y-o.y)>5)&&(t.push(a),r.push(i))}return{cornerPoints:t,cornerPointPositions:r}}g(z0,"extractCornerPoints");var Iu=g(function(e,t,r){const i=t.x-e.x,n=t.y-e.y,a=Math.sqrt(i*i+n*n),o=r/a;return{x:t.x-o*i,y:t.y-o*n}},"findAdjacentPoint"),TL=g(function(e){const{cornerPointPositions:t}=z0(e),r=[];for(let i=0;i10&&Math.abs(a.y-n.y)>=10){R.debug("Corner point fixing",Math.abs(a.x-n.x),Math.abs(a.y-n.y));const d=5;o.x===s.x?f={x:l<0?s.x-d+u:s.x+d-u,y:h<0?s.y-u:s.y+u}:f={x:l<0?s.x-u:s.x+u,y:h<0?s.y-d+u:s.y+d-u}}else R.debug("Corner point skipping fixing",Math.abs(a.x-n.x),Math.abs(a.y-n.y));r.push(f,c)}else r.push(e[i]);return r},"fixCorners"),ML=g(function(e,t,r,i,n,a,o){var N;const{handDrawnSeed:s}=yt();let c=t.points,l=!1;const h=n;var u=a;const f=[];for(const $ in t.cssCompiledStyles)wm($)||f.push(t.cssCompiledStyles[$]);u.intersect&&h.intersect&&(c=c.slice(1,t.points.length-1),c.unshift(h.intersect(c[0])),R.debug("Last point APA12",t.start,"-->",t.end,c[c.length-1],u,u.intersect(c[c.length-1])),c.push(u.intersect(c[c.length-1]))),t.toCluster&&(R.info("to cluster abc88",r.get(t.toCluster)),c=Ru(t.points,r.get(t.toCluster).node),l=!0),t.fromCluster&&(R.debug("from cluster abc88",r.get(t.fromCluster),JSON.stringify(c,null,2)),c=Ru(c.reverse(),r.get(t.fromCluster).node).reverse(),l=!0);let d=c.filter($=>!Number.isNaN($.y));d=TL(d);let p=ma;switch(p=Va,t.curve){case"linear":p=Va;break;case"basis":p=ma;break;case"cardinal":p=cg;break;case"bumpX":p=ng;break;case"bumpY":p=ag;break;case"catmullRom":p=ug;break;case"monotoneX":p=yg;break;case"monotoneY":p=xg;break;case"natural":p=_g;break;case"step":p=Cg;break;case"stepAfter":p=kg;break;case"stepBefore":p=wg;break;default:p=ma}const{x:m,y}=S1(t),x=qv().x(m).y(y).curve(p);let b;switch(t.thickness){case"normal":b="edge-thickness-normal";break;case"thick":b="edge-thickness-thick";break;case"invisible":b="edge-thickness-invisible";break;default:b="edge-thickness-normal"}switch(t.pattern){case"solid":b+=" edge-pattern-solid";break;case"dotted":b+=" edge-pattern-dotted";break;case"dashed":b+=" edge-pattern-dashed";break;default:b+=" edge-pattern-solid"}let C,v=x(d);const k=Array.isArray(t.style)?t.style:[t.style];let _=k.find($=>$==null?void 0:$.startsWith("stroke:"));if(t.look==="handDrawn"){const $=V.svg(e);Object.assign([],d);const S=$.path(v,{roughness:.3,seed:s});b+=" transition",C=pt(S).select("path").attr("id",t.id).attr("class"," "+b+(t.classes?" "+t.classes:"")).attr("style",k?k.reduce((E,A)=>E+";"+A,""):"");let I=C.attr("d");C.attr("d",I),e.node().appendChild(C.node())}else{const $=f.join(";"),S=k?k.reduce((A,F)=>A+F+";",""):"";let I="";t.animate&&(I=" edge-animation-fast"),t.animation&&(I=" edge-animation-"+t.animation);const E=$?$+";"+S+";":S;C=e.append("path").attr("d",v).attr("id",t.id).attr("class"," "+b+(t.classes?" "+t.classes:"")+(I??"")).attr("style",E),_=(N=E.match(/stroke:([^;]+)/))==null?void 0:N[1]}let w="";(yt().flowchart.arrowMarkerAbsolute||yt().state.arrowMarkerAbsolute)&&(w=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,w=w.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),R.info("arrowTypeStart",t.arrowTypeStart),R.info("arrowTypeEnd",t.arrowTypeEnd),_L(C,t,w,o,i,_);let O={};return l&&(O.updatedPath=c),O.originalPath=t.points,O},"insertEdge"),AL=g((e,t,r,i)=>{t.forEach(n=>{UL[n](e,r,i)})},"insertMarkers"),LL=g((e,t,r)=>{R.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),BL=g((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),EL=g((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),FL=g((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),$L=g((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),DL=g((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),OL=g((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),RL=g((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),IL=g((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),PL=g((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneStart").attr("class","marker onlyOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneEnd").attr("class","marker onlyOne "+t).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),NL=g((e,t,r)=>{const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneStart").attr("class","marker zeroOrOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),i.append("path").attr("d","M9,0 L9,18");const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+t).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),n.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),zL=g((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreStart").attr("class","marker oneOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreEnd").attr("class","marker oneOrMore "+t).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),WL=g((e,t,r)=>{const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),i.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+t).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");n.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),n.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),qL=g((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0 L20,10 M20,10 - L0,20`)},"requirement_arrow"),HL=g((e,t,r)=>{const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");i.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),i.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),i.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),UL={extension:LL,composition:BL,aggregation:EL,dependency:FL,lollipop:$L,point:DL,circle:OL,cross:RL,barb:IL,only_one:PL,zero_or_one:NL,one_or_more:zL,zero_or_more:WL,requirement_arrow:qL,requirement_contains:HL},YL=AL,jL={common:Ai,getConfig:he,insertCluster:tL,insertEdge:ML,insertEdgeLabel:wL,insertMarkers:YL,insertNode:N0,interpolateToCurve:cc,labelHelper:ht,log:R,positionEdgeLabel:kL},Sn={},W0=g(e=>{for(const t of e)Sn[t.name]=t},"registerLayoutLoaders"),GL=g(()=>{W0([{name:"dagre",loader:g(async()=>await _t(()=>import("./dagre-OKDRZEBW-hl_RTy2g.js"),__vite__mapDeps([3,4,5,6,7,8,9,2,10,1,11,12])),"loader")}])},"registerDefaultLayoutLoaders");GL();var v3=g(async(e,t)=>{if(!(e.layoutAlgorithm in Sn))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);const r=Sn[e.layoutAlgorithm];return(await r.loader()).render(e,t,jL,{algorithm:r.algorithm})},"render"),S3=g((e="",{fallback:t="dagre"}={})=>{if(e in Sn)return e;if(t in Sn)return R.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm"),Pu={version:"11.6.0"},VL=g(e=>{var n;const{securityLevel:t}=yt();let r=pt("body");if(t==="sandbox"){const o=((n=pt(`#i${e}`).node())==null?void 0:n.contentDocument)??document;r=pt(o.body)}return r.select(`#${e}`)},"selectSvgElement"),q0="comm",H0="rule",U0="decl",XL="@import",ZL="@namespace",KL="@keyframes",QL="@layer",Y0=Math.abs,Lc=String.fromCharCode;function j0(e){return e.trim()}function ba(e,t,r){return e.replace(t,r)}function JL(e,t,r){return e.indexOf(t,r)}function ai(e,t){return e.charCodeAt(t)|0}function Ti(e,t,r){return e.slice(t,r)}function $e(e){return e.length}function tB(e){return e.length}function ia(e,t){return t.push(e),e}var zs=1,Mi=1,G0=0,_e=0,Bt=0,$i="";function Bc(e,t,r,i,n,a,o,s){return{value:e,root:t,parent:r,type:i,props:n,children:a,line:zs,column:Mi,length:o,return:"",siblings:s}}function eB(){return Bt}function rB(){return Bt=_e>0?ai($i,--_e):0,Mi--,Bt===10&&(Mi=1,zs--),Bt}function Se(){return Bt=_e2||Tn(Bt)>3?"":" "}function sB(e,t){for(;--t&&Se()&&!(Bt<48||Bt>102||Bt>57&&Bt<65||Bt>70&&Bt<97););return Ws(e,_a()+(t<6&&sr()==32&&Se()==32))}function xl(e){for(;Se();)switch(Bt){case e:return _e;case 34:case 39:e!==34&&e!==39&&xl(Bt);break;case 40:e===41&&xl(e);break;case 92:Se();break}return _e}function oB(e,t){for(;Se()&&e+Bt!==57;)if(e+Bt===84&&sr()===47)break;return"/*"+Ws(t,_e-1)+"*"+Lc(e===47?e:Se())}function lB(e){for(;!Tn(sr());)Se();return Ws(e,_e)}function cB(e){return nB(Ca("",null,null,null,[""],e=iB(e),0,[0],e))}function Ca(e,t,r,i,n,a,o,s,c){for(var l=0,h=0,u=o,f=0,d=0,p=0,m=1,y=1,x=1,b=0,C="",v=n,k=a,_=i,w=C;y;)switch(p=b,b=Se()){case 40:if(p!=108&&ai(w,u-1)==58){JL(w+=ba(So(b),"&","&\f"),"&\f",Y0(l?s[l-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:w+=So(b);break;case 9:case 10:case 13:case 32:w+=aB(p);break;case 92:w+=sB(_a()-1,7);continue;case 47:switch(sr()){case 42:case 47:ia(hB(oB(Se(),_a()),t,r,c),c),(Tn(p||1)==5||Tn(sr()||1)==5)&&$e(w)&&Ti(w,-1,void 0)!==" "&&(w+=" ");break;default:w+="/"}break;case 123*m:s[l++]=$e(w)*x;case 125*m:case 59:case 0:switch(b){case 0:case 125:y=0;case 59+h:x==-1&&(w=ba(w,/\f/g,"")),d>0&&($e(w)-u||m===0&&p===47)&&ia(d>32?zu(w+";",i,r,u-1,c):zu(ba(w," ","")+";",i,r,u-2,c),c);break;case 59:w+=";";default:if(ia(_=Nu(w,t,r,l,h,n,s,C,v=[],k=[],u,a),a),b===123)if(h===0)Ca(w,t,_,_,v,a,u,s,k);else{switch(f){case 99:if(ai(w,3)===110)break;case 108:if(ai(w,2)===97)break;default:h=0;case 100:case 109:case 115:}h?Ca(e,_,_,i&&ia(Nu(e,_,_,0,0,n,s,C,n,v=[],u,k),k),n,k,u,s,i?v:k):Ca(w,_,_,_,[""],k,0,s,k)}}l=h=d=0,m=x=1,C=w="",u=o;break;case 58:u=1+$e(w),d=p;default:if(m<1){if(b==123)--m;else if(b==125&&m++==0&&rB()==125)continue}switch(w+=Lc(b),b*m){case 38:x=h>0?1:(w+="\f",-1);break;case 44:s[l++]=($e(w)-1)*x,x=1;break;case 64:sr()===45&&(w+=So(Se())),f=sr(),h=u=$e(C=w+=lB(_a())),b++;break;case 45:p===45&&$e(w)==2&&(m=0)}}return a}function Nu(e,t,r,i,n,a,o,s,c,l,h,u){for(var f=n-1,d=n===0?a:[""],p=tB(d),m=0,y=0,x=0;m0?d[b]+" "+C:ba(C,/&\f/g,d[b])))&&(c[x++]=v);return Bc(e,t,r,n===0?H0:s,c,l,h,u)}function hB(e,t,r,i){return Bc(e,t,r,q0,Lc(eB()),Ti(e,2,-2),0,i)}function zu(e,t,r,i,n){return Bc(e,t,r,U0,Ti(e,0,i),Ti(e,i+1,-1),i,n)}function bl(e,t){for(var r="",i=0;i/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),MB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./c4Diagram-VJAJSXHY-DhTcycAT.js");return{diagram:t}},__vite__mapDeps([13,14,9,2,10,1,11,12]));return{id:V0,diagram:e}},"loader"),AB={id:V0,detector:TB,loader:MB},LB=AB,X0="flowchart",BB=g((e,t)=>{var r,i;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((i=t==null?void 0:t.flowchart)==null?void 0:i.defaultRenderer)==="elk"?!1:/^\s*graph/.test(e)},"detector"),EB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./flowDiagram-4HSFHLVR-DC7cFb2q.js");return{diagram:t}},__vite__mapDeps([15,16,9,2,10,1,11,12]));return{id:X0,diagram:e}},"loader"),FB={id:X0,detector:BB,loader:EB},$B=FB,Z0="flowchart-v2",DB=g((e,t)=>{var r,i,n;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"?!1:(((i=t==null?void 0:t.flowchart)==null?void 0:i.defaultRenderer)==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&((n=t==null?void 0:t.flowchart)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(e))},"detector"),OB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./flowDiagram-4HSFHLVR-DC7cFb2q.js");return{diagram:t}},__vite__mapDeps([15,16,9,2,10,1,11,12]));return{id:Z0,diagram:e}},"loader"),RB={id:Z0,detector:DB,loader:OB},IB=RB,K0="er",PB=g(e=>/^\s*erDiagram/.test(e),"detector"),NB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./erDiagram-Q7BY3M3F-CAraTg_G.js");return{diagram:t}},__vite__mapDeps([17,16,9,2,10,1,11,12]));return{id:K0,diagram:e}},"loader"),zB={id:K0,detector:PB,loader:NB},WB=zB,Q0="gitGraph",qB=g(e=>/^\s*gitGraph/.test(e),"detector"),HB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./gitGraphDiagram-7IBYFJ6S-C7t9VG9x.js");return{diagram:t}},__vite__mapDeps([18,19,20,21,9,2,10,1,11,12,5,7,8]));return{id:Q0,diagram:e}},"loader"),UB={id:Q0,detector:qB,loader:HB},YB=UB,J0="gantt",jB=g(e=>/^\s*gantt/.test(e),"detector"),GB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./ganttDiagram-APWFNJXF-CkKq4NOY.js");return{diagram:t}},__vite__mapDeps([22,2,9,10,1,11,12]));return{id:J0,diagram:e}},"loader"),VB={id:J0,detector:jB,loader:GB},XB=VB,ty="info",ZB=g(e=>/^\s*info/.test(e),"detector"),KB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./infoDiagram-PH2N3AL5-C4VRyMR4.js");return{diagram:t}},__vite__mapDeps([23,21,9,2,10,1,11,12,5,7,8]));return{id:ty,diagram:e}},"loader"),QB={id:ty,detector:ZB,loader:KB},ey="pie",JB=g(e=>/^\s*pie/.test(e),"detector"),tE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./pieDiagram-IB7DONF6-B0cIkycz.js");return{diagram:t}},__vite__mapDeps([24,19,21,9,2,10,1,11,12,5,7,8]));return{id:ey,diagram:e}},"loader"),eE={id:ey,detector:JB,loader:tE},ry="quadrantChart",rE=g(e=>/^\s*quadrantChart/.test(e),"detector"),iE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./quadrantDiagram-7GDLP6J5-zmngfYyO.js");return{diagram:t}},__vite__mapDeps([25,9,2,10,1,11,12]));return{id:ry,diagram:e}},"loader"),nE={id:ry,detector:rE,loader:iE},aE=nE,iy="xychart",sE=g(e=>/^\s*xychart-beta/.test(e),"detector"),oE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./xychartDiagram-VJFVF3MP-5OclOI0o.js");return{diagram:t}},__vite__mapDeps([26,9,2,10,1,11,12]));return{id:iy,diagram:e}},"loader"),lE={id:iy,detector:sE,loader:oE},cE=lE,ny="requirement",hE=g(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),uE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./requirementDiagram-KVF5MWMF-A4JwVpFF.js");return{diagram:t}},__vite__mapDeps([27,16,9,2,10,1,11,12]));return{id:ny,diagram:e}},"loader"),fE={id:ny,detector:hE,loader:uE},dE=fE,ay="sequence",pE=g(e=>/^\s*sequenceDiagram/.test(e),"detector"),gE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./sequenceDiagram-X6HHIX6F-hDfAwQVw.js");return{diagram:t}},__vite__mapDeps([28,14,20,9,2,10,1,11,12]));return{id:ay,diagram:e}},"loader"),mE={id:ay,detector:pE,loader:gE},yE=mE,sy="class",xE=g((e,t)=>{var r;return((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e)},"detector"),bE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./classDiagram-GIVACNV2-DUFHlr92.js");return{diagram:t}},__vite__mapDeps([29,30,16,9,2,10,1,11,12]));return{id:sy,diagram:e}},"loader"),_E={id:sy,detector:xE,loader:bE},CE=_E,oy="classDiagram",wE=g((e,t)=>{var r;return/^\s*classDiagram/.test(e)&&((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e)},"detector"),kE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./classDiagram-v2-COTLJTTW-DUFHlr92.js");return{diagram:t}},__vite__mapDeps([31,30,16,9,2,10,1,11,12]));return{id:oy,diagram:e}},"loader"),vE={id:oy,detector:wE,loader:kE},SE=vE,ly="state",TE=g((e,t)=>{var r;return((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e)},"detector"),ME=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./stateDiagram-DGXRK772-CcL234E-.js");return{diagram:t}},__vite__mapDeps([32,33,16,4,5,6,7,9,2,10,1,11,12]));return{id:ly,diagram:e}},"loader"),AE={id:ly,detector:TE,loader:ME},LE=AE,cy="stateDiagram",BE=g((e,t)=>{var r;return!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},"detector"),EE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./stateDiagram-v2-YXO3MK2T-BnpIGSVY.js");return{diagram:t}},__vite__mapDeps([34,33,16,9,2,10,1,11,12]));return{id:cy,diagram:e}},"loader"),FE={id:cy,detector:BE,loader:EE},$E=FE,hy="journey",DE=g(e=>/^\s*journey/.test(e),"detector"),OE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./journeyDiagram-U35MCT3I-YPalBptu.js");return{diagram:t}},__vite__mapDeps([35,14,9,2,10,1,11,12]));return{id:hy,diagram:e}},"loader"),RE={id:hy,detector:DE,loader:OE},IE=RE,PE=g((e,t,r)=>{R.debug(`rendering svg for syntax error -`);const i=VL(t),n=i.append("g");i.attr("viewBox","0 0 2412 512"),Cf(i,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),uy={draw:PE},NE=uy,zE={db:{},renderer:uy,parser:{parse:g(()=>{},"parse")}},WE=zE,fy="flowchart-elk",qE=g((e,t={})=>{var r;return/^\s*flowchart-elk/.test(e)||/^\s*flowchart|graph/.test(e)&&((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="elk"?(t.layout="elk",!0):!1},"detector"),HE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./flowDiagram-4HSFHLVR-DC7cFb2q.js");return{diagram:t}},__vite__mapDeps([15,16,9,2,10,1,11,12]));return{id:fy,diagram:e}},"loader"),UE={id:fy,detector:qE,loader:HE},YE=UE,dy="timeline",jE=g(e=>/^\s*timeline/.test(e),"detector"),GE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./timeline-definition-BDJGKUSR-CFveliQS.js");return{diagram:t}},__vite__mapDeps([36,9,2,10,1,11,12]));return{id:dy,diagram:e}},"loader"),VE={id:dy,detector:jE,loader:GE},XE=VE,py="mindmap",ZE=g(e=>/^\s*mindmap/.test(e),"detector"),KE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./mindmap-definition-ALO5MXBD-DGAXVsL1.js");return{diagram:t}},__vite__mapDeps([37,38,2,9,10,1,11,12]));return{id:py,diagram:e}},"loader"),QE={id:py,detector:ZE,loader:KE},JE=QE,gy="kanban",tF=g(e=>/^\s*kanban/.test(e),"detector"),eF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./kanban-definition-NDS4AKOZ-DDoftzBy.js");return{diagram:t}},__vite__mapDeps([39,9,2,10,1,11,12]));return{id:gy,diagram:e}},"loader"),rF={id:gy,detector:tF,loader:eF},iF=rF,my="sankey",nF=g(e=>/^\s*sankey-beta/.test(e),"detector"),aF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./sankeyDiagram-QLVOVGJD-DkTUSo82.js");return{diagram:t}},__vite__mapDeps([40,9,2,10,1,11,12]));return{id:my,diagram:e}},"loader"),sF={id:my,detector:nF,loader:aF},oF=sF,yy="packet",lF=g(e=>/^\s*packet-beta/.test(e),"detector"),cF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./diagram-VNBRO52H-CpzL1-Is.js");return{diagram:t}},__vite__mapDeps([41,19,21,9,2,10,1,11,12,5,7,8]));return{id:yy,diagram:e}},"loader"),hF={id:yy,detector:lF,loader:cF},xy="radar",uF=g(e=>/^\s*radar-beta/.test(e),"detector"),fF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./diagram-SSKATNLV-prPjpZ5y.js");return{diagram:t}},__vite__mapDeps([42,19,21,9,2,10,1,11,12,5,7,8]));return{id:xy,diagram:e}},"loader"),dF={id:xy,detector:uF,loader:fF},by="block",pF=g(e=>/^\s*block-beta/.test(e),"detector"),gF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./blockDiagram-JOT3LUYC-Ca9NC-96.js");return{diagram:t}},__vite__mapDeps([43,8,5,4,9,2,10,1,11,12]));return{id:by,diagram:e}},"loader"),mF={id:by,detector:pF,loader:gF},yF=mF,_y="architecture",xF=g(e=>/^\s*architecture/.test(e),"detector"),bF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./architectureDiagram-IEHRJDOE-Ba9Io2eo.js");return{diagram:t}},__vite__mapDeps([44,19,20,21,9,2,10,1,11,12,5,7,8,38]));return{id:_y,diagram:e}},"loader"),_F={id:_y,detector:xF,loader:bF},CF=_F,Gu=!1,qs=g(()=>{Gu||(Gu=!0,Sa("error",WE,e=>e.toLowerCase().trim()==="error"),Sa("---",{db:{clear:g(()=>{},"clear")},styles:{},renderer:{draw:g(()=>{},"draw")},parser:{parse:g(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:g(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),lf(LB,iF,SE,CE,WB,XB,QB,eE,dE,yE,YE,IB,$B,JE,XE,YB,$E,LE,IE,aE,oF,hF,cE,yF,CF,dF))},"addDiagrams"),wF=g(async()=>{R.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(gi).map(async([r,{detector:i,loader:n}])=>{if(n)try{Fo(r)}catch{try{const{diagram:a,id:o}=await n();Sa(o,a,i)}catch(a){throw R.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete gi[r],a}}}))).filter(r=>r.status==="rejected");if(t.length>0){R.error(`Failed to load ${t.length} external diagrams`);for(const r of t)R.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),kF="graphics-document document";function Cy(e,t){e.attr("role",kF),t!==""&&e.attr("aria-roledescription",t)}g(Cy,"setA11yDiagramInfo");function wy(e,t,r,i){if(e.insert!==void 0){if(r){const n=`chart-desc-${i}`;e.attr("aria-describedby",n),e.insert("desc",":first-child").attr("id",n).text(r)}if(t){const n=`chart-title-${i}`;e.attr("aria-labelledby",n),e.insert("title",":first-child").attr("id",n).text(t)}}}g(wy,"addSVGa11yTitleDescription");var Mr,vl=(Mr=class{constructor(t,r,i,n,a){this.type=t,this.text=r,this.db=i,this.parser=n,this.renderer=a}static async fromText(t,r={}){var l,h;const i=he(),n=Ml(t,i);t=UM(t)+` + L0,20`)},"requirement_arrow"),HL=g((e,t,r)=>{const i=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");i.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),i.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),i.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),UL={extension:LL,composition:BL,aggregation:EL,dependency:FL,lollipop:$L,point:DL,circle:OL,cross:RL,barb:IL,only_one:PL,zero_or_one:NL,one_or_more:zL,zero_or_more:WL,requirement_arrow:qL,requirement_contains:HL},YL=AL,jL={common:Ai,getConfig:he,insertCluster:tL,insertEdge:ML,insertEdgeLabel:wL,insertMarkers:YL,insertNode:N0,interpolateToCurve:cc,labelHelper:ht,log:R,positionEdgeLabel:kL},Sn={},W0=g(e=>{for(const t of e)Sn[t.name]=t},"registerLayoutLoaders"),GL=g(()=>{W0([{name:"dagre",loader:g(async()=>await _t(()=>import("./dagre-OKDRZEBW-K3MoIKXh.js"),__vite__mapDeps([3,4,5,6,7,8,9,2,10,1,11,12])),"loader")}])},"registerDefaultLayoutLoaders");GL();var v3=g(async(e,t)=>{if(!(e.layoutAlgorithm in Sn))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);const r=Sn[e.layoutAlgorithm];return(await r.loader()).render(e,t,jL,{algorithm:r.algorithm})},"render"),S3=g((e="",{fallback:t="dagre"}={})=>{if(e in Sn)return e;if(t in Sn)return R.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm"),Pu={version:"11.6.0"},VL=g(e=>{var n;const{securityLevel:t}=yt();let r=pt("body");if(t==="sandbox"){const o=((n=pt(`#i${e}`).node())==null?void 0:n.contentDocument)??document;r=pt(o.body)}return r.select(`#${e}`)},"selectSvgElement"),q0="comm",H0="rule",U0="decl",XL="@import",ZL="@namespace",KL="@keyframes",QL="@layer",Y0=Math.abs,Lc=String.fromCharCode;function j0(e){return e.trim()}function ba(e,t,r){return e.replace(t,r)}function JL(e,t,r){return e.indexOf(t,r)}function ai(e,t){return e.charCodeAt(t)|0}function Ti(e,t,r){return e.slice(t,r)}function $e(e){return e.length}function tB(e){return e.length}function ia(e,t){return t.push(e),e}var zs=1,Mi=1,G0=0,_e=0,Bt=0,$i="";function Bc(e,t,r,i,n,a,o,s){return{value:e,root:t,parent:r,type:i,props:n,children:a,line:zs,column:Mi,length:o,return:"",siblings:s}}function eB(){return Bt}function rB(){return Bt=_e>0?ai($i,--_e):0,Mi--,Bt===10&&(Mi=1,zs--),Bt}function Se(){return Bt=_e2||Tn(Bt)>3?"":" "}function sB(e,t){for(;--t&&Se()&&!(Bt<48||Bt>102||Bt>57&&Bt<65||Bt>70&&Bt<97););return Ws(e,_a()+(t<6&&sr()==32&&Se()==32))}function xl(e){for(;Se();)switch(Bt){case e:return _e;case 34:case 39:e!==34&&e!==39&&xl(Bt);break;case 40:e===41&&xl(e);break;case 92:Se();break}return _e}function oB(e,t){for(;Se()&&e+Bt!==57;)if(e+Bt===84&&sr()===47)break;return"/*"+Ws(t,_e-1)+"*"+Lc(e===47?e:Se())}function lB(e){for(;!Tn(sr());)Se();return Ws(e,_e)}function cB(e){return nB(Ca("",null,null,null,[""],e=iB(e),0,[0],e))}function Ca(e,t,r,i,n,a,o,s,c){for(var l=0,h=0,u=o,f=0,d=0,p=0,m=1,y=1,x=1,b=0,C="",v=n,k=a,_=i,w=C;y;)switch(p=b,b=Se()){case 40:if(p!=108&&ai(w,u-1)==58){JL(w+=ba(So(b),"&","&\f"),"&\f",Y0(l?s[l-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:w+=So(b);break;case 9:case 10:case 13:case 32:w+=aB(p);break;case 92:w+=sB(_a()-1,7);continue;case 47:switch(sr()){case 42:case 47:ia(hB(oB(Se(),_a()),t,r,c),c),(Tn(p||1)==5||Tn(sr()||1)==5)&&$e(w)&&Ti(w,-1,void 0)!==" "&&(w+=" ");break;default:w+="/"}break;case 123*m:s[l++]=$e(w)*x;case 125*m:case 59:case 0:switch(b){case 0:case 125:y=0;case 59+h:x==-1&&(w=ba(w,/\f/g,"")),d>0&&($e(w)-u||m===0&&p===47)&&ia(d>32?zu(w+";",i,r,u-1,c):zu(ba(w," ","")+";",i,r,u-2,c),c);break;case 59:w+=";";default:if(ia(_=Nu(w,t,r,l,h,n,s,C,v=[],k=[],u,a),a),b===123)if(h===0)Ca(w,t,_,_,v,a,u,s,k);else{switch(f){case 99:if(ai(w,3)===110)break;case 108:if(ai(w,2)===97)break;default:h=0;case 100:case 109:case 115:}h?Ca(e,_,_,i&&ia(Nu(e,_,_,0,0,n,s,C,n,v=[],u,k),k),n,k,u,s,i?v:k):Ca(w,_,_,_,[""],k,0,s,k)}}l=h=d=0,m=x=1,C=w="",u=o;break;case 58:u=1+$e(w),d=p;default:if(m<1){if(b==123)--m;else if(b==125&&m++==0&&rB()==125)continue}switch(w+=Lc(b),b*m){case 38:x=h>0?1:(w+="\f",-1);break;case 44:s[l++]=($e(w)-1)*x,x=1;break;case 64:sr()===45&&(w+=So(Se())),f=sr(),h=u=$e(C=w+=lB(_a())),b++;break;case 45:p===45&&$e(w)==2&&(m=0)}}return a}function Nu(e,t,r,i,n,a,o,s,c,l,h,u){for(var f=n-1,d=n===0?a:[""],p=tB(d),m=0,y=0,x=0;m0?d[b]+" "+C:ba(C,/&\f/g,d[b])))&&(c[x++]=v);return Bc(e,t,r,n===0?H0:s,c,l,h,u)}function hB(e,t,r,i){return Bc(e,t,r,q0,Lc(eB()),Ti(e,2,-2),0,i)}function zu(e,t,r,i,n){return Bc(e,t,r,U0,Ti(e,0,i),Ti(e,i+1,-1),i,n)}function bl(e,t){for(var r="",i=0;i/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),MB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./c4Diagram-VJAJSXHY-B78G2kZD.js");return{diagram:t}},__vite__mapDeps([13,14,9,2,10,1,11,12]));return{id:V0,diagram:e}},"loader"),AB={id:V0,detector:TB,loader:MB},LB=AB,X0="flowchart",BB=g((e,t)=>{var r,i;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((i=t==null?void 0:t.flowchart)==null?void 0:i.defaultRenderer)==="elk"?!1:/^\s*graph/.test(e)},"detector"),EB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./flowDiagram-4HSFHLVR-CtTg4KvT.js");return{diagram:t}},__vite__mapDeps([15,16,9,2,10,1,11,12]));return{id:X0,diagram:e}},"loader"),FB={id:X0,detector:BB,loader:EB},$B=FB,Z0="flowchart-v2",DB=g((e,t)=>{var r,i,n;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"?!1:(((i=t==null?void 0:t.flowchart)==null?void 0:i.defaultRenderer)==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&((n=t==null?void 0:t.flowchart)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(e))},"detector"),OB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./flowDiagram-4HSFHLVR-CtTg4KvT.js");return{diagram:t}},__vite__mapDeps([15,16,9,2,10,1,11,12]));return{id:Z0,diagram:e}},"loader"),RB={id:Z0,detector:DB,loader:OB},IB=RB,K0="er",PB=g(e=>/^\s*erDiagram/.test(e),"detector"),NB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./erDiagram-Q7BY3M3F-DQX4VtAS.js");return{diagram:t}},__vite__mapDeps([17,16,9,2,10,1,11,12]));return{id:K0,diagram:e}},"loader"),zB={id:K0,detector:PB,loader:NB},WB=zB,Q0="gitGraph",qB=g(e=>/^\s*gitGraph/.test(e),"detector"),HB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./gitGraphDiagram-7IBYFJ6S-fIZu_S0j.js");return{diagram:t}},__vite__mapDeps([18,19,20,21,9,2,10,1,11,12,5,7,8]));return{id:Q0,diagram:e}},"loader"),UB={id:Q0,detector:qB,loader:HB},YB=UB,J0="gantt",jB=g(e=>/^\s*gantt/.test(e),"detector"),GB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./ganttDiagram-APWFNJXF-DPZeRkyR.js");return{diagram:t}},__vite__mapDeps([22,2,9,10,1,11,12]));return{id:J0,diagram:e}},"loader"),VB={id:J0,detector:jB,loader:GB},XB=VB,ty="info",ZB=g(e=>/^\s*info/.test(e),"detector"),KB=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./infoDiagram-PH2N3AL5-Bexk_QKW.js");return{diagram:t}},__vite__mapDeps([23,21,9,2,10,1,11,12,5,7,8]));return{id:ty,diagram:e}},"loader"),QB={id:ty,detector:ZB,loader:KB},ey="pie",JB=g(e=>/^\s*pie/.test(e),"detector"),tE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./pieDiagram-IB7DONF6-DrMdtRDI.js");return{diagram:t}},__vite__mapDeps([24,19,21,9,2,10,1,11,12,5,7,8]));return{id:ey,diagram:e}},"loader"),eE={id:ey,detector:JB,loader:tE},ry="quadrantChart",rE=g(e=>/^\s*quadrantChart/.test(e),"detector"),iE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./quadrantDiagram-7GDLP6J5-C56WKFyP.js");return{diagram:t}},__vite__mapDeps([25,9,2,10,1,11,12]));return{id:ry,diagram:e}},"loader"),nE={id:ry,detector:rE,loader:iE},aE=nE,iy="xychart",sE=g(e=>/^\s*xychart-beta/.test(e),"detector"),oE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./xychartDiagram-VJFVF3MP-B3pR2K46.js");return{diagram:t}},__vite__mapDeps([26,9,2,10,1,11,12]));return{id:iy,diagram:e}},"loader"),lE={id:iy,detector:sE,loader:oE},cE=lE,ny="requirement",hE=g(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),uE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./requirementDiagram-KVF5MWMF-CtVTOxeE.js");return{diagram:t}},__vite__mapDeps([27,16,9,2,10,1,11,12]));return{id:ny,diagram:e}},"loader"),fE={id:ny,detector:hE,loader:uE},dE=fE,ay="sequence",pE=g(e=>/^\s*sequenceDiagram/.test(e),"detector"),gE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./sequenceDiagram-X6HHIX6F-D6_yAdcj.js");return{diagram:t}},__vite__mapDeps([28,14,20,9,2,10,1,11,12]));return{id:ay,diagram:e}},"loader"),mE={id:ay,detector:pE,loader:gE},yE=mE,sy="class",xE=g((e,t)=>{var r;return((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e)},"detector"),bE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./classDiagram-GIVACNV2-Bx6IdAZy.js");return{diagram:t}},__vite__mapDeps([29,30,16,9,2,10,1,11,12]));return{id:sy,diagram:e}},"loader"),_E={id:sy,detector:xE,loader:bE},CE=_E,oy="classDiagram",wE=g((e,t)=>{var r;return/^\s*classDiagram/.test(e)&&((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e)},"detector"),kE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./classDiagram-v2-COTLJTTW-Bx6IdAZy.js");return{diagram:t}},__vite__mapDeps([31,30,16,9,2,10,1,11,12]));return{id:oy,diagram:e}},"loader"),vE={id:oy,detector:wE,loader:kE},SE=vE,ly="state",TE=g((e,t)=>{var r;return((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e)},"detector"),ME=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./stateDiagram-DGXRK772-BGTY-Rrs.js");return{diagram:t}},__vite__mapDeps([32,33,16,4,5,6,7,9,2,10,1,11,12]));return{id:ly,diagram:e}},"loader"),AE={id:ly,detector:TE,loader:ME},LE=AE,cy="stateDiagram",BE=g((e,t)=>{var r;return!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},"detector"),EE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./stateDiagram-v2-YXO3MK2T-C15fufgb.js");return{diagram:t}},__vite__mapDeps([34,33,16,9,2,10,1,11,12]));return{id:cy,diagram:e}},"loader"),FE={id:cy,detector:BE,loader:EE},$E=FE,hy="journey",DE=g(e=>/^\s*journey/.test(e),"detector"),OE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./journeyDiagram-U35MCT3I-Drj8e4jk.js");return{diagram:t}},__vite__mapDeps([35,14,9,2,10,1,11,12]));return{id:hy,diagram:e}},"loader"),RE={id:hy,detector:DE,loader:OE},IE=RE,PE=g((e,t,r)=>{R.debug(`rendering svg for syntax error +`);const i=VL(t),n=i.append("g");i.attr("viewBox","0 0 2412 512"),Cf(i,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),uy={draw:PE},NE=uy,zE={db:{},renderer:uy,parser:{parse:g(()=>{},"parse")}},WE=zE,fy="flowchart-elk",qE=g((e,t={})=>{var r;return/^\s*flowchart-elk/.test(e)||/^\s*flowchart|graph/.test(e)&&((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="elk"?(t.layout="elk",!0):!1},"detector"),HE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./flowDiagram-4HSFHLVR-CtTg4KvT.js");return{diagram:t}},__vite__mapDeps([15,16,9,2,10,1,11,12]));return{id:fy,diagram:e}},"loader"),UE={id:fy,detector:qE,loader:HE},YE=UE,dy="timeline",jE=g(e=>/^\s*timeline/.test(e),"detector"),GE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./timeline-definition-BDJGKUSR-DdDk7fsZ.js");return{diagram:t}},__vite__mapDeps([36,9,2,10,1,11,12]));return{id:dy,diagram:e}},"loader"),VE={id:dy,detector:jE,loader:GE},XE=VE,py="mindmap",ZE=g(e=>/^\s*mindmap/.test(e),"detector"),KE=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./mindmap-definition-ALO5MXBD-BQ2T_hsy.js");return{diagram:t}},__vite__mapDeps([37,38,2,9,10,1,11,12]));return{id:py,diagram:e}},"loader"),QE={id:py,detector:ZE,loader:KE},JE=QE,gy="kanban",tF=g(e=>/^\s*kanban/.test(e),"detector"),eF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./kanban-definition-NDS4AKOZ-ZF435Bcq.js");return{diagram:t}},__vite__mapDeps([39,9,2,10,1,11,12]));return{id:gy,diagram:e}},"loader"),rF={id:gy,detector:tF,loader:eF},iF=rF,my="sankey",nF=g(e=>/^\s*sankey-beta/.test(e),"detector"),aF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./sankeyDiagram-QLVOVGJD-CSLnqTKw.js");return{diagram:t}},__vite__mapDeps([40,9,2,10,1,11,12]));return{id:my,diagram:e}},"loader"),sF={id:my,detector:nF,loader:aF},oF=sF,yy="packet",lF=g(e=>/^\s*packet-beta/.test(e),"detector"),cF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./diagram-VNBRO52H-DXx0iDIJ.js");return{diagram:t}},__vite__mapDeps([41,19,21,9,2,10,1,11,12,5,7,8]));return{id:yy,diagram:e}},"loader"),hF={id:yy,detector:lF,loader:cF},xy="radar",uF=g(e=>/^\s*radar-beta/.test(e),"detector"),fF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./diagram-SSKATNLV-C3O8bk3b.js");return{diagram:t}},__vite__mapDeps([42,19,21,9,2,10,1,11,12,5,7,8]));return{id:xy,diagram:e}},"loader"),dF={id:xy,detector:uF,loader:fF},by="block",pF=g(e=>/^\s*block-beta/.test(e),"detector"),gF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./blockDiagram-JOT3LUYC-l6jPCNSl.js");return{diagram:t}},__vite__mapDeps([43,8,5,4,9,2,10,1,11,12]));return{id:by,diagram:e}},"loader"),mF={id:by,detector:pF,loader:gF},yF=mF,_y="architecture",xF=g(e=>/^\s*architecture/.test(e),"detector"),bF=g(async()=>{const{diagram:e}=await _t(async()=>{const{diagram:t}=await import("./architectureDiagram-IEHRJDOE-DuLLpJMS.js");return{diagram:t}},__vite__mapDeps([44,19,20,21,9,2,10,1,11,12,5,7,8,38]));return{id:_y,diagram:e}},"loader"),_F={id:_y,detector:xF,loader:bF},CF=_F,Gu=!1,qs=g(()=>{Gu||(Gu=!0,Sa("error",WE,e=>e.toLowerCase().trim()==="error"),Sa("---",{db:{clear:g(()=>{},"clear")},styles:{},renderer:{draw:g(()=>{},"draw")},parser:{parse:g(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:g(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),lf(LB,iF,SE,CE,WB,XB,QB,eE,dE,yE,YE,IB,$B,JE,XE,YB,$E,LE,IE,aE,oF,hF,cE,yF,CF,dF))},"addDiagrams"),wF=g(async()=>{R.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(gi).map(async([r,{detector:i,loader:n}])=>{if(n)try{Fo(r)}catch{try{const{diagram:a,id:o}=await n();Sa(o,a,i)}catch(a){throw R.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete gi[r],a}}}))).filter(r=>r.status==="rejected");if(t.length>0){R.error(`Failed to load ${t.length} external diagrams`);for(const r of t)R.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),kF="graphics-document document";function Cy(e,t){e.attr("role",kF),t!==""&&e.attr("aria-roledescription",t)}g(Cy,"setA11yDiagramInfo");function wy(e,t,r,i){if(e.insert!==void 0){if(r){const n=`chart-desc-${i}`;e.attr("aria-describedby",n),e.insert("desc",":first-child").attr("id",n).text(r)}if(t){const n=`chart-title-${i}`;e.attr("aria-labelledby",n),e.insert("title",":first-child").attr("id",n).text(t)}}}g(wy,"addSVGa11yTitleDescription");var Mr,vl=(Mr=class{constructor(t,r,i,n,a){this.type=t,this.text=r,this.db=i,this.parser=n,this.renderer=a}static async fromText(t,r={}){var l,h;const i=he(),n=Ml(t,i);t=UM(t)+` `;try{Fo(n)}catch{const u=Sx(n);if(!u)throw new of(`Diagram ${n} not found.`);const{id:f,diagram:d}=await u();Sa(f,d)}const{db:a,parser:o,renderer:s,init:c}=Fo(n);return o.parser&&(o.parser.yy=a),(l=a.clear)==null||l.call(a),c==null||c(i),r.title&&((h=a.setDiagramTitle)==null||h.call(a,r.title)),await o.parse(t),new Mr(n,t,a,o,s)}async render(t,r){await this.renderer.draw(this.text,t,r,this)}getParser(){return this.parser}getType(){return this.type}},g(Mr,"Diagram"),Mr),Vu=[],vF=g(()=>{Vu.forEach(e=>{e()}),Vu=[]},"attachFunctions"),SF=g(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function ky(e){const t=e.match(sf);if(!t)return{text:e,metadata:{}};let r=v1(t[1],{schema:k1})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};const i={};return r.displayMode&&(i.displayMode=r.displayMode.toString()),r.title&&(i.title=r.title.toString()),r.config&&(i.config=r.config),{text:e.slice(t[0].length),metadata:i}}g(ky,"extractFrontMatter");var TF=g(e=>e.replace(/\r\n?/g,` `).replace(/<(\w+)([^>]*)>/g,(t,r,i)=>"<"+r+i.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),MF=g(e=>{const{text:t,metadata:r}=ky(e),{displayMode:i,title:n,config:a={}}=r;return i&&(a.gantt||(a.gantt={}),a.gantt.displayMode=i),{title:n,config:a,text:t}},"processFrontmatter"),AF=g(e=>{const t=De.detectInit(e)??{},r=De.detectDirective(e,"wrap");return Array.isArray(r)?t.wrap=r.some(({type:i})=>i==="wrap"):(r==null?void 0:r.type)==="wrap"&&(t.wrap=!0),{text:EM(e),directive:t}},"processDirectives");function Ec(e){const t=TF(e),r=MF(t),i=AF(r.text),n=pc(r.config,i.directive);return e=SF(i.text),{code:e,title:r.title,config:n}}g(Ec,"preprocessDiagram");function vy(e){const t=new TextEncoder().encode(e),r=Array.from(t,i=>String.fromCodePoint(i)).join("");return btoa(r)}g(vy,"toBase64");var LF=5e4,BF="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",EF="sandbox",FF="loose",$F="http://www.w3.org/2000/svg",DF="http://www.w3.org/1999/xlink",OF="http://www.w3.org/1999/xhtml",RF="100%",IF="100%",PF="border:0;margin:0;",NF="margin:0",zF="allow-top-navigation-by-user-activation allow-popups",WF='The "iframe" tag is not supported by your browser.',qF=["foreignobject"],HF=["dominant-baseline"];function Fc(e){const t=Ec(e);return ka(),Wx(t.config??{}),t}g(Fc,"processAndSetConfigs");async function Sy(e,t){qs();try{const{code:r,config:i}=Fc(e);return{diagramType:(await My(r)).type,config:i}}catch(r){if(t!=null&&t.suppressErrors)return!1;throw r}}g(Sy,"parse");var Xu=g((e,t,r=[])=>` .${e} ${t} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),UF=g((e,t=new Map)=>{var i;let r="";if(e.themeCSS!==void 0&&(r+=` diff --git a/lightrag/api/webui/assets/mindmap-definition-ALO5MXBD-DGAXVsL1.js b/lightrag/api/webui/assets/mindmap-definition-ALO5MXBD-BQ2T_hsy.js similarity index 99% rename from lightrag/api/webui/assets/mindmap-definition-ALO5MXBD-DGAXVsL1.js rename to lightrag/api/webui/assets/mindmap-definition-ALO5MXBD-BQ2T_hsy.js index fe280647..51598002 100644 --- a/lightrag/api/webui/assets/mindmap-definition-ALO5MXBD-DGAXVsL1.js +++ b/lightrag/api/webui/assets/mindmap-definition-ALO5MXBD-BQ2T_hsy.js @@ -1,4 +1,4 @@ -import{_ as S,l as z,c as ot,K as Nt,a2 as mt,H as it,i as nt,a3 as Dt,a4 as Ot,a5 as At,d as It,ac as Ct,M as Rt}from"./mermaid-vendor-SwnP6Sr8.js";import{c as dt}from"./cytoscape.esm-CfBqOv7Q.js";import{g as xt}from"./react-vendor-DEwriMA6.js";import"./feature-graph-D6-O-kXP.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var tt={exports:{}},et={exports:{}},rt={exports:{}},Mt=rt.exports,ut;function wt(){return ut||(ut=1,function(I,w){(function(D,y){I.exports=y()})(Mt,function(){return function(f){var D={};function y(r){if(D[r])return D[r].exports;var t=D[r]={i:r,l:!1,exports:{}};return f[r].call(t.exports,t,t.exports,y),t.l=!0,t.exports}return y.m=f,y.c=D,y.i=function(r){return r},y.d=function(r,t,e){y.o(r,t)||Object.defineProperty(r,t,{configurable:!1,enumerable:!0,get:e})},y.n=function(r){var t=r&&r.__esModule?function(){return r.default}:function(){return r};return y.d(t,"a",t),t},y.o=function(r,t){return Object.prototype.hasOwnProperty.call(r,t)},y.p="",y(y.s=26)}([function(f,D,y){function r(){}r.QUALITY=1,r.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,r.DEFAULT_INCREMENTAL=!1,r.DEFAULT_ANIMATION_ON_LAYOUT=!0,r.DEFAULT_ANIMATION_DURING_LAYOUT=!1,r.DEFAULT_ANIMATION_PERIOD=50,r.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,r.DEFAULT_GRAPH_MARGIN=15,r.NODE_DIMENSIONS_INCLUDE_LABELS=!1,r.SIMPLE_NODE_SIZE=40,r.SIMPLE_NODE_HALF_SIZE=r.SIMPLE_NODE_SIZE/2,r.EMPTY_COMPOUND_NODE_SIZE=40,r.MIN_EDGE_LENGTH=1,r.WORLD_BOUNDARY=1e6,r.INITIAL_WORLD_BOUNDARY=r.WORLD_BOUNDARY/1e3,r.WORLD_CENTER_X=1200,r.WORLD_CENTER_Y=900,f.exports=r},function(f,D,y){var r=y(2),t=y(8),e=y(9);function i(g,a,v){r.call(this,v),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=v,this.bendpoints=[],this.source=g,this.target=a}i.prototype=Object.create(r.prototype);for(var o in r)i[o]=r[o];i.prototype.getSource=function(){return this.source},i.prototype.getTarget=function(){return this.target},i.prototype.isInterGraph=function(){return this.isInterGraph},i.prototype.getLength=function(){return this.length},i.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},i.prototype.getBendpoints=function(){return this.bendpoints},i.prototype.getLca=function(){return this.lca},i.prototype.getSourceInLca=function(){return this.sourceInLca},i.prototype.getTargetInLca=function(){return this.targetInLca},i.prototype.getOtherEnd=function(g){if(this.source===g)return this.target;if(this.target===g)return this.source;throw"Node is not incident with this edge"},i.prototype.getOtherEndInGraph=function(g,a){for(var v=this.getOtherEnd(g),n=a.getGraphManager().getRoot();;){if(v.getOwner()==a)return v;if(v.getOwner()==n)break;v=v.getOwner().getParent()}return null},i.prototype.updateLength=function(){var g=new Array(4);this.isOverlapingSourceAndTarget=t.getIntersection(this.target.getRect(),this.source.getRect(),g),this.isOverlapingSourceAndTarget||(this.lengthX=g[0]-g[2],this.lengthY=g[1]-g[3],Math.abs(this.lengthX)<1&&(this.lengthX=e.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=e.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},i.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=e.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=e.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},f.exports=i},function(f,D,y){function r(t){this.vGraphObject=t}f.exports=r},function(f,D,y){var r=y(2),t=y(10),e=y(13),i=y(0),o=y(16),g=y(4);function a(n,c,l,E){l==null&&E==null&&(E=c),r.call(this,E),n.graphManager!=null&&(n=n.graphManager),this.estimatedSize=t.MIN_VALUE,this.inclusionTreeDepth=t.MAX_VALUE,this.vGraphObject=E,this.edges=[],this.graphManager=n,l!=null&&c!=null?this.rect=new e(c.x,c.y,l.width,l.height):this.rect=new e}a.prototype=Object.create(r.prototype);for(var v in r)a[v]=r[v];a.prototype.getEdges=function(){return this.edges},a.prototype.getChild=function(){return this.child},a.prototype.getOwner=function(){return this.owner},a.prototype.getWidth=function(){return this.rect.width},a.prototype.setWidth=function(n){this.rect.width=n},a.prototype.getHeight=function(){return this.rect.height},a.prototype.setHeight=function(n){this.rect.height=n},a.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},a.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},a.prototype.getCenter=function(){return new g(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},a.prototype.getLocation=function(){return new g(this.rect.x,this.rect.y)},a.prototype.getRect=function(){return this.rect},a.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},a.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},a.prototype.setRect=function(n,c){this.rect.x=n.x,this.rect.y=n.y,this.rect.width=c.width,this.rect.height=c.height},a.prototype.setCenter=function(n,c){this.rect.x=n-this.rect.width/2,this.rect.y=c-this.rect.height/2},a.prototype.setLocation=function(n,c){this.rect.x=n,this.rect.y=c},a.prototype.moveBy=function(n,c){this.rect.x+=n,this.rect.y+=c},a.prototype.getEdgeListToNode=function(n){var c=[],l=this;return l.edges.forEach(function(E){if(E.target==n){if(E.source!=l)throw"Incorrect edge source!";c.push(E)}}),c},a.prototype.getEdgesBetween=function(n){var c=[],l=this;return l.edges.forEach(function(E){if(!(E.source==l||E.target==l))throw"Incorrect edge source and/or target";(E.target==n||E.source==n)&&c.push(E)}),c},a.prototype.getNeighborsList=function(){var n=new Set,c=this;return c.edges.forEach(function(l){if(l.source==c)n.add(l.target);else{if(l.target!=c)throw"Incorrect incidency!";n.add(l.source)}}),n},a.prototype.withChildren=function(){var n=new Set,c,l;if(n.add(this),this.child!=null)for(var E=this.child.getNodes(),T=0;Tc&&(this.rect.x-=(this.labelWidth-c)/2,this.setWidth(this.labelWidth)),this.labelHeight>l&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-l)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-l),this.setHeight(this.labelHeight))}}},a.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==t.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},a.prototype.transform=function(n){var c=this.rect.x;c>i.WORLD_BOUNDARY?c=i.WORLD_BOUNDARY:c<-i.WORLD_BOUNDARY&&(c=-i.WORLD_BOUNDARY);var l=this.rect.y;l>i.WORLD_BOUNDARY?l=i.WORLD_BOUNDARY:l<-i.WORLD_BOUNDARY&&(l=-i.WORLD_BOUNDARY);var E=new g(c,l),T=n.inverseTransformPoint(E);this.setLocation(T.x,T.y)},a.prototype.getLeft=function(){return this.rect.x},a.prototype.getRight=function(){return this.rect.x+this.rect.width},a.prototype.getTop=function(){return this.rect.y},a.prototype.getBottom=function(){return this.rect.y+this.rect.height},a.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},f.exports=a},function(f,D,y){function r(t,e){t==null&&e==null?(this.x=0,this.y=0):(this.x=t,this.y=e)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.setX=function(t){this.x=t},r.prototype.setY=function(t){this.y=t},r.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},r.prototype.getCopy=function(){return new r(this.x,this.y)},r.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},f.exports=r},function(f,D,y){var r=y(2),t=y(10),e=y(0),i=y(6),o=y(3),g=y(1),a=y(13),v=y(12),n=y(11);function c(E,T,m){r.call(this,m),this.estimatedSize=t.MIN_VALUE,this.margin=e.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=E,T!=null&&T instanceof i?this.graphManager=T:T!=null&&T instanceof Layout&&(this.graphManager=T.graphManager)}c.prototype=Object.create(r.prototype);for(var l in r)c[l]=r[l];c.prototype.getNodes=function(){return this.nodes},c.prototype.getEdges=function(){return this.edges},c.prototype.getGraphManager=function(){return this.graphManager},c.prototype.getParent=function(){return this.parent},c.prototype.getLeft=function(){return this.left},c.prototype.getRight=function(){return this.right},c.prototype.getTop=function(){return this.top},c.prototype.getBottom=function(){return this.bottom},c.prototype.isConnected=function(){return this.isConnected},c.prototype.add=function(E,T,m){if(T==null&&m==null){var L=E;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(L)>-1)throw"Node already in graph!";return L.owner=this,this.getNodes().push(L),L}else{var O=E;if(!(this.getNodes().indexOf(T)>-1&&this.getNodes().indexOf(m)>-1))throw"Source or target not in graph!";if(!(T.owner==m.owner&&T.owner==this))throw"Both owners must be this graph!";return T.owner!=m.owner?null:(O.source=T,O.target=m,O.isInterGraph=!1,this.getEdges().push(O),T.edges.push(O),m!=T&&m.edges.push(O),O)}},c.prototype.remove=function(E){var T=E;if(E instanceof o){if(T==null)throw"Node is null!";if(!(T.owner!=null&&T.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var m=T.edges.slice(),L,O=m.length,d=0;d-1&&h>-1))throw"Source and/or target doesn't know this edge!";L.source.edges.splice(s,1),L.target!=L.source&&L.target.edges.splice(h,1);var N=L.source.owner.getEdges().indexOf(L);if(N==-1)throw"Not in owner's edge list!";L.source.owner.getEdges().splice(N,1)}},c.prototype.updateLeftTop=function(){for(var E=t.MAX_VALUE,T=t.MAX_VALUE,m,L,O,d=this.getNodes(),N=d.length,s=0;sm&&(E=m),T>L&&(T=L)}return E==t.MAX_VALUE?null:(d[0].getParent().paddingLeft!=null?O=d[0].getParent().paddingLeft:O=this.margin,this.left=T-O,this.top=E-O,new v(this.left,this.top))},c.prototype.updateBounds=function(E){for(var T=t.MAX_VALUE,m=-t.MAX_VALUE,L=t.MAX_VALUE,O=-t.MAX_VALUE,d,N,s,h,u,p=this.nodes,A=p.length,C=0;Cd&&(T=d),ms&&(L=s),Od&&(T=d),ms&&(L=s),O=this.nodes.length){var A=0;m.forEach(function(C){C.owner==E&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},f.exports=c},function(f,D,y){var r,t=y(1);function e(i){r=y(5),this.layout=i,this.graphs=[],this.edges=[]}e.prototype.addRoot=function(){var i=this.layout.newGraph(),o=this.layout.newNode(null),g=this.add(i,o);return this.setRootGraph(g),this.rootGraph},e.prototype.add=function(i,o,g,a,v){if(g==null&&a==null&&v==null){if(i==null)throw"Graph is null!";if(o==null)throw"Parent node is null!";if(this.graphs.indexOf(i)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(i),i.parent!=null)throw"Already has a parent!";if(o.child!=null)throw"Already has a child!";return i.parent=o,o.child=i,i}else{v=g,a=o,g=i;var n=a.getOwner(),c=v.getOwner();if(!(n!=null&&n.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(c!=null&&c.getGraphManager()==this))throw"Target not in this graph mgr!";if(n==c)return g.isInterGraph=!1,n.add(g,a,v);if(g.isInterGraph=!0,g.source=a,g.target=v,this.edges.indexOf(g)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(g),!(g.source!=null&&g.target!=null))throw"Edge source and/or target is null!";if(!(g.source.edges.indexOf(g)==-1&&g.target.edges.indexOf(g)==-1))throw"Edge already in source and/or target incidency list!";return g.source.edges.push(g),g.target.edges.push(g),g}},e.prototype.remove=function(i){if(i instanceof r){var o=i;if(o.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(o==this.rootGraph||o.parent!=null&&o.parent.graphManager==this))throw"Invalid parent node!";var g=[];g=g.concat(o.getEdges());for(var a,v=g.length,n=0;n=i.getRight()?o[0]+=Math.min(i.getX()-e.getX(),e.getRight()-i.getRight()):i.getX()<=e.getX()&&i.getRight()>=e.getRight()&&(o[0]+=Math.min(e.getX()-i.getX(),i.getRight()-e.getRight())),e.getY()<=i.getY()&&e.getBottom()>=i.getBottom()?o[1]+=Math.min(i.getY()-e.getY(),e.getBottom()-i.getBottom()):i.getY()<=e.getY()&&i.getBottom()>=e.getBottom()&&(o[1]+=Math.min(e.getY()-i.getY(),i.getBottom()-e.getBottom()));var v=Math.abs((i.getCenterY()-e.getCenterY())/(i.getCenterX()-e.getCenterX()));i.getCenterY()===e.getCenterY()&&i.getCenterX()===e.getCenterX()&&(v=1);var n=v*o[0],c=o[1]/v;o[0]n)return o[0]=g,o[1]=l,o[2]=v,o[3]=p,!1;if(av)return o[0]=c,o[1]=a,o[2]=h,o[3]=n,!1;if(gv?(o[0]=T,o[1]=m,x=!0):(o[0]=E,o[1]=l,x=!0):U===M&&(g>v?(o[0]=c,o[1]=l,x=!0):(o[0]=L,o[1]=m,x=!0)),-X===M?v>g?(o[2]=u,o[3]=p,_=!0):(o[2]=h,o[3]=s,_=!0):X===M&&(v>g?(o[2]=N,o[3]=s,_=!0):(o[2]=A,o[3]=p,_=!0)),x&&_)return!1;if(g>v?a>n?(G=this.getCardinalDirection(U,M,4),F=this.getCardinalDirection(X,M,2)):(G=this.getCardinalDirection(-U,M,3),F=this.getCardinalDirection(-X,M,1)):a>n?(G=this.getCardinalDirection(-U,M,1),F=this.getCardinalDirection(-X,M,3)):(G=this.getCardinalDirection(U,M,2),F=this.getCardinalDirection(X,M,4)),!x)switch(G){case 1:Y=l,b=g+-d/M,o[0]=b,o[1]=Y;break;case 2:b=L,Y=a+O*M,o[0]=b,o[1]=Y;break;case 3:Y=m,b=g+d/M,o[0]=b,o[1]=Y;break;case 4:b=T,Y=a+-O*M,o[0]=b,o[1]=Y;break}if(!_)switch(F){case 1:H=s,k=v+-R/M,o[2]=k,o[3]=H;break;case 2:k=A,H=n+C*M,o[2]=k,o[3]=H;break;case 3:H=p,k=v+R/M,o[2]=k,o[3]=H;break;case 4:k=u,H=n+-C*M,o[2]=k,o[3]=H;break}}return!1},t.getCardinalDirection=function(e,i,o){return e>i?o:1+o%4},t.getIntersection=function(e,i,o,g){if(g==null)return this.getIntersection2(e,i,o);var a=e.x,v=e.y,n=i.x,c=i.y,l=o.x,E=o.y,T=g.x,m=g.y,L=void 0,O=void 0,d=void 0,N=void 0,s=void 0,h=void 0,u=void 0,p=void 0,A=void 0;return d=c-v,s=a-n,u=n*v-a*c,N=m-E,h=l-T,p=T*E-l*m,A=d*h-N*s,A===0?null:(L=(s*p-h*u)/A,O=(N*u-d*p)/A,new r(L,O))},t.angleOfVector=function(e,i,o,g){var a=void 0;return e!==o?(a=Math.atan((g-i)/(o-e)),o0?1:t<0?-1:0},r.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)},r.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)},f.exports=r},function(f,D,y){function r(){}r.MAX_VALUE=2147483647,r.MIN_VALUE=-2147483648,f.exports=r},function(f,D,y){var r=function(){function a(v,n){for(var c=0;c"u"?"undefined":r(e);return e==null||i!="object"&&i!="function"},f.exports=t},function(f,D,y){function r(l){if(Array.isArray(l)){for(var E=0,T=Array(l.length);E0&&E;){for(d.push(s[0]);d.length>0&&E;){var h=d[0];d.splice(0,1),O.add(h);for(var u=h.getEdges(),L=0;L-1&&s.splice(R,1)}O=new Set,N=new Map}}return l},c.prototype.createDummyNodesForBendpoints=function(l){for(var E=[],T=l.source,m=this.graphManager.calcLowestCommonAncestor(l.source,l.target),L=0;L0){for(var m=this.edgeToDummyNodes.get(T),L=0;L=0&&E.splice(p,1);var A=N.getNeighborsList();A.forEach(function(x){if(T.indexOf(x)<0){var _=m.get(x),U=_-1;U==1&&h.push(x),m.set(x,U)}})}T=T.concat(h),(E.length==1||E.length==2)&&(L=!0,O=E[0])}return O},c.prototype.setGraphManager=function(l){this.graphManager=l},f.exports=c},function(f,D,y){function r(){}r.seed=1,r.x=0,r.nextDouble=function(){return r.x=Math.sin(r.seed++)*1e4,r.x-Math.floor(r.x)},f.exports=r},function(f,D,y){var r=y(4);function t(e,i){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}t.prototype.getWorldOrgX=function(){return this.lworldOrgX},t.prototype.setWorldOrgX=function(e){this.lworldOrgX=e},t.prototype.getWorldOrgY=function(){return this.lworldOrgY},t.prototype.setWorldOrgY=function(e){this.lworldOrgY=e},t.prototype.getWorldExtX=function(){return this.lworldExtX},t.prototype.setWorldExtX=function(e){this.lworldExtX=e},t.prototype.getWorldExtY=function(){return this.lworldExtY},t.prototype.setWorldExtY=function(e){this.lworldExtY=e},t.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},t.prototype.setDeviceOrgX=function(e){this.ldeviceOrgX=e},t.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},t.prototype.setDeviceOrgY=function(e){this.ldeviceOrgY=e},t.prototype.getDeviceExtX=function(){return this.ldeviceExtX},t.prototype.setDeviceExtX=function(e){this.ldeviceExtX=e},t.prototype.getDeviceExtY=function(){return this.ldeviceExtY},t.prototype.setDeviceExtY=function(e){this.ldeviceExtY=e},t.prototype.transformX=function(e){var i=0,o=this.lworldExtX;return o!=0&&(i=this.ldeviceOrgX+(e-this.lworldOrgX)*this.ldeviceExtX/o),i},t.prototype.transformY=function(e){var i=0,o=this.lworldExtY;return o!=0&&(i=this.ldeviceOrgY+(e-this.lworldOrgY)*this.ldeviceExtY/o),i},t.prototype.inverseTransformX=function(e){var i=0,o=this.ldeviceExtX;return o!=0&&(i=this.lworldOrgX+(e-this.ldeviceOrgX)*this.lworldExtX/o),i},t.prototype.inverseTransformY=function(e){var i=0,o=this.ldeviceExtY;return o!=0&&(i=this.lworldOrgY+(e-this.ldeviceOrgY)*this.lworldExtY/o),i},t.prototype.inverseTransformPoint=function(e){var i=new r(this.inverseTransformX(e.x),this.inverseTransformY(e.y));return i},f.exports=t},function(f,D,y){function r(n){if(Array.isArray(n)){for(var c=0,l=Array(n.length);ce.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*e.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(n-e.ADAPTATION_LOWER_NODE_LIMIT)/(e.ADAPTATION_UPPER_NODE_LIMIT-e.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-e.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=e.MAX_NODE_DISPLACEMENT_INCREMENTAL):(n>e.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(e.COOLING_ADAPTATION_FACTOR,1-(n-e.ADAPTATION_LOWER_NODE_LIMIT)/(e.ADAPTATION_UPPER_NODE_LIMIT-e.ADAPTATION_LOWER_NODE_LIMIT)*(1-e.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=e.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},a.prototype.calcSpringForces=function(){for(var n=this.getAllEdges(),c,l=0;l0&&arguments[0]!==void 0?arguments[0]:!0,c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,l,E,T,m,L=this.getAllNodes(),O;if(this.useFRGridVariant)for(this.totalIterations%e.GRID_CALCULATION_CHECK_PERIOD==1&&n&&this.updateGrid(),O=new Set,l=0;ld||O>d)&&(n.gravitationForceX=-this.gravityConstant*T,n.gravitationForceY=-this.gravityConstant*m)):(d=c.getEstimatedSize()*this.compoundGravityRangeFactor,(L>d||O>d)&&(n.gravitationForceX=-this.gravityConstant*T*this.compoundGravityConstant,n.gravitationForceY=-this.gravityConstant*m*this.compoundGravityConstant))},a.prototype.isConverged=function(){var n,c=!1;return this.totalIterations>this.maxIterations/3&&(c=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),n=this.totalDisplacement=L.length||d>=L[0].length)){for(var N=0;Na}}]),o}();f.exports=i},function(f,D,y){var r=function(){function i(o,g){for(var a=0;a2&&arguments[2]!==void 0?arguments[2]:1,v=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;t(this,i),this.sequence1=o,this.sequence2=g,this.match_score=a,this.mismatch_penalty=v,this.gap_penalty=n,this.iMax=o.length+1,this.jMax=g.length+1,this.grid=new Array(this.iMax);for(var c=0;c=0;o--){var g=this.listeners[o];g.event===e&&g.callback===i&&this.listeners.splice(o,1)}},t.emit=function(e,i){for(var o=0;og.coolingFactor*g.maxNodeDisplacement&&(this.displacementX=g.coolingFactor*g.maxNodeDisplacement*e.sign(this.displacementX)),Math.abs(this.displacementY)>g.coolingFactor*g.maxNodeDisplacement&&(this.displacementY=g.coolingFactor*g.maxNodeDisplacement*e.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),g.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},i.prototype.propogateDisplacementToChildren=function(g,a){for(var v=this.getChild().getNodes(),n,c=0;c0)this.positionNodesRadially(s);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var h=new Set(this.getAllNodes()),u=this.nodesWithGravity.filter(function(p){return h.has(p)});this.graphManager.setAllNodesToApplyGravitation(u),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},d.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%v.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var s=new Set(this.getAllNodes()),h=this.nodesWithGravity.filter(function(A){return s.has(A)});this.graphManager.setAllNodesToApplyGravitation(h),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=v.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=v.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var u=!this.isTreeGrowing&&!this.isGrowthFinished,p=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(u,p),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},d.prototype.getPositionsData=function(){for(var s=this.graphManager.getAllNodes(),h={},u=0;u1){var x;for(x=0;xp&&(p=Math.floor(R.y)),C=Math.floor(R.x+a.DEFAULT_COMPONENT_SEPERATION)}this.transform(new l(n.WORLD_CENTER_X-R.x/2,n.WORLD_CENTER_Y-R.y/2))},d.radialLayout=function(s,h,u){var p=Math.max(this.maxDiagonalInTree(s),a.DEFAULT_RADIAL_SEPARATION);d.branchRadialLayout(h,null,0,359,0,p);var A=L.calculateBounds(s),C=new O;C.setDeviceOrgX(A.getMinX()),C.setDeviceOrgY(A.getMinY()),C.setWorldOrgX(u.x),C.setWorldOrgY(u.y);for(var R=0;R1;){var H=k[0];k.splice(0,1);var P=M.indexOf(H);P>=0&&M.splice(P,1),b--,G--}h!=null?Y=(M.indexOf(k[0])+1)%b:Y=0;for(var B=Math.abs(p-u)/G,$=Y;F!=G;$=++$%b){var K=M[$].getOtherEnd(s);if(K!=h){var Q=(u+F*B)%360,q=(Q+B)%360;d.branchRadialLayout(K,s,Q,q,A+C,C),F++}}},d.maxDiagonalInTree=function(s){for(var h=T.MIN_VALUE,u=0;uh&&(h=A)}return h},d.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},d.prototype.groupZeroDegreeMembers=function(){var s=this,h={};this.memberGroups={},this.idToDummyNode={};for(var u=[],p=this.graphManager.getAllNodes(),A=0;A"u"&&(h[x]=[]),h[x]=h[x].concat(C)}Object.keys(h).forEach(function(_){if(h[_].length>1){var U="DummyCompound_"+_;s.memberGroups[U]=h[_];var X=h[_][0].getParent(),M=new o(s.graphManager);M.id=U,M.paddingLeft=X.paddingLeft||0,M.paddingRight=X.paddingRight||0,M.paddingBottom=X.paddingBottom||0,M.paddingTop=X.paddingTop||0,s.idToDummyNode[U]=M;var G=s.getGraphManager().add(s.newGraph(),M),F=X.getChild();F.add(M);for(var b=0;b=0;s--){var h=this.compoundOrder[s],u=h.id,p=h.paddingLeft,A=h.paddingTop;this.adjustLocations(this.tiledMemberPack[u],h.rect.x,h.rect.y,p,A)}},d.prototype.repopulateZeroDegreeMembers=function(){var s=this,h=this.tiledZeroDegreePack;Object.keys(h).forEach(function(u){var p=s.idToDummyNode[u],A=p.paddingLeft,C=p.paddingTop;s.adjustLocations(h[u],p.rect.x,p.rect.y,A,C)})},d.prototype.getToBeTiled=function(s){var h=s.id;if(this.toBeTiled[h]!=null)return this.toBeTiled[h];var u=s.getChild();if(u==null)return this.toBeTiled[h]=!1,!1;for(var p=u.getNodes(),A=0;A0)return this.toBeTiled[h]=!1,!1;if(C.getChild()==null){this.toBeTiled[C.id]=!1;continue}if(!this.getToBeTiled(C))return this.toBeTiled[h]=!1,!1}return this.toBeTiled[h]=!0,!0},d.prototype.getNodeDegree=function(s){s.id;for(var h=s.getEdges(),u=0,p=0;p_&&(_=X.rect.height)}u+=_+s.verticalPadding}},d.prototype.tileCompoundMembers=function(s,h){var u=this;this.tiledMemberPack=[],Object.keys(s).forEach(function(p){var A=h[p];u.tiledMemberPack[p]=u.tileNodes(s[p],A.paddingLeft+A.paddingRight),A.rect.width=u.tiledMemberPack[p].width,A.rect.height=u.tiledMemberPack[p].height})},d.prototype.tileNodes=function(s,h){var u=a.TILING_PADDING_VERTICAL,p=a.TILING_PADDING_HORIZONTAL,A={rows:[],rowWidth:[],rowHeight:[],width:0,height:h,verticalPadding:u,horizontalPadding:p};s.sort(function(x,_){return x.rect.width*x.rect.height>_.rect.width*_.rect.height?-1:x.rect.width*x.rect.height<_.rect.width*_.rect.height?1:0});for(var C=0;C0&&(R+=s.horizontalPadding),s.rowWidth[u]=R,s.width0&&(x+=s.verticalPadding);var _=0;x>s.rowHeight[u]&&(_=s.rowHeight[u],s.rowHeight[u]=x,_=s.rowHeight[u]-_),s.height+=_,s.rows[u].push(h)},d.prototype.getShortestRowIndex=function(s){for(var h=-1,u=Number.MAX_VALUE,p=0;pu&&(h=p,u=s.rowWidth[p]);return h},d.prototype.canAddHorizontal=function(s,h,u){var p=this.getShortestRowIndex(s);if(p<0)return!0;var A=s.rowWidth[p];if(A+s.horizontalPadding+h<=s.width)return!0;var C=0;s.rowHeight[p]0&&(C=u+s.verticalPadding-s.rowHeight[p]);var R;s.width-A>=h+s.horizontalPadding?R=(s.height+C)/(A+h+s.horizontalPadding):R=(s.height+C)/s.width,C=u+s.verticalPadding;var x;return s.widthC&&h!=u){p.splice(-1,1),s.rows[u].push(A),s.rowWidth[h]=s.rowWidth[h]-C,s.rowWidth[u]=s.rowWidth[u]+C,s.width=s.rowWidth[instance.getLongestRowIndex(s)];for(var R=Number.MIN_VALUE,x=0;xR&&(R=p[x].height);h>0&&(R+=s.verticalPadding);var _=s.rowHeight[h]+s.rowHeight[u];s.rowHeight[h]=R,s.rowHeight[u]0)for(var F=A;F<=C;F++)G[0]+=this.grid[F][R-1].length+this.grid[F][R].length-1;if(C0)for(var F=R;F<=x;F++)G[3]+=this.grid[A-1][F].length+this.grid[A][F].length-1;for(var b=T.MAX_VALUE,Y,k,H=0;H0){var x;x=O.getGraphManager().add(O.newGraph(),u),this.processChildrenList(x,h,O)}}},l.prototype.stop=function(){return this.stopped=!0,this};var T=function(L){L("layout","cose-bilkent",l)};typeof cytoscape<"u"&&T(cytoscape),D.exports=T}])})}(tt)),tt.exports}var bt=Ft();const Ut=xt(bt);var at=function(){var I=S(function(O,d,N,s){for(N=N||{},s=O.length;s--;N[O[s]]=d);return N},"o"),w=[1,4],f=[1,13],D=[1,12],y=[1,15],r=[1,16],t=[1,20],e=[1,19],i=[6,7,8],o=[1,26],g=[1,24],a=[1,25],v=[6,7,11],n=[1,6,13,15,16,19,22],c=[1,33],l=[1,34],E=[1,6,7,11,13,15,16,19,22],T={trace:S(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:S(function(d,N,s,h,u,p,A){var C=p.length-1;switch(u){case 6:case 7:return h;case 8:h.getLogger().trace("Stop NL ");break;case 9:h.getLogger().trace("Stop EOF ");break;case 11:h.getLogger().trace("Stop NL2 ");break;case 12:h.getLogger().trace("Stop EOF2 ");break;case 15:h.getLogger().info("Node: ",p[C].id),h.addNode(p[C-1].length,p[C].id,p[C].descr,p[C].type);break;case 16:h.getLogger().trace("Icon: ",p[C]),h.decorateNode({icon:p[C]});break;case 17:case 21:h.decorateNode({class:p[C]});break;case 18:h.getLogger().trace("SPACELIST");break;case 19:h.getLogger().trace("Node: ",p[C].id),h.addNode(0,p[C].id,p[C].descr,p[C].type);break;case 20:h.decorateNode({icon:p[C]});break;case 25:h.getLogger().trace("node found ..",p[C-2]),this.$={id:p[C-1],descr:p[C-1],type:h.getType(p[C-2],p[C])};break;case 26:this.$={id:p[C],descr:p[C],type:h.nodeType.DEFAULT};break;case 27:h.getLogger().trace("node found ..",p[C-3]),this.$={id:p[C-3],descr:p[C-1],type:h.getType(p[C-2],p[C])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:w},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:w},{6:f,7:[1,10],9:9,12:11,13:D,14:14,15:y,16:r,17:17,18:18,19:t,22:e},I(i,[2,3]),{1:[2,2]},I(i,[2,4]),I(i,[2,5]),{1:[2,6],6:f,12:21,13:D,14:14,15:y,16:r,17:17,18:18,19:t,22:e},{6:f,9:22,12:11,13:D,14:14,15:y,16:r,17:17,18:18,19:t,22:e},{6:o,7:g,10:23,11:a},I(v,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:t,22:e}),I(v,[2,18]),I(v,[2,19]),I(v,[2,20]),I(v,[2,21]),I(v,[2,23]),I(v,[2,24]),I(v,[2,26],{19:[1,30]}),{20:[1,31]},{6:o,7:g,10:32,11:a},{1:[2,7],6:f,12:21,13:D,14:14,15:y,16:r,17:17,18:18,19:t,22:e},I(n,[2,14],{7:c,11:l}),I(E,[2,8]),I(E,[2,9]),I(E,[2,10]),I(v,[2,15]),I(v,[2,16]),I(v,[2,17]),{20:[1,35]},{21:[1,36]},I(n,[2,13],{7:c,11:l}),I(E,[2,11]),I(E,[2,12]),{21:[1,37]},I(v,[2,25]),I(v,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:S(function(d,N){if(N.recoverable)this.trace(d);else{var s=new Error(d);throw s.hash=N,s}},"parseError"),parse:S(function(d){var N=this,s=[0],h=[],u=[null],p=[],A=this.table,C="",R=0,x=0,_=2,U=1,X=p.slice.call(arguments,1),M=Object.create(this.lexer),G={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(G.yy[F]=this.yy[F]);M.setInput(d,G.yy),G.yy.lexer=M,G.yy.parser=this,typeof M.yylloc>"u"&&(M.yylloc={});var b=M.yylloc;p.push(b);var Y=M.options&&M.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function k(V){s.length=s.length-2*V,u.length=u.length-V,p.length=p.length-V}S(k,"popStack");function H(){var V;return V=h.pop()||M.lex()||U,typeof V!="number"&&(V instanceof Array&&(h=V,V=h.pop()),V=N.symbols_[V]||V),V}S(H,"lex");for(var P,B,$,K,Q={},q,j,gt,J;;){if(B=s[s.length-1],this.defaultActions[B]?$=this.defaultActions[B]:((P===null||typeof P>"u")&&(P=H()),$=A[B]&&A[B][P]),typeof $>"u"||!$.length||!$[0]){var st="";J=[];for(q in A[B])this.terminals_[q]&&q>_&&J.push("'"+this.terminals_[q]+"'");M.showPosition?st="Parse error on line "+(R+1)+`: +import{_ as S,l as z,c as ot,K as Nt,a2 as mt,H as it,i as nt,a3 as Dt,a4 as Ot,a5 as At,d as It,ac as Ct,M as Rt}from"./mermaid-vendor-d7rbry5E.js";import{c as dt}from"./cytoscape.esm-CfBqOv7Q.js";import{g as xt}from"./react-vendor-DEwriMA6.js";import"./feature-graph-DbHHHM9y.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var tt={exports:{}},et={exports:{}},rt={exports:{}},Mt=rt.exports,ut;function wt(){return ut||(ut=1,function(I,w){(function(D,y){I.exports=y()})(Mt,function(){return function(f){var D={};function y(r){if(D[r])return D[r].exports;var t=D[r]={i:r,l:!1,exports:{}};return f[r].call(t.exports,t,t.exports,y),t.l=!0,t.exports}return y.m=f,y.c=D,y.i=function(r){return r},y.d=function(r,t,e){y.o(r,t)||Object.defineProperty(r,t,{configurable:!1,enumerable:!0,get:e})},y.n=function(r){var t=r&&r.__esModule?function(){return r.default}:function(){return r};return y.d(t,"a",t),t},y.o=function(r,t){return Object.prototype.hasOwnProperty.call(r,t)},y.p="",y(y.s=26)}([function(f,D,y){function r(){}r.QUALITY=1,r.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,r.DEFAULT_INCREMENTAL=!1,r.DEFAULT_ANIMATION_ON_LAYOUT=!0,r.DEFAULT_ANIMATION_DURING_LAYOUT=!1,r.DEFAULT_ANIMATION_PERIOD=50,r.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,r.DEFAULT_GRAPH_MARGIN=15,r.NODE_DIMENSIONS_INCLUDE_LABELS=!1,r.SIMPLE_NODE_SIZE=40,r.SIMPLE_NODE_HALF_SIZE=r.SIMPLE_NODE_SIZE/2,r.EMPTY_COMPOUND_NODE_SIZE=40,r.MIN_EDGE_LENGTH=1,r.WORLD_BOUNDARY=1e6,r.INITIAL_WORLD_BOUNDARY=r.WORLD_BOUNDARY/1e3,r.WORLD_CENTER_X=1200,r.WORLD_CENTER_Y=900,f.exports=r},function(f,D,y){var r=y(2),t=y(8),e=y(9);function i(g,a,v){r.call(this,v),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=v,this.bendpoints=[],this.source=g,this.target=a}i.prototype=Object.create(r.prototype);for(var o in r)i[o]=r[o];i.prototype.getSource=function(){return this.source},i.prototype.getTarget=function(){return this.target},i.prototype.isInterGraph=function(){return this.isInterGraph},i.prototype.getLength=function(){return this.length},i.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},i.prototype.getBendpoints=function(){return this.bendpoints},i.prototype.getLca=function(){return this.lca},i.prototype.getSourceInLca=function(){return this.sourceInLca},i.prototype.getTargetInLca=function(){return this.targetInLca},i.prototype.getOtherEnd=function(g){if(this.source===g)return this.target;if(this.target===g)return this.source;throw"Node is not incident with this edge"},i.prototype.getOtherEndInGraph=function(g,a){for(var v=this.getOtherEnd(g),n=a.getGraphManager().getRoot();;){if(v.getOwner()==a)return v;if(v.getOwner()==n)break;v=v.getOwner().getParent()}return null},i.prototype.updateLength=function(){var g=new Array(4);this.isOverlapingSourceAndTarget=t.getIntersection(this.target.getRect(),this.source.getRect(),g),this.isOverlapingSourceAndTarget||(this.lengthX=g[0]-g[2],this.lengthY=g[1]-g[3],Math.abs(this.lengthX)<1&&(this.lengthX=e.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=e.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},i.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=e.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=e.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},f.exports=i},function(f,D,y){function r(t){this.vGraphObject=t}f.exports=r},function(f,D,y){var r=y(2),t=y(10),e=y(13),i=y(0),o=y(16),g=y(4);function a(n,c,l,E){l==null&&E==null&&(E=c),r.call(this,E),n.graphManager!=null&&(n=n.graphManager),this.estimatedSize=t.MIN_VALUE,this.inclusionTreeDepth=t.MAX_VALUE,this.vGraphObject=E,this.edges=[],this.graphManager=n,l!=null&&c!=null?this.rect=new e(c.x,c.y,l.width,l.height):this.rect=new e}a.prototype=Object.create(r.prototype);for(var v in r)a[v]=r[v];a.prototype.getEdges=function(){return this.edges},a.prototype.getChild=function(){return this.child},a.prototype.getOwner=function(){return this.owner},a.prototype.getWidth=function(){return this.rect.width},a.prototype.setWidth=function(n){this.rect.width=n},a.prototype.getHeight=function(){return this.rect.height},a.prototype.setHeight=function(n){this.rect.height=n},a.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},a.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},a.prototype.getCenter=function(){return new g(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},a.prototype.getLocation=function(){return new g(this.rect.x,this.rect.y)},a.prototype.getRect=function(){return this.rect},a.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},a.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},a.prototype.setRect=function(n,c){this.rect.x=n.x,this.rect.y=n.y,this.rect.width=c.width,this.rect.height=c.height},a.prototype.setCenter=function(n,c){this.rect.x=n-this.rect.width/2,this.rect.y=c-this.rect.height/2},a.prototype.setLocation=function(n,c){this.rect.x=n,this.rect.y=c},a.prototype.moveBy=function(n,c){this.rect.x+=n,this.rect.y+=c},a.prototype.getEdgeListToNode=function(n){var c=[],l=this;return l.edges.forEach(function(E){if(E.target==n){if(E.source!=l)throw"Incorrect edge source!";c.push(E)}}),c},a.prototype.getEdgesBetween=function(n){var c=[],l=this;return l.edges.forEach(function(E){if(!(E.source==l||E.target==l))throw"Incorrect edge source and/or target";(E.target==n||E.source==n)&&c.push(E)}),c},a.prototype.getNeighborsList=function(){var n=new Set,c=this;return c.edges.forEach(function(l){if(l.source==c)n.add(l.target);else{if(l.target!=c)throw"Incorrect incidency!";n.add(l.source)}}),n},a.prototype.withChildren=function(){var n=new Set,c,l;if(n.add(this),this.child!=null)for(var E=this.child.getNodes(),T=0;Tc&&(this.rect.x-=(this.labelWidth-c)/2,this.setWidth(this.labelWidth)),this.labelHeight>l&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-l)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-l),this.setHeight(this.labelHeight))}}},a.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==t.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},a.prototype.transform=function(n){var c=this.rect.x;c>i.WORLD_BOUNDARY?c=i.WORLD_BOUNDARY:c<-i.WORLD_BOUNDARY&&(c=-i.WORLD_BOUNDARY);var l=this.rect.y;l>i.WORLD_BOUNDARY?l=i.WORLD_BOUNDARY:l<-i.WORLD_BOUNDARY&&(l=-i.WORLD_BOUNDARY);var E=new g(c,l),T=n.inverseTransformPoint(E);this.setLocation(T.x,T.y)},a.prototype.getLeft=function(){return this.rect.x},a.prototype.getRight=function(){return this.rect.x+this.rect.width},a.prototype.getTop=function(){return this.rect.y},a.prototype.getBottom=function(){return this.rect.y+this.rect.height},a.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},f.exports=a},function(f,D,y){function r(t,e){t==null&&e==null?(this.x=0,this.y=0):(this.x=t,this.y=e)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.setX=function(t){this.x=t},r.prototype.setY=function(t){this.y=t},r.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},r.prototype.getCopy=function(){return new r(this.x,this.y)},r.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},f.exports=r},function(f,D,y){var r=y(2),t=y(10),e=y(0),i=y(6),o=y(3),g=y(1),a=y(13),v=y(12),n=y(11);function c(E,T,m){r.call(this,m),this.estimatedSize=t.MIN_VALUE,this.margin=e.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=E,T!=null&&T instanceof i?this.graphManager=T:T!=null&&T instanceof Layout&&(this.graphManager=T.graphManager)}c.prototype=Object.create(r.prototype);for(var l in r)c[l]=r[l];c.prototype.getNodes=function(){return this.nodes},c.prototype.getEdges=function(){return this.edges},c.prototype.getGraphManager=function(){return this.graphManager},c.prototype.getParent=function(){return this.parent},c.prototype.getLeft=function(){return this.left},c.prototype.getRight=function(){return this.right},c.prototype.getTop=function(){return this.top},c.prototype.getBottom=function(){return this.bottom},c.prototype.isConnected=function(){return this.isConnected},c.prototype.add=function(E,T,m){if(T==null&&m==null){var L=E;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(L)>-1)throw"Node already in graph!";return L.owner=this,this.getNodes().push(L),L}else{var O=E;if(!(this.getNodes().indexOf(T)>-1&&this.getNodes().indexOf(m)>-1))throw"Source or target not in graph!";if(!(T.owner==m.owner&&T.owner==this))throw"Both owners must be this graph!";return T.owner!=m.owner?null:(O.source=T,O.target=m,O.isInterGraph=!1,this.getEdges().push(O),T.edges.push(O),m!=T&&m.edges.push(O),O)}},c.prototype.remove=function(E){var T=E;if(E instanceof o){if(T==null)throw"Node is null!";if(!(T.owner!=null&&T.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var m=T.edges.slice(),L,O=m.length,d=0;d-1&&h>-1))throw"Source and/or target doesn't know this edge!";L.source.edges.splice(s,1),L.target!=L.source&&L.target.edges.splice(h,1);var N=L.source.owner.getEdges().indexOf(L);if(N==-1)throw"Not in owner's edge list!";L.source.owner.getEdges().splice(N,1)}},c.prototype.updateLeftTop=function(){for(var E=t.MAX_VALUE,T=t.MAX_VALUE,m,L,O,d=this.getNodes(),N=d.length,s=0;sm&&(E=m),T>L&&(T=L)}return E==t.MAX_VALUE?null:(d[0].getParent().paddingLeft!=null?O=d[0].getParent().paddingLeft:O=this.margin,this.left=T-O,this.top=E-O,new v(this.left,this.top))},c.prototype.updateBounds=function(E){for(var T=t.MAX_VALUE,m=-t.MAX_VALUE,L=t.MAX_VALUE,O=-t.MAX_VALUE,d,N,s,h,u,p=this.nodes,A=p.length,C=0;Cd&&(T=d),ms&&(L=s),Od&&(T=d),ms&&(L=s),O=this.nodes.length){var A=0;m.forEach(function(C){C.owner==E&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},f.exports=c},function(f,D,y){var r,t=y(1);function e(i){r=y(5),this.layout=i,this.graphs=[],this.edges=[]}e.prototype.addRoot=function(){var i=this.layout.newGraph(),o=this.layout.newNode(null),g=this.add(i,o);return this.setRootGraph(g),this.rootGraph},e.prototype.add=function(i,o,g,a,v){if(g==null&&a==null&&v==null){if(i==null)throw"Graph is null!";if(o==null)throw"Parent node is null!";if(this.graphs.indexOf(i)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(i),i.parent!=null)throw"Already has a parent!";if(o.child!=null)throw"Already has a child!";return i.parent=o,o.child=i,i}else{v=g,a=o,g=i;var n=a.getOwner(),c=v.getOwner();if(!(n!=null&&n.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(c!=null&&c.getGraphManager()==this))throw"Target not in this graph mgr!";if(n==c)return g.isInterGraph=!1,n.add(g,a,v);if(g.isInterGraph=!0,g.source=a,g.target=v,this.edges.indexOf(g)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(g),!(g.source!=null&&g.target!=null))throw"Edge source and/or target is null!";if(!(g.source.edges.indexOf(g)==-1&&g.target.edges.indexOf(g)==-1))throw"Edge already in source and/or target incidency list!";return g.source.edges.push(g),g.target.edges.push(g),g}},e.prototype.remove=function(i){if(i instanceof r){var o=i;if(o.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(o==this.rootGraph||o.parent!=null&&o.parent.graphManager==this))throw"Invalid parent node!";var g=[];g=g.concat(o.getEdges());for(var a,v=g.length,n=0;n=i.getRight()?o[0]+=Math.min(i.getX()-e.getX(),e.getRight()-i.getRight()):i.getX()<=e.getX()&&i.getRight()>=e.getRight()&&(o[0]+=Math.min(e.getX()-i.getX(),i.getRight()-e.getRight())),e.getY()<=i.getY()&&e.getBottom()>=i.getBottom()?o[1]+=Math.min(i.getY()-e.getY(),e.getBottom()-i.getBottom()):i.getY()<=e.getY()&&i.getBottom()>=e.getBottom()&&(o[1]+=Math.min(e.getY()-i.getY(),i.getBottom()-e.getBottom()));var v=Math.abs((i.getCenterY()-e.getCenterY())/(i.getCenterX()-e.getCenterX()));i.getCenterY()===e.getCenterY()&&i.getCenterX()===e.getCenterX()&&(v=1);var n=v*o[0],c=o[1]/v;o[0]n)return o[0]=g,o[1]=l,o[2]=v,o[3]=p,!1;if(av)return o[0]=c,o[1]=a,o[2]=h,o[3]=n,!1;if(gv?(o[0]=T,o[1]=m,x=!0):(o[0]=E,o[1]=l,x=!0):U===M&&(g>v?(o[0]=c,o[1]=l,x=!0):(o[0]=L,o[1]=m,x=!0)),-X===M?v>g?(o[2]=u,o[3]=p,_=!0):(o[2]=h,o[3]=s,_=!0):X===M&&(v>g?(o[2]=N,o[3]=s,_=!0):(o[2]=A,o[3]=p,_=!0)),x&&_)return!1;if(g>v?a>n?(G=this.getCardinalDirection(U,M,4),F=this.getCardinalDirection(X,M,2)):(G=this.getCardinalDirection(-U,M,3),F=this.getCardinalDirection(-X,M,1)):a>n?(G=this.getCardinalDirection(-U,M,1),F=this.getCardinalDirection(-X,M,3)):(G=this.getCardinalDirection(U,M,2),F=this.getCardinalDirection(X,M,4)),!x)switch(G){case 1:Y=l,b=g+-d/M,o[0]=b,o[1]=Y;break;case 2:b=L,Y=a+O*M,o[0]=b,o[1]=Y;break;case 3:Y=m,b=g+d/M,o[0]=b,o[1]=Y;break;case 4:b=T,Y=a+-O*M,o[0]=b,o[1]=Y;break}if(!_)switch(F){case 1:H=s,k=v+-R/M,o[2]=k,o[3]=H;break;case 2:k=A,H=n+C*M,o[2]=k,o[3]=H;break;case 3:H=p,k=v+R/M,o[2]=k,o[3]=H;break;case 4:k=u,H=n+-C*M,o[2]=k,o[3]=H;break}}return!1},t.getCardinalDirection=function(e,i,o){return e>i?o:1+o%4},t.getIntersection=function(e,i,o,g){if(g==null)return this.getIntersection2(e,i,o);var a=e.x,v=e.y,n=i.x,c=i.y,l=o.x,E=o.y,T=g.x,m=g.y,L=void 0,O=void 0,d=void 0,N=void 0,s=void 0,h=void 0,u=void 0,p=void 0,A=void 0;return d=c-v,s=a-n,u=n*v-a*c,N=m-E,h=l-T,p=T*E-l*m,A=d*h-N*s,A===0?null:(L=(s*p-h*u)/A,O=(N*u-d*p)/A,new r(L,O))},t.angleOfVector=function(e,i,o,g){var a=void 0;return e!==o?(a=Math.atan((g-i)/(o-e)),o0?1:t<0?-1:0},r.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)},r.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)},f.exports=r},function(f,D,y){function r(){}r.MAX_VALUE=2147483647,r.MIN_VALUE=-2147483648,f.exports=r},function(f,D,y){var r=function(){function a(v,n){for(var c=0;c"u"?"undefined":r(e);return e==null||i!="object"&&i!="function"},f.exports=t},function(f,D,y){function r(l){if(Array.isArray(l)){for(var E=0,T=Array(l.length);E0&&E;){for(d.push(s[0]);d.length>0&&E;){var h=d[0];d.splice(0,1),O.add(h);for(var u=h.getEdges(),L=0;L-1&&s.splice(R,1)}O=new Set,N=new Map}}return l},c.prototype.createDummyNodesForBendpoints=function(l){for(var E=[],T=l.source,m=this.graphManager.calcLowestCommonAncestor(l.source,l.target),L=0;L0){for(var m=this.edgeToDummyNodes.get(T),L=0;L=0&&E.splice(p,1);var A=N.getNeighborsList();A.forEach(function(x){if(T.indexOf(x)<0){var _=m.get(x),U=_-1;U==1&&h.push(x),m.set(x,U)}})}T=T.concat(h),(E.length==1||E.length==2)&&(L=!0,O=E[0])}return O},c.prototype.setGraphManager=function(l){this.graphManager=l},f.exports=c},function(f,D,y){function r(){}r.seed=1,r.x=0,r.nextDouble=function(){return r.x=Math.sin(r.seed++)*1e4,r.x-Math.floor(r.x)},f.exports=r},function(f,D,y){var r=y(4);function t(e,i){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}t.prototype.getWorldOrgX=function(){return this.lworldOrgX},t.prototype.setWorldOrgX=function(e){this.lworldOrgX=e},t.prototype.getWorldOrgY=function(){return this.lworldOrgY},t.prototype.setWorldOrgY=function(e){this.lworldOrgY=e},t.prototype.getWorldExtX=function(){return this.lworldExtX},t.prototype.setWorldExtX=function(e){this.lworldExtX=e},t.prototype.getWorldExtY=function(){return this.lworldExtY},t.prototype.setWorldExtY=function(e){this.lworldExtY=e},t.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},t.prototype.setDeviceOrgX=function(e){this.ldeviceOrgX=e},t.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},t.prototype.setDeviceOrgY=function(e){this.ldeviceOrgY=e},t.prototype.getDeviceExtX=function(){return this.ldeviceExtX},t.prototype.setDeviceExtX=function(e){this.ldeviceExtX=e},t.prototype.getDeviceExtY=function(){return this.ldeviceExtY},t.prototype.setDeviceExtY=function(e){this.ldeviceExtY=e},t.prototype.transformX=function(e){var i=0,o=this.lworldExtX;return o!=0&&(i=this.ldeviceOrgX+(e-this.lworldOrgX)*this.ldeviceExtX/o),i},t.prototype.transformY=function(e){var i=0,o=this.lworldExtY;return o!=0&&(i=this.ldeviceOrgY+(e-this.lworldOrgY)*this.ldeviceExtY/o),i},t.prototype.inverseTransformX=function(e){var i=0,o=this.ldeviceExtX;return o!=0&&(i=this.lworldOrgX+(e-this.ldeviceOrgX)*this.lworldExtX/o),i},t.prototype.inverseTransformY=function(e){var i=0,o=this.ldeviceExtY;return o!=0&&(i=this.lworldOrgY+(e-this.ldeviceOrgY)*this.lworldExtY/o),i},t.prototype.inverseTransformPoint=function(e){var i=new r(this.inverseTransformX(e.x),this.inverseTransformY(e.y));return i},f.exports=t},function(f,D,y){function r(n){if(Array.isArray(n)){for(var c=0,l=Array(n.length);ce.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*e.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(n-e.ADAPTATION_LOWER_NODE_LIMIT)/(e.ADAPTATION_UPPER_NODE_LIMIT-e.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-e.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=e.MAX_NODE_DISPLACEMENT_INCREMENTAL):(n>e.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(e.COOLING_ADAPTATION_FACTOR,1-(n-e.ADAPTATION_LOWER_NODE_LIMIT)/(e.ADAPTATION_UPPER_NODE_LIMIT-e.ADAPTATION_LOWER_NODE_LIMIT)*(1-e.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=e.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},a.prototype.calcSpringForces=function(){for(var n=this.getAllEdges(),c,l=0;l0&&arguments[0]!==void 0?arguments[0]:!0,c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,l,E,T,m,L=this.getAllNodes(),O;if(this.useFRGridVariant)for(this.totalIterations%e.GRID_CALCULATION_CHECK_PERIOD==1&&n&&this.updateGrid(),O=new Set,l=0;ld||O>d)&&(n.gravitationForceX=-this.gravityConstant*T,n.gravitationForceY=-this.gravityConstant*m)):(d=c.getEstimatedSize()*this.compoundGravityRangeFactor,(L>d||O>d)&&(n.gravitationForceX=-this.gravityConstant*T*this.compoundGravityConstant,n.gravitationForceY=-this.gravityConstant*m*this.compoundGravityConstant))},a.prototype.isConverged=function(){var n,c=!1;return this.totalIterations>this.maxIterations/3&&(c=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),n=this.totalDisplacement=L.length||d>=L[0].length)){for(var N=0;Na}}]),o}();f.exports=i},function(f,D,y){var r=function(){function i(o,g){for(var a=0;a2&&arguments[2]!==void 0?arguments[2]:1,v=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;t(this,i),this.sequence1=o,this.sequence2=g,this.match_score=a,this.mismatch_penalty=v,this.gap_penalty=n,this.iMax=o.length+1,this.jMax=g.length+1,this.grid=new Array(this.iMax);for(var c=0;c=0;o--){var g=this.listeners[o];g.event===e&&g.callback===i&&this.listeners.splice(o,1)}},t.emit=function(e,i){for(var o=0;og.coolingFactor*g.maxNodeDisplacement&&(this.displacementX=g.coolingFactor*g.maxNodeDisplacement*e.sign(this.displacementX)),Math.abs(this.displacementY)>g.coolingFactor*g.maxNodeDisplacement&&(this.displacementY=g.coolingFactor*g.maxNodeDisplacement*e.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),g.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},i.prototype.propogateDisplacementToChildren=function(g,a){for(var v=this.getChild().getNodes(),n,c=0;c0)this.positionNodesRadially(s);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var h=new Set(this.getAllNodes()),u=this.nodesWithGravity.filter(function(p){return h.has(p)});this.graphManager.setAllNodesToApplyGravitation(u),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},d.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%v.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var s=new Set(this.getAllNodes()),h=this.nodesWithGravity.filter(function(A){return s.has(A)});this.graphManager.setAllNodesToApplyGravitation(h),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=v.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=v.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var u=!this.isTreeGrowing&&!this.isGrowthFinished,p=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(u,p),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},d.prototype.getPositionsData=function(){for(var s=this.graphManager.getAllNodes(),h={},u=0;u1){var x;for(x=0;xp&&(p=Math.floor(R.y)),C=Math.floor(R.x+a.DEFAULT_COMPONENT_SEPERATION)}this.transform(new l(n.WORLD_CENTER_X-R.x/2,n.WORLD_CENTER_Y-R.y/2))},d.radialLayout=function(s,h,u){var p=Math.max(this.maxDiagonalInTree(s),a.DEFAULT_RADIAL_SEPARATION);d.branchRadialLayout(h,null,0,359,0,p);var A=L.calculateBounds(s),C=new O;C.setDeviceOrgX(A.getMinX()),C.setDeviceOrgY(A.getMinY()),C.setWorldOrgX(u.x),C.setWorldOrgY(u.y);for(var R=0;R1;){var H=k[0];k.splice(0,1);var P=M.indexOf(H);P>=0&&M.splice(P,1),b--,G--}h!=null?Y=(M.indexOf(k[0])+1)%b:Y=0;for(var B=Math.abs(p-u)/G,$=Y;F!=G;$=++$%b){var K=M[$].getOtherEnd(s);if(K!=h){var Q=(u+F*B)%360,q=(Q+B)%360;d.branchRadialLayout(K,s,Q,q,A+C,C),F++}}},d.maxDiagonalInTree=function(s){for(var h=T.MIN_VALUE,u=0;uh&&(h=A)}return h},d.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},d.prototype.groupZeroDegreeMembers=function(){var s=this,h={};this.memberGroups={},this.idToDummyNode={};for(var u=[],p=this.graphManager.getAllNodes(),A=0;A"u"&&(h[x]=[]),h[x]=h[x].concat(C)}Object.keys(h).forEach(function(_){if(h[_].length>1){var U="DummyCompound_"+_;s.memberGroups[U]=h[_];var X=h[_][0].getParent(),M=new o(s.graphManager);M.id=U,M.paddingLeft=X.paddingLeft||0,M.paddingRight=X.paddingRight||0,M.paddingBottom=X.paddingBottom||0,M.paddingTop=X.paddingTop||0,s.idToDummyNode[U]=M;var G=s.getGraphManager().add(s.newGraph(),M),F=X.getChild();F.add(M);for(var b=0;b=0;s--){var h=this.compoundOrder[s],u=h.id,p=h.paddingLeft,A=h.paddingTop;this.adjustLocations(this.tiledMemberPack[u],h.rect.x,h.rect.y,p,A)}},d.prototype.repopulateZeroDegreeMembers=function(){var s=this,h=this.tiledZeroDegreePack;Object.keys(h).forEach(function(u){var p=s.idToDummyNode[u],A=p.paddingLeft,C=p.paddingTop;s.adjustLocations(h[u],p.rect.x,p.rect.y,A,C)})},d.prototype.getToBeTiled=function(s){var h=s.id;if(this.toBeTiled[h]!=null)return this.toBeTiled[h];var u=s.getChild();if(u==null)return this.toBeTiled[h]=!1,!1;for(var p=u.getNodes(),A=0;A0)return this.toBeTiled[h]=!1,!1;if(C.getChild()==null){this.toBeTiled[C.id]=!1;continue}if(!this.getToBeTiled(C))return this.toBeTiled[h]=!1,!1}return this.toBeTiled[h]=!0,!0},d.prototype.getNodeDegree=function(s){s.id;for(var h=s.getEdges(),u=0,p=0;p_&&(_=X.rect.height)}u+=_+s.verticalPadding}},d.prototype.tileCompoundMembers=function(s,h){var u=this;this.tiledMemberPack=[],Object.keys(s).forEach(function(p){var A=h[p];u.tiledMemberPack[p]=u.tileNodes(s[p],A.paddingLeft+A.paddingRight),A.rect.width=u.tiledMemberPack[p].width,A.rect.height=u.tiledMemberPack[p].height})},d.prototype.tileNodes=function(s,h){var u=a.TILING_PADDING_VERTICAL,p=a.TILING_PADDING_HORIZONTAL,A={rows:[],rowWidth:[],rowHeight:[],width:0,height:h,verticalPadding:u,horizontalPadding:p};s.sort(function(x,_){return x.rect.width*x.rect.height>_.rect.width*_.rect.height?-1:x.rect.width*x.rect.height<_.rect.width*_.rect.height?1:0});for(var C=0;C0&&(R+=s.horizontalPadding),s.rowWidth[u]=R,s.width0&&(x+=s.verticalPadding);var _=0;x>s.rowHeight[u]&&(_=s.rowHeight[u],s.rowHeight[u]=x,_=s.rowHeight[u]-_),s.height+=_,s.rows[u].push(h)},d.prototype.getShortestRowIndex=function(s){for(var h=-1,u=Number.MAX_VALUE,p=0;pu&&(h=p,u=s.rowWidth[p]);return h},d.prototype.canAddHorizontal=function(s,h,u){var p=this.getShortestRowIndex(s);if(p<0)return!0;var A=s.rowWidth[p];if(A+s.horizontalPadding+h<=s.width)return!0;var C=0;s.rowHeight[p]0&&(C=u+s.verticalPadding-s.rowHeight[p]);var R;s.width-A>=h+s.horizontalPadding?R=(s.height+C)/(A+h+s.horizontalPadding):R=(s.height+C)/s.width,C=u+s.verticalPadding;var x;return s.widthC&&h!=u){p.splice(-1,1),s.rows[u].push(A),s.rowWidth[h]=s.rowWidth[h]-C,s.rowWidth[u]=s.rowWidth[u]+C,s.width=s.rowWidth[instance.getLongestRowIndex(s)];for(var R=Number.MIN_VALUE,x=0;xR&&(R=p[x].height);h>0&&(R+=s.verticalPadding);var _=s.rowHeight[h]+s.rowHeight[u];s.rowHeight[h]=R,s.rowHeight[u]0)for(var F=A;F<=C;F++)G[0]+=this.grid[F][R-1].length+this.grid[F][R].length-1;if(C0)for(var F=R;F<=x;F++)G[3]+=this.grid[A-1][F].length+this.grid[A][F].length-1;for(var b=T.MAX_VALUE,Y,k,H=0;H0){var x;x=O.getGraphManager().add(O.newGraph(),u),this.processChildrenList(x,h,O)}}},l.prototype.stop=function(){return this.stopped=!0,this};var T=function(L){L("layout","cose-bilkent",l)};typeof cytoscape<"u"&&T(cytoscape),D.exports=T}])})}(tt)),tt.exports}var bt=Ft();const Ut=xt(bt);var at=function(){var I=S(function(O,d,N,s){for(N=N||{},s=O.length;s--;N[O[s]]=d);return N},"o"),w=[1,4],f=[1,13],D=[1,12],y=[1,15],r=[1,16],t=[1,20],e=[1,19],i=[6,7,8],o=[1,26],g=[1,24],a=[1,25],v=[6,7,11],n=[1,6,13,15,16,19,22],c=[1,33],l=[1,34],E=[1,6,7,11,13,15,16,19,22],T={trace:S(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:S(function(d,N,s,h,u,p,A){var C=p.length-1;switch(u){case 6:case 7:return h;case 8:h.getLogger().trace("Stop NL ");break;case 9:h.getLogger().trace("Stop EOF ");break;case 11:h.getLogger().trace("Stop NL2 ");break;case 12:h.getLogger().trace("Stop EOF2 ");break;case 15:h.getLogger().info("Node: ",p[C].id),h.addNode(p[C-1].length,p[C].id,p[C].descr,p[C].type);break;case 16:h.getLogger().trace("Icon: ",p[C]),h.decorateNode({icon:p[C]});break;case 17:case 21:h.decorateNode({class:p[C]});break;case 18:h.getLogger().trace("SPACELIST");break;case 19:h.getLogger().trace("Node: ",p[C].id),h.addNode(0,p[C].id,p[C].descr,p[C].type);break;case 20:h.decorateNode({icon:p[C]});break;case 25:h.getLogger().trace("node found ..",p[C-2]),this.$={id:p[C-1],descr:p[C-1],type:h.getType(p[C-2],p[C])};break;case 26:this.$={id:p[C],descr:p[C],type:h.nodeType.DEFAULT};break;case 27:h.getLogger().trace("node found ..",p[C-3]),this.$={id:p[C-3],descr:p[C-1],type:h.getType(p[C-2],p[C])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:w},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:w},{6:f,7:[1,10],9:9,12:11,13:D,14:14,15:y,16:r,17:17,18:18,19:t,22:e},I(i,[2,3]),{1:[2,2]},I(i,[2,4]),I(i,[2,5]),{1:[2,6],6:f,12:21,13:D,14:14,15:y,16:r,17:17,18:18,19:t,22:e},{6:f,9:22,12:11,13:D,14:14,15:y,16:r,17:17,18:18,19:t,22:e},{6:o,7:g,10:23,11:a},I(v,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:t,22:e}),I(v,[2,18]),I(v,[2,19]),I(v,[2,20]),I(v,[2,21]),I(v,[2,23]),I(v,[2,24]),I(v,[2,26],{19:[1,30]}),{20:[1,31]},{6:o,7:g,10:32,11:a},{1:[2,7],6:f,12:21,13:D,14:14,15:y,16:r,17:17,18:18,19:t,22:e},I(n,[2,14],{7:c,11:l}),I(E,[2,8]),I(E,[2,9]),I(E,[2,10]),I(v,[2,15]),I(v,[2,16]),I(v,[2,17]),{20:[1,35]},{21:[1,36]},I(n,[2,13],{7:c,11:l}),I(E,[2,11]),I(E,[2,12]),{21:[1,37]},I(v,[2,25]),I(v,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:S(function(d,N){if(N.recoverable)this.trace(d);else{var s=new Error(d);throw s.hash=N,s}},"parseError"),parse:S(function(d){var N=this,s=[0],h=[],u=[null],p=[],A=this.table,C="",R=0,x=0,_=2,U=1,X=p.slice.call(arguments,1),M=Object.create(this.lexer),G={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(G.yy[F]=this.yy[F]);M.setInput(d,G.yy),G.yy.lexer=M,G.yy.parser=this,typeof M.yylloc>"u"&&(M.yylloc={});var b=M.yylloc;p.push(b);var Y=M.options&&M.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function k(V){s.length=s.length-2*V,u.length=u.length-V,p.length=p.length-V}S(k,"popStack");function H(){var V;return V=h.pop()||M.lex()||U,typeof V!="number"&&(V instanceof Array&&(h=V,V=h.pop()),V=N.symbols_[V]||V),V}S(H,"lex");for(var P,B,$,K,Q={},q,j,gt,J;;){if(B=s[s.length-1],this.defaultActions[B]?$=this.defaultActions[B]:((P===null||typeof P>"u")&&(P=H()),$=A[B]&&A[B][P]),typeof $>"u"||!$.length||!$[0]){var st="";J=[];for(q in A[B])this.terminals_[q]&&q>_&&J.push("'"+this.terminals_[q]+"'");M.showPosition?st="Parse error on line "+(R+1)+`: `+M.showPosition()+` Expecting `+J.join(", ")+", got '"+(this.terminals_[P]||P)+"'":st="Parse error on line "+(R+1)+": Unexpected "+(P==U?"end of input":"'"+(this.terminals_[P]||P)+"'"),this.parseError(st,{text:M.match,token:this.terminals_[P]||P,line:M.yylineno,loc:b,expected:J})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+B+", token: "+P);switch($[0]){case 1:s.push(P),u.push(M.yytext),p.push(M.yylloc),s.push($[1]),P=null,x=M.yyleng,C=M.yytext,R=M.yylineno,b=M.yylloc;break;case 2:if(j=this.productions_[$[1]][1],Q.$=u[u.length-j],Q._$={first_line:p[p.length-(j||1)].first_line,last_line:p[p.length-1].last_line,first_column:p[p.length-(j||1)].first_column,last_column:p[p.length-1].last_column},Y&&(Q._$.range=[p[p.length-(j||1)].range[0],p[p.length-1].range[1]]),K=this.performAction.apply(Q,[C,x,R,G.yy,$[1],u,p].concat(X)),typeof K<"u")return K;j&&(s=s.slice(0,-1*j*2),u=u.slice(0,-1*j),p=p.slice(0,-1*j)),s.push(this.productions_[$[1]][0]),u.push(Q.$),p.push(Q._$),gt=A[s[s.length-2]][s[s.length-1]],s.push(gt);break;case 3:return!0}}return!0},"parse")},m=function(){var O={EOF:1,parseError:S(function(N,s){if(this.yy.parser)this.yy.parser.parseError(N,s);else throw new Error(N)},"parseError"),setInput:S(function(d,N){return this.yy=N||this.yy||{},this._input=d,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:S(function(){var d=this._input[0];this.yytext+=d,this.yyleng++,this.offset++,this.match+=d,this.matched+=d;var N=d.match(/(?:\r\n?|\n).*/g);return N?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),d},"input"),unput:S(function(d){var N=d.length,s=d.split(/(?:\r\n?|\n)/g);this._input=d+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-N),this.offset-=N;var h=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===h.length?this.yylloc.first_column:0)+h[h.length-s.length].length-s[0].length:this.yylloc.first_column-N},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-N]),this.yyleng=this.yytext.length,this},"unput"),more:S(function(){return this._more=!0,this},"more"),reject:S(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:S(function(d){this.unput(this.match.slice(d))},"less"),pastInput:S(function(){var d=this.matched.substr(0,this.matched.length-this.match.length);return(d.length>20?"...":"")+d.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:S(function(){var d=this.match;return d.length<20&&(d+=this._input.substr(0,20-d.length)),(d.substr(0,20)+(d.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:S(function(){var d=this.pastInput(),N=new Array(d.length+1).join("-");return d+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/pieDiagram-IB7DONF6-B0cIkycz.js b/lightrag/api/webui/assets/pieDiagram-IB7DONF6-DrMdtRDI.js similarity index 91% rename from lightrag/api/webui/assets/pieDiagram-IB7DONF6-B0cIkycz.js rename to lightrag/api/webui/assets/pieDiagram-IB7DONF6-DrMdtRDI.js index d6bb2aa7..cddb507b 100644 --- a/lightrag/api/webui/assets/pieDiagram-IB7DONF6-B0cIkycz.js +++ b/lightrag/api/webui/assets/pieDiagram-IB7DONF6-DrMdtRDI.js @@ -1,4 +1,4 @@ -import{p as N}from"./chunk-4BMEZGHF-M5QBFtoC.js";import{_ as i,g as B,s as U,a as q,b as H,t as K,q as V,l as C,c as Z,F as j,K as J,M as Q,N as z,O as X,e as Y,z as tt,P as et,H as at}from"./mermaid-vendor-SwnP6Sr8.js";import{p as rt}from"./radar-MK3ICKWK-CihkADAx.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-D81M49Y6.js";import"./_basePickBy--_O36kXE.js";import"./clone-BHIBWXu-.js";var it=at.pie,D={sections:new Map,showData:!1},f=D.sections,w=D.showData,st=structuredClone(it),ot=i(()=>structuredClone(st),"getConfig"),nt=i(()=>{f=new Map,w=D.showData,tt()},"clear"),lt=i(({label:t,value:a})=>{f.has(t)||(f.set(t,a),C.debug(`added new section: ${t}, with value: ${a}`))},"addSection"),ct=i(()=>f,"getSections"),pt=i(t=>{w=t},"setShowData"),dt=i(()=>w,"getShowData"),F={getConfig:ot,clear:nt,setDiagramTitle:V,getDiagramTitle:K,setAccTitle:H,getAccTitle:q,setAccDescription:U,getAccDescription:B,addSection:lt,getSections:ct,setShowData:pt,getShowData:dt},gt=i((t,a)=>{N(t,a),a.setShowData(t.showData),t.sections.map(a.addSection)},"populateDb"),ut={parse:i(async t=>{const a=await rt("pie",t);C.debug(a),gt(a,F)},"parse")},mt=i(t=>` +import{p as N}from"./chunk-4BMEZGHF-Ct0jZH9M.js";import{_ as i,g as B,s as U,a as q,b as H,t as K,q as V,l as C,c as Z,F as j,K as J,M as Q,N as z,O as X,e as Y,z as tt,P as et,H as at}from"./mermaid-vendor-d7rbry5E.js";import{p as rt}from"./radar-MK3ICKWK-zkXzSXFe.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-OtJ11HbN.js";import"./_basePickBy-Lz6agtdo.js";import"./clone-vL6XIcCC.js";var it=at.pie,D={sections:new Map,showData:!1},f=D.sections,w=D.showData,st=structuredClone(it),ot=i(()=>structuredClone(st),"getConfig"),nt=i(()=>{f=new Map,w=D.showData,tt()},"clear"),lt=i(({label:t,value:a})=>{f.has(t)||(f.set(t,a),C.debug(`added new section: ${t}, with value: ${a}`))},"addSection"),ct=i(()=>f,"getSections"),pt=i(t=>{w=t},"setShowData"),dt=i(()=>w,"getShowData"),F={getConfig:ot,clear:nt,setDiagramTitle:V,getDiagramTitle:K,setAccTitle:H,getAccTitle:q,setAccDescription:U,getAccDescription:B,addSection:lt,getSections:ct,setShowData:pt,getShowData:dt},gt=i((t,a)=>{N(t,a),a.setShowData(t.showData),t.sections.map(a.addSection)},"populateDb"),ut={parse:i(async t=>{const a=await rt("pie",t);C.debug(a),gt(a,F)},"parse")},mt=i(t=>` .pieCircle{ stroke: ${t.pieStrokeColor}; stroke-width : ${t.pieStrokeWidth}; diff --git a/lightrag/api/webui/assets/quadrantDiagram-7GDLP6J5-zmngfYyO.js b/lightrag/api/webui/assets/quadrantDiagram-7GDLP6J5-C56WKFyP.js similarity index 99% rename from lightrag/api/webui/assets/quadrantDiagram-7GDLP6J5-zmngfYyO.js rename to lightrag/api/webui/assets/quadrantDiagram-7GDLP6J5-C56WKFyP.js index 93caaa54..36a4c1d8 100644 --- a/lightrag/api/webui/assets/quadrantDiagram-7GDLP6J5-zmngfYyO.js +++ b/lightrag/api/webui/assets/quadrantDiagram-7GDLP6J5-C56WKFyP.js @@ -1,4 +1,4 @@ -import{_ as o,s as _e,g as Ae,t as ie,q as ke,a as Fe,b as Pe,c as wt,l as At,d as zt,e as ve,z as Ce,H as D,Q as Le,R as ee,i as Ee}from"./mermaid-vendor-SwnP6Sr8.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var Vt=function(){var t=o(function(j,r,l,g){for(l=l||{},g=j.length;g--;l[j[g]]=r);return l},"o"),n=[1,3],u=[1,4],c=[1,5],h=[1,6],p=[1,7],y=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],S=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],a=[55,56,57],A=[2,36],d=[1,37],T=[1,36],q=[1,38],m=[1,35],b=[1,43],x=[1,41],O=[1,14],Y=[1,23],G=[1,18],yt=[1,19],Tt=[1,20],dt=[1,21],Ft=[1,22],ut=[1,24],xt=[1,25],ft=[1,26],gt=[1,27],i=[1,28],Rt=[1,29],W=[1,32],Q=[1,33],k=[1,34],F=[1,39],P=[1,40],v=[1,42],C=[1,44],H=[1,62],X=[1,61],L=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],Bt=[1,65],Nt=[1,66],Wt=[1,67],Qt=[1,68],Ut=[1,69],Ot=[1,70],Ht=[1,71],Xt=[1,72],Mt=[1,73],Yt=[1,74],jt=[1,75],Gt=[1,76],I=[4,5,6,7,8,9,10,11,12,13,14,15,18],J=[1,90],$=[1,91],tt=[1,92],et=[1,99],it=[1,93],at=[1,96],nt=[1,94],st=[1,95],rt=[1,97],ot=[1,98],Pt=[1,102],Kt=[10,55,56,57],B=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],vt={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(r,l,g,f,_,e,pt){var s=e.length-1;switch(_){case 23:this.$=e[s];break;case 24:this.$=e[s-1]+""+e[s];break;case 26:this.$=e[s-1]+e[s];break;case 27:this.$=[e[s].trim()];break;case 28:e[s-2].push(e[s].trim()),this.$=e[s-2];break;case 29:this.$=e[s-4],f.addClass(e[s-2],e[s]);break;case 37:this.$=[];break;case 42:this.$=e[s].trim(),f.setDiagramTitle(this.$);break;case 43:this.$=e[s].trim(),f.setAccTitle(this.$);break;case 44:case 45:this.$=e[s].trim(),f.setAccDescription(this.$);break;case 46:f.addSection(e[s].substr(8)),this.$=e[s].substr(8);break;case 47:f.addPoint(e[s-3],"",e[s-1],e[s],[]);break;case 48:f.addPoint(e[s-4],e[s-3],e[s-1],e[s],[]);break;case 49:f.addPoint(e[s-4],"",e[s-2],e[s-1],e[s]);break;case 50:f.addPoint(e[s-5],e[s-4],e[s-2],e[s-1],e[s]);break;case 51:f.setXAxisLeftText(e[s-2]),f.setXAxisRightText(e[s]);break;case 52:e[s-1].text+=" ⟶ ",f.setXAxisLeftText(e[s-1]);break;case 53:f.setXAxisLeftText(e[s]);break;case 54:f.setYAxisBottomText(e[s-2]),f.setYAxisTopText(e[s]);break;case 55:e[s-1].text+=" ⟶ ",f.setYAxisBottomText(e[s-1]);break;case 56:f.setYAxisBottomText(e[s]);break;case 57:f.setQuadrant1Text(e[s]);break;case 58:f.setQuadrant2Text(e[s]);break;case 59:f.setQuadrant3Text(e[s]);break;case 60:f.setQuadrant4Text(e[s]);break;case 64:this.$={text:e[s],type:"text"};break;case 65:this.$={text:e[s-1].text+""+e[s],type:e[s-1].type};break;case 66:this.$={text:e[s],type:"text"};break;case 67:this.$={text:e[s],type:"markdown"};break;case 68:this.$=e[s];break;case 69:this.$=e[s-1]+""+e[s];break}},"anonymous"),table:[{18:n,26:1,27:2,28:u,55:c,56:h,57:p},{1:[3]},{18:n,26:8,27:2,28:u,55:c,56:h,57:p},{18:n,26:9,27:2,28:u,55:c,56:h,57:p},t(y,[2,33],{29:10}),t(S,[2,61]),t(S,[2,62]),t(S,[2,63]),{1:[2,30]},{1:[2,31]},t(a,A,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:T,10:q,12:m,13:b,14:x,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:xt,51:ft,52:gt,53:i,54:Rt,60:W,61:Q,63:k,64:F,65:P,66:v,67:C}),t(y,[2,34]),{27:45,55:c,56:h,57:p},t(a,[2,37]),t(a,A,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:d,5:T,10:q,12:m,13:b,14:x,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:xt,51:ft,52:gt,53:i,54:Rt,60:W,61:Q,63:k,64:F,65:P,66:v,67:C}),t(a,[2,39]),t(a,[2,40]),t(a,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(a,[2,45]),t(a,[2,46]),{18:[1,50]},{4:d,5:T,10:q,12:m,13:b,14:x,43:51,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:52,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:53,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:54,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:55,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:56,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,44:[1,57],47:[1,58],58:60,59:59,63:k,64:F,65:P,66:v,67:C},t(L,[2,64]),t(L,[2,66]),t(L,[2,67]),t(L,[2,70]),t(L,[2,71]),t(L,[2,72]),t(L,[2,73]),t(L,[2,74]),t(L,[2,75]),t(L,[2,76]),t(L,[2,77]),t(L,[2,78]),t(L,[2,79]),t(L,[2,80]),t(y,[2,35]),t(a,[2,38]),t(a,[2,42]),t(a,[2,43]),t(a,[2,44]),{3:64,4:Bt,5:Nt,6:Wt,7:Qt,8:Ut,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,21:63},t(a,[2,53],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,49:[1,77],63:k,64:F,65:P,66:v,67:C}),t(a,[2,56],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,49:[1,78],63:k,64:F,65:P,66:v,67:C}),t(a,[2,57],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,58],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,59],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,60],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),{45:[1,79]},{44:[1,80]},t(L,[2,65]),t(L,[2,81]),t(L,[2,82]),t(L,[2,83]),{3:82,4:Bt,5:Nt,6:Wt,7:Qt,8:Ut,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,18:[1,81]},t(I,[2,23]),t(I,[2,1]),t(I,[2,2]),t(I,[2,3]),t(I,[2,4]),t(I,[2,5]),t(I,[2,6]),t(I,[2,7]),t(I,[2,8]),t(I,[2,9]),t(I,[2,10]),t(I,[2,11]),t(I,[2,12]),t(a,[2,52],{58:31,43:83,4:d,5:T,10:q,12:m,13:b,14:x,60:W,61:Q,63:k,64:F,65:P,66:v,67:C}),t(a,[2,55],{58:31,43:84,4:d,5:T,10:q,12:m,13:b,14:x,60:W,61:Q,63:k,64:F,65:P,66:v,67:C}),{46:[1,85]},{45:[1,86]},{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:88,23:87},t(I,[2,24]),t(a,[2,51],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,54],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,47],{22:88,16:89,23:100,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{46:[1,101]},t(a,[2,29],{10:Pt}),t(Kt,[2,27],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),t(B,[2,25]),t(B,[2,13]),t(B,[2,14]),t(B,[2,15]),t(B,[2,16]),t(B,[2,17]),t(B,[2,18]),t(B,[2,19]),t(B,[2,20]),t(B,[2,21]),t(B,[2,22]),t(a,[2,49],{10:Pt}),t(a,[2,48],{22:88,16:89,23:104,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:105},t(B,[2,26]),t(a,[2,50],{10:Pt}),t(Kt,[2,28],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(r,l){if(l.recoverable)this.trace(r);else{var g=new Error(r);throw g.hash=l,g}},"parseError"),parse:o(function(r){var l=this,g=[0],f=[],_=[null],e=[],pt=this.table,s="",mt=0,Zt=0,qe=2,Jt=1,me=e.slice.call(arguments,1),E=Object.create(this.lexer),K={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(K.yy[Ct]=this.yy[Ct]);E.setInput(r,K.yy),K.yy.lexer=E,K.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var Lt=E.yylloc;e.push(Lt);var be=E.options&&E.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Se(R){g.length=g.length-2*R,_.length=_.length-R,e.length=e.length-R}o(Se,"popStack");function $t(){var R;return R=f.pop()||E.lex()||Jt,typeof R!="number"&&(R instanceof Array&&(f=R,R=f.pop()),R=l.symbols_[R]||R),R}o($t,"lex");for(var w,Z,N,Et,lt={},bt,M,te,St;;){if(Z=g[g.length-1],this.defaultActions[Z]?N=this.defaultActions[Z]:((w===null||typeof w>"u")&&(w=$t()),N=pt[Z]&&pt[Z][w]),typeof N>"u"||!N.length||!N[0]){var Dt="";St=[];for(bt in pt[Z])this.terminals_[bt]&&bt>qe&&St.push("'"+this.terminals_[bt]+"'");E.showPosition?Dt="Parse error on line "+(mt+1)+`: +import{_ as o,s as _e,g as Ae,t as ie,q as ke,a as Fe,b as Pe,c as wt,l as At,d as zt,e as ve,z as Ce,H as D,Q as Le,R as ee,i as Ee}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var Vt=function(){var t=o(function(j,r,l,g){for(l=l||{},g=j.length;g--;l[j[g]]=r);return l},"o"),n=[1,3],u=[1,4],c=[1,5],h=[1,6],p=[1,7],y=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],S=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],a=[55,56,57],A=[2,36],d=[1,37],T=[1,36],q=[1,38],m=[1,35],b=[1,43],x=[1,41],O=[1,14],Y=[1,23],G=[1,18],yt=[1,19],Tt=[1,20],dt=[1,21],Ft=[1,22],ut=[1,24],xt=[1,25],ft=[1,26],gt=[1,27],i=[1,28],Rt=[1,29],W=[1,32],Q=[1,33],k=[1,34],F=[1,39],P=[1,40],v=[1,42],C=[1,44],H=[1,62],X=[1,61],L=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],Bt=[1,65],Nt=[1,66],Wt=[1,67],Qt=[1,68],Ut=[1,69],Ot=[1,70],Ht=[1,71],Xt=[1,72],Mt=[1,73],Yt=[1,74],jt=[1,75],Gt=[1,76],I=[4,5,6,7,8,9,10,11,12,13,14,15,18],J=[1,90],$=[1,91],tt=[1,92],et=[1,99],it=[1,93],at=[1,96],nt=[1,94],st=[1,95],rt=[1,97],ot=[1,98],Pt=[1,102],Kt=[10,55,56,57],B=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],vt={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(r,l,g,f,_,e,pt){var s=e.length-1;switch(_){case 23:this.$=e[s];break;case 24:this.$=e[s-1]+""+e[s];break;case 26:this.$=e[s-1]+e[s];break;case 27:this.$=[e[s].trim()];break;case 28:e[s-2].push(e[s].trim()),this.$=e[s-2];break;case 29:this.$=e[s-4],f.addClass(e[s-2],e[s]);break;case 37:this.$=[];break;case 42:this.$=e[s].trim(),f.setDiagramTitle(this.$);break;case 43:this.$=e[s].trim(),f.setAccTitle(this.$);break;case 44:case 45:this.$=e[s].trim(),f.setAccDescription(this.$);break;case 46:f.addSection(e[s].substr(8)),this.$=e[s].substr(8);break;case 47:f.addPoint(e[s-3],"",e[s-1],e[s],[]);break;case 48:f.addPoint(e[s-4],e[s-3],e[s-1],e[s],[]);break;case 49:f.addPoint(e[s-4],"",e[s-2],e[s-1],e[s]);break;case 50:f.addPoint(e[s-5],e[s-4],e[s-2],e[s-1],e[s]);break;case 51:f.setXAxisLeftText(e[s-2]),f.setXAxisRightText(e[s]);break;case 52:e[s-1].text+=" ⟶ ",f.setXAxisLeftText(e[s-1]);break;case 53:f.setXAxisLeftText(e[s]);break;case 54:f.setYAxisBottomText(e[s-2]),f.setYAxisTopText(e[s]);break;case 55:e[s-1].text+=" ⟶ ",f.setYAxisBottomText(e[s-1]);break;case 56:f.setYAxisBottomText(e[s]);break;case 57:f.setQuadrant1Text(e[s]);break;case 58:f.setQuadrant2Text(e[s]);break;case 59:f.setQuadrant3Text(e[s]);break;case 60:f.setQuadrant4Text(e[s]);break;case 64:this.$={text:e[s],type:"text"};break;case 65:this.$={text:e[s-1].text+""+e[s],type:e[s-1].type};break;case 66:this.$={text:e[s],type:"text"};break;case 67:this.$={text:e[s],type:"markdown"};break;case 68:this.$=e[s];break;case 69:this.$=e[s-1]+""+e[s];break}},"anonymous"),table:[{18:n,26:1,27:2,28:u,55:c,56:h,57:p},{1:[3]},{18:n,26:8,27:2,28:u,55:c,56:h,57:p},{18:n,26:9,27:2,28:u,55:c,56:h,57:p},t(y,[2,33],{29:10}),t(S,[2,61]),t(S,[2,62]),t(S,[2,63]),{1:[2,30]},{1:[2,31]},t(a,A,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:T,10:q,12:m,13:b,14:x,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:xt,51:ft,52:gt,53:i,54:Rt,60:W,61:Q,63:k,64:F,65:P,66:v,67:C}),t(y,[2,34]),{27:45,55:c,56:h,57:p},t(a,[2,37]),t(a,A,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:d,5:T,10:q,12:m,13:b,14:x,18:O,25:Y,35:G,37:yt,39:Tt,41:dt,42:Ft,48:ut,50:xt,51:ft,52:gt,53:i,54:Rt,60:W,61:Q,63:k,64:F,65:P,66:v,67:C}),t(a,[2,39]),t(a,[2,40]),t(a,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(a,[2,45]),t(a,[2,46]),{18:[1,50]},{4:d,5:T,10:q,12:m,13:b,14:x,43:51,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:52,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:53,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:54,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:55,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,10:q,12:m,13:b,14:x,43:56,58:31,60:W,61:Q,63:k,64:F,65:P,66:v,67:C},{4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,44:[1,57],47:[1,58],58:60,59:59,63:k,64:F,65:P,66:v,67:C},t(L,[2,64]),t(L,[2,66]),t(L,[2,67]),t(L,[2,70]),t(L,[2,71]),t(L,[2,72]),t(L,[2,73]),t(L,[2,74]),t(L,[2,75]),t(L,[2,76]),t(L,[2,77]),t(L,[2,78]),t(L,[2,79]),t(L,[2,80]),t(y,[2,35]),t(a,[2,38]),t(a,[2,42]),t(a,[2,43]),t(a,[2,44]),{3:64,4:Bt,5:Nt,6:Wt,7:Qt,8:Ut,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,21:63},t(a,[2,53],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,49:[1,77],63:k,64:F,65:P,66:v,67:C}),t(a,[2,56],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,49:[1,78],63:k,64:F,65:P,66:v,67:C}),t(a,[2,57],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,58],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,59],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,60],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),{45:[1,79]},{44:[1,80]},t(L,[2,65]),t(L,[2,81]),t(L,[2,82]),t(L,[2,83]),{3:82,4:Bt,5:Nt,6:Wt,7:Qt,8:Ut,9:Ot,10:Ht,11:Xt,12:Mt,13:Yt,14:jt,15:Gt,18:[1,81]},t(I,[2,23]),t(I,[2,1]),t(I,[2,2]),t(I,[2,3]),t(I,[2,4]),t(I,[2,5]),t(I,[2,6]),t(I,[2,7]),t(I,[2,8]),t(I,[2,9]),t(I,[2,10]),t(I,[2,11]),t(I,[2,12]),t(a,[2,52],{58:31,43:83,4:d,5:T,10:q,12:m,13:b,14:x,60:W,61:Q,63:k,64:F,65:P,66:v,67:C}),t(a,[2,55],{58:31,43:84,4:d,5:T,10:q,12:m,13:b,14:x,60:W,61:Q,63:k,64:F,65:P,66:v,67:C}),{46:[1,85]},{45:[1,86]},{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:88,23:87},t(I,[2,24]),t(a,[2,51],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,54],{59:59,58:60,4:d,5:T,8:H,10:q,12:m,13:b,14:x,18:X,63:k,64:F,65:P,66:v,67:C}),t(a,[2,47],{22:88,16:89,23:100,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{46:[1,101]},t(a,[2,29],{10:Pt}),t(Kt,[2,27],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),t(B,[2,25]),t(B,[2,13]),t(B,[2,14]),t(B,[2,15]),t(B,[2,16]),t(B,[2,17]),t(B,[2,18]),t(B,[2,19]),t(B,[2,20]),t(B,[2,21]),t(B,[2,22]),t(a,[2,49],{10:Pt}),t(a,[2,48],{22:88,16:89,23:104,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot}),{4:J,5:$,6:tt,8:et,11:it,13:at,16:89,17:nt,18:st,19:rt,20:ot,22:105},t(B,[2,26]),t(a,[2,50],{10:Pt}),t(Kt,[2,28],{16:103,4:J,5:$,6:tt,8:et,11:it,13:at,17:nt,18:st,19:rt,20:ot})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(r,l){if(l.recoverable)this.trace(r);else{var g=new Error(r);throw g.hash=l,g}},"parseError"),parse:o(function(r){var l=this,g=[0],f=[],_=[null],e=[],pt=this.table,s="",mt=0,Zt=0,qe=2,Jt=1,me=e.slice.call(arguments,1),E=Object.create(this.lexer),K={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(K.yy[Ct]=this.yy[Ct]);E.setInput(r,K.yy),K.yy.lexer=E,K.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var Lt=E.yylloc;e.push(Lt);var be=E.options&&E.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Se(R){g.length=g.length-2*R,_.length=_.length-R,e.length=e.length-R}o(Se,"popStack");function $t(){var R;return R=f.pop()||E.lex()||Jt,typeof R!="number"&&(R instanceof Array&&(f=R,R=f.pop()),R=l.symbols_[R]||R),R}o($t,"lex");for(var w,Z,N,Et,lt={},bt,M,te,St;;){if(Z=g[g.length-1],this.defaultActions[Z]?N=this.defaultActions[Z]:((w===null||typeof w>"u")&&(w=$t()),N=pt[Z]&&pt[Z][w]),typeof N>"u"||!N.length||!N[0]){var Dt="";St=[];for(bt in pt[Z])this.terminals_[bt]&&bt>qe&&St.push("'"+this.terminals_[bt]+"'");E.showPosition?Dt="Parse error on line "+(mt+1)+`: `+E.showPosition()+` Expecting `+St.join(", ")+", got '"+(this.terminals_[w]||w)+"'":Dt="Parse error on line "+(mt+1)+": Unexpected "+(w==Jt?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(Dt,{text:E.match,token:this.terminals_[w]||w,line:E.yylineno,loc:Lt,expected:St})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+w);switch(N[0]){case 1:g.push(w),_.push(E.yytext),e.push(E.yylloc),g.push(N[1]),w=null,Zt=E.yyleng,s=E.yytext,mt=E.yylineno,Lt=E.yylloc;break;case 2:if(M=this.productions_[N[1]][1],lt.$=_[_.length-M],lt._$={first_line:e[e.length-(M||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(M||1)].first_column,last_column:e[e.length-1].last_column},be&&(lt._$.range=[e[e.length-(M||1)].range[0],e[e.length-1].range[1]]),Et=this.performAction.apply(lt,[s,Zt,mt,K.yy,N[1],_,e].concat(me)),typeof Et<"u")return Et;M&&(g=g.slice(0,-1*M*2),_=_.slice(0,-1*M),e=e.slice(0,-1*M)),g.push(this.productions_[N[1]][0]),_.push(lt.$),e.push(lt._$),te=pt[g[g.length-2]][g[g.length-1]],g.push(te);break;case 3:return!0}}return!0},"parse")},Te=function(){var j={EOF:1,parseError:o(function(l,g){if(this.yy.parser)this.yy.parser.parseError(l,g);else throw new Error(l)},"parseError"),setInput:o(function(r,l){return this.yy=l||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:o(function(r){var l=r.length,g=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var f=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var _=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===f.length?this.yylloc.first_column:0)+f[f.length-g.length].length-g[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[_[0],_[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(r){this.unput(this.match.slice(r))},"less"),pastInput:o(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/radar-MK3ICKWK-CihkADAx.js b/lightrag/api/webui/assets/radar-MK3ICKWK-zkXzSXFe.js similarity index 99% rename from lightrag/api/webui/assets/radar-MK3ICKWK-CihkADAx.js rename to lightrag/api/webui/assets/radar-MK3ICKWK-zkXzSXFe.js index b4d67218..194fa24d 100644 --- a/lightrag/api/webui/assets/radar-MK3ICKWK-CihkADAx.js +++ b/lightrag/api/webui/assets/radar-MK3ICKWK-zkXzSXFe.js @@ -1,4 +1,4 @@ -var Rc=Object.defineProperty;var Ac=(n,e,t)=>e in n?Rc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Qe=(n,e,t)=>Ac(n,typeof e!="symbol"?e+"":e,t);import{a4 as It}from"./feature-graph-D6-O-kXP.js";import{bu as Ec,bv as vc,aY as yl,be as kc,b0 as Sc,aZ as te,aq as xc,ar as ua,b4 as Ic,b7 as Tl,b8 as Rl,b5 as Cc,bj as ca,at as Tt,au as D,a_ as da,aU as $c}from"./mermaid-vendor-SwnP6Sr8.js";import{k as Ht,j as Ls,g as Zt,S as Nc,w as wc,x as _c,c as Al,v as z,y as El,l as Lc,z as Oc,A as bc,B as Pc,C as Mc,a as vl,d as $,i as qe,r as oe,f as Se,D as Y}from"./_baseUniq-D81M49Y6.js";import{j as Os,m as x,d as Dc,f as Ne,g as zt,h as N,i as bs,l as qt,e as Fc}from"./_basePickBy--_O36kXE.js";import{c as re}from"./clone-BHIBWXu-.js";var Gc=Object.prototype,Uc=Gc.hasOwnProperty,ke=Ec(function(n,e){if(vc(e)||yl(e)){kc(e,Ht(e),n);return}for(var t in e)Uc.call(e,t)&&Sc(n,t,e[t])});function kl(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r=jc&&(s=_c,a=!1,e=new Nc(e));e:for(;++i-1:!!i&&El(n,e,t)>-1}function fa(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return El(n,e,i)}var Zc="[object RegExp]";function ed(n){return Tl(n)&&Rl(n)==Zc}var ha=ca&&ca.isRegExp,Ye=ha?Cc(ha):ed,td="Expected a function";function nd(n){if(typeof n!="function")throw new TypeError(td);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function Me(n,e){if(n==null)return{};var t=Lc(Oc(n),function(r){return[r]});return e=Zt(e),Dc(n,t,function(r,i){return e(r,i[0])})}function ui(n,e){var t=te(n)?bc:Pc;return t(n,nd(Zt(e)))}function rd(n,e){var t;return Ls(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Sl(n,e,t){var r=te(n)?Mc:rd;return r(n,Zt(e))}function Ps(n){return n&&n.length?vl(n):[]}function id(n,e){return n&&n.length?vl(n,Zt(e)):[]}function ae(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function sd(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function Sr(n){return typeof n=="object"&&n!==null&&ae(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class xl{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ae(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function qn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function Il(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function Cl(n){return qn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return Ae})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=ad(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?Ae:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return Ae})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(Gr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return Ae})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(Gr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return Ae})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?Ae:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return Ae})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function ad(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Gr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const od=new Z(()=>{},()=>Ae),Ae=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(Gr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return Ae})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Xi;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(Xi||(Xi={}));function Ji(n){return new Ms(n,e=>qn(e)?e.content:[],{includeRoot:!0})}function ld(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function Qi(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Ur(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var Ke;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(Ke||(Ke={}));function ud(n,e){if(n.end.linee.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return Ke.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.lineKe.After}const dd=/^[\w\p{L}]$/u;function fd(n,e){if(n){const t=hd(n,!0);if(t&&pa(t,e))return t;if(Cl(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(pa(s,e))return s}}}}function pa(n,e){return Il(n)&&e.includes(n.tokenType.name)}function hd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class $l extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function Qn(n){throw new Error("Error! The input value was not handled.")}const sr="AbstractRule",ar="AbstractType",Si="Condition",ma="TypeDefinition",xi="ValueLiteral",cn="AbstractElement";function pd(n){return M.isInstance(n,cn)}const or="ArrayLiteral",lr="ArrayType",dn="BooleanLiteral";function md(n){return M.isInstance(n,dn)}const fn="Conjunction";function gd(n){return M.isInstance(n,fn)}const hn="Disjunction";function yd(n){return M.isInstance(n,hn)}const ur="Grammar",Ii="GrammarImport",pn="InferredType";function Nl(n){return M.isInstance(n,pn)}const mn="Interface";function wl(n){return M.isInstance(n,mn)}const Ci="NamedArgument",gn="Negation";function Td(n){return M.isInstance(n,gn)}const cr="NumberLiteral",dr="Parameter",yn="ParameterReference";function Rd(n){return M.isInstance(n,yn)}const Tn="ParserRule";function we(n){return M.isInstance(n,Tn)}const fr="ReferenceType",xr="ReturnType";function Ad(n){return M.isInstance(n,xr)}const Rn="SimpleType";function Ed(n){return M.isInstance(n,Rn)}const hr="StringLiteral",$t="TerminalRule";function Rt(n){return M.isInstance(n,$t)}const An="Type";function _l(n){return M.isInstance(n,An)}const $i="TypeAttribute",pr="UnionType",En="Action";function ci(n){return M.isInstance(n,En)}const vn="Alternatives";function Ll(n){return M.isInstance(n,vn)}const kn="Assignment";function ft(n){return M.isInstance(n,kn)}const Sn="CharacterRange";function vd(n){return M.isInstance(n,Sn)}const xn="CrossReference";function Ds(n){return M.isInstance(n,xn)}const In="EndOfFile";function kd(n){return M.isInstance(n,In)}const Cn="Group";function Fs(n){return M.isInstance(n,Cn)}const $n="Keyword";function ht(n){return M.isInstance(n,$n)}const Nn="NegatedToken";function Sd(n){return M.isInstance(n,Nn)}const wn="RegexToken";function xd(n){return M.isInstance(n,wn)}const _n="RuleCall";function pt(n){return M.isInstance(n,_n)}const Ln="TerminalAlternatives";function Id(n){return M.isInstance(n,Ln)}const On="TerminalGroup";function Cd(n){return M.isInstance(n,On)}const bn="TerminalRuleCall";function $d(n){return M.isInstance(n,bn)}const Pn="UnorderedGroup";function Ol(n){return M.isInstance(n,Pn)}const Mn="UntilToken";function Nd(n){return M.isInstance(n,Mn)}const Dn="Wildcard";function wd(n){return M.isInstance(n,Dn)}class bl extends xl{getAllTypes(){return[cn,sr,ar,En,vn,or,lr,kn,dn,Sn,Si,fn,xn,hn,In,ur,Ii,Cn,pn,mn,$n,Ci,Nn,gn,cr,dr,yn,Tn,fr,wn,xr,_n,Rn,hr,Ln,On,$t,bn,An,$i,ma,pr,Pn,Mn,xi,Dn]}computeIsSubtype(e,t){switch(e){case En:case vn:case kn:case Sn:case xn:case In:case Cn:case $n:case Nn:case wn:case _n:case Ln:case On:case bn:case Pn:case Mn:case Dn:return this.isSubtype(cn,t);case or:case cr:case hr:return this.isSubtype(xi,t);case lr:case fr:case Rn:case pr:return this.isSubtype(ma,t);case dn:return this.isSubtype(Si,t)||this.isSubtype(xi,t);case fn:case hn:case gn:case yn:return this.isSubtype(Si,t);case pn:case mn:case An:return this.isSubtype(ar,t);case Tn:return this.isSubtype(sr,t)||this.isSubtype(ar,t);case $t:return this.isSubtype(sr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return ar;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return sr;case"Grammar:usedGrammars":return ur;case"NamedArgument:parameter":case"ParameterReference:parameter":return dr;case"TerminalRuleCall:rule":return $t;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case cn:return{name:cn,properties:[{name:"cardinality"},{name:"lookahead"}]};case or:return{name:or,properties:[{name:"elements",defaultValue:[]}]};case lr:return{name:lr,properties:[{name:"elementType"}]};case dn:return{name:dn,properties:[{name:"true",defaultValue:!1}]};case fn:return{name:fn,properties:[{name:"left"},{name:"right"}]};case hn:return{name:hn,properties:[{name:"left"},{name:"right"}]};case ur:return{name:ur,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Ii:return{name:Ii,properties:[{name:"path"}]};case pn:return{name:pn,properties:[{name:"name"}]};case mn:return{name:mn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Ci:return{name:Ci,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case gn:return{name:gn,properties:[{name:"value"}]};case cr:return{name:cr,properties:[{name:"value"}]};case dr:return{name:dr,properties:[{name:"name"}]};case yn:return{name:yn,properties:[{name:"parameter"}]};case Tn:return{name:Tn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case fr:return{name:fr,properties:[{name:"referenceType"}]};case xr:return{name:xr,properties:[{name:"name"}]};case Rn:return{name:Rn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case hr:return{name:hr,properties:[{name:"value"}]};case $t:return{name:$t,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case An:return{name:An,properties:[{name:"name"},{name:"type"}]};case $i:return{name:$i,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case pr:return{name:pr,properties:[{name:"types",defaultValue:[]}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case vn:return{name:vn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"lookahead"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case _n:return{name:_n,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case On:return{name:On,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new bl;function _d(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{ae(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):ae(t)&&(t.$container=n,t.$containerProperty=e))}function di(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function et(n){const t=Zi(n).$document;if(!t)throw new Error("AST node has no document.");return t}function Zi(n){for(;n.$container;)n=n.$container;return n}function Gs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndexGs(t,e))}function wt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ms(n,t=>Gs(t,e),{includeRoot:!0})}function ga(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?cd(r,e):!1}function Pl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndexe in n?Rc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Qe=(n,e,t)=>Ac(n,typeof e!="symbol"?e+"":e,t);import{a4 as It}from"./feature-graph-DbHHHM9y.js";import{bu as Ec,bv as vc,aY as yl,be as kc,b0 as Sc,aZ as te,aq as xc,ar as ua,b4 as Ic,b7 as Tl,b8 as Rl,b5 as Cc,bj as ca,at as Tt,au as D,a_ as da,aU as $c}from"./mermaid-vendor-d7rbry5E.js";import{k as Ht,j as Ls,g as Zt,S as Nc,w as wc,x as _c,c as Al,v as z,y as El,l as Lc,z as Oc,A as bc,B as Pc,C as Mc,a as vl,d as $,i as qe,r as oe,f as Se,D as Y}from"./_baseUniq-OtJ11HbN.js";import{j as Os,m as x,d as Dc,f as Ne,g as zt,h as N,i as bs,l as qt,e as Fc}from"./_basePickBy-Lz6agtdo.js";import{c as re}from"./clone-vL6XIcCC.js";var Gc=Object.prototype,Uc=Gc.hasOwnProperty,ke=Ec(function(n,e){if(vc(e)||yl(e)){kc(e,Ht(e),n);return}for(var t in e)Uc.call(e,t)&&Sc(n,t,e[t])});function kl(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r=jc&&(s=_c,a=!1,e=new Nc(e));e:for(;++i-1:!!i&&El(n,e,t)>-1}function fa(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return El(n,e,i)}var Zc="[object RegExp]";function ed(n){return Tl(n)&&Rl(n)==Zc}var ha=ca&&ca.isRegExp,Ye=ha?Cc(ha):ed,td="Expected a function";function nd(n){if(typeof n!="function")throw new TypeError(td);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function Me(n,e){if(n==null)return{};var t=Lc(Oc(n),function(r){return[r]});return e=Zt(e),Dc(n,t,function(r,i){return e(r,i[0])})}function ui(n,e){var t=te(n)?bc:Pc;return t(n,nd(Zt(e)))}function rd(n,e){var t;return Ls(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Sl(n,e,t){var r=te(n)?Mc:rd;return r(n,Zt(e))}function Ps(n){return n&&n.length?vl(n):[]}function id(n,e){return n&&n.length?vl(n,Zt(e)):[]}function ae(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function sd(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function Sr(n){return typeof n=="object"&&n!==null&&ae(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class xl{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ae(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function qn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function Il(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function Cl(n){return qn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return Ae})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=ad(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?Ae:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return Ae})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(Gr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return Ae})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(Gr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return Ae})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?Ae:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return Ae})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function ad(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Gr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const od=new Z(()=>{},()=>Ae),Ae=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(Gr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return Ae})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Xi;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(Xi||(Xi={}));function Ji(n){return new Ms(n,e=>qn(e)?e.content:[],{includeRoot:!0})}function ld(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function Qi(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Ur(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var Ke;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(Ke||(Ke={}));function ud(n,e){if(n.end.linee.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return Ke.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.lineKe.After}const dd=/^[\w\p{L}]$/u;function fd(n,e){if(n){const t=hd(n,!0);if(t&&pa(t,e))return t;if(Cl(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(pa(s,e))return s}}}}function pa(n,e){return Il(n)&&e.includes(n.tokenType.name)}function hd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class $l extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function Qn(n){throw new Error("Error! The input value was not handled.")}const sr="AbstractRule",ar="AbstractType",Si="Condition",ma="TypeDefinition",xi="ValueLiteral",cn="AbstractElement";function pd(n){return M.isInstance(n,cn)}const or="ArrayLiteral",lr="ArrayType",dn="BooleanLiteral";function md(n){return M.isInstance(n,dn)}const fn="Conjunction";function gd(n){return M.isInstance(n,fn)}const hn="Disjunction";function yd(n){return M.isInstance(n,hn)}const ur="Grammar",Ii="GrammarImport",pn="InferredType";function Nl(n){return M.isInstance(n,pn)}const mn="Interface";function wl(n){return M.isInstance(n,mn)}const Ci="NamedArgument",gn="Negation";function Td(n){return M.isInstance(n,gn)}const cr="NumberLiteral",dr="Parameter",yn="ParameterReference";function Rd(n){return M.isInstance(n,yn)}const Tn="ParserRule";function we(n){return M.isInstance(n,Tn)}const fr="ReferenceType",xr="ReturnType";function Ad(n){return M.isInstance(n,xr)}const Rn="SimpleType";function Ed(n){return M.isInstance(n,Rn)}const hr="StringLiteral",$t="TerminalRule";function Rt(n){return M.isInstance(n,$t)}const An="Type";function _l(n){return M.isInstance(n,An)}const $i="TypeAttribute",pr="UnionType",En="Action";function ci(n){return M.isInstance(n,En)}const vn="Alternatives";function Ll(n){return M.isInstance(n,vn)}const kn="Assignment";function ft(n){return M.isInstance(n,kn)}const Sn="CharacterRange";function vd(n){return M.isInstance(n,Sn)}const xn="CrossReference";function Ds(n){return M.isInstance(n,xn)}const In="EndOfFile";function kd(n){return M.isInstance(n,In)}const Cn="Group";function Fs(n){return M.isInstance(n,Cn)}const $n="Keyword";function ht(n){return M.isInstance(n,$n)}const Nn="NegatedToken";function Sd(n){return M.isInstance(n,Nn)}const wn="RegexToken";function xd(n){return M.isInstance(n,wn)}const _n="RuleCall";function pt(n){return M.isInstance(n,_n)}const Ln="TerminalAlternatives";function Id(n){return M.isInstance(n,Ln)}const On="TerminalGroup";function Cd(n){return M.isInstance(n,On)}const bn="TerminalRuleCall";function $d(n){return M.isInstance(n,bn)}const Pn="UnorderedGroup";function Ol(n){return M.isInstance(n,Pn)}const Mn="UntilToken";function Nd(n){return M.isInstance(n,Mn)}const Dn="Wildcard";function wd(n){return M.isInstance(n,Dn)}class bl extends xl{getAllTypes(){return[cn,sr,ar,En,vn,or,lr,kn,dn,Sn,Si,fn,xn,hn,In,ur,Ii,Cn,pn,mn,$n,Ci,Nn,gn,cr,dr,yn,Tn,fr,wn,xr,_n,Rn,hr,Ln,On,$t,bn,An,$i,ma,pr,Pn,Mn,xi,Dn]}computeIsSubtype(e,t){switch(e){case En:case vn:case kn:case Sn:case xn:case In:case Cn:case $n:case Nn:case wn:case _n:case Ln:case On:case bn:case Pn:case Mn:case Dn:return this.isSubtype(cn,t);case or:case cr:case hr:return this.isSubtype(xi,t);case lr:case fr:case Rn:case pr:return this.isSubtype(ma,t);case dn:return this.isSubtype(Si,t)||this.isSubtype(xi,t);case fn:case hn:case gn:case yn:return this.isSubtype(Si,t);case pn:case mn:case An:return this.isSubtype(ar,t);case Tn:return this.isSubtype(sr,t)||this.isSubtype(ar,t);case $t:return this.isSubtype(sr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return ar;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return sr;case"Grammar:usedGrammars":return ur;case"NamedArgument:parameter":case"ParameterReference:parameter":return dr;case"TerminalRuleCall:rule":return $t;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case cn:return{name:cn,properties:[{name:"cardinality"},{name:"lookahead"}]};case or:return{name:or,properties:[{name:"elements",defaultValue:[]}]};case lr:return{name:lr,properties:[{name:"elementType"}]};case dn:return{name:dn,properties:[{name:"true",defaultValue:!1}]};case fn:return{name:fn,properties:[{name:"left"},{name:"right"}]};case hn:return{name:hn,properties:[{name:"left"},{name:"right"}]};case ur:return{name:ur,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Ii:return{name:Ii,properties:[{name:"path"}]};case pn:return{name:pn,properties:[{name:"name"}]};case mn:return{name:mn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Ci:return{name:Ci,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case gn:return{name:gn,properties:[{name:"value"}]};case cr:return{name:cr,properties:[{name:"value"}]};case dr:return{name:dr,properties:[{name:"name"}]};case yn:return{name:yn,properties:[{name:"parameter"}]};case Tn:return{name:Tn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case fr:return{name:fr,properties:[{name:"referenceType"}]};case xr:return{name:xr,properties:[{name:"name"}]};case Rn:return{name:Rn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case hr:return{name:hr,properties:[{name:"value"}]};case $t:return{name:$t,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case An:return{name:An,properties:[{name:"name"},{name:"type"}]};case $i:return{name:$i,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case pr:return{name:pr,properties:[{name:"types",defaultValue:[]}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case vn:return{name:vn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"lookahead"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case _n:return{name:_n,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case On:return{name:On,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new bl;function _d(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{ae(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):ae(t)&&(t.$container=n,t.$containerProperty=e))}function di(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function et(n){const t=Zi(n).$document;if(!t)throw new Error("AST node has no document.");return t}function Zi(n){for(;n.$container;)n=n.$container;return n}function Gs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndexGs(t,e))}function wt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ms(n,t=>Gs(t,e),{includeRoot:!0})}function ga(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?cd(r,e):!1}function Pl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex"u"&&(S.yylloc={});var be=S.yylloc;t.push(be);var We=S.options&&S.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(T){l.length=l.length-2*T,E.length=E.length-T,t.length=t.length-T}f(je,"popStack");function Ue(){var T;return T=s.pop()||S.lex()||$e,typeof T!="number"&&(T instanceof Array&&(s=T,T=s.pop()),T=r.symbols_[T]||T),T}f(Ue,"lex");for(var b,G,q,Te,J={},ge,F,Ye,_e;;){if(G=l[l.length-1],this.defaultActions[G]?q=this.defaultActions[G]:((b===null||typeof b>"u")&&(b=Ue()),q=de[G]&&de[G][b]),typeof q>"u"||!q.length||!q[0]){var ke="";_e=[];for(ge in de[G])this.terminals_[ge]&&ge>He&&_e.push("'"+this.terminals_[ge]+"'");S.showPosition?ke="Parse error on line "+(ye+1)+`: +import{g as ze,s as Ge}from"./chunk-RZ5BOZE2-C762jHXr.js";import{_ as f,b as Xe,a as Je,s as Ze,g as et,q as tt,t as st,c as Ne,l as qe,z as it,D as rt,p as nt,r as at,u as lt}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var Ae=function(){var e=f(function(P,i,r,l){for(r=r||{},l=P.length;l--;r[P[l]]=i);return r},"o"),a=[1,3],u=[1,4],o=[1,5],m=[1,6],c=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],p=[1,22],R=[2,7],h=[1,26],d=[1,27],I=[1,28],k=[1,29],A=[1,33],C=[1,34],V=[1,35],v=[1,36],x=[1,37],L=[1,38],D=[1,24],O=[1,31],w=[1,32],M=[1,30],g=[1,39],_=[1,40],y=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],$=[1,61],X=[89,90],Ce=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Ee=[27,29],Ve=[1,70],ve=[1,71],xe=[1,72],Le=[1,73],De=[1,74],Oe=[1,75],we=[1,76],ee=[1,83],U=[1,80],te=[1,84],se=[1,85],ie=[1,86],re=[1,87],ne=[1,88],ae=[1,89],le=[1,90],ce=[1,91],oe=[1,92],pe=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Y=[63,64],Me=[1,101],Fe=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],N=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],B=[1,110],Q=[1,106],H=[1,107],K=[1,108],W=[1,109],j=[1,111],he=[1,116],ue=[1,117],fe=[1,114],me=[1,115],Se={trace:f(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:f(function(i,r,l,s,E,t,de){var n=t.length-1;switch(E){case 4:this.$=t[n].trim(),s.setAccTitle(this.$);break;case 5:case 6:this.$=t[n].trim(),s.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:s.setDirection("TB");break;case 18:s.setDirection("BT");break;case 19:s.setDirection("RL");break;case 20:s.setDirection("LR");break;case 21:s.addRequirement(t[n-3],t[n-4]);break;case 22:s.addRequirement(t[n-5],t[n-6]),s.setClass([t[n-5]],t[n-3]);break;case 23:s.setNewReqId(t[n-2]);break;case 24:s.setNewReqText(t[n-2]);break;case 25:s.setNewReqRisk(t[n-2]);break;case 26:s.setNewReqVerifyMethod(t[n-2]);break;case 29:this.$=s.RequirementType.REQUIREMENT;break;case 30:this.$=s.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=s.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=s.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=s.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=s.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=s.RiskLevel.LOW_RISK;break;case 36:this.$=s.RiskLevel.MED_RISK;break;case 37:this.$=s.RiskLevel.HIGH_RISK;break;case 38:this.$=s.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=s.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=s.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=s.VerifyType.VERIFY_TEST;break;case 42:s.addElement(t[n-3]);break;case 43:s.addElement(t[n-5]),s.setClass([t[n-5]],t[n-3]);break;case 44:s.setNewElementType(t[n-2]);break;case 45:s.setNewElementDocRef(t[n-2]);break;case 48:s.addRelationship(t[n-2],t[n],t[n-4]);break;case 49:s.addRelationship(t[n-2],t[n-4],t[n]);break;case 50:this.$=s.Relationships.CONTAINS;break;case 51:this.$=s.Relationships.COPIES;break;case 52:this.$=s.Relationships.DERIVES;break;case 53:this.$=s.Relationships.SATISFIES;break;case 54:this.$=s.Relationships.VERIFIES;break;case 55:this.$=s.Relationships.REFINES;break;case 56:this.$=s.Relationships.TRACES;break;case 57:this.$=t[n-2],s.defineClass(t[n-1],t[n]);break;case 58:s.setClass(t[n-1],t[n]);break;case 59:s.setClass([t[n-2]],t[n]);break;case 60:case 62:this.$=[t[n]];break;case 61:case 63:this.$=t[n-2].concat([t[n]]);break;case 64:this.$=t[n-2],s.setCssStyle(t[n-1],t[n]);break;case 65:this.$=[t[n]];break;case 66:t[n-2].push(t[n]),this.$=t[n-2];break;case 68:this.$=t[n-1]+t[n];break}},"anonymous"),table:[{3:1,4:2,6:a,9:u,11:o,13:m},{1:[3]},{3:8,4:2,5:[1,7],6:a,9:u,11:o,13:m},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(c,[2,6]),{3:12,4:2,6:a,9:u,11:o,13:m},{1:[2,2]},{4:17,5:p,7:13,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},e(c,[2,4]),e(c,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:p,7:42,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},{4:17,5:p,7:43,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},{4:17,5:p,7:44,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},{4:17,5:p,7:45,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},{4:17,5:p,7:46,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},{4:17,5:p,7:47,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},{4:17,5:p,7:48,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},{4:17,5:p,7:49,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},{4:17,5:p,7:50,8:R,9:u,11:o,13:m,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:h,22:d,23:I,24:k,25:23,33:25,41:A,42:C,43:V,44:v,45:x,46:L,54:D,72:O,74:w,77:M,89:g,90:_},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},e(y,[2,17]),e(y,[2,18]),e(y,[2,19]),e(y,[2,20]),{30:60,33:62,75:$,89:g,90:_},{30:63,33:62,75:$,89:g,90:_},{30:64,33:62,75:$,89:g,90:_},e(X,[2,29]),e(X,[2,30]),e(X,[2,31]),e(X,[2,32]),e(X,[2,33]),e(X,[2,34]),e(Ce,[2,81]),e(Ce,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},e(Ee,[2,79]),e(Ee,[2,80]),{27:[1,67],29:[1,68]},e(Ee,[2,85]),e(Ee,[2,86]),{62:69,65:Ve,66:ve,67:xe,68:Le,69:De,70:Oe,71:we},{62:77,65:Ve,66:ve,67:xe,68:Le,69:De,70:Oe,71:we},{30:78,33:62,75:$,89:g,90:_},{73:79,75:ee,76:U,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(pe,[2,60]),e(pe,[2,62]),{73:93,75:ee,76:U,78:81,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},{30:94,33:62,75:$,76:U,89:g,90:_},{5:[1,95]},{30:96,33:62,75:$,89:g,90:_},{5:[1,97]},{30:98,33:62,75:$,89:g,90:_},{63:[1,99]},e(Y,[2,50]),e(Y,[2,51]),e(Y,[2,52]),e(Y,[2,53]),e(Y,[2,54]),e(Y,[2,55]),e(Y,[2,56]),{64:[1,100]},e(y,[2,59],{76:U}),e(y,[2,64],{76:Me}),{33:103,75:[1,102],89:g,90:_},e(Fe,[2,65],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),e(N,[2,67]),e(N,[2,69]),e(N,[2,70]),e(N,[2,71]),e(N,[2,72]),e(N,[2,73]),e(N,[2,74]),e(N,[2,75]),e(N,[2,76]),e(N,[2,77]),e(N,[2,78]),e(y,[2,57],{76:Me}),e(y,[2,58],{76:U}),{5:B,28:105,31:Q,34:H,36:K,38:W,40:j},{27:[1,112],76:U},{5:he,40:ue,56:113,57:fe,59:me},{27:[1,118],76:U},{33:119,89:g,90:_},{33:120,89:g,90:_},{75:ee,78:121,79:82,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe},e(pe,[2,61]),e(pe,[2,63]),e(N,[2,68]),e(y,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:B,28:126,31:Q,34:H,36:K,38:W,40:j},e(y,[2,28]),{5:[1,127]},e(y,[2,42]),{32:[1,128]},{32:[1,129]},{5:he,40:ue,56:130,57:fe,59:me},e(y,[2,47]),{5:[1,131]},e(y,[2,48]),e(y,[2,49]),e(Fe,[2,66],{79:104,75:ee,80:te,81:se,82:ie,83:re,84:ne,85:ae,86:le,87:ce,88:oe}),{33:132,89:g,90:_},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},e(y,[2,27]),{5:B,28:145,31:Q,34:H,36:K,38:W,40:j},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(y,[2,46]),{5:he,40:ue,56:152,57:fe,59:me},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},e(y,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(y,[2,43]),{5:B,28:159,31:Q,34:H,36:K,38:W,40:j},{5:B,28:160,31:Q,34:H,36:K,38:W,40:j},{5:B,28:161,31:Q,34:H,36:K,38:W,40:j},{5:B,28:162,31:Q,34:H,36:K,38:W,40:j},{5:he,40:ue,56:163,57:fe,59:me},{5:he,40:ue,56:164,57:fe,59:me},e(y,[2,23]),e(y,[2,24]),e(y,[2,25]),e(y,[2,26]),e(y,[2,44]),e(y,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:f(function(i,r){if(r.recoverable)this.trace(i);else{var l=new Error(i);throw l.hash=r,l}},"parseError"),parse:f(function(i){var r=this,l=[0],s=[],E=[null],t=[],de=this.table,n="",ye=0,Pe=0,He=2,$e=1,Ke=t.slice.call(arguments,1),S=Object.create(this.lexer),z={yy:{}};for(var Ie in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ie)&&(z.yy[Ie]=this.yy[Ie]);S.setInput(i,z.yy),z.yy.lexer=S,z.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var be=S.yylloc;t.push(be);var We=S.options&&S.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(T){l.length=l.length-2*T,E.length=E.length-T,t.length=t.length-T}f(je,"popStack");function Ue(){var T;return T=s.pop()||S.lex()||$e,typeof T!="number"&&(T instanceof Array&&(s=T,T=s.pop()),T=r.symbols_[T]||T),T}f(Ue,"lex");for(var b,G,q,Te,J={},ge,F,Ye,_e;;){if(G=l[l.length-1],this.defaultActions[G]?q=this.defaultActions[G]:((b===null||typeof b>"u")&&(b=Ue()),q=de[G]&&de[G][b]),typeof q>"u"||!q.length||!q[0]){var ke="";_e=[];for(ge in de[G])this.terminals_[ge]&&ge>He&&_e.push("'"+this.terminals_[ge]+"'");S.showPosition?ke="Parse error on line "+(ye+1)+`: `+S.showPosition()+` Expecting `+_e.join(", ")+", got '"+(this.terminals_[b]||b)+"'":ke="Parse error on line "+(ye+1)+": Unexpected "+(b==$e?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(ke,{text:S.match,token:this.terminals_[b]||b,line:S.yylineno,loc:be,expected:_e})}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+b);switch(q[0]){case 1:l.push(b),E.push(S.yytext),t.push(S.yylloc),l.push(q[1]),b=null,Pe=S.yyleng,n=S.yytext,ye=S.yylineno,be=S.yylloc;break;case 2:if(F=this.productions_[q[1]][1],J.$=E[E.length-F],J._$={first_line:t[t.length-(F||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(F||1)].first_column,last_column:t[t.length-1].last_column},We&&(J._$.range=[t[t.length-(F||1)].range[0],t[t.length-1].range[1]]),Te=this.performAction.apply(J,[n,Pe,ye,z.yy,q[1],E,t].concat(Ke)),typeof Te<"u")return Te;F&&(l=l.slice(0,-1*F*2),E=E.slice(0,-1*F),t=t.slice(0,-1*F)),l.push(this.productions_[q[1]][0]),E.push(J.$),t.push(J._$),Ye=de[l[l.length-2]][l[l.length-1]],l.push(Ye);break;case 3:return!0}}return!0},"parse")},Qe=function(){var P={EOF:1,parseError:f(function(r,l){if(this.yy.parser)this.yy.parser.parseError(r,l);else throw new Error(r)},"parseError"),setInput:f(function(i,r){return this.yy=r||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:f(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var r=i.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:f(function(i){var r=i.length,l=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===s.length?this.yylloc.first_column:0)+s[s.length-l.length].length-l[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},"unput"),more:f(function(){return this._more=!0,this},"more"),reject:f(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:f(function(i){this.unput(this.match.slice(i))},"less"),pastInput:f(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:f(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:f(function(){var i=this.pastInput(),r=new Array(i.length+1).join("-");return i+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/sankeyDiagram-QLVOVGJD-DkTUSo82.js b/lightrag/api/webui/assets/sankeyDiagram-QLVOVGJD-CSLnqTKw.js similarity index 99% rename from lightrag/api/webui/assets/sankeyDiagram-QLVOVGJD-DkTUSo82.js rename to lightrag/api/webui/assets/sankeyDiagram-QLVOVGJD-CSLnqTKw.js index 86da3c2f..7fe582cd 100644 --- a/lightrag/api/webui/assets/sankeyDiagram-QLVOVGJD-DkTUSo82.js +++ b/lightrag/api/webui/assets/sankeyDiagram-QLVOVGJD-CSLnqTKw.js @@ -1,4 +1,4 @@ -import{_ as p,q as _t,t as xt,s as vt,g as bt,b as St,a as wt,c as lt,A as Lt,d as H,O as Et,aT as At,a2 as Tt,z as Mt,k as Nt}from"./mermaid-vendor-SwnP6Sr8.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";function ct(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s=a)&&(s=a);else{let a=-1;for(let h of t)(h=n(h,++a,t))!=null&&(s=h)&&(s=h)}return s}function pt(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s>a||s===void 0&&a>=a)&&(s=a);else{let a=-1;for(let h of t)(h=n(h,++a,t))!=null&&(s>h||s===void 0&&h>=h)&&(s=h)}return s}function nt(t,n){let s=0;if(n===void 0)for(let a of t)(a=+a)&&(s+=a);else{let a=-1;for(let h of t)(h=+n(h,++a,t))&&(s+=h)}return s}function It(t){return t.target.depth}function Pt(t){return t.depth}function Ct(t,n){return n-1-t.height}function mt(t,n){return t.sourceLinks.length?t.depth:n-1}function Ot(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?pt(t.sourceLinks,It)-1:0}function X(t){return function(){return t}}function ut(t,n){return Q(t.source,n.source)||t.index-n.index}function ht(t,n){return Q(t.target,n.target)||t.index-n.index}function Q(t,n){return t.y0-n.y0}function it(t){return t.value}function zt(t){return t.index}function Dt(t){return t.nodes}function $t(t){return t.links}function ft(t,n){const s=t.get(n);if(!s)throw new Error("missing: "+n);return s}function yt({nodes:t}){for(const n of t){let s=n.y0,a=s;for(const h of n.sourceLinks)h.y0=s+h.width/2,s+=h.width;for(const h of n.targetLinks)h.y1=a+h.width/2,a+=h.width}}function jt(){let t=0,n=0,s=1,a=1,h=24,d=8,m,_=zt,i=mt,o,l,x=Dt,v=$t,y=6;function b(){const e={nodes:x.apply(null,arguments),links:v.apply(null,arguments)};return M(e),T(e),N(e),C(e),w(e),yt(e),e}b.update=function(e){return yt(e),e},b.nodeId=function(e){return arguments.length?(_=typeof e=="function"?e:X(e),b):_},b.nodeAlign=function(e){return arguments.length?(i=typeof e=="function"?e:X(e),b):i},b.nodeSort=function(e){return arguments.length?(o=e,b):o},b.nodeWidth=function(e){return arguments.length?(h=+e,b):h},b.nodePadding=function(e){return arguments.length?(d=m=+e,b):d},b.nodes=function(e){return arguments.length?(x=typeof e=="function"?e:X(e),b):x},b.links=function(e){return arguments.length?(v=typeof e=="function"?e:X(e),b):v},b.linkSort=function(e){return arguments.length?(l=e,b):l},b.size=function(e){return arguments.length?(t=n=0,s=+e[0],a=+e[1],b):[s-t,a-n]},b.extent=function(e){return arguments.length?(t=+e[0][0],s=+e[1][0],n=+e[0][1],a=+e[1][1],b):[[t,n],[s,a]]},b.iterations=function(e){return arguments.length?(y=+e,b):y};function M({nodes:e,links:f}){for(const[c,r]of e.entries())r.index=c,r.sourceLinks=[],r.targetLinks=[];const u=new Map(e.map((c,r)=>[_(c,r,e),c]));for(const[c,r]of f.entries()){r.index=c;let{source:k,target:S}=r;typeof k!="object"&&(k=r.source=ft(u,k)),typeof S!="object"&&(S=r.target=ft(u,S)),k.sourceLinks.push(r),S.targetLinks.push(r)}if(l!=null)for(const{sourceLinks:c,targetLinks:r}of e)c.sort(l),r.sort(l)}function T({nodes:e}){for(const f of e)f.value=f.fixedValue===void 0?Math.max(nt(f.sourceLinks,it),nt(f.targetLinks,it)):f.fixedValue}function N({nodes:e}){const f=e.length;let u=new Set(e),c=new Set,r=0;for(;u.size;){for(const k of u){k.depth=r;for(const{target:S}of k.sourceLinks)c.add(S)}if(++r>f)throw new Error("circular link");u=c,c=new Set}}function C({nodes:e}){const f=e.length;let u=new Set(e),c=new Set,r=0;for(;u.size;){for(const k of u){k.height=r;for(const{source:S}of k.targetLinks)c.add(S)}if(++r>f)throw new Error("circular link");u=c,c=new Set}}function D({nodes:e}){const f=ct(e,r=>r.depth)+1,u=(s-t-h)/(f-1),c=new Array(f);for(const r of e){const k=Math.max(0,Math.min(f-1,Math.floor(i.call(null,r,f))));r.layer=k,r.x0=t+k*u,r.x1=r.x0+h,c[k]?c[k].push(r):c[k]=[r]}if(o)for(const r of c)r.sort(o);return c}function R(e){const f=pt(e,u=>(a-n-(u.length-1)*m)/nt(u,it));for(const u of e){let c=n;for(const r of u){r.y0=c,r.y1=c+r.value*f,c=r.y1+m;for(const k of r.sourceLinks)k.width=k.value*f}c=(a-c+m)/(u.length+1);for(let r=0;ru.length)-1)),R(f);for(let u=0;u0))continue;let G=(L/F-S.y0)*f;S.y0+=G,S.y1+=G,E(S)}o===void 0&&k.sort(Q),O(k,u)}}function B(e,f,u){for(let c=e.length,r=c-2;r>=0;--r){const k=e[r];for(const S of k){let L=0,F=0;for(const{target:Y,value:et}of S.sourceLinks){let q=et*(Y.layer-S.layer);L+=I(S,Y)*q,F+=q}if(!(F>0))continue;let G=(L/F-S.y0)*f;S.y0+=G,S.y1+=G,E(S)}o===void 0&&k.sort(Q),O(k,u)}}function O(e,f){const u=e.length>>1,c=e[u];g(e,c.y0-m,u-1,f),z(e,c.y1+m,u+1,f),g(e,a,e.length-1,f),z(e,n,0,f)}function z(e,f,u,c){for(;u1e-6&&(r.y0+=k,r.y1+=k),f=r.y1+m}}function g(e,f,u,c){for(;u>=0;--u){const r=e[u],k=(r.y1-f)*c;k>1e-6&&(r.y0-=k,r.y1-=k),f=r.y0-m}}function E({sourceLinks:e,targetLinks:f}){if(l===void 0){for(const{source:{sourceLinks:u}}of f)u.sort(ht);for(const{target:{targetLinks:u}}of e)u.sort(ut)}}function A(e){if(l===void 0)for(const{sourceLinks:f,targetLinks:u}of e)f.sort(ht),u.sort(ut)}function $(e,f){let u=e.y0-(e.sourceLinks.length-1)*m/2;for(const{target:c,width:r}of e.sourceLinks){if(c===f)break;u+=r+m}for(const{source:c,width:r}of f.targetLinks){if(c===e)break;u-=r}return u}function I(e,f){let u=f.y0-(f.targetLinks.length-1)*m/2;for(const{source:c,width:r}of f.targetLinks){if(c===e)break;u+=r+m}for(const{target:c,width:r}of e.sourceLinks){if(c===f)break;u-=r}return u}return b}var st=Math.PI,rt=2*st,V=1e-6,Bt=rt-V;function ot(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function kt(){return new ot}ot.prototype=kt.prototype={constructor:ot,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,s,a){this._+="Q"+ +t+","+ +n+","+(this._x1=+s)+","+(this._y1=+a)},bezierCurveTo:function(t,n,s,a,h,d){this._+="C"+ +t+","+ +n+","+ +s+","+ +a+","+(this._x1=+h)+","+(this._y1=+d)},arcTo:function(t,n,s,a,h){t=+t,n=+n,s=+s,a=+a,h=+h;var d=this._x1,m=this._y1,_=s-t,i=a-n,o=d-t,l=m-n,x=o*o+l*l;if(h<0)throw new Error("negative radius: "+h);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(x>V)if(!(Math.abs(l*_-i*o)>V)||!h)this._+="L"+(this._x1=t)+","+(this._y1=n);else{var v=s-d,y=a-m,b=_*_+i*i,M=v*v+y*y,T=Math.sqrt(b),N=Math.sqrt(x),C=h*Math.tan((st-Math.acos((b+x-M)/(2*T*N)))/2),D=C/N,R=C/T;Math.abs(D-1)>V&&(this._+="L"+(t+D*o)+","+(n+D*l)),this._+="A"+h+","+h+",0,0,"+ +(l*v>o*y)+","+(this._x1=t+R*_)+","+(this._y1=n+R*i)}},arc:function(t,n,s,a,h,d){t=+t,n=+n,s=+s,d=!!d;var m=s*Math.cos(a),_=s*Math.sin(a),i=t+m,o=n+_,l=1^d,x=d?a-h:h-a;if(s<0)throw new Error("negative radius: "+s);this._x1===null?this._+="M"+i+","+o:(Math.abs(this._x1-i)>V||Math.abs(this._y1-o)>V)&&(this._+="L"+i+","+o),s&&(x<0&&(x=x%rt+rt),x>Bt?this._+="A"+s+","+s+",0,1,"+l+","+(t-m)+","+(n-_)+"A"+s+","+s+",0,1,"+l+","+(this._x1=i)+","+(this._y1=o):x>V&&(this._+="A"+s+","+s+",0,"+ +(x>=st)+","+l+","+(this._x1=t+s*Math.cos(h))+","+(this._y1=n+s*Math.sin(h))))},rect:function(t,n,s,a){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +s+"v"+ +a+"h"+-s+"Z"},toString:function(){return this._}};function dt(t){return function(){return t}}function Rt(t){return t[0]}function Ft(t){return t[1]}var Vt=Array.prototype.slice;function Wt(t){return t.source}function Ut(t){return t.target}function Gt(t){var n=Wt,s=Ut,a=Rt,h=Ft,d=null;function m(){var _,i=Vt.call(arguments),o=n.apply(this,i),l=s.apply(this,i);if(d||(d=_=kt()),t(d,+a.apply(this,(i[0]=o,i)),+h.apply(this,i),+a.apply(this,(i[0]=l,i)),+h.apply(this,i)),_)return d=null,_+""||null}return m.source=function(_){return arguments.length?(n=_,m):n},m.target=function(_){return arguments.length?(s=_,m):s},m.x=function(_){return arguments.length?(a=typeof _=="function"?_:dt(+_),m):a},m.y=function(_){return arguments.length?(h=typeof _=="function"?_:dt(+_),m):h},m.context=function(_){return arguments.length?(d=_??null,m):d},m}function Yt(t,n,s,a,h){t.moveTo(n,s),t.bezierCurveTo(n=(n+a)/2,s,n,h,a,h)}function qt(){return Gt(Yt)}function Ht(t){return[t.source.x1,t.y0]}function Xt(t){return[t.target.x0,t.y1]}function Qt(){return qt().source(Ht).target(Xt)}var at=function(){var t=p(function(_,i,o,l){for(o=o||{},l=_.length;l--;o[_[l]]=i);return o},"o"),n=[1,9],s=[1,10],a=[1,5,10,12],h={trace:p(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:p(function(i,o,l,x,v,y,b){var M=y.length-1;switch(v){case 7:const T=x.findOrCreateNode(y[M-4].trim().replaceAll('""','"')),N=x.findOrCreateNode(y[M-2].trim().replaceAll('""','"')),C=parseFloat(y[M].trim());x.addLink(T,N,C);break;case 8:case 9:case 11:this.$=y[M];break;case 10:this.$=y[M-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(a,[2,8]),t(a,[2,9]),{19:[1,16]},t(a,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:s},{15:18,16:7,17:8,18:n,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(a,[2,10]),{15:21,16:7,17:8,18:n,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:p(function(i,o){if(o.recoverable)this.trace(i);else{var l=new Error(i);throw l.hash=o,l}},"parseError"),parse:p(function(i){var o=this,l=[0],x=[],v=[null],y=[],b=this.table,M="",T=0,N=0,C=2,D=1,R=y.slice.call(arguments,1),w=Object.create(this.lexer),P={yy:{}};for(var B in this.yy)Object.prototype.hasOwnProperty.call(this.yy,B)&&(P.yy[B]=this.yy[B]);w.setInput(i,P.yy),P.yy.lexer=w,P.yy.parser=this,typeof w.yylloc>"u"&&(w.yylloc={});var O=w.yylloc;y.push(O);var z=w.options&&w.options.ranges;typeof P.yy.parseError=="function"?this.parseError=P.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function g(L){l.length=l.length-2*L,v.length=v.length-L,y.length=y.length-L}p(g,"popStack");function E(){var L;return L=x.pop()||w.lex()||D,typeof L!="number"&&(L instanceof Array&&(x=L,L=x.pop()),L=o.symbols_[L]||L),L}p(E,"lex");for(var A,$,I,e,f={},u,c,r,k;;){if($=l[l.length-1],this.defaultActions[$]?I=this.defaultActions[$]:((A===null||typeof A>"u")&&(A=E()),I=b[$]&&b[$][A]),typeof I>"u"||!I.length||!I[0]){var S="";k=[];for(u in b[$])this.terminals_[u]&&u>C&&k.push("'"+this.terminals_[u]+"'");w.showPosition?S="Parse error on line "+(T+1)+`: +import{_ as p,q as _t,t as xt,s as vt,g as bt,b as St,a as wt,c as lt,A as Lt,d as H,O as Et,aT as At,a2 as Tt,z as Mt,k as Nt}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";function ct(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s=a)&&(s=a);else{let a=-1;for(let h of t)(h=n(h,++a,t))!=null&&(s=h)&&(s=h)}return s}function pt(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s>a||s===void 0&&a>=a)&&(s=a);else{let a=-1;for(let h of t)(h=n(h,++a,t))!=null&&(s>h||s===void 0&&h>=h)&&(s=h)}return s}function nt(t,n){let s=0;if(n===void 0)for(let a of t)(a=+a)&&(s+=a);else{let a=-1;for(let h of t)(h=+n(h,++a,t))&&(s+=h)}return s}function It(t){return t.target.depth}function Pt(t){return t.depth}function Ct(t,n){return n-1-t.height}function mt(t,n){return t.sourceLinks.length?t.depth:n-1}function Ot(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?pt(t.sourceLinks,It)-1:0}function X(t){return function(){return t}}function ut(t,n){return Q(t.source,n.source)||t.index-n.index}function ht(t,n){return Q(t.target,n.target)||t.index-n.index}function Q(t,n){return t.y0-n.y0}function it(t){return t.value}function zt(t){return t.index}function Dt(t){return t.nodes}function $t(t){return t.links}function ft(t,n){const s=t.get(n);if(!s)throw new Error("missing: "+n);return s}function yt({nodes:t}){for(const n of t){let s=n.y0,a=s;for(const h of n.sourceLinks)h.y0=s+h.width/2,s+=h.width;for(const h of n.targetLinks)h.y1=a+h.width/2,a+=h.width}}function jt(){let t=0,n=0,s=1,a=1,h=24,d=8,m,_=zt,i=mt,o,l,x=Dt,v=$t,y=6;function b(){const e={nodes:x.apply(null,arguments),links:v.apply(null,arguments)};return M(e),T(e),N(e),C(e),w(e),yt(e),e}b.update=function(e){return yt(e),e},b.nodeId=function(e){return arguments.length?(_=typeof e=="function"?e:X(e),b):_},b.nodeAlign=function(e){return arguments.length?(i=typeof e=="function"?e:X(e),b):i},b.nodeSort=function(e){return arguments.length?(o=e,b):o},b.nodeWidth=function(e){return arguments.length?(h=+e,b):h},b.nodePadding=function(e){return arguments.length?(d=m=+e,b):d},b.nodes=function(e){return arguments.length?(x=typeof e=="function"?e:X(e),b):x},b.links=function(e){return arguments.length?(v=typeof e=="function"?e:X(e),b):v},b.linkSort=function(e){return arguments.length?(l=e,b):l},b.size=function(e){return arguments.length?(t=n=0,s=+e[0],a=+e[1],b):[s-t,a-n]},b.extent=function(e){return arguments.length?(t=+e[0][0],s=+e[1][0],n=+e[0][1],a=+e[1][1],b):[[t,n],[s,a]]},b.iterations=function(e){return arguments.length?(y=+e,b):y};function M({nodes:e,links:f}){for(const[c,r]of e.entries())r.index=c,r.sourceLinks=[],r.targetLinks=[];const u=new Map(e.map((c,r)=>[_(c,r,e),c]));for(const[c,r]of f.entries()){r.index=c;let{source:k,target:S}=r;typeof k!="object"&&(k=r.source=ft(u,k)),typeof S!="object"&&(S=r.target=ft(u,S)),k.sourceLinks.push(r),S.targetLinks.push(r)}if(l!=null)for(const{sourceLinks:c,targetLinks:r}of e)c.sort(l),r.sort(l)}function T({nodes:e}){for(const f of e)f.value=f.fixedValue===void 0?Math.max(nt(f.sourceLinks,it),nt(f.targetLinks,it)):f.fixedValue}function N({nodes:e}){const f=e.length;let u=new Set(e),c=new Set,r=0;for(;u.size;){for(const k of u){k.depth=r;for(const{target:S}of k.sourceLinks)c.add(S)}if(++r>f)throw new Error("circular link");u=c,c=new Set}}function C({nodes:e}){const f=e.length;let u=new Set(e),c=new Set,r=0;for(;u.size;){for(const k of u){k.height=r;for(const{source:S}of k.targetLinks)c.add(S)}if(++r>f)throw new Error("circular link");u=c,c=new Set}}function D({nodes:e}){const f=ct(e,r=>r.depth)+1,u=(s-t-h)/(f-1),c=new Array(f);for(const r of e){const k=Math.max(0,Math.min(f-1,Math.floor(i.call(null,r,f))));r.layer=k,r.x0=t+k*u,r.x1=r.x0+h,c[k]?c[k].push(r):c[k]=[r]}if(o)for(const r of c)r.sort(o);return c}function R(e){const f=pt(e,u=>(a-n-(u.length-1)*m)/nt(u,it));for(const u of e){let c=n;for(const r of u){r.y0=c,r.y1=c+r.value*f,c=r.y1+m;for(const k of r.sourceLinks)k.width=k.value*f}c=(a-c+m)/(u.length+1);for(let r=0;ru.length)-1)),R(f);for(let u=0;u0))continue;let G=(L/F-S.y0)*f;S.y0+=G,S.y1+=G,E(S)}o===void 0&&k.sort(Q),O(k,u)}}function B(e,f,u){for(let c=e.length,r=c-2;r>=0;--r){const k=e[r];for(const S of k){let L=0,F=0;for(const{target:Y,value:et}of S.sourceLinks){let q=et*(Y.layer-S.layer);L+=I(S,Y)*q,F+=q}if(!(F>0))continue;let G=(L/F-S.y0)*f;S.y0+=G,S.y1+=G,E(S)}o===void 0&&k.sort(Q),O(k,u)}}function O(e,f){const u=e.length>>1,c=e[u];g(e,c.y0-m,u-1,f),z(e,c.y1+m,u+1,f),g(e,a,e.length-1,f),z(e,n,0,f)}function z(e,f,u,c){for(;u1e-6&&(r.y0+=k,r.y1+=k),f=r.y1+m}}function g(e,f,u,c){for(;u>=0;--u){const r=e[u],k=(r.y1-f)*c;k>1e-6&&(r.y0-=k,r.y1-=k),f=r.y0-m}}function E({sourceLinks:e,targetLinks:f}){if(l===void 0){for(const{source:{sourceLinks:u}}of f)u.sort(ht);for(const{target:{targetLinks:u}}of e)u.sort(ut)}}function A(e){if(l===void 0)for(const{sourceLinks:f,targetLinks:u}of e)f.sort(ht),u.sort(ut)}function $(e,f){let u=e.y0-(e.sourceLinks.length-1)*m/2;for(const{target:c,width:r}of e.sourceLinks){if(c===f)break;u+=r+m}for(const{source:c,width:r}of f.targetLinks){if(c===e)break;u-=r}return u}function I(e,f){let u=f.y0-(f.targetLinks.length-1)*m/2;for(const{source:c,width:r}of f.targetLinks){if(c===e)break;u+=r+m}for(const{target:c,width:r}of e.sourceLinks){if(c===f)break;u-=r}return u}return b}var st=Math.PI,rt=2*st,V=1e-6,Bt=rt-V;function ot(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function kt(){return new ot}ot.prototype=kt.prototype={constructor:ot,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,s,a){this._+="Q"+ +t+","+ +n+","+(this._x1=+s)+","+(this._y1=+a)},bezierCurveTo:function(t,n,s,a,h,d){this._+="C"+ +t+","+ +n+","+ +s+","+ +a+","+(this._x1=+h)+","+(this._y1=+d)},arcTo:function(t,n,s,a,h){t=+t,n=+n,s=+s,a=+a,h=+h;var d=this._x1,m=this._y1,_=s-t,i=a-n,o=d-t,l=m-n,x=o*o+l*l;if(h<0)throw new Error("negative radius: "+h);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(x>V)if(!(Math.abs(l*_-i*o)>V)||!h)this._+="L"+(this._x1=t)+","+(this._y1=n);else{var v=s-d,y=a-m,b=_*_+i*i,M=v*v+y*y,T=Math.sqrt(b),N=Math.sqrt(x),C=h*Math.tan((st-Math.acos((b+x-M)/(2*T*N)))/2),D=C/N,R=C/T;Math.abs(D-1)>V&&(this._+="L"+(t+D*o)+","+(n+D*l)),this._+="A"+h+","+h+",0,0,"+ +(l*v>o*y)+","+(this._x1=t+R*_)+","+(this._y1=n+R*i)}},arc:function(t,n,s,a,h,d){t=+t,n=+n,s=+s,d=!!d;var m=s*Math.cos(a),_=s*Math.sin(a),i=t+m,o=n+_,l=1^d,x=d?a-h:h-a;if(s<0)throw new Error("negative radius: "+s);this._x1===null?this._+="M"+i+","+o:(Math.abs(this._x1-i)>V||Math.abs(this._y1-o)>V)&&(this._+="L"+i+","+o),s&&(x<0&&(x=x%rt+rt),x>Bt?this._+="A"+s+","+s+",0,1,"+l+","+(t-m)+","+(n-_)+"A"+s+","+s+",0,1,"+l+","+(this._x1=i)+","+(this._y1=o):x>V&&(this._+="A"+s+","+s+",0,"+ +(x>=st)+","+l+","+(this._x1=t+s*Math.cos(h))+","+(this._y1=n+s*Math.sin(h))))},rect:function(t,n,s,a){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +s+"v"+ +a+"h"+-s+"Z"},toString:function(){return this._}};function dt(t){return function(){return t}}function Rt(t){return t[0]}function Ft(t){return t[1]}var Vt=Array.prototype.slice;function Wt(t){return t.source}function Ut(t){return t.target}function Gt(t){var n=Wt,s=Ut,a=Rt,h=Ft,d=null;function m(){var _,i=Vt.call(arguments),o=n.apply(this,i),l=s.apply(this,i);if(d||(d=_=kt()),t(d,+a.apply(this,(i[0]=o,i)),+h.apply(this,i),+a.apply(this,(i[0]=l,i)),+h.apply(this,i)),_)return d=null,_+""||null}return m.source=function(_){return arguments.length?(n=_,m):n},m.target=function(_){return arguments.length?(s=_,m):s},m.x=function(_){return arguments.length?(a=typeof _=="function"?_:dt(+_),m):a},m.y=function(_){return arguments.length?(h=typeof _=="function"?_:dt(+_),m):h},m.context=function(_){return arguments.length?(d=_??null,m):d},m}function Yt(t,n,s,a,h){t.moveTo(n,s),t.bezierCurveTo(n=(n+a)/2,s,n,h,a,h)}function qt(){return Gt(Yt)}function Ht(t){return[t.source.x1,t.y0]}function Xt(t){return[t.target.x0,t.y1]}function Qt(){return qt().source(Ht).target(Xt)}var at=function(){var t=p(function(_,i,o,l){for(o=o||{},l=_.length;l--;o[_[l]]=i);return o},"o"),n=[1,9],s=[1,10],a=[1,5,10,12],h={trace:p(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:p(function(i,o,l,x,v,y,b){var M=y.length-1;switch(v){case 7:const T=x.findOrCreateNode(y[M-4].trim().replaceAll('""','"')),N=x.findOrCreateNode(y[M-2].trim().replaceAll('""','"')),C=parseFloat(y[M].trim());x.addLink(T,N,C);break;case 8:case 9:case 11:this.$=y[M];break;case 10:this.$=y[M-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(a,[2,8]),t(a,[2,9]),{19:[1,16]},t(a,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:s},{15:18,16:7,17:8,18:n,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(a,[2,10]),{15:21,16:7,17:8,18:n,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:p(function(i,o){if(o.recoverable)this.trace(i);else{var l=new Error(i);throw l.hash=o,l}},"parseError"),parse:p(function(i){var o=this,l=[0],x=[],v=[null],y=[],b=this.table,M="",T=0,N=0,C=2,D=1,R=y.slice.call(arguments,1),w=Object.create(this.lexer),P={yy:{}};for(var B in this.yy)Object.prototype.hasOwnProperty.call(this.yy,B)&&(P.yy[B]=this.yy[B]);w.setInput(i,P.yy),P.yy.lexer=w,P.yy.parser=this,typeof w.yylloc>"u"&&(w.yylloc={});var O=w.yylloc;y.push(O);var z=w.options&&w.options.ranges;typeof P.yy.parseError=="function"?this.parseError=P.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function g(L){l.length=l.length-2*L,v.length=v.length-L,y.length=y.length-L}p(g,"popStack");function E(){var L;return L=x.pop()||w.lex()||D,typeof L!="number"&&(L instanceof Array&&(x=L,L=x.pop()),L=o.symbols_[L]||L),L}p(E,"lex");for(var A,$,I,e,f={},u,c,r,k;;){if($=l[l.length-1],this.defaultActions[$]?I=this.defaultActions[$]:((A===null||typeof A>"u")&&(A=E()),I=b[$]&&b[$][A]),typeof I>"u"||!I.length||!I[0]){var S="";k=[];for(u in b[$])this.terminals_[u]&&u>C&&k.push("'"+this.terminals_[u]+"'");w.showPosition?S="Parse error on line "+(T+1)+`: `+w.showPosition()+` Expecting `+k.join(", ")+", got '"+(this.terminals_[A]||A)+"'":S="Parse error on line "+(T+1)+": Unexpected "+(A==D?"end of input":"'"+(this.terminals_[A]||A)+"'"),this.parseError(S,{text:w.match,token:this.terminals_[A]||A,line:w.yylineno,loc:O,expected:k})}if(I[0]instanceof Array&&I.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+A);switch(I[0]){case 1:l.push(A),v.push(w.yytext),y.push(w.yylloc),l.push(I[1]),A=null,N=w.yyleng,M=w.yytext,T=w.yylineno,O=w.yylloc;break;case 2:if(c=this.productions_[I[1]][1],f.$=v[v.length-c],f._$={first_line:y[y.length-(c||1)].first_line,last_line:y[y.length-1].last_line,first_column:y[y.length-(c||1)].first_column,last_column:y[y.length-1].last_column},z&&(f._$.range=[y[y.length-(c||1)].range[0],y[y.length-1].range[1]]),e=this.performAction.apply(f,[M,N,T,P.yy,I[1],v,y].concat(R)),typeof e<"u")return e;c&&(l=l.slice(0,-1*c*2),v=v.slice(0,-1*c),y=y.slice(0,-1*c)),l.push(this.productions_[I[1]][0]),v.push(f.$),y.push(f._$),r=b[l[l.length-2]][l[l.length-1]],l.push(r);break;case 3:return!0}}return!0},"parse")},d=function(){var _={EOF:1,parseError:p(function(o,l){if(this.yy.parser)this.yy.parser.parseError(o,l);else throw new Error(o)},"parseError"),setInput:p(function(i,o){return this.yy=o||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:p(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var o=i.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:p(function(i){var o=i.length,l=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===x.length?this.yylloc.first_column:0)+x[x.length-l.length].length-l[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},"unput"),more:p(function(){return this._more=!0,this},"more"),reject:p(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:p(function(i){this.unput(this.match.slice(i))},"less"),pastInput:p(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:p(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:p(function(){var i=this.pastInput(),o=new Array(i.length+1).join("-");return i+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/sequenceDiagram-X6HHIX6F-hDfAwQVw.js b/lightrag/api/webui/assets/sequenceDiagram-X6HHIX6F-D6_yAdcj.js similarity index 99% rename from lightrag/api/webui/assets/sequenceDiagram-X6HHIX6F-hDfAwQVw.js rename to lightrag/api/webui/assets/sequenceDiagram-X6HHIX6F-D6_yAdcj.js index d849a380..86d69365 100644 --- a/lightrag/api/webui/assets/sequenceDiagram-X6HHIX6F-hDfAwQVw.js +++ b/lightrag/api/webui/assets/sequenceDiagram-X6HHIX6F-D6_yAdcj.js @@ -1,4 +1,4 @@ -import{a as xe,b as Yt,g as kt,d as Te,c as ye,e as Ee}from"./chunk-D6G4REZN-CO4Tk6j6.js";import{I as be}from"./chunk-XZIHB7SX-BjHVUYBP.js";import{_ as p,o as me,c as $,d as _t,l as G,j as Zt,e as we,f as Ie,k as L,b as Gt,s as Le,q as _e,a as Pe,g as Ae,t as ke,z as Ne,i as Pt,u as Y,V as ot,W as bt,M as Qt,Z as ve,X as jt,G as Ct}from"./mermaid-vendor-SwnP6Sr8.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var Ot=function(){var e=p(function(dt,I,_,A){for(_=_||{},A=dt.length;A--;_[dt[A]]=I);return _},"o"),t=[1,2],c=[1,3],s=[1,4],a=[2,4],i=[1,9],n=[1,11],d=[1,13],h=[1,14],r=[1,16],g=[1,17],E=[1,18],f=[1,24],T=[1,25],m=[1,26],w=[1,27],k=[1,28],O=[1,29],S=[1,30],B=[1,31],D=[1,32],F=[1,33],q=[1,34],X=[1,35],tt=[1,36],z=[1,37],H=[1,38],W=[1,39],M=[1,41],J=[1,42],K=[1,43],Z=[1,44],et=[1,45],v=[1,46],y=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],P=[4,5,16,50,52,53],Q=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],at=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],N=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],qt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],it=[68,69,70],ct=[1,122],vt={trace:p(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:p(function(I,_,A,b,R,l,Et){var u=l.length-1;switch(R){case 3:return b.apply(l[u]),l[u];case 4:case 9:this.$=[];break;case 5:case 10:l[u-1].push(l[u]),this.$=l[u-1];break;case 6:case 7:case 11:case 12:this.$=l[u];break;case 8:case 13:this.$=[];break;case 15:l[u].type="createParticipant",this.$=l[u];break;case 16:l[u-1].unshift({type:"boxStart",boxData:b.parseBoxData(l[u-2])}),l[u-1].push({type:"boxEnd",boxText:l[u-2]}),this.$=l[u-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(l[u-2]),sequenceIndexStep:Number(l[u-1]),sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(l[u-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:b.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:l[u-1].actor};break;case 23:this.$={type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:l[u-1].actor};break;case 29:b.setDiagramTitle(l[u].substring(6)),this.$=l[u].substring(6);break;case 30:b.setDiagramTitle(l[u].substring(7)),this.$=l[u].substring(7);break;case 31:this.$=l[u].trim(),b.setAccTitle(this.$);break;case 32:case 33:this.$=l[u].trim(),b.setAccDescription(this.$);break;case 34:l[u-1].unshift({type:"loopStart",loopText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.LOOP_START}),l[u-1].push({type:"loopEnd",loopText:l[u-2],signalType:b.LINETYPE.LOOP_END}),this.$=l[u-1];break;case 35:l[u-1].unshift({type:"rectStart",color:b.parseMessage(l[u-2]),signalType:b.LINETYPE.RECT_START}),l[u-1].push({type:"rectEnd",color:b.parseMessage(l[u-2]),signalType:b.LINETYPE.RECT_END}),this.$=l[u-1];break;case 36:l[u-1].unshift({type:"optStart",optText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.OPT_START}),l[u-1].push({type:"optEnd",optText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.OPT_END}),this.$=l[u-1];break;case 37:l[u-1].unshift({type:"altStart",altText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.ALT_START}),l[u-1].push({type:"altEnd",signalType:b.LINETYPE.ALT_END}),this.$=l[u-1];break;case 38:l[u-1].unshift({type:"parStart",parText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.PAR_START}),l[u-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=l[u-1];break;case 39:l[u-1].unshift({type:"parStart",parText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.PAR_OVER_START}),l[u-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=l[u-1];break;case 40:l[u-1].unshift({type:"criticalStart",criticalText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.CRITICAL_START}),l[u-1].push({type:"criticalEnd",signalType:b.LINETYPE.CRITICAL_END}),this.$=l[u-1];break;case 41:l[u-1].unshift({type:"breakStart",breakText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.BREAK_START}),l[u-1].push({type:"breakEnd",optText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.BREAK_END}),this.$=l[u-1];break;case 43:this.$=l[u-3].concat([{type:"option",optionText:b.parseMessage(l[u-1]),signalType:b.LINETYPE.CRITICAL_OPTION},l[u]]);break;case 45:this.$=l[u-3].concat([{type:"and",parText:b.parseMessage(l[u-1]),signalType:b.LINETYPE.PAR_AND},l[u]]);break;case 47:this.$=l[u-3].concat([{type:"else",altText:b.parseMessage(l[u-1]),signalType:b.LINETYPE.ALT_ELSE},l[u]]);break;case 48:l[u-3].draw="participant",l[u-3].type="addParticipant",l[u-3].description=b.parseMessage(l[u-1]),this.$=l[u-3];break;case 49:l[u-1].draw="participant",l[u-1].type="addParticipant",this.$=l[u-1];break;case 50:l[u-3].draw="actor",l[u-3].type="addParticipant",l[u-3].description=b.parseMessage(l[u-1]),this.$=l[u-3];break;case 51:l[u-1].draw="actor",l[u-1].type="addParticipant",this.$=l[u-1];break;case 52:l[u-1].type="destroyParticipant",this.$=l[u-1];break;case 53:this.$=[l[u-1],{type:"addNote",placement:l[u-2],actor:l[u-1].actor,text:l[u]}];break;case 54:l[u-2]=[].concat(l[u-1],l[u-1]).slice(0,2),l[u-2][0]=l[u-2][0].actor,l[u-2][1]=l[u-2][1].actor,this.$=[l[u-1],{type:"addNote",placement:b.PLACEMENT.OVER,actor:l[u-2].slice(0,2),text:l[u]}];break;case 55:this.$=[l[u-1],{type:"addLinks",actor:l[u-1].actor,text:l[u]}];break;case 56:this.$=[l[u-1],{type:"addALink",actor:l[u-1].actor,text:l[u]}];break;case 57:this.$=[l[u-1],{type:"addProperties",actor:l[u-1].actor,text:l[u]}];break;case 58:this.$=[l[u-1],{type:"addDetails",actor:l[u-1].actor,text:l[u]}];break;case 61:this.$=[l[u-2],l[u]];break;case 62:this.$=l[u];break;case 63:this.$=b.PLACEMENT.LEFTOF;break;case 64:this.$=b.PLACEMENT.RIGHTOF;break;case 65:this.$=[l[u-4],l[u-1],{type:"addMessage",from:l[u-4].actor,to:l[u-1].actor,signalType:l[u-3],msg:l[u],activate:!0},{type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:l[u-1].actor}];break;case 66:this.$=[l[u-4],l[u-1],{type:"addMessage",from:l[u-4].actor,to:l[u-1].actor,signalType:l[u-3],msg:l[u]},{type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:l[u-4].actor}];break;case 67:this.$=[l[u-3],l[u-1],{type:"addMessage",from:l[u-3].actor,to:l[u-1].actor,signalType:l[u-2],msg:l[u]}];break;case 68:this.$={type:"addParticipant",actor:l[u]};break;case 69:this.$=b.LINETYPE.SOLID_OPEN;break;case 70:this.$=b.LINETYPE.DOTTED_OPEN;break;case 71:this.$=b.LINETYPE.SOLID;break;case 72:this.$=b.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=b.LINETYPE.DOTTED;break;case 74:this.$=b.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=b.LINETYPE.SOLID_CROSS;break;case 76:this.$=b.LINETYPE.DOTTED_CROSS;break;case 77:this.$=b.LINETYPE.SOLID_POINT;break;case 78:this.$=b.LINETYPE.DOTTED_POINT;break;case 79:this.$=b.parseMessage(l[u].trim().substring(1));break}},"anonymous"),table:[{3:1,4:t,5:c,6:s},{1:[3]},{3:5,4:t,5:c,6:s},{3:6,4:t,5:c,6:s},e([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],a,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:i,5:n,8:8,9:10,12:12,13:d,14:h,17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},e(y,[2,5]),{9:47,12:12,13:d,14:h,17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},e(y,[2,7]),e(y,[2,8]),e(y,[2,14]),{12:48,50:z,52:H,53:W},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:v},{22:55,70:v},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},e(y,[2,29]),e(y,[2,30]),{32:[1,61]},{34:[1,62]},e(y,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:v},{22:72,70:v},{22:73,70:v},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:v},{22:90,70:v},{22:91,70:v},{22:92,70:v},e([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),e(y,[2,6]),e(y,[2,15]),e(P,[2,9],{10:93}),e(y,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},e(y,[2,21]),{5:[1,97]},{5:[1,98]},e(y,[2,24]),e(y,[2,25]),e(y,[2,26]),e(y,[2,27]),e(y,[2,28]),e(y,[2,31]),e(y,[2,32]),e(Q,a,{7:99}),e(Q,a,{7:100}),e(Q,a,{7:101}),e(at,a,{40:102,7:103}),e(N,a,{42:104,7:105}),e(N,a,{7:105,42:106}),e(qt,a,{45:107,7:108}),e(Q,a,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:v},e(it,[2,69]),e(it,[2,70]),e(it,[2,71]),e(it,[2,72]),e(it,[2,73]),e(it,[2,74]),e(it,[2,75]),e(it,[2,76]),e(it,[2,77]),e(it,[2,78]),{22:118,70:v},{22:120,58:119,70:v},{70:[2,63]},{70:[2,64]},{56:121,81:ct},{56:123,81:ct},{56:124,81:ct},{56:125,81:ct},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:z,52:H,53:W},{5:[1,131]},e(y,[2,19]),e(y,[2,20]),e(y,[2,22]),e(y,[2,23]),{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[1,132],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[1,133],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[1,134],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{16:[1,135]},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[2,46],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,49:[1,136],50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{16:[1,137]},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[2,44],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,48:[1,138],50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{16:[1,139]},{16:[1,140]},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[2,42],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,47:[1,141],50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[1,142],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{15:[1,143]},e(y,[2,49]),{15:[1,144]},e(y,[2,51]),e(y,[2,52]),{22:145,70:v},{22:146,70:v},{56:147,81:ct},{56:148,81:ct},{56:149,81:ct},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},e(y,[2,16]),e(P,[2,10]),{12:151,50:z,52:H,53:W},e(P,[2,12]),e(P,[2,13]),e(y,[2,18]),e(y,[2,34]),e(y,[2,35]),e(y,[2,36]),e(y,[2,37]),{15:[1,152]},e(y,[2,38]),{15:[1,153]},e(y,[2,39]),e(y,[2,40]),{15:[1,154]},e(y,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:ct},{56:158,81:ct},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:v},e(P,[2,11]),e(at,a,{7:103,40:160}),e(N,a,{7:105,42:161}),e(qt,a,{7:108,45:162}),e(y,[2,48]),e(y,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:p(function(I,_){if(_.recoverable)this.trace(I);else{var A=new Error(I);throw A.hash=_,A}},"parseError"),parse:p(function(I){var _=this,A=[0],b=[],R=[null],l=[],Et=this.table,u="",wt=0,zt=0,ue=2,Ht=1,pe=l.slice.call(arguments,1),V=Object.create(this.lexer),ht={yy:{}};for(var St in this.yy)Object.prototype.hasOwnProperty.call(this.yy,St)&&(ht.yy[St]=this.yy[St]);V.setInput(I,ht.yy),ht.yy.lexer=V,ht.yy.parser=this,typeof V.yylloc>"u"&&(V.yylloc={});var Mt=V.yylloc;l.push(Mt);var fe=V.options&&V.options.ranges;typeof ht.yy.parseError=="function"?this.parseError=ht.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ge(j){A.length=A.length-2*j,R.length=R.length-j,l.length=l.length-j}p(ge,"popStack");function Kt(){var j;return j=b.pop()||V.lex()||Ht,typeof j!="number"&&(j instanceof Array&&(b=j,j=b.pop()),j=_.symbols_[j]||j),j}p(Kt,"lex");for(var U,ut,st,Rt,gt={},It,lt,Ut,Lt;;){if(ut=A[A.length-1],this.defaultActions[ut]?st=this.defaultActions[ut]:((U===null||typeof U>"u")&&(U=Kt()),st=Et[ut]&&Et[ut][U]),typeof st>"u"||!st.length||!st[0]){var Dt="";Lt=[];for(It in Et[ut])this.terminals_[It]&&It>ue&&Lt.push("'"+this.terminals_[It]+"'");V.showPosition?Dt="Parse error on line "+(wt+1)+`: +import{a as xe,b as Yt,g as kt,d as Te,c as ye,e as Ee}from"./chunk-D6G4REZN-CQqXYBrW.js";import{I as be}from"./chunk-XZIHB7SX-CqkuoyXD.js";import{_ as p,o as me,c as $,d as _t,l as G,j as Zt,e as we,f as Ie,k as L,b as Gt,s as Le,q as _e,a as Pe,g as Ae,t as ke,z as Ne,i as Pt,u as Y,V as ot,W as bt,M as Qt,Z as ve,X as jt,G as Ct}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var Ot=function(){var e=p(function(dt,I,_,A){for(_=_||{},A=dt.length;A--;_[dt[A]]=I);return _},"o"),t=[1,2],c=[1,3],s=[1,4],a=[2,4],i=[1,9],n=[1,11],d=[1,13],h=[1,14],r=[1,16],g=[1,17],E=[1,18],f=[1,24],T=[1,25],m=[1,26],w=[1,27],k=[1,28],O=[1,29],S=[1,30],B=[1,31],D=[1,32],F=[1,33],q=[1,34],X=[1,35],tt=[1,36],z=[1,37],H=[1,38],W=[1,39],M=[1,41],J=[1,42],K=[1,43],Z=[1,44],et=[1,45],v=[1,46],y=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],P=[4,5,16,50,52,53],Q=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],at=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],N=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],qt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],it=[68,69,70],ct=[1,122],vt={trace:p(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:p(function(I,_,A,b,R,l,Et){var u=l.length-1;switch(R){case 3:return b.apply(l[u]),l[u];case 4:case 9:this.$=[];break;case 5:case 10:l[u-1].push(l[u]),this.$=l[u-1];break;case 6:case 7:case 11:case 12:this.$=l[u];break;case 8:case 13:this.$=[];break;case 15:l[u].type="createParticipant",this.$=l[u];break;case 16:l[u-1].unshift({type:"boxStart",boxData:b.parseBoxData(l[u-2])}),l[u-1].push({type:"boxEnd",boxText:l[u-2]}),this.$=l[u-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(l[u-2]),sequenceIndexStep:Number(l[u-1]),sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(l[u-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:b.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:l[u-1].actor};break;case 23:this.$={type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:l[u-1].actor};break;case 29:b.setDiagramTitle(l[u].substring(6)),this.$=l[u].substring(6);break;case 30:b.setDiagramTitle(l[u].substring(7)),this.$=l[u].substring(7);break;case 31:this.$=l[u].trim(),b.setAccTitle(this.$);break;case 32:case 33:this.$=l[u].trim(),b.setAccDescription(this.$);break;case 34:l[u-1].unshift({type:"loopStart",loopText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.LOOP_START}),l[u-1].push({type:"loopEnd",loopText:l[u-2],signalType:b.LINETYPE.LOOP_END}),this.$=l[u-1];break;case 35:l[u-1].unshift({type:"rectStart",color:b.parseMessage(l[u-2]),signalType:b.LINETYPE.RECT_START}),l[u-1].push({type:"rectEnd",color:b.parseMessage(l[u-2]),signalType:b.LINETYPE.RECT_END}),this.$=l[u-1];break;case 36:l[u-1].unshift({type:"optStart",optText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.OPT_START}),l[u-1].push({type:"optEnd",optText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.OPT_END}),this.$=l[u-1];break;case 37:l[u-1].unshift({type:"altStart",altText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.ALT_START}),l[u-1].push({type:"altEnd",signalType:b.LINETYPE.ALT_END}),this.$=l[u-1];break;case 38:l[u-1].unshift({type:"parStart",parText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.PAR_START}),l[u-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=l[u-1];break;case 39:l[u-1].unshift({type:"parStart",parText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.PAR_OVER_START}),l[u-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=l[u-1];break;case 40:l[u-1].unshift({type:"criticalStart",criticalText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.CRITICAL_START}),l[u-1].push({type:"criticalEnd",signalType:b.LINETYPE.CRITICAL_END}),this.$=l[u-1];break;case 41:l[u-1].unshift({type:"breakStart",breakText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.BREAK_START}),l[u-1].push({type:"breakEnd",optText:b.parseMessage(l[u-2]),signalType:b.LINETYPE.BREAK_END}),this.$=l[u-1];break;case 43:this.$=l[u-3].concat([{type:"option",optionText:b.parseMessage(l[u-1]),signalType:b.LINETYPE.CRITICAL_OPTION},l[u]]);break;case 45:this.$=l[u-3].concat([{type:"and",parText:b.parseMessage(l[u-1]),signalType:b.LINETYPE.PAR_AND},l[u]]);break;case 47:this.$=l[u-3].concat([{type:"else",altText:b.parseMessage(l[u-1]),signalType:b.LINETYPE.ALT_ELSE},l[u]]);break;case 48:l[u-3].draw="participant",l[u-3].type="addParticipant",l[u-3].description=b.parseMessage(l[u-1]),this.$=l[u-3];break;case 49:l[u-1].draw="participant",l[u-1].type="addParticipant",this.$=l[u-1];break;case 50:l[u-3].draw="actor",l[u-3].type="addParticipant",l[u-3].description=b.parseMessage(l[u-1]),this.$=l[u-3];break;case 51:l[u-1].draw="actor",l[u-1].type="addParticipant",this.$=l[u-1];break;case 52:l[u-1].type="destroyParticipant",this.$=l[u-1];break;case 53:this.$=[l[u-1],{type:"addNote",placement:l[u-2],actor:l[u-1].actor,text:l[u]}];break;case 54:l[u-2]=[].concat(l[u-1],l[u-1]).slice(0,2),l[u-2][0]=l[u-2][0].actor,l[u-2][1]=l[u-2][1].actor,this.$=[l[u-1],{type:"addNote",placement:b.PLACEMENT.OVER,actor:l[u-2].slice(0,2),text:l[u]}];break;case 55:this.$=[l[u-1],{type:"addLinks",actor:l[u-1].actor,text:l[u]}];break;case 56:this.$=[l[u-1],{type:"addALink",actor:l[u-1].actor,text:l[u]}];break;case 57:this.$=[l[u-1],{type:"addProperties",actor:l[u-1].actor,text:l[u]}];break;case 58:this.$=[l[u-1],{type:"addDetails",actor:l[u-1].actor,text:l[u]}];break;case 61:this.$=[l[u-2],l[u]];break;case 62:this.$=l[u];break;case 63:this.$=b.PLACEMENT.LEFTOF;break;case 64:this.$=b.PLACEMENT.RIGHTOF;break;case 65:this.$=[l[u-4],l[u-1],{type:"addMessage",from:l[u-4].actor,to:l[u-1].actor,signalType:l[u-3],msg:l[u],activate:!0},{type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:l[u-1].actor}];break;case 66:this.$=[l[u-4],l[u-1],{type:"addMessage",from:l[u-4].actor,to:l[u-1].actor,signalType:l[u-3],msg:l[u]},{type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:l[u-4].actor}];break;case 67:this.$=[l[u-3],l[u-1],{type:"addMessage",from:l[u-3].actor,to:l[u-1].actor,signalType:l[u-2],msg:l[u]}];break;case 68:this.$={type:"addParticipant",actor:l[u]};break;case 69:this.$=b.LINETYPE.SOLID_OPEN;break;case 70:this.$=b.LINETYPE.DOTTED_OPEN;break;case 71:this.$=b.LINETYPE.SOLID;break;case 72:this.$=b.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=b.LINETYPE.DOTTED;break;case 74:this.$=b.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=b.LINETYPE.SOLID_CROSS;break;case 76:this.$=b.LINETYPE.DOTTED_CROSS;break;case 77:this.$=b.LINETYPE.SOLID_POINT;break;case 78:this.$=b.LINETYPE.DOTTED_POINT;break;case 79:this.$=b.parseMessage(l[u].trim().substring(1));break}},"anonymous"),table:[{3:1,4:t,5:c,6:s},{1:[3]},{3:5,4:t,5:c,6:s},{3:6,4:t,5:c,6:s},e([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],a,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:i,5:n,8:8,9:10,12:12,13:d,14:h,17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},e(y,[2,5]),{9:47,12:12,13:d,14:h,17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},e(y,[2,7]),e(y,[2,8]),e(y,[2,14]),{12:48,50:z,52:H,53:W},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:v},{22:55,70:v},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},e(y,[2,29]),e(y,[2,30]),{32:[1,61]},{34:[1,62]},e(y,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:v},{22:72,70:v},{22:73,70:v},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:v},{22:90,70:v},{22:91,70:v},{22:92,70:v},e([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),e(y,[2,6]),e(y,[2,15]),e(P,[2,9],{10:93}),e(y,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},e(y,[2,21]),{5:[1,97]},{5:[1,98]},e(y,[2,24]),e(y,[2,25]),e(y,[2,26]),e(y,[2,27]),e(y,[2,28]),e(y,[2,31]),e(y,[2,32]),e(Q,a,{7:99}),e(Q,a,{7:100}),e(Q,a,{7:101}),e(at,a,{40:102,7:103}),e(N,a,{42:104,7:105}),e(N,a,{7:105,42:106}),e(qt,a,{45:107,7:108}),e(Q,a,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:v},e(it,[2,69]),e(it,[2,70]),e(it,[2,71]),e(it,[2,72]),e(it,[2,73]),e(it,[2,74]),e(it,[2,75]),e(it,[2,76]),e(it,[2,77]),e(it,[2,78]),{22:118,70:v},{22:120,58:119,70:v},{70:[2,63]},{70:[2,64]},{56:121,81:ct},{56:123,81:ct},{56:124,81:ct},{56:125,81:ct},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:z,52:H,53:W},{5:[1,131]},e(y,[2,19]),e(y,[2,20]),e(y,[2,22]),e(y,[2,23]),{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[1,132],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[1,133],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[1,134],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{16:[1,135]},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[2,46],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,49:[1,136],50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{16:[1,137]},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[2,44],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,48:[1,138],50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{16:[1,139]},{16:[1,140]},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[2,42],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,47:[1,141],50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{4:i,5:n,8:8,9:10,12:12,13:d,14:h,16:[1,142],17:15,18:r,21:g,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:f,30:T,31:m,33:w,35:k,36:O,37:S,38:B,39:D,41:F,43:q,44:X,46:tt,50:z,52:H,53:W,54:M,59:J,60:K,61:Z,62:et,70:v},{15:[1,143]},e(y,[2,49]),{15:[1,144]},e(y,[2,51]),e(y,[2,52]),{22:145,70:v},{22:146,70:v},{56:147,81:ct},{56:148,81:ct},{56:149,81:ct},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},e(y,[2,16]),e(P,[2,10]),{12:151,50:z,52:H,53:W},e(P,[2,12]),e(P,[2,13]),e(y,[2,18]),e(y,[2,34]),e(y,[2,35]),e(y,[2,36]),e(y,[2,37]),{15:[1,152]},e(y,[2,38]),{15:[1,153]},e(y,[2,39]),e(y,[2,40]),{15:[1,154]},e(y,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:ct},{56:158,81:ct},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:v},e(P,[2,11]),e(at,a,{7:103,40:160}),e(N,a,{7:105,42:161}),e(qt,a,{7:108,45:162}),e(y,[2,48]),e(y,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:p(function(I,_){if(_.recoverable)this.trace(I);else{var A=new Error(I);throw A.hash=_,A}},"parseError"),parse:p(function(I){var _=this,A=[0],b=[],R=[null],l=[],Et=this.table,u="",wt=0,zt=0,ue=2,Ht=1,pe=l.slice.call(arguments,1),V=Object.create(this.lexer),ht={yy:{}};for(var St in this.yy)Object.prototype.hasOwnProperty.call(this.yy,St)&&(ht.yy[St]=this.yy[St]);V.setInput(I,ht.yy),ht.yy.lexer=V,ht.yy.parser=this,typeof V.yylloc>"u"&&(V.yylloc={});var Mt=V.yylloc;l.push(Mt);var fe=V.options&&V.options.ranges;typeof ht.yy.parseError=="function"?this.parseError=ht.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ge(j){A.length=A.length-2*j,R.length=R.length-j,l.length=l.length-j}p(ge,"popStack");function Kt(){var j;return j=b.pop()||V.lex()||Ht,typeof j!="number"&&(j instanceof Array&&(b=j,j=b.pop()),j=_.symbols_[j]||j),j}p(Kt,"lex");for(var U,ut,st,Rt,gt={},It,lt,Ut,Lt;;){if(ut=A[A.length-1],this.defaultActions[ut]?st=this.defaultActions[ut]:((U===null||typeof U>"u")&&(U=Kt()),st=Et[ut]&&Et[ut][U]),typeof st>"u"||!st.length||!st[0]){var Dt="";Lt=[];for(It in Et[ut])this.terminals_[It]&&It>ue&&Lt.push("'"+this.terminals_[It]+"'");V.showPosition?Dt="Parse error on line "+(wt+1)+`: `+V.showPosition()+` Expecting `+Lt.join(", ")+", got '"+(this.terminals_[U]||U)+"'":Dt="Parse error on line "+(wt+1)+": Unexpected "+(U==Ht?"end of input":"'"+(this.terminals_[U]||U)+"'"),this.parseError(Dt,{text:V.match,token:this.terminals_[U]||U,line:V.yylineno,loc:Mt,expected:Lt})}if(st[0]instanceof Array&&st.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ut+", token: "+U);switch(st[0]){case 1:A.push(U),R.push(V.yytext),l.push(V.yylloc),A.push(st[1]),U=null,zt=V.yyleng,u=V.yytext,wt=V.yylineno,Mt=V.yylloc;break;case 2:if(lt=this.productions_[st[1]][1],gt.$=R[R.length-lt],gt._$={first_line:l[l.length-(lt||1)].first_line,last_line:l[l.length-1].last_line,first_column:l[l.length-(lt||1)].first_column,last_column:l[l.length-1].last_column},fe&&(gt._$.range=[l[l.length-(lt||1)].range[0],l[l.length-1].range[1]]),Rt=this.performAction.apply(gt,[u,zt,wt,ht.yy,st[1],R,l].concat(pe)),typeof Rt<"u")return Rt;lt&&(A=A.slice(0,-1*lt*2),R=R.slice(0,-1*lt),l=l.slice(0,-1*lt)),A.push(this.productions_[st[1]][0]),R.push(gt.$),l.push(gt._$),Ut=Et[A[A.length-2]][A[A.length-1]],A.push(Ut);break;case 3:return!0}}return!0},"parse")},he=function(){var dt={EOF:1,parseError:p(function(_,A){if(this.yy.parser)this.yy.parser.parseError(_,A);else throw new Error(_)},"parseError"),setInput:p(function(I,_){return this.yy=_||this.yy||{},this._input=I,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:p(function(){var I=this._input[0];this.yytext+=I,this.yyleng++,this.offset++,this.match+=I,this.matched+=I;var _=I.match(/(?:\r\n?|\n).*/g);return _?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),I},"input"),unput:p(function(I){var _=I.length,A=I.split(/(?:\r\n?|\n)/g);this._input=I+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-_),this.offset-=_;var b=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),A.length-1&&(this.yylineno-=A.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:A?(A.length===b.length?this.yylloc.first_column:0)+b[b.length-A.length].length-A[0].length:this.yylloc.first_column-_},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-_]),this.yyleng=this.yytext.length,this},"unput"),more:p(function(){return this._more=!0,this},"more"),reject:p(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:p(function(I){this.unput(this.match.slice(I))},"less"),pastInput:p(function(){var I=this.matched.substr(0,this.matched.length-this.match.length);return(I.length>20?"...":"")+I.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:p(function(){var I=this.match;return I.length<20&&(I+=this._input.substr(0,20-I.length)),(I.substr(0,20)+(I.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:p(function(){var I=this.pastInput(),_=new Array(I.length+1).join("-");return I+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/stateDiagram-DGXRK772-CcL234E-.js b/lightrag/api/webui/assets/stateDiagram-DGXRK772-BGTY-Rrs.js similarity index 96% rename from lightrag/api/webui/assets/stateDiagram-DGXRK772-CcL234E-.js rename to lightrag/api/webui/assets/stateDiagram-DGXRK772-BGTY-Rrs.js index b93c1777..54bbfe3a 100644 --- a/lightrag/api/webui/assets/stateDiagram-DGXRK772-CcL234E-.js +++ b/lightrag/api/webui/assets/stateDiagram-DGXRK772-BGTY-Rrs.js @@ -1 +1 @@ -import{s as W,a as P,S as N}from"./chunk-AEK57VVT-BRJnVklE.js";import{_ as u,c as t,d as H,l as S,e as C,k as z,U,$ as F,u as O}from"./mermaid-vendor-SwnP6Sr8.js";import{G as J}from"./graph-CmqUPRtj.js";import{l as X}from"./layout-Klo12PD4.js";import"./chunk-RZ5BOZE2-vCqEaZEa.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-D81M49Y6.js";import"./_basePickBy--_O36kXE.js";var L={},D=u((e,i)=>{L[e]=i},"set"),Y=u(e=>L[e],"get"),G=u(()=>Object.keys(L),"keys"),$=u(()=>G().length,"size"),I={get:Y,set:D,keys:G,size:$},j=u(e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),"drawStartState"),q=u(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),Z=u((e,i)=>{const d=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),o=d.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",o.width+2*t().state.padding).attr("height",o.height+2*t().state.padding).attr("rx",t().state.radius),d},"drawSimpleState"),K=u((e,i)=>{const d=u(function(l,B,m){const v=l.append("tspan").attr("x",2*t().state.padding).text(B);m||v.attr("dy",t().state.textHeight)},"addTspan"),r=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=r.height,x=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,s=!0;i.descriptions.forEach(function(l){a||(d(x,l,s),s=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),p=x.node().getBBox(),c=Math.max(p.width,r.width);return y.attr("x2",c+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c+2*t().state.padding).attr("height",p.height+g+2*t().state.padding).attr("rx",t().state.radius),e},"drawDescrState"),Q=u((e,i,d)=>{const o=t().state.padding,r=2*t().state.padding,g=e.node().getBBox(),x=g.width,a=g.x,s=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),p=s.node().getBBox().width+r;let c=Math.max(p,x);c===x&&(c=c+r);let l;const B=e.node().getBBox();i.doc,l=a-o,p>x&&(l=(x-c)/2+o),Math.abs(a-B.x)x&&(l=a-(p-x)/2);const m=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",m).attr("class",d?"alt-composit":"composit").attr("width",c).attr("height",B.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),s.attr("x",l+o),p<=x&&s.attr("x",a+(c-r)/2-p/2+o),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",c).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",c).attr("height",B.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},"addTitleAndBox"),V=u(e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),"drawEndState"),tt=u((e,i)=>{let d=t().state.forkWidth,o=t().state.forkHeight;if(i.parentId){let r=d;d=o,o=r}return e.append("rect").style("stroke","black").style("fill","black").attr("width",d).attr("height",o).attr("x",t().state.padding).attr("y",t().state.padding)},"drawForkJoinState"),et=u((e,i,d,o)=>{let r=0;const g=o.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let x=e.replace(/\r\n/g,"
");x=x.replace(/\n/g,"
");const a=x.split(z.lineBreakRegex);let s=1.25*t().state.noteMargin;for(const y of a){const p=y.trim();if(p.length>0){const c=g.append("tspan");if(c.text(p),s===0){const l=c.node().getBBox();s+=l.height}r+=s,c.attr("x",i+t().state.noteMargin),c.attr("y",d+r+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:r}},"_drawLongText"),at=u((e,i)=>{i.attr("class","state-note");const d=i.append("rect").attr("x",0).attr("y",t().state.padding),o=i.append("g"),{textWidth:r,textHeight:g}=et(e,0,0,o);return d.attr("height",g+2*t().state.noteMargin),d.attr("width",r+t().state.noteMargin*2),d},"drawNote"),_=u(function(e,i){const d=i.id,o={id:d,label:i.id,width:0,height:0},r=e.append("g").attr("id",d).attr("class","stateGroup");i.type==="start"&&j(r),i.type==="end"&&V(r),(i.type==="fork"||i.type==="join")&&tt(r,i),i.type==="note"&&at(i.note.text,r),i.type==="divider"&&q(r),i.type==="default"&&i.descriptions.length===0&&Z(r,i),i.type==="default"&&i.descriptions.length>0&&K(r,i);const g=r.node().getBBox();return o.width=g.width+2*t().state.padding,o.height=g.height+2*t().state.padding,I.set(d,o),o},"drawState"),A=0,it=u(function(e,i,d){const o=u(function(s){switch(s){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}},"getRelationType");i.points=i.points.filter(s=>!Number.isNaN(s.y));const r=i.points,g=U().x(function(s){return s.x}).y(function(s){return s.y}).curve(F),x=e.append("path").attr("d",g(r)).attr("id","edge"+A).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),x.attr("marker-end","url("+a+"#"+o(N.relationType.DEPENDENCY)+"End)"),d.title!==void 0){const s=e.append("g").attr("class","stateLabel"),{x:y,y:p}=O.calcLabelPosition(i.points),c=z.getRows(d.title);let l=0;const B=[];let m=0,v=0;for(let f=0;f<=c.length;f++){const h=s.append("text").attr("text-anchor","middle").text(c[f]).attr("x",y).attr("y",p+l),w=h.node().getBBox();m=Math.max(m,w.width),v=Math.min(v,w.x),S.info(w.x,y,p+l),l===0&&(l=h.node().getBBox().height,S.info("Title height",l,p)),B.push(h)}let E=l*c.length;if(c.length>1){const f=(c.length-1)*l*.5;B.forEach((h,w)=>h.attr("y",p+w*l-f)),E=l*c.length}const n=s.node().getBBox();s.insert("rect",":first-child").attr("class","box").attr("x",y-m/2-t().state.padding/2).attr("y",p-E/2-t().state.padding/2-3.5).attr("width",m+t().state.padding).attr("height",E+t().state.padding),S.info(n)}A++},"drawEdge"),b,T={},nt=u(function(){},"setConf"),rt=u(function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),st=u(function(e,i,d,o){b=t().state;const r=t().securityLevel;let g;r==="sandbox"&&(g=H("#i"+i));const x=r==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=r==="sandbox"?g.nodes()[0].contentDocument:document;S.debug("Rendering diagram "+e);const s=x.select(`[id='${i}']`);rt(s);const y=o.db.getRootDoc();R(y,s,void 0,!1,x,a,o);const p=b.padding,c=s.node().getBBox(),l=c.width+p*2,B=c.height+p*2,m=l*1.75;C(s,B,m,b.useMaxWidth),s.attr("viewBox",`${c.x-b.padding} ${c.y-b.padding} `+l+" "+B)},"draw"),dt=u(e=>e?e.length*b.fontSizeFactor:1,"getLabelWidth"),R=u((e,i,d,o,r,g,x)=>{const a=new J({compound:!0,multigraph:!0});let s,y=!0;for(s=0;s{const w=h.parentElement;let k=0,M=0;w&&(w.parentElement&&(k=w.parentElement.getBBox().width),M=parseInt(w.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",k-M-8)})):S.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let v=m.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(S.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),it(i,a.edge(n),a.edge(n).relation))}),v=m.getBBox();const E={id:d||"root",label:d||"root",width:0,height:0};return E.width=v.width+2*b.padding,E.height=v.height+2*b.padding,S.debug("Doc rendered",E,a),E},"renderDoc"),ot={setConf:nt,draw:st},bt={parser:P,get db(){return new N(1)},renderer:ot,styles:W,init:u(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{bt as diagram}; +import{s as W,a as P,S as N}from"./chunk-AEK57VVT-ZyE42AjE.js";import{_ as u,c as t,d as H,l as S,e as C,k as z,U,$ as F,u as O}from"./mermaid-vendor-d7rbry5E.js";import{G as J}from"./graph-DexVwBa8.js";import{l as X}from"./layout-WkuL70g8.js";import"./chunk-RZ5BOZE2-C762jHXr.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";import"./_baseUniq-OtJ11HbN.js";import"./_basePickBy-Lz6agtdo.js";var L={},D=u((e,i)=>{L[e]=i},"set"),Y=u(e=>L[e],"get"),G=u(()=>Object.keys(L),"keys"),$=u(()=>G().length,"size"),I={get:Y,set:D,keys:G,size:$},j=u(e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),"drawStartState"),q=u(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),Z=u((e,i)=>{const d=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),o=d.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",o.width+2*t().state.padding).attr("height",o.height+2*t().state.padding).attr("rx",t().state.radius),d},"drawSimpleState"),K=u((e,i)=>{const d=u(function(l,B,m){const v=l.append("tspan").attr("x",2*t().state.padding).text(B);m||v.attr("dy",t().state.textHeight)},"addTspan"),r=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=r.height,x=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,s=!0;i.descriptions.forEach(function(l){a||(d(x,l,s),s=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),p=x.node().getBBox(),c=Math.max(p.width,r.width);return y.attr("x2",c+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c+2*t().state.padding).attr("height",p.height+g+2*t().state.padding).attr("rx",t().state.radius),e},"drawDescrState"),Q=u((e,i,d)=>{const o=t().state.padding,r=2*t().state.padding,g=e.node().getBBox(),x=g.width,a=g.x,s=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),p=s.node().getBBox().width+r;let c=Math.max(p,x);c===x&&(c=c+r);let l;const B=e.node().getBBox();i.doc,l=a-o,p>x&&(l=(x-c)/2+o),Math.abs(a-B.x)x&&(l=a-(p-x)/2);const m=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",m).attr("class",d?"alt-composit":"composit").attr("width",c).attr("height",B.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),s.attr("x",l+o),p<=x&&s.attr("x",a+(c-r)/2-p/2+o),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",c).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",c).attr("height",B.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},"addTitleAndBox"),V=u(e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),"drawEndState"),tt=u((e,i)=>{let d=t().state.forkWidth,o=t().state.forkHeight;if(i.parentId){let r=d;d=o,o=r}return e.append("rect").style("stroke","black").style("fill","black").attr("width",d).attr("height",o).attr("x",t().state.padding).attr("y",t().state.padding)},"drawForkJoinState"),et=u((e,i,d,o)=>{let r=0;const g=o.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let x=e.replace(/\r\n/g,"
");x=x.replace(/\n/g,"
");const a=x.split(z.lineBreakRegex);let s=1.25*t().state.noteMargin;for(const y of a){const p=y.trim();if(p.length>0){const c=g.append("tspan");if(c.text(p),s===0){const l=c.node().getBBox();s+=l.height}r+=s,c.attr("x",i+t().state.noteMargin),c.attr("y",d+r+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:r}},"_drawLongText"),at=u((e,i)=>{i.attr("class","state-note");const d=i.append("rect").attr("x",0).attr("y",t().state.padding),o=i.append("g"),{textWidth:r,textHeight:g}=et(e,0,0,o);return d.attr("height",g+2*t().state.noteMargin),d.attr("width",r+t().state.noteMargin*2),d},"drawNote"),_=u(function(e,i){const d=i.id,o={id:d,label:i.id,width:0,height:0},r=e.append("g").attr("id",d).attr("class","stateGroup");i.type==="start"&&j(r),i.type==="end"&&V(r),(i.type==="fork"||i.type==="join")&&tt(r,i),i.type==="note"&&at(i.note.text,r),i.type==="divider"&&q(r),i.type==="default"&&i.descriptions.length===0&&Z(r,i),i.type==="default"&&i.descriptions.length>0&&K(r,i);const g=r.node().getBBox();return o.width=g.width+2*t().state.padding,o.height=g.height+2*t().state.padding,I.set(d,o),o},"drawState"),A=0,it=u(function(e,i,d){const o=u(function(s){switch(s){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}},"getRelationType");i.points=i.points.filter(s=>!Number.isNaN(s.y));const r=i.points,g=U().x(function(s){return s.x}).y(function(s){return s.y}).curve(F),x=e.append("path").attr("d",g(r)).attr("id","edge"+A).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),x.attr("marker-end","url("+a+"#"+o(N.relationType.DEPENDENCY)+"End)"),d.title!==void 0){const s=e.append("g").attr("class","stateLabel"),{x:y,y:p}=O.calcLabelPosition(i.points),c=z.getRows(d.title);let l=0;const B=[];let m=0,v=0;for(let f=0;f<=c.length;f++){const h=s.append("text").attr("text-anchor","middle").text(c[f]).attr("x",y).attr("y",p+l),w=h.node().getBBox();m=Math.max(m,w.width),v=Math.min(v,w.x),S.info(w.x,y,p+l),l===0&&(l=h.node().getBBox().height,S.info("Title height",l,p)),B.push(h)}let E=l*c.length;if(c.length>1){const f=(c.length-1)*l*.5;B.forEach((h,w)=>h.attr("y",p+w*l-f)),E=l*c.length}const n=s.node().getBBox();s.insert("rect",":first-child").attr("class","box").attr("x",y-m/2-t().state.padding/2).attr("y",p-E/2-t().state.padding/2-3.5).attr("width",m+t().state.padding).attr("height",E+t().state.padding),S.info(n)}A++},"drawEdge"),b,T={},nt=u(function(){},"setConf"),rt=u(function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),st=u(function(e,i,d,o){b=t().state;const r=t().securityLevel;let g;r==="sandbox"&&(g=H("#i"+i));const x=r==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=r==="sandbox"?g.nodes()[0].contentDocument:document;S.debug("Rendering diagram "+e);const s=x.select(`[id='${i}']`);rt(s);const y=o.db.getRootDoc();R(y,s,void 0,!1,x,a,o);const p=b.padding,c=s.node().getBBox(),l=c.width+p*2,B=c.height+p*2,m=l*1.75;C(s,B,m,b.useMaxWidth),s.attr("viewBox",`${c.x-b.padding} ${c.y-b.padding} `+l+" "+B)},"draw"),dt=u(e=>e?e.length*b.fontSizeFactor:1,"getLabelWidth"),R=u((e,i,d,o,r,g,x)=>{const a=new J({compound:!0,multigraph:!0});let s,y=!0;for(s=0;s{const w=h.parentElement;let k=0,M=0;w&&(w.parentElement&&(k=w.parentElement.getBBox().width),M=parseInt(w.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",k-M-8)})):S.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let v=m.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(S.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),it(i,a.edge(n),a.edge(n).relation))}),v=m.getBBox();const E={id:d||"root",label:d||"root",width:0,height:0};return E.width=v.width+2*b.padding,E.height=v.height+2*b.padding,S.debug("Doc rendered",E,a),E},"renderDoc"),ot={setConf:nt,draw:st},bt={parser:P,get db(){return new N(1)},renderer:ot,styles:W,init:u(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{bt as diagram}; diff --git a/lightrag/api/webui/assets/stateDiagram-v2-YXO3MK2T-BnpIGSVY.js b/lightrag/api/webui/assets/stateDiagram-v2-YXO3MK2T-C15fufgb.js similarity index 61% rename from lightrag/api/webui/assets/stateDiagram-v2-YXO3MK2T-BnpIGSVY.js rename to lightrag/api/webui/assets/stateDiagram-v2-YXO3MK2T-C15fufgb.js index 32d1506b..f0a0ef37 100644 --- a/lightrag/api/webui/assets/stateDiagram-v2-YXO3MK2T-BnpIGSVY.js +++ b/lightrag/api/webui/assets/stateDiagram-v2-YXO3MK2T-C15fufgb.js @@ -1 +1 @@ -import{s as r,b as e,a,S as s}from"./chunk-AEK57VVT-BRJnVklE.js";import{_ as i}from"./mermaid-vendor-SwnP6Sr8.js";import"./chunk-RZ5BOZE2-vCqEaZEa.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var b={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{b as diagram}; +import{s as r,b as e,a,S as s}from"./chunk-AEK57VVT-ZyE42AjE.js";import{_ as i}from"./mermaid-vendor-d7rbry5E.js";import"./chunk-RZ5BOZE2-C762jHXr.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var b={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{b as diagram}; diff --git a/lightrag/api/webui/assets/timeline-definition-BDJGKUSR-CFveliQS.js b/lightrag/api/webui/assets/timeline-definition-BDJGKUSR-DdDk7fsZ.js similarity index 99% rename from lightrag/api/webui/assets/timeline-definition-BDJGKUSR-CFveliQS.js rename to lightrag/api/webui/assets/timeline-definition-BDJGKUSR-DdDk7fsZ.js index f08da36e..54551d4b 100644 --- a/lightrag/api/webui/assets/timeline-definition-BDJGKUSR-CFveliQS.js +++ b/lightrag/api/webui/assets/timeline-definition-BDJGKUSR-DdDk7fsZ.js @@ -1,4 +1,4 @@ -import{_ as s,c as xt,l as T,d as q,a2 as kt,a3 as _t,a4 as bt,a5 as vt,N as nt,D as wt,a6 as St,z as Et}from"./mermaid-vendor-SwnP6Sr8.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var X=function(){var n=s(function(f,i,a,d){for(a=a||{},d=f.length;d--;a[f[d]]=i);return a},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],l=[1,10],r=[1,11],h=[1,12],c=[1,13],g=[1,16],m=[1,17],p={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:s(function(i,a,d,u,y,o,S){var k=o.length-1;switch(y){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.getCommonDb().setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.getCommonDb().setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 15:u.addTask(o[k],0,""),this.$=o[k];break;case 16:u.addEvent(o[k].substr(2)),this.$=o[k];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:l,14:r,16:h,17:c,18:14,19:15,20:g,21:m},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:l,14:r,16:h,17:c,18:14,19:15,20:g,21:m},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:s(function(i,a){if(a.recoverable)this.trace(i);else{var d=new Error(i);throw d.hash=a,d}},"parseError"),parse:s(function(i){var a=this,d=[0],u=[],y=[null],o=[],S=this.table,k="",M=0,P=0,B=2,J=1,O=o.slice.call(arguments,1),_=Object.create(this.lexer),E={yy:{}};for(var v in this.yy)Object.prototype.hasOwnProperty.call(this.yy,v)&&(E.yy[v]=this.yy[v]);_.setInput(i,E.yy),E.yy.lexer=_,E.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var L=_.yylloc;o.push(L);var A=_.options&&_.options.ranges;typeof E.yy.parseError=="function"?this.parseError=E.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function R(I){d.length=d.length-2*I,y.length=y.length-I,o.length=o.length-I}s(R,"popStack");function z(){var I;return I=u.pop()||_.lex()||J,typeof I!="number"&&(I instanceof Array&&(u=I,I=u.pop()),I=a.symbols_[I]||I),I}s(z,"lex");for(var w,C,N,K,F={},j,$,et,G;;){if(C=d[d.length-1],this.defaultActions[C]?N=this.defaultActions[C]:((w===null||typeof w>"u")&&(w=z()),N=S[C]&&S[C][w]),typeof N>"u"||!N.length||!N[0]){var Q="";G=[];for(j in S[C])this.terminals_[j]&&j>B&&G.push("'"+this.terminals_[j]+"'");_.showPosition?Q="Parse error on line "+(M+1)+`: +import{_ as s,c as xt,l as T,d as q,a2 as kt,a3 as _t,a4 as bt,a5 as vt,N as nt,D as wt,a6 as St,z as Et}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var X=function(){var n=s(function(f,i,a,d){for(a=a||{},d=f.length;d--;a[f[d]]=i);return a},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],l=[1,10],r=[1,11],h=[1,12],c=[1,13],g=[1,16],m=[1,17],p={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:s(function(i,a,d,u,y,o,S){var k=o.length-1;switch(y){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.getCommonDb().setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.getCommonDb().setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 15:u.addTask(o[k],0,""),this.$=o[k];break;case 16:u.addEvent(o[k].substr(2)),this.$=o[k];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:l,14:r,16:h,17:c,18:14,19:15,20:g,21:m},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:l,14:r,16:h,17:c,18:14,19:15,20:g,21:m},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:s(function(i,a){if(a.recoverable)this.trace(i);else{var d=new Error(i);throw d.hash=a,d}},"parseError"),parse:s(function(i){var a=this,d=[0],u=[],y=[null],o=[],S=this.table,k="",M=0,P=0,B=2,J=1,O=o.slice.call(arguments,1),_=Object.create(this.lexer),E={yy:{}};for(var v in this.yy)Object.prototype.hasOwnProperty.call(this.yy,v)&&(E.yy[v]=this.yy[v]);_.setInput(i,E.yy),E.yy.lexer=_,E.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var L=_.yylloc;o.push(L);var A=_.options&&_.options.ranges;typeof E.yy.parseError=="function"?this.parseError=E.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function R(I){d.length=d.length-2*I,y.length=y.length-I,o.length=o.length-I}s(R,"popStack");function z(){var I;return I=u.pop()||_.lex()||J,typeof I!="number"&&(I instanceof Array&&(u=I,I=u.pop()),I=a.symbols_[I]||I),I}s(z,"lex");for(var w,C,N,K,F={},j,$,et,G;;){if(C=d[d.length-1],this.defaultActions[C]?N=this.defaultActions[C]:((w===null||typeof w>"u")&&(w=z()),N=S[C]&&S[C][w]),typeof N>"u"||!N.length||!N[0]){var Q="";G=[];for(j in S[C])this.terminals_[j]&&j>B&&G.push("'"+this.terminals_[j]+"'");_.showPosition?Q="Parse error on line "+(M+1)+`: `+_.showPosition()+` Expecting `+G.join(", ")+", got '"+(this.terminals_[w]||w)+"'":Q="Parse error on line "+(M+1)+": Unexpected "+(w==J?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(Q,{text:_.match,token:this.terminals_[w]||w,line:_.yylineno,loc:L,expected:G})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+w);switch(N[0]){case 1:d.push(w),y.push(_.yytext),o.push(_.yylloc),d.push(N[1]),w=null,P=_.yyleng,k=_.yytext,M=_.yylineno,L=_.yylloc;break;case 2:if($=this.productions_[N[1]][1],F.$=y[y.length-$],F._$={first_line:o[o.length-($||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-($||1)].first_column,last_column:o[o.length-1].last_column},A&&(F._$.range=[o[o.length-($||1)].range[0],o[o.length-1].range[1]]),K=this.performAction.apply(F,[k,P,M,E.yy,N[1],y,o].concat(O)),typeof K<"u")return K;$&&(d=d.slice(0,-1*$*2),y=y.slice(0,-1*$),o=o.slice(0,-1*$)),d.push(this.productions_[N[1]][0]),y.push(F.$),o.push(F._$),et=S[d[d.length-2]][d[d.length-1]],d.push(et);break;case 3:return!0}}return!0},"parse")},x=function(){var f={EOF:1,parseError:s(function(a,d){if(this.yy.parser)this.yy.parser.parseError(a,d);else throw new Error(a)},"parseError"),setInput:s(function(i,a){return this.yy=a||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:s(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var a=i.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:s(function(i){var a=i.length,d=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),d.length-1&&(this.yylineno-=d.length-1);var y=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:d?(d.length===u.length?this.yylloc.first_column:0)+u[u.length-d.length].length-d[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:s(function(i){this.unput(this.match.slice(i))},"less"),pastInput:s(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var i=this.pastInput(),a=new Array(i.length+1).join("-");return i+this.upcomingInput()+` diff --git a/lightrag/api/webui/assets/xychartDiagram-VJFVF3MP-5OclOI0o.js b/lightrag/api/webui/assets/xychartDiagram-VJFVF3MP-B3pR2K46.js similarity index 99% rename from lightrag/api/webui/assets/xychartDiagram-VJFVF3MP-5OclOI0o.js rename to lightrag/api/webui/assets/xychartDiagram-VJFVF3MP-B3pR2K46.js index 29893bdb..3a5a6c41 100644 --- a/lightrag/api/webui/assets/xychartDiagram-VJFVF3MP-5OclOI0o.js +++ b/lightrag/api/webui/assets/xychartDiagram-VJFVF3MP-B3pR2K46.js @@ -1,4 +1,4 @@ -import{_ as a,s as ui,g as gi,t as Ft,q as xi,a as pi,b as di,l as Xt,K as fi,e as yi,z as mi,G as bt,F as Nt,H as bi,Q as Ai,i as Ci,S as Mt,T as wi,R as Bt,U as Wt}from"./mermaid-vendor-SwnP6Sr8.js";import"./feature-graph-D6-O-kXP.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var dt=function(){var s=a(function(B,h,c,u){for(c=c||{},u=B.length;u--;c[B[u]]=h);return c},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],e=[1,3],n=[1,5],r=[1,6],x=[1,7],y=[1,5,10,12,14,16,18,19,21,23,34,35,36],m=[1,25],R=[1,26],_=[1,28],D=[1,29],I=[1,30],V=[1,31],k=[1,32],E=[1,33],f=[1,34],w=[1,35],l=[1,36],P=[1,37],K=[1,43],Dt=[1,42],Pt=[1,47],et=[1,50],A=[1,10,12,14,16,18,19,21,23,34,35,36],lt=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],v=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],vt=[1,64],ct={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(h,c,u,g,b,o,Z){var p=o.length-1;switch(b){case 5:g.setOrientation(o[p]);break;case 9:g.setDiagramTitle(o[p].text.trim());break;case 12:g.setLineData({text:"",type:"text"},o[p]);break;case 13:g.setLineData(o[p-1],o[p]);break;case 14:g.setBarData({text:"",type:"text"},o[p]);break;case 15:g.setBarData(o[p-1],o[p]);break;case 16:this.$=o[p].trim(),g.setAccTitle(this.$);break;case 17:case 18:this.$=o[p].trim(),g.setAccDescription(this.$);break;case 19:this.$=o[p-1];break;case 20:this.$=[Number(o[p-2]),...o[p]];break;case 21:this.$=[Number(o[p])];break;case 22:g.setXAxisTitle(o[p]);break;case 23:g.setXAxisTitle(o[p-1]);break;case 24:g.setXAxisTitle({type:"text",text:""});break;case 25:g.setXAxisBand(o[p]);break;case 26:g.setXAxisRangeData(Number(o[p-2]),Number(o[p]));break;case 27:this.$=o[p-1];break;case 28:this.$=[o[p-2],...o[p]];break;case 29:this.$=[o[p]];break;case 30:g.setYAxisTitle(o[p]);break;case 31:g.setYAxisTitle(o[p-1]);break;case 32:g.setYAxisTitle({type:"text",text:""});break;case 33:g.setYAxisRangeData(Number(o[p-2]),Number(o[p]));break;case 37:this.$={text:o[p],type:"text"};break;case 38:this.$={text:o[p],type:"text"};break;case 39:this.$={text:o[p],type:"markdown"};break;case 40:this.$=o[p];break;case 41:this.$=o[p-1]+""+o[p];break}},"anonymous"),table:[s(t,i,{3:1,4:2,7:4,5:e,34:n,35:r,36:x}),{1:[3]},s(t,i,{4:2,7:4,3:8,5:e,34:n,35:r,36:x}),s(t,i,{4:2,7:4,6:9,3:10,5:e,8:[1,11],34:n,35:r,36:x}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},s(y,[2,34]),s(y,[2,35]),s(y,[2,36]),{1:[2,1]},s(t,i,{4:2,7:4,3:21,5:e,34:n,35:r,36:x}),{1:[2,3]},s(y,[2,5]),s(t,[2,7],{4:22,34:n,35:r,36:x}),{11:23,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{11:39,13:38,24:K,27:Dt,29:40,30:41,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{11:45,15:44,27:Pt,33:46,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{11:49,17:48,24:et,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{11:52,17:51,24:et,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{20:[1,53]},{22:[1,54]},s(A,[2,18]),{1:[2,2]},s(A,[2,8]),s(A,[2,9]),s(lt,[2,37],{40:55,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P}),s(lt,[2,38]),s(lt,[2,39]),s(v,[2,40]),s(v,[2,42]),s(v,[2,43]),s(v,[2,44]),s(v,[2,45]),s(v,[2,46]),s(v,[2,47]),s(v,[2,48]),s(v,[2,49]),s(v,[2,50]),s(v,[2,51]),s(A,[2,10]),s(A,[2,22],{30:41,29:56,24:K,27:Dt}),s(A,[2,24]),s(A,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},s(A,[2,11]),s(A,[2,30],{33:60,27:Pt}),s(A,[2,32]),{31:[1,61]},s(A,[2,12]),{17:62,24:et},{25:63,27:vt},s(A,[2,14]),{17:65,24:et},s(A,[2,16]),s(A,[2,17]),s(v,[2,41]),s(A,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},s(A,[2,31]),{27:[1,69]},s(A,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},s(A,[2,15]),s(A,[2,26]),s(A,[2,27]),{11:59,32:72,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},s(A,[2,33]),s(A,[2,19]),{25:73,27:vt},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(h,c){if(c.recoverable)this.trace(h);else{var u=new Error(h);throw u.hash=c,u}},"parseError"),parse:a(function(h){var c=this,u=[0],g=[],b=[null],o=[],Z=this.table,p="",nt=0,Lt=0,hi=2,Et=1,ri=o.slice.call(arguments,1),C=Object.create(this.lexer),W={yy:{}};for(var ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ut)&&(W.yy[ut]=this.yy[ut]);C.setInput(h,W.yy),W.yy.lexer=C,W.yy.parser=this,typeof C.yylloc>"u"&&(C.yylloc={});var gt=C.yylloc;o.push(gt);var li=C.options&&C.options.ranges;typeof W.yy.parseError=="function"?this.parseError=W.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ci(T){u.length=u.length-2*T,b.length=b.length-T,o.length=o.length-T}a(ci,"popStack");function It(){var T;return T=g.pop()||C.lex()||Et,typeof T!="number"&&(T instanceof Array&&(g=T,T=g.pop()),T=c.symbols_[T]||T),T}a(It,"lex");for(var S,O,L,xt,z={},at,M,Vt,ot;;){if(O=u[u.length-1],this.defaultActions[O]?L=this.defaultActions[O]:((S===null||typeof S>"u")&&(S=It()),L=Z[O]&&Z[O][S]),typeof L>"u"||!L.length||!L[0]){var pt="";ot=[];for(at in Z[O])this.terminals_[at]&&at>hi&&ot.push("'"+this.terminals_[at]+"'");C.showPosition?pt="Parse error on line "+(nt+1)+`: +import{_ as a,s as ui,g as gi,t as Ft,q as xi,a as pi,b as di,l as Xt,K as fi,e as yi,z as mi,G as bt,F as Nt,H as bi,Q as Ai,i as Ci,S as Mt,T as wi,R as Bt,U as Wt}from"./mermaid-vendor-d7rbry5E.js";import"./feature-graph-DbHHHM9y.js";import"./react-vendor-DEwriMA6.js";import"./graph-vendor-B-X5JegA.js";import"./ui-vendor-CeCm8EER.js";import"./utils-vendor-BysuhMZA.js";var dt=function(){var s=a(function(B,h,c,u){for(c=c||{},u=B.length;u--;c[B[u]]=h);return c},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],e=[1,3],n=[1,5],r=[1,6],x=[1,7],y=[1,5,10,12,14,16,18,19,21,23,34,35,36],m=[1,25],R=[1,26],_=[1,28],D=[1,29],I=[1,30],V=[1,31],k=[1,32],E=[1,33],f=[1,34],w=[1,35],l=[1,36],P=[1,37],K=[1,43],Dt=[1,42],Pt=[1,47],et=[1,50],A=[1,10,12,14,16,18,19,21,23,34,35,36],lt=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],v=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],vt=[1,64],ct={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(h,c,u,g,b,o,Z){var p=o.length-1;switch(b){case 5:g.setOrientation(o[p]);break;case 9:g.setDiagramTitle(o[p].text.trim());break;case 12:g.setLineData({text:"",type:"text"},o[p]);break;case 13:g.setLineData(o[p-1],o[p]);break;case 14:g.setBarData({text:"",type:"text"},o[p]);break;case 15:g.setBarData(o[p-1],o[p]);break;case 16:this.$=o[p].trim(),g.setAccTitle(this.$);break;case 17:case 18:this.$=o[p].trim(),g.setAccDescription(this.$);break;case 19:this.$=o[p-1];break;case 20:this.$=[Number(o[p-2]),...o[p]];break;case 21:this.$=[Number(o[p])];break;case 22:g.setXAxisTitle(o[p]);break;case 23:g.setXAxisTitle(o[p-1]);break;case 24:g.setXAxisTitle({type:"text",text:""});break;case 25:g.setXAxisBand(o[p]);break;case 26:g.setXAxisRangeData(Number(o[p-2]),Number(o[p]));break;case 27:this.$=o[p-1];break;case 28:this.$=[o[p-2],...o[p]];break;case 29:this.$=[o[p]];break;case 30:g.setYAxisTitle(o[p]);break;case 31:g.setYAxisTitle(o[p-1]);break;case 32:g.setYAxisTitle({type:"text",text:""});break;case 33:g.setYAxisRangeData(Number(o[p-2]),Number(o[p]));break;case 37:this.$={text:o[p],type:"text"};break;case 38:this.$={text:o[p],type:"text"};break;case 39:this.$={text:o[p],type:"markdown"};break;case 40:this.$=o[p];break;case 41:this.$=o[p-1]+""+o[p];break}},"anonymous"),table:[s(t,i,{3:1,4:2,7:4,5:e,34:n,35:r,36:x}),{1:[3]},s(t,i,{4:2,7:4,3:8,5:e,34:n,35:r,36:x}),s(t,i,{4:2,7:4,6:9,3:10,5:e,8:[1,11],34:n,35:r,36:x}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},s(y,[2,34]),s(y,[2,35]),s(y,[2,36]),{1:[2,1]},s(t,i,{4:2,7:4,3:21,5:e,34:n,35:r,36:x}),{1:[2,3]},s(y,[2,5]),s(t,[2,7],{4:22,34:n,35:r,36:x}),{11:23,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{11:39,13:38,24:K,27:Dt,29:40,30:41,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{11:45,15:44,27:Pt,33:46,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{11:49,17:48,24:et,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{11:52,17:51,24:et,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},{20:[1,53]},{22:[1,54]},s(A,[2,18]),{1:[2,2]},s(A,[2,8]),s(A,[2,9]),s(lt,[2,37],{40:55,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P}),s(lt,[2,38]),s(lt,[2,39]),s(v,[2,40]),s(v,[2,42]),s(v,[2,43]),s(v,[2,44]),s(v,[2,45]),s(v,[2,46]),s(v,[2,47]),s(v,[2,48]),s(v,[2,49]),s(v,[2,50]),s(v,[2,51]),s(A,[2,10]),s(A,[2,22],{30:41,29:56,24:K,27:Dt}),s(A,[2,24]),s(A,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},s(A,[2,11]),s(A,[2,30],{33:60,27:Pt}),s(A,[2,32]),{31:[1,61]},s(A,[2,12]),{17:62,24:et},{25:63,27:vt},s(A,[2,14]),{17:65,24:et},s(A,[2,16]),s(A,[2,17]),s(v,[2,41]),s(A,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},s(A,[2,31]),{27:[1,69]},s(A,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},s(A,[2,15]),s(A,[2,26]),s(A,[2,27]),{11:59,32:72,37:24,38:m,39:R,40:27,41:_,42:D,43:I,44:V,45:k,46:E,47:f,48:w,49:l,50:P},s(A,[2,33]),s(A,[2,19]),{25:73,27:vt},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(h,c){if(c.recoverable)this.trace(h);else{var u=new Error(h);throw u.hash=c,u}},"parseError"),parse:a(function(h){var c=this,u=[0],g=[],b=[null],o=[],Z=this.table,p="",nt=0,Lt=0,hi=2,Et=1,ri=o.slice.call(arguments,1),C=Object.create(this.lexer),W={yy:{}};for(var ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ut)&&(W.yy[ut]=this.yy[ut]);C.setInput(h,W.yy),W.yy.lexer=C,W.yy.parser=this,typeof C.yylloc>"u"&&(C.yylloc={});var gt=C.yylloc;o.push(gt);var li=C.options&&C.options.ranges;typeof W.yy.parseError=="function"?this.parseError=W.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ci(T){u.length=u.length-2*T,b.length=b.length-T,o.length=o.length-T}a(ci,"popStack");function It(){var T;return T=g.pop()||C.lex()||Et,typeof T!="number"&&(T instanceof Array&&(g=T,T=g.pop()),T=c.symbols_[T]||T),T}a(It,"lex");for(var S,O,L,xt,z={},at,M,Vt,ot;;){if(O=u[u.length-1],this.defaultActions[O]?L=this.defaultActions[O]:((S===null||typeof S>"u")&&(S=It()),L=Z[O]&&Z[O][S]),typeof L>"u"||!L.length||!L[0]){var pt="";ot=[];for(at in Z[O])this.terminals_[at]&&at>hi&&ot.push("'"+this.terminals_[at]+"'");C.showPosition?pt="Parse error on line "+(nt+1)+`: `+C.showPosition()+` Expecting `+ot.join(", ")+", got '"+(this.terminals_[S]||S)+"'":pt="Parse error on line "+(nt+1)+": Unexpected "+(S==Et?"end of input":"'"+(this.terminals_[S]||S)+"'"),this.parseError(pt,{text:C.match,token:this.terminals_[S]||S,line:C.yylineno,loc:gt,expected:ot})}if(L[0]instanceof Array&&L.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+S);switch(L[0]){case 1:u.push(S),b.push(C.yytext),o.push(C.yylloc),u.push(L[1]),S=null,Lt=C.yyleng,p=C.yytext,nt=C.yylineno,gt=C.yylloc;break;case 2:if(M=this.productions_[L[1]][1],z.$=b[b.length-M],z._$={first_line:o[o.length-(M||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(M||1)].first_column,last_column:o[o.length-1].last_column},li&&(z._$.range=[o[o.length-(M||1)].range[0],o[o.length-1].range[1]]),xt=this.performAction.apply(z,[p,Lt,nt,W.yy,L[1],b,o].concat(ri)),typeof xt<"u")return xt;M&&(u=u.slice(0,-1*M*2),b=b.slice(0,-1*M),o=o.slice(0,-1*M)),u.push(this.productions_[L[1]][0]),b.push(z.$),o.push(z._$),Vt=Z[u[u.length-2]][u[u.length-1]],u.push(Vt);break;case 3:return!0}}return!0},"parse")},oi=function(){var B={EOF:1,parseError:a(function(c,u){if(this.yy.parser)this.yy.parser.parseError(c,u);else throw new Error(c)},"parseError"),setInput:a(function(h,c){return this.yy=c||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var c=h.match(/(?:\r\n?|\n).*/g);return c?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:a(function(h){var c=h.length,u=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===g.length?this.yylloc.first_column:0)+g[g.length-u.length].length-u[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a(function(h){this.unput(this.match.slice(h))},"less"),pastInput:a(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var h=this.pastInput(),c=new Array(h.length+1).join("-");return h+this.upcomingInput()+` diff --git a/lightrag/api/webui/index.html b/lightrag/api/webui/index.html index b4557561..7c8a0936 100644 --- a/lightrag/api/webui/index.html +++ b/lightrag/api/webui/index.html @@ -8,18 +8,18 @@ Lightrag - + - - + + - - + + - +
From f6dac9c287b1db8a76a174f82355df6f628c3a4f Mon Sep 17 00:00:00 2001 From: zrguo <49157727+LarFii@users.noreply.github.com> Date: Mon, 12 May 2025 14:56:46 +0800 Subject: [PATCH 21/37] Update logo.png --- assets/logo.png | Bin 158552 -> 182929 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/logo.png b/assets/logo.png index e7afaa7e4778ab2fa503081586cb8b4677a22cf8..1d2d3a429174e82ee30db7d535368400818d7856 100644 GIT binary patch literal 182929 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�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 OhP&OXcW>af)GdFYz`bz9Ne&1q%}#VG=!X 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
{`jY$KjRYGQlXn6iaKoX_dv~-t+ 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%0A&?m5GPkz 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 From cf4bb148fb1fd193ee60f328e20ce3466d04a8f1 Mon Sep 17 00:00:00 2001 From: zrguo <49157727+LarFii@users.noreply.github.com> Date: Mon, 12 May 2025 16:28:36 +0800 Subject: [PATCH 22/37] fix linting --- lightrag/kg/tidb_impl.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/lightrag/kg/tidb_impl.py b/lightrag/kg/tidb_impl.py index 49cab6aa..9b9d17a9 100644 --- a/lightrag/kg/tidb_impl.py +++ b/lightrag/kg/tidb_impl.py @@ -25,12 +25,21 @@ from sqlalchemy import create_engine, text # type: ignore def sanitize_sensitive_info(data: dict) -> dict: sanitized_data = data.copy() - sensitive_fields = ['password', 'user', 'host', 'database', 'port', 'ssl_verify_cert', 'ssl_verify_identity'] - for field in sensitive_fields: - if field in sanitized_data: - sanitized_data[field] = '***' + sensitive_fields = [ + "password", + "user", + "host", + "database", + "port", + "ssl_verify_cert", + "ssl_verify_identity", + ] + for field_name in sensitive_fields: + if field_name in sanitized_data: + sanitized_data[field_name] = "***" return sanitized_data + class TiDB: def __init__(self, config, **kwargs): self.host = config.get("host", None) @@ -91,9 +100,10 @@ class TiDB: result = conn.execute(text(sql), params) except Exception as e: sanitized_params = sanitize_sensitive_info(params) - sanitized_params = sanitize_sensitive_info(params) - sanitized_error = sanitize_sensitive_info({'error': str(e)}) - logger.error(f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{sanitized_error}") + sanitized_error = sanitize_sensitive_info({"error": str(e)}) + logger.error( + f"Tidb database,\nsql:{sql},\nparams:{sanitized_params},\nerror:{sanitized_error}" + ) raise if multirows: rows = result.all() @@ -119,8 +129,10 @@ class TiDB: conn.execute(text(sql), parameters=data) except Exception as e: sanitized_data = sanitize_sensitive_info(data) if data else None - sanitized_error = sanitize_sensitive_info({'error': str(e)}) - logger.error(f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{sanitized_error}") + sanitized_error = sanitize_sensitive_info({"error": str(e)}) + logger.error( + f"Tidb database,\nsql:{sql},\ndata:{sanitized_data},\nerror:{sanitized_error}" + ) raise From 56f82bdcd533afbdb34027c8eb7a537acd38dfc9 Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 12 May 2025 17:37:28 +0800 Subject: [PATCH 23/37] Ensure OpenAI connection is closed after streaming response finished --- lightrag/llm/openai.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lightrag/llm/openai.py b/lightrag/llm/openai.py index 690ac3f3..57f016cf 100644 --- a/lightrag/llm/openai.py +++ b/lightrag/llm/openai.py @@ -264,8 +264,17 @@ async def openai_complete_if_cache( logger.warning( f"Failed to close stream response in finally block: {close_error}" ) - # Note: We don't close the client here for streaming responses - # The client will be closed by the caller after streaming is complete + + # This prevents resource leaks since the caller doesn't handle closing + try: + await openai_async_client.close() + logger.debug( + "Successfully closed OpenAI client for streaming response" + ) + except Exception as client_close_error: + logger.warning( + f"Failed to close OpenAI client in streaming finally block: {client_close_error}" + ) return inner() From dfc44ec4bee91f18b1d93d491fbf5f9b7bdeb837 Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 12 May 2025 18:21:52 +0800 Subject: [PATCH 24/37] Update logo.png --- lightrag/api/webui/logo.png | Bin 158552 -> 182929 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/lightrag/api/webui/logo.png b/lightrag/api/webui/logo.png index e7afaa7e4778ab2fa503081586cb8b4677a22cf8..1d2d3a429174e82ee30db7d535368400818d7856 100644 GIT binary patch literal 182929 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�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 OhP&OXcW>af)GdFYz`bz9Ne&1q%}#VG=!X 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
{`jY$KjRYGQlXn6iaKoX_dv~-t+ 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%0A&?m5GPkz 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 From cbc8796bb0346ada0bfd3bad922018cfcdee2194 Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 12 May 2025 18:49:58 +0800 Subject: [PATCH 25/37] Update logo from png to svg --- .../{index-BLBnmXUl.js => index-Bj1VgJta.js} | 2 +- lightrag/api/webui/index.html | 4 ++-- lightrag/api/webui/logo.png | Bin 182929 -> 0 bytes lightrag/api/webui/logo.svg | 1 + lightrag_webui/index.html | 2 +- lightrag_webui/public/logo.png | Bin 158552 -> 0 bytes lightrag_webui/public/logo.svg | 1 + lightrag_webui/src/features/LoginPage.tsx | 2 +- lightrag_webui/src/features/SiteHeader.tsx | 1 - 9 files changed, 7 insertions(+), 6 deletions(-) rename lightrag/api/webui/assets/{index-BLBnmXUl.js => index-Bj1VgJta.js} (99%) delete mode 100644 lightrag/api/webui/logo.png create mode 100755 lightrag/api/webui/logo.svg delete mode 100644 lightrag_webui/public/logo.png create mode 100755 lightrag_webui/public/logo.svg diff --git a/lightrag/api/webui/assets/index-BLBnmXUl.js b/lightrag/api/webui/assets/index-Bj1VgJta.js similarity index 99% rename from lightrag/api/webui/assets/index-BLBnmXUl.js rename to lightrag/api/webui/assets/index-Bj1VgJta.js index 6ff9c4f3..461032dd 100644 --- a/lightrag/api/webui/assets/index-BLBnmXUl.js +++ b/lightrag/api/webui/assets/index-Bj1VgJta.js @@ -28,7 +28,7 @@ You can add a description to the \`${Na}\` by passing a \`${Dd}\` component as a Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Na}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. -For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return E.useEffect(()=>{var d;document.getElementById((d=g.current)==null?void 0:d.getAttribute("aria-describedby"))||console.warn(b)},[b,g]),null},gp=vd,pp=bd,Cd=Sd,Od=Td,jd=Ed,Rd=zd,Ud=Ad,_d=Nd;const yp=gp,vp=pp,Hd=E.forwardRef(({className:g,...b},x)=>o.jsx(Cd,{className:Qe("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",g),...b,ref:x}));Hd.displayName=Cd.displayName;const Ld=E.forwardRef(({className:g,...b},x)=>o.jsxs(vp,{children:[o.jsx(Hd,{}),o.jsx(Od,{ref:x,className:Qe("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",g),...b})]}));Ld.displayName=Od.displayName;const qd=({className:g,...b})=>o.jsx("div",{className:Qe("flex flex-col space-y-2 text-center sm:text-left",g),...b});qd.displayName="AlertDialogHeader";const Bd=E.forwardRef(({className:g,...b},x)=>o.jsx(Ud,{ref:x,className:Qe("text-lg font-semibold",g),...b}));Bd.displayName=Ud.displayName;const Gd=E.forwardRef(({className:g,...b},x)=>o.jsx(_d,{ref:x,className:Qe("text-muted-foreground text-sm",g),...b}));Gd.displayName=_d.displayName;const bp=E.forwardRef(({className:g,...b},x)=>o.jsx(jd,{ref:x,className:Qe(od(),g),...b}));bp.displayName=jd.displayName;const Sp=E.forwardRef(({className:g,...b},x)=>o.jsx(Rd,{ref:x,className:Qe(od({variant:"outline"}),"mt-2 sm:mt-0",g),...b}));Sp.displayName=Rd.displayName;const Tp=({open:g,onOpenChange:b})=>{const{t:x}=ql(),d=Ve.use.apiKey(),[N,j]=E.useState(""),H=Gt.use.message();E.useEffect(()=>{j(d||"")},[d,g]),E.useEffect(()=>{H&&(H.includes(rd)||H.includes(fd))&&b(!0)},[H,b]);const $=E.useCallback(()=>{Ve.setState({apiKey:N||null}),b(!1)},[N,b]),Y=E.useCallback(W=>{j(W.target.value)},[j]);return o.jsx(yp,{open:g,onOpenChange:b,children:o.jsxs(Ld,{children:[o.jsxs(qd,{children:[o.jsx(Bd,{children:x("apiKeyAlert.title")}),o.jsx(Gd,{children:x("apiKeyAlert.description")})]}),o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("form",{className:"flex gap-2",onSubmit:W=>W.preventDefault(),children:[o.jsx(us,{type:"password",value:N,onChange:Y,placeholder:x("apiKeyAlert.placeholder"),className:"max-h-full w-full min-w-0",autoComplete:"off"}),o.jsx(Cn,{onClick:$,variant:"outline",size:"sm",children:x("apiKeyAlert.save")})]}),H&&o.jsx("div",{className:"text-sm text-red-500",children:H})]})]})})},xp=({status:g})=>{const{t:b}=ql();return g?o.jsxs("div",{className:"min-w-[300px] space-y-2 text-xs",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.storageInfo")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.workingDirectory"),":"]}),o.jsx("span",{className:"truncate",children:g.working_directory}),o.jsxs("span",{children:[b("graphPanel.statusCard.inputDirectory"),":"]}),o.jsx("span",{className:"truncate",children:g.input_directory})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.llmConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.llmBinding"),":"]}),o.jsx("span",{children:g.configuration.llm_binding}),o.jsxs("span",{children:[b("graphPanel.statusCard.llmBindingHost"),":"]}),o.jsx("span",{children:g.configuration.llm_binding_host}),o.jsxs("span",{children:[b("graphPanel.statusCard.llmModel"),":"]}),o.jsx("span",{children:g.configuration.llm_model}),o.jsxs("span",{children:[b("graphPanel.statusCard.maxTokens"),":"]}),o.jsx("span",{children:g.configuration.max_tokens})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.embeddingConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingBinding"),":"]}),o.jsx("span",{children:g.configuration.embedding_binding}),o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingBindingHost"),":"]}),o.jsx("span",{children:g.configuration.embedding_binding_host}),o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingModel"),":"]}),o.jsx("span",{children:g.configuration.embedding_model})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.storageConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.kvStorage"),":"]}),o.jsx("span",{children:g.configuration.kv_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.docStatusStorage"),":"]}),o.jsx("span",{children:g.configuration.doc_status_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.graphStorage"),":"]}),o.jsx("span",{children:g.configuration.graph_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.vectorStorage"),":"]}),o.jsx("span",{children:g.configuration.vector_storage})]})]})]}):o.jsx("div",{className:"text-foreground text-xs",children:b("graphPanel.statusCard.unavailable")})},Ap=({open:g,onOpenChange:b,status:x})=>{const{t:d}=ql();return o.jsx(Mg,{open:g,onOpenChange:b,children:o.jsxs(zg,{className:"sm:max-w-[500px]",children:[o.jsxs(Cg,{children:[o.jsx(Og,{children:d("graphPanel.statusDialog.title")}),o.jsx(jg,{children:d("graphPanel.statusDialog.description")})]}),o.jsx(xp,{status:x})]})})},Dp=()=>{const{t:g}=ql(),b=Gt.use.health(),x=Gt.use.lastCheckTime(),d=Gt.use.status(),[N,j]=E.useState(!1),[H,$]=E.useState(!1);return E.useEffect(()=>{j(!0);const Y=setTimeout(()=>j(!1),300);return()=>clearTimeout(Y)},[x]),o.jsxs("div",{className:"fixed right-4 bottom-4 flex items-center gap-2 opacity-80 select-none",children:[o.jsxs("div",{className:"flex cursor-pointer items-center gap-2",onClick:()=>$(!0),children:[o.jsx("div",{className:Qe("h-3 w-3 rounded-full transition-all duration-300","shadow-[0_0_8px_rgba(0,0,0,0.2)]",b?"bg-green-500":"bg-red-500",N&&"scale-125",N&&b&&"shadow-[0_0_12px_rgba(34,197,94,0.4)]",N&&!b&&"shadow-[0_0_12px_rgba(239,68,68,0.4)]")}),o.jsx("span",{className:"text-muted-foreground text-xs",children:g(b?"graphPanel.statusIndicator.connected":"graphPanel.statusIndicator.disconnected")})]}),o.jsx(Ap,{open:H,onOpenChange:$,status:d})]})};function Yd({className:g}){const[b,x]=E.useState(!1),{t:d}=ql(),N=Ve.use.language(),j=Ve.use.setLanguage(),H=Ve.use.theme(),$=Ve.use.setTheme(),Y=E.useCallback(he=>{j(he)},[j]),W=E.useCallback(he=>{$(he)},[$]);return o.jsxs(Rg,{open:b,onOpenChange:x,children:[o.jsx(Ug,{asChild:!0,children:o.jsx(Cn,{variant:"ghost",size:"icon",className:Qe("h-9 w-9",g),children:o.jsx(_g,{className:"h-5 w-5"})})}),o.jsx(Hg,{side:"bottom",align:"end",className:"w-56",children:o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("label",{className:"text-sm font-medium",children:d("settings.language")}),o.jsxs(kf,{value:N,onValueChange:Y,children:[o.jsx(Ff,{children:o.jsx($f,{})}),o.jsxs(Wf,{children:[o.jsx(ot,{value:"en",children:"English"}),o.jsx(ot,{value:"zh",children:"中文"}),o.jsx(ot,{value:"fr",children:"Français"}),o.jsx(ot,{value:"ar",children:"العربية"}),o.jsx(ot,{value:"zh_TW",children:"繁體中文"})]})]})]}),o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("label",{className:"text-sm font-medium",children:d("settings.theme")}),o.jsxs(kf,{value:H,onValueChange:W,children:[o.jsx(Ff,{children:o.jsx($f,{})}),o.jsxs(Wf,{children:[o.jsx(ot,{value:"light",children:d("settings.light")}),o.jsx(ot,{value:"dark",children:d("settings.dark")}),o.jsx(ot,{value:"system",children:d("settings.system")})]})]})]})]})})]})}const Np=xg,Xd=E.forwardRef(({className:g,...b},x)=>o.jsx(ud,{ref:x,className:Qe("bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",g),...b}));Xd.displayName=ud.displayName;const Vd=E.forwardRef(({className:g,...b},x)=>o.jsx(id,{ref:x,className:Qe("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-sm px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm",g),...b}));Vd.displayName=id.displayName;const zn=E.forwardRef(({className:g,...b},x)=>o.jsx(cd,{ref:x,className:Qe("ring-offset-background focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none","data-[state=inactive]:invisible data-[state=active]:visible","h-full w-full",g),forceMount:!0,...b}));zn.displayName=cd.displayName;function Zu({value:g,currentTab:b,children:x}){return o.jsx(Vd,{value:g,className:Qe("cursor-pointer px-2 py-1 transition-all",b===g?"!bg-emerald-400 !text-zinc-50":"hover:bg-background/60"),children:x})}function Ep(){const g=Ve.use.currentTab(),{t:b}=ql();return o.jsx("div",{className:"flex h-8 self-center",children:o.jsxs(Xd,{className:"h-full gap-2",children:[o.jsx(Zu,{value:"documents",currentTab:g,children:b("header.documents")}),o.jsx(Zu,{value:"knowledge-graph",currentTab:g,children:b("header.knowledgeGraph")}),o.jsx(Zu,{value:"retrieval",currentTab:g,children:b("header.retrieval")}),o.jsx(Zu,{value:"api",currentTab:g,children:b("header.api")})]})})}function Mp(){const{t:g}=ql(),{isGuestMode:b,coreVersion:x,apiVersion:d,username:N,webuiTitle:j,webuiDescription:H}=Ll(),$=x&&d?`${x}/${d}`:null,Y=()=>{md.navigateToLogin()};return o.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[o.jsxs("div",{className:"min-w-[200px] w-auto flex items-center",children:[o.jsxs("a",{href:dd,className:"flex items-center gap-2",children:[o.jsx(ss,{className:"size-4 text-emerald-400","aria-hidden":"true"}),o.jsx("span",{className:"font-bold md:inline-block",children:is.name})]}),j&&o.jsxs("div",{className:"flex items-center",children:[o.jsx("span",{className:"mx-1 text-xs text-gray-500 dark:text-gray-400",children:"|"}),o.jsx(Lg,{children:o.jsxs(qg,{children:[o.jsx(Bg,{asChild:!0,children:o.jsx("span",{className:"font-medium text-sm cursor-default",children:j})}),H&&o.jsx(Gg,{side:"bottom",children:H})]})})]})]}),o.jsxs("div",{className:"flex h-10 flex-1 items-center justify-center",children:[o.jsx(Ep,{}),b&&o.jsx("div",{className:"ml-2 self-center px-2 py-1 text-xs bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-200 rounded-md",children:g("login.guestMode","Guest Mode")})]}),o.jsx("nav",{className:"w-[200px] flex items-center justify-end",children:o.jsxs("div",{className:"flex items-center gap-2",children:[$&&o.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-400 mr-1",children:["v",$]}),o.jsx(Cn,{variant:"ghost",size:"icon",side:"bottom",tooltip:g("header.projectRepository"),children:o.jsx("a",{href:is.github,target:"_blank",rel:"noopener noreferrer",children:o.jsx(Yg,{className:"size-4","aria-hidden":"true"})})}),o.jsx(Yd,{}),!b&&o.jsx(Cn,{variant:"ghost",size:"icon",side:"bottom",tooltip:`${g("header.logout")} (${N})`,onClick:Y,children:o.jsx(Xg,{className:"size-4","aria-hidden":"true"})})]})})]})}const zp=()=>{const g=E.useContext(pd);if(!g)throw new Error("useTabVisibility must be used within a TabVisibilityProvider");return g};function Cp(){const{t:g}=ql(),{isTabVisible:b}=zp(),x=b("api"),[d,N]=E.useState(!1);return E.useEffect(()=>{d||N(!0)},[d]),o.jsx("div",{className:`size-full ${x?"":"hidden"}`,children:d?o.jsx("iframe",{src:Vg+"/docs",className:"size-full w-full h-full",style:{width:"100%",height:"100%",border:"none"}},"api-docs-iframe"):o.jsx("div",{className:"flex h-full w-full items-center justify-center bg-background",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),o.jsx("p",{children:g("apiSite.loading")})]})})})}function Op(){const g=Gt.use.message(),b=Ve.use.enableHealthCheck(),x=Ve.use.currentTab(),[d,N]=E.useState(!1),[j,H]=E.useState(!0),$=E.useRef(!1),Y=E.useRef(!1),W=E.useCallback(V=>{N(V),V||Gt.getState().clear()},[]),he=E.useRef(!0);E.useEffect(()=>{he.current=!0;const V=()=>{he.current=!1};return window.addEventListener("beforeunload",V),()=>{he.current=!1,window.removeEventListener("beforeunload",V)}},[]),E.useEffect(()=>{if(!b||d)return;const V=async()=>{try{he.current&&await Gt.getState().check()}catch(le){console.error("Health check error:",le)}};Y.current||(Y.current=!0,V());const pe=setInterval(V,Qg*1e3);return()=>clearInterval(pe)},[b,d]),E.useEffect(()=>{(async()=>{if($.current)return;if($.current=!0,sessionStorage.getItem("VERSION_CHECKED_FROM_LOGIN")==="true"){H(!1);return}try{H(!0);const le=localStorage.getItem("LIGHTRAG-API-TOKEN"),C=await gd();if(!C.auth_configured&&C.access_token)Ll.getState().login(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null);else if(le&&(C.core_version||C.api_version||C.webui_title||C.webui_description)){const pl=C.auth_mode==="disabled"||Ll.getState().isGuestMode;Ll.getState().login(le,pl,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null)}sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true")}catch(le){console.error("Failed to get version info:",le)}finally{H(!1)}})()},[]);const ge=E.useCallback(V=>Ve.getState().setCurrentTab(V),[]);return E.useEffect(()=>{g&&(g.includes(rd)||g.includes(fd))&&N(!0)},[g]),o.jsx(hd,{children:o.jsx(up,{children:j?o.jsxs("div",{className:"flex h-screen w-screen flex-col",children:[o.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[o.jsx("div",{className:"min-w-[200px] w-auto flex items-center",children:o.jsxs("a",{href:dd,className:"flex items-center gap-2",children:[o.jsx(ss,{className:"size-4 text-emerald-400","aria-hidden":"true"}),o.jsx("span",{className:"font-bold md:inline-block",children:is.name})]})}),o.jsx("div",{className:"flex h-10 flex-1 items-center justify-center"}),o.jsx("nav",{className:"w-[200px] flex items-center justify-end"})]}),o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),o.jsx("p",{children:"Initializing..."})]})})]}):o.jsxs("main",{className:"flex h-screen w-screen overflow-hidden",children:[o.jsxs(Np,{defaultValue:x,className:"!m-0 flex grow flex-col !p-0 overflow-hidden",onValueChange:ge,children:[o.jsx(Mp,{}),o.jsxs("div",{className:"relative grow",children:[o.jsx(zn,{value:"documents",className:"absolute top-0 right-0 bottom-0 left-0 overflow-auto",children:o.jsx(Pg,{})}),o.jsx(zn,{value:"knowledge-graph",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(wg,{})}),o.jsx(zn,{value:"retrieval",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(Wg,{})}),o.jsx(zn,{value:"api",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(Cp,{})})]})]}),b&&o.jsx(Dp,{}),o.jsx(Tp,{open:d,onOpenChange:W})]})})})}const jp=()=>{const g=sd(),{login:b,isAuthenticated:x}=Ll(),{t:d}=ql(),[N,j]=E.useState(!1),[H,$]=E.useState(""),[Y,W]=E.useState(""),[he,ge]=E.useState(!0),V=E.useRef(!1);if(E.useEffect(()=>{console.log("LoginPage mounted")},[]),E.useEffect(()=>((async()=>{if(!V.current){V.current=!0;try{if(x){g("/");return}const C=await gd();if((C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),!C.auth_configured&&C.access_token){b(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),C.message&&En.info(C.message),g("/");return}ge(!1)}catch(C){console.error("Failed to check auth configuration:",C),ge(!1)}}})(),()=>{}),[x,b,g]),he)return null;const pe=async le=>{if(le.preventDefault(),!H||!Y){En.error(d("login.errorEmptyFields"));return}try{j(!0);const C=await kg(H,Y);localStorage.getItem("LIGHTRAG-PREVIOUS-USER")===H?console.log("Same user logging in, preserving chat history"):(console.log("Different user logging in, clearing chat history"),Ve.getState().setRetrievalHistory([])),localStorage.setItem("LIGHTRAG-PREVIOUS-USER",H);const je=C.auth_mode==="disabled";b(C.access_token,je,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),(C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),je?En.info(C.message||d("login.authDisabled","Authentication is disabled. Using guest access.")):En.success(d("login.successMessage")),g("/")}catch(C){console.error("Login failed...",C),En.error(d("login.errorInvalidCredentials")),Ll.getState().logout(),localStorage.removeItem("LIGHTRAG-API-TOKEN")}finally{j(!1)}};return o.jsxs("div",{className:"flex h-screen w-screen items-center justify-center bg-gradient-to-br from-emerald-50 to-teal-100 dark:from-gray-900 dark:to-gray-800",children:[o.jsx("div",{className:"absolute top-4 right-4 flex items-center gap-2",children:o.jsx(Yd,{className:"bg-white/30 dark:bg-gray-800/30 backdrop-blur-sm rounded-md"})}),o.jsxs(Zg,{className:"w-full max-w-[480px] shadow-lg mx-4",children:[o.jsx(Kg,{className:"flex items-center justify-center space-y-2 pb-8 pt-6",children:o.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("img",{src:"logo.png",alt:"LightRAG Logo",className:"h-12 w-12"}),o.jsx(ss,{className:"size-10 text-emerald-400","aria-hidden":"true"})]}),o.jsxs("div",{className:"text-center space-y-2",children:[o.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"LightRAG"}),o.jsx("p",{className:"text-muted-foreground text-sm",children:d("login.description")})]})]})}),o.jsx(Jg,{className:"px-8 pb-8",children:o.jsxs("form",{onSubmit:pe,className:"space-y-6",children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("label",{htmlFor:"username-input",className:"text-sm font-medium w-16 shrink-0",children:d("login.username")}),o.jsx(us,{id:"username-input",placeholder:d("login.usernamePlaceholder"),value:H,onChange:le=>$(le.target.value),required:!0,className:"h-11 flex-1"})]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("label",{htmlFor:"password-input",className:"text-sm font-medium w-16 shrink-0",children:d("login.password")}),o.jsx(us,{id:"password-input",type:"password",placeholder:d("login.passwordPlaceholder"),value:Y,onChange:le=>W(le.target.value),required:!0,className:"h-11 flex-1"})]}),o.jsx(Cn,{type:"submit",className:"w-full h-11 text-base font-medium mt-2",disabled:N,children:d(N?"login.loggingIn":"login.loginButton")})]})})]})]})},Rp=()=>{const[g,b]=E.useState(!0),{isAuthenticated:x}=Ll(),d=sd();return E.useEffect(()=>{md.setNavigate(d)},[d]),E.useEffect(()=>((async()=>{try{const j=localStorage.getItem("LIGHTRAG-API-TOKEN");if(j&&x){b(!1);return}j||Ll.getState().logout()}catch(j){console.error("Auth initialization error:",j),x||Ll.getState().logout()}finally{b(!1)}})(),()=>{}),[x]),E.useEffect(()=>{!g&&!x&&window.location.hash.slice(1)!=="/login"&&(console.log("Not authenticated, redirecting to login"),d("/login"))},[g,x,d]),g?null:o.jsxs(Eg,{children:[o.jsx(Jf,{path:"/login",element:o.jsx(jp,{})}),o.jsx(Jf,{path:"/*",element:x?o.jsx(Op,{}):null})]})},Up=()=>o.jsx(hd,{children:o.jsxs(Ng,{children:[o.jsx(Rp,{}),o.jsx(Fg,{position:"bottom-center",theme:"system",closeButton:!0,richColors:!0})]})}),_p={language:"Language",theme:"Theme",light:"Light",dark:"Dark",system:"System"},Hp={documents:"Documents",knowledgeGraph:"Knowledge Graph",retrieval:"Retrieval",api:"API",projectRepository:"Project Repository",logout:"Logout",themeToggle:{switchToLight:"Switch to light theme",switchToDark:"Switch to dark theme"}},Lp={description:"Please enter your account and password to log in to the system",username:"Username",usernamePlaceholder:"Please input a username",password:"Password",passwordPlaceholder:"Please input a password",loginButton:"Login",loggingIn:"Logging in...",successMessage:"Login succeeded",errorEmptyFields:"Please enter your username and password",errorInvalidCredentials:"Login failed, please check username and password",authDisabled:"Authentication is disabled. Using login free mode.",guestMode:"Login Free"},qp={cancel:"Cancel",save:"Save",saving:"Saving...",saveFailed:"Save failed"},Bp={clearDocuments:{button:"Clear",tooltip:"Clear documents",title:"Clear Documents",description:"This will remove all documents from the system",warning:"WARNING: This action will permanently delete all documents and cannot be undone!",confirm:"Do you really want to clear all documents?",confirmPrompt:"Type 'yes' to confirm this action",confirmPlaceholder:"Type yes to confirm",clearCache:"Clear LLM cache",confirmButton:"YES",success:"Documents cleared successfully",cacheCleared:"Cache cleared successfully",cacheClearFailed:`Failed to clear cache: +For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return E.useEffect(()=>{var d;document.getElementById((d=g.current)==null?void 0:d.getAttribute("aria-describedby"))||console.warn(b)},[b,g]),null},gp=vd,pp=bd,Cd=Sd,Od=Td,jd=Ed,Rd=zd,Ud=Ad,_d=Nd;const yp=gp,vp=pp,Hd=E.forwardRef(({className:g,...b},x)=>o.jsx(Cd,{className:Qe("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",g),...b,ref:x}));Hd.displayName=Cd.displayName;const Ld=E.forwardRef(({className:g,...b},x)=>o.jsxs(vp,{children:[o.jsx(Hd,{}),o.jsx(Od,{ref:x,className:Qe("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",g),...b})]}));Ld.displayName=Od.displayName;const qd=({className:g,...b})=>o.jsx("div",{className:Qe("flex flex-col space-y-2 text-center sm:text-left",g),...b});qd.displayName="AlertDialogHeader";const Bd=E.forwardRef(({className:g,...b},x)=>o.jsx(Ud,{ref:x,className:Qe("text-lg font-semibold",g),...b}));Bd.displayName=Ud.displayName;const Gd=E.forwardRef(({className:g,...b},x)=>o.jsx(_d,{ref:x,className:Qe("text-muted-foreground text-sm",g),...b}));Gd.displayName=_d.displayName;const bp=E.forwardRef(({className:g,...b},x)=>o.jsx(jd,{ref:x,className:Qe(od(),g),...b}));bp.displayName=jd.displayName;const Sp=E.forwardRef(({className:g,...b},x)=>o.jsx(Rd,{ref:x,className:Qe(od({variant:"outline"}),"mt-2 sm:mt-0",g),...b}));Sp.displayName=Rd.displayName;const Tp=({open:g,onOpenChange:b})=>{const{t:x}=ql(),d=Ve.use.apiKey(),[N,j]=E.useState(""),H=Gt.use.message();E.useEffect(()=>{j(d||"")},[d,g]),E.useEffect(()=>{H&&(H.includes(rd)||H.includes(fd))&&b(!0)},[H,b]);const $=E.useCallback(()=>{Ve.setState({apiKey:N||null}),b(!1)},[N,b]),Y=E.useCallback(W=>{j(W.target.value)},[j]);return o.jsx(yp,{open:g,onOpenChange:b,children:o.jsxs(Ld,{children:[o.jsxs(qd,{children:[o.jsx(Bd,{children:x("apiKeyAlert.title")}),o.jsx(Gd,{children:x("apiKeyAlert.description")})]}),o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("form",{className:"flex gap-2",onSubmit:W=>W.preventDefault(),children:[o.jsx(us,{type:"password",value:N,onChange:Y,placeholder:x("apiKeyAlert.placeholder"),className:"max-h-full w-full min-w-0",autoComplete:"off"}),o.jsx(Cn,{onClick:$,variant:"outline",size:"sm",children:x("apiKeyAlert.save")})]}),H&&o.jsx("div",{className:"text-sm text-red-500",children:H})]})]})})},xp=({status:g})=>{const{t:b}=ql();return g?o.jsxs("div",{className:"min-w-[300px] space-y-2 text-xs",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.storageInfo")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.workingDirectory"),":"]}),o.jsx("span",{className:"truncate",children:g.working_directory}),o.jsxs("span",{children:[b("graphPanel.statusCard.inputDirectory"),":"]}),o.jsx("span",{className:"truncate",children:g.input_directory})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.llmConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.llmBinding"),":"]}),o.jsx("span",{children:g.configuration.llm_binding}),o.jsxs("span",{children:[b("graphPanel.statusCard.llmBindingHost"),":"]}),o.jsx("span",{children:g.configuration.llm_binding_host}),o.jsxs("span",{children:[b("graphPanel.statusCard.llmModel"),":"]}),o.jsx("span",{children:g.configuration.llm_model}),o.jsxs("span",{children:[b("graphPanel.statusCard.maxTokens"),":"]}),o.jsx("span",{children:g.configuration.max_tokens})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.embeddingConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingBinding"),":"]}),o.jsx("span",{children:g.configuration.embedding_binding}),o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingBindingHost"),":"]}),o.jsx("span",{children:g.configuration.embedding_binding_host}),o.jsxs("span",{children:[b("graphPanel.statusCard.embeddingModel"),":"]}),o.jsx("span",{children:g.configuration.embedding_model})]})]}),o.jsxs("div",{className:"space-y-1",children:[o.jsx("h4",{className:"font-medium",children:b("graphPanel.statusCard.storageConfig")}),o.jsxs("div",{className:"text-foreground grid grid-cols-[120px_1fr] gap-1",children:[o.jsxs("span",{children:[b("graphPanel.statusCard.kvStorage"),":"]}),o.jsx("span",{children:g.configuration.kv_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.docStatusStorage"),":"]}),o.jsx("span",{children:g.configuration.doc_status_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.graphStorage"),":"]}),o.jsx("span",{children:g.configuration.graph_storage}),o.jsxs("span",{children:[b("graphPanel.statusCard.vectorStorage"),":"]}),o.jsx("span",{children:g.configuration.vector_storage})]})]})]}):o.jsx("div",{className:"text-foreground text-xs",children:b("graphPanel.statusCard.unavailable")})},Ap=({open:g,onOpenChange:b,status:x})=>{const{t:d}=ql();return o.jsx(Mg,{open:g,onOpenChange:b,children:o.jsxs(zg,{className:"sm:max-w-[500px]",children:[o.jsxs(Cg,{children:[o.jsx(Og,{children:d("graphPanel.statusDialog.title")}),o.jsx(jg,{children:d("graphPanel.statusDialog.description")})]}),o.jsx(xp,{status:x})]})})},Dp=()=>{const{t:g}=ql(),b=Gt.use.health(),x=Gt.use.lastCheckTime(),d=Gt.use.status(),[N,j]=E.useState(!1),[H,$]=E.useState(!1);return E.useEffect(()=>{j(!0);const Y=setTimeout(()=>j(!1),300);return()=>clearTimeout(Y)},[x]),o.jsxs("div",{className:"fixed right-4 bottom-4 flex items-center gap-2 opacity-80 select-none",children:[o.jsxs("div",{className:"flex cursor-pointer items-center gap-2",onClick:()=>$(!0),children:[o.jsx("div",{className:Qe("h-3 w-3 rounded-full transition-all duration-300","shadow-[0_0_8px_rgba(0,0,0,0.2)]",b?"bg-green-500":"bg-red-500",N&&"scale-125",N&&b&&"shadow-[0_0_12px_rgba(34,197,94,0.4)]",N&&!b&&"shadow-[0_0_12px_rgba(239,68,68,0.4)]")}),o.jsx("span",{className:"text-muted-foreground text-xs",children:g(b?"graphPanel.statusIndicator.connected":"graphPanel.statusIndicator.disconnected")})]}),o.jsx(Ap,{open:H,onOpenChange:$,status:d})]})};function Yd({className:g}){const[b,x]=E.useState(!1),{t:d}=ql(),N=Ve.use.language(),j=Ve.use.setLanguage(),H=Ve.use.theme(),$=Ve.use.setTheme(),Y=E.useCallback(he=>{j(he)},[j]),W=E.useCallback(he=>{$(he)},[$]);return o.jsxs(Rg,{open:b,onOpenChange:x,children:[o.jsx(Ug,{asChild:!0,children:o.jsx(Cn,{variant:"ghost",size:"icon",className:Qe("h-9 w-9",g),children:o.jsx(_g,{className:"h-5 w-5"})})}),o.jsx(Hg,{side:"bottom",align:"end",className:"w-56",children:o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("label",{className:"text-sm font-medium",children:d("settings.language")}),o.jsxs(kf,{value:N,onValueChange:Y,children:[o.jsx(Ff,{children:o.jsx($f,{})}),o.jsxs(Wf,{children:[o.jsx(ot,{value:"en",children:"English"}),o.jsx(ot,{value:"zh",children:"中文"}),o.jsx(ot,{value:"fr",children:"Français"}),o.jsx(ot,{value:"ar",children:"العربية"}),o.jsx(ot,{value:"zh_TW",children:"繁體中文"})]})]})]}),o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("label",{className:"text-sm font-medium",children:d("settings.theme")}),o.jsxs(kf,{value:H,onValueChange:W,children:[o.jsx(Ff,{children:o.jsx($f,{})}),o.jsxs(Wf,{children:[o.jsx(ot,{value:"light",children:d("settings.light")}),o.jsx(ot,{value:"dark",children:d("settings.dark")}),o.jsx(ot,{value:"system",children:d("settings.system")})]})]})]})]})})]})}const Np=xg,Xd=E.forwardRef(({className:g,...b},x)=>o.jsx(ud,{ref:x,className:Qe("bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",g),...b}));Xd.displayName=ud.displayName;const Vd=E.forwardRef(({className:g,...b},x)=>o.jsx(id,{ref:x,className:Qe("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-sm px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm",g),...b}));Vd.displayName=id.displayName;const zn=E.forwardRef(({className:g,...b},x)=>o.jsx(cd,{ref:x,className:Qe("ring-offset-background focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none","data-[state=inactive]:invisible data-[state=active]:visible","h-full w-full",g),forceMount:!0,...b}));zn.displayName=cd.displayName;function Zu({value:g,currentTab:b,children:x}){return o.jsx(Vd,{value:g,className:Qe("cursor-pointer px-2 py-1 transition-all",b===g?"!bg-emerald-400 !text-zinc-50":"hover:bg-background/60"),children:x})}function Ep(){const g=Ve.use.currentTab(),{t:b}=ql();return o.jsx("div",{className:"flex h-8 self-center",children:o.jsxs(Xd,{className:"h-full gap-2",children:[o.jsx(Zu,{value:"documents",currentTab:g,children:b("header.documents")}),o.jsx(Zu,{value:"knowledge-graph",currentTab:g,children:b("header.knowledgeGraph")}),o.jsx(Zu,{value:"retrieval",currentTab:g,children:b("header.retrieval")}),o.jsx(Zu,{value:"api",currentTab:g,children:b("header.api")})]})})}function Mp(){const{t:g}=ql(),{isGuestMode:b,coreVersion:x,apiVersion:d,username:N,webuiTitle:j,webuiDescription:H}=Ll(),$=x&&d?`${x}/${d}`:null,Y=()=>{md.navigateToLogin()};return o.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[o.jsxs("div",{className:"min-w-[200px] w-auto flex items-center",children:[o.jsxs("a",{href:dd,className:"flex items-center gap-2",children:[o.jsx(ss,{className:"size-4 text-emerald-400","aria-hidden":"true"}),o.jsx("span",{className:"font-bold md:inline-block",children:is.name})]}),j&&o.jsxs("div",{className:"flex items-center",children:[o.jsx("span",{className:"mx-1 text-xs text-gray-500 dark:text-gray-400",children:"|"}),o.jsx(Lg,{children:o.jsxs(qg,{children:[o.jsx(Bg,{asChild:!0,children:o.jsx("span",{className:"font-medium text-sm cursor-default",children:j})}),H&&o.jsx(Gg,{side:"bottom",children:H})]})})]})]}),o.jsxs("div",{className:"flex h-10 flex-1 items-center justify-center",children:[o.jsx(Ep,{}),b&&o.jsx("div",{className:"ml-2 self-center px-2 py-1 text-xs bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-200 rounded-md",children:g("login.guestMode","Guest Mode")})]}),o.jsx("nav",{className:"w-[200px] flex items-center justify-end",children:o.jsxs("div",{className:"flex items-center gap-2",children:[$&&o.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-400 mr-1",children:["v",$]}),o.jsx(Cn,{variant:"ghost",size:"icon",side:"bottom",tooltip:g("header.projectRepository"),children:o.jsx("a",{href:is.github,target:"_blank",rel:"noopener noreferrer",children:o.jsx(Yg,{className:"size-4","aria-hidden":"true"})})}),o.jsx(Yd,{}),!b&&o.jsx(Cn,{variant:"ghost",size:"icon",side:"bottom",tooltip:`${g("header.logout")} (${N})`,onClick:Y,children:o.jsx(Xg,{className:"size-4","aria-hidden":"true"})})]})})]})}const zp=()=>{const g=E.useContext(pd);if(!g)throw new Error("useTabVisibility must be used within a TabVisibilityProvider");return g};function Cp(){const{t:g}=ql(),{isTabVisible:b}=zp(),x=b("api"),[d,N]=E.useState(!1);return E.useEffect(()=>{d||N(!0)},[d]),o.jsx("div",{className:`size-full ${x?"":"hidden"}`,children:d?o.jsx("iframe",{src:Vg+"/docs",className:"size-full w-full h-full",style:{width:"100%",height:"100%",border:"none"}},"api-docs-iframe"):o.jsx("div",{className:"flex h-full w-full items-center justify-center bg-background",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),o.jsx("p",{children:g("apiSite.loading")})]})})})}function Op(){const g=Gt.use.message(),b=Ve.use.enableHealthCheck(),x=Ve.use.currentTab(),[d,N]=E.useState(!1),[j,H]=E.useState(!0),$=E.useRef(!1),Y=E.useRef(!1),W=E.useCallback(V=>{N(V),V||Gt.getState().clear()},[]),he=E.useRef(!0);E.useEffect(()=>{he.current=!0;const V=()=>{he.current=!1};return window.addEventListener("beforeunload",V),()=>{he.current=!1,window.removeEventListener("beforeunload",V)}},[]),E.useEffect(()=>{if(!b||d)return;const V=async()=>{try{he.current&&await Gt.getState().check()}catch(le){console.error("Health check error:",le)}};Y.current||(Y.current=!0,V());const pe=setInterval(V,Qg*1e3);return()=>clearInterval(pe)},[b,d]),E.useEffect(()=>{(async()=>{if($.current)return;if($.current=!0,sessionStorage.getItem("VERSION_CHECKED_FROM_LOGIN")==="true"){H(!1);return}try{H(!0);const le=localStorage.getItem("LIGHTRAG-API-TOKEN"),C=await gd();if(!C.auth_configured&&C.access_token)Ll.getState().login(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null);else if(le&&(C.core_version||C.api_version||C.webui_title||C.webui_description)){const pl=C.auth_mode==="disabled"||Ll.getState().isGuestMode;Ll.getState().login(le,pl,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null)}sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true")}catch(le){console.error("Failed to get version info:",le)}finally{H(!1)}})()},[]);const ge=E.useCallback(V=>Ve.getState().setCurrentTab(V),[]);return E.useEffect(()=>{g&&(g.includes(rd)||g.includes(fd))&&N(!0)},[g]),o.jsx(hd,{children:o.jsx(up,{children:j?o.jsxs("div",{className:"flex h-screen w-screen flex-col",children:[o.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex h-10 w-full border-b px-4 backdrop-blur",children:[o.jsx("div",{className:"min-w-[200px] w-auto flex items-center",children:o.jsxs("a",{href:dd,className:"flex items-center gap-2",children:[o.jsx(ss,{className:"size-4 text-emerald-400","aria-hidden":"true"}),o.jsx("span",{className:"font-bold md:inline-block",children:is.name})]})}),o.jsx("div",{className:"flex h-10 flex-1 items-center justify-center"}),o.jsx("nav",{className:"w-[200px] flex items-center justify-end"})]}),o.jsx("div",{className:"flex flex-1 items-center justify-center",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"mb-2 h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"}),o.jsx("p",{children:"Initializing..."})]})})]}):o.jsxs("main",{className:"flex h-screen w-screen overflow-hidden",children:[o.jsxs(Np,{defaultValue:x,className:"!m-0 flex grow flex-col !p-0 overflow-hidden",onValueChange:ge,children:[o.jsx(Mp,{}),o.jsxs("div",{className:"relative grow",children:[o.jsx(zn,{value:"documents",className:"absolute top-0 right-0 bottom-0 left-0 overflow-auto",children:o.jsx(Pg,{})}),o.jsx(zn,{value:"knowledge-graph",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(wg,{})}),o.jsx(zn,{value:"retrieval",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(Wg,{})}),o.jsx(zn,{value:"api",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:o.jsx(Cp,{})})]})]}),b&&o.jsx(Dp,{}),o.jsx(Tp,{open:d,onOpenChange:W})]})})})}const jp=()=>{const g=sd(),{login:b,isAuthenticated:x}=Ll(),{t:d}=ql(),[N,j]=E.useState(!1),[H,$]=E.useState(""),[Y,W]=E.useState(""),[he,ge]=E.useState(!0),V=E.useRef(!1);if(E.useEffect(()=>{console.log("LoginPage mounted")},[]),E.useEffect(()=>((async()=>{if(!V.current){V.current=!0;try{if(x){g("/");return}const C=await gd();if((C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),!C.auth_configured&&C.access_token){b(C.access_token,!0,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),C.message&&En.info(C.message),g("/");return}ge(!1)}catch(C){console.error("Failed to check auth configuration:",C),ge(!1)}}})(),()=>{}),[x,b,g]),he)return null;const pe=async le=>{if(le.preventDefault(),!H||!Y){En.error(d("login.errorEmptyFields"));return}try{j(!0);const C=await kg(H,Y);localStorage.getItem("LIGHTRAG-PREVIOUS-USER")===H?console.log("Same user logging in, preserving chat history"):(console.log("Different user logging in, clearing chat history"),Ve.getState().setRetrievalHistory([])),localStorage.setItem("LIGHTRAG-PREVIOUS-USER",H);const je=C.auth_mode==="disabled";b(C.access_token,je,C.core_version,C.api_version,C.webui_title||null,C.webui_description||null),(C.core_version||C.api_version)&&sessionStorage.setItem("VERSION_CHECKED_FROM_LOGIN","true"),je?En.info(C.message||d("login.authDisabled","Authentication is disabled. Using guest access.")):En.success(d("login.successMessage")),g("/")}catch(C){console.error("Login failed...",C),En.error(d("login.errorInvalidCredentials")),Ll.getState().logout(),localStorage.removeItem("LIGHTRAG-API-TOKEN")}finally{j(!1)}};return o.jsxs("div",{className:"flex h-screen w-screen items-center justify-center bg-gradient-to-br from-emerald-50 to-teal-100 dark:from-gray-900 dark:to-gray-800",children:[o.jsx("div",{className:"absolute top-4 right-4 flex items-center gap-2",children:o.jsx(Yd,{className:"bg-white/30 dark:bg-gray-800/30 backdrop-blur-sm rounded-md"})}),o.jsxs(Zg,{className:"w-full max-w-[480px] shadow-lg mx-4",children:[o.jsx(Kg,{className:"flex items-center justify-center space-y-2 pb-8 pt-6",children:o.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("img",{src:"logo.svg",alt:"LightRAG Logo",className:"h-12 w-12"}),o.jsx(ss,{className:"size-10 text-emerald-400","aria-hidden":"true"})]}),o.jsxs("div",{className:"text-center space-y-2",children:[o.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"LightRAG"}),o.jsx("p",{className:"text-muted-foreground text-sm",children:d("login.description")})]})]})}),o.jsx(Jg,{className:"px-8 pb-8",children:o.jsxs("form",{onSubmit:pe,className:"space-y-6",children:[o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("label",{htmlFor:"username-input",className:"text-sm font-medium w-16 shrink-0",children:d("login.username")}),o.jsx(us,{id:"username-input",placeholder:d("login.usernamePlaceholder"),value:H,onChange:le=>$(le.target.value),required:!0,className:"h-11 flex-1"})]}),o.jsxs("div",{className:"flex items-center gap-4",children:[o.jsx("label",{htmlFor:"password-input",className:"text-sm font-medium w-16 shrink-0",children:d("login.password")}),o.jsx(us,{id:"password-input",type:"password",placeholder:d("login.passwordPlaceholder"),value:Y,onChange:le=>W(le.target.value),required:!0,className:"h-11 flex-1"})]}),o.jsx(Cn,{type:"submit",className:"w-full h-11 text-base font-medium mt-2",disabled:N,children:d(N?"login.loggingIn":"login.loginButton")})]})})]})]})},Rp=()=>{const[g,b]=E.useState(!0),{isAuthenticated:x}=Ll(),d=sd();return E.useEffect(()=>{md.setNavigate(d)},[d]),E.useEffect(()=>((async()=>{try{const j=localStorage.getItem("LIGHTRAG-API-TOKEN");if(j&&x){b(!1);return}j||Ll.getState().logout()}catch(j){console.error("Auth initialization error:",j),x||Ll.getState().logout()}finally{b(!1)}})(),()=>{}),[x]),E.useEffect(()=>{!g&&!x&&window.location.hash.slice(1)!=="/login"&&(console.log("Not authenticated, redirecting to login"),d("/login"))},[g,x,d]),g?null:o.jsxs(Eg,{children:[o.jsx(Jf,{path:"/login",element:o.jsx(jp,{})}),o.jsx(Jf,{path:"/*",element:x?o.jsx(Op,{}):null})]})},Up=()=>o.jsx(hd,{children:o.jsxs(Ng,{children:[o.jsx(Rp,{}),o.jsx(Fg,{position:"bottom-center",theme:"system",closeButton:!0,richColors:!0})]})}),_p={language:"Language",theme:"Theme",light:"Light",dark:"Dark",system:"System"},Hp={documents:"Documents",knowledgeGraph:"Knowledge Graph",retrieval:"Retrieval",api:"API",projectRepository:"Project Repository",logout:"Logout",themeToggle:{switchToLight:"Switch to light theme",switchToDark:"Switch to dark theme"}},Lp={description:"Please enter your account and password to log in to the system",username:"Username",usernamePlaceholder:"Please input a username",password:"Password",passwordPlaceholder:"Please input a password",loginButton:"Login",loggingIn:"Logging in...",successMessage:"Login succeeded",errorEmptyFields:"Please enter your username and password",errorInvalidCredentials:"Login failed, please check username and password",authDisabled:"Authentication is disabled. Using login free mode.",guestMode:"Login Free"},qp={cancel:"Cancel",save:"Save",saving:"Saving...",saveFailed:"Save failed"},Bp={clearDocuments:{button:"Clear",tooltip:"Clear documents",title:"Clear Documents",description:"This will remove all documents from the system",warning:"WARNING: This action will permanently delete all documents and cannot be undone!",confirm:"Do you really want to clear all documents?",confirmPrompt:"Type 'yes' to confirm this action",confirmPlaceholder:"Type yes to confirm",clearCache:"Clear LLM cache",confirmButton:"YES",success:"Documents cleared successfully",cacheCleared:"Cache cleared successfully",cacheClearFailed:`Failed to clear cache: {{error}}`,failed:`Clear Documents Failed: {{message}}`,error:`Clear Documents Failed: {{error}}`},uploadDocuments:{button:"Upload",tooltip:"Upload documents",title:"Upload Documents",description:"Drag and drop your documents here or click to browse.",single:{uploading:"Uploading {{name}}: {{percent}}%",success:`Upload Success: diff --git a/lightrag/api/webui/index.html b/lightrag/api/webui/index.html index 7c8a0936..9738d10d 100644 --- a/lightrag/api/webui/index.html +++ b/lightrag/api/webui/index.html @@ -5,10 +5,10 @@ - + Lightrag - + diff --git a/lightrag/api/webui/logo.png b/lightrag/api/webui/logo.png deleted file mode 100644 index 1d2d3a429174e82ee30db7d535368400818d7856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182929 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�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 O \ No newline at end of file diff --git a/lightrag_webui/index.html b/lightrag_webui/index.html index 3dd1ebbc..6eb226fa 100644 --- a/lightrag_webui/index.html +++ b/lightrag_webui/index.html @@ -5,7 +5,7 @@ - + Lightrag diff --git a/lightrag_webui/public/logo.png b/lightrag_webui/public/logo.png deleted file mode 100644 index e7afaa7e4778ab2fa503081586cb8b4677a22cf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158552 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
{`jY$KjRYGQlXn6iaKoX_dv~-t+ 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%0A&?m5GPkz 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 diff --git a/lightrag_webui/public/logo.svg b/lightrag_webui/public/logo.svg new file mode 100755 index 00000000..a78a1717 --- /dev/null +++ b/lightrag_webui/public/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lightrag_webui/src/features/LoginPage.tsx b/lightrag_webui/src/features/LoginPage.tsx index bc08d8f8..9f5f68e4 100644 --- a/lightrag_webui/src/features/LoginPage.tsx +++ b/lightrag_webui/src/features/LoginPage.tsx @@ -153,7 +153,7 @@ const LoginPage = () => {
- LightRAG Logo + LightRAG Logo
diff --git a/lightrag_webui/src/features/SiteHeader.tsx b/lightrag_webui/src/features/SiteHeader.tsx index 4881e4b6..e0186b6a 100644 --- a/lightrag_webui/src/features/SiteHeader.tsx +++ b/lightrag_webui/src/features/SiteHeader.tsx @@ -71,7 +71,6 @@ export default function SiteHeader() {
{webuiTitle && ( From 00b78b91d6f82ca19996f3a704041b324b5424f0 Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 12 May 2025 19:14:02 +0800 Subject: [PATCH 26/37] Change website icon --- lightrag/api/webui/icon.svg | 1 + lightrag/api/webui/index.html | 2 +- lightrag_webui/index.html | 2 +- lightrag_webui/public/icon.svg | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 lightrag/api/webui/icon.svg create mode 100644 lightrag_webui/public/icon.svg diff --git a/lightrag/api/webui/icon.svg b/lightrag/api/webui/icon.svg new file mode 100644 index 00000000..d80cf9e5 --- /dev/null +++ b/lightrag/api/webui/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lightrag/api/webui/index.html b/lightrag/api/webui/index.html index 9738d10d..823b0948 100644 --- a/lightrag/api/webui/index.html +++ b/lightrag/api/webui/index.html @@ -5,7 +5,7 @@ - + Lightrag diff --git a/lightrag_webui/index.html b/lightrag_webui/index.html index 6eb226fa..ff14dccf 100644 --- a/lightrag_webui/index.html +++ b/lightrag_webui/index.html @@ -5,7 +5,7 @@ - + Lightrag diff --git a/lightrag_webui/public/icon.svg b/lightrag_webui/public/icon.svg new file mode 100644 index 00000000..d80cf9e5 --- /dev/null +++ b/lightrag_webui/public/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file From 85ac94bae07ffb6bedc88bc34126e3368bdf516e Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 12 May 2025 19:47:35 +0800 Subject: [PATCH 27/37] Update icon.svg --- lightrag/api/webui/icon.svg | 2 +- lightrag_webui/public/icon.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lightrag/api/webui/icon.svg b/lightrag/api/webui/icon.svg index d80cf9e5..5d2f0100 100644 --- a/lightrag/api/webui/icon.svg +++ b/lightrag/api/webui/icon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/lightrag_webui/public/icon.svg b/lightrag_webui/public/icon.svg index d80cf9e5..5d2f0100 100644 --- a/lightrag_webui/public/icon.svg +++ b/lightrag_webui/public/icon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From d0029b5b53e18d3e74609d2a12fcc70cd7077494 Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 12 May 2025 20:02:03 +0800 Subject: [PATCH 28/37] Update favicon.png --- lightrag/api/webui/favicon.png | Bin 0 -> 15675 bytes lightrag/api/webui/icon.svg | 1 - lightrag/api/webui/index.html | 2 +- lightrag_webui/index.html | 2 +- lightrag_webui/public/favicon.png | Bin 0 -> 15675 bytes lightrag_webui/public/icon.svg | 1 - 6 files changed, 2 insertions(+), 4 deletions(-) create mode 100644 lightrag/api/webui/favicon.png delete mode 100644 lightrag/api/webui/icon.svg create mode 100644 lightrag_webui/public/favicon.png delete mode 100644 lightrag_webui/public/icon.svg diff --git a/lightrag/api/webui/favicon.png b/lightrag/api/webui/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..307566ab234967efc3134a0a81dc375c8e3c8dfc GIT binary patch literal 15675 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 literal 0 HcmV?d00001 diff --git a/lightrag/api/webui/icon.svg b/lightrag/api/webui/icon.svg deleted file mode 100644 index 5d2f0100..00000000 --- a/lightrag/api/webui/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/lightrag/api/webui/index.html b/lightrag/api/webui/index.html index 823b0948..39cbe26d 100644 --- a/lightrag/api/webui/index.html +++ b/lightrag/api/webui/index.html @@ -5,7 +5,7 @@ - + Lightrag diff --git a/lightrag_webui/index.html b/lightrag_webui/index.html index ff14dccf..ebbcce35 100644 --- a/lightrag_webui/index.html +++ b/lightrag_webui/index.html @@ -5,7 +5,7 @@ - + Lightrag diff --git a/lightrag_webui/public/favicon.png b/lightrag_webui/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..307566ab234967efc3134a0a81dc375c8e3c8dfc GIT binary patch literal 15675 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 literal 0 HcmV?d00001 diff --git a/lightrag_webui/public/icon.svg b/lightrag_webui/public/icon.svg deleted file mode 100644 index 5d2f0100..00000000 --- a/lightrag_webui/public/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 746d35333603211e51b65ae6c197bcfb9e6297ac Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 12 May 2025 23:26:44 +0800 Subject: [PATCH 29/37] Update security.md --- SECURITY.md | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index 034e8480..a00c3dec 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,21 +1,19 @@ -# Security Policy +# Reporting Security Issues -## Supported Versions +The LightRAG team and community take security bugs seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions. -Use this section to tell people about which versions of your project are -currently being supported with security updates. +To report a security issue, please use the GitHub Security Advisory: [Report a Vulnerability](https://github.com/HKUDS/LightRAG/security/advisories/new) + +The LightRAG team will send a response indicating the next steps in handling your report. After the initial reply to your report, the security team will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance. + +Report security bugs in third-party modules to the person or team maintaining the module. + +### Supported Versions + +The following versions currently being supported with security updates. | Version | Supported | | ------- | ------------------ | -| 5.1.x | :white_check_mark: | -| 5.0.x | :x: | -| 4.0.x | :white_check_mark: | -| < 4.0 | :x: | +| 1.2.x | :x: | +| 1.3.x | :white_check_mark: | -## Reporting a Vulnerability - -Use this section to tell people how to report a vulnerability. - -Tell them where to go, how often they can expect to get an update on a -reported vulnerability, what to expect if the vulnerability is accepted or -declined, etc. From 911bbd17a4bc86bb0acddefaeb9b26b2a55c70f7 Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 12 May 2025 23:27:41 +0800 Subject: [PATCH 30/37] Fix linting --- SECURITY.md | 3 +-- lightrag_webui/public/logo.svg | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index a00c3dec..1b61b5e9 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,7 +6,7 @@ To report a security issue, please use the GitHub Security Advisory: [Report a The LightRAG team will send a response indicating the next steps in handling your report. After the initial reply to your report, the security team will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance. -Report security bugs in third-party modules to the person or team maintaining the module. +Report security bugs in third-party modules to the person or team maintaining the module. ### Supported Versions @@ -16,4 +16,3 @@ The following versions currently being supported with security updates. | ------- | ------------------ | | 1.2.x | :x: | | 1.3.x | :white_check_mark: | - diff --git a/lightrag_webui/public/logo.svg b/lightrag_webui/public/logo.svg index a78a1717..fd32836b 100755 --- a/lightrag_webui/public/logo.svg +++ b/lightrag_webui/public/logo.svg @@ -1 +1 @@ - \ No newline at end of file + From 5c533f5e1aa9aa75fbf5c985fb65444e28ce17c7 Mon Sep 17 00:00:00 2001 From: yangdx Date: Tue, 13 May 2025 00:08:21 +0800 Subject: [PATCH 31/37] Fix liinting --- examples/lightrag_openai_compatible_demo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/lightrag_openai_compatible_demo.py b/examples/lightrag_openai_compatible_demo.py index 45948b6f..82e1b07b 100644 --- a/examples/lightrag_openai_compatible_demo.py +++ b/examples/lightrag_openai_compatible_demo.py @@ -100,7 +100,7 @@ async def embedding_func(texts: list[str]) -> np.ndarray: return await ollama_embed( texts=texts, embed_model="bge-m3:latest", - host="http://m4.lan.znipower.com:11434", + host="http://localhost:11434", ) From 2845e268e4829d9da52a5eb0938f519528a879cd Mon Sep 17 00:00:00 2001 From: yangdx Date: Tue, 13 May 2025 02:00:01 +0800 Subject: [PATCH 32/37] Ensure priority_limit_async_func_call decorator receive callable --- lightrag/utils.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lightrag/utils.py b/lightrag/utils.py index 93253be6..7ecb11e3 100644 --- a/lightrag/utils.py +++ b/lightrag/utils.py @@ -326,6 +326,9 @@ def priority_limit_async_func_call(max_size: int, max_queue_size: int = 1000): """ def final_decro(func): + # Ensure func is callable + if not callable(func): + raise TypeError(f"Expected a callable object, got {type(func)}") queue = asyncio.PriorityQueue(maxsize=max_queue_size) tasks = set() initialization_lock = asyncio.Lock() From 461c76ce28eee655497d9c0d860804a5a6909e69 Mon Sep 17 00:00:00 2001 From: yangdx Date: Tue, 13 May 2025 17:48:45 +0800 Subject: [PATCH 33/37] Update openai compatible demo --- examples/lightrag_openai_compatible_demo.py | 78 +++++++++++---------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/examples/lightrag_openai_compatible_demo.py b/examples/lightrag_openai_compatible_demo.py index 82e1b07b..15187d25 100644 --- a/examples/lightrag_openai_compatible_demo.py +++ b/examples/lightrag_openai_compatible_demo.py @@ -7,9 +7,12 @@ from lightrag import LightRAG, QueryParam from lightrag.llm.openai import openai_complete_if_cache from lightrag.llm.ollama import ollama_embed from lightrag.utils import EmbeddingFunc, logger, set_verbose_debug -import numpy as np from lightrag.kg.shared_storage import initialize_pipeline_status +from dotenv import load_dotenv + +load_dotenv(dotenv_path=".env", override=False) + WORKING_DIR = "./dickens" @@ -86,43 +89,16 @@ async def llm_model_func( prompt, system_prompt=None, history_messages=[], keyword_extraction=False, **kwargs ) -> str: return await openai_complete_if_cache( - "deepseek-chat", + os.getenv("LLM_MODEL", "deepseek-chat"), prompt, system_prompt=system_prompt, history_messages=history_messages, - api_key=os.getenv("OPENAI_API_KEY"), - base_url="https://api.deepseek.com", + api_key=os.getenv("LLM_BINDING_API_KEY") or os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("LLM_BINDING_HOST", "https://api.deepseek.com"), **kwargs, ) -async def embedding_func(texts: list[str]) -> np.ndarray: - return await ollama_embed( - texts=texts, - embed_model="bge-m3:latest", - host="http://localhost:11434", - ) - - -async def get_embedding_dim(): - test_text = ["This is a test sentence."] - embedding = await embedding_func(test_text) - embedding_dim = embedding.shape[1] - return embedding_dim - - -# function test -async def test_funcs(): - result = await llm_model_func("How are you?") - print("llm_model_func: ", result) - - result = await embedding_func(["How are you?"]) - print("embedding_func: ", result) - - -# asyncio.run(test_funcs()) - - async def print_stream(stream): async for chunk in stream: if chunk: @@ -130,16 +106,17 @@ async def print_stream(stream): async def initialize_rag(): - embedding_dimension = await get_embedding_dim() - print(f"Detected embedding dimension: {embedding_dimension}") - rag = LightRAG( working_dir=WORKING_DIR, llm_model_func=llm_model_func, embedding_func=EmbeddingFunc( - embedding_dim=embedding_dimension, - max_token_size=8192, - func=embedding_func, + embedding_dim=int(os.getenv("EMBEDDING_DIM", "1024")), + max_token_size=int(os.getenv("MAX_EMBED_TOKENS", "8192")), + func=lambda texts: ollama_embed( + texts, + embed_model=os.getenv("EMBEDDING_MODEL", "bge-m3:latest"), + host=os.getenv("EMBEDDING_BINDING_HOST", "http://localhost:11434"), + ), ), ) @@ -151,9 +128,36 @@ async def initialize_rag(): async def main(): try: + # Clear old data files + files_to_delete = [ + "graph_chunk_entity_relation.graphml", + "kv_store_doc_status.json", + "kv_store_full_docs.json", + "kv_store_text_chunks.json", + "vdb_chunks.json", + "vdb_entities.json", + "vdb_relationships.json", + ] + + for file in files_to_delete: + file_path = os.path.join(WORKING_DIR, file) + if os.path.exists(file_path): + os.remove(file_path) + print(f"Deleting old file:: {file_path}") + # Initialize RAG instance rag = await initialize_rag() + # Test embedding function + test_text = ["This is a test string for embedding."] + embedding = await rag.embedding_func(test_text) + embedding_dim = embedding.shape[1] + print("\n=======================") + print("Test embedding function") + print("========================") + print(f"Test dict: {test_text}") + print(f"Detected embedding dimension: {embedding_dim}\n\n") + with open("./book.txt", "r", encoding="utf-8") as f: await rag.ainsert(f.read()) From 43948d6f17e482f84bc3080b10deca08663466e4 Mon Sep 17 00:00:00 2001 From: yangdx Date: Tue, 13 May 2025 18:27:55 +0800 Subject: [PATCH 34/37] Update openai demo --- examples/lightrag_openai_demo.py | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/examples/lightrag_openai_demo.py b/examples/lightrag_openai_demo.py index 24e0257c..fa0b37f1 100644 --- a/examples/lightrag_openai_demo.py +++ b/examples/lightrag_openai_demo.py @@ -91,10 +91,46 @@ async def initialize_rag(): async def main(): + # Check if OPENAI_API_KEY environment variable exists + if not os.getenv("OPENAI_API_KEY"): + print( + "Error: OPENAI_API_KEY environment variable is not set. Please set this variable before running the program." + ) + print("You can set the environment variable by running:") + print(" export OPENAI_API_KEY='your-openai-api-key'") + return # Exit the async function + try: + # Clear old data files + files_to_delete = [ + "graph_chunk_entity_relation.graphml", + "kv_store_doc_status.json", + "kv_store_full_docs.json", + "kv_store_text_chunks.json", + "vdb_chunks.json", + "vdb_entities.json", + "vdb_relationships.json", + ] + + for file in files_to_delete: + file_path = os.path.join(WORKING_DIR, file) + if os.path.exists(file_path): + os.remove(file_path) + print(f"Deleting old file:: {file_path}") + # Initialize RAG instance rag = await initialize_rag() + # Test embedding function + test_text = ["This is a test string for embedding."] + embedding = await rag.embedding_func(test_text) + embedding_dim = embedding.shape[1] + print("\n=======================") + print("Test embedding function") + print("========================") + print(f"Test dict: {test_text}") + print(f"Detected embedding dimension: {embedding_dim}\n\n") + with open("./book.txt", "r", encoding="utf-8") as f: await rag.ainsert(f.read()) From 55e28f45e4ec88deb52afa90b0ff1197f9ad057d Mon Sep 17 00:00:00 2001 From: yangdx Date: Tue, 13 May 2025 20:35:35 +0800 Subject: [PATCH 35/37] Updage logo --- lightrag/api/webui/logo.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lightrag/api/webui/logo.svg b/lightrag/api/webui/logo.svg index a78a1717..fd32836b 100755 --- a/lightrag/api/webui/logo.svg +++ b/lightrag/api/webui/logo.svg @@ -1 +1 @@ - \ No newline at end of file + From cb4ae4f62a6b23f4295320a2246c2d4d0a607657 Mon Sep 17 00:00:00 2001 From: yangdx Date: Tue, 13 May 2025 21:22:00 +0800 Subject: [PATCH 36/37] Update docker files --- Dockerfile | 2 +- docker-compose.yml | 31 +++++-------------------------- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/Dockerfile b/Dockerfile index edc6addb..31886e0a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,7 +31,7 @@ COPY --from=builder /root/.local /root/.local COPY ./lightrag ./lightrag COPY setup.py . -RUN pip install . +RUN pip install ".[api]" # Make sure scripts in .local are usable ENV PATH=/root/.local/bin:$PATH diff --git a/docker-compose.yml b/docker-compose.yml index 549cabf5..d620a4f0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,10 @@ services: lightrag: - build: . + build: + context: . + dockerfile: Dockerfile + tags: + - lightrag:latest ports: - "${PORT:-9621}:9621" volumes: @@ -13,28 +17,3 @@ services: restart: unless-stopped extra_hosts: - "host.docker.internal:host-gateway" - - neo4j: - image: neo4j:5.26.4-community - container_name: lightrag-server_neo4j-community - restart: always - ports: - - "7474:7474" - - "7687:7687" - environment: - - NEO4J_AUTH=${NEO4J_USERNAME}/${NEO4J_PASSWORD} - - NEO4J_apoc_export_file_enabled=true - - NEO4J_server_bolt_listen__address=0.0.0.0:7687 - - NEO4J_server_bolt_advertised__address=neo4j:7687 - volumes: - - ./neo4j/plugins:/var/lib/neo4j/plugins - - lightrag_neo4j_import:/var/lib/neo4j/import - - lightrag_neo4j_data:/data - - lightrag_neo4j_backups:/backups - extra_hosts: - - "host.docker.internal:host-gateway" - -volumes: - lightrag_neo4j_import: - lightrag_neo4j_data: - lightrag_neo4j_backups: From bb7b3602696b4777e0f2d66a865656184da4890e Mon Sep 17 00:00:00 2001 From: yangdx Date: Tue, 13 May 2025 21:35:04 +0800 Subject: [PATCH 37/37] Fix linting --- lightrag/lightrag.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lightrag/lightrag.py b/lightrag/lightrag.py index 2c51fdd0..25385404 100644 --- a/lightrag/lightrag.py +++ b/lightrag/lightrag.py @@ -1026,7 +1026,7 @@ class LightRAG: # Persistent llm cache if self.llm_response_cache: - await self.llm_response_cache.index_done_callback + await self.llm_response_cache.index_done_callback() # Update document status to failed await self.doc_status.upsert( @@ -1106,7 +1106,7 @@ class LightRAG: # Persistent llm cache if self.llm_response_cache: - await self.llm_response_cache.index_done_callback + await self.llm_response_cache.index_done_callback() # Update document status to failed await self.doc_status.upsert(