diff --git a/.gitignore b/.gitignore index 1f60577..9693424 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ bin/ dist/ build/ +ui-build/ +node_modules/ data/ .cache/ *.log @@ -22,3 +24,4 @@ coverage.out # Browser test output playwright-report/ test-results/ +.screenshots/ diff --git a/README.md b/README.md index f59320c..72361cf 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,17 @@ HTTP API、管理员鉴权和 `custom_menu_items` 接入 Core;插件不导入 - `plugins/plugin-admin`:通用插件管理控制面,负责清单、签名、插件市场、 下载入库、启用、停用、升级、回滚、删除、配置、健康检查、审计和菜单注入。 -- `plugins/subscription-admin`:可选的订阅管理业务插件。它不是插件管理 - 控制面,只有安装、启用并应用菜单后才会出现。 +- `plugins/subscription-admin`:可选的订阅管理业务模块后端。它不是插件管理 + 控制面;只有安装并启用后才会挂载到 Plugin Admin 的统一导航中。 - `docs/`:插件框架、清单、边界、架构、开发和验收契约。 -两个插件都是独立 Go module,可以分别构建和发布。生产环境应使用独立的 +Plugin Admin 的浏览器控制面位于 `plugins/plugin-admin/ui-vue`,基于腾讯 +TDesign Vue Next starter。运行 `plugins/plugin-admin/build-ui.sh` 会完成 +TypeScript/Vite 构建,并把本地打包的 TDesign、线性图标和 ECharts 嵌入 +Go 服务;官方 Core 的 `frontend/` 不参与构建。 + +控制面和业务模块后端可以独立构建和发布,但浏览器端只有一个 Plugin Admin +登录入口。生产环境应使用独立的 低权限服务账号、HTTPS 反向代理、签名包和稳定的 Core API 兼容基线。 ## 推荐部署顺序 @@ -48,12 +54,16 @@ Core 仓库,也不要让插件连接 Core PostgreSQL/Redis。 ## 接入顺序 -1. 启动 `plugin-admin` 和需要的业务插件,各自监听独立端口。 -2. 使用 Core 管理员账号登录插件服务;普通账号被拒绝。 +1. 启动 `plugin-admin` 和需要的业务模块后端,各自监听独立端口。 +2. 使用 Core 管理员账号登录 Plugin Admin 一次;普通账号被拒绝,业务模块不再单独登录。 3. 在 `plugin-admin` 上传或从插件市场下载并校验业务插件包;包只进入“已入库,待启用”状态。 4. 配置 loopback `service_url`,点击启用并完成健康检查后,插件才会启动。 5. 预览、确认并应用插件声明的管理员菜单;停用后可删除插件。 +订阅模块进入统一控制面后使用 `/modules/subscription/*` 路由。Plugin Admin +通过同源 BFF 代理固定的套餐、订阅和用户只读接口,浏览器不再访问订阅 +服务的登录页,也不会创建第二个管理员会话。 + Core 继续作为用户、余额、订阅、计费和用量账本的权威来源。插件浏览器端 不持有 Core JWT、Admin Key 或其他服务密钥。 @@ -62,14 +72,22 @@ Core 继续作为用户、余额、订阅、计费和用量账本的权威来源 Linux + systemd 环境可直接使用仓库内的安装脚本: ```sh -curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/install.sh \ - | sudo bash -s -- --plugin all +RELEASE_SHA=COMMIT_SHA_40_HEX +curl -fsSL "https://git.awaioi.com/awaioi/sub2api-add/raw/commit/${RELEASE_SHA}/deploy/install.sh" \ + | sudo env PLUGIN_REF=v1.1.0 PLUGIN_COMMIT_SHA="$RELEASE_SHA" bash -s -- --plugin all ``` +生产安装必须提供发布提交的 `PLUGIN_COMMIT_SHA`;上面的 `RELEASE_SHA` +应从受信任的发布记录中复制,并与 `PLUGIN_REF` 对应。脚本默认使用 +`v1.1.0` tag,但 tag 本身不作为完整性证明。可变分支和未 pin 的 tag +仅能在开发环境分别显式开启 `PLUGIN_ALLOW_MUTABLE_REF=true` 或 +`PLUGIN_ALLOW_UNPINNED_TAG=true`。 + 默认卸载并保留配置/数据: ```sh -curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/uninstall.sh \ +RELEASE_SHA=COMMIT_SHA_40_HEX +curl -fsSL "https://git.awaioi.com/awaioi/sub2api-add/raw/commit/${RELEASE_SHA}/deploy/uninstall.sh" \ | sudo bash -s -- --plugin all ``` diff --git a/deploy/README.md b/deploy/README.md index 7b7963b..e8bed6c 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -22,22 +22,35 @@ docker compose -f docker-compose.yml up -d 在一台已安装 Go 1.23+、Git 和 systemd 的 Linux 主机上: ```sh +RELEASE_SHA=COMMIT_SHA_40_HEX +curl -fsSL "https://git.awaioi.com/awaioi/sub2api-add/raw/commit/${RELEASE_SHA}/deploy/install.sh" \ + | sudo env PLUGIN_REF=v1.1.0 PLUGIN_COMMIT_SHA="$RELEASE_SHA" bash -s -- --plugin all +``` + +生产安装必须固定 `PLUGIN_COMMIT_SHA`,并从受信任的发布记录复制 +`RELEASE_SHA`。tag 只是选择版本,不是完整性证明。开发环境如需使用 +可变分支或未 pin 的 tag,必须显式设置对应的开发开关。 + +```sh +export PLUGIN_ENV=development PLUGIN_REF=main PLUGIN_ALLOW_MUTABLE_REF=true curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/install.sh \ - | sudo bash -s -- --plugin all + | sudo -E bash -s -- --plugin all ``` 只安装控制面: ```sh -curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/install.sh \ - | sudo bash -s -- --plugin plugin-admin +RELEASE_SHA=COMMIT_SHA_40_HEX +curl -fsSL "https://git.awaioi.com/awaioi/sub2api-add/raw/commit/${RELEASE_SHA}/deploy/install.sh" \ + | sudo env PLUGIN_REF=v1.1.0 PLUGIN_COMMIT_SHA="$RELEASE_SHA" bash -s -- --plugin plugin-admin ``` 安装订阅插件: ```sh -curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/install.sh \ - | sudo bash -s -- --plugin subscription-admin +RELEASE_SHA=COMMIT_SHA_40_HEX +curl -fsSL "https://git.awaioi.com/awaioi/sub2api-add/raw/commit/${RELEASE_SHA}/deploy/install.sh" \ + | sudo env PLUGIN_REF=v1.1.0 PLUGIN_COMMIT_SHA="$RELEASE_SHA" bash -s -- --plugin subscription-admin ``` 默认安装位置: @@ -63,7 +76,8 @@ sudo systemctl restart sub2api-plugin-admin sub2api-subscription-admin `PLUGIN_CONFIG_KEY` 和受信发布者公钥。插件市场默认读取 `/var/lib/sub2api-add/plugin-admin/marketplace/index.json`;可通过 `PLUGIN_MARKETPLACE_INDEX` 指向受控本地索引或 HTTPS 索引,并用 -`PLUGIN_MARKETPLACE_ALLOWED_HOSTS` 限定远程索引和包的精确主机。 +`PLUGIN_MARKETPLACE_ALLOWED_HOSTS` 限定远程索引和包的精确主机。生产远程索引 +还必须设置 `PLUGIN_MARKETPLACE_INDEX_SHA256`,把目录内容固定到已审核的摘要。 ## 菜单接入 @@ -81,14 +95,16 @@ sudo systemctl restart sub2api-plugin-admin sub2api-subscription-admin 默认卸载服务和二进制,但保留配置与插件数据,便于重新安装: ```sh -curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/uninstall.sh \ +RELEASE_SHA=COMMIT_SHA_40_HEX +curl -fsSL "https://git.awaioi.com/awaioi/sub2api-add/raw/commit/${RELEASE_SHA}/deploy/uninstall.sh" \ | sudo bash -s -- --plugin all ``` 确认同时删除插件配置、插件数据和源码: ```sh -curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/uninstall.sh \ +RELEASE_SHA=COMMIT_SHA_40_HEX +curl -fsSL "https://git.awaioi.com/awaioi/sub2api-add/raw/commit/${RELEASE_SHA}/deploy/uninstall.sh" \ | sudo bash -s -- --plugin all --purge --yes ``` diff --git a/deploy/install.sh b/deploy/install.sh index af7a8ef..4c929e8 100755 --- a/deploy/install.sh +++ b/deploy/install.sh @@ -3,12 +3,56 @@ set -Eeuo pipefail REPO_URL=${PLUGIN_REPO_URL:-https://git.awaioi.com/awaioi/sub2api-add.git} SOURCE_DIR=${PLUGIN_SOURCE_DIR:-/opt/sub2api-add} -REF=${PLUGIN_REF:-main} +REF=${PLUGIN_REF:-v1.1.0} +EXPECTED_SHA=${PLUGIN_COMMIT_SHA:-} +ALLOW_MUTABLE_REF=${PLUGIN_ALLOW_MUTABLE_REF:-false} +DEPLOY_ENV=${PLUGIN_ENV:-production} +ALLOW_UNPINNED_TAG=${PLUGIN_ALLOW_UNPINNED_TAG:-false} die() { printf '错误:%s\n' "$*" >&2; exit 1; } + +validate_path_components() { + local value=$1 label=$2 component current="" + [[ -n "$value" && "$value" = /* && "$value" != "/" ]] || die "$label 必须是非根绝对路径" + [[ "$value" != *$'\n'* && "$value" != *$'\r'* ]] || die "$label 包含非法换行" + local parts=() + IFS='/' read -r -a parts <<< "${value#/}" + for component in "${parts[@]}"; do + [[ -z "$component" ]] && continue + [[ "$component" != "." && "$component" != ".." ]] || die "$label 不能包含 . 或 .. 路径组件" + current="$current/$component" + [[ ! -L "$current" ]] || die "$label 的路径组件不能是符号链接:$current" + done +} + +validate_path_components "$SOURCE_DIR" PLUGIN_SOURCE_DIR +if [[ "$SOURCE_DIR" != */sub2api-add && "${PLUGIN_ALLOW_CUSTOM_PATHS:-false}" != "true" ]]; then + die "PLUGIN_SOURCE_DIR 必须以 sub2api-add 结尾;如确需自定义路径请显式设置 PLUGIN_ALLOW_CUSTOM_PATHS=true" +fi [[ $EUID -eq 0 ]] || die "请使用 root 或 sudo 运行" command -v git >/dev/null 2>&1 || die "缺少 git" +is_sha() { [[ "$1" =~ ^[0-9a-fA-F]{40}$ ]]; } +is_release_tag() { [[ "$1" =~ ^v[0-9]+\.[0-9]+\.[0-9]+([.-][0-9A-Za-z.-]+)?$ ]]; } +[[ "$DEPLOY_ENV" == "development" || "$DEPLOY_ENV" == "production" ]] || die "PLUGIN_ENV 必须是 development 或 production" +if [[ -n "$EXPECTED_SHA" ]] && ! is_sha "$EXPECTED_SHA"; then + die "PLUGIN_COMMIT_SHA 必须是 40 位 commit SHA" +fi +if [[ "$ALLOW_MUTABLE_REF" == "true" && "$DEPLOY_ENV" != "development" ]]; then + die "PLUGIN_ALLOW_MUTABLE_REF=true 仅允许在 PLUGIN_ENV=development 使用" +fi +if ! is_sha "$REF" && ! is_release_tag "$REF" && [[ "$ALLOW_MUTABLE_REF" != "true" ]]; then + die "默认只接受不可变 commit SHA 或版本 tag;开发环境显式设置 PLUGIN_ALLOW_MUTABLE_REF=true 才能使用分支" +fi +if [[ -z "$EXPECTED_SHA" ]] && is_release_tag "$REF"; then + if [[ "$DEPLOY_ENV" != "development" || "$ALLOW_UNPINNED_TAG" != "true" ]]; then + die "使用版本 tag 时必须设置 PLUGIN_COMMIT_SHA;仅开发环境显式设置 PLUGIN_ALLOW_UNPINNED_TAG=true 才能跳过 pin" + fi +fi +if [[ "$ALLOW_UNPINNED_TAG" == "true" && "$DEPLOY_ENV" != "development" ]]; then + die "PLUGIN_ALLOW_UNPINNED_TAG=true 仅允许在 PLUGIN_ENV=development 使用" +fi + if [[ -e "$SOURCE_DIR" && ! -d "$SOURCE_DIR/.git" ]]; then die "$SOURCE_DIR 已存在但不是本插件仓库;请设置 PLUGIN_SOURCE_DIR" fi @@ -17,10 +61,26 @@ if [[ -d "$SOURCE_DIR/.git" ]]; then if [[ -n "$(git -C "$SOURCE_DIR" status --porcelain)" ]]; then die "$SOURCE_DIR 有未提交修改,先清理后再升级" fi - git -C "$SOURCE_DIR" fetch --depth 1 origin "$REF" + git -C "$SOURCE_DIR" fetch --depth 1 --no-tags origin "$REF" git -C "$SOURCE_DIR" checkout --force FETCH_HEAD else - git clone --depth 1 --branch "$REF" "$REPO_URL" "$SOURCE_DIR" + if is_sha "$REF"; then + git clone --depth 1 --no-tags "$REPO_URL" "$SOURCE_DIR" + git -C "$SOURCE_DIR" fetch --depth 1 --no-tags origin "$REF" + git -C "$SOURCE_DIR" checkout --force FETCH_HEAD + else + git clone --depth 1 --no-tags --branch "$REF" "$REPO_URL" "$SOURCE_DIR" + fi +fi + +RESOLVED_SHA=$(git -C "$SOURCE_DIR" rev-parse HEAD) +NORMALIZED_RESOLVED_SHA=$(printf '%s' "$RESOLVED_SHA" | tr '[:upper:]' '[:lower:]') +NORMALIZED_EXPECTED_SHA=$(printf '%s' "$EXPECTED_SHA" | tr '[:upper:]' '[:lower:]') +if [[ -n "$EXPECTED_SHA" && "$NORMALIZED_RESOLVED_SHA" != "$NORMALIZED_EXPECTED_SHA" ]]; then + die "检出的 commit 与 PLUGIN_COMMIT_SHA 不一致:$RESOLVED_SHA" +fi +if ! is_sha "$REF" && ! is_release_tag "$REF" && [[ "$ALLOW_MUTABLE_REF" == "true" ]]; then + printf '%s\n' '警告:当前使用可变 Git ref,仅限开发环境。' >&2 fi exec "$SOURCE_DIR/scripts/install-local.sh" "$@" diff --git a/deploy/uninstall.sh b/deploy/uninstall.sh index 4faffa6..e4561a1 100755 --- a/deploy/uninstall.sh +++ b/deploy/uninstall.sh @@ -10,8 +10,27 @@ SELECTION=all PURGE=false YES=false +validate_managed_root() { + local value=$1 label=$2 component current="" + [[ -n "$value" && "$value" = /* ]] || die "$label 必须是绝对路径" + [[ "$value" != *$'\n'* && "$value" != *$'\r'* ]] || die "$label 包含非法换行" + [[ "$value" != "/" ]] || die "$label 不允许指向根目录" + local parts=() + IFS='/' read -r -a parts <<< "${value#/}" + for component in "${parts[@]}"; do + [[ -z "$component" ]] && continue + [[ "$component" != "." && "$component" != ".." ]] || die "$label 不能包含 . 或 .. 路径组件" + current="$current/$component" + [[ ! -L "$current" ]] || die "$label 的路径组件不能是符号链接:$current" + done + if [[ "$value" != */sub2api-add && "${PLUGIN_ALLOW_CUSTOM_PATHS:-false}" != "true" ]]; then + die "$label 必须位于受管的 sub2api-add 目录;如确需自定义路径请显式设置 PLUGIN_ALLOW_CUSTOM_PATHS=true" + fi +} + die() { printf '错误:%s\n' "$*" >&2; exit 1; } [[ $EUID -eq 0 ]] || die "请使用 root 或 sudo 运行" +command -v systemctl >/dev/null 2>&1 || die "缺少 systemd/systemctl" while (($#)); do case "$1" in @@ -29,6 +48,14 @@ case "$SELECTION" in *) die "插件必须是 all、plugin-admin 或 subscription-admin" ;; esac +validate_managed_root "$ETC_DIR" PLUGIN_ETC_DIR +validate_managed_root "$VAR_DIR" PLUGIN_VAR_DIR +validate_managed_root "$PREFIX" PLUGIN_INSTALL_PREFIX +validate_managed_root "$SOURCE_DIR" PLUGIN_SOURCE_DIR +if $PURGE && [[ "${PLUGIN_PURGE_SOURCE:-true}" == "true" && "$SOURCE_DIR" != "$PREFIX" && "${PLUGIN_ALLOW_CUSTOM_PATHS:-false}" != "true" ]]; then + die "为避免误删,--purge 默认要求 PLUGIN_SOURCE_DIR 与 PLUGIN_INSTALL_PREFIX 相同" +fi + if $PURGE && ! $YES; then [[ -t 0 ]] || die "非交互环境执行 --purge 时必须同时提供 --yes" read -r -p "将删除插件配置和数据,继续?[y/N] " answer @@ -38,21 +65,27 @@ fi for plugin in "${PLUGINS[@]}"; do unit="sub2api-$plugin.service" systemctl disable --now "$unit" 2>/dev/null || true - rm -f "/etc/systemd/system/$unit" + rm -f -- "/etc/systemd/system/$unit" # Keep the checked-out source clean so a later install can fast-forward it. # Only generated binaries are removed unless --purge is explicitly used. - rm -f "$PREFIX/$plugin/bin/$plugin" + rm -f -- "$PREFIX/$plugin/bin/$plugin" if $PURGE; then - rm -rf "$PREFIX/$plugin" - rm -f "$ETC_DIR/$plugin.env" - rm -rf "$VAR_DIR/$plugin" + plugin_root="$PREFIX/$plugin" + if [[ -d "$plugin_root" && ! -L "$plugin_root" ]]; then + rm -rf -- "${plugin_root:?}" + fi + rm -f -- "$ETC_DIR/$plugin.env" + plugin_data="$VAR_DIR/$plugin" + if [[ -d "$plugin_data" && ! -L "$plugin_data" ]]; then + rm -rf -- "${plugin_data:?}" + fi fi done systemctl daemon-reload if $PURGE && [[ -d "$ETC_DIR" ]]; then rmdir "$ETC_DIR" 2>/dev/null || true; fi if $PURGE && [[ -d "$VAR_DIR" ]]; then rmdir "$VAR_DIR" 2>/dev/null || true; fi -if $PURGE && [[ -d "$SOURCE_DIR" ]]; then rm -rf "$SOURCE_DIR"; fi +if $PURGE && [[ "${PLUGIN_PURGE_SOURCE:-true}" == "true" && "$SOURCE_DIR" == "$PREFIX" && -d "$SOURCE_DIR" && ! -L "$SOURCE_DIR" ]]; then rm -rf -- "$SOURCE_DIR"; fi if $PURGE; then userdel "$RUN_USER" 2>/dev/null || true diff --git a/docs/BUSINESS_PLUGIN_ACCEPTANCE.md b/docs/BUSINESS_PLUGIN_ACCEPTANCE.md index bcbc10e..1c45798 100644 --- a/docs/BUSINESS_PLUGIN_ACCEPTANCE.md +++ b/docs/BUSINESS_PLUGIN_ACCEPTANCE.md @@ -5,12 +5,15 @@ | AUTH-01 | 鉴权 | Core 管理员登录控制面 | `plugins/plugin-admin/main_test.go:TestAdminLoginDoesNotExposeCoreTokens`;本地浏览器登录 | passed | | AUTH-02 | 鉴权 | Core 2FA 登录 | challenge 一次性消费,成功创建会话 | passed | | AUTH-03 | 鉴权 | 普通用户登录和 API | `plugins/plugin-admin/main_test.go:TestOrdinaryCoreUserIsRejected` | passed | +| AUTH-03A | 鉴权 | Core CAPTCHA 配置与一次性 proof | `TestCaptchaConfigReturnsOnlyPublicFields`、`TestLoginForwardsCaptchaProof`;登录页按 provider 渲染挑战 | passed | | AUTH-04 | 会话 | 过期、撤销、登出和刷新 | `plugins/plugin-admin/main_test.go:TestRefreshRevalidatesAdminRole` | passed | | AUTH-05 | CSRF | 所有写请求 | `plugins/plugin-admin/main_test.go:TestMutationRequiresCSRFAndIdempotency` | passed | | SEC-01 | 秘密 | 浏览器、URL、HTML、JS、LocalStorage、下载、日志 | 登录/配置测试断言 token 和 secret 不回显;浏览器 DOM 未出现 Core token | passed | | SEC-02 | 出站 | Core URL、重定向、代理和 SSRF | `TestHealthProbeRejectsRedirectAndRequiresReadiness`;loopback URL 校验 | passed | | SEC-02A | 市场出站 | 索引/归档 HTTPS、精确主机 allowlist、DNS 私网拒绝、体积和重定向门禁 | `main_test.go:TestRemoteMarketplaceRequiresAllowlistAndExpiry`;`marketplace.go` 出站策略 | passed | | SEC-03 | 脱敏 | Core 响应和错误 | token/password/secret/cookie 不出现在响应和日志 | passed | +| DEPLOY-01 | 发布完整性 | 生产安装提交 pin | `deploy/install.sh` 对 tag 要求 `PLUGIN_COMMIT_SHA`,并校验检出 commit;脚本可从 immutable commit URL 获取 | passed | +| DEPLOY-02 | 路径安全 | 安装/卸载根目录与父路径 | 安装路径拒绝根目录、`.`/`..` 和任一级符号链接父路径 | passed | | MAN-01 | 清单 | 未知字段、尾随 JSON、路径跳转 | `plugins/plugin-admin/internal/manifest/manifest_test.go`;包上传 smoke | passed | | MAN-02 | 签名 | Ed25519、key ID、哈希 | `manifest_test.go:TestSignatureAndKeyID`;生产不受信发布者路径 | passed | | MAN-03 | 兼容 | Core baseline、tested versions、capability | `manifest_test.go:TestCompatibility`;上传卡片显示 compatible | passed | @@ -21,7 +24,7 @@ | LIFE-04 | 卸载 | 先停用再卸载 | 先提交注册表删除,成功后再清理插件资源,不删除 Core 数据 | passed | | LIFE-04A | 删除接口 | `DELETE /api/plugins/{id}` 与卸载语义一致 | 市场生命周期测试覆盖标准 DELETE | passed | | MENU-01 | 菜单 | preview/apply 自有 `custom_menu_items` | `main_test.go:TestMenuPreviewAndApplyPreserveOtherMenuItems` | passed | -| MENU-02 | 嵌入 | iframe 和新窗口 | 本地控制面三视口登录/刷新;插件提供独立登录和新窗口入口 | passed | +| MENU-02 | 嵌入 | iframe 和新窗口 | Plugin Admin 统一登录/刷新;订阅模块从统一控制面入口进入,iframe/新窗口均复用同一会话,不提供第二个登录页或 Cookie | passed | | API-01 | allowlist | 未声明路径和查询参数 | `allowedCorePath` 单元路径门禁;业务插件自身 allowlist 测试 | passed | | API-02 | Core 错误 | 401/403/409/429/5xx | 失败关闭、刷新一次、错误脱敏和请求 ID 传播 | passed | | UI-01 | 响应式 | 425px、900px、1440px | 本地 Browser 验收:三个视口 `scrollWidth == innerWidth`,插件卡片可见 | passed | @@ -40,6 +43,7 @@ go vet ./... node --check production build manifest verification +bash -n git diff --check ``` @@ -49,10 +53,10 @@ git diff --check - `plugins/plugin-admin` 和 `plugins/subscription-admin`:`go test -race ./...`、`go vet ./...`、`node --check ui/app.js` 均通过。 - `plugins/subscription-admin/package.sh` 生成的 `.s2plugin` 已通过 `unzip -t`,并通过控制面真实上传接口进入 `disabled` 状态。 -- 本地浏览器登录后,控制面首页显示“已登记插件”与订阅插件卡片;425、900、1440 视口均无横向溢出。 +- 本地浏览器登录后,控制面首页、插件市场和操作记录可访问;普通登录与 Turnstile 模拟登录在 425、900、1440 视口均通过,无横向溢出或敏感响应字段。 - 仍需部署环境追加:真实生产签名密钥、跨实例共享会话、真实 Core iframe 刷新和跨节点升级演练;这些属于部署级验证,不改变本地 V1 控制面契约。 -截图证据保存在 `.playwright-cli/plugin-admin-v1-final/`、`.playwright-cli/plugin-admin-v1-sensitive/`、`.playwright-cli/subscription-admin-v1-final/` 和 `.playwright-cli/subscription-admin-v1-sensitive/`,每组包含 425px、900px、1440px 三种视口。 +浏览器脚本通过 `PLUGIN_SCREENSHOT_DIR` 输出 425px、900px、1440px 截图;本轮使用系统 Chrome 运行普通控制面、Turnstile fixture 和订阅模块三套验收,截图保留在本机临时证据目录。 ## 本地生命周期硬化证据 diff --git a/docs/BUSINESS_PLUGIN_ARCHITECTURE.md b/docs/BUSINESS_PLUGIN_ARCHITECTURE.md index 8842b15..a49d649 100644 --- a/docs/BUSINESS_PLUGIN_ARCHITECTURE.md +++ b/docs/BUSINESS_PLUGIN_ARCHITECTURE.md @@ -7,9 +7,9 @@ flowchart TD B[管理员浏览器] --> C[Core custom_menu_items] C --> I[Core /custom/:id sandbox iframe] I --> P[反向代理 /extensions/:plugin-id/] - P --> M[Plugin Control Plane] - M --> S[独立业务插件服务] - S --> A[Typed Core API Adapter] + P --> M[Plugin Control Plane / TDesign Shell] + M --> S[订阅业务模块 BFF / 独立服务] + M --> A[Typed Core API Adapter] A --> K[Core Auth/Admin API] K --> D[Core 权威账本与审计] M --> R[Plugin Registry / Revisions / Audit] @@ -23,15 +23,16 @@ sequenceDiagram participant B as Browser participant P as Plugin BFF participant C as Core - B->>P: POST /login + B->>P: POST /login(唯一登录入口) P->>C: POST /api/v1/auth/login C-->>P: access/refresh 或 2FA challenge P->>C: POST /api/v1/auth/login/2fa (按需) P->>C: GET /api/v1/auth/me C-->>P: role=admin - P-->>B: HttpOnly plugin session + CSRF token - B->>P: GET /api/plugins + P-->>B: 唯一 HttpOnly plugin session + CSRF token + B->>P: GET /api/plugins 或 /modules/subscription/* P->>C: Bearer Core JWT + X-Request-ID + P->>S: 复用同一管理员会话调用订阅模块 P-->>B: 脱敏业务数据 ``` diff --git a/docs/BUSINESS_PLUGIN_BOUNDARIES.md b/docs/BUSINESS_PLUGIN_BOUNDARIES.md index 640645a..a3c598e 100644 --- a/docs/BUSINESS_PLUGIN_BOUNDARIES.md +++ b/docs/BUSINESS_PLUGIN_BOUNDARIES.md @@ -1,5 +1,7 @@ # Business Plugin V1 边界 +> **前端架构修订(2026-08-30)**:Plugin Admin 是唯一的插件管理控制面和登录入口。订阅属于已安装业务模块,复用控制面会话、导航和 CSRF;订阅后端可以独立进程运行,但订阅前端不得再提供独立登录页、Cookie 或管理员身份。 + ## Core 负责 - 用户身份、密码、2FA、TokenVersion、会话撤销和管理员角色; diff --git a/docs/BUSINESS_PLUGIN_FRAMEWORK_V1.md b/docs/BUSINESS_PLUGIN_FRAMEWORK_V1.md index be3ec8e..ddf7d3d 100644 --- a/docs/BUSINESS_PLUGIN_FRAMEWORK_V1.md +++ b/docs/BUSINESS_PLUGIN_FRAMEWORK_V1.md @@ -2,7 +2,9 @@ 状态:Accepted Contract / V1 参考实现已完成本地验收 -本文定义与 Sub2API Core 解耦的通用业务插件框架。业务插件是独立服务、独立端口、独立版本和独立 UI;它可以通过现有管理员自定义菜单嵌入 Core,也可以在新窗口运行。订阅管理只是一个可选业务插件,不能成为框架后台、Core 热路径或插件生命周期的固定组成部分。 +本文定义与 Sub2API Core 解耦的通用业务插件框架。业务插件的后端服务、端口和版本独立;浏览器端由统一的 Plugin Admin 控制面承载,业务插件 UI 以模块方式挂载到同一个管理员 Shell 中。订阅管理只是一个可选业务模块,不能成为框架后台、Core 热路径或插件生命周期的固定组成部分。 + +> **前端架构修订(2026-08-30)**:此前“独立 UI/独立管理员后台”的表述仅指后端服务可以独立部署,不表示业务模块要再次登录。Plugin Admin 负责唯一的管理员登录、会话、导航和 CSRF;订阅模块安装并启用后才出现在控制面导航中,继承同一会话,不提供第二个登录页或第二套 Cookie。 ## 1. 目标 @@ -14,7 +16,7 @@ V1 需要提供一个独立的插件控制面,负责: - 保存插件版本、服务地址、运行状态、菜单声明和操作审计; - 通过 Core 现有管理员鉴权复用操作者身份; - 将已启用插件的管理员菜单注入 `custom_menu_items`; -- 让每个业务插件仅通过自己的 BFF 调用 Core 明确允许的 API。 +- 让每个业务插件仅通过控制面或其受控模块 BFF 调用 Core 明确允许的 API。 V1 不改变 Core Go/Vue、数据库迁移、现有鉴权、前端路由或 `.s2plugin` transport ABI。控制面自己的注册表、安装目录、进程和配置存储属于独立服务;它不连接 Core PostgreSQL、Redis 或宿主业务表。 @@ -25,7 +27,7 @@ V1 不改变 Core Go/Vue、数据库迁移、现有鉴权、前端路由或 `.s2 | 运行方式 | Core 子进程 + gRPC | 独立服务 + HTTP/BFF | | 能力 | `openai.oauth.outbound_transport.v1` | 由清单声明的业务能力 | | 生命周期 | Core `PluginManager` | 独立 Plugin Control Plane | -| UI | 配置 iframe + UI Bridge | 业务后台/用户工具页面 | +| UI | 配置 iframe + UI Bridge | 统一控制面中的业务模块页面 | | 数据边界 | Core 负责账号转发与计费 | Core 负责权威业务数据,插件只读/投影 | | 菜单 | Core 固定插件管理页 | `custom_menu_items` 管理员入口 | @@ -60,7 +62,7 @@ Sub2API Core 现有鉴权、Admin API 和领域账本 - `plugin_operator`:查看状态、日志摘要和健康诊断,不改变包或凭据。 - `plugin_readonly`:只读查看已登记插件。 -V1 的控制面只允许 Core `role=admin` 登录。插件不创建第二套 Core 用户表;插件会话只保存 `plugin_id`、`admin_user_id`、角色、会话版本和过期时间。UI 隐藏按钮不等于授权,控制面和 Core API 均须重新校验权限。 +V1 的 Plugin Admin 控制面只允许 Core `role=admin` 登录。插件不创建第二套 Core 用户表;控制面会话保存 `admin_user_id`、角色、会话版本和过期时间,订阅等业务模块直接继承该会话。模块不得创建自己的登录页、Cookie 或独立权限入口。UI 隐藏按钮不等于授权,控制面、模块后端和 Core API 均须重新校验权限。 ## 5. 管理面契约 @@ -157,9 +159,16 @@ Core 返回 `401` 时,一次用户请求最多 refresh 一次;并发 refresh ## 9. 会话和嵌入 -插件登录调用 Core 现有 `/auth/login`、按需 `/auth/login/2fa`,再调用 `/auth/me` 校验管理员角色。Core token 只存插件服务端会话,浏览器只持有 HttpOnly、Secure、SameSite Cookie 和插件 CSRF token。 +Plugin Admin 登录调用 Core 现有 `/auth/login`、按需 `/auth/login/2fa`,再调用 `/auth/me` 校验管理员角色。Core token 只存控制面服务端会话,浏览器只持有控制面的 HttpOnly、Secure、SameSite Cookie 和 CSRF token;订阅模块请求沿用这套会话。 -Core 的自定义页面当前使用 sandbox iframe,且不会自动继承 Core `localStorage` 登录态。因此 V1 必须同时提供新窗口入口;iframe 首屏显示插件登录页是已知行为。真正无感 SSO 需要 V1.1 的一次性 code/state 或受控 `postMessage` 交接,不得把 JWT 放在 URL。 +会话和进程是两个独立的生命周期:插件作为常驻服务运行,Core access token +到期时由后端按需 refresh,不要求重启插件。默认会话空闲 30 分钟、绝对上限 +8 小时;refresh 失败或 Core 撤销管理员后清除会话并要求重新登录。V1 会话 +默认只在插件进程内存中保存,所以控制面重启后需要重新登录一次,但已启用 +插件会按 registry 恢复。跨实例或跨重启免登录必须接入插件自有加密共享会话 +存储,不能把 Core token 放入浏览器或 Core 数据库。 + +Core 的自定义页面当前使用 sandbox iframe,且不会自动继承 Core `localStorage` 登录态。因此 iframe 首屏由 Plugin Admin 显示一次登录页;进入订阅模块时不再追加登录。真正无感 Core SSO 仍需要 V1.1 的一次性 code/state 或受控 `postMessage` 交接,不得把 JWT 放在 URL。 菜单注入使用 Core 现有 `custom_menu_items`: @@ -167,7 +176,7 @@ Core 的自定义页面当前使用 sandbox iframe,且不会自动继承 Core { "id": "DOMAIN_PLUGIN_ID", "label": "DOMAIN_PLUGIN_LABEL", - "url": "https://CORE_ORIGIN/extensions/DOMAIN_PLUGIN_ID/", + "url": "https://PLUGIN_PUBLIC_ORIGIN/extensions/qiu.plugin-admin/admin/#/modules/DOMAIN_MODULE/overview", "visibility": "admin", "sort_order": 200 } @@ -200,7 +209,7 @@ Core 始终是用户身份、余额、订阅、订单、用量、权限、计费 ### Phase 2:业务插件适配 -提供 `DOMAIN_PLUGIN_ID` 级别的 SDK/模板和契约测试。订阅管理作为首个独立业务插件接入,只实现自身领域页面和 Core 只读 API,不改变控制面。 +提供 `DOMAIN_PLUGIN_ID` 级别的 SDK/模板和契约测试。订阅管理作为首个业务模块接入统一控制面,只实现自身领域页面和 Core 只读 API,不复制控制面的登录、导航和会话。 ### Phase 3:生产增强 diff --git a/docs/PLUGIN_ADMIN_UI_INFORMATION_ARCHITECTURE.md b/docs/PLUGIN_ADMIN_UI_INFORMATION_ARCHITECTURE.md new file mode 100644 index 0000000..c35178b --- /dev/null +++ b/docs/PLUGIN_ADMIN_UI_INFORMATION_ARCHITECTURE.md @@ -0,0 +1,106 @@ +# 插件控制面 UI 信息架构 + +## 目标 + +插件控制面是统一的插件运维后台,不是 Core 主站的复制品。订阅是安装后的业务模块,不是第二个后台系统。界面按任务拆分页面,避免把安装、版本、配置、菜单、订阅和审计动作堆在同一张卡片或同一个长页面中。 + +## 页面层级 + +```text +插件管理 +├── 概览 # 控制面总览,不执行高风险操作 +├── 已安装插件 # 插件摘要列表,只保留常用主操作 +│ └── 插件详情/:id +│ ├── 运行概况 # 健康、状态、端点、兼容性 +│ ├── 版本与升级 # revision、升级、回滚 +│ ├── 配置 # 服务地址、菜单地址、密钥提示 +│ ├── 菜单接入 # 预览和应用管理员菜单 +│ └── 操作历史 # 当前插件的审计记录 +├── 插件市场 # 受控目录元数据和入库入口 +└── 操作记录 # 全局操作审计和操作详情 + +已安装并启用的业务模块 +└── 订阅管理 # 复用控制面会话,不提供第二个登录页 + ├── 概览 + ├── 套餐 + ├── 用户订阅 + └── 操作记录 +``` + +页面使用 hash 路由,便于刷新、复制链接和从 Core 自定义菜单直接打开: + +```text +#/overview +#/plugins +#/plugins/{plugin_id}/overview +#/plugins/{plugin_id}/revisions +#/plugins/{plugin_id}/config +#/plugins/{plugin_id}/menu +#/plugins/{plugin_id}/operations +#/marketplace +#/operations +#/modules/subscription/overview +#/modules/subscription/plans +#/modules/subscription/subscriptions +#/modules/subscription/audit +``` + +hash 只表达页面位置,不承载凭据、Core JWT、Admin Key 或服务密钥。 + +## 一级页面职责 + +### 概览 + +只展示已登记、运行中、待启用和需要关注的数量,以及最近操作和生命周期提示。概览不直接承载上传、启停、回滚或卸载按钮,避免误操作;通过“管理插件”和“查看全部”进入专门页面。 + +### 已安装插件 + +每个插件条目只显示名称、版本、状态、Core 兼容性、活动 revision 和更新时间。条目保留一个生命周期主操作(启用或停用)和“查看详情”;升级、回滚、菜单和卸载进入“更多操作”菜单,防止按钮挤压或误触。 + +### 插件详情 + +详情页的每个二级页签只有一个任务: + +- **运行概况**:判断当前是否健康、是否已配置、是否可以启用;错误仅展示脱敏后的最近错误。 +- **版本与升级**:查看 revision、活动版本和校验时间;上传升级包、选择回滚版本。 +- **配置**:读取和保存服务/菜单地址;敏感配置仍由服务端加密,页面不回显原值。 +- **菜单接入**:查看声明的菜单元数据,先预览再应用,不把菜单操作混在生命周期按钮中。 +- **操作历史**:只看当前插件关联的操作,操作 ID 可以打开详情。 + +### 插件市场 + +市场只显示受控索引提供的名称、版本、发布者、兼容性、发布时间和归档哈希。安装动作的语义是“下载并校验后入库”,完成后插件处于待启用状态;已经登记的插件跳转到版本页,不在市场卡片上直接覆盖现有版本。 + +### 操作记录 + +提供按插件和操作类型筛选的全局审计视图。列表展示操作、插件、结果和时间;操作 ID 进入详情弹窗,详情中包含请求 ID、状态和脱敏错误。 + +### 订阅业务模块 + +订阅模块只有在 `qiu.subscription-admin` 安装、启用并通过健康检查后才出现在导航中。它沿用 Plugin Admin 的管理员会话、CSRF、主题和响应式 Shell;模块页面不显示登录表单、不创建 Cookie,也不重复调用 Core 登录。套餐、用户订阅和余额数据仍从模块 BFF 读取,Core 继续是权威来源。 + +## 导航与响应式规则 + +- 桌面端使用左侧一级导航,内容区只显示当前路由页面;导航项同时显示页面名称和一句职责提示。 +- 移动端(宽度不超过 760px)将一级导航变为抽屉,通过“菜单”按钮打开;打开导航不会改变页面宽度,也不会让整个页面依赖横向滚动。 +- 详情页签只允许页签条自身横向滚动,内容区和页面主体始终保持 `scrollWidth <= innerWidth`。 +- 桌面端统计卡片四列,中等宽度两列,手机端仍使用两列但缩小内边距;内容面板在中等宽度以下改为单列。 +- 列表卡片的次要动作进入操作菜单;移动端按钮按可用宽度换行,不使用固定宽度挤压文字。 +- 审计表格在手机端保留最小可读列宽,仅表格容器横向滚动,页面本身不横向溢出。 +- 页面、卡片和表单使用统一 4px/6px 圆角、36px 控件高度和统一边距;页面不会用额外的局部颜色覆盖 Core 主题。 + +## 数据加载与权限 + +- 页面数据按路由按需加载:概览加载插件和审计,市场加载插件和市场索引,操作记录加载插件和审计,详情加载指定插件和审计;订阅模块只在启用后加载自己的数据。 +- 所有请求继续通过插件后端会话和 CSRF;浏览器不会直接调用 Core,也不会收到 Core token 或 Admin Key。 +- 订阅模块请求只能沿用控制面会话,不允许出现第二个登录 endpoint 或模块级会话。 +- 页面上的按钮隐藏只改善交互,真正的管理员权限、生命周期状态和幂等校验仍由插件后端负责。 +- mutation 返回 operation ID 后,前端短暂读取操作详情,再刷新当前路由;操作记录页面始终保留最终审计结果。 + +## 验收标准 + +1. 登录后默认进入概览,导航可进入控制面页面和已启用的业务模块,浏览器刷新后 hash 路由不丢失。 +2. 已安装列表不再展示所有生命周期按钮;插件详情的五个二级页签分别承担单一职责。 +3. 市场入库、配置、启停、升级、回滚、菜单和卸载接口行为与现有后端契约一致。 +4. 425px、900px、1440px 视口没有页面级横向溢出;移动端导航、详情页签和操作菜单可触达。 +5. 页面 DOM、JSON 响应、URL、错误提示和操作详情不出现 Core JWT、Admin Key、密码或服务密钥。 diff --git a/docs/PLUGIN_FRAMEWORK_V1_RFC.md b/docs/PLUGIN_FRAMEWORK_V1_RFC.md index 5bfeffb..70ec595 100644 --- a/docs/PLUGIN_FRAMEWORK_V1_RFC.md +++ b/docs/PLUGIN_FRAMEWORK_V1_RFC.md @@ -2,7 +2,9 @@ 状态:V1 通用插件控制面参考实现已落库;订阅业务插件只读适配与 Core Host Adapter/写操作仍为 Draft -本文规划一种不改动 Sub2API 核心代码、数据库和现有插件 ABI 的独立业务插件框架。当前 V1 控制面参考实现位于 `plugins/plugin-admin`,它负责插件清单、签名、插件市场、下载入库、启停、升级、回滚、卸载、配置、审计和菜单注入;控制面本身不是订阅后台。每个业务插件(包括独立的 `plugins/subscription-admin`)作为可选的独立服务运行在自己的端口,通过控制面安装后再由部署层反向代理和现有“管理员可见自定义菜单”嵌入 Sub2API 页面。插件登录直接调用 Core 的现有鉴权,普通账号没有访问权限,也不复制 Core 用户表。 +本文规划一种不改动 Sub2API 核心代码、数据库和现有插件 ABI 的独立业务插件框架。当前 V1 控制面参考实现位于 `plugins/plugin-admin`,它负责插件清单、签名、插件市场、下载入库、启停、升级、回滚、卸载、配置、审计和菜单注入;订阅不是第二个后台,而是安装到控制面后的业务模块。订阅后端可以作为独立服务运行在自己的端口,但浏览器端统一由 Plugin Admin Shell 承载,所有业务模块共享一次管理员登录、会话、导航和 CSRF,不创建第二个登录页或 Cookie。插件登录直接调用 Core 的现有鉴权,普通账号没有访问权限,也不复制 Core 用户表。 + +> **前端架构修订(2026-08-30)**:文档中“独立服务”表示部署和进程边界,不表示每个业务模块都是独立产品。订阅模块只能在插件控制面会话内访问;模块入口由插件清单的 capability/menu 声明决定,未安装或未启用时不显示。 V1 已实现范围以 `plugins/plugin-admin` 控制面和本文“当前实现范围”章节为准;本文中的订阅业务插件只是首个适配样例。Core Host Adapter、短时 Plugin Access Token、无感 SSO 和余额写操作仍是后续版本设计,不代表当前 Core 已提供这些接口。 @@ -19,7 +21,7 @@ V1 已实现范围以 `plugins/plugin-admin` 控制面和本文“当前实现 - 插件只在服务端调用 Core 现有 API,浏览器不持有 `x-api-key` 或 Core JWT; - 第一阶段只搭框架、登录、权限、健康检查、嵌入和只读联调,不实现订阅购买写操作。 -现有自定义菜单可以完成“把插件页面显示在 Sub2API 管理页面内”,但现有 iframe 使用 sandbox,且 Core 前端 JWT 保存在 `localStorage`,不会自动注入跨端口 iframe。因此在完全不改 Core 的前提下,V1 的登录方式是:插件登录页把凭据转交给插件后端,插件后端调用 Core 现有登录和二次验证接口,确认 `role=admin` 后只保留短时插件会话及服务端 Core token;这复用同一套 Core 用户和角色,不复制用户表,但不是无感知的当前页面会话共享。 +现有自定义菜单可以完成“把插件控制面显示在 Sub2API 管理页面内”,但现有 iframe 使用 sandbox,且 Core 前端 JWT 保存在 `localStorage`,不会自动注入跨端口 iframe。因此在完全不改 Core 的前提下,V1 的登录方式是:Plugin Admin 登录页把凭据转交给插件后端,插件后端调用 Core 现有登录和二次验证接口,确认 `role=admin` 后只保留短时控制面会话及服务端 Core token;这复用同一套 Core 用户和角色,不复制用户表。订阅模块继承控制面会话,不得再次调用 Core 登录。 如果以后要求“已登录 Core 后打开 iframe 立即无感登录”,需要一个很小的 Core 一次性登录交接接口或前端 `postMessage` 适配;这属于 V1.1,不应通过 URL 明文传递 JWT。反向代理只改变网络路径,不改变这一认证边界。 @@ -37,12 +39,13 @@ Core `/custom/PLUGIN_ID` 反向代理 `/extensions/PLUGIN_ID/*` │ 转发到独立服务 `127.0.0.1:PLUGIN_PORT` ▼ -业务插件后台 - ├─ `/login` 接收管理员登录请求 +Plugin Admin 控制面(统一 TDesign Shell) + ├─ `/login` 唯一登录入口 ├─ 服务端调用 Core `/api/v1/auth/login`(需要时调用 `/login/2fa`) ├─ 调用 Core `/api/v1/auth/me`,确认 `role=admin` - ├─ 建立插件 HttpOnly 会话,Core access/refresh token 只在服务端保存 - └─ 通过 Bearer Core JWT 调用现有 Core Admin API + ├─ 建立唯一的插件 HttpOnly 会话,Core access/refresh token 只在服务端保存 + ├─ 挂载已启用业务模块(订阅等),模块不再登录 + └─ 通过受控 BFF/内部服务调用业务模块和 Core Admin API ▼ Sub2API Core 现有认证、Admin API 和订阅/余额账本 ``` @@ -53,7 +56,7 @@ Sub2API Core 现有认证、Admin API 和订阅/余额账本 ### 1.2 V1 的默认范围 -- 插件拥有独立后台和独立发布版本。 +- 插件后端拥有独立服务和独立发布版本;前端由统一控制面承载。 - 只允许管理员登录;普通用户访问插件后台一律拒绝。 - 首版支持管理员登录、权限校验、健康检查、嵌入和只读订阅数据展示。 - 余额购买命令暂不实现,待框架验收后再复用现有订阅逻辑设计原子入口。 @@ -78,8 +81,8 @@ Sub2API Core 现有认证、Admin API 和订阅/余额账本 | 术语 | 定义 | |---|---| | Core | Sub2API 主服务,拥有用户、余额、Group、Key、订阅和用量账本。 | -| Business Plugin | 独立部署的后台服务,提供一个业务域的管理 UI 和 BFF。 | -| Plugin UI | 由 Business Plugin 提供的页面,只调用自己的后端。 | +| Business Plugin | 独立部署的后台服务或业务模块,提供一个业务域的 UI 和 BFF。 | +| Plugin UI | 由统一控制面挂载的业务模块页面,只调用模块 BFF。 | | Plugin Backend | Business Plugin 的服务端,保存插件配置、会话和操作幂等记录。 | | Core API Adapter | V1 插件后端对 Core 现有 REST API 的服务端客户端,只允许访问明确的认证、管理员和只读业务端点。 | | Future Host Adapter | V1.1 以后、需要修改 Core 才能提供的版本化业务 API;不属于本次无 Core 改动的实现范围。 | @@ -91,27 +94,27 @@ Sub2API Core 现有认证、Admin API 和订阅/余额账本 ### 4.1 管理员登录 -V1 采用“插件会话 + Core 现有登录”的两层模型,不创建插件用户表: +V1 采用“控制面会话 + Core 现有登录”的两层模型,不创建插件用户表;所有业务模块继承控制面会话: -1. 浏览器打开插件 `/login`,只向插件后端提交 Core 管理员凭据和必要的 2FA 信息。 +1. 浏览器打开 Plugin Admin `/login`,只向控制面后端提交 Core 管理员凭据和必要的 2FA 信息。 2. 插件后端服务端调用 Core `POST /api/v1/auth/login`;需要二次验证时继续调用 `POST /api/v1/auth/login/2fa`。 3. 插件后端用返回的 Core access token 调用 `GET /api/v1/auth/me`,确认用户状态正常且 `role=admin`。 -4. 插件后端建立自己的短时 HttpOnly 会话;Core access/refresh token 只保存在插件服务端的会话存储中,不回传浏览器。 -5. 插件业务请求只携带插件会话 Cookie,插件后端再用对应管理员的 Core Bearer token 调用允许的 Core API。 +4. 控制面建立唯一的短时 HttpOnly 会话;Core access/refresh token 只保存在控制面服务端的会话存储中,不回传浏览器。 +5. 订阅等业务模块请求只携带控制面会话 Cookie,由控制面 BFF 或受控内部转发调用模块和允许的 Core API。 ```text -浏览器 -> Plugin /login(插件会话 Cookie 尚未建立) -Plugin -> Core /api/v1/auth/login -Plugin -> Core /api/v1/auth/login/2fa(按 Core 返回的要求) -Plugin -> Core /api/v1/auth/me(确认 role=admin) -Plugin <- 建立 HttpOnly 插件会话 -浏览器 -> Plugin /admin/*(只带插件会话 Cookie) -Plugin -> Core /api/v1/admin/*(只在服务端带 Bearer Core JWT) +浏览器 -> Plugin Admin /login(控制面会话 Cookie 尚未建立) +Plugin Admin -> Core /api/v1/auth/login +Plugin Admin -> Core /api/v1/auth/login/2fa(按 Core 返回的要求) +Plugin Admin -> Core /api/v1/auth/me(确认 role=admin) +Plugin Admin <- 建立唯一 HttpOnly 控制面会话 +浏览器 -> Plugin Admin /admin/* 与 /modules/*(只带同一会话 Cookie) +Plugin Admin -> 订阅模块 BFF / Core /api/v1/admin/*(只在服务端带 Bearer Core JWT) ``` -这不是独立账号,也不是把 Core 用户复制到插件;密码只用于一次 Core 登录请求,插件不落库。插件会话可使用内存存储;多实例部署时使用插件自己的 Redis/会话存储,不连接 Core 数据库。Core 继续负责密码、2FA、限流、TokenVersion、撤销和管理员角色校验。 +这不是独立账号,也不是把 Core 用户复制到插件;密码只用于一次 Core 登录请求,控制面不落库。插件会话可使用内存存储;多实例部署时使用插件自己的 Redis/会话存储,不连接 Core 数据库。订阅等业务模块直接复用控制面会话,不创建模块级会话。Core 继续负责密码、2FA、限流、TokenVersion、撤销和管理员角色校验。 -当前 Core 没有给自定义 iframe 提供 token handoff,因此“Core 已登录后打开 iframe 自动登录”不属于 V1。V1 允许在 iframe 内显示插件登录页;由于 sandbox/第三方 Cookie 策略可能让嵌入会话在刷新后失效,插件必须提供“新窗口打开插件”入口作为稳定登录路径。以后如需真正无感 SSO,另行设计一次性 code + state 或 `postMessage` 交接机制,JWT 不应放在 URL。 +当前 Core 没有给自定义 iframe 提供 token handoff,因此“Core 已登录后打开 iframe 自动登录”不属于 V1。V1 允许在 iframe 内显示一次 Plugin Admin 登录页;进入订阅模块时不再追加登录。由于 sandbox/第三方 Cookie 策略可能让嵌入会话在刷新后失效,控制面必须提供“新窗口打开”入口。以后如需真正无感 SSO,另行设计一次性 code + state 或 `postMessage` 交接机制,JWT 不应放在 URL。 ### 4.2 权限判定 @@ -131,6 +134,14 @@ Plugin -> Core /api/v1/admin/*(只在服务端带 Bearer Core JWT) - 独立 origin 嵌入时按浏览器策略使用 `SameSite=None; Secure`,同源反代优先使用 `Lax`;必须在目标浏览器验证刷新、退出和第三方 Cookie 行为。 - 插件 UI 不把 Core JWT、Admin Key 或服务凭据写入 LocalStorage、URL、HTML、日志或错误提示。 +会话有效期与插件进程生命周期相互独立。插件作为常驻 HTTP 服务运行,Core +access token 过期时由后端按需调用 `/auth/refresh` 并更新服务端会话,不需要 +重启插件。只有 refresh 失败、管理员被 Core 撤销、插件会话达到空闲/绝对 +TTL,或管理员主动退出时,浏览器才需要重新登录。V1 默认使用内存会话,因 +此控制面进程重启会使现有插件会话失效一次;这不影响 registry 中已登记插件 +的恢复。需要跨重启免登录时,使用插件自有的加密共享会话存储,不改变 Core +身份权威,也不把 refresh token 下发给浏览器。 + ## 5. Admin Key 与服务凭据安全 ### 5.1 绝对禁止的做法 @@ -145,7 +156,7 @@ Plugin -> Core /api/v1/admin/*(只在服务端带 Bearer Core JWT) | 环境 | 凭据 | 用途 | 约束 | |---|---|---|---| -| 开发 | Core 管理员的临时登录凭据 | 调用 Core `/auth/login` 联调 | 只由开发者输入到插件登录页,不写入代码、配置和日志。 | +| 开发 | Core 管理员的临时登录凭据 | 调用 Core `/auth/login` 联调 | 只由开发者输入到 Plugin Admin 登录页,不写入代码、配置和日志。 | | 测试 | Core 返回的 access/refresh token | 建立插件服务端会话 | 只存插件服务端会话存储,短 TTL,测试 Core 与测试管理员专用。 | | 生产 | Core 返回的 access/refresh token | 代表实际登录的 Core 管理员调用现有 Admin API | 服务端加密保存或内存保存,按 Core TokenVersion/撤销结果失效;不回传浏览器。 | @@ -155,8 +166,8 @@ V1.1 如需在不保存 Core refresh token 的情况下运行,再设计 Core ### 5.3 凭据生命周期 -1. 插件后端接收管理员登录请求,但不保存密码。 -2. 插件后端调用 Core 登录/2FA,保存返回 token 到服务端会话,并绑定 `admin_user_id`。 +1. Plugin Admin 后端接收管理员登录请求,但不保存密码。 +2. Plugin Admin 后端调用 Core 登录/2FA,保存返回 token 到唯一的服务端会话,并绑定 `admin_user_id`。 3. 每次 Core 请求都使用 TLS 和 Core Bearer token;Core 继续校验签名、TokenVersion、会话绑定和角色。 4. access token 过期时只使用对应 refresh token 调用 Core `/auth/refresh`;刷新失败就销毁插件会话并要求重新登录。 5. 登出、Core 管理员撤销会话、停用插件或发现泄露时,立即删除插件会话;Admin Key 过渡模式由运维轮换并撤销。 @@ -302,11 +313,11 @@ Core `/custom/example.subscription` └── sandbox iframe -> 反向代理 -> `127.0.0.1:PLUGIN_PORT` ``` -`visibility=admin` 只负责隐藏普通账号的菜单入口,插件后端仍必须独立鉴权。现有 iframe 的 sandbox、跨端口 origin 和 Core JWT `localStorage` 使其不会自动共享 Core 登录态;因此 iframe 首屏显示插件登录页是 V1 的预期行为。插件也应提供“新窗口打开”,便于登录后保持自身会话。 +`visibility=admin` 只负责隐藏普通账号的菜单入口,Plugin Admin 后端仍必须鉴权。现有 iframe 的 sandbox、跨端口 origin 和 Core JWT `localStorage` 使其不会自动共享 Core 登录态;因此 iframe 首屏显示一次控制面登录页是 V1 的预期行为。订阅模块显示在控制面内部,不再出现独立登录页。控制面也应提供“新窗口打开”,便于登录后保持自身会话。 生产部署建议把插件外部地址挂在与 Core 相同的 HTTPS 站点下,由 Nginx/Caddy 按路径反代到独立端口;这只减少浏览器跨域问题,不改变插件必须登录和服务端调用 Core 的事实。若使用独立 origin,必须在 Core CORS 中精确加入该 origin,禁止 `*`,并仅允许必要的 `Authorization` 请求头。 -插件页面只调用自己的 `/plugin-api/*`,由插件后端调用 Core 现有认证和管理员 API。V1 不允许插件动态注入主应用 Vue 路由、修改核心菜单组件或覆盖全局 CSS;主应用只提供一个受权限控制的“业务插件”入口,插件内部菜单由插件自己管理。 +插件模块页面只调用控制面提供的 `/plugin-api/*` 或受控模块 BFF,由控制面调用 Core 现有认证和管理员 API。V1 不允许插件动态注入 Core Vue 路由、修改 Core 菜单组件或覆盖全局 CSS;Plugin Admin 只挂载已安装、已启用且管理员可见的业务模块。 ## 10. 威胁模型与处置 @@ -345,7 +356,7 @@ Core `/custom/example.subscription` ### 11.3 浏览器和部署测试 -- 管理员可登录,普通用户无法登录或访问任何后台 API; +- 管理员在 Plugin Admin 完成一次登录后可进入订阅模块,普通用户无法登录或访问任何后台 API; - 不同屏幕下页面无横向泄露和敏感字段; - 浏览器 DevTools 的请求、下载和页面源中没有 Admin Key; - HTTPS、反向代理、容器低权限、secret 文件权限和日志脱敏; @@ -355,7 +366,7 @@ Core `/custom/example.subscription` ### Phase 0:冻结部署契约 -- 选择外部服务部署方式(推荐同源反向代理 + 独立服务); +- 选择外部服务部署方式(推荐同源反向代理 + 独立服务),并冻结统一控制面模块挂载方式; - 冻结插件端口、反向代理路径、`custom_menu_items` 字段和健康检查; - 冻结允许调用的现有 Core API 路径、字段、分页和错误处理; - 明确插件登录通过 Core `/auth/login`/`/login/2fa`,不创建用户表; @@ -369,10 +380,10 @@ Core `/custom/example.subscription` - 插件健康检查、启停、操作审计和同源入口; - Core API allowlist、contract test 与本地示例插件。 -### Phase 2:订阅插件试验 +### Phase 2:订阅业务模块试验 -- 只读套餐、用户余额和订阅列表; -- 管理员操作页面、查询缓存和审计; +- 在统一控制面内挂载只读套餐、用户余额和订阅列表模块; +- 复用控制面管理员会话、查询缓存和审计; - 使用测试 Core 和测试账户,不连接生产余额; - 余额购买、续费和撤销暂不实现,等待 Core 原子接口冻结。 diff --git a/docs/README.md b/docs/README.md index d6bcb19..3a71121 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,12 +8,14 @@ - [Manifest V1](BUSINESS_PLUGIN_MANIFEST_V1.md) - [Boundaries](BUSINESS_PLUGIN_BOUNDARIES.md) - [Architecture](BUSINESS_PLUGIN_ARCHITECTURE.md) +- [Plugin Admin UI Information Architecture](PLUGIN_ADMIN_UI_INFORMATION_ARCHITECTURE.md) +- [TDesign Frontend Migration Assessment](TDESIGN_FRONTEND_MIGRATION_ASSESSMENT.md) - [Acceptance](BUSINESS_PLUGIN_ACCEPTANCE.md) - [Development](BUSINESS_PLUGIN_DEVELOPMENT.md) ## 领域插件 -- `subscription-admin`:独立管理员只读订阅插件。它是框架的第一个领域样例,不是通用插件后台,也不负责安装或管理其他插件。实现与运行方式见 [`../plugins/subscription-admin/README.md`](../plugins/subscription-admin/README.md)。 +- `subscription-admin`:订阅业务模块后端。它是框架的第一个领域样例,不是通用插件后台,也不负责安装或管理其他插件;前端由 Plugin Admin 统一挂载并共享一次登录。实现与运行方式见 [`../plugins/subscription-admin/README.md`](../plugins/subscription-admin/README.md)。 ## 现有 `.s2plugin` diff --git a/docs/SUBSCRIPTION_PLUGIN_V1_RFC.md b/docs/SUBSCRIPTION_PLUGIN_V1_RFC.md index c8511e0..d72fe52 100644 --- a/docs/SUBSCRIPTION_PLUGIN_V1_RFC.md +++ b/docs/SUBSCRIPTION_PLUGIN_V1_RFC.md @@ -2,14 +2,16 @@ 状态:V1 只读试验实现已落库;余额购买、续费、撤销仍为 V1.1 Draft -本文定义基于 [`PLUGIN_FRAMEWORK_V1_RFC.md`](./PLUGIN_FRAMEWORK_V1_RFC.md) 的第一个业务插件试验,对应实现为 `plugins/subscription-admin`。插件是独立端口的管理员后台,复用 Sub2API Core 的管理员鉴权,不创建 Core 用户表,也不直接连接 Core 数据库。当前实现已完成框架、管理员会话、只读套餐/余额/订阅/审计联调;余额购买、续费和撤销写操作后置到 Core 原子接口冻结之后。 +本文定义基于 [`PLUGIN_FRAMEWORK_V1_RFC.md`](./PLUGIN_FRAMEWORK_V1_RFC.md) 的第一个业务模块试验,对应后端实现为 `plugins/subscription-admin`。订阅后端可以独立端口运行,但它不是第二个管理员后台:浏览器入口由 `plugins/plugin-admin` 统一控制面承载,复用同一套管理员会话、导航、CSRF 和权限,不创建 Core 用户表,也不直接连接 Core 数据库。当前实现已完成框架、管理员会话、只读套餐/余额/订阅/审计联调;余额购买、续费和撤销写操作后置到 Core 原子接口冻结之后。 + +> **前端架构修订(2026-08-30)**:本 RFC 中原有“订阅插件登录页/独立后台”描述由本条覆盖。订阅模块不得提供第二个 `/login`、独立 Cookie、独立管理员身份或重复的 Core 登录;安装并启用后才在 Plugin Admin 导航中出现。 ## 1. 目标和范围 ### 1.1 V1 目标 -- 提供独立的管理员订阅后台,普通账号拒绝登录和访问; -- 插件登录调用 Core 现有 `/api/v1/auth/login`、`/api/v1/auth/login/2fa` 和 `/api/v1/auth/me`,不维护第二套用户密码; +- 提供挂载在统一 Plugin Admin 控制面内的管理员订阅模块,普通账号拒绝登录和访问; +- 由 Plugin Admin 统一调用 Core 现有 `/api/v1/auth/login`、`/api/v1/auth/login/2fa` 和 `/api/v1/auth/me`;订阅模块不维护第二套用户密码或登录态; - 展示 Core 中的套餐、用户余额和订阅实例状态; - 通过现有 `custom_menu_items` 的 `visibility=admin` 入口嵌入 Core 页面,也支持新窗口打开; - 插件可独立升级、停用和回滚,不影响 Core 网关、余额账本和已有订阅; @@ -42,14 +44,15 @@ Core 管理后台 └─ custom_menu_items (visibility=admin) └─ sandbox iframe / 新窗口 - └─ 反向代理 -> Plugin `127.0.0.1:PLUGIN_PORT` - ├─ Plugin /login -> Core /api/v1/auth/login (+ /login/2fa) - ├─ Plugin /auth/me -> 只允许 role=admin - ├─ HttpOnly 插件会话(不建 Core 用户表) + └─ 反向代理 -> Plugin Admin `127.0.0.1:PLUGIN_PORT` + ├─ Plugin Admin /login -> Core /api/v1/auth/login (+ /login/2fa) + ├─ Plugin Admin /auth/me -> 只允许 role=admin + ├─ 唯一 HttpOnly 控制面会话(不建 Core 用户表) + ├─ 挂载订阅模块 /modules/subscription/*(不重复登录) └─ 服务端 Bearer Core JWT -> 现有 Core Admin API(V1 只读) ``` -插件 UI 只访问自己的 BFF;Core JWT、refresh token 和 Admin API Key 只在插件服务端会话或 secret 中出现。iframe 不会自动继承 Core `localStorage` 登录态,因此 V1 首屏显示插件登录页属于预期行为。sandbox 或第三方 Cookie 策略可能导致嵌入会话刷新后失效,插件必须提供新窗口登录路径;登录密码只在一次转发请求中经过插件后端,不落库、不写日志。 +订阅模块 UI 只访问控制面的模块 BFF;Core JWT、refresh token 和 Admin API Key 只在控制面服务端会话或 secret 中出现。iframe 不会自动继承 Core `localStorage` 登录态,因此 V1 首屏显示一次 Plugin Admin 登录页属于预期行为;进入订阅模块时不再登录。sandbox 或第三方 Cookie 策略可能导致嵌入会话刷新后失效,控制面必须提供新窗口入口;登录密码只在一次转发请求中经过控制面后端,不落库、不写日志。 ## 4. 权威边界 @@ -65,7 +68,7 @@ Core 管理后台 ### 4.2 插件可以负责 -- 管理员登录代理、插件会话和插件内角色; +- 控制面负责管理员登录代理、统一插件会话和插件内角色;订阅模块只消费经过授权的模块会话; - 套餐、用户和订阅的分页筛选与展示; - 只读缓存、操作结果页和管理员审计视图; - 未来写操作的确认表单,但提交必须调用 Core 原子命令; @@ -210,7 +213,7 @@ accepted -> processing -> completed ### 11.3 浏览器和部署 -- 管理员可在 iframe 和新窗口完成登录;普通用户菜单不可见且 API 拒绝; +- 管理员在 Plugin Admin 的 iframe 或新窗口完成一次登录即可进入订阅模块;普通用户菜单不可见且 API 拒绝; - 425px、900px、1440px 下无横向溢出、遮挡或敏感字段泄露; - DevTools 请求、下载、页面源和日志中没有 secret; - 反向代理、HTTPS、低权限运行、停用、升级和回滚流程可恢复。 @@ -247,7 +250,7 @@ accepted -> processing -> completed - [ ] 插件只允许 Core `role=admin` 登录,且不创建用户表。 - [ ] 独立端口、反向代理路径和 `visibility=admin` 菜单入口已确定。 -- [ ] iframe 登录页和新窗口登录页均可用,已知晓 V1 不提供无感 SSO。 +- [ ] Plugin Admin 统一登录入口在 iframe 和新窗口场景均可用;订阅模块不提供独立登录,V1 不提供无感 SSO。 - [ ] 只读 Core API allowlist、分页、字段脱敏和缓存策略已冻结。 - [ ] 同档位多实例、单独续费、用户不可取消和管理员撤销规则已确认。 - [ ] 余额购买写操作明确等待 Core 原子接口,不使用现有多个接口拼接。 diff --git a/docs/TDESIGN_FRONTEND_MIGRATION_ASSESSMENT.md b/docs/TDESIGN_FRONTEND_MIGRATION_ASSESSMENT.md new file mode 100644 index 0000000..00fee2d --- /dev/null +++ b/docs/TDESIGN_FRONTEND_MIGRATION_ASSESSMENT.md @@ -0,0 +1,212 @@ +# TDesign 插件前端重构评估 + +## 1. 范围与结论 + +本次只重构独立插件仓库的前端,不修改官方 Sub2API Core 的 Go、Vue、迁移、鉴权或构建配置。 + +独立插件仓库当前工作目录:`/tmp/sub2api-add-repo.pzrg17` + +官方 Core 当前工作目录:`/Users/qiu/Desktop/Sub2API` + +建议把 TDesign starter 作为统一插件控制面的 UI 基座,而不是把 starter 合并到 Core 的 `frontend/`。插件控制面只登录一次;订阅是安装后挂载到控制面里的业务模块,不是第二个后台系统。 + +## 2. Starter 基线 + +已拉取:`/Users/qiu/Desktop/tdesign-vue-next-starter-v1` + +```text +仓库: https://github.com/Tencent/tdesign-vue-next-starter +分支: develop +提交: d6f8fafad9c1596cac8dfac8d52a88d0ca692acc +版本: package.json 0.14.0 +``` + +已确认的技术栈: + +- Vue 3.5、TypeScript、Vite 8、Pinia 3、Vue Router 5 +- `tdesign-vue-next` `^1.20.2` +- `tdesign-icons-vue-next` `^0.4.4` +- ECharts `^6.1.0` +- Node.js `>=22.12.0` + +Starter 的基线构建已通过:`npm ci --ignore-scripts`、`npm run build`。 + +ECharts 已在 starter 的 `src/hooks/index.ts` 中通过 `echarts/core` 初始化。starter 没有 `line-icons` 或 `lineicon` 依赖;TDesign Icons 本身是线性图标风格,后续统一使用 `tdesign-icons-vue-next`,避免混用多个图标系统。 + +## 3. 当前插件页面清单 + +### 3.1 Plugin Admin + +入口:`plugins/plugin-admin/ui/index.html`、`plugins/plugin-admin/ui/app.js` + +这是通用插件控制面,不是订阅业务页面。现有职责应拆成以下路由: + +```text +#/overview +#/plugins +#/plugins/:plugin_id/overview +#/plugins/:plugin_id/revisions +#/plugins/:plugin_id/config +#/plugins/:plugin_id/menu +#/plugins/:plugin_id/operations +#/marketplace +#/operations +``` + +页面职责: + +| 页面 | 主要内容 | TDesign 组件方向 | +| --- | --- | --- | +| 登录 | Core 管理员账号登录、2FA、会话过期 | `TForm`、`TInput`、`TButton`、`TAlert` | +| 概览 | 已登记、运行中、待启用、需关注、最近操作 | `TCard`、`TStatistic`、`TTag`、`TTimeline` | +| 已安装插件 | 摘要列表、生命周期主操作、查看详情 | `TTable` 或响应式 `TCard`、`TDropdown` | +| 运行概况 | 健康、端点、兼容性、活动 revision | `TDescriptions`、`TProgress`、`TTag` | +| 版本与升级 | revision、校验、升级包、回滚 | `TTable`、`TUpload`、`TDialog` | +| 配置 | 服务地址、菜单地址、敏感配置提示 | `TForm`、`TInput`、`TAlert` | +| 菜单接入 | 菜单声明、预览、应用 | `TDescriptions`、`TDialog`、`TButton` | +| 操作历史 | 当前插件或全局审计记录、详情 | `TTable`、`TDrawer`、`TTag` | +| 插件市场 | 受控索引、版本、兼容性、哈希、入库 | `TCard`、`TTag`、`TButton` | + +现有接口保持不变: + +```text +GET /api/plugins +POST /api/plugins/upload +POST /api/plugins/:id/enable +POST /api/plugins/:id/disable +POST /api/plugins/:id/test +POST /api/plugins/:id/ui-session +DELETE /api/plugins/:id +GET/PUT /api/plugins/:id/config +GET /api/marketplace +GET /api/audit +``` + +### 3.2 订阅业务模块 + +入口:`plugins/subscription-admin/ui/index.html`、`plugins/subscription-admin/ui/app.js` + +订阅管理是可选业务模块,由 Plugin Admin 安装、启用和卸载。它复用控制面的登录态、导航、CSRF 和管理员权限,不再出现第二个登录页。模块后端可以继续作为独立进程运行,但浏览器只访问控制面提供的同源模块路由。 + +```text +#/modules/subscription/overview +#/modules/subscription/plans +#/modules/subscription/subscriptions +#/modules/subscription/audit +``` + +页面职责: + +| 页面 | 主要内容 | TDesign 组件方向 | +| --- | --- | --- | +| 概览 | Core 连接状态、套餐数量、订阅数量、余额查询 | `TStatistic`、`TCard`、`TAlert` | +| 套餐 | Core 返回的套餐目录和覆盖分组 | `TTable`、`TTag`、`TEmpty` | +| 用户订阅 | 用户、状态、分组、服务端分页和筛选 | `TForm`、`TSelect`、`TTable`、`TPagination` | +| 操作记录 | 插件会话和只读查询审计 | `TTable`、`TDrawer` | +| 模块设置 | 运行模式、allowlist、凭据状态 | 插件详情的“配置/运行概况”页,不重复做模块登录 | + +订阅模块现有 Core 代理接口、分页参数、状态枚举和只读边界不变。余额购买、续费、撤销等后续能力仍应通过模块后端 API 增量加入,不能在此次 UI 换肤时偷偷改变业务语义。 + +## 4. 推荐前端目录 + +不要复用官方 Core 的 `frontend/` 目录。建议在独立插件仓库新增一个统一 TDesign 控制面,并把订阅前端作为可挂载模块构建: + +```text +plugins/ +├── plugin-admin/ +│ ├── ui/ # 统一 TDesign 应用、登录、导航和模块路由 +│ └── ui-modules/ # 订阅等业务模块的 Vue/TS 源码 +└── subscription-admin/ + ├── service/ # 可继续独立运行的业务后端 + └── ui-module/ # 被 plugin-admin 挂载的订阅模块,不包含登录页 +``` + +订阅模块可以独立打包和回滚,但它的浏览器入口由 Plugin Admin 统一托管。Go 的 `embed`、静态文件路径和部署脚本必须在插件仓库内同步,不与 Core 构建耦合。 + +共享但不跨 Core 的内容: + +- TDesign 主题 token、字体、间距、移动端断点 +- 请求封装、插件会话/CSRF、错误提示 +- ECharts 按需注册和 resize composable +- TDesign Icons 的图标命名约定 + +## 5. 不可改变的系统边界 + +```text +浏览器 + ↓ 一次登录:Plugin Admin Session Cookie + CSRF +统一 Plugin Admin TDesign Shell + ├─ 插件管理页面 + └─ 订阅业务模块路由 + ↓ 控制面同源 BFF / 内部服务调用 +独立插件 Go 服务(订阅模块) + ↓ 服务端 allowlist + Bearer Core token +官方 Sub2API Core REST API +``` + +- 浏览器不能拿到 Core access token、refresh token、Admin Key 或服务密钥。 +- 所有模块前端只能使用统一控制面的会话和模块 API,不能直连 Core API、PostgreSQL 或 Redis。 +- 订阅模块不得再实现 `/login`、独立 Cookie 或第二套管理员会话。 +- `custom_menu_items` 和 Core `/custom/:id` iframe 注入方式保持不变。 +- Plugin Admin 的配置 iframe `postMessage` bridge、`ui-session`、step-up 和来源校验保持不变。 +- Core 的源码仓库、版本文件、数据库迁移和前端页面不在本次改动范围内。 + +## 6. 分阶段实施 + +### 阶段 A:基座复制与边界固定 + +从 starter 复制应用骨架,替换 demo 路由、mock 数据、示例登录和品牌资源;保留 TDesign Layout、主题切换、Pinia、Vue Router、ECharts 基础能力。先让统一控制面独立构建,并定义模块注册契约。 + +### 阶段 B:Plugin Admin + +先完成登录和应用壳,再按“概览 → 已安装 → 详情页签 → 市场 → 审计”迁移。所有 mutation 仍由现有 Go endpoint 执行,前端只负责表单、状态和操作确认。 + +### 阶段 C:订阅业务模块 + +订阅 UI 作为控制面的一个模块挂载,复用同一套会话、导航、视觉 token 和错误处理。先迁移概览、套餐、订阅列表和操作记录,服务端分页/筛选参数保持原样。订阅后端是否独立进程不影响前端只有一次登录。 + +### 阶段 D:图表与响应式 + +只在概览和需要趋势的页面引入 ECharts;图表容器使用固定最小高度、`resize` observer 和按需导入,避免页面被超长 canvas 撑开。列表在移动端只允许表格容器横向滚动,页面主体不得横向溢出。 + +### 阶段 E:接入验收 + +验证统一控制面一次登录后进入插件管理和订阅模块、Core 菜单 iframe、会话过期、CSRF、管理员权限、插件启停、配置 bridge、市场入库和审计链路。确认官方 Core 工作区没有任何变更。 + +## 7. 主要风险与处理 + +1. **starter 自带 mock/示例权限**:全部删除,改为 Plugin Admin 会话和管理员权限;不把 starter 的演示用户带入生产。 +2. **旧 UI 是原生 HTML/JS**:不要强行在同一页面混用原生模板和 TDesign;按应用整体迁移,减少样式优先级冲突。 +3. **配置 iframe bridge**:只能替换外层视觉,消息名称、token、来源校验、超时和 step-up 语义不变。 +4. **表格移动端**:使用固定列/可滚动列的明确容器,禁止给 `body` 或整个页面设置横向滚动。 +5. **图标包选择**:统一 `tdesign-icons-vue-next`;它提供线性图标,不再额外引入未知的 `line-icons` 包。 +6. **模块登录分裂**:订阅模块不得复制登录页、Cookie 或权限判断;模块调用统一控制面 BFF,由控制面把管理员身份传给订阅服务。 +7. **Core 更新兼容性**:插件只依赖已声明的 HTTP allowlist 和响应 DTO,Core 更新时只做 API 契约兼容检查。 + +## 8. 第一版验收标准 + +- 官方 Core `/Users/qiu/Desktop/Sub2API` 保持干净,版本和源码不被修改。 +- 统一 Plugin Admin 前端能独立 `npm run build`,不依赖 Core 的 Vite 配置;订阅模块以模块产物或受控动态入口挂载。 +- 管理员只登录一次即可访问插件控制面和已启用订阅模块;直接刷新模块路由仍保持同一插件会话,不把凭据写入 URL。 +- 425px、768px、1440px 下无页面级横向溢出;表格需要横向查看时只滚动表格容器。 +- 所有管理员 mutation 仍经过插件后端的会话、CSRF、step-up 和幂等校验。 +- DOM、网络响应、日志和 URL 不出现 Core token、Admin Key、密码或服务密钥。 +- ECharts 图表只展示有数据的系列,容器尺寸稳定,窗口变化后可重绘。 + +## 9. 当前状态 + +已完成: + +- 拉取官方 TDesign Vue Next starter。 +- 固定 starter 基线和依赖版本。 +- 完成 starter 基线构建检查。 +- 完成独立插件页面、API、组件和迁移边界评估。 +- 根据反馈修正页面边界:订阅从“独立后台”改为统一插件控制面内的业务模块,不再单独登录。 + +已完成第一版落地: + +- `plugins/plugin-admin/ui-vue` 基于 TDesign Vue Next starter 建立独立 Vue 3/Vite 应用。 +- Plugin Admin 登录、统一 Shell、概览、插件列表/详情、市场和审计页面已迁移,图标统一使用 `tdesign-icons-vue-next`,概览趋势图使用 ECharts。 +- 订阅作为 Shell 内的 `/modules/subscription/*` 业务模块挂载,不再渲染第二个登录页;控制面新增同源、allowlist 约束的订阅只读 BFF。 +- Go 静态资源支持挂载路径、SPA 回退和路径穿越拒绝;`build-ui.sh` 负责可重复构建并复制嵌入产物。 +- 已完成 TypeScript/Vite、Go 单元、API 契约和 425/900/1440 多视口浏览器验收;下一轮可继续补充真实业务写操作,但不改变 Core 边界。 diff --git a/plugins/plugin-admin/.env.example b/plugins/plugin-admin/.env.example index f1456b3..066c3e5 100644 --- a/plugins/plugin-admin/.env.example +++ b/plugins/plugin-admin/.env.example @@ -2,12 +2,17 @@ CORE_BASE_URL=http://127.0.0.1:8080 PLUGIN_ENV=production PLUGIN_HOST=127.0.0.1 PLUGIN_PORT=8090 -PLUGIN_REGISTRY_DIR=/var/lib/sub2api/plugin-admin +PLUGIN_REGISTRY_DIR=/var/lib/sub2api-add/plugin-admin PLUGIN_PUBLIC_BASE_PATH=/extensions/qiu.plugin-admin +# Externally reachable Plugin Admin base URL (without /admin). Required when +# applying the subscription module menu so Core always opens the shared Shell. +PLUGIN_PUBLIC_URL=https://CORE_ORIGIN/extensions/qiu.plugin-admin PLUGIN_COOKIE_PATH=/extensions/qiu.plugin-admin/ PLUGIN_COOKIE_SECURE=false PLUGIN_COOKIE_SAMESITE=lax PLUGIN_FRAME_ANCESTORS='self' +# Accept X-Forwarded-For only when the immediate proxy is loopback/trusted. +PLUGIN_TRUST_PROXY=false PLUGIN_ALLOW_UNSIGNED=false PLUGIN_CONFIG_KEY=generate-and-replace-with-a-random-32-byte-secret # JSON object: {"publisher-key-id":"BASE64_ED25519_PUBLIC_KEY"} @@ -16,3 +21,5 @@ PLUGIN_TRUSTED_PUBLISHERS={} # and list its exact host (including port when non-standard) below. PLUGIN_MARKETPLACE_INDEX=/var/lib/sub2api-add/plugin-admin/marketplace/index.json PLUGIN_MARKETPLACE_ALLOWED_HOSTS= +# Required for a remote production catalog; pin the exact catalog bytes. +PLUGIN_MARKETPLACE_INDEX_SHA256= diff --git a/plugins/plugin-admin/Makefile b/plugins/plugin-admin/Makefile index ac9c571..34914ed 100644 --- a/plugins/plugin-admin/Makefile +++ b/plugins/plugin-admin/Makefile @@ -1,4 +1,4 @@ -.PHONY: test build check browser-check +.PHONY: test build ui-build check browser-check test: go test ./... -count=1 @@ -7,7 +7,10 @@ build: mkdir -p bin CGO_ENABLED=0 go build -trimpath -ldflags='-s -w' -o bin/plugin-admin . -check: test +ui-build: + ./build-ui.sh + +check: test ui-build node --check ui/app.js git diff --check diff --git a/plugins/plugin-admin/README.md b/plugins/plugin-admin/README.md index a6717df..920059e 100644 --- a/plugins/plugin-admin/README.md +++ b/plugins/plugin-admin/README.md @@ -31,17 +31,69 @@ key). `PLUGIN_CONFIG_KEY` is required in every environment; use a randomly generated secret in production and keep it stable across restarts so encrypted plugin configuration remains decryptable. +When the optional subscription module is enabled, set `PLUGIN_PUBLIC_URL` to +the externally reachable Plugin Admin base URL (without `/admin`), for example +`https://CORE_ORIGIN/extensions/qiu.plugin-admin`. Menu apply then always emits +`/admin/#/modules/subscription/overview`; a subscription service URL is never +used as a browser entrypoint. + Open `/admin/` directly or expose the service through the reverse proxy in `deploy/`. The first login is the existing Core administrator login; no plugin user table is created. The control plane stores only a short-lived server-side session and encrypted plugin configuration. +The administrator UI is organized as separate hash-routed pages: overview, +installed plugins, marketplace, and operations. Each plugin has its own detail +route with secondary tabs for health, revisions, configuration, menu +integration, and history. See +[`../../docs/PLUGIN_ADMIN_UI_INFORMATION_ARCHITECTURE.md`](../../docs/PLUGIN_ADMIN_UI_INFORMATION_ARCHITECTURE.md) +for the page responsibilities and responsive layout contract. + +### TDesign UI build + +The browser shell is a standalone Vue 3 application based on the Tencent +TDesign Vue Next starter. It is built outside the Core repository and then +embedded by this Go service: + +```sh +./build-ui.sh +``` + +The command runs `npm ci`, type-checks the application, bundles TDesign Icons +and ECharts locally (the service CSP does not allow a CDN), and copies the +three runtime files into `ui/`. The generated shell keeps the existing +`/login`, `/api/me`, CSRF and lifecycle contracts; no Core source or frontend +build configuration is involved. + +### 会话与令牌生命周期 + +插件进程是常驻服务,不会因为一次登录、一次请求或一次令牌刷新而重启。 +Core 的 access token 过期时,插件后端在当前请求链路中使用对应的 refresh +token 刷新一次,并继续完成请求;刷新后的 token 仍只保存在插件服务端。 +浏览器始终只持有插件的 HttpOnly 会话 Cookie 和 CSRF token。 + +默认会话策略如下: + +| 情况 | 行为 | +| --- | --- | +| 持续使用 | 每次请求滑动续期,通常无需重新登录 | +| 空闲超过 30 分钟 | 插件会话失效,下一次访问回到登录页 | +| 会话达到 8 小时 | 绝对过期,需要重新登录 | +| Core access token 过期 | 后端透明 refresh,不重启插件 | +| refresh token 被撤销/失效 | 清除插件会话并要求重新登录 | +| 插件进程重启 | V1 内存会话清空,需要重新登录一次;已登记的插件由控制面按 registry 恢复 | + +因此日常使用不需要“用完就重启”。生产多实例若需要跨实例或跨重启保留 +会话,应接入插件自己的加密 Redis/会话存储,并使用稳定的密钥;不要把 +Core token 写入浏览器、Core 数据库或 URL。 + ## Control-plane endpoints ```text GET /healthz GET /readyz POST /login POST /login/2fa POST /logout +GET /api/captcha-config GET /api/marketplace POST /api/marketplace/install (JSON: plugin_id, version) GET /api/me GET /api/plugins GET /api/plugins/{id} POST /api/plugins/install (multipart field: package) @@ -53,6 +105,11 @@ GET|PUT /api/plugins/{id}/config POST /api/plugins/{id}/menu-preview|menu-apply POST /api/menu-items/preview|apply (JSON: {"plugin_id":"..."}) GET /api/audit +GET /api/subscription/status +GET /api/subscription/audit +GET /api/subscription/plans +GET /api/subscription/subscriptions[/{id}] +GET /api/subscription/users/{id}[/subscriptions] ``` Every mutation requires the plugin CSRF token and an `Idempotency-Key`. A @@ -65,6 +122,13 @@ installs its runtime/menu. Failed installation and upgrade never replace the active revision. Delete/uninstall is allowed only after disable and removes plugin files, not Core data. +The login page reads only public CAPTCHA fields from `/api/captcha-config`. +When Core enables Turnstile, Tencent Captcha, or Aliyun Captcha, the matching +challenge is rendered in this page and its one-time proof is forwarded +server-side to Core. Provider secrets are never returned. Keep the provider +origins in the example CSP when CAPTCHA is enabled; changing the Core setting +is picked up on the next login-page load and does not require a plugin restart. + ## Marketplace catalog The marketplace is server-side only. The browser receives metadata and sends a diff --git a/plugins/plugin-admin/build-ui.sh b/plugins/plugin-admin/build-ui.sh new file mode 100755 index 0000000..921ddd8 --- /dev/null +++ b/plugins/plugin-admin/build-ui.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env sh +set -eu + +ROOT=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) +cd "$ROOT/ui-vue" + +# Keep the lockfile authoritative in CI and never install dependencies into +# the embedded Go source tree. +npm ci --ignore-scripts +npm run build +cp "$ROOT/ui-build/index.html" "$ROOT/ui-build/app.js" "$ROOT/ui-build/styles.css" "$ROOT/ui/" +printf '%s\n' "TDesign UI built into $ROOT/ui" diff --git a/plugins/plugin-admin/business-plugin-manifest.v1.json b/plugins/plugin-admin/business-plugin-manifest.v1.json index 1b1684b..1a1d6d1 100644 --- a/plugins/plugin-admin/business-plugin-manifest.v1.json +++ b/plugins/plugin-admin/business-plugin-manifest.v1.json @@ -2,7 +2,7 @@ "schema_version": 1, "plugin_id": "qiu.plugin-admin", "name": "Business Plugin Control Plane", - "version": "1.0.0", + "version": "1.1.0", "core_api_baseline": "sub2api-0.1.183", "tested_core_versions": ["0.1.183"], "capabilities": ["plugin.admin.v1"], @@ -28,6 +28,11 @@ "POST /api/v1/auth/logout", "GET /api/v1/auth/me", "GET /api/v1/settings/public", - "GET /api/v1/admin/settings" + "GET /api/v1/admin/settings", + "GET /api/v1/admin/payment/plans", + "GET /api/v1/admin/subscriptions", + "GET /api/v1/admin/subscriptions/{id}", + "GET /api/v1/admin/users/{id}", + "GET /api/v1/admin/users/{id}/subscriptions" ] } diff --git a/plugins/plugin-admin/deploy/systemd.service.example b/plugins/plugin-admin/deploy/systemd.service.example index ece7b3d..5a3ca69 100644 --- a/plugins/plugin-admin/deploy/systemd.service.example +++ b/plugins/plugin-admin/deploy/systemd.service.example @@ -7,16 +7,29 @@ Wants=network-online.target Type=simple User=sub2api-plugin Group=sub2api-plugin -WorkingDirectory=/opt/sub2api/plugin-admin -EnvironmentFile=/etc/sub2api/plugin-admin.env -ExecStart=/opt/sub2api/plugin-admin/bin/plugin-admin +WorkingDirectory=/var/lib/sub2api-add/plugin-admin +EnvironmentFile=/etc/sub2api-add/plugin-admin.env +ExecStart=/opt/sub2api-add/plugin-admin/bin/plugin-admin Restart=on-failure RestartSec=3 NoNewPrivileges=true PrivateTmp=true +PrivateDevices=true ProtectSystem=strict ProtectHome=true -ReadWritePaths=/var/lib/sub2api/plugin-admin +ProtectKernelTunables=true +ProtectKernelModules=true +ProtectKernelLogs=true +ProtectControlGroups=true +RestrictSUIDSGID=true +CapabilityBoundingSet= +LockPersonality=true +MemoryDenyWriteExecute=true +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 +TasksMax=128 +MemoryMax=512M +CPUQuota=200% +ReadWritePaths=/var/lib/sub2api-add/plugin-admin [Install] WantedBy=multi-user.target diff --git a/plugins/plugin-admin/main.go b/plugins/plugin-admin/main.go index 2692828..e0ef4d4 100644 --- a/plugins/plugin-admin/main.go +++ b/plugins/plugin-admin/main.go @@ -18,8 +18,10 @@ import ( "encoding/json" "errors" "fmt" + "html" "io" "log/slog" + "mime" "net" "net/http" "net/url" @@ -41,7 +43,8 @@ import ( const ( pluginID = "qiu.plugin-admin" - pluginVersion = "1.0.0" + subscriptionPluginID = "qiu.subscription-admin" + pluginVersion = "1.1.0" sessionCookieName = "plugin_admin_session" maxJSONBytes = 2 << 20 maxPackageBytes = 128 << 20 @@ -49,6 +52,10 @@ const ( maxUncompressedBytes = 256 << 20 defaultSessionTTL = 30 * time.Minute defaultSessionMaxTTL = 8 * time.Hour + loginWindow = time.Minute + loginLimit = 10 + maxPendingLogins = 1024 + pendingLoginTTL = 5 * time.Minute defaultOperationLimit = 200 maxOperationBodyBytes = maxPackageBytes + (4 << 20) ) @@ -57,6 +64,7 @@ const ( var uiFS embed.FS var requestIDPattern = regexp.MustCompile(`^[A-Za-z0-9._:-]{1,64}$`) +var coreMenuIDPattern = regexp.MustCompile(`^[A-Za-z0-9_-]+$`) type coreEnvelope struct { Code int `json:"code"` @@ -98,7 +106,7 @@ func isLoopbackHost(host string) bool { return ip != nil && ip.IsLoopback() } -func (c *coreClient) call(ctx context.Context, method, requestPath string, body any, accessToken, requestID string) (coreEnvelope, error) { +func (c *coreClient) call(ctx context.Context, method, requestPath string, body any, accessToken, requestID string, clientIPs ...string) (coreEnvelope, error) { if c == nil { return coreEnvelope{}, errors.New("core client unavailable") } @@ -126,6 +134,11 @@ func (c *coreClient) call(ctx context.Context, method, requestPath string, body } requestID = normalizeRequestID(requestID) req.Header.Set("X-Request-Id", requestID) + if len(clientIPs) > 0 && net.ParseIP(strings.TrimSpace(clientIPs[0])) != nil { + clientIP := strings.TrimSpace(clientIPs[0]) + req.Header.Set("X-Forwarded-For", clientIP) + req.Header.Set("X-Real-IP", clientIP) + } res, err := c.http.Do(req) if err != nil { return coreEnvelope{}, err @@ -147,17 +160,109 @@ func (c *coreClient) call(ctx context.Context, method, requestPath string, body } func allowedCorePath(method, p string) bool { - if method == http.MethodGet && (p == "/api/v1/auth/me" || p == "/api/v1/settings/public" || p == "/api/v1/admin/settings") { - return true + parsed, err := url.Parse(p) + if err != nil || parsed.Host != "" || parsed.Scheme != "" || parsed.Fragment != "" || strings.Contains(parsed.Path, "\\") { + return false } - return method == http.MethodPut && p == "/api/v1/admin/settings" || method == http.MethodPost && (p == "/api/v1/auth/login" || p == "/api/v1/auth/login/2fa" || p == "/api/v1/auth/refresh" || p == "/api/v1/auth/logout") + pathName := parsed.Path + if method == http.MethodGet { + if pathName == "/api/v1/auth/me" || pathName == "/api/v1/settings/public" || pathName == "/api/v1/admin/settings" { + return len(parsed.Query()) == 0 + } + return allowedSubscriptionReadPath(pathName) && validSubscriptionQuery(parsed.Query()) + } + if len(parsed.Query()) != 0 { + return false + } + return method == http.MethodPut && pathName == "/api/v1/admin/settings" || method == http.MethodPost && (pathName == "/api/v1/auth/login" || pathName == "/api/v1/auth/login/2fa" || pathName == "/api/v1/auth/refresh" || pathName == "/api/v1/auth/logout") } -func (c *coreClient) login(ctx context.Context, body any, rid string) (coreEnvelope, error) { - return c.call(ctx, http.MethodPost, "/api/v1/auth/login", body, "", rid) +func positiveID(value string) bool { + value = strings.TrimSpace(value) + if value == "" || strings.ContainsAny(value, "/\\") { + return false + } + n, err := strconv.ParseInt(value, 10, 64) + return err == nil && n > 0 } -func (c *coreClient) login2FA(ctx context.Context, body any, rid string) (coreEnvelope, error) { - return c.call(ctx, http.MethodPost, "/api/v1/auth/login/2fa", body, "", rid) + +func allowedSubscriptionReadPath(pathName string) bool { + if pathName == "/api/v1/admin/payment/plans" || pathName == "/api/v1/admin/subscriptions" { + return true + } + if strings.HasPrefix(pathName, "/api/v1/admin/subscriptions/") { + return positiveID(strings.TrimPrefix(pathName, "/api/v1/admin/subscriptions/")) + } + if strings.HasPrefix(pathName, "/api/v1/admin/users/") { + rest := strings.TrimPrefix(pathName, "/api/v1/admin/users/") + if positiveID(rest) { + return true + } + parts := strings.Split(rest, "/") + return len(parts) == 2 && positiveID(parts[0]) && parts[1] == "subscriptions" + } + return false +} + +func validSubscriptionQuery(values url.Values) bool { + allowed := map[string]bool{"page": true, "page_size": true, "limit": true, "user_id": true, "group_id": true, "status": true, "platform": true, "sort_by": true, "sort_order": true} + for key, entries := range values { + if !allowed[key] { + return false + } + for _, value := range entries { + value = strings.TrimSpace(value) + if value == "" || len(value) > 100 { + return false + } + if key == "page" || key == "page_size" || key == "limit" || key == "user_id" || key == "group_id" { + n, err := strconv.ParseUint(value, 10, 63) + if err != nil || n == 0 || ((key == "page_size" || key == "limit") && n > 100) { + return false + } + } + } + } + return true +} + +func sanitizeSubscriptionQuery(values url.Values) url.Values { + allowed := []string{"page", "page_size", "limit", "user_id", "group_id", "status", "platform", "sort_by", "sort_order"} + out := url.Values{} + for _, key := range allowed { + for _, value := range values[key] { + value = strings.TrimSpace(value) + if value == "" || len(value) > 100 { + continue + } + if (key == "page" || key == "page_size" || key == "limit" || key == "user_id" || key == "group_id") && !positiveID(value) { + continue + } + out.Add(key, value) + } + } + return out +} + +func (c *coreClient) read(ctx context.Context, requestPath, accessToken, requestID string) (coreEnvelope, error) { + parsed, err := url.Parse(requestPath) + if err != nil || parsed.Host != "" || parsed.Scheme != "" || parsed.Fragment != "" || !allowedSubscriptionReadPath(parsed.Path) || !validSubscriptionQuery(parsed.Query()) { + return coreEnvelope{}, errors.New("core path is not in the subscription allowlist") + } + parsed.RawQuery = sanitizeSubscriptionQuery(parsed.Query()).Encode() + return c.call(ctx, http.MethodGet, parsed.EscapedPath()+func() string { + if parsed.RawQuery == "" { + return "" + } + return "?" + parsed.RawQuery + }(), nil, accessToken, requestID) +} + +func (c *coreClient) login(ctx context.Context, body any, rid string, clientIP ...string) (coreEnvelope, error) { + return c.call(ctx, http.MethodPost, "/api/v1/auth/login", body, "", rid, clientIP...) +} +func (c *coreClient) login2FA(ctx context.Context, body any, rid string, clientIP ...string) (coreEnvelope, error) { + return c.call(ctx, http.MethodPost, "/api/v1/auth/login/2fa", body, "", rid, clientIP...) } func (c *coreClient) refresh(ctx context.Context, refresh, rid string) (coreEnvelope, error) { return c.call(ctx, http.MethodPost, "/api/v1/auth/refresh", map[string]string{"refresh_token": refresh}, "", rid) @@ -192,6 +297,8 @@ type session struct { type pendingLogin struct { TempToken string Expires time.Time + ClientIP string + Identity string } type revision struct { @@ -469,6 +576,7 @@ type app struct { registry *registry root string publicBasePath string + publicURL string cookiePath string cookieSecure bool cookieSameSite http.SameSite @@ -479,6 +587,9 @@ type app struct { sessions map[string]session sessionLocks map[string]*sync.Mutex pending map[string]pendingLogin + loginAttempts map[string]loginAttempt + trustProxy bool + clock func() time.Time processes map[string]*exec.Cmd pluginLocks map[string]*sync.Mutex marketplaceConfig marketplaceService @@ -488,7 +599,12 @@ type app struct { func newApp(core *coreClient, r *registry, root string) *app { key := sha256.Sum256([]byte(token(32))) marketplace, _ := newMarketplaceService(filepath.Join(root, "marketplace", "index.json"), "", true) - return &app{core: core, registry: r, root: root, cookiePath: "/", cookieSameSite: http.SameSiteLaxMode, frameAncestors: []string{"'self'"}, configKey: key[:], sessions: map[string]session{}, sessionLocks: map[string]*sync.Mutex{}, pending: map[string]pendingLogin{}, processes: map[string]*exec.Cmd{}, pluginLocks: map[string]*sync.Mutex{}, marketplaceConfig: marketplace} + return &app{core: core, registry: r, root: root, cookiePath: "/", cookieSameSite: http.SameSiteLaxMode, frameAncestors: []string{"'self'"}, configKey: key[:], sessions: map[string]session{}, sessionLocks: map[string]*sync.Mutex{}, pending: map[string]pendingLogin{}, loginAttempts: map[string]loginAttempt{}, clock: time.Now, processes: map[string]*exec.Cmd{}, pluginLocks: map[string]*sync.Mutex{}, marketplaceConfig: marketplace} +} + +type loginAttempt struct { + Started time.Time + Count int } func (a *app) lockPlugin(id string) func() { @@ -530,6 +646,88 @@ func token(n int) string { return hex.EncodeToString(b) } +func (a *app) now() time.Time { + if a != nil && a.clock != nil { + return a.clock() + } + return time.Now() +} + +// trustedClientIP only accepts forwarded client identity from a loopback peer +// when explicitly enabled. Direct/non-proxy requests use RemoteAddr, so an +// attacker cannot spoof the login limiter key with an arbitrary header. +func (a *app) trustedClientIP(r *http.Request) string { + if r == nil { + return "" + } + host, _, err := net.SplitHostPort(strings.TrimSpace(r.RemoteAddr)) + if err != nil { + host = strings.TrimSpace(r.RemoteAddr) + } + peer := net.ParseIP(host) + if a != nil && a.trustProxy && peer != nil && peer.IsLoopback() { + for _, value := range strings.Split(r.Header.Get("X-Forwarded-For"), ",") { + if ip := net.ParseIP(strings.TrimSpace(value)); ip != nil { + return ip.String() + } + } + } + if peer != nil { + return peer.String() + } + return "unknown" +} + +func (a *app) allowLoginAttempt(r *http.Request, identity string) bool { + if a == nil { + return false + } + key := a.trustedClientIP(r) + "|" + strings.ToLower(strings.TrimSpace(identity)) + now := a.now() + a.mu.Lock() + defer a.mu.Unlock() + if a.loginAttempts == nil { + a.loginAttempts = map[string]loginAttempt{} + } + // Bound the map while opportunistically removing expired buckets. + for candidate, attempt := range a.loginAttempts { + if now.Sub(attempt.Started) >= loginWindow { + delete(a.loginAttempts, candidate) + } + } + attempt := a.loginAttempts[key] + if attempt.Started.IsZero() || now.Sub(attempt.Started) >= loginWindow { + attempt = loginAttempt{Started: now} + } + if attempt.Count >= loginLimit { + a.loginAttempts[key] = attempt + return false + } + attempt.Count++ + a.loginAttempts[key] = attempt + return true +} + +func (a *app) addPendingLogin(value pendingLogin) (string, bool) { + a.mu.Lock() + defer a.mu.Unlock() + now := a.now() + for id, pending := range a.pending { + if !pending.Expires.After(now) { + delete(a.pending, id) + } + } + if len(a.pending) >= maxPendingLogins { + return "", false + } + if a.pending == nil { + a.pending = map[string]pendingLogin{} + } + id := token(16) + a.pending[id] = value + return id, true +} + func decodeJSON(r *http.Request, dst any, limit int64) error { if r == nil || r.Body == nil { return errors.New("request body is required") @@ -582,7 +780,7 @@ func (a *app) sessionFromRequest(r *http.Request) (string, session, bool) { if !ok { return "", session{}, false } - now := time.Now() + now := a.now() if now.Sub(s.CreatedAt) > defaultSessionMaxTTL || now.Sub(s.LastSeen) > defaultSessionTTL { delete(a.sessions, c.Value) delete(a.sessionLocks, c.Value) @@ -626,6 +824,66 @@ func menuItemsFromSettings(data map[string]any) []any { return nil } +// Core's custom_menu_items contract is narrower than the plugin ID contract: +// dots are valid namespace separators for plugin IDs, but Core accepts only +// ASCII letters, digits, hyphens, and underscores in menu IDs. Keep the +// namespace-shaped plugin ID in the registry and derive a stable Core-safe ID +// only at the integration boundary. +func coreMenuID(raw string) (string, error) { + raw = strings.TrimSpace(raw) + if raw == "" { + return "", errors.New("plugin menu id is required") + } + if len(raw) <= 32 && coreMenuIDPattern.MatchString(raw) { + return raw, nil + } + var b strings.Builder + lastSeparator := false + for _, r := range raw { + if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') || (r >= '0' && r <= '9') || r == '_' || r == '-' { + b.WriteRune(r) + lastSeparator = false + continue + } + if !lastSeparator { + b.WriteByte('-') + lastSeparator = true + } + } + value := strings.Trim(b.String(), "-_") + if value == "" { + return "", errors.New("plugin menu id cannot be represented as a Core menu id") + } + if len(value) > 32 { + sum := sha256.Sum256([]byte(raw)) + suffix := "-" + hex.EncodeToString(sum[:])[:8] + prefixLen := 32 - len(suffix) + value = strings.TrimRight(value[:prefixLen], "-_") + suffix + } + if !coreMenuIDPattern.MatchString(value) || len(value) > 32 { + return "", errors.New("plugin menu id cannot be represented as a Core menu id") + } + return value, nil +} + +func coreMenuIDSet(raw string) map[string]struct{} { + ids := map[string]struct{}{strings.TrimSpace(raw): {}} + if normalized, err := coreMenuID(raw); err == nil { + ids[normalized] = struct{}{} + } + return ids +} + +func menuItemHasID(item any, ids map[string]struct{}) bool { + object, ok := item.(map[string]any) + if !ok { + return false + } + id, _ := object["id"].(string) + _, ok = ids[id] + return ok +} + func isAdmin(user map[string]any) bool { role, _ := user["role"].(string) return strings.EqualFold(role, "admin") || strings.EqualFold(role, "administrator") @@ -651,7 +909,13 @@ func (a *app) login(w http.ResponseWriter, r *http.Request) { writeJSON(w, http.StatusServiceUnavailable, map[string]string{"error": "core unavailable"}) return } - out, err := a.core.login(r.Context(), in, requestID(r)) + clientIP := a.trustedClientIP(r) + if !a.allowLoginAttempt(r, in.Email) { + w.Header().Set("Retry-After", strconv.Itoa(int(loginWindow/time.Second))) + writeJSON(w, http.StatusTooManyRequests, map[string]string{"error": "too many login attempts"}) + return + } + out, err := a.core.login(r.Context(), in, requestID(r), clientIP) if err != nil { a.coreError(w, err, "core login failed") return @@ -663,10 +927,12 @@ func (a *app) login(w http.ResponseWriter, r *http.Request) { writeJSON(w, http.StatusBadGateway, map[string]string{"error": "2fa challenge missing"}) return } - pending := token(16) - a.mu.Lock() - a.pending[pending] = pendingLogin{TempToken: temp, Expires: time.Now().Add(5 * time.Minute)} - a.mu.Unlock() + pending, accepted := a.addPendingLogin(pendingLogin{TempToken: temp, Expires: a.now().Add(pendingLoginTTL), ClientIP: clientIP, Identity: in.Email}) + if !accepted { + w.Header().Set("Retry-After", strconv.Itoa(int(pendingLoginTTL/time.Second))) + writeJSON(w, http.StatusTooManyRequests, map[string]string{"error": "too many pending login challenges"}) + return + } writeJSON(w, http.StatusOK, map[string]any{"requires_2fa": true, "pending_token": pending}) return } @@ -690,11 +956,20 @@ func (a *app) login2FA(w http.ResponseWriter, r *http.Request) { pending, ok := a.pending[in.PendingToken] delete(a.pending, in.PendingToken) a.mu.Unlock() - if !ok || time.Now().After(pending.Expires) { + if !ok || !a.now().Before(pending.Expires) { writeJSON(w, http.StatusBadRequest, map[string]string{"error": "2fa session expired"}) return } - out, err := a.core.login2FA(r.Context(), map[string]string{"temp_token": pending.TempToken, "totp_code": in.TOTPCode}, requestID(r)) + if pending.ClientIP != "" && pending.ClientIP != a.trustedClientIP(r) { + writeJSON(w, http.StatusForbidden, map[string]string{"error": "2fa session binding failed"}) + return + } + if !a.allowLoginAttempt(r, "2fa:"+pending.Identity) { + w.Header().Set("Retry-After", strconv.Itoa(int(loginWindow/time.Second))) + writeJSON(w, http.StatusTooManyRequests, map[string]string{"error": "too many login attempts"}) + return + } + out, err := a.core.login2FA(r.Context(), map[string]string{"temp_token": pending.TempToken, "totp_code": in.TOTPCode}, requestID(r), a.trustedClientIP(r)) if err != nil { a.coreError(w, err, "2fa verification failed") return @@ -721,7 +996,7 @@ func (a *app) finishLogin(w http.ResponseWriter, r *http.Request, data map[strin writeJSON(w, http.StatusForbidden, map[string]string{"error": "admin role required"}) return } - now := time.Now() + now := a.now() s := session{AccessToken: access, RefreshToken: refresh, CSRFToken: token(16), User: publicUser(user), CreatedAt: now, LastSeen: now} id := token(32) a.mu.Lock() @@ -779,23 +1054,31 @@ func (a *app) refreshSession(ctx context.Context, id string, stale session) (ses return session{}, false } data := envelopeData(out) + candidateRefresh := current.RefreshToken + if next, _ := data["refresh_token"].(string); next != "" { + candidateRefresh = next + } access, _ := data["access_token"].(string) if access == "" { + a.core.logout(ctx, candidateRefresh, token(12)) return session{}, false } + // Core may rotate the refresh token. Keep the candidate separate until the + // replacement access token has been revalidated, so every token issued by a + // successful refresh can be revoked on a validation failure. current.AccessToken = access - if next, _ := data["refresh_token"].(string); next != "" { - current.RefreshToken = next - } me, err := a.core.me(ctx, access, token(12)) if err != nil { + a.core.logout(ctx, candidateRefresh, token(12)) return session{}, false } current.User = publicUser(envelopeData(me)) if !isAdmin(envelopeData(me)) { + a.core.logout(ctx, candidateRefresh, token(12)) return current, false } - current.LastSeen = time.Now() + current.RefreshToken = candidateRefresh + current.LastSeen = a.now() a.mu.Lock() a.sessions[id] = current a.mu.Unlock() @@ -1019,6 +1302,14 @@ func (a *app) marketplaceInstall(w http.ResponseWriter, r *http.Request) { if entry == nil { err = errors.New("plugin version is not available in the marketplace") } else { + a.registry.mu.Lock() + installed, alreadyInstalled := a.registry.data.Plugins[input.PluginID] + a.registry.mu.Unlock() + if alreadyInstalled && compareMarketplaceVersions(entry.Version, installed.Manifest.Version) <= 0 { + err = errors.New("marketplace version is not newer than the installed plugin") + } + } + if err == nil { var archive []byte archive, err = a.marketplaceConfig.archiveBytes(r.Context(), *entry, origin) if err == nil { @@ -1083,7 +1374,7 @@ func (a *app) operationByID(w http.ResponseWriter, r *http.Request) { func (a *app) publicPlugin(p pluginRecord) map[string]any { revisions := make([]map[string]any, 0, len(p.Revisions)) for _, rev := range p.Revisions { - revisions = append(revisions, map[string]any{"id": rev.ID, "version": rev.Version, "archive_sha256": rev.ArchiveSHA, "verified_at": rev.VerifiedAt, "healthy_at": rev.HealthyAt}) + revisions = append(revisions, map[string]any{"id": rev.ID, "version": rev.Version, "archive_sha256": rev.ArchiveSHA, "verified_at": rev.VerifiedAt, "healthy_at": rev.HealthyAt, "retired": rev.Retired}) } compat := p.Manifest.EvaluateCompatibility(a.currentCoreVersion(context.Background())) return map[string]any{"plugin_id": p.Manifest.PluginID, "name": p.Manifest.Name, "version": p.Manifest.Version, "capabilities": p.Manifest.SortedCapabilities(), "state": p.State, "installation_status": installationStatus(p), "active_revision": p.ActiveRevision, "pending_revision": p.PendingRevision, "revisions": revisions, "compatibility": compat, "endpoint": p.Endpoint, "last_error": p.LastError, "updated_at": p.UpdatedAt, "menu": p.Manifest.UI.Menu} @@ -1728,10 +2019,10 @@ func (a *app) removeOwnMenu(ctx context.Context, access, id string, rid string) } data := envelopeData(settings) raw := menuItemsFromSettings(data) + ids := coreMenuIDSet(id) next := make([]any, 0, len(raw)) for _, item := range raw { - object, ok := item.(map[string]any) - if ok && object["id"] == id { + if menuItemHasID(item, ids) { continue } next = append(next, item) @@ -1747,26 +2038,24 @@ func (a *app) restoreOwnMenu(ctx context.Context, access string, p pluginRecord, if a.core == nil { return errors.New("core unavailable") } - itemURL := p.Manifest.UI.Menu.URL - if itemURL == "" { - cfg, err := a.decryptConfig(p.ConfigCipher) - if err != nil { - return err - } - itemURL, _ = cfg["public_url"].(string) + itemURL, err := a.menuURL(p) + if err != nil { + return err } - if itemURL == "" || validateMenuURL(itemURL) != nil { - return errors.New("menu URL is not configured") + coreID, err := coreMenuID(p.Manifest.UI.Menu.ID) + if err != nil { + return err } settings, err := a.core.settings(ctx, access, rid) if err != nil { return err } current := menuItemsFromSettings(envelopeData(settings)) - candidate := map[string]any{"id": p.Manifest.UI.Menu.ID, "label": p.Manifest.UI.Menu.Label, "url": itemURL, "visibility": "admin", "sort_order": p.Manifest.UI.Menu.SortOrder} + candidate := map[string]any{"id": coreID, "label": p.Manifest.UI.Menu.Label, "url": itemURL, "visibility": "admin", "sort_order": p.Manifest.UI.Menu.SortOrder} + ids := coreMenuIDSet(p.Manifest.UI.Menu.ID) replaced := false for i, raw := range current { - if object, ok := raw.(map[string]any); ok && object["id"] == p.Manifest.UI.Menu.ID { + if menuItemHasID(raw, ids) { current[i] = candidate replaced = true } @@ -1778,6 +2067,37 @@ func (a *app) restoreOwnMenu(ctx context.Context, access string, p pluginRecord, return err } +// menuURL resolves the URL that Core should place in custom_menu_items. The +// subscription module is deliberately different from a generic plugin: its +// browser entry must always land in the Plugin Admin Shell, where the shared +// administrator session and module route are enforced. Its own service URL is +// an internal health/BFF dependency and must never become a second login entry. +func (a *app) menuURL(p pluginRecord) (string, error) { + if p.Manifest.PluginID == subscriptionPluginID { + base := strings.TrimRight(strings.TrimSpace(a.publicURL), "/") + if base == "" { + return "", errors.New("PLUGIN_PUBLIC_URL is required for the subscription menu") + } + if err := validatePublicURL(base); err != nil { + return "", err + } + return base + "/admin/#/modules/subscription/overview", nil + } + itemURL := strings.TrimSpace(p.Manifest.UI.Menu.URL) + if itemURL == "" { + cfg, err := a.decryptConfig(p.ConfigCipher) + if err != nil { + return "", err + } + itemURL, _ = cfg["public_url"].(string) + itemURL = strings.TrimSpace(itemURL) + } + if itemURL == "" || validateMenuURL(itemURL) != nil { + return "", errors.New("menu URL is not configured") + } + return itemURL, nil +} + func (a *app) withPlugin(w http.ResponseWriter, r *http.Request, kind string, fn func(*pluginRecord, session) error) { id, _, ok := a.pluginIDFromPath(r) if !ok { @@ -1922,7 +2242,7 @@ func (a *app) disable(w http.ResponseWriter, r *http.Request) { return } a.withPlugin(w, r, "disable", func(p *pluginRecord, s session) error { - if err := a.removeOwnMenu(r.Context(), s.AccessToken, p.Manifest.PluginID, requestID(r)); err != nil { + if err := a.removeOwnMenu(r.Context(), s.AccessToken, p.Manifest.UI.Menu.ID, requestID(r)); err != nil { return err } p.State = "draining" @@ -1932,21 +2252,88 @@ func (a *app) disable(w http.ResponseWriter, r *http.Request) { }) } +// decodeRollbackRequest keeps the API compatible with the old empty-body +// rollback (used to discard a failed pending candidate), while making an +// explicitly selected revision authoritative and strictly validated. +func decodeRollbackRequest(r *http.Request) (string, error) { + if r == nil || r.Body == nil { + return "", nil + } + raw, err := io.ReadAll(io.LimitReader(r.Body, 64<<10)) + if err != nil { + return "", errors.New("invalid rollback request") + } + if len(bytes.TrimSpace(raw)) == 0 { + return "", nil + } + decoder := json.NewDecoder(bytes.NewReader(raw)) + decoder.DisallowUnknownFields() + var input struct { + Revision string `json:"revision"` + } + if err := decoder.Decode(&input); err != nil { + return "", errors.New("rollback revision is invalid") + } + var trailing any + if err := decoder.Decode(&trailing); err != io.EOF { + return "", errors.New("rollback request must contain one JSON value") + } + input.Revision = strings.TrimSpace(input.Revision) + if input.Revision == "" || len(input.Revision) > 160 || strings.ContainsAny(input.Revision, "/\\") { + return "", errors.New("rollback revision is required") + } + return input.Revision, nil +} + func (a *app) rollback(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { writeJSON(w, http.StatusMethodNotAllowed, map[string]string{"error": "method not allowed"}) return } a.withPlugin(w, r, "rollback", func(p *pluginRecord, _ session) error { + requestedRevision, err := decodeRollbackRequest(r) + if err != nil { + return err + } targetState := p.State if p.PreviousState != "" { targetState = p.PreviousState } + current := p.ActiveRevision + pendingID := p.PendingRevision + var target revision + hasTarget := false + if requestedRevision != "" { + for _, candidate := range p.Revisions { + if candidate.ID != requestedRevision { + continue + } + if candidate.Retired { + return errors.New("rollback revision is retired") + } + if candidate.ID == current { + return errors.New("rollback revision is already active") + } + if candidate.ID == pendingID { + return errors.New("rollback revision is still pending") + } + target = candidate + if target.Manifest.PluginID == "" { + target.Manifest = p.Manifest + } + hasTarget = true + break + } + if !hasTarget { + return errors.New("rollback revision not found") + } + } // A failed upgrade leaves the previous active revision untouched and // stores the new revision as pending. Rolling back in that state means - // discarding the failed candidate, not attempting to boot it again. - if p.PendingRevision != "" && p.ActiveRevision != "" { - pendingID := p.PendingRevision + // discarding the failed candidate, not attempting to boot it again. When + // the caller names an older revision, discard the candidate first and then + // continue with the explicitly selected target. + if pendingID != "" && current != "" { if targetState == "healthy" { if err := a.checkPluginHealth(p); err != nil { p.LastError = sanitizeError(err) @@ -1965,32 +2352,33 @@ func (a *app) rollback(w http.ResponseWriter, r *http.Request) { p.Revisions = kept p.PendingRevision = "" p.PreviousState = "" - p.State = targetState - if p.State == "starting" || p.State == "draining" || p.State == "upgrading" || p.State == "rollback_pending" { - p.State = "disabled" + if requestedRevision == "" { + p.State = targetState + if p.State == "starting" || p.State == "draining" || p.State == "upgrading" || p.State == "rollback_pending" { + p.State = "disabled" + } + p.LastError = "" + return nil } - p.LastError = "" - return nil } - if len(p.Revisions) < 2 { + if !hasTarget && len(p.Revisions) < 2 { p.State = "disabled" return errors.New("no rollback revision retained") } - current := p.ActiveRevision - var target revision - found := false - for i := len(p.Revisions) - 1; i >= 0; i-- { - if p.Revisions[i].Retired || p.Revisions[i].ID == current || (p.PendingRevision != "" && p.Revisions[i].ID == p.PendingRevision) { - continue + if !hasTarget { + for i := len(p.Revisions) - 1; i >= 0; i-- { + if p.Revisions[i].Retired || p.Revisions[i].ID == current || (p.PendingRevision != "" && p.Revisions[i].ID == p.PendingRevision) { + continue + } + target = p.Revisions[i] + if target.Manifest.PluginID == "" { + target.Manifest = p.Manifest + } + hasTarget = true + break } - target = p.Revisions[i] - if target.Manifest.PluginID == "" { - target.Manifest = p.Manifest - } - found = true - break } - if !found { + if !hasTarget { return errors.New("rollback revision not found") } candidate := *p @@ -2032,7 +2420,7 @@ func (a *app) uninstall(w http.ResponseWriter, r *http.Request) { if p.State == "healthy" || p.State == "starting" || p.State == "draining" { return errors.New("disable plugin before uninstall") } - if err := a.removeOwnMenu(r.Context(), s.AccessToken, p.Manifest.PluginID, requestID(r)); err != nil { + if err := a.removeOwnMenu(r.Context(), s.AccessToken, p.Manifest.UI.Menu.ID, requestID(r)); err != nil { return err } a.stopPlugin(p.Manifest.PluginID) @@ -2210,6 +2598,23 @@ func validateMenuURL(raw string) error { return nil } +// validatePublicURL accepts the externally reachable base URL of Plugin Admin. +// It intentionally has no query, fragment, credentials, or path traversal; +// menuURL appends the one fixed module fragment after validation. +func validatePublicURL(raw string) error { + u, err := url.Parse(strings.TrimSpace(raw)) + if err != nil || u.Host == "" || (u.Scheme != "http" && u.Scheme != "https") || u.User != nil || u.RawQuery != "" || u.Fragment != "" { + return errors.New("PLUGIN_PUBLIC_URL must be an absolute http(s) URL without credentials, query or fragment") + } + if u.Scheme == "http" && !isLoopbackHost(u.Hostname()) { + return errors.New("PLUGIN_PUBLIC_URL must use HTTPS unless loopback") + } + if strings.Contains(u.Path, "\\") || strings.Contains(u.Path, "..") { + return errors.New("PLUGIN_PUBLIC_URL contains an unsafe path") + } + return nil +} + func (a *app) startPlugin(p *pluginRecord) error { endpoint, err := a.startRevision(p, p.ActiveRevision, p.Manifest.PluginID) if err != nil { @@ -2498,6 +2903,10 @@ func (a *app) recoverPlugins() error { } return saveErr } + // Retired payloads are intentionally kept through the current operation + // commit so a failed registry write remains recoverable. Once recovery has + // persisted the authoritative record, clean those unreferenced payloads. + _ = a.cleanupRetiredRevisions(p) } return nil } @@ -2562,6 +2971,40 @@ func (a *app) cleanupUninstallTombstonesLocked() error { return firstErr } +// cleanupRetiredRevisions removes files for revisions that are no longer +// eligible for activation. Metadata is retained in the registry for audit and +// history, but retired payloads must not accumulate indefinitely on disk. +func (a *app) cleanupRetiredRevisions(p pluginRecord) error { + base, err := filepath.Abs(filepath.Join(a.root, "installed")) + if err != nil { + return err + } + var firstErr error + for _, rev := range p.Revisions { + if !rev.Retired || rev.Path == "" || rev.ID == p.ActiveRevision || rev.ID == p.PendingRevision { + continue + } + absolute, pathErr := filepath.Abs(rev.Path) + if pathErr != nil { + if firstErr == nil { + firstErr = pathErr + } + continue + } + rel, relErr := filepath.Rel(base, absolute) + if relErr != nil || rel == "." || rel == ".." || strings.HasPrefix(rel, ".."+string(os.PathSeparator)) { + if firstErr == nil { + firstErr = errors.New("retired revision path is outside the plugin install root") + } + continue + } + if removeErr := os.RemoveAll(absolute); removeErr != nil && firstErr == nil { + firstErr = removeErr + } + } + return firstErr +} + func (a *app) audit(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodGet { writeJSON(w, http.StatusMethodNotAllowed, map[string]string{"error": "method not allowed"}) @@ -2576,6 +3019,244 @@ func (a *app) audit(w http.ResponseWriter, r *http.Request) { writeJSON(w, http.StatusOK, map[string]any{"items": items}) } +// subscriptionStatus exposes module health without creating a second session. +// The browser receives only derived state; Core credentials remain in session. +func (a *app) subscriptionStatus(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + writeJSON(w, http.StatusMethodNotAllowed, map[string]string{"error": "method not allowed"}) + return + } + _, s, ok := a.authenticate(w, r) + if !ok { + return + } + enabled := a.subscriptionEnabled() + writeJSON(w, http.StatusOK, map[string]any{ + "module": "subscription", + "enabled": enabled, + "core_base_configured": a.core != nil, + "session_mode": "shared", + "credential_state": "server_managed", + "operator": s.User, + }) +} + +// captchaConfig exposes only the public browser-side fields required to render +// the Core login challenge. Provider secrets and the rest of Core settings +// never cross this boundary. The endpoint is intentionally unauthenticated so +// the first Plugin Admin login can discover whether a proof is required. +func (a *app) captchaConfig(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + writeJSON(w, http.StatusMethodNotAllowed, map[string]string{"error": "method not allowed"}) + return + } + if a.core == nil { + writeJSON(w, http.StatusServiceUnavailable, map[string]string{"error": "core unavailable"}) + return + } + out, err := a.core.publicSettings(r.Context(), requestID(r)) + if err != nil { + a.coreError(w, err, "core settings unavailable") + return + } + data := envelopeData(out) + boolValue := func(key string) bool { + value, _ := data[key].(bool) + return value + } + stringValue := func(key string) string { + value, _ := data[key].(string) + value = strings.TrimSpace(value) + if len(value) > 512 { + return "" + } + return value + } + turnstileEnabled := boolValue("turnstile_enabled") + tencentEnabled := boolValue("tencent_captcha_enabled") + aliyunEnabled := boolValue("aliyun_captcha_enabled") + provider := "" + switch { + case turnstileEnabled: + provider = "turnstile" + case tencentEnabled: + provider = "tencent" + case aliyunEnabled: + provider = "aliyun" + } + writeJSON(w, http.StatusOK, map[string]any{ + "enabled": turnstileEnabled || tencentEnabled || aliyunEnabled, + "provider": provider, + "turnstile_enabled": turnstileEnabled, + "turnstile_site_key": stringValue("turnstile_site_key"), + "tencent_captcha_enabled": tencentEnabled, + "tencent_captcha_app_id": stringValue("tencent_captcha_app_id"), + "tencent_captcha_region": stringValue("tencent_captcha_region"), + "aliyun_captcha_enabled": aliyunEnabled, + "aliyun_captcha_scene_id": stringValue("aliyun_captcha_scene_id"), + "aliyun_captcha_prefix": stringValue("aliyun_captcha_prefix"), + "aliyun_captcha_region": stringValue("aliyun_captcha_region"), + }) +} + +// subscriptionEnabled is the server-side source of truth for the optional +// subscription module. UI visibility is only a convenience; every module BFF +// endpoint calls requireSubscriptionEnabled so a stale/deep-linked browser +// cannot read Core subscription data after the module is disabled. +func (a *app) subscriptionEnabled() bool { + if a == nil || a.registry == nil { + return false + } + a.registry.mu.Lock() + defer a.registry.mu.Unlock() + plugin, found := a.registry.data.Plugins[subscriptionPluginID] + return found && (plugin.State == "healthy" || plugin.State == "enabled") +} + +func (a *app) requireSubscriptionEnabled(w http.ResponseWriter) bool { + if a.subscriptionEnabled() { + return true + } + // Do not reveal whether the module was ever installed. The control plane + // still exposes /api/subscription/status to authenticated admins so the UI + // can render an accurate disabled state. + writeJSON(w, http.StatusNotFound, map[string]string{"error": "subscription module is not enabled"}) + return false +} + +func (a *app) subscriptionAudit(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + writeJSON(w, http.StatusMethodNotAllowed, map[string]string{"error": "method not allowed"}) + return + } + if _, _, ok := a.authenticate(w, r); !ok { + return + } + if !a.requireSubscriptionEnabled(w) { + return + } + if a.registry == nil { + writeJSON(w, http.StatusOK, map[string]any{"items": []auditEvent{}}) + return + } + a.registry.mu.Lock() + items := make([]auditEvent, 0) + for _, item := range a.registry.data.Audit { + if strings.HasPrefix(item.Action, "subscription") || strings.Contains(item.Action, "/api/v1/admin/subscriptions") || strings.Contains(item.Action, "/api/v1/admin/payment/plans") || strings.Contains(item.Action, "/api/v1/admin/users/") { + items = append(items, item) + } + } + a.registry.mu.Unlock() + writeJSON(w, http.StatusOK, map[string]any{"items": items}) +} + +func sanitizedCoreValue(value any) any { + switch typed := value.(type) { + case []any: + out := make([]any, 0, len(typed)) + for _, item := range typed { + out = append(out, sanitizedCoreValue(item)) + } + return out + case map[string]any: + out := make(map[string]any, len(typed)) + for key, item := range typed { + if isSecretKey(key) { + continue + } + out[key] = sanitizedCoreValue(item) + } + return out + default: + return value + } +} + +func (a *app) writeSubscriptionEnvelope(w http.ResponseWriter, envelope coreEnvelope) { + var data any + if len(envelope.Data) > 0 { + if json.Unmarshal(envelope.Data, &data) != nil { + writeJSON(w, http.StatusBadGateway, map[string]string{"error": "invalid Core response"}) + return + } + } + status := envelope.status + if status == 0 { + status = http.StatusOK + } + writeJSON(w, status, map[string]any{"code": envelope.Code, "message": envelope.Message, "data": sanitizedCoreValue(data)}) +} + +func (a *app) subscriptionProxy(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + writeJSON(w, http.StatusMethodNotAllowed, map[string]string{"error": "method not allowed"}) + return + } + if !validSubscriptionQuery(r.URL.Query()) { + writeJSON(w, http.StatusBadRequest, map[string]string{"error": "invalid query parameters"}) + return + } + if a.core == nil { + writeJSON(w, http.StatusServiceUnavailable, map[string]string{"error": "core unavailable"}) + return + } + _, s, ok := a.authenticate(w, r) + if !ok { + return + } + if !a.requireSubscriptionEnabled(w) { + return + } + var corePath string + pathName := strings.TrimSuffix(r.URL.Path, "/") + switch { + case pathName == "/api/subscription/plans": + corePath = "/api/v1/admin/payment/plans" + case pathName == "/api/subscription/subscriptions": + corePath = "/api/v1/admin/subscriptions" + case strings.HasPrefix(pathName, "/api/subscription/subscriptions/"): + id := strings.TrimPrefix(pathName, "/api/subscription/subscriptions/") + if !positiveID(id) { + writeJSON(w, http.StatusBadRequest, map[string]string{"error": "invalid subscription id"}) + return + } + corePath = "/api/v1/admin/subscriptions/" + id + case strings.HasPrefix(pathName, "/api/subscription/users/"): + rest := strings.TrimPrefix(pathName, "/api/subscription/users/") + parts := strings.Split(rest, "/") + if len(parts) == 1 && positiveID(parts[0]) { + corePath = "/api/v1/admin/users/" + parts[0] + } else if len(parts) == 2 && parts[1] == "subscriptions" && positiveID(parts[0]) { + corePath = "/api/v1/admin/users/" + parts[0] + "/subscriptions" + } else { + writeJSON(w, http.StatusBadRequest, map[string]string{"error": "invalid user path"}) + return + } + default: + writeJSON(w, http.StatusNotFound, map[string]string{"error": "subscription endpoint not found"}) + return + } + // authenticate() has already revalidated the Core access token. A failed + // read is intentionally returned as a generic gateway error to avoid leaking + // Core response details. + out, err := a.core.read(r.Context(), corePath+querySuffix(r.URL.Query()), s.AccessToken, requestID(r)) + if err != nil { + a.coreError(w, err, "subscription data unavailable") + return + } + if a.registry != nil { + _ = a.registry.addAudit(auditEvent{Time: time.Now().UTC(), Action: "read:" + corePath, PluginID: "qiu.subscription-admin", ActorID: s.User["id"], RequestID: requestID(r)}) + } + a.writeSubscriptionEnvelope(w, out) +} + +func querySuffix(values url.Values) string { + if len(values) == 0 { + return "" + } + return "?" + sanitizeSubscriptionQuery(values).Encode() +} + func (a *app) menu(w http.ResponseWriter, r *http.Request, apply bool) { if r.Method != http.MethodPost { writeJSON(w, http.StatusMethodNotAllowed, map[string]string{"error": "method not allowed"}) @@ -2616,26 +3297,21 @@ func (a *app) menu(w http.ResponseWriter, r *http.Request, apply bool) { current = menuItemsFromSettings(data) } } - itemURL := p.Manifest.UI.Menu.URL - if itemURL == "" { - cfg, cfgErr := a.decryptConfig(p.ConfigCipher) - if cfgErr != nil { - err = errors.New("plugin configuration is unavailable") - } else if configured, ok := cfg["public_url"].(string); ok { - itemURL = configured - } + coreID := "" + if err == nil { + coreID, err = coreMenuID(p.Manifest.UI.Menu.ID) } - if itemURL == "" { - err = errors.New("menu URL is not configured") - } else if validateMenuURL(itemURL) != nil { - err = errors.New("menu URL must be an absolute http(s) URL") + itemURL := "" + if err == nil { + itemURL, err = a.menuURL(p) } next := append([]any(nil), current...) if err == nil { - candidate := map[string]any{"id": p.Manifest.UI.Menu.ID, "label": p.Manifest.UI.Menu.Label, "url": itemURL, "visibility": "admin", "sort_order": p.Manifest.UI.Menu.SortOrder} + candidate := map[string]any{"id": coreID, "label": p.Manifest.UI.Menu.Label, "url": itemURL, "visibility": "admin", "sort_order": p.Manifest.UI.Menu.SortOrder} + ids := coreMenuIDSet(p.Manifest.UI.Menu.ID) replaced := false for i, raw := range next { - if object, ok := raw.(map[string]any); ok && object["id"] == p.Manifest.UI.Menu.ID { + if menuItemHasID(raw, ids) { next[i] = candidate replaced = true } @@ -2698,39 +3374,100 @@ func (a *app) coreError(w http.ResponseWriter, err error, fallback string) { writeJSON(w, status, map[string]string{"error": fallback}) } -func (a *app) static(w http.ResponseWriter, r *http.Request) { - if r.URL.Path == "/admin" { - http.Redirect(w, r, a.publicBasePath+"/admin/", http.StatusPermanentRedirect) +func staticMounts(base string) []string { + base = strings.TrimRight(strings.TrimSpace(base), "/") + mounts := []string{"/admin"} + if base != "" && base != "/" { + // Vue's relative ../ asset URLs resolve one level above /admin/. + // Keep that parent prefix as an asset alias for mounted deployments. + mounts = append(mounts, base+"/admin", base) + } + return mounts +} + +// staticPath returns the path beneath a recognised UI mount. It rejects +// traversal before cleaning so encoded dot segments cannot escape ui/. +func staticPath(a *app, requestPath string) (string, bool, bool) { + escaped := requestPath + if escaped == "" { + escaped = "/" + } + decoded, err := url.PathUnescape(escaped) + if err != nil || strings.Contains(decoded, "\\") { + return "", false, true + } + for _, segment := range strings.Split(decoded, "/") { + if segment == "." || segment == ".." { + return "", false, true + } + } + clean := path.Clean("/" + decoded) + if clean == "/" { + return "", true, false + } + // The default shell references app.js/styles.css from the parent of + // /admin/. Vite builds commonly place additional files under /assets/. + if clean == "/app.js" || clean == "/styles.css" || strings.HasPrefix(clean, "/assets/") { + return strings.TrimPrefix(clean, "/"), true, false + } + for _, mount := range staticMounts(a.publicBasePath) { + if clean == mount || strings.HasPrefix(clean, mount+"/") { + rel := strings.TrimPrefix(clean, mount) + return strings.TrimPrefix(rel, "/"), true, false + } + } + return "", false, false +} + +func (a *app) writeIndex(w http.ResponseWriter) { + data, err := uiFS.ReadFile("ui/index.html") + if err != nil { + http.Error(w, "ui unavailable", http.StatusInternalServerError) return } - if r.URL.Path == "/" || r.URL.Path == "/admin/" { - data, err := uiFS.ReadFile("ui/index.html") - if err != nil { - http.Error(w, "ui unavailable", 500) + baseJSON, _ := json.Marshal(a.publicBasePath) + content := strings.ReplaceAll(string(data), "__PLUGIN_BASE_PATH_JSON__", string(baseJSON)) + // The Vue shell stores the mount in a meta attribute. Escape it as HTML so + // an operator-provided base path cannot break the document or inject markup. + content = strings.ReplaceAll(content, "__PLUGIN_BASE_PATH__", html.EscapeString(a.publicBasePath)) + data = []byte(content) + w.Header().Set("Cache-Control", "no-store") + w.Header().Set("Content-Type", "text/html; charset=utf-8") + _, _ = w.Write(data) +} + +func (a *app) static(w http.ResponseWriter, r *http.Request) { + rel, mounted, rejected := staticPath(a, r.URL.EscapedPath()) + if rejected { + http.NotFound(w, r) + return + } + if !mounted { + http.NotFound(w, r) + return + } + if rel == "" { + if r.URL.Path == "/admin" || (a.publicBasePath != "" && r.URL.Path == strings.TrimRight(a.publicBasePath, "/")+"/admin") { + http.Redirect(w, r, strings.TrimRight(a.publicBasePath, "/")+"/admin/", http.StatusPermanentRedirect) return } - baseJSON, _ := json.Marshal(a.publicBasePath) - data = []byte(strings.ReplaceAll(string(data), "__PLUGIN_BASE_PATH_JSON__", string(baseJSON))) - w.Header().Set("Cache-Control", "no-store") - w.Header().Set("Content-Type", "text/html; charset=utf-8") + a.writeIndex(w) + return + } + data, err := uiFS.ReadFile("ui/" + rel) + if err == nil { + contentType := mime.TypeByExtension(path.Ext(rel)) + if contentType == "" { + contentType = http.DetectContentType(data) + } + w.Header().Set("Content-Type", contentType) _, _ = w.Write(data) return } - for _, name := range []string{"app.js", "styles.css"} { - if r.URL.Path == "/"+name { - data, err := uiFS.ReadFile("ui/" + name) - if err != nil { - http.NotFound(w, r) - return - } - if strings.HasSuffix(name, ".js") { - w.Header().Set("Content-Type", "text/javascript; charset=utf-8") - } else { - w.Header().Set("Content-Type", "text/css; charset=utf-8") - } - _, _ = w.Write(data) - return - } + // Hash-routed SPA paths are client-side routes and have no file extension. + if path.Ext(rel) == "" { + a.writeIndex(w) + return } http.NotFound(w, r) } @@ -2742,8 +3479,15 @@ func (a *app) routes() http.Handler { mux.HandleFunc("/login", a.login) mux.HandleFunc("/login/2fa", a.login2FA) mux.HandleFunc("/logout", a.logout) + mux.HandleFunc("/api/captcha-config", a.captchaConfig) mux.HandleFunc("/api/me", a.me) mux.HandleFunc("/api/audit", a.audit) + mux.HandleFunc("/api/subscription/status", a.subscriptionStatus) + mux.HandleFunc("/api/subscription/audit", a.subscriptionAudit) + mux.HandleFunc("/api/subscription/plans", a.subscriptionProxy) + mux.HandleFunc("/api/subscription/subscriptions", a.subscriptionProxy) + mux.HandleFunc("/api/subscription/subscriptions/", a.subscriptionProxy) + mux.HandleFunc("/api/subscription/users/", a.subscriptionProxy) mux.HandleFunc("/api/marketplace", a.marketplace) mux.HandleFunc("/api/marketplace/install", a.marketplaceInstall) mux.HandleFunc("/api/menu-items/preview", func(w http.ResponseWriter, r *http.Request) { a.menuGlobal(w, r, false) }) @@ -2791,7 +3535,28 @@ func (a *app) routes() http.Handler { } }) mux.HandleFunc("/", a.static) - return a.securityHeaders(requestIDMiddleware(mux)) + handler := a.securityHeaders(requestIDMiddleware(mux)) + base := strings.TrimRight(strings.TrimSpace(a.publicBasePath), "/") + if base == "" || base == "/" { + return handler + } + // Reverse proxies normally strip PLUGIN_PUBLIC_BASE_PATH. Stripping the + // exact configured prefix here as well keeps direct local previews and + // mounted production deployments behaviorally identical without exposing a + // generic path proxy. + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.Path == base || strings.HasPrefix(r.URL.Path, base+"/") { + clone := r.Clone(r.Context()) + clone.URL.Path = strings.TrimPrefix(r.URL.Path, base) + if clone.URL.Path == "" { + clone.URL.Path = "/" + } + clone.URL.RawPath = "" + handler.ServeHTTP(w, clone) + return + } + handler.ServeHTTP(w, r) + }) } func requestIDMiddleware(next http.Handler) http.Handler { @@ -2806,7 +3571,10 @@ func (a *app) securityHeaders(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("X-Content-Type-Options", "nosniff") w.Header().Set("Referrer-Policy", "no-referrer") - w.Header().Set("Content-Security-Policy", "default-src 'self'; script-src 'self'; style-src 'self'; connect-src 'self'; img-src 'self' data:; frame-ancestors "+strings.Join(a.frameAncestors, " ")+"; base-uri 'self'; form-action 'self'") + // CAPTCHA providers are loaded only when Core reports them enabled. Keep + // the allowlist provider-specific; Core JWTs and application data remain + // same-origin and are never sent to these origins by the browser. + w.Header().Set("Content-Security-Policy", "default-src 'self'; worker-src 'self' blob:; script-src 'self' https://challenges.cloudflare.com https://o.alicdn.com https://*.alicdn.com https://turing.captcha.qcloud.com https://turing.captcha.gtimg.com https://ca.turing.captcha.qcloud.com https://global.turing.captcha.gtimg.com https://cloudcache.tencentcs.com; style-src 'self' 'unsafe-inline' https://*.captcha.gtimg.com https://o.alicdn.com https://*.alicdn.com; img-src 'self' data: blob: https:; font-src 'self' data: https://fonts.gstatic.com; connect-src 'self' https://challenges.cloudflare.com https://turing.captcha.qcloud.com https://turing.captcha.gtimg.com https://ca.turing.captcha.qcloud.com https://global.turing.captcha.gtimg.com https://cloudcache.tencentcs.com https://rce.tencentrio.com https://o.alicdn.com https://*.alicdn.com https://*.aliyuncs.com; frame-src 'self' https://challenges.cloudflare.com https://turing.captcha.qcloud.com https://turing.captcha.gtimg.com https://ca.turing.captcha.qcloud.com https://global.turing.captcha.gtimg.com https://cloudcache.tencentcs.com https://o.alicdn.com https://*.alicdn.com https://*.aliyuncs.com; frame-ancestors "+strings.Join(a.frameAncestors, " ")+"; base-uri 'self'; form-action 'self'") next.ServeHTTP(w, r) }) } @@ -2902,6 +3670,18 @@ func main() { environment = "production" } a.publicBasePath = strings.TrimRight(strings.TrimSpace(os.Getenv("PLUGIN_PUBLIC_BASE_PATH")), "/") + a.publicURL = strings.TrimRight(strings.TrimSpace(os.Getenv("PLUGIN_PUBLIC_URL")), "/") + if a.publicURL != "" { + if publicErr := validatePublicURL(a.publicURL); publicErr != nil { + slog.Error("invalid Plugin Admin public URL", "error", publicErr) + os.Exit(2) + } + } + a.trustProxy = strings.EqualFold(strings.TrimSpace(os.Getenv("PLUGIN_TRUST_PROXY")), "true") + if a.trustProxy && isLoopbackHost(host) == false { + slog.Error("PLUGIN_TRUST_PROXY requires a loopback plugin listener") + os.Exit(2) + } a.cookiePath = os.Getenv("PLUGIN_COOKIE_PATH") if a.cookiePath == "" { a.cookiePath = "/" @@ -2944,6 +3724,15 @@ func main() { slog.Error("invalid marketplace configuration", "error", marketplaceErr) os.Exit(2) } + marketplace.indexSHA256 = strings.ToLower(strings.TrimSpace(os.Getenv("PLUGIN_MARKETPLACE_INDEX_SHA256"))) + if marketplace.indexSHA256 != "" && !marketplaceSHA256Pattern.MatchString(marketplace.indexSHA256) { + slog.Error("invalid marketplace index sha256 pin") + os.Exit(2) + } + if marketplace.remoteURL != nil && !allowLoopbackMarketplace && marketplace.indexSHA256 == "" { + slog.Error("PLUGIN_MARKETPLACE_INDEX_SHA256 is required for remote production marketplace indexes") + os.Exit(2) + } a.marketplaceConfig = marketplace if err := a.recoverPlugins(); err != nil { slog.Error("recover plugins", "error", err) diff --git a/plugins/plugin-admin/main_test.go b/plugins/plugin-admin/main_test.go index 8061825..62146c0 100644 --- a/plugins/plugin-admin/main_test.go +++ b/plugins/plugin-admin/main_test.go @@ -195,6 +195,123 @@ func TestAdminLoginDoesNotExposeCoreTokens(t *testing.T) { } } +func TestCaptchaConfigReturnsOnlyPublicFields(t *testing.T) { + core, coreServer := testCore(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/api/v1/settings/public" { + t.Fatalf("unexpected Core path: %s", r.URL.Path) + } + w.Header().Set("Content-Type", "application/json") + _, _ = io.WriteString(w, `{"code":0,"data":{"turnstile_enabled":true,"turnstile_site_key":"site-key","tencent_captcha_enabled":false,"aliyun_captcha_enabled":false,"turnstile_secret_key":"must-not-leak","admin_password":"must-not-leak"}}`) + })) + defer coreServer.Close() + reg, err := openRegistry(t.TempDir()) + if err != nil { + t.Fatal(err) + } + a := newApp(core, reg, t.TempDir()) + recorder := httptest.NewRecorder() + a.routes().ServeHTTP(recorder, httptest.NewRequest(http.MethodGet, "/api/captcha-config", nil)) + if recorder.Code != http.StatusOK { + t.Fatalf("status=%d body=%s", recorder.Code, recorder.Body.String()) + } + body := recorder.Body.String() + if !strings.Contains(body, `"turnstile_enabled":true`) || !strings.Contains(body, `"turnstile_site_key":"site-key"`) { + t.Fatalf("public captcha fields missing: %s", body) + } + if strings.Contains(body, "must-not-leak") || strings.Contains(body, "secret_key") || strings.Contains(body, "admin_password") { + t.Fatalf("sensitive Core settings leaked: %s", body) + } +} + +func TestLoginForwardsCaptchaProof(t *testing.T) { + var received struct { + TurnstileToken string `json:"turnstile_token"` + } + core, coreServer := testCore(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + switch r.URL.Path { + case "/api/v1/auth/login": + if err := json.NewDecoder(r.Body).Decode(&received); err != nil { + t.Fatalf("decode login body: %v", err) + } + _, _ = io.WriteString(w, `{"code":0,"data":{"access_token":"A","refresh_token":"R"}}`) + case "/api/v1/auth/me": + _, _ = io.WriteString(w, `{"code":0,"data":{"id":1,"role":"admin"}}`) + default: + _, _ = io.WriteString(w, `{"code":0,"data":{}}`) + } + })) + defer coreServer.Close() + reg, _ := openRegistry(t.TempDir()) + a := newApp(core, reg, t.TempDir()) + req := httptest.NewRequest(http.MethodPost, "/login", strings.NewReader(`{"email":"admin@example.com","password":"password","turnstile_token":"proof-token"}`)) + rec := httptest.NewRecorder() + a.login(rec, req) + if rec.Code != http.StatusOK || received.TurnstileToken != "proof-token" { + t.Fatalf("proof was not forwarded: status=%d body=%s received=%#v", rec.Code, rec.Body.String(), received) + } +} + +func TestLoginRateLimitBoundsCoreAttempts(t *testing.T) { + var loginCalls int + core, coreServer := testCore(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + switch r.URL.Path { + case "/api/v1/auth/login": + loginCalls++ + _, _ = io.WriteString(w, `{"code":0,"data":{"access_token":"A","refresh_token":"R"}}`) + case "/api/v1/auth/me": + _, _ = io.WriteString(w, `{"code":0,"data":{"id":1,"role":"admin"}}`) + default: + _, _ = io.WriteString(w, `{"code":0,"data":{}}`) + } + })) + defer coreServer.Close() + reg, err := openRegistry(t.TempDir()) + if err != nil { + t.Fatal(err) + } + a := newApp(core, reg, t.TempDir()) + for attempt := 0; attempt < loginLimit+1; attempt++ { + req := httptest.NewRequest(http.MethodPost, "/login", strings.NewReader(`{"email":"admin@example.com","password":"password"}`)) + rec := httptest.NewRecorder() + a.login(rec, req) + if attempt < loginLimit && rec.Code != http.StatusOK { + t.Fatalf("attempt %d status=%d body=%s", attempt+1, rec.Code, rec.Body.String()) + } + if attempt == loginLimit && rec.Code != http.StatusTooManyRequests { + t.Fatalf("limit status=%d body=%s", rec.Code, rec.Body.String()) + } + } + if loginCalls != loginLimit { + t.Fatalf("Core received %d login calls, want %d", loginCalls, loginLimit) + } +} + +func TestPendingLoginCapAndExpiry(t *testing.T) { + now := time.Now() + a := newApp(nil, nil, t.TempDir()) + a.clock = func() time.Time { return now } + for i := 0; i < maxPendingLogins; i++ { + if _, ok := a.addPendingLogin(pendingLogin{TempToken: "TEMP", Expires: now.Add(time.Minute)}); !ok { + t.Fatalf("pending challenge %d was unexpectedly rejected", i) + } + } + if _, ok := a.addPendingLogin(pendingLogin{TempToken: "OVERFLOW", Expires: now.Add(time.Minute)}); ok { + t.Fatal("pending challenge cap was not enforced") + } + if got := len(a.pending); got != maxPendingLogins { + t.Fatalf("pending map size=%d want %d", got, maxPendingLogins) + } + a.clock = func() time.Time { return now.Add(pendingLoginTTL + time.Second) } + if _, ok := a.addPendingLogin(pendingLogin{TempToken: "AFTER-EXPIRY", Expires: now.Add(2 * pendingLoginTTL)}); !ok { + t.Fatal("expired pending challenges were not evicted") + } + if got := len(a.pending); got != 1 { + t.Fatalf("pending map size after expiry=%d want 1", got) + } +} + func TestDecodeJSONRejectsTrailingValuesAndOversizeBodies(t *testing.T) { var input struct { Name string `json:"name"` @@ -420,6 +537,43 @@ func TestRemoteMarketplaceRequiresAllowlistAndExpiry(t *testing.T) { } } +func TestMarketplaceVersionComparisonRejectsDowngrades(t *testing.T) { + for _, test := range []struct { + left, right string + want int + }{ + {"1.2.0", "1.1.9", 1}, + {"1.0.0", "1.0.0", 0}, + {"1.0.0-beta.2", "1.0.0-beta.10", -1}, + {"1.0.0", "1.0.0-rc.1", 1}, + } { + if got := compareMarketplaceVersions(test.left, test.right); got != test.want { + t.Fatalf("compare(%q,%q)=%d want %d", test.left, test.right, got, test.want) + } + } +} + +func TestMarketplaceIndexDigestPin(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "index.json") + raw := []byte(`{"schema_version":1,"entries":[]}`) + if err := os.WriteFile(path, raw, 0o600); err != nil { + t.Fatal(err) + } + service, err := newMarketplaceService(path, "", true) + if err != nil { + t.Fatal(err) + } + service.indexSHA256 = sha256Hex(raw) + if _, _, err := service.loadIndex(context.Background()); err != nil { + t.Fatalf("matching digest rejected: %v", err) + } + service.indexSHA256 = strings.Repeat("0", 64) + if _, _, err := service.loadIndex(context.Background()); err == nil { + t.Fatal("mismatched digest was accepted") + } +} + func TestProductionPackageRequiresTrustedSignature(t *testing.T) { t.Setenv("CORE_VERSION", "0.1.183") reg, _ := openRegistry(t.TempDir()) @@ -587,6 +741,7 @@ func TestIdempotencyKeyReplaysSameBodyAndRetainsFailedOperation(t *testing.T) { func TestRefreshRevalidatesAdminRole(t *testing.T) { var meCalls int + var logoutTokens []string core, coreServer := testCore(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") switch r.URL.Path { @@ -601,6 +756,9 @@ func TestRefreshRevalidatesAdminRole(t *testing.T) { case "/api/v1/auth/refresh": _, _ = io.WriteString(w, `{"code":0,"data":{"access_token":"NEW","refresh_token":"NEW-R"}}`) case "/api/v1/auth/logout": + var body map[string]string + _ = json.NewDecoder(r.Body).Decode(&body) + logoutTokens = append(logoutTokens, body["refresh_token"]) _, _ = io.WriteString(w, `{"code":0,"data":{}}`) default: _, _ = io.WriteString(w, `{"code":0,"data":{}}`) @@ -619,6 +777,16 @@ func TestRefreshRevalidatesAdminRole(t *testing.T) { if rec.Code != http.StatusForbidden { t.Fatalf("expected demoted user rejection: status=%d body=%s", rec.Code, rec.Body.String()) } + foundRotated := false + for _, value := range logoutTokens { + if value == "NEW-R" { + foundRotated = true + break + } + } + if !foundRotated { + t.Fatalf("rotated refresh token was not revoked: %#v", logoutTokens) + } } func TestHealthProbeRejectsRedirectAndRequiresReadiness(t *testing.T) { @@ -647,9 +815,209 @@ func TestRoutesSetSecurityHeadersAndProtectAPI(t *testing.T) { if err != nil { t.Fatal(err) } - if response.StatusCode != http.StatusUnauthorized || response.Header.Get("Content-Security-Policy") == "" || response.Header.Get("X-Content-Type-Options") != "nosniff" { + csp := response.Header.Get("Content-Security-Policy") + if response.StatusCode != http.StatusUnauthorized || csp == "" || response.Header.Get("X-Content-Type-Options") != "nosniff" { t.Fatalf("status=%d headers=%v", response.StatusCode, response.Header) } + for _, origin := range []string{"https://challenges.cloudflare.com", "https://turing.captcha.qcloud.com", "https://o.alicdn.com"} { + if !strings.Contains(csp, origin) { + t.Fatalf("captcha origin %q missing from CSP: %s", origin, csp) + } + } +} + +func staticTestApp(t *testing.T) *app { + t.Helper() + reg, err := openRegistry(t.TempDir()) + if err != nil { + t.Fatal(err) + } + return newApp(nil, reg, t.TempDir()) +} + +func TestStaticServesAssetsWithMIME(t *testing.T) { + a := staticTestApp(t) + for path, wantType := range map[string]string{"/admin/app.js": "text/javascript", "/admin/styles.css": "text/css"} { + recorder := httptest.NewRecorder() + a.static(recorder, httptest.NewRequest(http.MethodGet, path, nil)) + if recorder.Code != http.StatusOK || !strings.HasPrefix(recorder.Header().Get("Content-Type"), wantType) { + t.Fatalf("path=%s status=%d content-type=%q", path, recorder.Code, recorder.Header().Get("Content-Type")) + } + } +} + +func TestStaticRejectsPathTraversal(t *testing.T) { + a := staticTestApp(t) + recorder := httptest.NewRecorder() + a.static(recorder, httptest.NewRequest(http.MethodGet, "/admin/%2e%2e/main.go", nil)) + if recorder.Code != http.StatusNotFound || strings.Contains(recorder.Body.String(), "package main") { + t.Fatalf("expected traversal to be rejected: status=%d body=%q", recorder.Code, recorder.Body.String()) + } +} + +func TestStaticReplacesHTMLBasePlaceholderAndSupportsMountedSPA(t *testing.T) { + a := staticTestApp(t) + a.publicBasePath = "/console" + for _, path := range []string{"/console/admin/", "/console/admin/plugins/example.plugin/config"} { + recorder := httptest.NewRecorder() + a.static(recorder, httptest.NewRequest(http.MethodGet, path, nil)) + if recorder.Code != http.StatusOK || !strings.HasPrefix(recorder.Header().Get("Content-Type"), "text/html") { + t.Fatalf("path=%s status=%d content-type=%q", path, recorder.Code, recorder.Header().Get("Content-Type")) + } + body := recorder.Body.String() + if strings.Contains(body, "__PLUGIN_BASE_PATH_JSON__") || !strings.Contains(body, `meta name="plugin-base-path" content="/console"`) || strings.Contains(body, "window.__PLUGIN_BASE_PATH__ =") { + t.Fatalf("path=%s base placeholder was not replaced: %q", path, body) + } + } +} + +func TestSubscriptionProxySharesControlPlaneSessionAndRedactsCoreSecrets(t *testing.T) { + var gotAuthorization, gotPath string + core, coreServer := testCore(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + switch r.URL.Path { + case "/api/v1/auth/me": + _, _ = io.WriteString(w, `{"code":0,"data":{"id":1,"role":"admin","email":"admin@example.com"}}`) + case "/api/v1/admin/subscriptions": + gotAuthorization = r.Header.Get("Authorization") + gotPath = r.URL.RequestURI() + _, _ = io.WriteString(w, `{"code":0,"data":{"access_token":"CORE_LEAK","items":[{"id":1,"refresh_token":"REFRESH_LEAK","status":"active"}]}}`) + default: + _, _ = io.WriteString(w, `{"code":0,"data":{}}`) + } + })) + defer coreServer.Close() + reg, err := openRegistry(t.TempDir()) + if err != nil { + t.Fatal(err) + } + a := newApp(core, reg, t.TempDir()) + reg.data.Plugins[subscriptionPluginID] = pluginRecord{Manifest: manifest.Manifest{PluginID: subscriptionPluginID, Name: "Subscription", Version: "0.2.0"}, State: "healthy", ActiveRevision: "rev-1"} + cookie := adminSession(a) + req := httptest.NewRequest(http.MethodGet, "/api/subscription/subscriptions?page=1&evil=ignored", nil) + req.AddCookie(cookie) + rec := httptest.NewRecorder() + a.subscriptionProxy(rec, req) + if rec.Code != http.StatusBadRequest { + t.Fatalf("expected unknown query to be rejected, status=%d body=%s", rec.Code, rec.Body.String()) + } + req = httptest.NewRequest(http.MethodGet, "/api/subscription/subscriptions?page=1&page_size=20", nil) + req.AddCookie(cookie) + rec = httptest.NewRecorder() + a.subscriptionProxy(rec, req) + if rec.Code != http.StatusOK || gotAuthorization != "Bearer ACCESS" || gotPath != "/api/v1/admin/subscriptions?page=1&page_size=20" { + t.Fatalf("status=%d auth=%q path=%q body=%s", rec.Code, gotAuthorization, gotPath, rec.Body.String()) + } + if strings.Contains(rec.Body.String(), "CORE_LEAK") || strings.Contains(rec.Body.String(), "REFRESH_LEAK") { + t.Fatalf("Core secret leaked in module response: %s", rec.Body.String()) + } +} + +func TestSubscriptionStatusDeclaresSharedSession(t *testing.T) { + core, coreServer := testCore(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + _, _ = io.WriteString(w, `{"code":0,"data":{"id":1,"role":"admin"}}`) + })) + defer coreServer.Close() + reg, err := openRegistry(t.TempDir()) + if err != nil { + t.Fatal(err) + } + a := newApp(core, reg, t.TempDir()) + req := httptest.NewRequest(http.MethodGet, "/api/subscription/status", nil) + req.AddCookie(adminSession(a)) + rec := httptest.NewRecorder() + a.subscriptionStatus(rec, req) + if rec.Code != http.StatusOK || !strings.Contains(rec.Body.String(), `"session_mode":"shared"`) || strings.Contains(rec.Body.String(), "access_token") { + t.Fatalf("unexpected status response: %d %s", rec.Code, rec.Body.String()) + } +} + +func TestSubscriptionProxyRequiresHealthyModule(t *testing.T) { + var coreReads int + core, coreServer := testCore(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + if r.URL.Path == "/api/v1/auth/me" { + _, _ = io.WriteString(w, `{"code":0,"data":{"id":1,"role":"admin"}}`) + return + } + if r.URL.Path == "/api/v1/admin/subscriptions" { + coreReads++ + } + _, _ = io.WriteString(w, `{"code":0,"data":{"items":[]}}`) + })) + defer coreServer.Close() + reg, _ := openRegistry(t.TempDir()) + a := newApp(core, reg, t.TempDir()) + cookie := adminSession(a) + request := func(endpoint string) *httptest.ResponseRecorder { + req := httptest.NewRequest(http.MethodGet, endpoint, nil) + req.AddCookie(cookie) + rec := httptest.NewRecorder() + if endpoint == "/api/subscription/audit" { + a.subscriptionAudit(rec, req) + } else { + a.subscriptionProxy(rec, req) + } + return rec + } + endpoints := []string{ + "/api/subscription/plans", + "/api/subscription/subscriptions", + "/api/subscription/subscriptions/1", + "/api/subscription/users/1", + "/api/subscription/users/1/subscriptions", + "/api/subscription/audit", + } + for _, endpoint := range endpoints { + if rec := request(endpoint); rec.Code != http.StatusNotFound || coreReads != 0 { + t.Fatalf("uninstalled module endpoint=%s leaked data: status=%d reads=%d body=%s", endpoint, rec.Code, coreReads, rec.Body.String()) + } + } + reg.data.Plugins[subscriptionPluginID] = pluginRecord{Manifest: manifest.Manifest{PluginID: subscriptionPluginID, Version: "0.2.0"}, State: "disabled"} + for _, endpoint := range endpoints { + if rec := request(endpoint); rec.Code != http.StatusNotFound || coreReads != 0 { + t.Fatalf("stopped module endpoint=%s leaked data: status=%d reads=%d", endpoint, rec.Code, coreReads) + } + } + reg.data.Plugins[subscriptionPluginID] = pluginRecord{Manifest: manifest.Manifest{PluginID: subscriptionPluginID, Version: "0.2.0"}, State: "healthy"} + if rec := request("/api/subscription/subscriptions"); rec.Code != http.StatusOK || coreReads != 1 { + t.Fatalf("healthy module was not proxied: status=%d reads=%d body=%s", rec.Code, coreReads, rec.Body.String()) + } +} + +func TestSubscriptionMenuAlwaysTargetsUnifiedShell(t *testing.T) { + var applied []byte + core, coreServer := testCore(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + switch r.URL.Path { + case "/api/v1/auth/me": + _, _ = io.WriteString(w, `{"code":0,"data":{"id":1,"role":"admin"}}`) + case "/api/v1/admin/settings": + if r.Method == http.MethodPut { + applied, _ = io.ReadAll(r.Body) + } + _, _ = io.WriteString(w, `{"code":0,"data":{"custom_menu_items":[]}}`) + default: + _, _ = io.WriteString(w, `{"code":0,"data":{}}`) + } + })) + defer coreServer.Close() + reg, _ := openRegistry(t.TempDir()) + a := newApp(core, reg, t.TempDir()) + a.publicURL = "https://console.example.test/extensions/qiu.plugin-admin" + reg.data.Plugins[subscriptionPluginID] = pluginRecord{Manifest: manifest.Manifest{PluginID: subscriptionPluginID, Name: "Subscription", Version: "0.2.0", UI: manifest.UI{Menu: manifest.Menu{ID: subscriptionPluginID, Label: "订阅管理", Visibility: "admin", SortOrder: 200, URL: "https://wrong.example.test/login"}}}, State: "healthy", ActiveRevision: "rev-1"} + cookie := adminSession(a) + req := httptest.NewRequest(http.MethodPost, "/api/plugins/"+subscriptionPluginID+"/menu-apply", nil) + req.AddCookie(cookie) + req.Header.Set("X-CSRF-Token", "CSRF") + req.Header.Set("Idempotency-Key", "subscription-menu-unified") + rec := httptest.NewRecorder() + a.menu(rec, req, true) + want := "https://console.example.test/extensions/qiu.plugin-admin/admin/#/modules/subscription/overview" + if rec.Code != http.StatusAccepted || !strings.Contains(string(applied), want) || strings.Contains(string(applied), "wrong.example.test") { + t.Fatalf("subscription menu was not normalized: status=%d body=%s applied=%s", rec.Code, rec.Body.String(), applied) + } } func TestMenuPreviewAndApplyPreserveOtherMenuItems(t *testing.T) { @@ -682,7 +1050,7 @@ func TestMenuPreviewAndApplyPreserveOtherMenuItems(t *testing.T) { preview.Header.Set("Idempotency-Key", "menu-preview-1") previewRec := httptest.NewRecorder() a.menu(previewRec, preview, false) - if previewRec.Code != http.StatusOK || !strings.Contains(previewRec.Body.String(), "core.home") || !strings.Contains(previewRec.Body.String(), "example.plugin") { + if previewRec.Code != http.StatusOK || !strings.Contains(previewRec.Body.String(), "core.home") || !strings.Contains(previewRec.Body.String(), "example-plugin") { t.Fatalf("unexpected menu preview: %d %s", previewRec.Code, previewRec.Body.String()) } global := httptest.NewRequest(http.MethodPost, "/api/menu-items/preview", strings.NewReader(`{"plugin_id":"example.plugin"}`)) @@ -691,7 +1059,7 @@ func TestMenuPreviewAndApplyPreserveOtherMenuItems(t *testing.T) { global.Header.Set("Idempotency-Key", "global-menu-preview-1") globalRec := httptest.NewRecorder() a.menuGlobal(globalRec, global, false) - if globalRec.Code != http.StatusOK || !strings.Contains(globalRec.Body.String(), "example.plugin") { + if globalRec.Code != http.StatusOK || !strings.Contains(globalRec.Body.String(), "example-plugin") { t.Fatalf("unexpected global menu preview: %d %s", globalRec.Code, globalRec.Body.String()) } apply := httptest.NewRequest(http.MethodPost, "/api/plugins/example.plugin/menu-apply", nil) @@ -700,11 +1068,28 @@ func TestMenuPreviewAndApplyPreserveOtherMenuItems(t *testing.T) { apply.Header.Set("Idempotency-Key", "menu-apply-1") applyRec := httptest.NewRecorder() a.menu(applyRec, apply, true) - if applyRec.Code != http.StatusAccepted || len(applied) == 0 || !strings.Contains(string(applied), "core.home") || !strings.Contains(string(applied), "example.plugin") { + if applyRec.Code != http.StatusAccepted || len(applied) == 0 || !strings.Contains(string(applied), "core.home") || !strings.Contains(string(applied), "example-plugin") || strings.Contains(string(applied), "example.plugin") { t.Fatalf("unexpected menu apply: %d body=%s request=%s", applyRec.Code, applyRec.Body.String(), applied) } } +func TestCoreMenuIDNormalizesPluginNamespaceAndBoundsLength(t *testing.T) { + if got, err := coreMenuID("qiu.subscription-admin"); err != nil || got != "qiu-subscription-admin" { + t.Fatalf("namespace ID normalization: got=%q err=%v", got, err) + } + if got, err := coreMenuID("already_valid"); err != nil || got != "already_valid" { + t.Fatalf("valid ID changed: got=%q err=%v", got, err) + } + long := strings.Repeat("plugin.", 12) + got, err := coreMenuID(long) + if err != nil || len(got) > 32 || !coreMenuIDPattern.MatchString(got) { + t.Fatalf("long ID normalization: got=%q len=%d err=%v", got, len(got), err) + } + if _, err := coreMenuID("..."); err == nil { + t.Fatal("expected an all-separator ID to be rejected") + } +} + func TestFailedUpgradeKeepsActiveRevision(t *testing.T) { t.Setenv("CORE_VERSION", "0.1.183") pluginServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -790,6 +1175,51 @@ func TestFailedUpgradeKeepsActiveRevision(t *testing.T) { } } +func TestRollbackHonorsExplicitRevisionSelection(t *testing.T) { + t.Setenv("CORE_VERSION", "0.1.183") + pluginServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.Path == "/healthz" || r.URL.Path == "/readyz" { + w.Header().Set("Content-Type", "application/json") + _, _ = io.WriteString(w, `{"status":"ok","version":"0.8.0"}`) + return + } + http.NotFound(w, r) + })) + defer pluginServer.Close() + core, coreServer := testCore(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + _, _ = io.WriteString(w, `{"code":0,"data":{"id":1,"role":"admin"}}`) + })) + defer coreServer.Close() + reg, _ := openRegistry(t.TempDir()) + a := newApp(core, reg, t.TempDir()) + base := manifest.Manifest{PluginID: "example.plugin", Name: "Example", Version: "1.0.0", CoreAPIBaseline: "sub2api-0.1.183", TestedCoreVersions: []string{"0.1.183"}, Backend: manifest.Backend{HealthPath: "/healthz", ReadinessPath: "/readyz"}} + oldManifest, middleManifest := base, base + oldManifest.Version, middleManifest.Version = "0.8.0", "0.9.0" + p := pluginRecord{Manifest: base, State: "disabled", ActiveRevision: "rev-new", Endpoint: pluginServer.URL, Revisions: []revision{ + {ID: "rev-old", Version: "0.8.0", Manifest: oldManifest}, + {ID: "rev-middle", Version: "0.9.0", Manifest: middleManifest}, + {ID: "rev-new", Version: "1.0.0", Manifest: base}, + }} + reg.data.Plugins[p.Manifest.PluginID] = p + cookie := adminSession(a) + req := httptest.NewRequest(http.MethodPost, "/api/plugins/example.plugin/rollback", strings.NewReader(`{"revision":"rev-old"}`)) + req.AddCookie(cookie) + req.Header.Set("X-CSRF-Token", "CSRF") + req.Header.Set("Idempotency-Key", "rollback-explicit-old") + rec := httptest.NewRecorder() + a.rollback(rec, req) + if rec.Code != http.StatusAccepted { + t.Fatalf("rollback status=%d body=%s", rec.Code, rec.Body.String()) + } + reg.mu.Lock() + got := reg.data.Plugins[p.Manifest.PluginID] + reg.mu.Unlock() + if got.ActiveRevision != "rev-old" || got.Manifest.Version != "0.8.0" { + t.Fatalf("explicit rollback selected wrong revision: active=%q manifest=%q", got.ActiveRevision, got.Manifest.Version) + } +} + func TestLifecycleEnableDisableUninstall(t *testing.T) { t.Setenv("CORE_VERSION", "0.1.183") var applied []byte @@ -1024,6 +1454,9 @@ func TestRecoverCommandPluginAfterRestart(t *testing.T) { t.Skip("python3 is unavailable") } source = strings.Replace(source, "#!/usr/bin/env python3", "#!"+pythonPath, 1) + if err := os.WriteFile(command, []byte(source), 0o700); err != nil { + t.Fatal(err) + } reg, _ := openRegistry(filepath.Join(root, "registry")) pluginManifest := manifest.Manifest{PluginID: "command.plugin", Name: "Command", Version: "1.0.0", CoreAPIBaseline: "sub2api-0.1.183", TestedCoreVersions: []string{"0.1.183"}, Backend: manifest.Backend{HealthPath: "/healthz", ReadinessPath: "/readyz", Command: "service/run.py", ListenEnv: "PLUGIN_PORT"}} reg.data.Plugins[pluginManifest.PluginID] = pluginRecord{Manifest: pluginManifest, State: "healthy", ActiveRevision: "rev-1", Revisions: []revision{{ID: "rev-1", Version: "1.0.0", Path: pluginDir, Manifest: pluginManifest}}} diff --git a/plugins/plugin-admin/marketplace.go b/plugins/plugin-admin/marketplace.go index be0c8d7..41bd5be 100644 --- a/plugins/plugin-admin/marketplace.go +++ b/plugins/plugin-admin/marketplace.go @@ -16,6 +16,7 @@ import ( "path/filepath" "regexp" "sort" + "strconv" "strings" "time" ) @@ -31,6 +32,75 @@ var ( marketplaceSHA256Pattern = regexp.MustCompile(`^[a-f0-9]{64}$`) ) +// compareMarketplaceVersions implements the semver subset accepted by the +// manifest validator. It is used only for marketplace installs, where a +// catalog entry must never silently downgrade an already registered plugin. +func compareMarketplaceVersions(left, right string) int { + parse := func(value string) ([3]int, []string) { + value = strings.TrimPrefix(strings.TrimSpace(value), "v") + parts := strings.SplitN(value, "-", 2) + core := strings.Split(parts[0], ".") + var numbers [3]int + for i := 0; i < len(numbers) && i < len(core); i++ { + numbers[i], _ = strconv.Atoi(core[i]) + } + if len(parts) == 1 { + return numbers, nil + } + return numbers, strings.Split(parts[1], ".") + } + leftCore, leftPre := parse(left) + rightCore, rightPre := parse(right) + for i := range leftCore { + if leftCore[i] < rightCore[i] { + return -1 + } + if leftCore[i] > rightCore[i] { + return 1 + } + } + if len(leftPre) == 0 && len(rightPre) == 0 { + return 0 + } + if len(leftPre) == 0 { + return 1 + } + if len(rightPre) == 0 { + return -1 + } + for i := 0; i < len(leftPre) && i < len(rightPre); i++ { + l, r := leftPre[i], rightPre[i] + if l == r { + continue + } + ln, le := strconv.Atoi(l) + rn, re := strconv.Atoi(r) + if le == nil && re == nil { + if ln < rn { + return -1 + } + return 1 + } + if le == nil { + return -1 + } + if re == nil { + return 1 + } + if l < r { + return -1 + } + return 1 + } + if len(leftPre) < len(rightPre) { + return -1 + } + if len(leftPre) > len(rightPre) { + return 1 + } + return 0 +} + // marketplaceEntry is deliberately metadata-only. The browser never receives // the archive URL; downloads are performed by this server after catalog and // transport policy validation. @@ -63,6 +133,7 @@ type marketplaceService struct { remoteURL *url.URL allowedHosts map[string]struct{} allowLoopback bool + indexSHA256 string client *http.Client } @@ -238,6 +309,12 @@ func (m marketplaceService) loadIndex(ctx context.Context) (marketplaceIndex, ma return marketplaceIndex{}, origin, errors.New("marketplace index exceeds size limit") } } + if expected := strings.TrimSpace(m.indexSHA256); expected != "" { + sum := sha256.Sum256(raw) + if !strings.EqualFold(hex.EncodeToString(sum[:]), expected) { + return marketplaceIndex{}, origin, errors.New("marketplace index sha256 does not match the configured pin") + } + } var index marketplaceIndex decoder := json.NewDecoder(bytes.NewReader(raw)) decoder.DisallowUnknownFields() diff --git a/plugins/plugin-admin/test/browser-check.mjs b/plugins/plugin-admin/test/browser-check.mjs index dfdb704..737dab9 100644 --- a/plugins/plugin-admin/test/browser-check.mjs +++ b/plugins/plugin-admin/test/browser-check.mjs @@ -9,7 +9,9 @@ const email = process.env.PLUGIN_TEST_EMAIL || 'admin@example.com' const password = process.env.PLUGIN_TEST_PASSWORD || 'password' await fs.mkdir(outputDir, { recursive: true }) -const browser = await chromium.launch({ headless: true }) +const launchOptions = { headless: true } +if (process.env.PLAYWRIGHT_EXECUTABLE_PATH) launchOptions.executablePath = process.env.PLAYWRIGHT_EXECUTABLE_PATH +const browser = await chromium.launch(launchOptions) try { for (const width of [425, 900, 1440]) { const page = await browser.newPage({ viewport: { width, height: 900 }, deviceScaleFactor: 1 }) @@ -21,15 +23,72 @@ try { if (/access_token|refresh_token|admin[_-]?api[_-]?key|password|client_secret/i.test(body)) responseLeaks.push(response.url()) } catch (_) {} }) + if (process.env.PLUGIN_EXPECT_CAPTCHA === 'turnstile') { + // The fixture uses a deterministic SDK shim; production pages load the + // provider SDK from the CSP allowlist. This keeps the browser contract + // test network-independent while exercising the proof handoff. + await page.addInitScript(() => { + window.turnstile = { + render(container, options) { + const marker = document.createElement('span') + marker.dataset.testid = 'turnstile-fixture' + marker.textContent = 'fixture captcha' + container.appendChild(marker) + queueMicrotask(() => options.callback('MOCK-TURNSTILE-TOKEN')) + return 'fixture-widget' + }, + reset() {}, + remove() {}, + } + }) + } await page.goto(entry, { waitUntil: 'networkidle' }) - await page.getByLabel('邮箱').fill(email) - await page.getByLabel('密码').fill(password) + await page.locator('input[autocomplete="username"]').fill(email) + await page.locator('input[autocomplete="current-password"]').fill(password) + if (process.env.PLUGIN_EXPECT_CAPTCHA === 'turnstile') { + await page.locator('[data-testid="turnstile-fixture"]').waitFor({ state: 'visible' }) + } await page.getByRole('button', { name: '登录' }).click() - await page.getByRole('heading', { name: '已登记插件' }).waitFor() - const overflow = await page.evaluate(() => document.documentElement.scrollWidth > window.innerWidth) - if (overflow) throw new Error(`horizontal overflow at ${width}px`) - const buttons = await page.locator('button, .file-button').evaluateAll((items) => items.filter((item) => item.getClientRects().length > 0 && getComputedStyle(item).visibility !== 'hidden').every((item) => item.getBoundingClientRect().height >= 28 && item.getBoundingClientRect().width >= 28)) - if (!buttons) throw new Error(`control collapsed at ${width}px`) + await page.getByRole('heading', { name: '概览' }).waitFor() + + const assertViewport = async (label) => { + const overflow = await page.evaluate(() => document.documentElement.scrollWidth > window.innerWidth) + if (overflow) throw new Error(`horizontal overflow at ${width}px (${label})`) + const controls = await page.locator('button, .file-button, input[type="file"]').evaluateAll((items) => items.filter((item) => !item.classList.contains('visually-hidden') && item.getClientRects().length > 0 && getComputedStyle(item).visibility !== 'hidden').every((item) => item.getBoundingClientRect().height >= 28 && item.getBoundingClientRect().width >= 28)) + if (!controls) throw new Error(`control collapsed at ${width}px (${label})`) + } + const visitView = async (view, heading) => { + await page.evaluate((hash) => { window.location.hash = hash }, `#/${view}`) + await page.getByRole('heading', { name: heading }).waitFor() + if (!page.url().includes(`#/${view}`)) throw new Error(`hash route missing for ${view}: ${page.url()}`) + await assertViewport(view) + } + await visitView('plugins', '已安装插件') + await visitView('marketplace', '插件市场') + await visitView('operations', '操作记录') + + // The optional subscription module is served by the same Shell. When the + // fixture has it enabled, verify the deep link remains inside the unified + // hash router instead of opening a second service/login surface. + if (process.env.PLUGIN_EXPECT_SUBSCRIPTION === 'true') { + await visitView('modules/subscription/overview', '订阅管理') + if (!page.url().includes('#/modules/subscription/overview')) throw new Error(`subscription route escaped unified shell: ${page.url()}`) + } + + // When the backend has installed plugins, exercise a detail route and its secondary tab. + await visitView('plugins', '已安装插件') + const detailTrigger = page.getByRole('button', { name: '查看详情' }).first() + if (await detailTrigger.count()) { + await detailTrigger.click() + await page.getByRole('heading', { name: '插件详情' }).waitFor().catch(() => {}) + const secondary = page.getByRole('tab', { name: '版本与升级' }) + if (await secondary.count()) await secondary.click() + await assertViewport('detail') + } + + await page.reload({ waitUntil: 'networkidle' }) + if (!page.url().includes('#')) throw new Error(`hash route lost after refresh: ${page.url()}`) + await assertViewport('refresh') await page.waitForTimeout(50) if (responseLeaks.length) throw new Error(`sensitive response field exposed at ${width}px: ${responseLeaks.join(', ')}`) await page.screenshot({ path: path.join(outputDir, `plugin-admin-${width}.png`), fullPage: true }) diff --git a/plugins/plugin-admin/ui-vue/index.html b/plugins/plugin-admin/ui-vue/index.html new file mode 100644 index 0000000..a6609eb --- /dev/null +++ b/plugins/plugin-admin/ui-vue/index.html @@ -0,0 +1,13 @@ + + + + + + + 插件管理控制面 + + +
+ + + diff --git a/plugins/plugin-admin/ui-vue/package-lock.json b/plugins/plugin-admin/ui-vue/package-lock.json new file mode 100644 index 0000000..8973dea --- /dev/null +++ b/plugins/plugin-admin/ui-vue/package-lock.json @@ -0,0 +1,1945 @@ +{ + "name": "@awaioi/plugin-admin-ui", + "version": "1.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@awaioi/plugin-admin-ui", + "version": "1.1.0", + "dependencies": { + "echarts": "^6.1.0", + "pinia": "^3.0.4", + "tdesign-icons-vue-next": "^0.4.4", + "tdesign-vue-next": "^1.20.2", + "vue": "^3.5.39", + "vue-router": "^5.1.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.7", + "typescript": "~6.0.3", + "vite": "^8.1.5", + "vue-tsc": "^3.3.6" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.1", + "license": "MIT" + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.139.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", + "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "devOptional": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", + "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", + "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", + "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", + "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", + "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", + "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", + "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", + "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", + "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", + "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", + "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", + "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", + "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.2.tgz", + "integrity": "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", + "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", + "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.24", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz", + "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/sortablejs": { + "version": "1.15.8", + "license": "MIT" + }, + "node_modules/@types/tinycolor2": { + "version": "1.4.6", + "license": "MIT" + }, + "node_modules/@types/validator": { + "version": "13.12.2", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.7.tgz", + "integrity": "sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", + "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.28" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", + "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz", + "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue-macros/common": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-3.1.2.tgz", + "integrity": "sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==", + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "^3.5.22", + "ast-kit": "^2.1.2", + "local-pkg": "^1.1.2", + "magic-string-ast": "^1.0.2", + "unplugin-utils": "^0.3.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/vue-macros" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.2.25" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.39.tgz", + "integrity": "sha512-16KBTEXAJCpDr0mwlw+AZyhu8iyC7R3S2vBwsI7QnWJU6X3WKc9VKeNEZpiMdZ569qWhz9574L3vV55qRL0Vtw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/shared": "3.5.39", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.39.tgz", + "integrity": "sha512-oQPigALqYbNxTNPvNgSOe+czwVExfbVF02lz8jP0S3AXJiu3jxYDygNUiqSep4ezzW8XgnubqH63My2A7JR/vg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.39", + "@vue/shared": "3.5.39" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.39.tgz", + "integrity": "sha512-d0ki86iOyN8LoZPBmk5SJWNwHP19CnDDCfuo//+2WJa2g5Ke0Jay983PIBIcSSzldC68I8DrD5GrHV3OSDfodg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/compiler-core": "3.5.39", + "@vue/compiler-dom": "3.5.39", + "@vue/compiler-ssr": "3.5.39", + "@vue/shared": "3.5.39", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.15", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.39.tgz", + "integrity": "sha512-Ce7/wvwMHai74bdszfXExdazFigYnlF9zgCmEQUcM1j0fOymlouZ7XilTYNo8oUjhlnjYOZbGrcYKuqjz89Ucw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.39", + "@vue/shared": "3.5.39" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz", + "integrity": "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.9", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz", + "integrity": "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==", + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/language-core": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.6.tgz", + "integrity": "sha512-LgBMZAy2sR3cQWknpyaxnI6yBkqDfLBPkbdhwRhQCvzfNJRQXPilgQIrdI/v4ytJ0sAq9bWhaPsjqBqneomJ3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "@vue/compiler-dom": "^3.5.0", + "@vue/shared": "^3.5.0", + "alien-signals": "^3.2.0", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "picomatch": "^4.0.4" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.39.tgz", + "integrity": "sha512-TpsuBJ9gGlZa5d23XcM2y8EXanz9dZeVDQBXRwzy46ItgvM+rWpzs+UVM0wcRLxGvcav0HE5jz2gNL53xlRAog==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.39" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.39.tgz", + "integrity": "sha512-9GLtNyRvPAUMbX+7ono0RC2j0guo2LXVi8LvcmAooImACUKm0oFf0jjwbX8/H0AE/t1nxhAkn8RSl9PMCzzxZw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.39", + "@vue/shared": "3.5.39" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.39.tgz", + "integrity": "sha512-7Y6aAGboKcXAZ3ECuUy7RrS5yy2r47dhTp2SKaJmYxjopImaVFaNa5Ne66NwGovsrxVAl5S5rwc7m22UG7Lmww==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.39", + "@vue/runtime-core": "3.5.39", + "@vue/shared": "3.5.39", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.39.tgz", + "integrity": "sha512-yZSakiAGw85rZfG7UM8akMnIF+FmeiNk47uvHf2nVBBSe+dIKUhZuZq9+XgJhbV3nS5Z4ALH23/MpXofW+mbcw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.39", + "@vue/shared": "3.5.39" + }, + "peerDependencies": { + "vue": "3.5.39" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.39.tgz", + "integrity": "sha512-l1rrBtBfTnmxvtsvdQDXltUUy8S1Y+ZaqdfUzmAnJkTd8Z8rv5v/ytW+TKiqEOWyHPoqtPlNFSs0lhRmYVSHVA==", + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/alien-signals": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.2.1.tgz", + "integrity": "sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/ast-kit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-2.2.0.tgz", + "integrity": "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-walker-scope": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.9.0.tgz", + "integrity": "sha512-IJdzo2vLiElBxKzwS36VsCue/62d6IdWjnPB2v3nuPKeWGynp6FF/CYoLa5i/3jXH/z97ZDdsXz6abpgM6w07A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@babel/types": "^7.29.0", + "ast-kit": "^2.2.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.21.tgz", + "integrity": "sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/echarts": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-6.1.0.tgz", + "integrity": "sha512-q0yaFPggC9FUdsWH4blavRWFmxdrIodbkoKNAjJudAI6CA9gNPxHtV2RcZNEepZVlk4yvBYkOkbk6HIVpIyHZA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "2.3.0", + "zrender": "6.1.0" + } + }, + "node_modules/echarts/node_modules/tslib": { + "version": "2.3.0", + "license": "0BSD" + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "devOptional": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/local-pkg": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.2.1.tgz", + "integrity": "sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magic-string-ast": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-1.0.3.tgz", + "integrity": "sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==", + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.19" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pinia": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.4.tgz", + "integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.7.7" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.5.0", + "vue": "^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/@vue/devtools-api": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.9.tgz", + "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.9" + } + }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/postcss": { + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/rfdc": { + "version": "1.4.1", + "license": "MIT" + }, + "node_modules/rolldown": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", + "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.139.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.1.5", + "@rolldown/binding-darwin-arm64": "1.1.5", + "@rolldown/binding-darwin-x64": "1.1.5", + "@rolldown/binding-freebsd-x64": "1.1.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", + "@rolldown/binding-linux-arm64-gnu": "1.1.5", + "@rolldown/binding-linux-arm64-musl": "1.1.5", + "@rolldown/binding-linux-ppc64-gnu": "1.1.5", + "@rolldown/binding-linux-s390x-gnu": "1.1.5", + "@rolldown/binding-linux-x64-gnu": "1.1.5", + "@rolldown/binding-linux-x64-musl": "1.1.5", + "@rolldown/binding-openharmony-arm64": "1.1.5", + "@rolldown/binding-wasm32-wasi": "1.1.5", + "@rolldown/binding-win32-arm64-msvc": "1.1.5", + "@rolldown/binding-win32-x64-msvc": "1.1.5" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT" + }, + "node_modules/sortablejs": { + "version": "1.15.6", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/superjson": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.6.tgz", + "integrity": "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==", + "license": "MIT", + "dependencies": { + "copy-anything": "^4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/superjson/node_modules/copy-anything": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-4.0.5.tgz", + "integrity": "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==", + "license": "MIT", + "dependencies": { + "is-what": "^5.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/superjson/node_modules/is-what": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-5.5.0.tgz", + "integrity": "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/tdesign-icons-vue-next": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/tdesign-icons-vue-next/-/tdesign-icons-vue-next-0.4.4.tgz", + "integrity": "sha512-UPKyR5pea840aeI5p/k8VLVgfyVzndSyE4t1yRBD8uYWiuV0p29jZbDn8hMnes9Tz5JPgywCGzbk4QJzt684NA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.16.5" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/tdesign-vue-next": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/tdesign-vue-next/-/tdesign-vue-next-1.20.2.tgz", + "integrity": "sha512-B0Z9VGB8NpFDuk5Sh39pME/Gddo+5Rb6rnmScSzKLkY+leT96tsygrjybkELVd30fGtD+shQSgs86Kd4Dz8mcw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.22.6", + "@popperjs/core": "^2.11.8", + "@types/lodash-es": "^4.17.12", + "@types/sortablejs": "^1.15.1", + "@types/tinycolor2": "^1.4.3", + "@types/validator": "^13.7.17", + "dayjs": "^1.11.10", + "lodash-es": "^4.18.1", + "mitt": "^3.0.1", + "sortablejs": "^1.15.0", + "tdesign-icons-vue-next": "~0.4.4", + "tinycolor2": "^1.6.0", + "validator": "^13.15.23" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "vue": ">=3.1.0" + } + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "license": "0BSD", + "optional": true + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "license": "MIT" + }, + "node_modules/unplugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.0.0.tgz", + "integrity": "sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/validator": { + "version": "13.15.26", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.26.tgz", + "integrity": "sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vite": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", + "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.17", + "rolldown": "~1.1.5", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.3.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.39", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.39.tgz", + "integrity": "sha512-xmZCYabFGcirU8r0fTuvl/LICc1OU620rnqepaJDL/a141ZigkG7AyaxQLdqJ02ZRYzWe6YPaDHeQx7MfknQfA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.39", + "@vue/compiler-sfc": "3.5.39", + "@vue/runtime-dom": "3.5.39", + "@vue/server-renderer": "3.5.39", + "@vue/shared": "3.5.39" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.1.0.tgz", + "integrity": "sha512-HAbiLzLEHQwxPgvsbOJDAwtavszEgLwri6XfyrsPECIFez8+59xc9LofWVdc/HEaSRT822lJ8H9Ns38VVond5g==", + "license": "MIT", + "dependencies": { + "@babel/generator": "^8.0.0-rc.4", + "@vue-macros/common": "^3.1.1", + "@vue/devtools-api": "^8.1.2", + "ast-walker-scope": "^0.9.0", + "chokidar": "^5.0.0", + "json5": "^2.2.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.2", + "muggle-string": "^0.4.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "scule": "^1.3.0", + "tinyglobby": "^0.2.16", + "unplugin": "^3.0.0", + "unplugin-utils": "^0.3.1", + "yaml": "^2.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@pinia/colada": ">=0.21.2", + "@vue/compiler-sfc": "^3.5.34", + "pinia": "^3.0.4", + "vite": "^7.0.0 || ^8.0.0", + "vue": "^3.5.34" + }, + "peerDependenciesMeta": { + "@pinia/colada": { + "optional": true + }, + "@vue/compiler-sfc": { + "optional": true + }, + "pinia": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/vue-router/node_modules/@babel/generator": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0-rc.4.tgz", + "integrity": "sha512-YZ+FuIgkj7KrIb2a2X1XiY0QYgDxAbVbYP64SjwJzOK3euCsUerzenh2oqdsmKuPSlhzmFOOklnxzHAzXagvpw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0-rc.4", + "@babel/types": "^8.0.0-rc.4", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", + "jsesc": "^3.0.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vue-router/node_modules/@babel/helper-string-parser": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0-rc.4.tgz", + "integrity": "sha512-dluR3v287dp6YPF57kyKKrHPKffUeuxH1zQcF1WD30TeFzWXhDiVi1U6PkqaDB0++H1PeCwRhmYl4DvoerlPIw==", + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vue-router/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.0-rc.4.tgz", + "integrity": "sha512-HTD3bskipk5MSm08twTW6832jzIXUhxMddy4NPPzIMuyMEsrs0ZgwAaMj5ubB5+6hMlUjDu17vNconEmwsmpYg==", + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vue-router/node_modules/@babel/parser": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0-rc.4.tgz", + "integrity": "sha512-0S/1yefMa15N4i2v3t8Fw9pgMHhf2gF6Lc1UEXI96Ls6FNAjqvHHZouZ2ZS/deqLhbMFtmfVeFac6iTsvFbLwA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.0-rc.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vue-router/node_modules/@babel/types": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0-rc.4.tgz", + "integrity": "sha512-bw30DV880P/VYtsjWWdoWmJpb9S2Vn1/PqayyccTELzRQ/HslIO7+BD9rNoZ4AAFOAjC1vrNeBCkAsyh6Ibfww==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0-rc.4", + "@babel/helper-validator-identifier": "^8.0.0-rc.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vue-router/node_modules/@vue/devtools-api": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-8.1.2.tgz", + "integrity": "sha512-vA0O112YqyDuNA1s7Yb2gCgToQ/OxOWiFDO5ThLCcDy0ldHnSd1dUTaSYhOldbqoNgumE4dxtGAoAaSUKUD1Zg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.1.2" + } + }, + "node_modules/vue-router/node_modules/@vue/devtools-kit": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.1.2.tgz", + "integrity": "sha512-f75/upc+GCyjXErpgPGz4582ujS0L/adAltGy+tqXMGUJpgAcfGr6CxnnhpZY8BHuMYt6KpbF8uaFrrQG66rGQ==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.1.2", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "perfect-debounce": "^2.0.0" + } + }, + "node_modules/vue-router/node_modules/@vue/devtools-shared": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.1.2.tgz", + "integrity": "sha512-X9RyVFYAdkBe4IUf5v48TxBF/6QPmF8CmWrDAjXzfUHrgQ/HGfTC1A6TqgXqZ03ye66l3AD51BAGD69IvKM9sw==", + "license": "MIT" + }, + "node_modules/vue-router/node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/vue-router/node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "license": "MIT" + }, + "node_modules/vue-router/node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/vue-tsc": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.6.tgz", + "integrity": "sha512-ERXGgbKSBGFUkavrJ1Iwj0ZVxKqB/5UOx65IXy7fPf2UsoI21n3ssQLwdvx8xyUGgJe9PvSZTM/FYzIdwUDPFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.28", + "@vue/language-core": "3.3.6" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT" + }, + "node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/zrender": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-6.1.0.tgz", + "integrity": "sha512-oEGMDB6pOP2S6OwRR4PdVv610zrjnA3Bh+JnSG12fYJlBKjtNAoEb5fSUoCOOINlH96I2fU38/A2UpRKs67xYQ==", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + }, + "node_modules/zrender/node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" + } + } +} diff --git a/plugins/plugin-admin/ui-vue/package.json b/plugins/plugin-admin/ui-vue/package.json new file mode 100644 index 0000000..e7110ca --- /dev/null +++ b/plugins/plugin-admin/ui-vue/package.json @@ -0,0 +1,28 @@ +{ + "name": "@awaioi/plugin-admin-ui", + "private": true, + "version": "1.1.0", + "type": "module", + "scripts": { + "dev": "vite --host 127.0.0.1 --port 3002", + "build": "vue-tsc --noEmit && vite build", + "typecheck": "vue-tsc --noEmit" + }, + "dependencies": { + "echarts": "^6.1.0", + "pinia": "^3.0.4", + "tdesign-icons-vue-next": "^0.4.4", + "tdesign-vue-next": "^1.20.2", + "vue": "^3.5.39", + "vue-router": "^5.1.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.7", + "typescript": "~6.0.3", + "vite": "^8.1.5", + "vue-tsc": "^3.3.6" + }, + "engines": { + "node": ">=22.12.0" + } +} diff --git a/plugins/plugin-admin/ui-vue/src/App.vue b/plugins/plugin-admin/ui-vue/src/App.vue new file mode 100644 index 0000000..63c6f6f --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/App.vue @@ -0,0 +1,27 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/src/components/AliyunCaptchaWidget.vue b/plugins/plugin-admin/ui-vue/src/components/AliyunCaptchaWidget.vue new file mode 100644 index 0000000..0f5583b --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/components/AliyunCaptchaWidget.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/plugins/plugin-admin/ui-vue/src/components/CaptchaChallenge.vue b/plugins/plugin-admin/ui-vue/src/components/CaptchaChallenge.vue new file mode 100644 index 0000000..c3ee6e9 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/components/CaptchaChallenge.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/plugins/plugin-admin/ui-vue/src/components/PageHeader.vue b/plugins/plugin-admin/ui-vue/src/components/PageHeader.vue new file mode 100644 index 0000000..ac2ab44 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/components/PageHeader.vue @@ -0,0 +1,6 @@ + + diff --git a/plugins/plugin-admin/ui-vue/src/components/TencentCaptchaGate.vue b/plugins/plugin-admin/ui-vue/src/components/TencentCaptchaGate.vue new file mode 100644 index 0000000..9c01fcb --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/components/TencentCaptchaGate.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/plugins/plugin-admin/ui-vue/src/components/TrendChart.vue b/plugins/plugin-admin/ui-vue/src/components/TrendChart.vue new file mode 100644 index 0000000..07a1b4e --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/components/TrendChart.vue @@ -0,0 +1,32 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/src/components/TurnstileWidget.vue b/plugins/plugin-admin/ui-vue/src/components/TurnstileWidget.vue new file mode 100644 index 0000000..1a34e5b --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/components/TurnstileWidget.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/plugins/plugin-admin/ui-vue/src/env.d.ts b/plugins/plugin-admin/ui-vue/src/env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/plugins/plugin-admin/ui-vue/src/layouts/Shell.vue b/plugins/plugin-admin/ui-vue/src/layouts/Shell.vue new file mode 100644 index 0000000..80aef1a --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/layouts/Shell.vue @@ -0,0 +1,94 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/src/main.ts b/plugins/plugin-admin/ui-vue/src/main.ts new file mode 100644 index 0000000..1bebc15 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/main.ts @@ -0,0 +1,13 @@ +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import TDesign from 'tdesign-vue-next' +import 'tdesign-vue-next/es/style/index.css' +import './styles.css' +import App from './App.vue' +import router from './router' + +const app = createApp(App) +app.use(TDesign) +app.use(createPinia()) +app.use(router) +app.mount('#app') diff --git a/plugins/plugin-admin/ui-vue/src/router.ts b/plugins/plugin-admin/ui-vue/src/router.ts new file mode 100644 index 0000000..884eb64 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/router.ts @@ -0,0 +1,43 @@ +import { createRouter, createWebHashHistory } from 'vue-router' +import Shell from './layouts/Shell.vue' +import Login from './views/Login.vue' +import Overview from './views/Overview.vue' +import Plugins from './views/Plugins.vue' +import PluginDetail from './views/PluginDetail.vue' +import Marketplace from './views/Marketplace.vue' +import Operations from './views/Operations.vue' +import Subscription from './views/Subscription.vue' +import { authState, loadSubscriptionState } from './services/api' + +const router = createRouter({ + history: createWebHashHistory(), + routes: [ + { path: '/login', component: Login, meta: { public: true } }, + { + path: '/', component: Shell, + children: [ + { path: '', redirect: '/overview' }, + { path: 'overview', component: Overview, meta: { title: '概览' } }, + { path: 'plugins', component: Plugins, meta: { title: '已安装插件' } }, + { path: 'plugins/:id/:tab?', component: PluginDetail, meta: { title: '插件详情' } }, + { path: 'marketplace', component: Marketplace, meta: { title: '插件市场' } }, + { path: 'operations', component: Operations, meta: { title: '操作记录' } }, + { path: 'modules/subscription/:tab?', component: Subscription, meta: { title: '订阅管理' } }, + ], + }, + { path: '/:pathMatch(.*)*', redirect: '/overview' }, + ], +}) + +router.beforeEach(async (to) => { + if (!authState.ready) return true + if (!authState.user && !to.meta.public) return '/login' + if (authState.user && to.path === '/login') return '/overview' + if (authState.user && to.path.startsWith('/modules/subscription')) { + const enabled = await loadSubscriptionState() + if (!enabled) return '/overview' + } + return true +}) + +export default router diff --git a/plugins/plugin-admin/ui-vue/src/services/api.ts b/plugins/plugin-admin/ui-vue/src/services/api.ts new file mode 100644 index 0000000..a6c93b5 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/services/api.ts @@ -0,0 +1,212 @@ +import { reactive } from 'vue' + +export interface User { + id?: string | number + email?: string + username?: string + role?: string + status?: string + [key: string]: unknown +} + +export interface CaptchaConfig { + enabled: boolean + provider: '' | 'turnstile' | 'tencent' | 'aliyun' | string + turnstile_enabled: boolean + turnstile_site_key: string + tencent_captcha_enabled: boolean + tencent_captcha_app_id: string + tencent_captcha_region: string + aliyun_captcha_enabled: boolean + aliyun_captcha_scene_id: string + aliyun_captcha_prefix: string + aliyun_captcha_region: string +} + +export const authState = reactive<{ + ready: boolean + user: User | null + csrf: string + pendingToken: string +}>({ ready: false, user: null, csrf: '', pendingToken: '' }) + +export const moduleState = reactive<{ + subscriptionEnabled: boolean + loaded: boolean + loading: boolean +}>({ subscriptionEnabled: false, loaded: false, loading: false }) + +const basePath = () => { + const meta = document.querySelector('meta[name="plugin-base-path"]') + return (meta?.getAttribute('content') || '').replace(/\/$/, '') +} + +export class ApiError extends Error { + status: number + constructor(message: string, status = 0) { + super(message) + this.name = 'ApiError' + this.status = status + } +} + +export async function request(path: string, options: RequestInit = {}): Promise { + const headers = new Headers(options.headers || {}) + headers.set('Accept', 'application/json') + const method = (options.method || 'GET').toUpperCase() + if (options.body && !(options.body instanceof FormData)) headers.set('Content-Type', 'application/json') + if (authState.csrf && method !== 'GET') headers.set('X-CSRF-Token', authState.csrf) + const response = await fetch(`${basePath()}${path}`, { ...options, method, headers, credentials: 'same-origin' }) + const data = await response.json().catch(() => ({})) + if (!response.ok) { + if (response.status === 401 && !path.startsWith('/login')) { + authState.user = null + authState.csrf = '' + } + throw new ApiError(data?.error || `请求失败 (${response.status})`, response.status) + } + return data as T +} + +export async function hydrateSession() { + try { + const data = await request<{ user: User; csrf_token: string }>('/api/me') + authState.user = data.user || null + authState.csrf = data.csrf_token || '' + } catch (_) { + authState.user = null + authState.csrf = '' + moduleState.loaded = false + moduleState.subscriptionEnabled = false + } finally { + authState.ready = true + } +} + +export async function getCaptchaConfig(): Promise { + const data = await request>('/api/captcha-config') + return { + enabled: data.enabled === true, + provider: data.provider || '', + turnstile_enabled: data.turnstile_enabled === true, + turnstile_site_key: String(data.turnstile_site_key || ''), + tencent_captcha_enabled: data.tencent_captcha_enabled === true, + tencent_captcha_app_id: String(data.tencent_captcha_app_id || ''), + tencent_captcha_region: String(data.tencent_captcha_region || 'cn'), + aliyun_captcha_enabled: data.aliyun_captcha_enabled === true, + aliyun_captcha_scene_id: String(data.aliyun_captcha_scene_id || ''), + aliyun_captcha_prefix: String(data.aliyun_captcha_prefix || ''), + aliyun_captcha_region: String(data.aliyun_captcha_region || 'cn'), + } +} + +export async function loadSubscriptionState(force = false): Promise { + if (moduleState.loaded && !force) return moduleState.subscriptionEnabled + if (moduleState.loading) { + // A concurrent router/Shell request should observe the same eventual + // server decision instead of issuing an unbounded request fan-out. + await new Promise((resolve) => { + const timer = window.setInterval(() => { + if (!moduleState.loading) { + window.clearInterval(timer) + resolve() + } + }, 20) + }) + return moduleState.subscriptionEnabled + } + moduleState.loading = true + try { + const data = await request('/api/subscription/status') + const payload = unwrap(data) || {} + moduleState.subscriptionEnabled = payload.enabled === true + } catch (_) { + moduleState.subscriptionEnabled = false + } finally { + moduleState.loaded = true + moduleState.loading = false + } + return moduleState.subscriptionEnabled +} + +export async function login(email: string, password: string, extra: Record = {}) { + const data = await request<{ requires_2fa?: boolean; pending_token?: string; user?: User; csrf_token?: string }>('/login', { + method: 'POST', + body: JSON.stringify({ email, password, ...extra }), + }) + if (data.requires_2fa) { + authState.pendingToken = data.pending_token || '' + return { requires2fa: true } + } + authState.pendingToken = '' + authState.user = data.user || null + authState.csrf = data.csrf_token || '' + moduleState.loaded = false + return { requires2fa: false } +} + +export async function verify2fa(code: string) { + const data = await request<{ user?: User; csrf_token?: string }>('/login/2fa', { + method: 'POST', + body: JSON.stringify({ pending_token: authState.pendingToken, totp_code: code }), + }) + authState.pendingToken = '' + authState.user = data.user || null + authState.csrf = data.csrf_token || '' + moduleState.loaded = false +} + +export async function logout() { + try { + await request('/logout', { method: 'POST' }) + } finally { + authState.user = null + authState.csrf = '' + authState.pendingToken = '' + moduleState.loaded = false + moduleState.subscriptionEnabled = false + } +} + +export function unwrap(response: any): T { + if (response && Object.prototype.hasOwnProperty.call(response, 'data') && ('code' in response || 'message' in response)) return response.data as T + return response as T +} + +export function listFrom(value: any): any[] { + const data = unwrap(value) + if (Array.isArray(data)) return data + if (Array.isArray(data?.items)) return data.items + if (Array.isArray(data?.list)) return data.list + if (Array.isArray(data?.rows)) return data.rows + return [] +} + +export function formatDate(value: unknown) { + if (!value) return '-' + const date = new Date(String(value)) + return Number.isNaN(date.getTime()) ? String(value) : date.toLocaleString('zh-CN', { hour12: false }) +} + +export function stateLabel(value: unknown) { + const labels: Record = { + healthy: '运行中', enabled: '运行中', disabled: '已停用', incompatible: 'Core 不兼容', error: '启用失败', + starting: '启动中', draining: '停用中', upgrading: '升级中', rollback_pending: '等待回滚', + } + return labels[String(value)] || String(value || '未知') +} + +export function operationSucceeded(value: unknown) { + return ['completed', 'success', 'succeeded'].includes(String(value || '').toLowerCase()) +} + +export function operationTheme(value: unknown) { + const state = String(value || '').toLowerCase() + if (operationSucceeded(state)) return 'success' + if (state === 'failed' || state === 'error') return 'danger' + return 'warning' +} + +export function operationKey(kind: string, id = '') { + return `${kind}-${id}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}` +} diff --git a/plugins/plugin-admin/ui-vue/src/services/labels.ts b/plugins/plugin-admin/ui-vue/src/services/labels.ts new file mode 100644 index 0000000..0c55a7e --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/services/labels.ts @@ -0,0 +1,8 @@ +import { AppIcon, CheckCircleIcon, CloudDownloadIcon, DeleteIcon, HistoryIcon, RollbackIcon, SettingIcon, UploadIcon } from 'tdesign-icons-vue-next' + +export const actionLabels: Record = { install: '入库', marketplace_install: '市场入库', enable: '启用', disable: '停用', upgrade: '升级', rollback: '回滚', uninstall: '卸载', menu_preview: '菜单预览', menu_apply: '应用菜单', config: '保存配置' } +export function actionLabel(action: unknown) { return actionLabels[String(action)] || String(action || '操作') } +export function actionIcon(action: unknown) { + const icons: Record = { install: CloudDownloadIcon, marketplace_install: CloudDownloadIcon, enable: CheckCircleIcon, disable: SettingIcon, upgrade: UploadIcon, rollback: RollbackIcon, uninstall: DeleteIcon, menu_preview: AppIcon, menu_apply: AppIcon, config: SettingIcon } + return icons[String(action)] || HistoryIcon +} diff --git a/plugins/plugin-admin/ui-vue/src/services/tencentCaptcha.ts b/plugins/plugin-admin/ui-vue/src/services/tencentCaptcha.ts new file mode 100644 index 0000000..9bcf9c5 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/services/tencentCaptcha.ts @@ -0,0 +1,89 @@ +export type TencentCaptchaRegion = 'cn' | 'intl' + +export interface TencentCaptchaProof { + ticket: string + randstr: string +} + +interface TencentCaptchaResult { + ret: number + ticket?: string | null + randstr?: string | null + errorCode?: number +} + +interface TencentCaptchaInstance { + show(): void + destroy(): void +} + +interface TencentCaptchaConstructor { + new (appId: string, callback: (result: TencentCaptchaResult) => void, options?: Record): TencentCaptchaInstance + new (element: HTMLElement, appId: string, callback: (result: TencentCaptchaResult) => void, options?: Record): TencentCaptchaInstance +} + +declare global { + interface Window { + TencentCaptcha?: TencentCaptchaConstructor + TCaptchaGlobal?: boolean + } +} + +const SCRIPT_SRC: Record = { + cn: 'https://turing.captcha.qcloud.com/TJCaptcha.js', + intl: 'https://ca.turing.captcha.qcloud.com/TJNCaptcha-global.js', +} + +let scriptPromise: Promise | null = null +let loadedRegion: TencentCaptchaRegion | null = null + +export function normalizeTencentCaptchaRegion(value?: string | null): TencentCaptchaRegion { + return value === 'intl' ? 'intl' : 'cn' +} + +function existingRegion(): TencentCaptchaRegion { + return window.TCaptchaGlobal === true ? 'intl' : 'cn' +} + +export function loadTencentCaptcha(region: TencentCaptchaRegion = 'cn'): Promise { + if (window.TencentCaptcha && (loadedRegion === region || existingRegion() === region)) { + return Promise.resolve(window.TencentCaptcha) + } + if (window.TencentCaptcha && loadedRegion !== null && loadedRegion !== region) { + return Promise.reject(new Error('Tencent Captcha region changed; reload the page to apply it')) + } + if (scriptPromise && loadedRegion === region) return scriptPromise + + loadedRegion = region + scriptPromise = new Promise((resolve, reject) => { + const existing = document.querySelector(`script[src="${SCRIPT_SRC[region]}"]`) + if (existing) { + const finish = () => window.TencentCaptcha && existingRegion() === region + ? resolve(window.TencentCaptcha) + : reject(new Error('Tencent Captcha SDK unavailable')) + if (window.TencentCaptcha) finish() + else existing.addEventListener('load', finish, { once: true }) + existing.addEventListener('error', () => reject(new Error('Failed to load Tencent Captcha SDK')), { once: true }) + return + } + const script = document.createElement('script') + script.src = SCRIPT_SRC[region] + script.async = true + script.onload = () => { + if (window.TencentCaptcha && existingRegion() === region) resolve(window.TencentCaptcha) + else reject(new Error('Tencent Captcha SDK unavailable')) + } + script.onerror = () => reject(new Error('Failed to load Tencent Captcha SDK')) + document.head.appendChild(script) + }).catch((error) => { + scriptPromise = null + loadedRegion = null + throw error + }) + return scriptPromise +} + +export function resetTencentCaptchaLoaderForTest() { + scriptPromise = null + loadedRegion = null +} diff --git a/plugins/plugin-admin/ui-vue/src/styles.css b/plugins/plugin-admin/ui-vue/src/styles.css new file mode 100644 index 0000000..b908571 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/styles.css @@ -0,0 +1,240 @@ +:root { + font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + color: #1f2937; + background: #f3f6fa; + font-synthesis: none; + text-rendering: optimizeLegibility; + --app-blue: #0052d9; + --app-ink: #1f2937; + --app-muted: #718096; + --app-border: #e5e7eb; + --app-panel: #fff; +} +* { box-sizing: border-box; } +html, body, #app { min-width: 320px; min-height: 100%; margin: 0; } +body { overflow-x: hidden; background: #f3f6fa; } +button, input, textarea, select { font: inherit; } +a, button { -webkit-tap-highlight-color: transparent; } +.mono, code, .numeric, .stat-card strong { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; font-variant-numeric: tabular-nums; } +.wrap-anywhere { overflow-wrap: anywhere; word-break: break-word; } +.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; } +.boot-screen { min-height: 100vh; display: grid; place-items: center; color: var(--app-muted); } + +/* Login */ +.login-page { position: relative; min-height: 100vh; display: grid; place-items: center; padding: 40px 24px; background: radial-gradient(circle at 12% 10%, #e8f1ff 0, transparent 34%), #f5f7fb; } +.login-accent { position: absolute; inset: 0 0 auto; height: 4px; background: var(--app-blue); } +.login-layout { width: min(1060px, 100%); display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 440px); gap: 80px; align-items: center; } +.brand { display: flex; align-items: center; gap: 12px; min-width: 0; } +.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; border-radius: 10px; color: #fff; background: var(--app-blue); box-shadow: 0 8px 20px rgb(0 82 217 / 20%); } +.brand-title { color: #111827; font-size: 18px; font-weight: 700; letter-spacing: .01em; } +.brand-subtitle { margin-top: 2px; color: var(--app-muted); font-size: 12px; } +.brand-login { margin-bottom: 72px; } +.login-intro .eyebrow { margin-bottom: 14px; } +.eyebrow { margin: 0 0 7px; color: #7b8794; font-size: 11px; font-weight: 700; letter-spacing: .12em; line-height: 1.3; } +.login-intro h1 { max-width: 560px; margin: 0 0 18px; color: #111827; font-size: clamp(32px, 4vw, 48px); line-height: 1.12; letter-spacing: 0; } +.login-lead { max-width: 560px; margin: 0; color: #5f6b7a; font-size: 16px; line-height: 1.75; } +.login-points { display: grid; gap: 13px; margin-top: 34px; } +.login-points div { display: flex; align-items: center; gap: 10px; color: #4b5563; font-size: 13px; } +.login-points svg { color: #00a870; flex: 0 0 auto; } +.login-card { border-radius: 10px !important; box-shadow: 0 18px 50px rgb(15 23 42 / 9%); } +.login-card .t-card__body { padding: 30px; } +.login-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px; } +.login-card h2 { margin: 0; color: #111827; font-size: 25px; line-height: 1.25; } +.login-card > .t-card__body > .muted { margin: 0 0 24px; } +.muted, .secondary-text { color: var(--app-muted); font-size: 13px; line-height: 1.55; } +.login-form { display: grid; gap: 4px; } +.login-form .t-form__item { margin-bottom: 14px; } +.login-form .t-button { height: 42px; margin-top: 5px; } +.login-form .captcha-challenge + .t-button { margin-top: 2px; } +.login-error { margin-top: 18px; } +.login-security { display: flex; align-items: center; gap: 7px; justify-content: center; margin-top: 24px; padding-top: 18px; border-top: 1px solid #edf0f4; color: #8792a2; font-size: 11px; } + +/* App shell */ +.app-shell { min-height: 100vh; } +.app-aside { position: relative; z-index: 30; display: flex; flex-direction: column; min-height: 100vh; border-right: 1px solid #e6eaf0; background: #fff; } +.brand { padding: 23px 22px 20px; } +.app-aside .brand-mark { width: 36px; height: 36px; border-radius: 8px; box-shadow: none; } +.nav-caption { padding: 17px 22px 8px; color: #9aa5b4; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; } +.nav-caption-module { padding-top: 5px; } +.main-menu { border-right: 0 !important; } +.main-menu .t-menu__item { min-height: 44px; margin: 2px 10px; border-radius: 5px; color: #4b5563; font-size: 14px; } +.main-menu .t-menu__item.t-is-active { color: var(--app-blue); background: #e8f1ff; } +.main-menu .t-menu__item:hover { background: #f4f7fb; } +.main-menu .t-menu__item.t-is-disabled { opacity: .55; } +.nav-divider { margin: 10px 22px 0 !important; } +.aside-footer { display: grid; gap: 10px; margin-top: auto; padding: 18px 22px 22px; border-top: 1px solid #edf0f4; } +.status-tag { justify-self: start; display: inline-flex; align-items: center; gap: 6px; } +.version-text { color: #9aa5b4; font-size: 11px; } +.main-layout { min-width: 0; min-height: 100vh; } +.app-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 64px; padding: 0 34px; border-bottom: 1px solid #e6eaf0; background: #fff; } +.header-left, .header-right, .breadcrumbs, .user-button { display: flex; align-items: center; min-width: 0; } +.header-left, .header-right { gap: 13px; } +.breadcrumbs { gap: 9px; color: #8a96a5; font-size: 13px; } +.breadcrumbs strong { overflow: hidden; color: #1f2937; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; } +.secure-tag { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; } +.user-button { gap: 6px; color: #374151; } +.user-name { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.mobile-menu-button { display: none; } +.app-content { min-width: 0; padding: 32px 34px 56px; } +.page-view { width: min(1400px, 100%); min-width: 0; margin: 0 auto; } +.page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 24px; padding-bottom: 21px; border-bottom: 0; } +.page-header h1 { margin: 0 0 5px; color: #111827; font-size: 28px; font-weight: 700; line-height: 1.25; letter-spacing: 0; } +.page-subtitle { max-width: 720px; margin: 0; color: #718096; font-size: 13px; line-height: 1.6; } +.page-actions, .toolbar-actions, .table-actions, .detail-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; } +.page-actions { flex: 0 0 auto; } +.page-alert { margin-bottom: 16px; } +.page-toolbar, .section-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; } +.section-toolbar { align-items: flex-end; } +.section-toolbar h2 { margin: 0 0 4px; color: #1f2937; font-size: 20px; } +.toolbar-hint { color: #9aa5b4; font-size: 12px; } + +/* Cards and statistics */ +.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; } +.stat-card { min-width: 0; border-top: 3px solid #94a3b8 !important; border-radius: 7px !important; } +.stat-card .t-card__body { padding: 18px; } +.stat-card.stat-success { border-top-color: #00a870 !important; } +.stat-card.stat-warning { border-top-color: #ed7b2f !important; } +.stat-card.stat-danger { border-top-color: #d54941 !important; } +.stat-card.stat-primary { border-top-color: var(--app-blue) !important; } +.stat-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 15px; color: #637083; font-size: 12px; } +.stat-card-top svg { color: var(--app-blue); } +.stat-card strong { display: block; margin-bottom: 7px; color: #111827; font-size: 29px; font-weight: 700; line-height: 1; } +.stat-card small { color: #96a0ae; font-size: 11px; } +.stat-success .stat-card-top svg { color: #00a870; } +.stat-warning .stat-card-top svg { color: #ed7b2f; } +.stat-danger .stat-card-top svg { color: #d54941; } +.overview-grid, .detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); gap: 16px; margin-bottom: 16px; } +.panel-card, .table-card, .filter-card, .empty-card { min-width: 0; border-radius: 7px !important; } +.panel-card .t-card__header, .table-card .t-card__header { padding: 18px 20px 0; } +.panel-card .t-card__title, .table-card .t-card__title { color: #1f2937; font-size: 16px; font-weight: 600; } +.panel-card .t-card__body { padding: 18px 20px 20px; } +.panel-card .t-card__actions { color: var(--app-blue); } +.trend-chart { width: 100%; height: 255px; min-height: 220px; } +.guidance-card { margin-bottom: 0; } +.guidance-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; } +.guidance-item { display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 10px; } +.guidance-number { color: var(--app-blue); font-size: 12px; font-weight: 700; line-height: 1.7; } +.guidance-item strong { color: #344054; font-size: 13px; } +.guidance-item p { margin: 5px 0 0; color: #7c8795; font-size: 12px; line-height: 1.55; } +.table-action { display: inline-flex; align-items: center; gap: 7px; color: #344054; } +.table-actions { justify-content: flex-start; flex-wrap: nowrap; } +.table-actions .t-button { flex: 0 0 auto; } +.cell-note { display: block; margin-top: 3px; color: #9aa5b4; font-size: 11px; } +.plugin-cell { display: flex; align-items: center; gap: 11px; min-width: 0; } +.plugin-cell > div:last-child { display: grid; gap: 3px; min-width: 0; } +.plugin-cell strong { overflow: hidden; color: #263244; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; } +.plugin-avatar, .market-icon { display: grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px; border-radius: 7px; color: var(--app-blue); background: #e8f1ff; } +.empty-card { padding: 34px; } +.filter-card { margin-bottom: 16px; } +.filter-card .t-card__body { padding: 17px 20px; } +.filter-grid { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto; align-items: end; gap: 12px; } +.filter-grid .t-form__item { margin-bottom: 0; } + +/* Detail */ +.detail-back { margin-bottom: 14px; } +.detail-back .t-link { font-size: 13px; } +.detail-tabs { margin-bottom: 22px; } +.detail-tabs .t-tabs__nav { overflow-x: auto; } +.detail-tabs .t-tabs__nav-container { min-width: max-content; } +.detail-tabs .t-tabs__content { display: none; } +.detail-content { min-width: 0; } +.detail-actions { margin-bottom: 16px; } +.description-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; margin: 0; } +.description-grid > div { min-width: 0; } +.description-grid dt { margin-bottom: 5px; color: #8a96a5; font-size: 12px; } +.description-grid dd { min-width: 0; color: #344054; font-size: 13px; line-height: 1.5; } +.inline-alert { margin-top: 20px; } +.narrow-content { max-width: 900px; } +.tag-gap { margin-left: 8px; } +.preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } +.preview-grid h3 { margin: 0 0 8px; font-size: 13px; } +.preview-grid pre { min-height: 210px; max-height: 420px; margin: 0; padding: 13px; overflow: auto; border: 1px solid #e5e7eb; border-radius: 5px; color: #344054; background: #f7f9fc; font: 12px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; } +.loading-panel { display: grid; place-items: center; min-height: 260px; } +.pagination-row { display: flex; justify-content: flex-end; padding-top: 17px; } +.drawer-description { margin-bottom: 20px; } + +/* Marketplace */ +.market-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } +.market-card { min-width: 0; border-radius: 7px !important; } +.market-card .t-card__header { padding: 20px 20px 0; } +.market-card .t-card__body { padding: 16px 20px; } +.market-card .t-card__footer { padding: 0 20px 20px; } +.market-heading { display: flex; align-items: flex-start; gap: 11px; min-width: 0; } +.market-title { min-width: 0; flex: 1 1 auto; } +.market-title h2 { margin: 0 0 4px; overflow: hidden; color: #263244; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; } +.market-heading > .t-tag { flex: 0 0 auto; } +.market-description { min-height: 42px; margin: 0 0 18px; color: #687585; font-size: 13px; line-height: 1.6; } +.market-meta { gap: 13px 20px; margin-bottom: 17px; } +.market-hash { display: grid; gap: 5px; padding-top: 13px; border-top: 1px solid #edf0f4; } +.market-hash span { color: #9aa5b4; font-size: 11px; } +.market-hash code { color: #556274; font-size: 11px; overflow-wrap: anywhere; } + +/* TDesign table containment */ +.table-card { overflow: hidden; } +.table-card .t-card__body { min-width: 0; padding: 0 0 18px; } +.table-card .t-table { min-width: 680px; } +.table-card .t-table__content { overflow-x: auto; } +.table-card .t-table__header th { background: #f8fafc; color: #64748b; font-size: 12px; font-weight: 600; } +.table-card .t-table__body td { color: #344054; font-size: 13px; } +.table-card .t-table__pagination { padding: 15px 20px 0; } + +@media (max-width: 1100px) { + .login-layout { gap: 44px; } + .app-header { padding: 0 24px; } + .app-content { padding: 28px 24px 44px; } + .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .overview-grid, .detail-grid { grid-template-columns: 1fr; } +} +@media (max-width: 760px) { + .login-page { padding: 26px 16px; place-items: start center; } + .login-layout { grid-template-columns: 1fr; gap: 28px; margin-top: 16px; } + .brand-login { margin-bottom: 34px; } + .login-intro h1 { font-size: 33px; } + .login-lead { font-size: 14px; } + .login-points { display: none; } + .login-card .t-card__body { padding: 22px 18px; } + .app-aside { position: fixed; inset: 0 auto 0 0; width: min(280px, calc(100vw - 48px)); min-height: 100vh; transform: translateX(-105%); transition: transform .2s ease; box-shadow: 12px 0 32px rgb(15 23 42 / 16%); } + .app-aside.app-aside-mobile-open { transform: translateX(0); } + .mobile-scrim { position: fixed; z-index: 20; inset: 0; background: rgb(15 23 42 / 32%); } + .mobile-menu-button { display: inline-flex; } + .app-header { height: 58px; padding: 0 14px; } + .header-left, .header-right { gap: 8px; } + .secure-tag { display: none; } + .user-name { max-width: 108px; } + .app-content { padding: 22px 14px 36px; } + .page-header { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 18px; } + .page-header h1 { font-size: 23px; } + .page-actions { width: 100%; justify-content: flex-start; } + .page-actions .t-button { flex: 1 1 auto; min-width: 0; } + .page-toolbar, .section-toolbar { align-items: flex-start; flex-direction: column; gap: 8px; } + .section-toolbar .t-button, .toolbar-actions { width: 100%; justify-content: flex-start; } + .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; } + .stat-card .t-card__body { padding: 13px; } + .stat-card strong { font-size: 23px; } + .stat-card-top { margin-bottom: 11px; } + .overview-grid, .detail-grid, .market-grid { grid-template-columns: 1fr; gap: 12px; } + .guidance-grid { grid-template-columns: 1fr; gap: 15px; } + .panel-card .t-card__header, .table-card .t-card__header { padding: 15px 15px 0; } + .panel-card .t-card__body { padding: 15px; } + .filter-card .t-card__body { padding: 14px; } + .filter-grid { grid-template-columns: 1fr; gap: 10px; } + .filter-grid .t-button { justify-self: start; } + .description-grid { grid-template-columns: 1fr; gap: 13px; } + .detail-tabs { margin-bottom: 17px; } + .detail-tabs .t-tabs__nav-item { padding: 0 12px; } + .preview-grid { grid-template-columns: 1fr; } + .market-card .t-card__header { padding: 16px 15px 0; } + .market-card .t-card__body { padding: 14px 15px; } + .market-card .t-card__footer { padding: 0 15px 15px; } + .table-actions { flex-wrap: wrap; } + .table-card .t-table { min-width: 720px; } + .pagination-row { justify-content: flex-start; overflow-x: auto; } +} +@media (max-width: 430px) { + .app-content { padding-left: 10px; padding-right: 10px; } + .page-actions .t-button { padding-left: 10px; padding-right: 10px; font-size: 12px; } + .breadcrumbs span { display: none; } + .breadcrumbs strong { max-width: 150px; } + .user-name { max-width: 90px; } + .stat-card small { font-size: 10px; } +} diff --git a/plugins/plugin-admin/ui-vue/src/views/Login.vue b/plugins/plugin-admin/ui-vue/src/views/Login.vue new file mode 100644 index 0000000..a552712 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/views/Login.vue @@ -0,0 +1,181 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/src/views/Marketplace.vue b/plugins/plugin-admin/ui-vue/src/views/Marketplace.vue new file mode 100644 index 0000000..8c919a3 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/views/Marketplace.vue @@ -0,0 +1,35 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/src/views/Operations.vue b/plugins/plugin-admin/ui-vue/src/views/Operations.vue new file mode 100644 index 0000000..2b635cf --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/views/Operations.vue @@ -0,0 +1,30 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/src/views/Overview.vue b/plugins/plugin-admin/ui-vue/src/views/Overview.vue new file mode 100644 index 0000000..29e1214 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/views/Overview.vue @@ -0,0 +1,86 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/src/views/PluginDetail.vue b/plugins/plugin-admin/ui-vue/src/views/PluginDetail.vue new file mode 100644 index 0000000..fe4b254 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/views/PluginDetail.vue @@ -0,0 +1,96 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/src/views/Plugins.vue b/plugins/plugin-admin/ui-vue/src/views/Plugins.vue new file mode 100644 index 0000000..7ba6bd4 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/views/Plugins.vue @@ -0,0 +1,110 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/src/views/Subscription.vue b/plugins/plugin-admin/ui-vue/src/views/Subscription.vue new file mode 100644 index 0000000..a0bd271 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/src/views/Subscription.vue @@ -0,0 +1,55 @@ + + + diff --git a/plugins/plugin-admin/ui-vue/tsconfig.json b/plugins/plugin-admin/ui-vue/tsconfig.json new file mode 100644 index 0000000..b0e2198 --- /dev/null +++ b/plugins/plugin-admin/ui-vue/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ES2022", + "ignoreDeprecations": "6.0", + "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "jsx": "preserve", + "jsxImportSource": "vue", + "resolveJsonModule": true, + "esModuleInterop": true, + "skipLibCheck": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "types": ["vite/client", "tdesign-vue-next/global"], + "noEmit": true, + "baseUrl": ".", + "paths": { "@/*": ["src/*"] } + }, + "include": ["src/**/*.ts", "src/**/*.vue", "src/**/*.d.ts"] +} diff --git a/plugins/plugin-admin/ui-vue/vite.config.ts b/plugins/plugin-admin/ui-vue/vite.config.ts new file mode 100644 index 0000000..cbd8b0c --- /dev/null +++ b/plugins/plugin-admin/ui-vue/vite.config.ts @@ -0,0 +1,24 @@ +import { fileURLToPath, URL } from 'node:url' +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +export default defineConfig({ + base: './', + plugins: [vue()], + resolve: { + alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, + }, + build: { + outDir: '../ui-build', + emptyOutDir: true, + cssCodeSplit: false, + assetsInlineLimit: 1024 * 1024 * 8, + rollupOptions: { + output: { + entryFileNames: 'app.js', + chunkFileNames: 'chunk-[name].js', + assetFileNames: (asset) => asset.name?.endsWith('.css') ? 'styles.css' : 'assets/[name][extname]', + }, + }, + }, +}) diff --git a/plugins/plugin-admin/ui/app.js b/plugins/plugin-admin/ui/app.js index 089a0e6..79e2525 100644 --- a/plugins/plugin-admin/ui/app.js +++ b/plugins/plugin-admin/ui/app.js @@ -1,96 +1,64 @@ -(() => { - 'use strict' - const base = (window.__PLUGIN_BASE_PATH__ || '').replace(/\/$/, '') - const $ = (selector) => document.querySelector(selector) - let csrf = '' - let pendingToken = '' - let configPluginId = '' - let installedPlugins = new Map() - const notice = (message, error = false) => { - const el = $('#notice'); el.textContent = message || ''; el.className = error ? 'notice error' : 'notice' +var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function n(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var r={},i=[],a=()=>{},o=()=>!1,s=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),c=e=>e.startsWith(`onUpdate:`),l=Object.assign,u=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,f=(e,t)=>d.call(e,t),p=Array.isArray,m=e=>C(e)===`[object Map]`,h=e=>C(e)===`[object Set]`,g=e=>C(e)===`[object Date]`,_=e=>typeof e==`function`,v=e=>typeof e==`string`,y=e=>typeof e==`symbol`,b=e=>typeof e==`object`&&!!e,x=e=>(b(e)||_(e))&&_(e.then)&&_(e.catch),S=Object.prototype.toString,C=e=>S.call(e),w=e=>C(e).slice(8,-1),T=e=>C(e)===`[object Object]`,E=e=>v(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,D=n(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),O=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},k=/-\w/g,A=O(e=>e.replace(k,e=>e.slice(1).toUpperCase())),j=/\B([A-Z])/g,M=O(e=>e.replace(j,`-$1`).toLowerCase()),ee=O(e=>e.charAt(0).toUpperCase()+e.slice(1)),N=O(e=>e?`on${ee(e)}`:``),P=(e,t)=>!Object.is(e,t),F=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ne=e=>{let t=parseFloat(e);return isNaN(t)?e:t},re=e=>{let t=v(e)?Number(e):NaN;return isNaN(t)?e:t},ie,ae=()=>ie||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function oe(e){if(p(e)){let t={};for(let n=0;n{if(e){let n=e.split(ce);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function de(e){let t=``;if(v(e))t=e;else if(p(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ve=e=>v(e)?e:e==null?``:p(e)||b(e)&&(e.toString===S||!_(e.toString))?_e(e)?ve(e.value):JSON.stringify(e,ye,2):String(e),ye=(e,t)=>_e(t)?ye(e,t.value):m(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[be(t,r)+` =>`]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>be(e))}:y(t)?be(t):b(t)&&!p(t)&&!T(t)?String(t):t,be=(e,t=``)=>y(e)?`Symbol(${e.description??t})`:e,xe,Se=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&xe&&(xe.active?(this.parent=xe,this.index=(xe.scopes||=[]).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e0&&--this._on===0){if(xe===this)xe=this.prevScope;else{let e=xe;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(je){let e=je;for(je=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Ae;){let t=Ae;for(Ae=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Fe(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ie(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),ze(r),Be(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Le(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Re(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Re(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ke)||(e.globalVersion=Ke,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Le(e))))return;e.flags|=2;let t=e.dep,n=Ee,r=Ve;Ee=e,Ve=!0;try{Fe(e);let n=e.fn(e._value);(t.version===0||P(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{Ee=n,Ve=r,Ie(e),e.flags&=-3}}function ze(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)ze(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Be(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var Ve=!0,He=[];function Ue(){He.push(Ve),Ve=!1}function We(){let e=He.pop();Ve=e===void 0||e}function Ge(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=Ee;Ee=void 0;try{t()}finally{Ee=e}}}var Ke=0,qe=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Je=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!Ee||!Ve||Ee===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==Ee)t=this.activeLink=new qe(Ee,this),Ee.deps?(t.prevDep=Ee.depsTail,Ee.depsTail.nextDep=t,Ee.depsTail=t):Ee.deps=Ee.depsTail=t,Ye(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=Ee.depsTail,t.nextDep=void 0,Ee.depsTail.nextDep=t,Ee.depsTail=t,Ee.deps===t&&(Ee.deps=e)}return t}trigger(e){this.version++,Ke++,this.notify(e)}notify(e){Ne();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Pe()}}};function Ye(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Ye(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var Xe=new WeakMap,Ze=Symbol(``),Qe=Symbol(``),$e=Symbol(``);function et(e,t,n){if(Ve&&Ee){let t=Xe.get(e);t||Xe.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Je),r.map=t,r.key=n),r.track()}}function tt(e,t,n,r,i,a){let o=Xe.get(e);if(!o){Ke++;return}let s=e=>{e&&e.trigger()};if(Ne(),t===`clear`)o.forEach(s);else{let i=p(e),a=i&&E(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===$e||!y(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get($e)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(Ze)),m(e)&&s(o.get(Qe)));break;case`delete`:i||(s(o.get(Ze)),m(e)&&s(o.get(Qe)));break;case`set`:m(e)&&s(o.get(Ze));break}}Pe()}function nt(e,t){let n=Xe.get(e);return n&&n.get(t)}function rt(e){let t=Ft(e);return t===e?t:(et(t,`iterate`,$e),Nt(e)?t:t.map(Lt))}function it(e){return et(e=Ft(e),`iterate`,$e),e}function at(e,t){return Mt(e)?Rt(jt(e)?Lt(t):t):Lt(t)}var ot={__proto__:null,[Symbol.iterator](){return st(this,Symbol.iterator,e=>at(this,e))},concat(...e){return rt(this).concat(...e.map(e=>p(e)?rt(e):e))},entries(){return st(this,`entries`,e=>(e[1]=at(this,e[1]),e))},every(e,t){return lt(this,`every`,e,t,void 0,arguments)},filter(e,t){return lt(this,`filter`,e,t,e=>e.map(e=>at(this,e)),arguments)},find(e,t){return lt(this,`find`,e,t,e=>at(this,e),arguments)},findIndex(e,t){return lt(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return lt(this,`findLast`,e,t,e=>at(this,e),arguments)},findLastIndex(e,t){return lt(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return lt(this,`forEach`,e,t,void 0,arguments)},includes(...e){return dt(this,`includes`,e)},indexOf(...e){return dt(this,`indexOf`,e)},join(e){return rt(this).join(e)},lastIndexOf(...e){return dt(this,`lastIndexOf`,e)},map(e,t){return lt(this,`map`,e,t,void 0,arguments)},pop(){return ft(this,`pop`)},push(...e){return ft(this,`push`,e)},reduce(e,...t){return ut(this,`reduce`,e,t)},reduceRight(e,...t){return ut(this,`reduceRight`,e,t)},shift(){return ft(this,`shift`)},some(e,t){return lt(this,`some`,e,t,void 0,arguments)},splice(...e){return ft(this,`splice`,e)},toReversed(){return rt(this).toReversed()},toSorted(e){return rt(this).toSorted(e)},toSpliced(...e){return rt(this).toSpliced(...e)},unshift(...e){return ft(this,`unshift`,e)},values(){return st(this,`values`,e=>at(this,e))}};function st(e,t,n){let r=it(e),i=r[t]();return r!==e&&!Nt(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var ct=Array.prototype;function lt(e,t,n,r,i,a){let o=it(e),s=o!==e&&!Nt(e),c=o[t];if(c!==ct[t]){let t=c.apply(e,a);return s?Lt(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,at(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function ut(e,t,n,r){let i=it(e),a=i!==e&&!Nt(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=at(e,t)),n.call(this,t,at(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?at(e,c):c}function dt(e,t,n){let r=Ft(e);et(r,`iterate`,$e);let i=r[t](...n);return(i===-1||i===!1)&&Pt(n[0])?(n[0]=Ft(n[0]),r[t](...n)):i}function ft(e,t,n=[]){Ue(),Ne();let r=Ft(e)[t].apply(e,n);return Pe(),We(),r}var eee=n(`__proto__,__v_isRef,__isVue`),pt=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(y));function tee(e){y(e)||(e=String(e));let t=Ft(this);return et(t,`has`,e),t.hasOwnProperty(e)}var mt=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?see:Et:i?Tt:wt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=p(e);if(!r){let e;if(a&&(e=ot[t]))return e;if(t===`hasOwnProperty`)return tee}let o=Reflect.get(e,t,zt(e)?e:n);if((y(t)?pt.has(t):eee(t))||(r||et(e,`get`,t),i))return o;if(zt(o)){let e=a&&E(t)?o:o.value;return r&&b(e)?kt(e):e}return b(o)?r?kt(o):Dt(o):o}},ht=class extends mt{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=p(e)&&E(t);if(!this._isShallow){let e=Mt(i);if(!Nt(n)&&!Mt(n)&&(i=Ft(i),n=Ft(n)),!a&&zt(i)&&!zt(n))return e||(i.value=n),!0}let o=a?Number(t)e,vt=e=>Reflect.getPrototypeOf(e);function aee(e,t,n){return function(...r){let i=this.__v_raw,a=Ft(i),o=m(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,u=i[e](...r),d=n?_t:t?Rt:Lt;return!t&&et(a,`iterate`,c?Qe:Ze),l(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function yt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function oee(e,t){let n={get(n){let r=this.__v_raw,i=Ft(r),a=Ft(n);e||(P(n,a)&&et(i,`get`,n),et(i,`get`,a));let{has:o}=vt(i),s=t?_t:e?Rt:Lt;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&et(Ft(t),`iterate`,Ze),t.size},has(t){let n=this.__v_raw,r=Ft(n),i=Ft(t);return e||(P(t,i)&&et(r,`has`,t),et(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=Ft(a),s=t?_t:e?Rt:Lt;return!e&&et(o,`iterate`,Ze),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return l(n,e?{add:yt(`add`),set:yt(`set`),delete:yt(`delete`),clear:yt(`clear`)}:{add(e){let n=Ft(this),r=vt(n),i=Ft(e),a=!t&&!Nt(e)&&!Mt(e)?i:e;return r.has.call(n,a)||P(e,a)&&r.has.call(n,e)||P(i,a)&&r.has.call(n,i)||(n.add(a),tt(n,`add`,a,a)),this},set(e,n){!t&&!Nt(n)&&!Mt(n)&&(n=Ft(n));let r=Ft(this),{has:i,get:a}=vt(r),o=i.call(r,e);o||=(e=Ft(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?P(n,s)&&tt(r,`set`,e,n,s):tt(r,`add`,e,n),this},delete(e){let t=Ft(this),{has:n,get:r}=vt(t),i=n.call(t,e);i||=(e=Ft(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&tt(t,`delete`,e,void 0,a),o},clear(){let e=Ft(this),t=e.size!==0,n=e.clear();return t&&tt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=aee(r,e,t)}),n}function bt(e,t){let n=oee(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(f(n,r)&&r in t?n:t,r,i)}var xt={get:bt(!1,!1)},St={get:bt(!1,!0)},Ct={get:bt(!0,!1)},wt=new WeakMap,Tt=new WeakMap,Et=new WeakMap,see=new WeakMap;function cee(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function Dt(e){return Mt(e)?e:At(e,!1,gt,xt,wt)}function Ot(e){return At(e,!1,iee,St,Tt)}function kt(e){return At(e,!0,ree,Ct,Et)}function At(e,t,n,r,i){if(!b(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=cee(w(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function jt(e){return Mt(e)?jt(e.__v_raw):!!(e&&e.__v_isReactive)}function Mt(e){return!!(e&&e.__v_isReadonly)}function Nt(e){return!!(e&&e.__v_isShallow)}function Pt(e){return e?!!e.__v_raw:!1}function Ft(e){let t=e&&e.__v_raw;return t?Ft(t):e}function It(e){return!f(e,`__v_skip`)&&Object.isExtensible(e)&&te(e,`__v_skip`,!0),e}var Lt=e=>b(e)?Dt(e):e,Rt=e=>b(e)?kt(e):e;function zt(e){return e?e.__v_isRef===!0:!1}function I(e){return Vt(e,!1)}function Bt(e){return Vt(e,!0)}function Vt(e,t){return zt(e)?e:new lee(e,t)}var lee=class{constructor(e,t){this.dep=new Je,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:Ft(e),this._value=t?e:Lt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||Nt(e)||Mt(e);e=n?e:Ft(e),P(e,t)&&(this._rawValue=e,this._value=n?e:Lt(e),this.dep.trigger())}};function Ht(e){return zt(e)?e.value:e}var uee={get:(e,t,n)=>t===`__v_raw`?e:Ht(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return zt(i)&&!zt(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Ut(e){return jt(e)?e:new Proxy(e,uee)}function Wt(e){let t=p(e)?Array(e.length):{};for(let n in e)t[n]=Gt(e,n);return t}var dee=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=y(t)?t:String(t),this._raw=Ft(e);let r=!0,i=e;if(!p(e)||y(this._key)||!E(this._key))do r=!Pt(i)||Nt(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=Ht(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&zt(this._raw[this._key])){let t=this._object[this._key];if(zt(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return nt(this._raw,this._key)}};function Gt(e,t,n){return new dee(e,t,n)}var Kt=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Je(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ke-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Ee!==this)return Me(this,!0),!0}get value(){let e=this.dep.track();return Re(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function qt(e,t,n=!1){let r,i;return _(e)?r=e:(r=e.get,i=e.set),new Kt(r,i,n)}var Jt={},Yt=new WeakMap,Xt=void 0;function Zt(e,t=!1,n=Xt){if(n){let t=Yt.get(n);t||Yt.set(n,t=[]),t.push(e)}}function Qt(e,t,n=r){let{immediate:i,deep:o,once:s,scheduler:c,augmentJob:l,call:d}=n,f=e=>o?e:Nt(e)||o===!1||o===0?$t(e,1):$t(e),m,h,g,v,y=!1,b=!1;if(zt(e)?(h=()=>e.value,y=Nt(e)):jt(e)?(h=()=>f(e),y=!0):p(e)?(b=!0,y=e.some(e=>jt(e)||Nt(e)),h=()=>e.map(e=>{if(zt(e))return e.value;if(jt(e))return f(e);if(_(e))return d?d(e,2):e()})):h=_(e)?t?d?()=>d(e,2):e:()=>{if(g){Ue();try{g()}finally{We()}}let t=Xt;Xt=m;try{return d?d(e,3,[v]):e(v)}finally{Xt=t}}:a,t&&o){let e=h,t=o===!0?1/0:o;h=()=>$t(e(),t)}let x=we(),S=()=>{m.stop(),x&&x.active&&u(x.effects,m)};if(s&&t){let e=t;t=(...t)=>{let n=e(...t);return S(),n}}let C=b?Array(e.length).fill(Jt):Jt,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e))if(t){let n=m.run();if(e||o||y||(b?n.some((e,t)=>P(e,C[t])):P(n,C))){g&&g();let e=Xt;Xt=m;try{let e=[n,C===Jt?void 0:b&&C[0]===Jt?[]:C,v];C=n,d?d(t,3,e):t(...e)}finally{Xt=e}}}else m.run()};return l&&l(w),m=new Oe(h),m.scheduler=c?()=>c(w,!1):w,v=e=>Zt(e,!1,m),g=m.onStop=()=>{let e=Yt.get(m);if(e){if(d)d(e,4);else for(let t of e)t();Yt.delete(m)}},t?i?w(!0):C=m.run():c?c(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function $t(e,t=1/0,n){if(t<=0||!b(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,zt(e))$t(e.value,t,n);else if(p(e))for(let r=0;r{$t(e,t,n)});else if(T(e)){for(let r in e)$t(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&$t(e[r],t,n)}return e}function en(e,t,n,r){try{return r?e(...r):e()}catch(e){nn(e,t,n)}}function tn(e,t,n,r){if(_(e)){let i=en(e,t,n,r);return i&&x(i)&&i.catch(e=>{nn(e,t,n)}),i}if(p(e)){let i=[];for(let a=0;a>>1,i=rn[r],a=gn(i);a=gn(n)?rn.push(e):rn.splice(pee(t),0,e),e.flags|=1,pn()}}function pn(){un||=ln.then(_n)}function mee(e){p(e)?on.push(...e):sn&&e.id===-1?sn.splice(cn+1,0,e):e.flags&1||(on.push(e),e.flags|=1),pn()}function mn(e,t,n=an+1){for(;ngn(e)-gn(t));if(on.length=0,sn){sn.push(...e);return}for(sn=e,cn=0;cne.id==null?e.flags&2?-1:1/0:e.id;function _n(e){try{for(an=0;an{r._d&&Oi(-1);let i=bn(t),a;try{a=e(...n)}finally{bn(i),r._d&&Oi(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function xn(e,t){if(vn===null)return e;let n=oa(vn),i=e.dirs||=[];for(let e=0;e1)return n&&_(t)?t.call(r&&r.proxy):t}}var hee=Symbol.for(`v-scx`),gee=()=>wn(hee);function Tn(e,t){return En(e,null,t)}function R(e,t,n){return En(e,t,n)}function En(e,t,n=r){let{immediate:i,deep:o,flush:s,once:c}=n,u=l({},n),d=t&&i||!t&&s!==`post`,f;if(ta){if(s===`sync`){let e=gee();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=a,e.resume=a,e.pause=a,e}}let p=Ji;u.call=(e,t,n)=>tn(e,p,t,n);let m=!1;s===`post`?u.scheduler=e=>{fi(e,p&&p.suspense)}:s!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():fn(e)}),u.augmentJob=e=>{t&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=Qt(e,t,u);return ta&&(f?f.push(h):d&&h()),h}function _ee(e,t,n){let r=this.proxy,i=v(e)?e.includes(`.`)?Dn(r,e):()=>r[e]:e.bind(r,r),a;_(t)?a=t:(a=t.handler,n=t);let o=Qi(this),s=En(i,a.bind(r),n);return o(),s}function Dn(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,jn=e=>e&&(e.disabled||e.disabled===``),vee=e=>e&&(e.defer||e.defer===``),Mn=e=>typeof SVGElement<`u`&&e instanceof SVGElement,Nn=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,Pn=(e,t)=>{let n=e&&e.to;return v(n)?t?t(n):null:n},yee={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g,parentNode:_}}=l,v=jn(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},x=(e=t)=>{let n=jn(e.props),r=e.target=Pn(e.props,m),a=zn(r,e,h,p);r&&(o!==`svg`&&Mn(r)?o=`svg`:o!==`mathml`&&Nn(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),Rn(e,!1)))},S=e=>{let t=()=>{if(On.get(e)===t){if(On.delete(e),jn(e.props)){let t=_(e.el)||n;b(e,t,e.anchor),Rn(e,!0)}x(e)}};On.set(e,t),fi(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),vee(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),Rn(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=On.get(e);if(u){u.flags|=8,On.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=jn(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||Mn(p)?o=`svg`:(o===`mathml`||Nn(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),hi(e,t,!0)):c||d(e,t,_,b,i,a,o,s,!1),v)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Fn(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=Pn(t.props,m);e&&(t.target=e,Fn(t,e,null,l,0))}else g&&Fn(t,p,h,l,1);Rn(t,v)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=jn(f),m=a||!p,h=On.get(e);if(h&&(h.flags|=8,On.delete(e)),d&&(i(l),i(u)),a&&i(c),!h&&(p||d)&&o&16)for(let e=0;e{e.isMounted=!0}),_r(()=>{e.isUnmounting=!0}),e}var Un=[Function,Array],Wn={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Un,onEnter:Un,onAfterEnter:Un,onEnterCancelled:Un,onBeforeLeave:Un,onLeave:Un,onAfterLeave:Un,onLeaveCancelled:Un,onBeforeAppear:Un,onAppear:Un,onAfterAppear:Un,onAppearCancelled:Un},Gn=e=>{let t=e.subTree;return t.component?Gn(t.component):t},Kn={name:`BaseTransition`,props:Wn,setup(e,{slots:t}){let n=Yi(),r=Hn();return()=>{let i=t.default&&er(t.default(),!0),a=i&&i.length?qn(i):n.subTree?Bi():void 0;if(!a)return;let o=Ft(e),{mode:s}=o;if(r.isLeaving)return Zn(a);let c=Qn(a);if(!c)return Zn(a);let l=Xn(c,o,r,n,e=>l=e);c.type!==Si&&$n(c,l);let u=n.subTree&&Qn(n.subTree);if(u&&u.type!==Si&&!Ni(u,c)&&Gn(n).type!==Si){let e=Xn(u,o,r,n);if($n(u,e),s===`out-in`&&c.type!==Si)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},Zn(a);s===`in-out`&&c.type!==Si?e.delayLeave=(e,t,n)=>{let i=Yn(r,u);i[String(u.key)]=u,e[Bn]=()=>{t(),e[Bn]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{n(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&=void 0;return a}}};function qn(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==Si){t=n;break}}return t}var Jn=Kn;function Yn(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Xn(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:m,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:v,onAfterAppear:y,onAppearCancelled:b}=t,x=String(e.key),S=Yn(n,e),C=(e,t)=>{e&&tn(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),p(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted)if(a)r=_||c;else return;t[Bn]&&t[Bn](!0);let i=S[x];i&&Ni(e,i)&&i.el[Bn]&&i.el[Bn](),C(r,[t])},enter(t){if(S[x]===e)return;let r=l,i=u,o=d;if(!n.isMounted)if(a)r=v||l,i=y||u,o=b||d;else return;let s=!1;t[Vn]=e=>{s||(s=!0,C(e?o:i,[t]),T.delayedLeave&&T.delayedLeave(),t[Vn]=void 0)};let c=t[Vn].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[Vn]&&t[Vn](!0),n.isUnmounting)return r();C(f,[t]);let a=!1;t[Bn]=n=>{a||(a=!0,r(),C(n?g:h,[t]),t[Bn]=void 0,S[i]===e&&delete S[i])};let o=t[Bn].bind(null,!1);S[i]=e,m?w(m,[t,o]):o()},clone(e){let a=Xn(e,t,n,r,i);return i&&i(a),a}};return T}function Zn(e){if(sr(e))return e=Ri(e),e.children=null,e}function Qn(e){if(!sr(e))return An(e.type)&&e.children?qn(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&_(n.default))return n.default()}}function $n(e,t){e.shapeFlag&6&&e.component?(e.transition=t,$n(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function er(e,t=!1,n){let r=[],i=0;for(let a=0;a1)for(let e=0;eir(e,t&&(p(t)?t[r]:t),n,i,a));return}if(or(i)&&!a){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&ir(e,t,n,i.component.subTree);return}let s=i.shapeFlag&4?oa(i.component):i.el,c=a?null:s,{i:l,r:d}=e,m=t&&t.r,h=l.refs===r?l.refs={}:l.refs,g=l.setupState,y=Ft(g),b=g===r?o:e=>!nr(h,e)&&f(y,e),x=(e,t)=>!(t&&nr(h,t));if(m!=null&&m!==d){if(ar(t),v(m))h[m]=null,b(m)&&(g[m]=null);else if(zt(m)){let e=t;x(m,e.k)&&(m.value=null),e.k&&(h[e.k]=null)}}if(_(d)){Ue();try{en(d,l,12,[c,h])}finally{We()}}else{let t=v(d),r=zt(d);if(t||r){let i=()=>{if(e.f){let n=t?b(d)?g[d]:h[d]:x(d)||!e.k?d.value:h[e.k];if(a)p(n)&&u(n,s);else if(p(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],b(d)&&(g[d]=h[d]);else{let t=[s];x(d,e.k)&&(d.value=t),e.k&&(h[e.k]=t)}}else t?(h[d]=c,b(d)&&(g[d]=c)):r&&(x(d,e.k)&&(d.value=c),e.k&&(h[e.k]=c))};if(c){let t=()=>{i(),rr.delete(e)};t.id=-1,rr.set(e,t),fi(t,n)}else ar(e),i()}}}function ar(e){let t=rr.get(e);t&&(t.flags|=8,rr.delete(e))}ae().requestIdleCallback,ae().cancelIdleCallback;var or=e=>!!e.type.__asyncLoader,sr=e=>e.type.__isKeepAlive;function cr(e,t){ur(e,`a`,t)}function lr(e,t){ur(e,`da`,t)}function ur(e,t,n=Ji){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(dr(t,r,n),n){let e=n.parent;for(;e&&e.parent;)sr(e.parent.vnode)&&bee(r,t,n,e),e=e.parent}}function bee(e,t,n,r){let i=dr(t,e,r,!0);vr(()=>{u(r[t],i)},n)}function dr(e,t,n=Ji,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{Ue();let i=Qi(n),a=tn(t,n,e,r);return i(),We(),a};return r?i.unshift(a):i.push(a),a}}var fr=e=>(t,n=Ji)=>{(!ta||e===`sp`)&&dr(e,(...e)=>t(...e),n)},pr=fr(`bm`),mr=fr(`m`),hr=fr(`bu`),gr=fr(`u`),_r=fr(`bum`),vr=fr(`um`),xee=fr(`sp`),See=fr(`rtg`),Cee=fr(`rtc`);function wee(e,t=Ji){dr(`ec`,e,t)}var yr=`components`,Tee=`directives`;function br(e,t){return Cr(yr,e,!0,t)||e}var xr=Symbol.for(`v-ndc`);function Sr(e){return v(e)?Cr(yr,e,!1)||e:e||xr}function Eee(e){return Cr(Tee,e)}function Cr(e,t,n=!0,r=!1){let i=vn||Ji;if(i){let n=i.type;if(e===yr){let e=$ee(n,!1);if(e&&(e===t||e===A(t)||e===ee(A(t))))return n}let a=wr(i[e]||n[e],t)||wr(i.appContext[e],t);return!a&&r?n:a}}function wr(e,t){return e&&(e[t]||e[A(t)]||e[ee(A(t))])}function Tr(e,t,n,r){let i,a=n&&n[r],o=p(e);if(o||v(e)){let n=o&&jt(e),r=!1,s=!1;n&&(r=!Nt(e),s=Mt(e),e=it(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r0;return t!=="default"&&(n.name=t),Ei(),ji(bi,null,[V(`slot`,n,r&&r())],e?-2:64)}let a=e[t];a&&a._c&&(a._d=!1),Ei();let o=a&&Er(a(n)),s=n.key||o&&o.key,c=ji(bi,{key:(s&&!y(s)?s:`_${t}`)+(!o&&r?`_fb`:``)},o||(r?r():[]),o&&e._===1?64:-2);return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),a&&a._c&&(a._d=!0),c}function Er(e){return e.some(e=>!Mi(e)||!(e.type===Si||e.type===bi&&!Er(e.children)))?e:null}var Dr=e=>e?ea(e)?oa(e):Dr(e.parent):null,Or=l(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Dr(e.parent),$root:e=>Dr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Pr(e),$forceUpdate:e=>e.f||=()=>{fn(e.update)},$nextTick:e=>e.n||=dn.bind(e.proxy),$watch:e=>_ee.bind(e)}),kr=(e,t)=>e!==r&&!e.__isScriptSetup&&f(e,t),Oee={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(t[0]!==`$`){let e=s[t];if(e!==void 0)switch(e){case 1:return i[t];case 2:return a[t];case 4:return n[t];case 3:return o[t]}else if(kr(i,t))return s[t]=1,i[t];else if(a!==r&&f(a,t))return s[t]=2,a[t];else if(f(o,t))return s[t]=3,o[t];else if(n!==r&&f(n,t))return s[t]=4,n[t];else jr&&(s[t]=0)}let u=Or[t],d,p;if(u)return t===`$attrs`&&et(e.attrs,`get`,``),u(e);if((d=c.__cssModules)&&(d=d[t]))return d;if(n!==r&&f(n,t))return s[t]=4,n[t];if(p=l.config.globalProperties,f(p,t))return p[t]},set({_:e},t,n){let{data:i,setupState:a,ctx:o}=e;return kr(a,t)?(a[t]=n,!0):i!==r&&f(i,t)?(i[t]=n,!0):f(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(n[c]||e!==r&&c[0]!==`$`&&f(e,c)||kr(t,c)||f(o,c)||f(i,c)||f(Or,c)||f(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?f(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function Ar(e){return p(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var jr=!0;function kee(e){let t=Pr(e),n=e.proxy,r=e.ctx;jr=!1,t.beforeCreate&&Mr(t.beforeCreate,e,`bc`);let{data:i,computed:o,methods:s,watch:c,provide:l,inject:u,created:d,beforeMount:f,mounted:m,beforeUpdate:h,updated:g,activated:v,deactivated:y,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:T,renderTracked:E,renderTriggered:D,errorCaptured:O,serverPrefetch:k,expose:A,inheritAttrs:j,components:M,directives:ee,filters:N}=t;if(u&&Aee(u,r,null),s)for(let e in s){let t=s[e];_(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);b(t)&&(e.data=Dt(t))}if(jr=!0,o)for(let e in o){let t=o[e],i=U({get:_(t)?t.bind(n,n):_(t.get)?t.get.bind(n,n):a,set:!_(t)&&_(t.set)?t.set.bind(n):a});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(c)for(let e in c)Nr(c[e],r,n,e);if(l){let e=_(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{Cn(t,e[t])})}d&&Mr(d,e,`c`);function P(e,t){p(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(P(pr,f),P(mr,m),P(hr,h),P(gr,g),P(cr,v),P(lr,y),P(wee,O),P(Cee,E),P(See,D),P(_r,S),P(vr,w),P(xee,k),p(A))if(A.length){let t=e.exposed||={};A.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};T&&e.render===a&&(e.render=T),j!=null&&(e.inheritAttrs=j),M&&(e.components=M),ee&&(e.directives=ee),k&&tr(e)}function Aee(e,t,n=a){p(e)&&(e=Lr(e));for(let n in e){let r=e[n],i;i=b(r)?`default`in r?wn(r.from||n,r.default,!0):wn(r.from||n):wn(r),zt(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function Mr(e,t,n){tn(p(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Nr(e,t,n,r){let i=r.includes(`.`)?Dn(n,r):()=>n[r];if(v(e)){let n=t[e];_(n)&&R(i,n)}else if(_(e))R(i,e.bind(n));else if(b(e))if(p(e))e.forEach(e=>Nr(e,t,n,r));else{let r=_(e.handler)?e.handler.bind(n):t[e.handler];_(r)&&R(i,r,e)}}function Pr(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>Fr(c,e,o,!0)),Fr(c,t,o)),b(t)&&a.set(t,c),c}function Fr(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&Fr(e,a,n,!0),i&&i.forEach(t=>Fr(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=jee[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var jee={data:Ir,props:Br,emits:Br,methods:zr,computed:zr,beforeCreate:Rr,created:Rr,beforeMount:Rr,mounted:Rr,beforeUpdate:Rr,updated:Rr,beforeDestroy:Rr,beforeUnmount:Rr,destroyed:Rr,unmounted:Rr,activated:Rr,deactivated:Rr,errorCaptured:Rr,serverPrefetch:Rr,components:zr,directives:zr,watch:Nee,provide:Ir,inject:Mee};function Ir(e,t){return t?e?function(){return l(_(e)?e.call(this,this):e,_(t)?t.call(this,this):t)}:t:e}function Mee(e,t){return zr(Lr(e),Lr(t))}function Lr(e){if(p(e)){let t={};for(let n=0;nt===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${A(t)}Modifiers`]||e[`${M(t)}Modifiers`];function Lee(e,t,...n){if(e.isUnmounted)return;let i=e.vnode.props||r,a=n,o=t.startsWith(`update:`),s=o&&Iee(i,t.slice(7));s&&(s.trim&&(a=n.map(e=>v(e)?e.trim():e)),s.number&&(a=n.map(ne)));let c,l=i[c=N(t)]||i[c=N(A(t))];!l&&o&&(l=i[c=N(M(t))]),l&&tn(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,tn(u,e,6,a)}}var Ree=new WeakMap;function Ur(e,t,n=!1){let r=n?Ree:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!_(e)){let r=e=>{let n=Ur(e,t,!0);n&&(s=!0,l(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(b(e)&&r.set(e,null),null):(p(a)?a.forEach(e=>o[e]=null):l(o,a),b(e)&&r.set(e,o),o)}function Wr(e,t){return!e||!s(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),f(e,t[0].toLowerCase()+t.slice(1))||f(e,M(t))||f(e,t))}function Gr(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=bn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Vi(u.call(t,e,d,f,m,p,h)),y=s}else{let e=t;v=Vi(e.length>1?e(f,{attrs:s,slots:o,emit:l}):e(f,null)),y=t.props?s:Kr(s)}}catch(t){wi.length=0,nn(t,e,1),v=V(Si)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(c)&&(y=qr(y,a)),b=Ri(b,y,!1,!0))}return n.dirs&&(b=Ri(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&$n(b,n.transition),v=b,bn(_),v}var Kr=e=>{let t;for(let n in e)(n===`class`||n===`style`||s(n))&&((t||={})[n]=e[n]);return t},qr=(e,t)=>{let n={};for(let r in e)(!c(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Jr(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Yr(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(Qr),ei=e=>Object.getPrototypeOf(e)===Qr;function ti(e,t,n,r=!1){let i={},a=$r();e.propsDefaults=Object.create(null),ri(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=r?i:Ot(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function ni(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=Ft(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r{d=!0;let[n,r]=ai(e,t,!0);l(c,n),r&&u.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!s&&!d)return b(e)&&a.set(e,i),i;if(p(s))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,ci=e=>p(e)?e.map(Vi):[Vi(e)],Bee=(e,t,n)=>{if(t._n)return t;let r=L((...e)=>ci(t(...e)),n);return r._c=!1,r},li=(e,t,n)=>{let r=e._ctx;for(let n in e){if(si(n))continue;let i=e[n];if(_(i))t[n]=Bee(n,i,r);else if(i!=null){let e=ci(i);t[n]=()=>e}}},ui=(e,t)=>{let n=ci(t);e.slots.default=()=>n},di=(e,t,n)=>{for(let r in t)(n||!si(r))&&(e[r]=t[r])},Vee=(e,t,n)=>{let r=e.slots=$r();if(e.vnode.shapeFlag&32){let e=t._;e?(di(r,t,n),n&&te(r,`_`,e,!0)):li(t,r)}else t&&ui(e,t)},Hee=(e,t,n)=>{let{vnode:i,slots:a}=e,o=!0,s=r;if(i.shapeFlag&32){let e=t._;e?n&&e===1?o=!1:di(a,t,n):(o=!t.$stable,li(t,a)),s=t}else t&&(ui(e,t),s={default:1});if(o)for(let e in a)!si(e)&&s[e]==null&&delete a[e]},fi=qee;function Uee(e){return Wee(e)}function Wee(e,t){let n=ae();n.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=a,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Ni(e,t)&&(r=pe(e),ce(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case xi:y(e,t,n,r);break;case Si:b(e,t,n,r);break;case Ci:e??x(t,n,r,o);break;case bi:M(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?ee(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,ge)}u!=null&&i?ir(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&ir(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)T(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),k(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},T=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&O(e.children,d,null,r,i,pi(e,a),s,u),_&&Sn(e,null,r,`created`),E(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!D(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&Wi(f,r,e)}_&&Sn(e,null,r,`beforeMount`);let v=Gee(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&fi(()=>{try{f&&Wi(f,r,e),v&&g.enter(d),_&&Sn(e,null,r,`mounted`)}finally{}},i)},E=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let l=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=t;u|=e.patchFlag&16;let m=e.props||r,h=t.props||r,g;if(n&&mi(n,!1),(g=h.onVnodeBeforeUpdate)&&Wi(g,n,t,e),f&&Sn(t,e,n,`beforeUpdate`),n&&mi(n,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(u=0,s=!1,d=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?A(e.dynamicChildren,d,l,n,i,pi(t,a),o):s||re(e,t,l,null,n,i,pi(t,a),o,!1),u>0){if(u&16)j(l,m,h,n,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=t.dynamicProps;for(let t=0;t{g&&Wi(g,n,t,e),f&&Sn(t,e,n,`updated`)},i)},A=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(t!==n){if(t!==r)for(let r in t)!D(r)&&!(r in n)&&c(e,r,t[r],null,a,i);for(let r in n){if(D(r))continue;let o=n[r],s=t[r];o!==s&&r!==`value`&&c(e,r,s,o,a,i)}`value`in n&&c(e,`value`,t.value,n.value,a)}},M=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),O(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(A(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&hi(e,t,!0)):re(e,t,n,f,i,a,s,c,l)},ee=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):N(t,n,r,i,a,o,c):P(e,t,c)},N=(e,t,n,r,i,a,o)=>{let s=e.component=qi(e,r,i);if(sr(e)&&(s.ctx.renderer=ge),Yee(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,te,o),!e.el){let r=s.subTree=V(Si);b(null,r,t,n),e.placeholder=r.el}}else te(s,e,t,n,i,a,o)},P=(e,t,n)=>{let r=t.component=e.component;if(Jr(e,t,n))if(r.asyncDep&&!r.asyncResolved){ne(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},te=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=gi(e);if(n){t&&(t.el=c.el,ne(e,t,o)),n.asyncDep.then(()=>{fi(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;mi(e,!1),t?(t.el=c.el,ne(e,t,o)):t=c,n&&F(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&Wi(d,s,t,c),mi(e,!0);let f=Gr(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),pe(p),e,i,a),t.el=f.el,u===null&&Zr(e,f.el),r&&fi(r,i),(d=t.props&&t.props.onVnodeUpdated)&&fi(()=>Wi(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=or(t);if(mi(e,!1),l&&F(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Wi(o,d,t),mi(e,!0),s&&ve){let t=()=>{e.subTree=Gr(e),ve(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=Gr(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&fi(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;fi(()=>Wi(o,d,e),i)}(t.shapeFlag&256||d&&or(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&fi(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Oe(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>fn(u),mi(e,!0),l()},ne=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,ni(e,t.props,r,n),Hee(e,t.children,n),Ue(),mn(e),We()},re=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){oe(l,d,n,r,i,a,o,s,c);return}else if(f&256){ie(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&fe(l,i,a),d!==l&&p(n,d)):u&16?m&16?oe(l,d,n,r,i,a,o,s,c):fe(l,i,a,!0):(u&8&&p(n,``),m&16&&O(d,n,r,i,a,o,s,c))},ie=(e,t,n,r,a,o,s,c,l)=>{e||=i,t||=i;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;pd?fe(e,a,o,!0,!1,f):O(t,n,r,a,o,s,c,l,f)},oe=(e,t,n,r,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let r=e[u],i=t[u]=l?Hi(t[u]):Vi(t[u]);if(Ni(r,i))v(r,i,n,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let r=e[f],i=t[p]=l?Hi(t[p]):Vi(t[p]);if(Ni(r,i))v(r,i,n,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,i=ep)for(;u<=f;)ce(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?Hi(t[u]):Vi(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u=b){ce(r,a,o,!0);continue}let i;if(r.key!=null)i=g.get(r.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Ni(r,t[_])){i=_;break}i===void 0?ce(r,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(r,t[i],n,null,a,o,s,c,l),y++)}let w=x?Kee(C):i;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,i=t[e],f=t[e+1],p=e+1{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){se(e.component.subTree,t,n,r);return}if(d&128){e.suspense.move(t,n,r);return}if(d&64){c.move(e,t,n,ge);return}if(c===bi){o(a,t,n);for(let e=0;el.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[Bn];a._isLeaving&&a[Bn](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}else o(a,t,n)},ce=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(Ue(),ir(s,null,n,e,!0),We()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!or(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Wi(_,t,e),u&6)de(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Sn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,ge,r):l&&!l.hasOnce&&(a!==bi||d>0&&d&64)?fe(l,t,n,!1,!0):(a===bi&&d&384||!i&&u&16)&&fe(c,t,n),r&&le(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&fi(()=>{_&&Wi(_,t,e),h&&Sn(e,null,t,`unmounted`),v&&(e.el=null)},n)},le=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===bi){ue(n,r);return}if(t===Ci){C(e);return}let a=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(e.shapeFlag&1&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,a);r?r(e.el,a,o):o()}else a()},ue=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},de=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;_i(c),_i(l),r&&F(r),i.stop(),a&&(a.flags|=8,ce(o,e,t,n)),s&&fi(s,t),fi(()=>{e.isUnmounted=!0},t)},fe=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return pe(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[kn];return n?h(n):t},me=!1,he=(e,t,n)=>{let r;e==null?t._vnode&&(ce(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,me||=(me=!0,mn(r),hn(),!1)},ge={p:v,um:ce,m:se,r:le,mt:N,mc:O,pc:re,pbc:A,n:pe,o:e},_e,ve;return t&&([_e,ve]=t(ge)),{render:he,hydrate:_e,createApp:Fee(he,_e)}}function pi({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function mi({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Gee(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function hi(e,t,n=!1){let r=e.children,i=t.children;if(p(r)&&p(i))for(let e=0;e>1,e[n[s]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-->0;)n[a]=o,o=t[o];return n}function gi(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:gi(t)}function _i(e){if(e)for(let t=0;te.__isSuspense;function qee(e,t){t&&t.pendingBranch?p(e)?t.effects.push(...e):t.effects.push(e):mee(e)}var bi=Symbol.for(`v-fgt`),xi=Symbol.for(`v-txt`),Si=Symbol.for(`v-cmt`),Ci=Symbol.for(`v-stc`),wi=[],Ti=null;function Ei(e=!1){wi.push(Ti=e?null:[])}function Jee(){wi.pop(),Ti=wi[wi.length-1]||null}var Di=1;function Oi(e,t=!1){Di+=e,e<0&&Ti&&t&&(Ti.hasOnce=!0)}function ki(e){return e.dynamicChildren=Di>0?Ti||i:null,Jee(),Di>0&&Ti&&Ti.push(e),e}function Ai(e,t,n,r,i,a){return ki(B(e,t,n,r,i,a,!0))}function ji(e,t,n,r,i){return ki(V(e,t,n,r,i,!0))}function Mi(e){return e?e.__v_isVNode===!0:!1}function Ni(e,t){return e.type===t.type&&e.key===t.key}var Pi=({key:e})=>e??null,Fi=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:v(e)||zt(e)||_(e)?{i:vn,r:e,k:t,f:!!n}:e);function B(e,t=null,n=null,r=0,i=null,a=e===bi?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Pi(t),ref:t&&Fi(t),scopeId:yn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:vn};return s?(Ui(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=v(n)?8:16),Di>0&&!o&&Ti&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&Ti.push(c),c}var V=Ii;function Ii(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===xr)&&(e=Si),Mi(e)){let r=Ri(e,t,!0);return n&&Ui(r,n),Di>0&&!a&&Ti&&(r.shapeFlag&6?Ti[Ti.indexOf(e)]=r:Ti.push(r)),r.patchFlag=-2,r}if(ete(e)&&(e=e.__vccOpts),t){t=Li(t);let{class:e,style:n}=t;e&&!v(e)&&(t.class=de(e)),b(n)&&(Pt(n)&&!p(n)&&(n=l({},n)),t.style=oe(n))}let o=v(e)?1:yi(e)?128:An(e)?64:b(e)?4:_(e)?2:0;return B(e,t,n,r,i,o,a,!0)}function Li(e){return e?Pt(e)||ei(e)?l({},e):e:null}function Ri(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?H(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Pi(l),ref:t&&t.ref?n&&a?p(a)?a.concat(Fi(t)):[a,Fi(t)]:Fi(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==bi?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ri(e.ssContent),ssFallback:e.ssFallback&&Ri(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&$n(u,c.clone(u)),u}function zi(e=` `,t=0){return V(xi,null,e,t)}function Bi(e=``,t=!1){return t?(Ei(),ji(Si,null,e)):V(Si,null,e)}function Vi(e){return e==null||typeof e==`boolean`?V(Si):p(e)?V(bi,null,e.slice()):Mi(e)?Hi(e):V(xi,null,String(e))}function Hi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ri(e)}function Ui(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(p(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),Ui(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!ei(t)?t._ctx=vn:r===3&&vn&&(vn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(_(t)){if(r&65){Ui(e,{default:t});return}t={default:t,_ctx:vn},n=32}else t=String(t),r&64?(n=16,t=[zi(t)]):n=8;e.children=t,e.shapeFlag|=n}function H(...e){let t={};for(let n=0;nJi||vn,Xi,Zi;{let e=ae(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};Xi=t(`__VUE_INSTANCE_SETTERS__`,e=>Ji=e),Zi=t(`__VUE_SSR_SETTERS__`,e=>ta=e)}var Qi=e=>{let t=Ji;return Xi(e),e.scope.on(),()=>{e.scope.off(),Xi(t)}},$i=()=>{Ji&&Ji.scope.off(),Xi(null)};function ea(e){return e.vnode.shapeFlag&4}var ta=!1;function Yee(e,t=!1,n=!1){t&&Zi(t);let{props:r,children:i}=e.vnode,a=ea(e);ti(e,r,a,t),Vee(e,i,n||t);let o=a?Xee(e,t):void 0;return t&&Zi(!1),o}function Xee(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Oee);let{setup:r}=n;if(r){Ue();let n=e.setupContext=r.length>1?Qee(e):null,i=Qi(e),a=en(r,e,0,[e.props,n]),o=x(a);if(We(),i(),(o||e.sp)&&!or(e)&&tr(e),o){if(a.then($i,$i),t)return a.then(n=>{na(e,n,t)}).catch(t=>{nn(t,e,0)});e.asyncDep=a}else na(e,a,t)}else aa(e,t)}function na(e,t,n){_(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:b(t)&&(e.setupState=Ut(t)),aa(e,n)}var ra,ia;function aa(e,t,n){let r=e.type;if(!e.render){if(!t&&ra&&!r.render){let t=r.template||Pr(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:o}=r;r.render=ra(t,l(l({isCustomElement:n,delimiters:a},i),o))}}e.render=r.render||a,ia&&ia(e)}{let t=Qi(e);Ue();try{kee(e)}finally{We(),t()}}}var Zee={get(e,t){return et(e,`get`,``),e[t]}};function Qee(e){return{attrs:new Proxy(e.attrs,Zee),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function oa(e){return e.exposed?e.exposeProxy||=new Proxy(Ut(It(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Or)return Or[n](e)},has(e,t){return t in e||t in Or}}):e.proxy}function $ee(e,t=!0){return _(e)?e.displayName||e.name:e.name||t&&e.__name}function ete(e){return _(e)&&`__vccOpts`in e}var U=(e,t)=>qt(e,t,ta);function sa(e,t,n){try{Oi(-1);let r=arguments.length;return r===2?b(t)&&!p(t)?Mi(t)?V(e,null,[t]):V(e,t):V(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Mi(n)&&(n=[n]),V(e,t,n))}finally{Oi(1)}}var tte=`3.5.39`,ca=void 0,la=typeof window<`u`&&window.trustedTypes;if(la)try{ca=la.createPolicy(`vue`,{createHTML:e=>e})}catch{}var ua=ca?e=>ca.createHTML(e):e=>e,nte=`http://www.w3.org/2000/svg`,rte=`http://www.w3.org/1998/Math/MathML`,da=typeof document<`u`?document:null,fa=da&&da.createElement(`template`),ite={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?da.createElementNS(nte,e):t===`mathml`?da.createElementNS(rte,e):n?da.createElement(e,{is:n}):da.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>da.createTextNode(e),createComment:e=>da.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>da.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{fa.innerHTML=ua(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=fa.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},pa=`transition`,ma=`animation`,ha=Symbol(`_vtc`),ga={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},_a=l({},Wn,ga),va=(e=>(e.displayName=`Transition`,e.props=_a,e))((e,{slots:t})=>sa(Jn,xa(e),t)),ya=(e,t=[])=>{p(e)?e.forEach(e=>e(...t)):e&&e(...t)},ba=e=>e?p(e)?e.some(e=>e.length>1):e.length>1:!1;function xa(e){let t={};for(let n in e)n in ga||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:u=o,appearToClass:d=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,h=ate(i),g=h&&h[0],_=h&&h[1],{onBeforeEnter:v,onEnter:y,onEnterCancelled:b,onLeave:x,onLeaveCancelled:S,onBeforeAppear:C=v,onAppear:w=y,onAppearCancelled:T=b}=t,E=(e,t,n,r)=>{e._enterCancelled=r,wa(e,t?d:s),wa(e,t?u:o),n&&n()},D=(e,t)=>{e._isLeaving=!1,wa(e,f),wa(e,m),wa(e,p),t&&t()},O=e=>(t,n)=>{let i=e?w:y,o=()=>E(t,e,n);ya(i,[t,o]),Ta(()=>{wa(t,e?c:a),Ca(t,e?d:s),ba(i)||Ea(t,r,g,o)})};return l(t,{onBeforeEnter(e){ya(v,[e]),Ca(e,a),Ca(e,o)},onBeforeAppear(e){ya(C,[e]),Ca(e,c),Ca(e,u)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>D(e,t);Ca(e,f),e._enterCancelled?(Ca(e,p),Aa(e)):(Aa(e),Ca(e,p)),Ta(()=>{e._isLeaving&&(wa(e,f),Ca(e,m),ba(x)||Ea(e,r,_,n))}),ya(x,[e,n])},onEnterCancelled(e){E(e,!1,void 0,!0),ya(b,[e])},onAppearCancelled(e){E(e,!0,void 0,!0),ya(T,[e])},onLeaveCancelled(e){D(e),ya(S,[e])}})}function ate(e){if(e==null)return null;if(b(e))return[Sa(e.enter),Sa(e.leave)];{let t=Sa(e);return[t,t]}}function Sa(e){return re(e)}function Ca(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[ha]||(e[ha]=new Set)).add(t)}function wa(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[ha];n&&(n.delete(t),n.size||(e[ha]=void 0))}function Ta(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var ote=0;function Ea(e,t,n,r){let i=e._endId=++ote,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Da(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u(n[e]||``).split(`, `),i=r(`${pa}Delay`),a=r(`${pa}Duration`),o=Oa(i,a),s=r(`${ma}Delay`),c=r(`${ma}Duration`),l=Oa(s,c),u=null,d=0,f=0;t===pa?o>0&&(u=pa,d=o,f=a.length):t===ma?l>0&&(u=ma,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?pa:ma:null,f=u?u===pa?a.length:c.length:0);let p=u===pa&&/\b(?:transform|all)(?:,|$)/.test(r(`${pa}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Oa(e,t){for(;e.lengthka(t)+ka(e[n])))}function ka(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function Aa(e){return(e?e.ownerDocument:document).body.offsetHeight}function ste(e,t,n){let r=e[ha];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var ja=Symbol(`_vod`),Ma=Symbol(`_vsh`),Na={name:`show`,beforeMount(e,{value:t},{transition:n}){e[ja]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):Pa(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Pa(e,!0),r.enter(e)):r.leave(e,()=>{Pa(e,!1)}):Pa(e,t))},beforeUnmount(e,{value:t}){Pa(e,t)}};function Pa(e,t){e.style.display=t?e[ja]:`none`,e[Ma]=!t}var cte=Symbol(``),lte=/(?:^|;)\s*display\s*:/;function ute(e,t,n){let r=e.style,i=v(n),a=!1;if(n&&!i){if(t)if(v(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Ia(r,t,``)}else for(let e in t)n[e]??Ia(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Ia(r,i,``):fte(e,i,!v(t)&&t?t[i]:void 0,o)||Ia(r,i,o)}}else if(i){if(t!==n){let e=r[cte];e&&(n+=`;`+e),r.cssText=n,a=lte.test(n)}}else t&&e.removeAttribute(`style`);ja in e&&(e[ja]=a?r.display:``,e[Ma]&&(r.display=`none`))}var Fa=/\s*!important$/;function Ia(e,t,n){if(p(n))n.forEach(n=>Ia(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=dte(e,t);Fa.test(n)?e.setProperty(M(r),n.replace(Fa,``),`important`):e[r]=n}}var La=[`Webkit`,`Moz`,`ms`],Ra={};function dte(e,t){let n=Ra[t];if(n)return n;let r=A(t);if(r!==`filter`&&r in e)return Ra[t]=r;r=ee(r);for(let n=0;nUa||=(yte.then(()=>Ua=0),Date.now());function xte(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(p(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ste=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?ste(e,r,o):t===`style`?ute(e,n,r):s(t)?c(t)||hte(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):Cte(e,t,r,o))?(Va(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Ba(e,t,r,o,a,t!==`value`)):e._isVueCE&&(wte(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!v(r)))?Va(e,A(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Ba(e,t,r,o))};function Cte(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Wa(t)&&_(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return Wa(t)&&v(n)?!1:t in e}function wte(e,t){let n=e._def.props;if(!n)return!1;let r=A(t);return Array.isArray(n)?n.some(e=>A(e)===r):Object.keys(n).some(e=>A(e)===r)}var Ga=new WeakMap,Ka=new WeakMap,qa=Symbol(`_moveCb`),Ja=Symbol(`_enterCb`),Tte=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:l({},_a,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=Yi(),r=Hn(),i,a;return gr(()=>{if(!i.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!kte(i[0].el,n.vnode.el,t)){i=[];return}i.forEach(Ete),i.forEach(Dte);let r=i.filter(Ote);Aa(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;Ca(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[qa]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[qa]=null,wa(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let o=Ft(e),s=xa(o),c=o.tag||bi;if(i=[],a)for(let e=0;e{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=Da(r);return a.removeChild(r),o}var Ate=l({patchProp:Ste},ite),jte;function Xa(){return jte||=Uee(Ate)}var Za=((...e)=>{Xa().render(...e)}),Mte=((...e)=>{let t=Xa().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Pte(e);if(!r)return;let i=t._component;!_(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Nte(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Nte(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Pte(e){return v(e)?document.querySelector(e):e}var Fte=typeof window<`u`,Ite=Symbol(),Lte;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(Lte||={});var Qa=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Rte(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function $a(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){zte(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function eo(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function to(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var no=typeof navigator==`object`?navigator:{userAgent:``},ro=/Macintosh/.test(no.userAgent)&&/AppleWebKit/.test(no.userAgent)&&!/Safari/.test(no.userAgent),zte=Fte?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!ro?Bte:`msSaveOrOpenBlob`in no?Vte:Hte:()=>{};function Bte(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?to(r):eo(r.href)?$a(e,t,n):(r.target=`_blank`,to(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){to(r)},0))}function Vte(e,t=`download`,n){if(typeof e==`string`)if(eo(e))$a(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){to(t)})}else navigator.msSaveOrOpenBlob(Rte(e,n),t)}function Hte(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return $a(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Qa.HTMLElement))||`safari`in Qa,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||ro)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:Ute}=Object;function Wte(){let e=Ce(!0),t=e.run(()=>I({})),n=[],r=[],i=It({install(e){i._a=e,e.provide(Ite,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var{assign:Gte}=Object;function io(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0){if(++t>=Uo)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Dne(e){return function(){return e}}var Ko=function(){try{var e=Lo(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),qo=Ene(Ko?function(e,t){return Ko(e,`toString`,{configurable:!0,enumerable:!1,value:Dne(t),writable:!0})}:No);function One(e,t){for(var n=-1,r=e==null?0:e.length;++n-1}var Nne=9007199254740991,Pne=/^(?:0|[1-9]\d*)$/;function Yo(e,t){var n=typeof e;return t??=Nne,!!t&&(n==`number`||n!=`symbol`&&Pne.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=Ine}function is(e){return e!=null&&rs(e.length)&&!q(e)}function as(e,t,n){if(!Do(n))return!1;var r=typeof t;return(r==`number`?is(n)&&Yo(t,n.length):r==`string`&&t in n)?Zo(n[t],e):!1}function os(e){return ns(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(a=e.length>3&&typeof a==`function`?(i--,a):void 0,o&&as(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r-1}function pre(e,t){var n=this.__data__,r=ec(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function tc(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(s)?t>1?fc(s,t-1,n,r,i):uc(i,s):r||(i[i.length]=s)}return i}function Ore(e){return e!=null&&e.length?fc(e,1):[]}function pc(e){return qo(ts(e,void 0,Ore),e+``)}var mc=js(Object.getPrototypeOf,Object),kre=`[object Object]`,Are=Function.prototype,jre=Object.prototype,hc=Are.toString,Mre=jre.hasOwnProperty,Nre=hc.call(Object);function gc(e){if(!bo(e)||yo(e)!=kre)return!1;var t=mc(e);if(t===null)return!0;var n=Mre.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&hc.call(n)==Nre}function _c(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r=r?e:_c(e,t,n)}var Pre=RegExp(`[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]`);function yc(e){return Pre.test(e)}function Fre(e){return e.split(``)}var bc=`\\ud800-\\udfff`,Ire=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,Lre=`\\ufe0e\\ufe0f`,Rre=`[`+bc+`]`,xc=`[`+Ire+`]`,Sc=`\\ud83c[\\udffb-\\udfff]`,zre=`(?:`+xc+`|`+Sc+`)`,Cc=`[^`+bc+`]`,wc=`(?:\\ud83c[\\udde6-\\uddff]){2}`,Tc=`[\\ud800-\\udbff][\\udc00-\\udfff]`,Bre=`\\u200d`,Ec=zre+`?`,Dc=`[`+Lre+`]?`,Vre=`(?:`+Bre+`(?:`+[Cc,wc,Tc].join(`|`)+`)`+Dc+Ec+`)*`,Hre=Dc+Ec+Vre,Ure=`(?:`+[Cc+xc+`?`,xc,wc,Tc,Rre].join(`|`)+`)`,Wre=RegExp(Sc+`(?=`+Sc+`)|`+Ure+Hre,`g`);function Gre(e){return e.match(Wre)||[]}function Oc(e){return yc(e)?Gre(e):Fre(e)}function Kre(e){return function(t){t=oc(t);var n=yc(t)?Oc(t):void 0,r=n?n[0]:t.charAt(0),i=n?vc(n,1).join(``):t.slice(1);return r[e]()+i}}var kc=Kre(`toUpperCase`);function qre(e){return kc(oc(e).toLowerCase())}function Jre(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++is))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&fu?new cu:void 0;for(a.set(e,t),a.set(t,e);++d=t||n<0||d&&r>=a}function _(){var e=ud();if(g(e))return v(e);s=setTimeout(_,h(e))}function v(e){return s=void 0,f&&r?p(e):(r=i=void 0,o)}function y(){s!==void 0&&clearTimeout(s),l=0,r=c=i=s=void 0}function b(){return s===void 0?o:v(ud())}function x(){var e=ud(),n=g(e);if(r=arguments,i=this,c=e,n){if(s===void 0)return m(c);if(d)return clearTimeout(s),s=setTimeout(_,t),p(c)}return s===void 0&&(s=setTimeout(_,t)),o}return x.cancel=y,x.flush=b,x}function hd(e,t,n){(n!==void 0&&!Zo(e[t],n)||n===void 0&&!(t in e))&&Xo(e,t,n)}function gd(e){return bo(e)&&is(e)}function _d(e,t){if(!(t===`constructor`&&typeof e[t]==`function`)&&t!=`__proto__`)return e[t]}function vd(e){return $o(e,zs(e))}function yd(e,t,n,r,i,a,o){var s=_d(e,n),c=_d(t,n),l=o.get(c);if(l){hd(e,n,l);return}var u=a?a(s,c,n+``,e,t,o):void 0,d=u===void 0;if(d){var f=K(c),p=!f&&ms(c),m=!f&&!p&&Os(c);u=c,f||p||m?K(s)?u=s:gd(s)?u=Ho(s):p?(d=!1,u=nl(c,!0)):m?(d=!1,u=Tl(c,!0)):u=[]:gc(c)||us(c)?(u=s,us(s)?u=vd(s):(!Do(s)||q(s))&&(u=El(c))):d=!1}d&&(o.set(c,u),i(u,c,r,a,o),o.delete(c)),hd(e,n,u)}function bd(e,t,n,r,i){e!==t&&od(t,function(a,o){if(i||=new Zc,Do(a))yd(e,t,o,n,bd,r,i);else{var s=r?r(_d(e,o),a,o+``,e,t,i):void 0;s===void 0&&(s=a),hd(e,o,s)}},zs)}var xd=os(function(e,t,n,r){bd(e,t,n,r)});function Sd(e,t,n){for(var r=-1,i=e==null?0:e.length;++r=Cd&&(a=uu,o=!1,t=new cu(t));outer:for(;++it}var Nd=Math.max,Pd=Math.min;function Fd(e,t,n){return e>=Pd(t,n)&&e=120&&u.length>=120)?new cu(o&&u):void 0}u=e[0];var d=-1,f=s[0];outer:for(;++d1,t}),$o(e,ul(e),n),r&&(n=tu(n,yf|bf|xf,vf));for(var i=t.length;i--;)_f(n,t[i]);return n});function Cf(e,t,n,r){if(!Do(e))return e;t=sc(t,e);for(var i=-1,a=t.length,o=a-1,s=e;s!=null&&++iEae)return n;do t%2&&(n+=e),t=Dae(t/2),t&&(e+=e);while(t);return n}var Oae=td(`length`),Df=`\\ud800-\\udfff`,kae=`\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff`,Aae=`\\ufe0e\\ufe0f`,jae=`[`+Df+`]`,Of=`[`+kae+`]`,kf=`\\ud83c[\\udffb-\\udfff]`,Mae=`(?:`+Of+`|`+kf+`)`,Af=`[^`+Df+`]`,jf=`(?:\\ud83c[\\udde6-\\uddff]){2}`,Mf=`[\\ud800-\\udbff][\\udc00-\\udfff]`,Nae=`\\u200d`,Nf=Mae+`?`,Pf=`[`+Aae+`]?`,Pae=`(?:`+Nae+`(?:`+[Af,jf,Mf].join(`|`)+`)`+Pf+Nf+`)*`,Fae=Pf+Nf+Pae,Iae=`(?:`+[Af+Of+`?`,Of,jf,Mf,jae].join(`|`)+`)`,Ff=RegExp(kf+`(?=`+kf+`)|`+Iae+Fae,`g`);function Lae(e){for(var t=Ff.lastIndex=0;Ff.test(e);)++t;return t}function If(e){return yc(e)?Lae(e):Oae(e)}var Rae=Math.ceil;function zae(e,t){t=t===void 0?` `:To(t);var n=t.length;if(n<2)return n?Ef(t,e):t;var r=Ef(t,Rae(e/If(t)));return yc(t)?vc(Oc(r),0,e).join(``):r.slice(0,e)}function Lf(e,t,n){e=oc(e),t=Mo(t);var r=t?If(e):0;return t&&r=Xae){var l=t?null:Yae(e);if(l)return hu(l);o=!1,i=uu,c=new cu}else c=t?[]:s;outer:for(;++r`u`?qf:window,Qf=[`moz`,`webkit`],$f=`AnimationFrame`,ep=Zf[`request`+$f],tp=Zf[`cancel`+$f]||Zf[`cancelRequest`+$f],np=0;!ep&&np`u`,soe=function(e){return(e||``).replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,``)},cp=function(){return!sp&&document.addEventListener?function(e,t,n,r){e&&t&&n&&e.addEventListener(t,n,r)}:function(e,t,n){e&&t&&n&&e.attachEvent(`on${t}`,n)}}(),lp=function(){return!sp&&document.removeEventListener?function(e,t,n,r){e&&t&&e.removeEventListener(t,n,r)}:function(e,t,n){e&&t&&e.detachEvent(`on${t}`,n)}}();function coe(e,t,n,r){var i=q(n)?n:n.handleEvent,a=function(n){i(n),lp(e,t,a,r)};cp(e,t,a,r)}function up(e,t){if(!e||!t)return!1;if(t.indexOf(` `)!==-1)throw Error(`className should not contain space.`);return e.classList?e.classList.contains(t):` ${e.className} `.indexOf(` ${t} `)>-1}function dp(e,t){if(e){for(var n=e.className,r=(t||``).split(` `),i=0,a=r.length;i0&&arguments[0]!==void 0?arguments[0]:`body`;return Rd(e)?document.querySelector(e):q(e)?e():e};function hp(e){return e&&e===e.window}function gp(e,t){if(sp||!e)return 0;var n=t?`scrollLeft`:`scrollTop`,r=0;return hp(e)?r=e[t?`pageXOffset`:`pageYOffset`]:e instanceof Document?r=e.documentElement[n]:e&&(r=e[n]),r}function _p(e,t){var n=t.container,r=n===void 0?window:n,i=t.duration,a=i===void 0?450:i,o=t.easing,s=o===void 0?ooe:o,c=gp(r),l=Date.now();return new Promise(function(t){var n=function(){var i=Date.now()-l,o=s(Math.min(i,a),c,e,a);hp(r)?r.scrollTo(window.pageXOffset,o):r instanceof Document||r.constructor.name===`HTMLDocument`?r.documentElement.scrollTop=o:r.scrollTop=o,op(in},loe=function(e){if(!(e instanceof HTMLFormElement))throw Error(`target must be HTMLFormElement`);var t=document.createElement(`input`);t.type=`submit`,t.hidden=!0,e.appendChild(t),t.click(),e.removeChild(t)};function yp(e,t){var n=e.getBoundingClientRect();if(t){var r=t.getBoundingClientRect();return n.top>=r.top&&n.left>=r.left&&n.bottom<=r.bottom&&n.right<=r.right}return n.top>=0&&n.left>=0&&n.bottom+80<=window.innerHeight&&n.right<=window.innerWidth}function bp(e,t){var n=``;return document.defaultView&&document.defaultView.getComputedStyle&&(n=document.defaultView.getComputedStyle(e,null).getPropertyValue(t)),n&&n.toLowerCase?n.toLowerCase():n}function xp(e){var t=e.parentNode;return!t||t.nodeName===`HTML`?!1:bp(e,`position`)===`fixed`||xp(t)}function Sp(){var e=document.body,t=document.documentElement;return{scrollTop:window.pageYOffset||t.scrollTop||e.scrollTop,scrollLeft:window.pageXOffset||t.scrollLeft||e.scrollLeft}}function uoe(){if(window.innerWidth!==void 0)return{width:window.innerWidth,height:window.innerHeight};var e=document.documentElement;return{width:e.clientWidth,height:e.clientHeight}}var Cp=function(e){return Mi(e)&&e.type===Si};function X(e,t,n){var r=e;return r.install=function(i,a){i.component(t||a||r.name,e),n&&i.directive(n.name,n.comp)},r}function wp(e){var t;return Do(e)&&`defaultNode`in e?t=e.defaultNode:(Mi(e)||Rd(e))&&(t=e),t}function Tp(e){var t=[],n=function(e){if(K(e))return e.forEach(function(e){if(e.children&&K(e.children)){if(e.type!==bi)return;n(e.children)}else t.push(e)}),t};return n(e)}function Ep(e){return Do(e)&&`params`in e?e.params:{}}function doe(e){return Do(e)&&`slotFirst`in e?e.slotFirst:!1}function Dp(e){var t=Yi(),n=t.vnode,r=t.slots,i=n.props||{};return!!(Object.prototype.hasOwnProperty.call(i,e)||r&&Object.prototype.hasOwnProperty.call(r,e))}var foe=`Copy to clipboard: #{key}, Enter`,poe=function(e){var t=(/mac os x/i.test(navigator.userAgent)?`⌘`:`Ctrl`)+`+C`;return e.replace(/#{\s*key\s*}/g,t)},moe=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r`u`||typeof XMLSerializer>`u`)return``;var t;try{t=new DOMParser().parseFromString(e,`image/svg+xml`)}catch{return``}if(t.querySelector(`parsererror`))return``;var n=t.documentElement;if(!n||n.localName?.toLowerCase()!==`svg`)return``;kp(n),Ap(n);try{return new XMLSerializer().serializeToString(n)}catch{return``}},jp={exports:{}};jp.exports,(function(e,t){(function(t,n){e.exports=n()})(qf,function(){var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`quarter`,d=`year`,f=`date`,p=`Invalid Date`,m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|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,g={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(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=so(t)==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e)0){var a=i[0],o=i[1];typeof a==`number`?(n=a,o&&so(o)===`object`?r=o:r.count=n):so(a)===`object`&&a!==null&&(r=a)}if(t.includes(`|`)){var s=t.split(`|`).map(function(e){return e.trim()}),c;if(typeof n==`number`?c=n:typeof r?.count==`number`&&(c=r.count),typeof c==`number`){var l=Doe(c);t=l0&&(t=t.replace(/\{\s*([\w-]+)\s*\}/g,function(e,t){return Object.prototype.hasOwnProperty.call(r,t)?String(r[t]):e})),t}return``}var Lp=I();function Rp(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0,t=arguments.length>1?arguments[1]:void 0,n=null;Yi()?(n=wn(Ip,null),n||=Lp):n=Lp;var r=U(function(){return n?.value||Fp}),i=U(function(){return Object.assign({},r.value[e],t)});return{t:function(e){var t=[...arguments].slice(1);return q(e)?t.length?e.apply(void 0,t):e(sa):Ooe.apply(void 0,[e].concat(t))},global:i,globalConfig:i,classPrefix:U(function(){return r.value.classPrefix})}}var koe=function(e){var t=iu(Fp),n=U(function(){return Object.assign({},Eoe(t,e.globalConfig))});return Cn(Ip,n),Lp.value||=n.value,n};function zp(e,t,n,r){if(typeof window>`u`)return null;if(!window||!window.IntersectionObserver)return n(),null;var i=null;try{i=new window.IntersectionObserver(function(t){t[0].isIntersecting&&(n(),i.unobserve(e))},{rootMargin:`0px 0px ${r}px 0px`,root:t}),i.observe(e)}catch(e){console.error(e),n()}return i}var Bp=new Set,Vp={warn:function(e,t){console.warn(`TDesign ${e} Warn: ${t}`)},warnOnce:function(e,t){var n=`TDesign ${e} Warn: ${t}`;Bp.has(n)||(Bp.add(n),console.warn(n))},error:function(e,t){console.error(`TDesign ${e} Error: ${t}`)},errorOnce:function(e,t){var n=`TDesign ${e} Error: ${t}`;Bp.has(n)||(Bp.add(n),console.error(n))},info:function(e,t){console.info(`TDesign ${e} Info: ${t}`)}},Aoe=/(.png|.jpg|.jpeg|.jpe|.webp|.avif|.heic|.heif|.svg|.gif|.bmp)/i,joe=/(.png|.jpg|.jpeg|.jpe|.webp|.avif|.heic|.heif|.svg|.gif|.bmp|.dwg|.dxf|.svf|.tif|.tiff|.arw)/i,Moe=/(.pdf)/i,Noe=/(.xlsx|.xls|.csv|.xlc|.xlm|.xlt|.xlw)/i,Poe=/(.dox|docx|.document|.wps|.wdb|.msword)/i,Foe=/(.ppt|.pptx|.key)/i,Hp=/(.avi|.mp4|.wmv|.mpg|.mpeg|.mov|.rm|.ram|.swf|.flv|.rmvb|.flash|.mid|.3gp)/i,Up={"audio/*":/(.mp2|.mp3|.mp4|.ogg|.3gpp|.ac3|.au)/i,"video/*":Hp,"image/*":joe,".jpg":/image\/jpeg|\.jpg$/i,".heic":/image\/heic|image\/heic-sequence|\.heic$/i,".heif":/image\/heif|image\/heif-sequence|\.heif$/i,".ico":/image\/vnd.microsoft.icon/i,".doc":/application\/msword/i,".docx":/application\/vnd.openxmlformats-officedocument.wordprocessingml.document/i,".xls":/application\/vnd.ms-excel/i,".xlsx":/application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/i,".ppt":/application\/vnd.ms-powerpoint/i,".pptx":/application\/vnd.openxmlformats-officedocument.presentationml.presentation/i,".vsd":/application\/vnd.visio/i,".txt":/text\/plain/i,".abw":/application\/x-abiword/i,".avi":/video\/x-msvideo/i,".azw":/application\/vnd.amazon.ebook/i,".bin":/application\/octet-stream/i,".cda":/application\/x-cdf/i,".mpkg":/application\/vnd.apple.installer+xml/i,".odp":/application\/vnd.oasis.opendocument.presentation/i,".ods":/application\/vnd.oasis.opendocument.spreadsheet/i,".odt":/application\/vnd.oasis.opendocument.text/i,".oga":/audio\/ogg/i,".ogv":/video\/ogg/i,".ogx":/application\/ogg/i,".ai":/application\/postscript/i,".eps":/application\/postscript/i,".ps":/application\/postscript/i},Wp={B:1,KB:1024,MB:1048576,GB:1073741824};function Ioe(e){return e=Wp.KB&&e=Wp.MB&&e=Wp.GB?`${(e/Wp.GB).toFixed(1)} GB`:``}function Gp(){var e=arguments.length>0&&arguments[0]!==void 0&&arguments[0],t=new Date,n=t.getMonth()+1;n=n<10?`0${n}`:n;var r=`${t.getFullYear()}-${n}-${t.getDate()}`,i=`${t.getHours()}:${t.getMinutes()}:${t.getSeconds()}`;return e?[r,i].join(` `):r}function Kp(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:7,r=e,i=0,a=0;if(!r)return``;for(var o=0;oo-n&&a=1024&&e<1048576?`${(e/1024).toFixed(1)} KB`:e>=1048576?`${(e/1048576).toFixed(1)} MB`:``}function Roe(e,t,n){var r=[`B`,`KB`,`MB`,`GB`],i=1,a=r.indexOf(n);return a===-1&&(Vp.warn(`Upload`,`\`sizeLimit.unit\` can only be one of ${r.join()}`),a=i),e>t*Wp[n]}function zoe(e){return new Promise(function(t){if(!e){t(``);return}var n=new FileReader;n.readAsDataURL(e),n.onload=function(e){t(e.target?.result)}})}function Boe(e,t,n){var r=t||n;if(!e)return!0;if(!r)return!1;for(var i=e.split(`,`).map(function(e){return e.trim()}),a=0,o=i.length;a1&&arguments[1]!==void 0?arguments[1]:``,n=[],r=0;r1&&c.includes(Boolean)&&c.includes(Function)&&s===``&&!o?i:s===!1||s===null?void 0:s===!0?dm(e,t,r)||i:q(s)?s(sa,r):[void 0,``].includes(s)&&o?dm(e,t,r):s}if(o)return dm(e,t,r);var l=e.props[Yc(t)]||e.props[cf(t)];return l===!1||l===null?void 0:l===!0?i:q(l)?l(sa,r):l}},mm=function(){var e=pm();return function(t,n){var r=wp(n);return e(t,n)||r}},hm=function(){var e=pm();return function(t,n,r){var i=Ep(r),a=wp(r),o=i?{params:i}:void 0,s=e(t,o),c=e(n,o),l=fm(s)?c:s;return fm(l)?a:l}},gm=function(e){return e.filter(function(e){return!Cp(e)})};function _m(e){return e?Rd(e)?e:Array.isArray(e)?gm(e).map(function(e){return _m(e)}).filter(Boolean).join(` `):Cp(e)?``:Rd(e.children)?e.children:Array.isArray(e.children)?gm(e.children).map(function(e){return _m(e)}).filter(Boolean).join(` `):e.children&&Do(e.children)?Object.values(e.children).map(function(e){return!e||q(e)?``:_m(e)}).filter(Boolean).join(` `):``:``}function vm(){return{beforeEnter:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height=`0`,e.style.paddingTop=`0`,e.style.paddingBottom=`0`},enter:function(e){e.dataset.oldOverflow=e.style.overflow,e.style.height=`${e.scrollHeight}px`,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow=`hidden`},afterEnter:function(e){e.style.height=``,e.style.overflow=e.dataset.oldOverflow},beforeLeave:function(e){e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height=`${e.scrollHeight}px`,e.style.overflow=`hidden`},leave:function(e){e.scrollHeight!==0&&(e.style.height=`0`,e.style.paddingTop=`0`,e.style.paddingBottom=`0`)},afterLeave:function(e){e.style.height=``,e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}}}function Q(e){var t=Rp(`classPrefix`).classPrefix;return U(function(){return e?`${t.value}-${e}`:t.value})}function ym(){var e=Rp(`classPrefix`).classPrefix;return{classPrefix:e,SIZE:U(function(){return{small:`${e.value}-size-s`,medium:`${e.value}-size-m`,large:`${e.value}-size-l`,default:``,xs:`${e.value}-size-xs`,xl:`${e.value}-size-xl`,block:`${e.value}-size-full-width`}}),STATUS:U(function(){return{loading:`${e.value}-is-loading`,loadMore:`${e.value}-is-load-more`,disabled:`${e.value}-is-disabled`,focused:`${e.value}-is-focused`,success:`${e.value}-is-success`,error:`${e.value}-is-error`,warning:`${e.value}-is-warning`,selected:`${e.value}-is-selected`,active:`${e.value}-is-active`,checked:`${e.value}-is-checked`,current:`${e.value}-is-current`,hidden:`${e.value}-is-hidden`,visible:`${e.value}-is-visible`,expanded:`${e.value}-is-expanded`,indeterminate:`${e.value}-is-indeterminate`}})}}function bm(e,t,n,r){var i=Yi(),a=i.emit,o=i.vnode,s=I(),c=o.props||{};return Object.prototype.hasOwnProperty.call(c,r)||Object.prototype.hasOwnProperty.call(c,cf(r))?[e,function(e){a(`update:${r}`,e);var t=[...arguments].slice(1);n?.apply(void 0,[e].concat(t))}]:(s.value=t,[s,function(e){s.value=e;var t=[...arguments].slice(1);n?.apply(void 0,[e].concat(t))}])}var Koe=`t-display-none-element-refresh`;function xm(){var e=I(0);Cn(Koe,e),gr(function(){e.value+=1})}function Sm(e){var t=Yi(),n=U(function(){return t.props.disabled}),r=wn(`formDisabled`,Object.create(null));return U(function(){var t,i;return K(n.value)&&n.value.length===2?n.value:Gd(e==null||(t=e.beforeDisabled)==null?void 0:t.value)?e.beforeDisabled.value:Gd(n.value)?n.value:Gd(e==null||(i=e.afterDisabled)==null?void 0:i.value)?e.afterDisabled.value:Gd(r.disabled?.value)?r.disabled.value:!1})}var Cm=function(e,t){Array.from(e).filter(function(e){return e instanceof HTMLDivElement&&!!e.getAttribute(`draggable`)}).forEach(t)},wm=function(e,t){var n;return Cm(t,function(t){e instanceof Node&&t.contains(e)&&(n=t)}),n};function qoe(e){var t=null,n,r=[],i=function(e){var t=e.target;n=t,t.style.opacity=`0.5`;var r=e.dataTransfer;if(r){r.effectAllowed=`copy`;try{r.setData(`text/plain`,``)}catch{}}},a=function(e){e.target.style.opacity=``},o=function(e){if(t){var n=wm(e.target,t.children),r=e.dataTransfer;r&&(r.dropEffect=n!=null&&n.draggable?`copy`:`none`),n!=null&&n.draggable&&e.preventDefault()}},s=function(e){var i=wm(e.target,t.children);if(i&&i!==n&&i.draggable){var a=i.firstChild;a instanceof HTMLElement&&Object.assign(a.style,{outline:`1px dashed #0052d9`}),r.includes(i)||r.push(i)}},c=function(e){for(var t=e.target,n=0,i=r;no&&(i=t.children[s+1]);var c=e.theme===`card`?o:o-1,l=e.theme===`card`?s:s-1;(a=e.onDragSort)==null||a.call(e,{currentIndex:c,current:e.panels[c].value,targetIndex:l,target:e.panels[l].value})}};function u(e){t=e,t.addEventListener(`dragstart`,i,!1),t.addEventListener(`dragend`,a,!1),t.addEventListener(`dragover`,o,!1),t.addEventListener(`dragenter`,s,!1),document.addEventListener(`dragleave`,c,!1),document.addEventListener(`mousemove`,c,!1),t.addEventListener(`drop`,l,!1)}return vr(function(){t&&(t.removeEventListener(`dragstart`,i),t.removeEventListener(`dragend`,a),t.removeEventListener(`dragover`,o),t.removeEventListener(`dragenter`,s),document.removeEventListener(`dragleave`,c),document.removeEventListener(`mousemove`,c),t.removeEventListener(`drop`,l))}),{setNavsWrap:u}}function Joe(e,t){var n=I(),r=I(!0),i=function(){!t.value||!e.value||n.value||(r.value=!1,n.value=zp(e.value,null,function(){r.value=!0},10))};return mr(i),t.value&&R([t,e],i),_r(function(){var r,i;t.value&&((r=n.value)==null||(i=r.unobserve)==null||i.call(r,e.value))}),{showElement:r}}function Tm(e){var t=Rp(`icon`).globalConfig,n={};return Object.keys(e).forEach(function(r){n[r]=t.value?.[r]||e[r]}),n}function Em(e){var t=I(``);return R([e],function(e,n){var r=Y(e,1)[0];if(Y(n,1)[0]!==r){if(typeof r==`string`){t.value=r;return}zoe(r).then(function(e){t.value=e})}},{immediate:!0}),{previewUrl:t}}var Yoe=Pp.expand,Xoe=Pp.ripple,Zoe=Pp.fade;function Qoe(){var e=Rp(`animation`).globalConfig,t=function(t){var n,r=e.value;return r&&!((n=r.exclude)!=null&&n.includes(t))&&r.include?.includes(t)};return{keepExpand:t(Yoe),keepRipple:t(Xoe),keepFade:t(Zoe)}}function $oe(e,t,n){var r=U(function(){return Math.max(n.rowHeight||48,48)}),i=I(!1),a=U(function(){return n?.type===`lazy`&&!i.value}),o=!sp&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},s=function(){i.value||o(function(){i.value=!0})};return mr(function(){n?.type===`lazy`&&dn(function(){var i=Math.max(10,n.bufferSize||10),a=r.value*i;zp(t.value,e.value,s,a)})}),{hasLazyLoadHolder:a,tRowHeight:r}}function Dm(e,t){mr(function(){window.addEventListener(e,t)}),_r(function(){window.removeEventListener(e,t)})}function Om(e,t){Dm(`resize`,e);var n=null;mr(function(){!window.ResizeObserver||!t||(n=new window.ResizeObserver(e),n.observe(t))}),_r(function(){var e;(e=n)==null||e.disconnect()})}var km=[`dialog`,`drawer`],ese=1e3,tse=5e3,nse=1,Am=new(Yp(function e(){var t=this;Xp(this,e),G(this,`popupStack`,{popup:new Set,dialog:new Set,message:new Set,drawer:new Set}),G(this,`zIndexStack`,[]),G(this,`getNextZIndex`,function(e){return(e===`message`?Array.from(t.popupStack.message).pop()||tse:Array.from(t.popupStack.popup).pop()||ese)+nse}),G(this,`add`,function(e){var n=t.getNextZIndex(e);return t.popupStack[e].add(n),km.includes(e)&&t.popupStack.popup.add(n),t.zIndexStack.push(n),n}),G(this,`delete`,function(e,n){t.popupStack[n].delete(e),km.includes(n)&&t.popupStack.popup.delete(e);var r=t.zIndexStack.indexOf(e);r!==-1&&t.zIndexStack.splice(r,1)}),G(this,`isTopInteractivePopup`,function(e,n){return km.includes(e)?n===t.zIndexStack[t.zIndexStack.length-1]:t.popupStack[e]?.size>1?n===Array.from(t.popupStack[e]).pop():!0}),G(this,`getLastZIndex`,function(){return t.zIndexStack[t.zIndexStack.length-1]})}));function jm(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.visible,r=t.runOnMounted,i=I(0),a=function(){i.value=Am.add(e)},o=function(){Am.delete(i.value,e)};return R(function(){return n?.value},function(e){e?a():o()},{immediate:!0}),r&&(mr(function(){a()}),_r(function(){o()})),{zIndex:kt(i),open:a,close:o,isTopInteractivePopup:function(){return km.includes(e)?Am.isTopInteractivePopup(e,i.value):!1}}}function Mm(e){var t=Yi(),n=U(function(){return t.props.readonly}),r=wn(`formReadonly`,Object.create(null));return U(function(){var t,i;return Gd(e==null||(t=e.beforeReadonly)==null?void 0:t.value)?e.beforeReadonly.value:Gd(n?.value)?n.value:Gd(e==null||(i=e.afterReadonly)==null?void 0:i.value)?e.afterReadonly.value:Gd(r.readonly?.value)?r.readonly.value:!1})}function Nm(e,t){if(!(typeof window>`u`)&&window&&window.ResizeObserver){var n=null,r=function(){!n||!e.value||(n.unobserve(e.value),n.disconnect(),n=null)},i=function(e){n=new ResizeObserver(t),n.observe(e)};e&&R(e,function(e){r(),e&&i(e)},{immediate:!0,flush:`post`}),_r(function(){r()})}}function Pm(e,t){e&&Object.keys(t).forEach(function(n){e.style[n]=t[n]})}var Fm=200,rse=200,ise=`rgba(0, 0, 0, 0)`,ase=`rgba(0, 0, 0, 0.35)`,ose=function(e,t){var n;if(t)return t;if(e!=null&&(n=e.dataset)!=null&&n.ripple)return e.dataset.ripple;if(e instanceof Element){var r=getComputedStyle(e).getPropertyValue(`--ripple-color`);if(r)return r}return ase};function Im(e,t){var n=I(null),r=Q(),i=Qoe().keepRipple,a=function(a){var o=e.value;if(!(!o||!(o instanceof Element))){var s=ose(o,t?.value);if(!(a.button!==0||!e||!i)&&!(o.classList.contains(`${r.value}-is-active`)||o.classList.contains(`${r.value}-is-disabled`)||o.classList.contains(`${r.value}-is-checked`)||o.classList.contains(`${r.value}-is-loading`))&&o instanceof Element){var c=getComputedStyle(o),l=parseInt(c.borderWidth,10),u=l>0?l:0,d=o.offsetWidth;n.value.parentNode===null&&(Pm(n.value,{position:`absolute`,left:`${0-u}px`,top:`${0-u}px`,width:`calc(100% + ${u*2}px)`,height:`calc(100% + ${u*2}px)`,borderRadius:c.borderRadius,pointerEvents:`none`,overflow:`hidden`}),o.appendChild(n.value));var f=document.createElement(`div`);Pm(f,{marginTop:`0`,marginLeft:`0`,right:`${d}px`,width:`${d+20}px`,height:`100%`,transition:`transform ${Fm}ms cubic-bezier(.38, 0, .24, 1), background ${Fm*2}ms linear`,transform:`skewX(-8deg)`,pointerEvents:`none`,position:`absolute`,zIndex:0,backgroundColor:s,opacity:`0.9`});for(var p=new WeakMap,m=o.children.length,h=0;h4&&arguments[4]!==void 0?arguments[4]:`value`,a=Yi(),o=a.emit,s=a.vnode,c=I(),l=s.props||{},u=Object.prototype.hasOwnProperty.call(l,`modelValue`)||Object.prototype.hasOwnProperty.call(l,`model-value`),d=Object.prototype.hasOwnProperty.call(l,i)||Object.prototype.hasOwnProperty.call(l,cf(i));return u?[t,function(e){o(`update:modelValue`,e);var t=[...arguments].slice(1);r?.apply(void 0,[e].concat(t))}]:d?[e,function(e){o(`update:${i}`,e);var t=[...arguments].slice(1);r?.apply(void 0,[e].concat(t))}]:(c.value=n,[c,function(e){c.value=e;var t=[...arguments].slice(1);r?.apply(void 0,[e].concat(t))}])}function zm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bm(e){for(var t=1;tu}),p=I(0),m=new Map,h=0,g=0,_=0,v=0,y=0,b=0,x=function(){t.value.forEach(function(e,t){e.$index=t,i&&(d.cachedScrollY[t]=t*o)}),i||(d.cachedScrollY[t.value.length-1]=void 0)};x();var S=U(function(){var e=d.cachedHeight;if(e.length){var n=e.reduce(function(e,t){return e+t||o},0);if(e.length===t.value.length)return n;var r=n/e.length;return n+(t.value.length-e.length)*r}return f.value?t.value.length*o:0}),C=U(function(){var e=d.visibleData,t=e[0];return t?e.length===1?0:d.cachedScrollY[t.$index]:0}),w=function(){b=Math.min(y+h+c*2,t.value.length),d.visibleData=t.value.slice(y,b)},T=function(){var e,r=m.get(_);if(r){var i=r==null||(e=r.getBoundingClientRect())==null?void 0:e.height;d.cachedScrollY[_]=n.value.scrollTop-v,d.cachedHeight[_]=i;for(var a=_+1;a<=(o=d.visibleData[d.visibleData.length-1])?.$index;a++){var o,s=(m.get(a)?.getBoundingClientRect()||{}).height;d.cachedHeight[a]=s;var c=d.cachedScrollY[a-1]+d.cachedHeight[a-1];d.cachedScrollY.splice(a,1,c)}for(var l=_-1;l>=(u=d.visibleData[0])?.$index;l--){var u,f=(m.get(l)?.getBoundingClientRect()||{}).height;d.cachedHeight[l]=f;var p=d.cachedScrollY[l+1]-d.cachedHeight[l];d.cachedScrollY.splice(l,1,p)}if(d.cachedScrollY[0]>0){for(var h=d.cachedScrollY[0],x=Math.min(b,t.value.length),S=0;S=y;i--)i===b-1?d.cachedScrollY.splice(i,1,r.value-d.cachedHeight[i]):d.cachedScrollY.splice(i,1,d.cachedScrollY[i+1]-d.cachedHeight[i])})}},E=function(){if(f.value){var e=n.value.scrollTop,r=e-g;g=e,r+=v;var i=_;if(r){if(r>=0){for(;i(d.cachedHeight[i]||o);)d.cachedHeight[i]||(d.cachedHeight[i]=o),r-=d.cachedHeight[i],i++;i>=t.value.length?(_=t.value.length-1,v=0):(_=i,v=r);var a=n.value,s=a.clientHeight,l=a.scrollHeight;e+s===l&&(_=t.value.length-h+1),y<=_-c&&(y=Math.min(t.value.length-h,_-c),y<0&&(y=0))}else{for(;r<0;)i--,d.cachedHeight[i]||(d.cachedHeight[i]=o),r+=d.cachedHeight[i];i<0?(_=0,v=0):(_=i,v=r),T(),y>_-c&&(y=Math.max(0,_-c))}w()}}};!i&&R(p,T,{flush:`post`});var D=function(){f.value&&p.value++};R(t,function(){x(),d.visibleData=[],d.cachedScrollY=[],d.cachedHeight=[],g=0,_=0,v=0,y=0,m.clear(),t.value.length<=u?d.visibleData=t.value:w(),n.value&&(n.value.scrollTop=0)});var O=!1,k=function(){O&&(h=Math.ceil(n.value.offsetHeight/o),w())};return mr(function(){if(!(!window||!window.IntersectionObserver)){var e=new window.IntersectionObserver(function(t){var r=t[0];(r.isIntersecting||r.intersectionRatio)&&(O=!0,f.value&&k(),e.unobserve(n.value))});n.value&&e.observe(n.value)}}),Bm(Bm({trs:m,scrollHeight:S},Wt(d)),{},{translateY:C,handleScroll:E,handleRowMounted:D,refreshContainer:k,fixedHeight:i,calculateScrollY:T})}function Vm(e,t){var n=I([]),r=I((t.value.data?.length||0)*(t.value.scroll?.rowHeight||50)),i=I(0),a=[],o=I(0),s=I(0),c=I([0,15]),l=U(function(){var e=t.value.scroll;return e?{bufferSize:e.bufferSize||10,isFixedRowHeight:e.isFixedRowHeight??!1,rowHeight:e.rowHeight||47,threshold:e.threshold||100,type:e.type,fixedRows:e.fixedRows??[0,0]}:{}}),u=U(function(){var e=t.value.data;return l.value.type===`virtual`&&l.value.thresholdn&&c===-1&&(c=f,c-l.value.bufferSize>0&&(s=d-m-Vf(i))),c===-1&&(i.push(m),i.length>l.value.bufferSize&&i.shift()),u===-1&&(d>o.value+n||f===t.value.data.length-1)&&(u=f),c!==-1&&u!==-1)break}var h=ff([c-l.value.bufferSize,0]),g=hf([u+l.value.bufferSize,t.value.data.length]),_=Vf(a.slice(0,Math.min(h,r)));return{startIndex:h,endIndex:g,translateY:s-_}}var f=Hf(function(){var e=d(),i=e.startIndex,a=e.endIndex,o=e.translateY,s=l.value.fixedRows,u=Y(s,2),f=u[0],p=u[1],m=f?t.value.data.slice(0,f):[];f&&i0&&(h=h.slice(g)),c.value.join()!==[i,a].join()&&i>=0&&(r.value=o,n.value=m.concat(t.value.data.slice(i,a),h),c.value=[i,a])},100),p=function(t){if(!(!u.value||!t||l.value.isFixedRowHeight||!e.value)){var n=t.ref.value?.getBoundingClientRect().height||l.value.rowHeight,r=t.data.VIRTUAL_SCROLL_INDEX;if(a[r]!==n){var o=n-a[r];a[r]=n,i.value+=o}}},m=function(){u.value&&f()},h=function(n){var i=Y(n,1)[0].contentRect;t.value.preventResizeRefresh||(Math.abs(i.width-s.value)>16&&e.value&&(e.value.scrollTop=0,r.value=0),s.value=i.width,o.value=i.height)},g=function(e){e.forEach(function(e,t){e.VIRTUAL_SCROLL_INDEX=t})},_=function(t){var n=t.index,r=t.top,i=r===void 0?0:r,o=t.behavior,s=Vf(a.slice(0,n+1))-i;e.value.scrollTo({top:s,behavior:o||`auto`})};return Nm(U(function(){return u.value?e.value:void 0}),h),R(function(){return[W(t.value.data),l.value,u.value,e.value]},function(){if(!(!u.value||!e.value)){var n=t.value.data;if(g(n),o.value=e.value.getBoundingClientRect().height,a.length!==t.value.data.length){var r=Array.from(a);r.length=t.value.data.length,r.fill(l.value.rowHeight||47),a=r}i.value=Vf(a),c.value=[0,0],f()}},{immediate:!0}),R(function(){return o.value},function(){f()}),{visibleData:n,translateY:r,scrollHeight:i,isVirtualScroll:u,handleScroll:m,handleRowMounted:p,scrollToElement:function(e){if(_(e),!l.value.isFixedRowHeight)var t,n=e.time??60,r=setTimeout(function(){_(e),clearTimeout(r)},n)}}}function Hm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Um(e){for(var t=1;t2&&arguments[2]!==void 0?arguments[2]:Wm,r=I(Um(Um({},Wm),n)),i=null,a=function(){var n;if(e){var a=r.value,o=a.debounceTime,s=o===void 0?0:o,c=a.config,l=c===void 0?Wm.config:c,u=function(){var e=[...arguments];t?.apply(void 0,e)};(n=i)==null||n.disconnect(),i=new MutationObserver(s>0?md(u,s):u),i.observe(e,l)}};R(function(){return n},function(e){ef(e,r.value)||(r.value=Um(Um({},Wm),e),a())},{deep:!0}),mr(a),_r(function(){return i?.disconnect()})}var Gm=function(e){if(typeof window>`u`)return``;var t=document?.documentElement;return getComputedStyle(t).getPropertyValue(e).trim()??``};function Km(e){var t={};return Object.entries(e).forEach(function(e){var n=Y(e,1)[0];t[n]=I(``)}),dn(function(){Object.entries(e).forEach(function(e){var n=Y(e,2),r=n[0],i=n[1];t[r].value=Gm(i)})}),cse(document?.documentElement,function(n){n.some(function(n){return n.type===`attributes`&&n.attributeName===`theme-mode`?(Object.entries(e).forEach(function(e){var n=Y(e,2),r=n[0],i=n[1];t[r].value=Gm(i)}),!0):!1})}),t}function qm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lse(e){for(var t=1;t`u`||!navigator)return 2**53-1;var e=navigator.userAgent,t=e.indexOf(`compatible`)>-1&&e.indexOf(`MSIE`)>-1,n=e.indexOf(`Trident`)>-1&&e.indexOf(`rv:11.0`)>-1;if(t){var r=e.match(/MSIE (\d+\.\d+);/);if(!r)return-1;var i=parseFloat(r[1]);return i<7?6:i}return n?11:2**53-1}function pse(){var e,t,n;if(typeof navigator>`u`||!navigator)return!1;var r=navigator.userAgent,i=r.match(/AppleWebKit.+Chrome\/(.+) Safari\/.+/i);if(Number(i==null||(e=i[1])==null?void 0:e.split(`.`)[0])<100)return!0;var a=r.match(/AppleWebKit.+Version\/(.+) Safari\/.+/i);if(Number(a==null||(t=a[1])==null?void 0:t.split(`.`)[0])<12||Zm()<=11)return!0;var o=r.match(/Firefox\/(.+)/i);return Number(o==null||(n=o[1])==null?void 0:n.split(`.`)[0])<100}function Qm(e,t){var n=nf(t);if(!e||e.length===0)return n?{length:0,characters:e}:0;for(var r=0,i=0;i127?2:1,n&&r+a>t)return{length:r,characters:e.slice(0,i)};r+=a}return n?{length:r,characters:e}:r}function mse(e){return W(e??``).length}function hse(e,t,n){return W(n??``).slice().length===t?n||``:W(e??``).slice(0,t).join(``)}function $m(e){return nf(e)?`${e}px`:e}var gse=[`padding-top`,`padding-bottom`,`padding-left`,`padding-right`,`font-family`,`font-weight`,`font-size`,`font-variant`,`text-rendering`,`text-transform`,`width`,`text-indent`,`border-width`,`box-sizing`,`line-height`,`letter-spacing`];function _se(e){if(typeof window>`u`)return{paddingSize:0,borderSize:0,boxSizing:0,sizingStyle:``};var t=window.getComputedStyle(e),n=t.getPropertyValue(`box-sizing`)||t.getPropertyValue(`-moz-box-sizing`)||t.getPropertyValue(`-webkit-box-sizing`);return{paddingSize:parseFloat(t.getPropertyValue(`padding-bottom`))+parseFloat(t.getPropertyValue(`padding-top`)),borderSize:parseFloat(t.getPropertyValue(`border-bottom-width`))+parseFloat(t.getPropertyValue(`border-top-width`)),boxSizing:n,sizingStyle:gse.map(function(e){return`${e}:${t.getPropertyValue(e)}`}).join(`;`)}}function vse(){var e;if(typeof window>`u`)return!1;var t=(e=window)==null||(e=e.navigator)==null?void 0:e.userAgent;return/Safari/.test(t)&&!/Chrome/.test(t)}function eh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function th(e){for(var t=1;t`u`)){var i=(t=window).getComputedStyle?.call(t,e),a=i?.color||``,o=i?.fontSize||`12px`,s=(n=window)==null||(n=n.navigator)==null?void 0:n.userAgent,c=/Safari/.test(s)&&!/Chrome/.test(s),l=/(?=.*iPhone)[?=.*MicroMessenger]/.test(s)&&!/Chrome/.test(s),u=/(?=.*iPad)[?=.*MicroMessenger]/.test(s)&&!/Chrome/.test(s);if((c||l||u)&&(r={transformOrigin:`0px 0px`,transform:`scale(${parseInt(o,10)/12})`}),a&&Zm()>11){var d=a.match(/[\d.]+/g),f=d?`rgba(${d[0]}, ${d[1]}, ${d[2]}, 0)`:``;Pm(e,th(th({},r),{},{background:`conic-gradient(from 90deg at 50% 50%,${f} 0deg, ${a} 360deg)`}))}else Pm(e,th(th({},r),{},{background:``}))}}var bse=z({name:`TLoadingGradient`,setup:function(){var e=Q(),t=I();return mr(function(){dn(function(){yse(t.value)})}),function(){var n=`${e.value}-loading__gradient`;return V(`svg`,{class:[n,`${e.value}-icon-loading`],viewBox:`0 0 12 12`,version:`1.1`,width:`1em`,height:`1em`,xmlns:`http://www.w3.org/2000/svg`},[V(`foreignObject`,{x:`0`,y:`0`,width:`12`,height:`12`},[V(`div`,{class:`${n}-conic`,ref:t},null)])])}}}),xse={attach:{type:[String,Function],default:``},content:{type:[String,Function]},default:{type:[String,Function]},delay:{type:Number,default:0},fullscreen:Boolean,indicator:{type:[Boolean,Function],default:!0},inheritColor:Boolean,loading:{type:Boolean,default:!0},preventScrollThrough:{type:Boolean,default:!0},showOverlay:{type:Boolean,default:!0},size:{type:String,default:`medium`},text:{type:[String,Function]},zIndex:{type:Number}},Sse=function(){return{name:Q(`loading`),centerClass:Q(`loading--center`),fullscreenClass:Q(`loading__fullscreen`),lockClass:Q(`loading--lock`),overlayClass:Q(`loading__overlay`),relativeClass:Q(`loading__parent`),fullClass:Q(`loading--full`),inheritColorClass:Q(`loading--inherit-color`)}},nh=z({name:`TLoading`,inheritAttrs:!1,props:xse,setup:function(e,t){var n=t.slots,r=t.attrs,i=I(!1),a=Sse(),o=a.name,s=a.centerClass,c=a.fullscreenClass,l=a.lockClass,u=a.overlayClass,d=a.relativeClass,f=a.fullClass,p=a.inheritColorClass,m=Q(),h=pm(),g=hm(),_=ym().SIZE,v=function(){i.value=!1;var t=setTimeout(function(){i.value=!0,clearTimeout(t)},e.delay)},y=Lm(function(){return e.attach}),b=U(function(){return!!(!e.delay||e.delay&&i.value)}),x=U(function(){var t={};return e.zIndex!==void 0&&(t.zIndex=e.zIndex),[`small`,`medium`,`large`].includes(e.size)||(t[`font-size`]=e.size),t}),S=U(function(){return!!(e.default||n.default||e.content||n.content)}),C=U(function(){return e.preventScrollThrough&&e.fullscreen}),w=U(function(){return!!(e.text||n.text)}),T=U(function(){return S.value&&e.loading&&b.value}),E=U(function(){return e.fullscreen&&e.loading&&b.value}),D=U(function(){return e.attach&&e.loading&&b.value}),O=U(function(){var t=[s.value,um(_.value,e.size),G({},p.value,e.inheritColor)],n=[o.value,c.value,s.value,u.value];return{baseClasses:t,attachClasses:t.concat([o.value,f.value,G({},u.value,e.showOverlay)]),withContentClasses:t.concat([o.value,f.value,G({},u.value,e.showOverlay)]),fullScreenClasses:n,normalClasses:t.concat([o.value])}}),k=Wt(e).loading;return R([k],function(e){Y(e,1)[0]?(v(),C.value&&dp(document.body,l.value)):C.value&&fp(document.body,l.value)}),mr(function(){e.delay&&v()}),function(){var t=O.value,n=t.fullScreenClasses,i=t.baseClasses,a=t.withContentClasses,o=t.attachClasses,s=t.normalClasses,c=V(bse,null,null),l=k.value&&h(`indicator`,c),u=w.value&&V(`div`,{class:`${m.value}-loading__text`},[h(`text`)]);return e.fullscreen?!E.value||!e.loading?null:V(Ln,{disabled:!e.attach||!y.value,to:y.value},{default:function(){return[V(`div`,H({class:n,style:x.value},r),[V(`div`,{class:i},[l,u])])]}}):S.value?V(`div`,H({class:d.value},r),[g(`default`,`content`),T.value&&V(`div`,{class:a,style:x.value},[l,u])]):e.attach?!D.value||!k.value?null:V(Ln,{disabled:!e.attach||!y.value,to:y.value},{default:function(){return[V(`div`,H({class:o,style:x.value},r),[l,u])]}}):k.value?V(`div`,H({class:s,style:x.value},r),[l,u]):null}}}),rh=null;function Cse(e){return mf({fullscreen:!1,attach:`body`,loading:!0,preventScrollThrough:!0},e)}function ih(e,t){var n=Cse(e);if(n.fullscreen&&rh)return rh;var r=I(``),i=I(``),a=z({setup:function(){var e=Dt(n);return r.value=Q(`loading__parent--relative`).value,i.value=Q(`loading--lock`).value,function(){return sa(nh,e)}}}),o=pp(n.fullscreen?`body`:n.attach),s=V(a);(t??oh._context)&&(s.appContext=t??oh._context);var c=document.createElement(`div`);return Za(s,c),n.preventScrollThrough&&n.fullscreen&&dp(document.body,i.value),o?dp(o,r.value):console.error(`attach is not exist`),{hide:function(){fp(o,r.value),fp(document.body,i.value),Za(null,c),c.remove()}}}function ah(e,t){if(e===!0)return rh=ih({fullscreen:!0,loading:!0,attach:`body`,preventScrollThrough:!0},t),rh;if(e===!1){var n;(n=rh)==null||n.hide(),rh=null;return}return ih(e)}var oh=ah;oh.install=function(e){e.config.globalProperties.$loading=ah,oh._context=e._context};var sh=Symbol(`TdLoading`),ch=function(e,t){var n=t.modifiers,r=n.fullscreen,i=n.inheritColor,a={attach:function(){return e},fullscreen:r??!1,inheritColor:i??!1,loading:t.value};Do(t.value)&&uf(t.value,function(e,t){a[t]=e}),e[sh]={options:a,instance:oh(a)}},lh={mounted:function(e,t){t.value&&ch(e,t)},updated:function(e,t){var n=e[sh],r=t.value,i=t.oldValue;ef(r,i)||(r?.loading??r?ch(e,t):n?.instance.hide())},unmounted:function(e){var t;(t=e[sh])==null||t.instance.hide()}},uh=X(nh,nh.name,{name:`loading`,comp:lh}),wse={block:Boolean,content:{type:[String,Function]},default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},form:{type:String,default:void 0},ghost:Boolean,href:{type:String,default:``},icon:{type:Function},loading:Boolean,loadingProps:{type:Object},shape:{type:String,default:`rectangle`,validator:function(e){return!e||[`rectangle`,`square`,`round`,`circle`].includes(e)}},size:{type:String,default:`medium`,validator:function(e){return!e||[`extra-small`,`small`,`medium`,`large`].includes(e)}},suffix:{type:Function},tag:{type:String,validator:function(e){return!e||[`button`,`a`,`div`].includes(e)}},theme:{type:String,validator:function(e){return!e||[`default`,`primary`,`danger`,`warning`,`success`].includes(e)}},type:{type:String,default:`button`,validator:function(e){return!e||[`submit`,`reset`,`button`].includes(e)}},variant:{type:String,default:`base`,validator:function(e){return!e||[`base`,`outline`,`dashed`,`text`].includes(e)}},onClick:Function};function dh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fh(e){for(var t=1;t[`strokeLinecap`,`fillRule`,`clipRule`,`strokeWidth`].includes(e)?e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,`$1-$2`).toLowerCase():e,vh=(e,t)=>{var n={};if(e.attrs)for(var[r,i]of Object.entries(e.attrs))if(typeof i==`string`&&i.startsWith(`props.`)){var a=i.split(`.`)[1];n[_h(r)]=t[a]}else n[_h(r)]=i;e.tag===`svg`&&(n.class=t.class,n.style=t.style,n.onClick=t.onClick);var o=e.children?e.children.map(e=>vh(e,t)):[];return sa(e.tag,n,o)},yh={classPrefix:`t`,locale:`zh-CN`};function Dse(){var{classPrefix:e}=yh;return{SIZE:{default:``,xs:`${e}-size-xs`,small:`${e}-size-s`,medium:`${e}-size-m`,large:`${e}-size-l`,xl:`${e}-size-xl`,block:`${e}-size-full-width`},STATUS:{loading:`${e}-is-loading`,disabled:`${e}-is-disabled`,focused:`${e}-is-focused`,success:`${e}-is-success`,error:`${e}-is-error`,warning:`${e}-is-warning`,selected:`${e}-is-selected`,active:`${e}-is-active`,checked:`${e}-is-checked`,current:`${e}-is-current`,hidden:`${e}-is-hidden`,visible:`${e}-is-visible`,expanded:`${e}-is-expanded`,indeterminate:`${e}-is-indeterminate`}}}function bh(e){var t=Dse().SIZE,n=U(()=>e.value in t?t[e.value]:``);return{style:U(()=>e.value===void 0||e.value in t?{}:{fontSize:e.value}),className:n}}function xh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Sh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-add-rectangle`,l.value]),f=U(()=>Sh(Sh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Ose,p.value)}});function Ch(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-add`,l.value]),f=U(()=>wh(wh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Ase,p.value)}});function Eh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Dh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-app`,l.value]),f=U(()=>Dh(Dh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(jse,p.value)}});function kh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ah(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-arrow-triangle-down-filled`,l.value]),f=U(()=>Ah(Ah({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Mse,p.value)}});function jh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Mh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-arrow-triangle-up-filled`,l.value]),f=U(()=>Mh(Mh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Pse,p.value)}});function Nh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ph(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-backtop`,l.value]),f=U(()=>Ph(Ph({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Ise,p.value)}});function Fh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ih(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-browse-off`,l.value]),f=U(()=>Ih(Ih({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Rse,p.value)}});function Lh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Rh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-browse`,l.value]),f=U(()=>Rh(Rh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Bse,p.value)}});function Bh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Vh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-calendar`,l.value]),f=U(()=>Vh(Vh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Vse,p.value)}});function Uh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Wh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-caret-right-small`,l.value]),f=U(()=>Wh(Wh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Hse,p.value)}});function Gh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Kh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-catalog`,l.value]),f=U(()=>Kh(Kh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Wse,p.value)}});function qh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Jh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-chart-line`,l.value]),f=U(()=>Jh(Jh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Kse,p.value)}});function Xh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zh(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-check-circle-filled`,l.value]),f=U(()=>Zh(Zh({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(qse,p.value)}});function $h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function eg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-check-circle`,l.value]),f=U(()=>eg(eg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Jse,p.value)}});function ng(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-check`,l.value]),f=U(()=>rg(rg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Yse,p.value)}});function ag(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function og(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-chevron-down`,l.value]),f=U(()=>og(og({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Xse,p.value)}});function cg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-chevron-left-double`,l.value]),f=U(()=>lg(lg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Zse,p.value)}});function ug(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-chevron-left`,l.value]),f=U(()=>dg(dg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh($se,p.value)}});function pg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function mg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-chevron-right-circle`,l.value]),f=U(()=>mg(mg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(ece,p.value)}});function hg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function gg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-chevron-right-double`,l.value]),f=U(()=>gg(gg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(nce,p.value)}});function _g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-chevron-right`,l.value]),f=U(()=>vg(vg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(ice,p.value)}});function bg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-chevron-up`,l.value]),f=U(()=>xg(xg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(ace,p.value)}});function Cg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-close-circle-filled`,l.value]),f=U(()=>wg(wg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(oce,p.value)}});function Eg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Dg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-close`,l.value]),f=U(()=>Dg(Dg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(sce,p.value)}});function kg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ag(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-cloud-download`,l.value]),f=U(()=>Ag(Ag({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(cce,p.value)}});function Mg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ng(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-control-platform`,l.value]),f=U(()=>Ng(Ng({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(lce,p.value)}});function Fg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ig(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-copy`,l.value]),f=U(()=>Ig(Ig({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(uce,p.value)}});function Lg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Rg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-dashboard`,l.value]),f=U(()=>Rg(Rg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(fce,p.value)}});function zg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-delete`,l.value]),f=U(()=>Bg(Bg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(mce,p.value)}});function Hg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ug(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-download`,l.value]),f=U(()=>Ug(Ug({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(hce,p.value)}});function Wg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Gg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-edit-1`,l.value]),f=U(()=>Gg(Gg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(_ce,p.value)}});function Kg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-ellipsis`,l.value]),f=U(()=>qg(qg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(yce,p.value)}});function Yg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xg(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-error-circle-filled`,l.value]),f=U(()=>Xg(Xg({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(bce,p.value)}});function Qg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $g(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-error-circle`,l.value]),f=U(()=>$g($g({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(xce,p.value)}});function e_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function t_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-error`,l.value]),f=U(()=>t_(t_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Cce,p.value)}});function n_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function r_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-file-copy`,l.value]),f=U(()=>r_(r_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Tce,p.value)}});function i_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-file-excel`,l.value]),f=U(()=>a_(a_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Dce,p.value)}});function o_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-file-pdf`,l.value]),f=U(()=>s_(s_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(kce,p.value)}});function c_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-file-powerpoint`,l.value]),f=U(()=>l_(l_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(jce,p.value)}});function u_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-file-word`,l.value]),f=U(()=>d_(d_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Nce,p.value)}});function f_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function p_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-file`,l.value]),f=U(()=>p_(p_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Fce,p.value)}});function m_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-filter`,l.value]),f=U(()=>h_(h_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Lce,p.value)}});function g_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function __(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-help-circle-filled`,l.value]),f=U(()=>__(__({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(zce,p.value)}});function y_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function b_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-history`,l.value]),f=U(()=>b_(b_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Bce,p.value)}});function S_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function C_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-image-error`,l.value]),f=U(()=>C_(C_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Vce,p.value)}});function T_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function E_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-image`,l.value]),f=U(()=>E_(E_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Hce,p.value)}});function O_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function k_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-info-circle-filled`,l.value]),f=U(()=>k_(k_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Uce,p.value)}});function j_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function M_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-link`,l.value]),f=U(()=>M_(M_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Wce,p.value)}});function N_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function P_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-lock-on`,l.value]),f=U(()=>P_(P_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Kce,p.value)}});function I_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function L_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-menu`,l.value]),f=U(()=>L_(L_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(qce,p.value)}});function R_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function z_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-minus-rectangle`,l.value]),f=U(()=>z_(z_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Yce,p.value)}});function B_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function V_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-mirror`,l.value]),f=U(()=>V_(V_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Zce,p.value)}});function H_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function U_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-more`,l.value]),f=U(()=>U_(U_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh($ce,p.value)}});function W_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function G_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-page-first`,l.value]),f=U(()=>G_(G_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(tle,p.value)}});function K_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function q_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-page-last`,l.value]),f=U(()=>q_(q_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(rle,p.value)}});function J_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Y_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-pause`,l.value]),f=U(()=>Y_(Y_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(ale,p.value)}});function X_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Z_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-play-circle`,l.value]),f=U(()=>Z_(Z_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(sle,p.value)}});function Q_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $_(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-refresh`,l.value]),f=U(()=>$_($_({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(lle,p.value)}});function tv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-remove`,l.value]),f=U(()=>nv(nv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(ule,p.value)}});function rv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function iv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-rollback`,l.value]),f=U(()=>iv(iv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(fle,p.value)}});function ov(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-rotation`,l.value]),f=U(()=>sv(sv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(ple,p.value)}});function cv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-round`,l.value]),f=U(()=>lv(lv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(hle,p.value)}});function uv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-save`,l.value]),f=U(()=>dv(dv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(_le,p.value)}});function fv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function pv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-search`,l.value]),f=U(()=>pv(pv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(yle,p.value)}});function hv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function gv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-setting`,l.value]),f=U(()=>gv(gv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(ble,p.value)}});function vv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-shop`,l.value]),f=U(()=>yv(yv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(xle,p.value)}});function bv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-star-filled`,l.value]),f=U(()=>xv(xv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Cle,p.value)}});function Sv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Cv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-time-filled`,l.value]),f=U(()=>Cv(Cv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Tle,p.value)}});function Tv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ev(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-time`,l.value]),f=U(()=>Ev(Ev({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Ele,p.value)}});function Ov(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-upload`,l.value]),f=U(()=>kv(kv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Dle,p.value)}});function jv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Mv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-user-circle`,l.value]),f=U(()=>Mv(Mv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Ole,p.value)}});function Pv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Fv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-video`,l.value]),f=U(()=>Fv(Fv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(kle,p.value)}});function Iv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Lv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-view-list`,l.value]),f=U(()=>Lv(Lv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(jle,p.value)}});function Rv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-zoom-in`,l.value]),f=U(()=>zv(zv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Nle,p.value)}});function Bv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Vv(e){for(var t=1;te.size),i=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor:`currentColor`),a=U(()=>e.strokeColor?Array.isArray(e.strokeColor)?e.strokeColor[1]??e.strokeColor[0]:e.strokeColor:`currentColor`),o=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`transparent`),s=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[1]??e.fillColor[0]:e.fillColor:`transparent`),c=U(()=>e.fillColor?Array.isArray(e.fillColor)?e.fillColor[0]:e.fillColor:`currentColor`),{className:l,style:u}=bh(r),d=U(()=>[`t-icon`,`t-icon-zoom-out`,l.value]),f=U(()=>Vv(Vv({fill:`none`},u.value),n.style)),p=U(()=>({class:d.value,style:f.value,onClick:t=>e.onClick?.call(e,{e:t}),strokeColor1:i.value,strokeColor2:a.value,fillColor1:o.value,fillColor2:s.value,strokeWidth:e.strokeWidth||2,filledColor:c.value}));return()=>vh(Fle,p.value)}}),Lle=typeof window>`u`;function Rle(e,t){if(!Lle&&!(!document||!e||typeof e!=`string`)&&!(document.querySelectorAll(`.${t}[src="${e}"]`).length>0)){var n=document.createElement(`script`);n.setAttribute(`class`,t),n.setAttribute(`src`,e),document.body.appendChild(n)}}var zle={name:{type:String,default:``},size:{type:String,default:void 0},url:{type:[String,Array],default:void 0},loadDefaultIcons:{type:Boolean,default:!0},onClick:Function};function Hv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Uv(e){for(var t=1;te.size),i=U(()=>e.name||``),{className:a,style:o}=bh(r),s=U(()=>{var t=[];return t=e.url instanceof Array?e.url.concat():[e.url],e.loadDefaultIcons&&t.push(Ble),t}),c=U(()=>[`${Wv}-icon`,`${Wv}-icon-${i.value}`,a.value]),l=U(()=>Uv(Uv({},o.value),n.style));mr(()=>{Array.from(new Set(s.value)).forEach(e=>{Rle(e,`${Wv}-svg-js-stylesheet--unique-class`)})});var u=U(()=>({class:c.value,style:l.value,onClick:t=>e.onClick?.call(e,{e:t})}));return()=>sa(`svg`,u.value,sa(`use`,{href:e.url?`#${i.value}`:`#t-icon-${i.value}`}))}}),`TIcon`),Kv=X(z({name:`TLink`,props:{content:{type:[String,Function]},default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},download:{type:[String,Boolean]},hover:{type:String,default:`underline`,validator:function(e){return!e||[`color`,`underline`].includes(e)}},href:{type:String,default:``},prefixIcon:{type:Function},size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},suffixIcon:{type:Function},target:{type:String,default:``},theme:{type:String,default:`default`,validator:function(e){return!e||[`default`,`primary`,`danger`,`warning`,`success`].includes(e)}},underline:Boolean,onClick:Function},emits:[`click`],setup:function(e,t){var n=t.emit,r=hm(),i=pm(),a=Q(`link`),o=ym(),s=o.STATUS,c=o.SIZE,l=Rp(`classPrefix`).classPrefix,u=Sm(),d=U(function(){return[`${a.value}`,`${a.value}--theme-${e.theme}`,G(G(G(G({},c.value[e.size],e.size!==`medium`),s.value.disabled,u.value),`${l.value}-is-underline`,e.underline),`${a.value}--hover-${e.hover}`,!u.value)]}),f=function(e){u.value||n(`click`,e)};return function(){var t=r(`default`,`content`),n=i(`prefixIcon`),o=i(`suffixIcon`);return V(`a`,{class:W(d.value),href:u.value||!e.href?void 0:e.href,target:e.target?e.target:void 0,download:e.download?e.download:void 0,onClick:f},[n?V(`span`,{class:`${a.value}__prefix-icon`},[n]):null,t,o?V(`span`,{class:`${a.value}__suffix-icon`},[o]):null])}}})),Vle={align:{type:String,default:`top`,validator:function(e){return!e||[`start`,`end`,`center`,`stretch`,`baseline`,`top`,`middle`,`bottom`].includes(e)}},gutter:{type:[Number,Object,Array],default:0},justify:{type:String,default:`start`,validator:function(e){return!e||[`start`,`end`,`center`,`space-around`,`space-between`].includes(e)}},tag:{type:String,default:`div`}},qv=function(e){var t=`xs`;return t=e<768?`xs`:e>=768&&e<992?`sm`:e>=992&&e<1200?`md`:e>=1200&&e<1400?`lg`:e>=1400&&e<1880?`xl`:`xxl`,t};function Jv(){var e=I(qv(sp?0:window.innerWidth));return Dm(`resize`,function(){e.value=qv(sp?0:window.innerWidth)}),e}function Yv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xv(e){for(var t=1;t=0),`${e}-${r}-offset-${a.offset}`,parseInt(a.offset,10)>=0),`${e}-${r}-push-${a.push}`,parseInt(a.push,10)>=0),`${e}-${r}-pull-${a.pull}`,parseInt(a.pull,10)>=0))},{});return Xv(G(G(G(G(G(G({},`${e}`,!0),`${e}-${n}`,!sf(n)),`${e}-order-${r}`,r),`${e}-offset-${i}`,i),`${e}-push-${a}`,a),`${e}-pull-${o}`,o),s)}var qle=z({name:`TRow`,props:Vle,setup:function(e){var t=Wt(e).gutter,n=pm();Cn(`rowContext`,Dt({gutter:t}));var r=Jv(),i=Q(`row`),a=U(function(){return Hle(i.value,e)}),o=U(function(){return Ule(e.gutter,r.value)});return function(){var t=e.tag;return sa(t,{class:a.value,style:o.value},[n(`default`)])}}}),Jle=z({name:`TCol`,inject:[`rowContext`],props:{flex:{type:[String,Number]},lg:{type:[Number,Object]},md:{type:[Number,Object]},offset:{type:Number,default:0},order:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},sm:{type:[Number,Object]},span:{type:Number},tag:{type:String,default:`div`},xl:{type:[Number,Object]},xs:{type:[Number,Object]},xxl:{type:[Number,Object]}},setup:function(e){var t=Q(`col`),n=pm(),r=wn(`rowContext`,Object.create(null)),i=Jv(),a=U(function(){return Kle(t.value,e)}),o=U(function(){var t={},n=e.flex;if(n&&(t.flex=Wle(n)),r){var a=r.gutter;Object.assign(t,Gle(a,i.value))}return t});return function(){var t=e.tag;return sa(t,{class:a.value,style:o.value},[n(`default`)])}}}),Yle=X(qle),Xle=X(Jle),Zle=z({name:`TLayout`,setup:function(){var e=I(!1),t=pm(),n=Q(`layout`),r=U(function(){return[n.value,G({},`${n.value}--with-sider`,e.value)]});return Cn(`layout`,{hasSide:e}),function(){return V(`section`,{class:r.value},[t(`default`)])}}}),Qle=z({name:`THeader`,props:{height:{type:String,default:``}},setup:function(e){var t=Q(`layout__header`),n=pm();return function(){return V(`header`,{class:t.value,style:e.height?{height:e.height}:{}},[n(`default`)])}}}),$le=z({name:`TFooter`,props:{height:{type:String,default:``}},setup:function(e){var t=Q(`layout__footer`),n=pm();return function(){return V(`footer`,{class:t.value,style:e.height?{height:e.height}:{}},[n(`default`)])}}}),eue=z({name:`TAside`,props:{width:{type:String,default:``}},setup:function(e){var t=wn(`layout`,Object.create(null)).hasSide,n=Q(`layout__sider`),r=pm();if(t)return mr(function(){t.value=!0}),vr(function(){t.value=!1}),function(){var t=e.width?{width:e.width}:{};return V(`aside`,{class:n.value,style:t},[r(`default`)])}}}),tue=z({name:`TContent`,props:{content:{type:[String,Function]},default:{type:[String,Function]}},setup:function(){var e=Q(`layout__content`),t=hm();return function(){return V(`main`,{class:e.value},[t(`default`,`content`)])}}}),nue=X(eue),rue=X(Zle),iue=X(Qle),aue=X($le),oue=X(tue),Zv=X(z({name:`TDivider`,props:{align:{type:String,default:`center`,validator:function(e){return!e||[`left`,`right`,`center`].includes(e)}},content:{type:[String,Function]},dashed:Boolean,default:{type:[String,Function]},layout:{type:String,default:`horizontal`,validator:function(e){return!e||[`horizontal`,`vertical`].includes(e)}},size:{type:[String,Number]}},setup:function(e){var t=Q(`divider`),n=hm();return function(){var r=n(`default`,`content`),i=U(function(){return e.layout!==`vertical`}),a=U(function(){return i.value&&!!r});return V(`div`,{class:[`${t.value}`,[`${t.value}--${e.layout}`],G(G(G({},`${t.value}--dashed`,!!e.dashed),`${t.value}--with-text`,!!a.value),`${t.value}--with-text-${e.align}`,!!a.value)],style:U(function(){return e.size?{margin:i.value?`${$m(e.size)} 0`:`0 ${$m(e.size)}`}:null}).value},[a.value&&V(`span`,{class:`${t.value}__inner-text`},[r])])}}})),sue={align:{type:String,validator:function(e){return!e||[`start`,`end`,`center`,`baseline`].includes(e)}},breakLine:Boolean,direction:{type:String,default:`horizontal`,validator:function(e){return!e||[`vertical`,`horizontal`].includes(e)}},separator:{type:[String,Function]},size:{type:[String,Number,Array],default:`medium`}};function Qv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $v(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};return Rd(e)?e:q(e)?e(sa,t):q(e?.render)?e.render(sa,t):e}function oy(e,t,n){var r=e.props?.[t];if(r)return r;var i=e.children,a=i?.[t]||i?.[n];return a?a?.():null}function sy(e,t){return e===iy.props}var lue=z({name:`TDescriptionsRow`,props:{row:Array,itemType:String},setup:function(e){var t=wn(ry),n=Q(`descriptions`),r=Rp(`descriptions`).globalConfig,i=U(function(){return t.layout===`horizontal`}),a=U(function(){return t.itemLayout===`horizontal`}),o=function(o){var s=[`${n.value}__label`],c=null,l=null;return sy(e.itemType,o)?(c=o.label,l=o.span):(c=oy(o,`label`),l=o.props.span),V(`td`,H({colspan:i.value?a.value?1:l:1,class:s},{style:t.labelStyle}),[c,t.colon&&r.value.colonText])},s=function(r){var o=[`${n.value}__content`],s=null,c=null;return sy(e.itemType,r)?(s=r.content,c=r.span):(s=oy(r,`content`,`default`),c=r.props.span),V(`td`,H({colspan:i.value?c>1&&a.value?c*2-1:c:1,class:o},{style:t.contentStyle}),[s])},c=function(){return V(`tr`,null,[e.row.map(function(e){return V(bi,null,[o(e),s(e)])})])},l=function(){return V(bi,null,[V(`tr`,null,[e.row.map(function(e){return o(e)})]),V(`tr`,null,[e.row.map(function(e){return s(e)})])])},u=function(){return V(bi,null,[e.row.map(function(e){return V(`tr`,null,[o(e),s(e)])})])},d=function(){return V(bi,null,[e.row.map(function(e){return V(bi,null,[V(`tr`,null,[o(e)]),V(`tr`,null,[s(e)])])})])};return function(){return V(bi,null,[i.value?a.value?c():l():a.value?u():d()])}}}),uue=z({name:`TDescriptions`,props:ny,setup:function(e){var t=Q(`descriptions`),n=ym().SIZE,r=om(),i=pm(),a=I(iy.props),o=function(){var t=e.column,n=e.layout,i=[];if(K(e.items))i=e.items.map(function(e){return{label:ay(e.label),content:ay(e.content),span:e.span||1}}),a.value=iy.props;else{var o=r(`TDescriptionsItem`);o.length!==0&&(i=o,a.value=iy.slots)}if(n===`vertical`)return[i];var s=[],c=t,l=[];return i.forEach(function(e,n){var r=1;sy(a.value,e)?(r=af(e.span)?r:e.span,r=r>t?t:r):(e.props=e.props||{},r=af(e.props?.span)?r:e.props.span,r=r>t?t:r,e.props.span=r),c>=r?(s.push(e),c-=r):(l.push(s),s=[e],c=t-r),n===i.length-1&&(sy(a.value,e)?e.span+=c:e.props.span+=c,l.push(s))}),l};Cn(ry,e);var s=function(){return V(`table`,{class:[`${t.value}__body`,n.value[e.size],G({},`${t.value}__body--fixed`,e.tableLayout===`fixed`),G({},`${t.value}__body--border`,e.bordered)]},[V(`tbody`,null,[o().map(function(e){return V(lue,{"item-type":a.value,row:e},null)})])])},c=function(){var e=i(`title`);return e?V(`div`,{class:`${t.value}__header`},[e]):``};return function(){return V(`div`,{class:t.value},[c(),s()])}}}),due=z({name:`TDescriptionsItem`,props:{content:{type:[String,Function]},default:{type:[String,Function]},label:{type:[String,Function]},span:{type:Number,default:1}}}),fue=X(uue),pue=X(due);function cy(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function ly(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){cy(a,r,i,o,s,`next`,e)}function s(e){cy(a,r,i,o,s,`throw`,e)}o(void 0)})}}var uy={exports:{}},dy={exports:{}};dy.exports,(function(e){function t(e,t){this.v=e,this.k=t}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(dy);var fy=dy.exports,py={exports:{}},my={exports:{}};my.exports,(function(e){function t(n,r,i,a){var o=Object.defineProperty;try{o({},``,{})}catch{o=0}e.exports=t=function(e,n,r,i){if(n)o?o(e,n,{value:r,enumerable:!i,configurable:!i,writable:!i}):e[n]=r;else{var a=function(n,r){t(e,n,function(e){return this._invoke(n,r,e)})};a(`next`,0),a(`throw`,1),a(`return`,2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,i,a)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(my);var hy=my.exports;py.exports,(function(e){var t=hy;function n(){var r,i,a=typeof Symbol==`function`?Symbol:{},o=a.iterator||`@@iterator`,s=a.toStringTag||`@@toStringTag`;function c(e,n,a,o){var s=n&&n.prototype instanceof u?n:u,c=Object.create(s.prototype);return t(c,`_invoke`,function(e,t,n){var a,o,s,c=0,u=n||[],d=!1,f={p:0,n:0,v:r,a:p,f:p.bind(r,4),d:function(e,t){return a=e,o=0,s=r,f.n=t,l}};function p(e,t){for(o=e,s=t,i=0;!d&&c&&!n&&i3?(n=m===t)&&(s=a[(o=a[4])?5:(o=3,3)],a[4]=a[5]=r):a[0]<=p&&((n=e<2&&pt||t>m)&&(a[4]=e,a[5]=t,f.n=m,o=0))}if(n||e>1)return l;throw d=!0,t}return function(n,u,m){if(c>1)throw TypeError(`Generator is already running`);for(d&&u===1&&p(u,m),o=u,s=m;(i=o<2?r:s)||!d;){a||(o?o<3?(o>1&&(f.n=-1),p(o,s)):f.n=s:f.v=s);try{if(c=2,a){if(o||(n=`next`),i=a[n]){if(!(i=i.call(a,s)))throw TypeError(`iterator result is not an object`);if(!i.done)return i;s=i.value,o<2&&(o=0)}else o===1&&(i=a.return)&&i.call(a),o<2&&(s=TypeError(`The iterator does not provide a '`+n+`' method`),o=1);a=r}else if((i=(d=f.n<0)?s:e.call(t,f))!==l)break}catch(e){a=r,o=1,s=e}finally{c=1}}return{value:i,done:d}}}(e,a,o),!0),c}var l={};function u(){}function d(){}function f(){}i=Object.getPrototypeOf;var p=[][o]?i(i([][o]())):(t(i={},o,function(){return this}),i),m=f.prototype=u.prototype=Object.create(p);function h(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,f):(e.__proto__=f,t(e,s,`GeneratorFunction`)),e.prototype=Object.create(m),e}return d.prototype=f,t(m,`constructor`,f),t(f,`constructor`,d),d.displayName=`GeneratorFunction`,t(f,s,`GeneratorFunction`),t(m),t(m,s,`Generator`),t(m,o,function(){return this}),t(m,`toString`,function(){return`[object Generator]`}),(e.exports=n=function(){return{w:c,m:h}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports})(py);var gy=py.exports,_y={exports:{}},vy={exports:{}},yy={exports:{}};yy.exports,(function(e){var t=fy,n=hy;function r(e,i){function a(n,r,o,s){try{var c=e[n](r),l=c.value;return l instanceof t?i.resolve(l.v).then(function(e){a(`next`,e,o,s)},function(e){a(`throw`,e,o,s)}):i.resolve(l).then(function(e){c.value=e,o(c)},function(e){return a(`throw`,e,o,s)})}catch(e){s(e)}}var o;this.next||(n(r.prototype),n(r.prototype,typeof Symbol==`function`&&Symbol.asyncIterator||`@asyncIterator`,function(){return this})),n(this,`_invoke`,function(e,t,n){function r(){return new i(function(t,r){a(e,n,t,r)})}return o=o?o.then(r,r):r()},!0)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports})(yy);var by=yy.exports;vy.exports,(function(e){var t=gy,n=by;function r(e,r,i,a,o){return new n(t().w(e,r,i,a),o||Promise)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports})(vy);var xy=vy.exports;_y.exports,(function(e){var t=xy;function n(e,n,r,i,a){var o=t(e,n,r,i,a);return o.next().then(function(e){return e.done?e.value:o.next()})}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports})(_y);var mue=_y.exports,Sy={exports:{}};Sy.exports,(function(e){function t(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(Sy);var hue=Sy.exports,Cy={exports:{}},wy={exports:{}};wy.exports,(function(e){function t(n){"@babel/helpers - typeof";return e.exports=t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(wy);var gue=wy.exports;Cy.exports,(function(e){var t=gue.default;function n(e){if(e!=null){var n=e[typeof Symbol==`function`&&Symbol.iterator||`@@iterator`],r=0;if(n)return n.call(e);if(typeof e.next==`function`)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw TypeError(t(e)+` is not iterable`)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports})(Cy);var _ue=Cy.exports;uy.exports,(function(e){var t=fy,n=gy,r=mue,i=xy,a=by,o=hue,s=_ue;function c(){var l=n(),u=l.m(c),d=(Object.getPrototypeOf?Object.getPrototypeOf(u):u.__proto__).constructor;function f(e){var t=typeof e==`function`&&e.constructor;return!!t&&(t===d||(t.displayName||t.name)===`GeneratorFunction`)}var p={throw:1,return:2,break:3,continue:3};function m(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,p[e],t)},delegateYield:function(e,i,a){return t.resultName=i,n(r.d,s(e),a)},finish:function(e){return n(r.f,e)}},n=function(e,n,i){r.p=t.prev,r.n=t.next;try{return e(n,i)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=c=function(){return{wrap:function(e,t,n,r){return l.w(m(e),t,n,r&&r.reverse())},isGeneratorFunction:f,mark:l.m,awrap:function(e,n){return new t(e,n)},AsyncIterator:a,async:function(e,t,n,a,o){return(f(t)?i:r)(m(e),t,n,a,o)},keys:o,values:s}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports})(uy);var vue=uy.exports,Ty=vue(),yue=Ty;try{regeneratorRuntime=Ty}catch{(typeof globalThis>`u`?`undefined`:so(globalThis))===`object`?globalThis.regeneratorRuntime=Ty:Function(`r`,`regeneratorRuntime = r`)(Ty)}var Ey=Jf(yue),Dy=X(z({name:`TAffix`,props:{container:{type:[String,Function],default:function(){return function(){return window}}},content:{type:[String,Function]},default:{type:[String,Function]},offsetBottom:{type:Number,default:0},offsetTop:{type:Number,default:0},zIndex:{type:Number},onFixedChange:Function},emits:[`fixedChange`],setup:function(e,t){var n=Q(`affix`),r=hm(),i=I(null),a=I(null),o=I(document?.createElement(`div`)),s=I(!1),c=I(!1),l=I(),u=I(),d=0,f=function(){s.value||=(d=window.requestAnimationFrame(function(){d=0;var r=i.value?.getBoundingClientRect()??{top:0,width:0,height:0},c=r.top,f=r.width,p=r.height,m=0;l.value instanceof HTMLElement&&(m=l.value.getBoundingClientRect().top);var h,g=c-m,_=l.value[l.value instanceof Window?`innerHeight`:`clientHeight`]-p,v=m+_-e.offsetBottom;if(h=!sf(e.offsetTop)&&g<=e.offsetTop?m+e.offsetTop:!sf(e.offsetBottom)&&c>=v&&v,a.value){var y=h!==!1,b=i.value.contains(o.value);y?(a.value.className=n.value,u.value={top:`${h}px`,width:`${f}px`,height:`${p}px`,zIndex:e.zIndex},b||(o.value.style.width=`${f}px`,o.value.style.height=`${p}px`,i.value.appendChild(o.value))):(a.value.removeAttribute(`class`),u.value=void 0,b&&o.value.remove()),t.emit(`fixedChange`,y,{top:Number(h)}),q(e.onFixedChange)&&e.onFixedChange(y,{top:Number(h)})}s.value=!1}),!0)},p=function(){var t=ly(Ey.mark(function t(){return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=1,dn();case 1:if(!c.value){t.next=2;break}return t.abrupt(`return`);case 2:l.value=mp(e.container),cp(l.value,`scroll`,f),cp(window,`resize`,f),c.value=!0;case 3:case`end`:return t.stop()}},t)}));return function(){return t.apply(this,arguments)}}(),m=function(){!l.value||!c.value||(lp(l.value,`scroll`,f),lp(window,`resize`,f),d&&window.cancelAnimationFrame(d),c.value=!1)};return R(function(){return e.offsetTop},function(){f()}),R(function(){return e.offsetBottom},function(){f()}),R(function(){return e.zIndex},function(){f()}),mr(p),cr(p),lr(m),_r(m),t.expose({scrollContainer:l,affixWrapRef:i,handleScroll:f}),function(){return V(`div`,{ref:i},[V(`div`,{ref:a,style:u.value},[r(`default`,`content`)])])}}})),Oy={exports:{}};Oy.exports,(function(e,t){(function(t,n){e.exports=n()})(qf,function(){return function(){var e={686:(function(e,t,n){n.d(t,{default:function(){return O}});var r=n(279),i=n.n(r),a=n(370),o=n.n(a),s=n(817),c=n.n(s);function l(e){try{return document.execCommand(e)}catch{return!1}}var u=function(e){var t=c()(e);return l(`cut`),t};function d(e){var t=document.documentElement.getAttribute(`dir`)===`rtl`,n=document.createElement(`textarea`);n.style.fontSize=`12pt`,n.style.border=`0`,n.style.padding=`0`,n.style.margin=`0`,n.style.position=`absolute`,n.style[t?`right`:`left`]=`-9999px`;var r=window.pageYOffset||document.documentElement.scrollTop;return n.style.top=`${r}px`,n.setAttribute(`readonly`,``),n.value=e,n}var f=function(e,t){var n=d(e);t.container.appendChild(n);var r=c()(n);return l(`copy`),n.remove(),r},p=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},n=``;return typeof e==`string`?n=f(e,t):e instanceof HTMLInputElement&&![`text`,`search`,`url`,`tel`,`password`].includes(e?.type)?n=f(e.value,t):(n=c()(e),l(`copy`)),n};function m(e){"@babel/helpers - typeof";return m=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},m(e)}var h=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.action,n=t===void 0?`copy`:t,r=e.container,i=e.target,a=e.text;if(n!==`copy`&&n!==`cut`)throw Error(`Invalid "action" value, use either "copy" or "cut"`);if(i!==void 0)if(i&&m(i)===`object`&&i.nodeType===1){if(n===`copy`&&i.hasAttribute(`disabled`))throw Error(`Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute`);if(n===`cut`&&(i.hasAttribute(`readonly`)||i.hasAttribute(`disabled`)))throw Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw Error(`Invalid "target" value, use a valid Element`);if(a)return p(a,{container:r});if(i)return n===`cut`?u(i):p(i,{container:r})};function g(e){"@babel/helpers - typeof";return g=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},g(e)}function _(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function v(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}function D(e,t){var n=`data-clipboard-${e}`;if(t.hasAttribute(n))return t.getAttribute(n)}var O=function(e){b(n,e);var t=S(n);function n(e,r){var i;return _(this,n),i=t.call(this),i.resolveOptions(r),i.listenClick(e),i}return y(n,[{key:`resolveOptions`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof e.action==`function`?e.action:this.defaultAction,this.target=typeof e.target==`function`?e.target:this.defaultTarget,this.text=typeof e.text==`function`?e.text:this.defaultText,this.container=g(e.container)===`object`?e.container:document.body}},{key:`listenClick`,value:function(e){var t=this;this.listener=o()(e,`click`,function(e){return t.onClick(e)})}},{key:`onClick`,value:function(e){var t=e.delegateTarget||e.currentTarget,n=this.action(t)||`copy`,r=h({action:n,container:this.container,target:this.target(t),text:this.text(t)});this.emit(r?`success`:`error`,{action:n,text:r,trigger:t,clearSelection:function(){t&&t.focus(),window.getSelection().removeAllRanges()}})}},{key:`defaultAction`,value:function(e){return D(`action`,e)}},{key:`defaultTarget`,value:function(e){var t=D(`target`,e);if(t)return document.querySelector(t)}},{key:`defaultText`,value:function(e){return D(`text`,e)}},{key:`destroy`,value:function(){this.listener.destroy()}}],[{key:`copy`,value:function(e){return p(e,arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body})}},{key:`cut`,value:function(e){return u(e)}},{key:`isSupported`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[`copy`,`cut`],t=typeof e==`string`?[e]:e,n=!!document.queryCommandSupported;return t.forEach(function(e){n&&=!!document.queryCommandSupported(e)}),n}}]),n}(i())}),828:(function(e){if(typeof Element<`u`&&!Element.prototype.matches){var t=Element.prototype;t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector}function n(e,t){for(;e&&e.nodeType!==9;){if(typeof e.matches==`function`&&e.matches(t))return e;e=e.parentNode}}e.exports=n}),438:(function(e,t,n){var r=n(828);function i(e,t,n,r,i){var a=o.apply(this,arguments);return e.addEventListener(n,a,i),{destroy:function(){e.removeEventListener(n,a,i)}}}function a(e,t,n,r,a){return typeof e.addEventListener==`function`?i.apply(null,arguments):typeof n==`function`?i.bind(null,document).apply(null,arguments):(typeof e==`string`&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,function(e){return i(e,t,n,r,a)}))}function o(e,t,n,i){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&i.call(e,n)}}e.exports=a}),879:(function(e,t){t.node=function(e){return e!==void 0&&e instanceof HTMLElement&&e.nodeType===1},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return e!==void 0&&(n===`[object NodeList]`||n===`[object HTMLCollection]`)&&`length`in e&&(e.length===0||t.node(e[0]))},t.string=function(e){return typeof e==`string`||e instanceof String},t.fn=function(e){return Object.prototype.toString.call(e)===`[object Function]`}}),370:(function(e,t,n){var r=n(879),i=n(438);function a(e,t,n){if(!e&&!t&&!n)throw Error(`Missing required arguments`);if(!r.string(t))throw TypeError(`Second argument must be a String`);if(!r.fn(n))throw TypeError(`Third argument must be a Function`);if(r.node(e))return o(e,t,n);if(r.nodeList(e))return s(e,t,n);if(r.string(e))return c(e,t,n);throw TypeError(`First argument must be a String, HTMLElement, HTMLCollection, or NodeList`)}function o(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}function s(e,t,n){return Array.prototype.forEach.call(e,function(e){e.addEventListener(t,n)}),{destroy:function(){Array.prototype.forEach.call(e,function(e){e.removeEventListener(t,n)})}}}function c(e,t,n){return i(document.body,e,t,n)}e.exports=a}),817:(function(e){function t(e){var t;if(e.nodeName===`SELECT`)e.focus(),t=e.value;else if(e.nodeName===`INPUT`||e.nodeName===`TEXTAREA`){var n=e.hasAttribute(`readonly`);n||e.setAttribute(`readonly`,``),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute(`readonly`),t=e.value}else{e.hasAttribute(`contenteditable`)&&e.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(e),r.removeAllRanges(),r.addRange(i),t=r.toString()}return t}e.exports=t}),279:(function(e){function t(){}t.prototype={on:function(e,t,n){var r=this.e||={};return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function i(){r.off(e,i),t.apply(n,arguments)}return i._=t,this.on(e,i,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||={})[e]||[]).slice(),r=0,i=n.length;rt.top?e:t}).link),l&&i.value.length&&i.value.indexOf(a.value)>i.value.indexOf(c)){var u=v(a.value);if(u){var d=Ay(u,o.value);if(o.value instanceof HTMLElement){var f=o.value.clientHeight;d+u.offsetHeight>0&&da`);if(!e){Object.assign(c,{});return}var t=e.offsetTop,n=e.offsetHeight;Object.assign(c,{top:`${t}px`,height:`${n}px`,opacity:1})},C=function(t){var n;(n=e.onClick)==null||n.call(e,t)},w=function(){var t=ly(Ey.mark(function t(n){var r,i,a,c,l;return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(r=v(n),x(n),r){t.next=1;break}return t.abrupt(`return`);case 1:return s.value=!0,i=e.targetOffset,a=gp(o.value),c=Ay(r,o.value),l=a+c-i,t.next=2,_p(l,{container:o.value});case 2:s.value=!1;case 3:case`end`:return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),T=function(){return h(`cursor`)||V(`div`,{class:d.value},null)};return mr(ly(Ey.mark(function e(){return Ey.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(g(),!a.value){e.next=2;break}return e.next=1,dn();case 1:w(a.value);case 2:case`end`:return e.stop()}},e)}))),vr(function(){o.value&&lp(o.value,`scroll`,_)}),Tn(function(){o.value&&lp(o.value,`scroll`,_),g()}),Cn(jy,Dt({registerLink:y,unregisterLink:b,handleScrollTo:w,handleLinkClick:C,active:a})),function(){var t=e.size,i=e.affixProps,a=V(`div`,H({ref:r,class:[l.value,m.value[t]]},n),[V(`div`,{class:u.value},[V(`div`,{class:`${d.value}-wrapper`,style:c},[T()])]),h(`default`)]);return i?V(Dy,i,wue(a)?a:{default:function(){return[a]}}):a}}}),Eue={href:{type:String,default:``,required:!0},target:{type:String,default:`_self`,validator:function(e){return[`_self`,`_blank`,`_parent`,`_top`].includes(e)}},title:{type:[String,Function],default:``},customScroll:{type:Boolean,default:!1}};function My(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ny(e){for(var t=1;t`u`?!1:e instanceof ub(e).ShadowRoot||e instanceof ShadowRoot}function Vue(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];!fb(i)||!lb(i)||(Object.assign(i.style,n),Object.keys(r).forEach(function(e){var t=r[e];t===!1?i.removeAttribute(e):i.setAttribute(e,t===!0?``:t)}))})}function Hue(e){var t=e.state,n={popper:{position:t.options.strategy,left:`0`,top:`0`,margin:`0`},arrow:{position:`absolute`},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]=``,e},{});!fb(r)||!lb(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var Uue={name:`applyStyles`,enabled:!0,phase:`write`,fn:Vue,effect:Hue,requires:[`computeStyles`]};function mb(e){return e.split(`-`)[0]}var hb=Math.max,gb=Math.min,_b=Math.round;function vb(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+`/`+e.version}).join(` `):navigator.userAgent}function yb(){return!/^((?!chrome|android).)*safari/i.test(vb())}function bb(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&fb(e)&&(i=e.offsetWidth>0&&_b(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&_b(r.height)/e.offsetHeight||1);var o=(db(e)?ub(e):window).visualViewport,s=!yb()&&n,c=(r.left+(s&&o?o.offsetLeft:0))/i,l=(r.top+(s&&o?o.offsetTop:0))/a,u=r.width/i,d=r.height/a;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c,x:c,y:l}}function xb(e){var t=bb(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Sb(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&pb(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Cb(e){return ub(e).getComputedStyle(e)}function Wue(e){return[`table`,`td`,`th`].indexOf(lb(e))>=0}function wb(e){return((db(e)?e.ownerDocument:e.document)||window.document).documentElement}function Tb(e){return lb(e)===`html`?e:e.assignedSlot||e.parentNode||(pb(e)?e.host:null)||wb(e)}function Eb(e){return!fb(e)||Cb(e).position===`fixed`?null:e.offsetParent}function Gue(e){var t=/firefox/i.test(vb());if(/Trident/i.test(vb())&&fb(e)&&Cb(e).position===`fixed`)return null;var n=Tb(e);for(pb(n)&&(n=n.host);fb(n)&&[`html`,`body`].indexOf(lb(n))<0;){var r=Cb(n);if(r.transform!==`none`||r.perspective!==`none`||r.contain===`paint`||[`transform`,`perspective`].indexOf(r.willChange)!==-1||t&&r.willChange===`filter`||t&&r.filter&&r.filter!==`none`)return n;n=n.parentNode}return null}function Db(e){for(var t=ub(e),n=Eb(e);n&&Wue(n)&&Cb(n).position===`static`;)n=Eb(n);return n&&(lb(n)===`html`||lb(n)===`body`&&Cb(n).position===`static`)?t:n||Gue(e)||t}function Ob(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function kb(e,t,n){return hb(e,gb(t,n))}function Kue(e,t,n){var r=kb(e,t,n);return r>n?n:r}function Ab(){return{top:0,right:0,bottom:0,left:0}}function jb(e){return Object.assign({},Ab(),e)}function Mb(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var que=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,jb(typeof e==`number`?Mb(e,ib):e)};function Jue(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=mb(n.placement),c=Ob(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(!(!a||!o)){var u=que(i.padding,n),d=xb(a),f=c===`y`?`top`:rb,p=c===`y`?tb:nb,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=Db(a),_=g?c===`y`?g.clientHeight||0:g.clientWidth||0:0,v=m/2-h/2,y=u[f],b=_-d[l]-u[p],x=_/2-d[l]/2+v,S=kb(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function Yue(e){var t=e.state,n=e.options.element,r=n===void 0?`[data-popper-arrow]`:n;r!=null&&(typeof r==`string`&&(r=t.elements.popper.querySelector(r),!r)||Sb(t.elements.popper,r)&&(t.elements.arrow=r))}var Xue={name:`arrow`,enabled:!0,phase:`main`,fn:Jue,effect:Yue,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function Nb(e){return e.split(`-`)[1]}var Zue={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function Que(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:_b(n*i)/i||0,y:_b(r*i)/i||0}}function Pb(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,s=e.position,c=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,d=e.isFixed,f=o.x,p=f===void 0?0:f,m=o.y,h=m===void 0?0:m,g=typeof u==`function`?u({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var _=o.hasOwnProperty(`x`),v=o.hasOwnProperty(`y`),y=rb,b=`top`,x=window;if(l){var S=Db(n),C=`clientHeight`,w=`clientWidth`;if(S===ub(n)&&(S=wb(n),Cb(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=tb;var T=d&&S===x&&x.visualViewport?x.visualViewport.height:S[C];h-=T-r.height,h*=c?1:-1}if(i===`left`||(i===`top`||i===`bottom`)&&a===`end`){y=nb;var E=d&&S===x&&x.visualViewport?x.visualViewport.width:S[w];p-=E-r.width,p*=c?1:-1}}var D=Object.assign({position:s},l&&Zue),O=u===!0?Que({x:p,y:h},ub(n)):{x:p,y:h};if(p=O.x,h=O.y,c){var k;return Object.assign({},D,(k={},k[b]=v?`0`:``,k[y]=_?`0`:``,k.transform=(x.devicePixelRatio||1)<=1?`translate(`+p+`px, `+h+`px)`:`translate3d(`+p+`px, `+h+`px, 0)`,k))}return Object.assign({},D,(t={},t[b]=v?h+`px`:``,t[y]=_?p+`px`:``,t.transform=``,t))}function $ue(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0||r,a=n.adaptive,o=a===void 0||a,s=n.roundOffsets,c=s===void 0||s,l={placement:mb(t.placement),variation:Nb(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy===`fixed`};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Pb(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:c})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Pb(Object.assign({},l,{offsets:t.modifiersData.arrow,position:`absolute`,adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var ede={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:$ue,data:{}},Fb={passive:!0};function tde(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0||i,o=r.resize,s=o===void 0||o,c=ub(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,Fb)}),s&&c.addEventListener(`resize`,n.update,Fb),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,Fb)}),s&&c.removeEventListener(`resize`,n.update,Fb)}}var nde={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:tde,data:{}},rde={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Ib(e){return e.replace(/left|right|bottom|top/g,function(e){return rde[e]})}var ide={start:`end`,end:`start`};function Lb(e){return e.replace(/start|end/g,function(e){return ide[e]})}function Rb(e){var t=ub(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function zb(e){return bb(wb(e)).left+Rb(e).scrollLeft}function ade(e,t){var n=ub(e),r=wb(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=yb();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+zb(e),y:c}}function ode(e){var t=wb(e),n=Rb(e),r=e.ownerDocument?.body,i=hb(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=hb(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+zb(e),s=-n.scrollTop;return Cb(r||t).direction===`rtl`&&(o+=hb(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function Bb(e){var t=Cb(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Vb(e){return[`html`,`body`,`#document`].indexOf(lb(e))>=0?e.ownerDocument.body:fb(e)&&Bb(e)?e:Vb(Tb(e))}function Hb(e,t){t===void 0&&(t=[]);var n=Vb(e),r=n===e.ownerDocument?.body,i=ub(n),a=r?[i].concat(i.visualViewport||[],Bb(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(Hb(Tb(a)))}function Ub(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function sde(e,t){var n=bb(e,!1,t===`fixed`);return n.top+=e.clientTop,n.left+=e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Wb(e,t,n){return t===`viewport`?Ub(ade(e,n)):db(t)?sde(t,n):Ub(ode(wb(e)))}function cde(e){var t=Hb(Tb(e)),n=[`absolute`,`fixed`].indexOf(Cb(e).position)>=0&&fb(e)?Db(e):e;return db(n)?t.filter(function(e){return db(e)&&Sb(e,n)&&lb(e)!==`body`}):[]}function lde(e,t,n,r){var i=t===`clippingParents`?cde(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=Wb(e,n,r);return t.top=hb(i.top,t.top),t.right=gb(i.right,t.right),t.bottom=gb(i.bottom,t.bottom),t.left=hb(i.left,t.left),t},Wb(e,o,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Gb(e){var t=e.reference,n=e.element,r=e.placement,i=r?mb(r):null,a=r?Nb(r):null,o=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,c;switch(i){case`top`:c={x:o,y:t.y-n.height};break;case tb:c={x:o,y:t.y+t.height};break;case nb:c={x:t.x+t.width,y:s};break;case rb:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Ob(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case ab:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2);break;default:}}return c}function Kb(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,s=n.boundary,c=s===void 0?Lue:s,l=n.rootBoundary,u=l===void 0?Rue:l,d=n.elementContext,f=d===void 0?ob:d,p=n.altBoundary,m=p!==void 0&&p,h=n.padding,g=h===void 0?0:h,_=jb(typeof g==`number`?Mb(g,ib):g),v=f===`popper`?zue:ob,y=e.rects.popper,b=e.elements[m?v:f],x=lde(db(b)?b:b.contextElement||wb(e.elements.popper),c,u,o),S=bb(e.elements.reference),C=Gb({reference:S,element:y,strategy:`absolute`,placement:i}),w=Ub(Object.assign({},y,C)),T=f===`popper`?w:S,E={top:x.top-T.top+_.top,bottom:T.bottom-x.bottom+_.bottom,left:x.left-T.left+_.left,right:T.right-x.right+_.right},D=e.modifiersData.offset;if(f===`popper`&&D){var O=D[i];Object.keys(E).forEach(function(e){var t=[`right`,`bottom`].indexOf(e)>=0?1:-1,n=[`top`,`bottom`].indexOf(e)>=0?`y`:`x`;E[e]+=O[n]*t})}return E}function qb(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=c===void 0?cb:c,u=Nb(r),d=u?s?sb:sb.filter(function(e){return Nb(e)===u}):ib,f=d.filter(function(e){return l.indexOf(e)>=0});f.length===0&&(f=d);var p=f.reduce(function(t,n){return t[n]=Kb(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[mb(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function Jb(e){if(mb(e)===`auto`)return[];var t=Ib(e);return[Lb(e),t,Lb(t)]}function Yb(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o===void 0||o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0||p,h=n.allowedAutoPlacements,g=t.options.placement,_=mb(g)===g,v=c||(_||!m?[Ib(g)]:Jb(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(mb(n)===`auto`?qb(t,{placement:n,boundary:u,rootBoundary:d,padding:l,flipVariations:m,allowedAutoPlacements:h}):n)},[]),b=t.rects.reference,x=t.rects.popper,S=new Map,C=!0,w=y[0],T=0;T=0,A=k?`width`:`height`,j=Kb(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),M=k?O?nb:rb:O?tb:`top`;b[A]>x[A]&&(M=Ib(M));var ee=Ib(M),N=[];if(a&&N.push(j[D]<=0),s&&N.push(j[M]<=0,j[ee]<=0),N.every(function(e){return e})){w=E,C=!1;break}S.set(E,N)}if(C)for(var P=m?3:1,F=function(e){var t=y.find(function(t){var n=S.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return w=t,`break`},te=P;te>0&&F(te)!==`break`;te--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var Xb={name:`flip`,enabled:!0,phase:`main`,fn:Yb,requiresIfExists:[`offset`],data:{_skip:!1}};function Zb(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Qb(e){return[`top`,nb,tb,rb].some(function(t){return e[t]>=0})}function $b(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=Kb(t,{elementContext:`reference`}),s=Kb(t,{altBoundary:!0}),c=Zb(o,r),l=Zb(s,i,a),u=Qb(c),d=Qb(l);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var ex={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:$b};function tx(e,t,n){var r=mb(e),i=[`left`,`top`].indexOf(r)>=0?-1:1,a=typeof n==`function`?n(Object.assign({},t,{placement:e})):n,o=a[0],s=a[1];return o||=0,s=(s||0)*i,[`left`,`right`].indexOf(r)>=0?{x:s,y:o}:{x:o,y:s}}function nx(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=cb.reduce(function(e,n){return e[n]=tx(n,t.rects,a),e},{}),s=o[t.placement],c=s.x,l=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[r]=o}var rx={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:nx};function ix(e){var t=e.state,n=e.name;t.modifiersData[n]=Gb({reference:t.rects.reference,element:t.rects.popper,strategy:`absolute`,placement:t.placement})}var ax={name:`popperOffsets`,enabled:!0,phase:`read`,fn:ix,data:{}};function ox(e){return e===`x`?`y`:`x`}function sx(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0||i,o=n.altAxis,s=o!==void 0&&o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0||f,m=n.tetherOffset,h=m===void 0?0:m,g=Kb(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=mb(t.placement),v=Nb(t.placement),y=!v,b=Ob(_),x=ox(b),S=t.modifiersData.popperOffsets,C=t.rects.reference,w=t.rects.popper,T=typeof h==`function`?h(Object.assign({},t.rects,{placement:t.placement})):h,E=typeof T==`number`?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(S){if(a){var k=b===`y`?`top`:rb,A=b===`y`?tb:nb,j=b===`y`?`height`:`width`,M=S[b],ee=M+g[k],N=M-g[A],P=p?-w[j]/2:0,F=v===`start`?C[j]:w[j],te=v===`start`?-w[j]:-C[j],ne=t.elements.arrow,re=p&&ne?xb(ne):{width:0,height:0},ie=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:Ab(),ae=ie[k],oe=ie[A],se=kb(0,C[j],re[j]),ce=y?C[j]/2-P-se-ae-E.mainAxis:F-se-ae-E.mainAxis,le=y?-C[j]/2+P+se+oe+E.mainAxis:te+se+oe+E.mainAxis,ue=t.elements.arrow&&Db(t.elements.arrow),de=ue?b===`y`?ue.clientTop||0:ue.clientLeft||0:0,fe=D?.[b]??0,pe=M+ce-fe-de,me=M+le-fe,he=kb(p?gb(ee,pe):ee,M,p?hb(N,me):N);S[b]=he,O[b]=he-M}if(s){var ge=b===`x`?`top`:rb,_e=b===`x`?tb:nb,ve=S[x],ye=x===`y`?`height`:`width`,be=ve+g[ge],xe=ve-g[_e],Se=[`top`,rb].indexOf(_)!==-1,Ce=D?.[x]??0,we=Se?be:ve-C[ye]-w[ye]-Ce+E.altAxis,Te=Se?ve+C[ye]+w[ye]-Ce-E.altAxis:xe,Ee=p&&Se?Kue(we,ve,Te):kb(p?we:be,ve,p?Te:xe);S[x]=Ee,O[x]=Ee-ve}t.modifiersData[r]=O}}var cx={name:`preventOverflow`,enabled:!0,phase:`main`,fn:sx,requiresIfExists:[`offset`]};function lx(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function ux(e){return e===ub(e)||!fb(e)?Rb(e):lx(e)}function dx(e){var t=e.getBoundingClientRect(),n=_b(t.width)/e.offsetWidth||1,r=_b(t.height)/e.offsetHeight||1;return n!==1||r!==1}function fx(e,t,n){n===void 0&&(n=!1);var r=fb(t),i=fb(t)&&dx(t),a=wb(t),o=bb(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((lb(t)!==`body`||Bb(a))&&(s=ux(t)),fb(t)?(c=bb(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=zb(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function px(e){var t=new Map,n=new Set,r=[];e.forEach(function(e){t.set(e.name,e)});function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}}),r.push(e)}return e.forEach(function(e){n.has(e.name)||i(e)}),r}function mx(e){var t=px(e);return Bue.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function hx(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function gx(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var _x={placement:`bottom`,modifiers:[],strategy:`absolute`};function vx(){return![...arguments].some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function yx(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?_x:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},_x,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},o=[],s=!1,c={state:i,setOptions:function(n){var o=typeof n==`function`?n(i.options):n;u(),i.options=Object.assign({},a,i.options,o),i.scrollParents={reference:db(e)?Hb(e):e.contextElement?Hb(e.contextElement):[],popper:Hb(t)};var s=mx(gx([].concat(r,i.options.modifiers)));return i.orderedModifiers=s.filter(function(e){return e.enabled}),l(),c.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(vx(t,n)){i.rects={reference:fx(t,Db(n),i.options.strategy===`fixed`),popper:xb(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach(function(e){return i.modifiersData[e.name]=Object.assign({},e.data)});for(var r=0;r0&&arguments[0]!==void 0?arguments[0]:[],t=[];return e.forEach(function(e){K(e)?t.push.apply(t,W(e)):e.type===bi?t.push.apply(t,W(Cx(e.children))):t.push(e)}),t.filter(function(e){return!(e&&(e.type===Si||e.type===bi&&e.children.length===0||e.type===xi&&e.children.trim()===``))})}function Tx(e,t){return!e&&!t?!1:!!(!e||!t||[`width`,`height`,`x`,`y`].some(function(n){return e[n]!==t[n]}))}function Ex(e){var t=Yi(),n=I();return mr(function(){n.value=e(t)}),gr(function(){var r=e(t);n.value!==r&&(n.value=r)}),n}var Dx=z({name:`TPopupTrigger`,props:{forwardRef:Function},emits:[`resize`],setup:function(e,t){var n=t.emit,r=t.slots,i=Ex(function(e){return e.parent.vnode.el.nextElementSibling}),a=I();return R(i,function(){var t;(t=e.forwardRef)==null||t.call(e,i.value)}),Nm(i,function(e){a.value=Y(e,1)[0].contentRect}),R(a,function(e,t){Tx(e,t)&&n(`resize`)}),function(){var e=Cx(r.default?.call(r));return e.length>1||e[0]?.type===xi?V(`span`,null,[e]):e[0]}}}),Ox=z({name:`TPopupContent`,emits:[`resize`],setup:function(e,t){var n=t.emit,r=t.slots;return Nm(Ex(function(e){return e.vnode.el.children[0]}),function(){n(`resize`)}),function(){return V(`div`,{style:`position: absolute; top: 0px; left: 0px; width: 100%`},[r.default()])}}}),kx=z({name:`TPopupContainer`,inheritAttrs:!1,props:{parent:Object,visible:Boolean,attach:xx.attach,forwardRef:Function},emits:[`resize`,`contentMounted`],setup:function(e,t){var n=t.emit,r=t.attrs,i=t.slots,a=t.expose,o=I(),s=I(!1);function c(){n(`resize`)}return mr(function(){requestAnimationFrame(function(){s.value=e.visible})}),R(function(){return e.visible},function(t){t&&(s.value=e.visible)}),a({unmountContent:function(){s.value=!1}}),function(){var t,a=function(){return pp(e.attach,o.value)};return V(bi,null,[V(Dx,{class:r.class,forwardRef:function(t){e.forwardRef(t),o.value=t},onResize:c},Sx(t=i.default())?t:{default:function(){return[t]}}),s.value&&V(Ln,{disabled:!a(),to:a()},{default:function(){return[V(Ox,{onResize:c,onVnodeMounted:function(){return n(`contentMounted`)}},{default:function(){return[i.content&&i.content()]}})]}})])}}});function Ax(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jx(e){for(var t=1;tn.x&&t.xn.y&&t.y0&&(Zx(a.value)||Zx(o.value))?(Vp.error(`Breadcrumb`,`需要设置 itemsBeforeCollapse 和 itemsAfterCollapse 属性来控制省略号前后的显示项数。`),!1):!(n<=0||r<=n||s>=r)});return{getDisplayItems:U(function(){var e=t.value;if(!s.value)return e;var r=e.length,i=e.slice(0,a.value),c=e.slice(r-o.value,r);return[].concat(W(i),[{content:n,disabled:!0,isEllipsisItem:!0}],W(c))}),getEllipsisItems:U(function(){var e=t.value;if(!s.value)return[];var n=e.slice(a.value,e.length-o.value);return n.map(function(e,t){return Xx(Xx({},e),{},{isLast:t===n.length-1})})})}};function Qx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $x(e){for(var t=1;t=e.maxHeight&&(l.value=!0);var t=document.querySelector(`.${n.value}__item`);t&&(a.value=t.scrollHeight+2),s.value&&(c.value=s.value.offsetHeight)});var p=function(e){return q(e)?e(sa):e},m=function(t,r){var o,s=[],l;return(o=t.forEach)==null||o.call(t,function(t,o){var h=Sde({},t),g=i[r]||0,_=o*a.value+(r===0?c.value:0)-g;h.children?(h.children=m(h.children,r+1),l=V(`div`,{key:o},[V(nS,{style:h.style,class:[`${n.value}__item`,`${n.value}__item--suffix`,h.class],value:h.value,theme:h.theme,active:h.active,prefixIcon:h.prefixIcon,disabled:h.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,isSubmenu:!0},{default:function(){return[V(`div`,{class:`${n.value}__item-content`},[V(`span`,{class:`${n.value}__item-text`},[p(h.content)]),V(u,{class:`${n.value}__item-direction`,size:`16`},null)]),V(`div`,{class:[`${n.value}__submenu-wrapper`,G({},`${n.value}__submenu-wrapper--${e.direction}`,e.direction)],style:{position:`absolute`,top:`${_}px`}},[V(`div`,{class:[`${n.value}__submenu`,G({},`${n.value}__submenu--disabled`,h.disabled)],style:{position:`static`,maxHeight:`${e.maxHeight}px`},onScroll:function(e){return f(e,r+1)}},[V(`ul`,null,[h.children])])])]}}),h.divider?V(Zv,null,null):null])):l=V(`div`,{key:o},[V(nS,{style:h.style,class:[`${n.value}__item`,h.class],value:h.value,theme:h.theme,active:h.active,prefixIcon:h.prefixIcon,disabled:h.disabled,minColumnWidth:e.minColumnWidth,maxColumnWidth:e.maxColumnWidth,onClick:h.disabled||h.children?function(){return null}:function(e,t){return d({data:h,context:t})}},{default:function(){return[V(`span`,{class:`${n.value}__item-text`},[p(h.content)])]}}),h.divider?V(Zv,null,null):null]),s.push(l)}),s};return function(){var i=t(`panelTopContent`),a=t(`panelBottomContent`);return V(`div`,{class:[r.value,`${r.value}--${e.direction}`,G({},`${r.value}--overflow`,l.value)],style:{maxHeight:`${e.maxHeight}px`},ref:o,onScroll:function(e){return f(e,0)}},[i?V(`div`,{class:`${n.value}__top-content`,ref:s},[i]):null,m(e.options,0),a?V(`div`,{class:`${n.value}__bottom-content`},[a]):null])}}});function oS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sS(e){for(var t=1;t0?cS(h):null})}).filter(function(e){return!!e.content})):K(e)&&K(e[0]?.children)?cS(e[0]?.children):[]};function Cde(e){var t,n,r,i,a=om(),o=Yi(),s=((t=a(`DropdownMenu`))==null||(t=t[0])==null||(t=t.children)==null||(n=t.default)==null?void 0:n.call(t))||((r=o.slots)==null||(i=r.dropdown)==null?void 0:i.call(r));return U(function(){return e.options&&e.options.length>0?e.options:cS(s)})}function lS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function uS(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function kde(e,t){if(e){if(typeof e==`string`)return dS(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?dS(e,t):void 0}}function dS(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0)for(var n=0,r=e.children.length;n0){var a=hS(this.data,n);a&&!a.children.some(function(e){return e.value===i.value})?a.children.push(i):this.cache.add(i)}else this.cache.add(i)}},{key:`select`,value:function(e){var t=pS(this.data,e,[])||[];return t.push(e),t.filter(function(e){return e!=null})}},{key:`expand`,value:function(e){var t=this;if(this.expandValues.has(e))return this.expandValues.delete(e),W(this.expandValues);if(this.expandValues.add(e),!this.isMutex.value)return W(this.expandValues);var n=mS(this.data,e)||[],r=new Set(n.filter(function(t){return t.children?.length>0&&t.value!==e}).map(function(e){return e.value}));return this.expandValues.forEach(function(e){r.has(e)&&t.expandValues.delete(e)}),W(this.expandValues)}},{key:`remove`,value:function(e){this.cache.forEach(function(t,n,r){t.value===e&&r.delete(t)});var t=function(n){if(!n||!n.children)return!1;var r=n.children.findIndex(function(t){return t.value===e});if(r!==-1)return n.children.splice(r,1),!0;var i=Ode(n.children),a;try{for(i.s();!(a=i.n()).done;){var o=a.value;if(t(o))return!0}}catch(e){i.e(e)}finally{i.f()}return!1};t(this.data)}},{key:`getChild`,value:function(e){var t=hS(this.data,e);return t?t.children:[]}}])}();function _S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vS(e){for(var t=1;tt+c-u)return l+s-c+u}else if(n===`start`)return l-d;else if(n===`center`)return l+(s-c)/2;else if(n===`end`)return l+s-c+u;return t}function Lde(e,t,n){var r=e.navsContainer,i=e.activeTab,a=SS(r),o=SS(i),s=Math.abs(a-o);return n===`next`?t+s:t-s}function Rde(e){var t=e.navsWrap,n=e.navsContainer,r=e.rightOperations,i=e.toRightBtn,a=SS(t),o=SS(n),s=SS(r),c=SS(i);return a-o+s-c}function zde(e,t){return Math.max(0,Math.min(e,t))}function CS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wS(e){for(var t=1;t1}),b=U(function(){return c.valueMath.abs(n)?c.value+t:c.value+n)}},ee=function(){setTimeout(function(){A(Ide(_(),c.value,e.scrollPosition))},0)},N=function(){dn(function(){h.value=Rde(_()),h.value-c.value<=0&&A(h.value)})};R([function(){return e.placement},function(){return e.panels}],N),R([function(){return e.scrollPosition}],ee),Om(md(N),l.value);var P=function(t){var n;(n=e.onAdd)==null||n.call(e,{e:t})},F=function(t,n){var r=n.value;if(n.disabled||e.value===r)return!1;e.onChange(r)},te=function(t){var n=t.e,r=t.value,i=t.index;e.onRemove({e:n,value:r,index:i})},ne=function(t){t!=null&&t.$el&&t?.value===e.value&&m.value!==t.$el&&(m.value=t.$el,ee())},re=qoe(e).setNavsWrap;mr(function(){re(u.value),N(),ee()});var ie=function(){return e.panels.map(function(t,n){var r,i=t!=null&&(r=t.children)!=null&&r.label?t.children.label():q(t.label)?t.label(sa):t.label||`选项卡${n+1}`,a=e.dragSort;return a&&t.draggable===!1&&(a=t.draggable),V(Nde,{ref:ne,draggable:a,key:t.value,index:n,theme:e.theme,size:e.size,placement:e.placement,label:i,active:t.value===e.value,disabled:e.disabled||t.disabled,removable:t.removable,value:t.value,onClick:function(e){return F(e,t)},onTabRemove:te,onTabPanelRemove:t.onRemove},null)})},ae=function(){return[V(`div`,{ref:d,class:[`${t.value}__operations`,`${t.value}__operations--left`]},[V(va,{name:`fade`,mode:`out-in`,appear:!0},{default:function(){return[y.value?V(`div`,{class:w.value,onClick:function(){return j(`prev`)}},[V(r,null,null)]):null]}})]),V(`div`,{ref:f,class:[`${t.value}__operations`,`${t.value}__operations--right`]},[V(va,{name:`fade`,mode:`out-in`,appear:!0},{default:function(){return[b.value?V(`div`,{ref:p,class:T.value,onClick:function(){return j(`next`)}},[V(i,null,null)]):null]}}),e.addable?V(`div`,{class:E.value,onClick:P},[V(a,null,null)]):null,g.value&&e.action])]},oe=function(){var t=ie();return V(`div`,{class:D.value},[V(`div`,{class:O.value,onWheel:M},[V(`div`,{ref:u,class:k.value,style:x.value},[e.theme!==`card`&&V(Pde,{placement:e.placement,value:e.value,navs:t},null),t])])])};return function(){return V(`div`,{ref:l,class:[`${t.value}__nav`],style:S.value},[ae(),oe()])}}}),TS=X(z({name:`TTabs`,props:xS,setup:function(e){var t=Q(`tabs`),n=Q(),r=pm(),i=Wt(e),a=i.value,o=i.modelValue,s=Y(Rm(a,o,e.defaultValue||``,e.onChange),2),c=s[0],l=s[1];Cn(`tabs`,{value:c});var u=function(t){var n;(n=e.onAdd)==null||n.call(e,{e:t.e})},d=function(e){l(e)},f=function(t){var n,r=t.e,i=t.value,a=t.index;(n=e.onRemove)==null||n.call(e,{value:i,index:a,e:r})},p=function(){var e=r(`default`);if(!e)return[];var t=function(e){return e.map(function(e){return e.children&&K(e.children)?t(e.children):e}).flat().filter(function(e){return e.type.name===`TTabPanel`})};return t(e)},m=function(){var t,i=((t=e.list)!=null&&t.length?e.list:p())||[],a=r(`action`),o=i.map(function(e){var t=e;return e.props&&Object.keys(e.props).forEach(function(n){t[n]=e.props[n]}),t}),s={theme:e.theme,value:c.value,size:e.size,disabled:e.disabled,placement:e.placement,scrollPosition:e.scrollPosition,addable:e.addable,panels:o,dragSort:e.dragSort,action:a};return V(`div`,{class:G(G({},`${n.value}-tabs__header`,!0),`${n.value}-is-${e.placement}`,!0)},[V(Bde,H(s,{onDragSort:e.onDragSort,onChange:d,onAdd:u,onRemove:f}),null)])},h=function(){var t,r=p();if((t=e.list)!=null&&t.length)return e.list.map(function(e){return V(bS,H(e,{onRemove:f}),null)});if(r&&r.length)return V(`div`,{class:[`${n.value}-tabs__content`]},[r])};return function(){return V(`div`,{class:[t.value]},[e.placement===`bottom`?[h(),m()]:[m(),h()]])}}})),ES=X(bS),Vde={content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function},popupProps:{type:Object},title:{type:[String,Function]},value:{type:[String,Number]}},DS=z({name:`TFakeArrow`,props:{isActive:{type:Boolean},overlayClassName:{type:[String,Object,Array]},overlayStyle:{type:[Object,String]}},setup:function(e){var t=Q(`fake-arrow`),n=U(function(){return[t.value,G(G({},`${t.value}--transform`,vse()),`${t.value}--active`,e.isActive),e.overlayClassName]});return function(){return V(`svg`,{class:n.value,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:e.overlayStyle},[V(`path`,{d:`M3.75 5.7998L7.99274 10.0425L12.2361 5.79921`,stroke:`black`,"stroke-opacity":`0.9`,"stroke-width":`1.3`},null)])}}});function OS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kS(e){for(var t=1;t-1}),x=I(!1),S=I(!1),C=U(function(){return l.value===`light`?`#E7E7E7`:`#383838`}),w=U(function(){return v.value===`popup`?x.value:d?d.value?.includes(e.value):!1}),T=I(!1),E=I(),D=I(),O=I(),k=Q(`slide-down`);Im(O,C);var A=I(null),j=I(null),M=function(){A.value!==null&&(clearTimeout(A.value),A.value=null),j.value!==null&&(clearTimeout(j.value),j.value=null)},ee=function(e){var t=e.placement,n=E.value;if(n){var i=`${r.value}-menu__spacer`,a=t.startsWith(`bottom`),o=t.startsWith(`top`);n.classList.toggle(`${i}--bottom`,a),n.classList.toggle(`${i}--top`,o)}},N=U(function(){return[`${r.value}-submenu`,G(G({},`${r.value}-is-disabled`,e.disabled),`${r.value}-is-opened`,w.value)]}),P=U(function(){return[`${r.value}-menu__popup`,`${r.value}-is-${f?`horizontal`:`vertical`}`,G({},`${r.value}-is-opened`,x.value),e.popupProps?.overlayInnerClassName]}),F=U(function(){return[`${r.value}-menu--${l.value}`,f&&`${r.value}-is-head-menu`,G({},`${r.value}-menu-is-nested`,T.value),e.popupProps?.overlayClassName]}),te=U(function(){return[`${r.value}-menu__item`,G(G(G({},`${r.value}-is-disabled`,e.disabled),`${r.value}-is-opened`,w.value),`${r.value}-is-active`,b.value)]}),ne=U(function(){return[`${r.value}-menu__sub`,G({},`${r.value}-is-opened`,w.value)]}),re=U(function(){return[G({},`${r.value}-fake-arrow--active`,w.value)]});Cn(`TdSubmenu`,Dt({value:c,addMenuItem:function(e){y.value.push(e),m&&m.addMenuItem(e)},setSubPopup:function(e){D.value=e},closeParentPopup:function(e){M(),j.value=setTimeout(function(){x.value=!1,j.value=null},100),q(g)&&g(e)},cancelHideTimer:function(){j.value!==null&&(clearTimeout(j.value),j.value=null),q(_)&&_()}}));var ie=function(e){q(h)&&h(e)},ae=function(){e.disabled||(M(),q(_)&&_(),A.value=setTimeout(function(){x.value||(p(e.value),dn().then(function(){ie(E.value)})),x.value=!0,A.value=null},0))},oe=function(e){return e?.classList.contains(`${r.value}-menu__popup`)},se=function(e){M(),j.value=setTimeout(function(){var t=oe(e.relatedTarget);S.value||t||(x.value=!1,j.value=null)},100)},ce=function(e){var t=e.toElement,n=e.relatedTarget,r=t||n;if(r!==D.value){for(var i=function(e){return e===O.value};r!==null&&r!==document&&!i(r);)r=r.parentNode;S.value=!1,i(r)||(M(),j.value=setTimeout(function(){x.value=!1,j.value=null},100),g?.(e))}},le=function(){S.value=!0,j.value!==null&&(clearTimeout(j.value),j.value=null),q(_)&&_()},ue=function(){e.disabled||p(e.value)},de=function(t){var n,i=`right-top`;!T.value&&f&&(i=`bottom-left`);var o=V(`div`,{ref:E,class:[`${r.value}-menu__spacer`,G({},`${r.value}-menu__spacer--left`,T.value||!f)],onMouseenter:le,onMouseleave:ce},[V(`ul`,{class:[`${r.value}-menu__popup-wrapper`,G({},`${r.value}-menu__popup-overflow`,f)]},[a(`default`,`content`)])]),s={content:function(){return o}},c=((n=e.popupProps)==null||(n=n.popperOptions)==null?void 0:n.modifiers)||[],l=kS(kS({},e.popupProps?.popperOptions),{},{modifiers:[{name:`onPlacementChange`,enabled:!0,phase:`main`,fn:function(e){var t=e.state;ee({placement:t.placement})}}].concat(W(c))});return V(zx,H(e.popupProps??{},{overlayInnerClassName:W(P.value),overlayClassName:W(F.value),visible:x.value,placement:i,popperOptions:l}),kS({default:function(){return[V(`div`,{ref:O,class:te.value},[t])]}},s))},fe=function(){var e=i(`icon`),t=[V(`div`,{ref:O,class:te.value,onClick:ue},[e,V(`span`,{class:[`${r.value}-menu__content`]},[i(`title`,{silent:!0})])]),V(`ul`,{style:`opacity: 0; width: 0; height: 0; overflow: hidden`},[a(`default`,`content`)])],n=v.value===`popup`&&T.value,s=[e,V(`span`,{class:[`${r.value}-menu__content`]},[i(`title`,{silent:!0})]),V(DS,{overlayClassName:/menu/i.test(o?.parent.proxy.$options.name)?re.value:null,overlayStyle:{transform:`rotate(${n?-90:0}deg)`}},null)];return v.value===`normal`?t:de(s)},pe=function(){for(var e=n.content||n.default,t=i(`icon`),s=a(`default`,`content`),c=o.parent,l=44;c&&c.type.name!==`TMenu`;)c.type.name===`TSubmenu`&&(l+=16),c=c.parent;var u=vm(),d=u.beforeEnter,f=u.enter,p=u.afterEnter,m=u.beforeLeave,h=u.leave,g=u.afterLeave,_=v.value===`popup`&&T.value,y=[V(`div`,{ref:O,class:te.value,onClick:ue},[t,V(`span`,{class:[`${r.value}-menu__content`]},[i(`title`,{silent:!0})]),e&&V(DS,{overlayClassName:re.value,overlayStyle:{transform:`rotate(${_?-90:0}deg)`}},null)]),V(va,{name:k.value,onBeforeEnter:d,onEnter:f,onAfterEnter:p,onBeforeLeave:m,onLeave:h,onAfterLeave:g},{default:function(){return[xn(V(`ul`,{class:ne.value,style:{"--padding-left":`${l}px`}},[s]),[[Na,w.value]])]}})],b=[t,V(`span`,{class:[`${r.value}-menu__content`]},[i(`title`,{silent:!0})]),V(DS,{overlayClassName:/menu/i.test(c.proxy.$options.name)?re.value:null,overlayStyle:{transform:`rotate(${_?-90:0}deg)`,"margin-left":`auto`}},null)];return v.value===`normal`?y:de(b)};return R(x,function(t){s.open(e.value,t?`add`:`remove`)}),R(E,function(){ie(E.value)}),mr(function(){var t;s==null||(t=s.vMenu)==null||t.add({value:e.value,parent:m?.value,vnode:n.default});for(var r=o.parent;r&&!/^t(head)?menu/i.test((i=r)?.type.name);){var i;if(/submenu/i.test(r?.type.name)){T.value=!0;break}r=r?.parent}}),_r(function(){var t;M(),s==null||(t=s.vMenu)==null||t.remove(e.value)}),function(){var e=null,t={},r;return v.value===`popup`&&(t={onMouseenter:ae,onMouseleave:se},u.value.length<2&&(r=V(`div`,{style:`display:none`},[a(`default`,`content`)]))),Object.keys(n).length>0&&(e=f?fe():pe()),V(`li`,H({class:N.value},t),[e,r])}}}),Hde=z({name:`PopupOverflowContent`,props:{foldIndex:{type:Number,required:!0}},setup:function(e,t){var n=Q(),r=I(),i=function(){if(r.value){var t=`${n.value}-menu__item`,i=`${n.value}-submenu`,a=[],o=function(e,n){n>3||Array.from(e.children).forEach(function(e){e instanceof HTMLElement&&(e.classList.contains(t)||e.classList.contains(i)?a.push(e):o(e,n+1))})};o(r.value,0),a.forEach(function(t,n){t.style.display=n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function Gde(e,t){if(e){if(typeof e==`string`)return MS(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?MS(e,t):void 0}}function MS(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0,n=!1;if(t&&e.length>0&&S.length>0){var r=new Set(S.slice(j.value)),i=e.find(function(e){return e!=null});n=i!=null&&r.has(i)}n?m.value=[].concat(W(e),[PS]):m.value=e};R(l,C),R(function(){return e.expandType},function(e){_.value=e}),mr(function(){m.value=y.select(l.value),f.value?.length>0&&x(f.value[0])});var T=function(e){var t,n=v.find(function(t){return t.value===e});(t=n.onClick)==null||t.call(n,{value:e});var i=n.to,a=n.href,o=n.replace;a&&(window.location.href=n.href);var s=n.router||r.$router;i&&s&&(o?s.replace(i):s.push(i))},E=function(){var e;return v.length===0?null:V(`ul`,{class:[`${n.value}-head-menu__submenu`,`${n.value}-submenu`]},[V(TS,{value:l.value,onChange:b},NS(e=v.map(function(e){return V(ES,{value:e.value,label:e.vnode()[0]?.children},null)}))?e:{default:function(){return[e]}})])},D=I(),O=I(),k=I(),A=I(),j=I(-1),M=[],ee=function(){if(!D.value)return[];var e=`${n.value}-head-menu__submenu--more`,t=`${n.value}-menu__item`,r=`${n.value}-submenu`,i=[],a=function(n,o){o>3||Array.from(n.children).forEach(function(n){n instanceof HTMLElement&&(n.classList.contains(e)||(n.classList.contains(t)||n.classList.contains(r)?i.push(n):a(n,o+1)))})};return a(D.value,0),i},N=function(){if(!D.value)return 0;var e=D.value.querySelector(`.${n.value}-head-menu__submenu--more`);if(!e)return 0;var t=e.style.display===`none`;t&&(e.style.visibility=`hidden`,e.style.display=``);var r=window.getComputedStyle(e),i=e.getBoundingClientRect().width+Number.parseFloat(r.marginLeft)+Number.parseFloat(r.marginRight);return t&&(e.style.display=`none`,e.style.visibility=``),i},P=function(e){var t=window.getComputedStyle(e);return e.getBoundingClientRect().width+Number.parseFloat(t.marginLeft)+Number.parseFloat(t.marginRight)},F=function(){if(!D.value)return[];var e=`${n.value}-head-menu__submenu--more`,t=`${n.value}-menu__item`,r=`${n.value}-submenu`,i=[];return Array.from(D.value.children).forEach(function(n){n instanceof HTMLElement&&(n.classList.contains(e)||n.classList.contains(t)||n.classList.contains(r)||i.push(n))}),i},te=function(){if(e.expandType===`popup`&&D.value){var t=F(),r=[];t.forEach(function(e){r.push(e.style.display),e.style.display=`contents`});var i=ee();if(i.length===0){t.forEach(function(e,t){e.style.display=r[t]}),j.value=-1,ne();return}var a=D.value.querySelector(`.${n.value}-head-menu__submenu--more`);a&&(a.style.display=`none`);var o=[],s=[];i.forEach(function(e){s.push(e.style.display),e.style.display=``,o.push(e.style.flexShrink),e.style.flexShrink=`0`}),M.length=0,i.forEach(function(e){M.push(P(e))}),i.forEach(function(e,t){e.style.flexShrink=o[t],e.style.display=s[t]}),a&&(a.style.display=s.length>0?``:`none`),t.forEach(function(e){e.style.display=`contents`});var c=ae(),l=M.reduce(function(e,t){return e+t},0),u=-1;if(l>c){for(var d=N(),f=0,p=0;pc){u=p;break}f+=M[p]}u===-1&&f+d>c&&(u=i.length-1)}j.value=u,ne()}},ne=function(){if(D.value){F().forEach(function(e){e.style.display=`contents`});var e=ee(),t=D.value.querySelector(`.${n.value}-head-menu__submenu--more`),r=j.value>=0;e.forEach(function(e,t){e.style.display=r&&t>=j.value?`none`:``}),t&&(t.style.display=r?``:`none`),w()}};Nm(O,te),R(k,function(e){e&&e.querySelectorAll(`img`).forEach(function(e){e.complete||(e.onload=function(){return te()})})});var re=function(e,t){return getComputedStyle(e)[t]??``},ie=function(e,t){return Number.parseInt(String(re(e,t)),10)},ae=function(){if(!O.value||!D.value)return 0;var e=ie(D.value,`paddingLeft`),t=ie(D.value,`paddingRight`),n=ie(D.value,`marginLeft`),r=ie(D.value,`marginRight`),i=O.value.clientWidth;if(k.value){var a=ie(k.value,`marginLeft`),o=ie(k.value,`marginRight`);i=i-k.value.offsetWidth-a-o}if(A.value){var s=ie(A.value,`marginLeft`),c=ie(A.value,`marginRight`);i=i-A.value.offsetWidth-s-c}return i-e-t-n-r},oe=function(e){var t=[],n=Wde(e),r;try{for(n.s();!(r=n.n()).done;){var i=r.value;i.type===bi?K(i.children)&&t.push.apply(t,W(oe(i.children))):i.type?.name===`TSubmenu`||i.type?.name===`TMenuItem`?t.push(i):K(i.children)?t.push.apply(t,W(oe(i.children))):q(i.children?.default)?t.push.apply(t,W(oe(i.children.default()))):t.push(i)}}catch(e){n.e(e)}finally{n.f()}return t},se=function(e,t){e.forEach(function(e){if(e.type===bi){K(e.children)&&se(e.children,t);return}var n=e.props?.value;if((e.type?.name===`TSubmenu`||e.type?.name===`TMenuItem`)&&y.add(Ude({value:n,parent:t,vnode:e.children.default},e.props)),q(e.children?.default)){se(e.children.default(),n);return}K(e.children)&&se(e.children,n)})},ce=null,le=``;gr(function(){ne()});var ue=function(){ce??=requestAnimationFrame(function(){ce=null,te()})};return mr(function(){dn(function(){return te()})}),_r(function(){ce!=null&&(cancelAnimationFrame(ce),ce=null)}),function(){var r,i,a,o,s,c=e.logo?.call(e,sa)||(r=t.slots).logo?.call(r),l=e.operations?.call(e,sa)||(i=t.slots).operations?.call(i)||(a=t.slots).options?.call(a),u=(o=t.slots).default?.call(o)||(s=t.slots).content?.call(s)||[],d=oe(u),f=j.value>=0,p=f&&j.valueNumber(r)?`error`:``}return``}),i=U(function(){return e.value.status||r.value}),a=function(){var t,n;(t=(n=e.value).onValidate)==null||t.call(n,{error:r.value?`exceed-maximum`:void 0})};return R(r,a),mr(function(){r.value&&a()}),{tStatus:i,limitNumber:n,getValueByLimitNumber:t}}function VS(e,t){return t===`number`?e||e===0?Number(e):void 0:e}function ife(e,t){var n=Wt(e),r=n.value,i=n.modelValue,a=I(),o=I(!1),s=I(),c=I(null),l=I(),u=Sm(),d=Mm(),f=Y(Rm(r,i,e.defaultValue,e.onChange),2),p=f[0],m=f[1],h=I(!1),g=I(!1),_=I(e.type),v=I(),y=BS(U(function(){return{value:[void 0,null].includes(p.value)?void 0:String(p.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}})),b=y.limitNumber,x=y.getValueByLimitNumber,S=y.tStatus,C=U(function(){return(p.value&&!u.value&&e.clearable&&!d.value||e.showClearIconOnEmpty)&&h.value}),w=function(){var e;g.value=!0,(e=v.value)==null||e.focus()},T=function(){var e;g.value=!1,(e=v.value)==null||e.blur()},E=function(t){var n;h.value&&g.value||(a.value=p.value,!e.disabled&&(g.value=!0,(n=e.onFocus)==null||n.call(e,p.value,{e:t})))},D=function(t){var n,r=t.e;m(e.type===`number`?void 0:``,{e:r,trigger:`clear`}),(n=e.onClear)==null||n.call(e,{e:r})},O=function(e){l.value=e.target},k=function(){u.value||(_.value=_.value===`password`?`text`:`password`)},A=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``,t=v.value;if(t){var n=String(e);t.value&&t.value!==n&&(t.value=n)}},j=function(t){var n=t.target.value;e.type!==`number`&&typeof p.value==`string`&&n.length>p.value?.length&&(n=x(n)),m(VS(n,e.type),{e:t,trigger:`input`}),dn(function(){e.type===`number`&&/\.(\d+)?0$/.test(n)?A(n):A(p.value)})},M=function(e){var t=e.inputType&&e.inputType===`insertCompositionText`,n=e.currentTarget.value;if(t||o.value){s.value=n;return}j(e)},ee=function(){var e,t=l.value;if(!t||!t.tagName||!((e=c.value)!=null&&e.$el)||![`path`,`svg`].includes(t.tagName))return!1;for(;t;){if(c.value?.$el===t)return!0;t=t.parentNode}return!1},N=wn(zS,void 0);return R(function(){return e.autofocus},function(e){e===!0&&dn(function(){var e;(e=v.value)==null||e.focus()})},{immediate:!0}),R(p,function(t,n){var r=e.type===`number`;n===void 0&&e.format&&typeof t!=`number`&&!r?a.value=e.format(t):a.value=t;var i=typeof t==`number`?t:x(t);i!==t&&!r&&m(i,{trigger:`initial`})},{immediate:!0}),R(function(){return e.type},function(e){_.value=e},{immediate:!0}),t({inputRef:v,focus:w,blur:T}),{isHover:h,focused:g,renderType:_,showClear:C,inputRef:v,clearIconRef:c,inputValue:a,isComposition:o,compositionValue:s,limitNumber:b,tStatus:S,emitFocus:E,formatAndEmitBlur:function(t){if(ee())w();else{var n;e.format&&(a.value=typeof p.value==`number`||e.type===`number`?p.value:e.format(p.value)),g.value=!1,o.value&&(o.value=!1,s.value=``),(n=e.onBlur)==null||n.call(e,p.value,{e:t}),N?.handleBlur()}},onHandleCompositionend:function(t){var n;o.value=!1,s.value=``,j(t),(n=e.onCompositionend)==null||n.call(e,String(p.value),{e:t})},onHandleCompositionstart:function(t){var n;o.value=!0,s.value=t.currentTarget.value,(n=e.onCompositionstart)==null||n.call(e,String(p.value),{e:t})},onRootClick:function(t){var n,r;(n=v.value)==null||n.focus(),(r=e.onClick)==null||r.call(e,{e:t})},emitPassword:k,handleInput:M,emitClear:D,onClearIconMousedown:O,innerValue:p}}function afe(e,t,n){var r=function(t){if(!e.disabled){var r=t.code,i=VS(t.currentTarget.value,e.type);if(/enter/i.test(r)||/enter/i.test(t.key)){if(!(n!=null&&n.value)){var a;(a=e.onEnter)==null||a.call(e,i,{e:t})}}else{var o;(o=e.onKeydown)==null||o.call(e,i,{e:t})}}},i=function(t){var n;if(!e.disabled){var r=VS(t.currentTarget.value,e.type);(n=e.onKeyup)==null||n.call(e,r,{e:t})}},a=function(t){var n;if(!e.disabled){var r=VS(t.currentTarget.value,e.type);(n=e.onKeypress)==null||n.call(e,r,{e:t})}},o=function(t){var n;if(!e.disabled){var r=t.clipboardData||window.clipboardData;(n=e.onPaste)==null||n.call(e,{e:t,pasteValue:r?.getData(`text/plain`)})}},s=function(e){return t.value=e};return{isHover:t,handleKeydown:r,handleKeyUp:i,handleKeypress:a,onHandlePaste:o,onHandleMousewheel:function(t){return e.onWheel?.call(e,{e:t})},onInputMouseenter:function(t){var n;s(!0),(n=e.onMouseenter)==null||n.call(e,{e:t})},onInputMouseleave:function(t){var n;s(!1),(n=e.onMouseleave)==null||n.call(e,{e:t})}}}var ofe=100;function sfe(e,t,n){var r=Wt(e),i=r.autoWidth,a=r.placeholder,o=I(),s=I(null),c=function(){!o.value||!t.value||(t.value.style.width=getComputedStyle(o.value).width)};Nm(o,function(){i.value&&(s.value=setTimeout(function(){c(),clearTimeout(s.value)},ofe))}),_r(function(){clearTimeout(s.value)});var l=function(){R([n,a],function(){i.value&&dn(function(){c()})},{immediate:!0})};return mr(function(){i.value&&l()}),{inputPreRef:o}}var cfe=[`isHover`,`tStatus`,`inputRef`,`renderType`,`showClear`,`focused`,`inputValue`,`isComposition`,`compositionValue`,`innerValue`,`limitNumber`];function HS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function US(e){for(var t=1;t1)||/(e|E)+/.test(e[i])&&(t+=1,t>1)||e[i]===`-`&&(n+=1,n>2))return!1;return!0}function qS(e){var t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return e.indexOf(`.`)===-1?!e||e===`0`&&t?``:e===`0`?e:(t?e.replace(/0+$/,``):e.replace(/^0+/,``))||`0`:(Vp.error(`InputNumber`,`num is not a integer number.`),e)}function JS(e,t){for(var n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=qS(e,n),i=qS(t,n),a=r.length>i.length,o=a?r:i,s=a?i:r,c=[],l=[],u=n?0:o.length-s.length,d=n?s.length:o.length,f=d-1;f>=0;f--){var p=f-u,m=Number(o[f])+(Number(s[p])||0)+(l[f]||0);m>=10&&(l[f-1]=1),c.unshift(String(m%10))}return l[-1]&&c.unshift(`1`),n?c.concat(o.slice(d,o.length)).join(``):c.join(``)}function YS(e,t){var n=Y(e.split(`.`),2),r=n[0],i=r===void 0?`0`:r,a=n[1],o=a===void 0?`0`:a,s=Y(t.split(`.`),2),c=s[0],l=c===void 0?`0`:c,u=s[1],d=u===void 0?`0`:u,f=JS(i,l);if(o===`0`&&d===`0`)return f;var p=qS(o,!0),m=qS(d,!0),h=JS(p,m,!0),g=h.length;return g>p.length&&g>m.length?[qS(JS(f,`1`)),qS(h.slice(1),!0)].filter(function(e){return e}).join(`.`):[qS(f),qS(h,!0)].filter(function(e){return e}).join(`.`)}function XS(e,t){var n=qS(e),r=qS(t);if(n.length===r.length){for(var i=0,a=n.length;ir[i])return 1;if(n[i]r.length?1:-1}function ZS(e,t){for(var n=e&&e!==`0`?e.replace(/0+$/,``):`0`,r=t&&t!==`0`?t.replace(/0+$/,``):`0`,i=Math.max(n.length,r.length),a=0,o=i;a(r[a]||0))return 1;if((n[a]||0)<(r[a]||0))return-1}return 0}function QS(e){var t=Y(e.split(`e`),2),n=t[0],r=t[1];if(!r)return e;var i=Y(e.split(`.`),2),a=i[0],o=i[1],s=o===void 0?``:o,c=Number(r),l=Y(s.split(`e`),1)[0];if(c>l.length){var u=GS(c-l.length);return n.replace(/(^0+|\.)/g,``)+u}var d=a.replace(/^0+/,``)+l.slice(0,c),f=l.slice(c);return f?[d,f].join(`.`):d}function pfe(e,t){var n=Y(QS(e).split(`.`),2),r=n[0],i=n[1],a=Y(QS(t).split(`.`),2),o=a[0],s=a[1],c=XS(r.replace(`-`,``),o.replace(`-`,``)),l=r.includes(`-`),u=o.includes(`-`);return l&&!u?-1:!l&&u?1:l&&u?c===0?0:c>0?-1:1:c===0?ZS(i,s):c}function $S(e){return[-1/0,1/0].includes(Number(e))}function eC(e){return Number(e)<2**53-1&&Number(e)>-(2**53-1)}function tC(e,t,n){var r=eC(e)&&eC(t)&&!n,i=$S(e)||$S(t);return r||i?Number(e)===Number(t)?0:Number(e)>Number(t)?1:-1:pfe(String(e),String(t))}function nC(e,t,n){if(e===t)return`0`;for(var r=n||{},i=r.decimal,a=r.stayZero,o=r.filledZero,s=o?e:qS(e,i),c=o?t:qS(t,i),l=XS(s,c)>0,u=l?s:c,d=l?c:s,f=[],p=[],m=i?0:u.length-d.length,h=i?d.length:u.length,g=h-1;g>=0;g--){var _=g-m,v=Number(u[g])-(Number(d[_])||0)-(p[g]||0);v<0&&(p[g-1]=1,v+=10),f.unshift(String(v))}if(i)return f.concat(u.slice(h,u.length)).join(``);var y=f.join(``);return a||(y=y.replace(/^0+/,``)),qS(l?y:`-${y}`,i)}function rC(e,t){if(e===t)return`0`;var n=tC(e,t,!0)>0,r=n?e:t,i=n?t:e,a=Y(r.split(`.`),2),o=a[0],s=a[1],c=s===void 0?`0`:s,l=Y(i.split(`.`),2),u=l[0],d=l[1],f=d===void 0?`0`:d,p=nC(o,u);if(c===`0`&&f===`0`)return n?p:`-${p}`;var m=``,h=c,g=c.length=0?m=nC(h,f,{decimal:!0,stayZero:!0,filledZero:!0}):(g||c===`0`?(m=nC(`1${h}`,f,{stayZero:!0}),m=GS(f.length-m.length)+m):m=nC(c,f,{decimal:!0}),p=nC(p,`1`));var _=m?[p,m].join(`.`):p;return n?_:`-${_}`}function mfe(e,t){var n=e[0]===`-`,r=t[0]===`-`;return n&&!r?`-${YS(e.slice(1),t)}`:n&&r?rC(t.slice(1),e.slice(1)):!n&&r?YS(e,t.slice(1)):rC(e,t)}function hfe(e,t){var n=e[0]===`-`,r=t[0]===`-`;return n&&!r?rC(t,e.slice(1)):n&&r?`-${YS(t.slice(1),e.slice(1))}`:!n&&r?rC(e,t.slice(1)):YS(e,t)}function iC(e,t){if(!(arguments.length>2&&arguments[2]!==void 0)||arguments[2])return e.toFixed(t);var n=Y(e.toString().split(`.`),2),r=n[0],i=n[1];if(t===0)return r;if(i){var a=i.slice(0,t);return i.length1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(Number.isNaN(Number(e)))return``;if(!n)return gfe(Number(e),t);var r=Do(t)?t.places:t,i=Do(t)?t.enableRound??!0:!0;if(!Rd(e))return String(e);var a=Y(e.split(`.`),2),o=a[0],s=a[1];if(!s)return r>0&&i?[e,GS(r)].join(`.`):e;if(r===0)return i&&Number(s[0])>=5?YS(o,`1`):o;var c=s.slice(0,r);if(s.length=5;c=d?YS(c,`1`):c,l&&d&&l+c.length>=r&&(c=`${GS(r-c.length)}${c}`),u&&c.length>r&&(o=(Number(o)+1).toString(),c=GS(r))}return[o,c].join(`.`)}function _fe(e,t){var n=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return!e&&e!==0?!0:n&&Rd(e)?tC(e,t,n)<0:e2&&arguments[2]!==void 0&&arguments[2];return!e&&e!==0?!0:n&&Rd(e)?tC(e,t,n)>0:e>t}function yfe(e,t){if(e!==``){var n=t.max,r=t.min,i=t.lastValue,a=t.largeNumber;return KS(e)?a&&(Rd(n)||n===1/0)&&(Rd(r)||r===-1/0)?tC(n,e,a)<0?n:tC(r,e,a)>0?r:e:Math.max(Number(r),Math.min(Number(n),Number(e))):i}}function oC(e,t){if(!e||!t)return(e||0)+(t||0);var n=e.toString().split(`.`)[1]?.length||0,r=t.toString().split(`.`)[1]?.length||0;if(!n&&!r)return e+t;var i=e,a=t,o=Math.abs(n-r),s=10**Math.max(n,r);if(o>0){var c=10**o;n>r?(i=Number(e.toString().replace(`.`,``)),a=Number(t.toString().replace(`.`,``))*c):(i=Number(e.toString().replace(`.`,``))*c,a=Number(t.toString().replace(`.`,``)))}else i=Number(e.toString().replace(`.`,``)),a=Number(t.toString().replace(`.`,``));return(i+a)/s}function sC(e,t){if(!e||!t)return(e||0)-(t||0);var n=e.toString().split(`.`)[1]?.length||0,r=t.toString().split(`.`)[1]?.length||0,i=10**Math.max(n,r),a=n>=r?n:r;return Number(((e*i-t*i)/i).toFixed(a))}function bfe(e,t){return e<0&&t>0?sC(t,Math.abs(e)):e<0&&t<0?oC(Math.abs(e),Math.abs(t))*-1:e>0&&t<0?sC(e,Math.abs(t)):oC(e,t)}function xfe(e,t){return e<0&&t>0?oC(Math.abs(e),t)*-1:e<0&&t<0?sC(Math.abs(t),Math.abs(e)):e>0&&t<0?oC(e,Math.abs(t)):sC(e,t)}function Sfe(e){var t=e.op,n=e.step,r=e.lastValue,i=e.max,a=e.min,o=e.largeNumber;if(Number(n)<=0)return Vp.error(`InputNumber`,`step must be larger than 0.`),r;var s=nf(n)?String(n):n,c;return t===`add`?c=o&&Rd(r)?hfe(String(r),String(s)):bfe(Number(r||0),Number(n)):t===`reduce`&&(c=o&&Rd(r)?mfe(String(r),String(s)):xfe(Number(r||0),Number(n))),sf(r)&&(c=yfe(c,{max:i,min:a,lastValue:r,largeNumber:o})),o?c:Number(c)}function cC(e){var t=e.largeNumber,n=e.value,r=e.max,i=e.min;if(!(sf(n)||sf(t)))return t&&nf(n)&&Vp.warn(`InputNumber`,`largeNumber value must be a string.`),tC(n,r,t)>0?`exceed-maximum`:tC(n,i,t)<0?`below-minimum`:void 0}var Cfe=[`-`,`.`,`e`,`E`,`+`];function wfe(e,t){if([``,null,void 0].includes(e))return!0;if(e.slice(0,2)===`00`||e.match(/\s/g)||e.match(/\./g)?.length>1||e.match(/e/g)?.length>1)return!1;var n=e.slice(1),r=n.match(/(\+|-)/g);return!(r&&(!/e(\+|-)/i.test(n)||r.length>1)||!(t&&KS(e)||!Number.isNaN(Number(e)))&&!Cfe.includes(e.slice(-1))||/e/i.test(e)&&(!/\de/i.test(e)||/e\./.test(e)))}function Tfe(e,t){return Number.isNaN(Number(e))?!1:t===``||t===null||sf(t)?e!==``:e===``||parseFloat(e)!==Number(t)}function lC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!([``,null,void 0].includes(e)||!/\d+/.test(e))){var n=t.decimalPlaces,r=t.largeNumber,i=t.isToFixed,a=e.replace(/[.|+|\-|e]$/,``);return r&&(a=QS(a)),n!==void 0&&(a=aC(a,n,r)),r||i?a:parseFloat(a)}}function Efe(e){return/^[-+]?\d{1,3}(,\d{3})*(\.(\d*))?$/.test(e)?e.replace(/,/g,``):e}function Dfe(e){var t=ym(),n=t.classPrefix,r=t.SIZE,i=t.STATUS,a=Wt(e),o=a.value,s=a.modelValue,c=a.max,l=a.min,u=Y(Rm(o,s,e.defaultValue,e.onChange),2),d=u[0],f=u[1],p=I(),m=I(``),h=Sm(),g=Mm(),_=I(),v=U(function(){return h.value||!vfe(d.value,e.min,e.largeNumber)}),y=U(function(){return h.value||!_fe(d.value,e.max,e.largeNumber)}),b=U(function(){return[`${n.value}-input-number`,r.value[e.size],G(G(G(G({},i.value.disabled,h.value),`${n.value}-is-controls-right`,e.theme===`column`),`${n.value}-input-number--${e.theme}`,e.theme),`${n.value}-input-number--auto-width`,e.autoWidth)]}),x=U(function(){return[`${n.value}-input-number__decrease`,G({},i.value.disabled,v.value)]}),S=U(function(){return[`${n.value}-input-number__increase`,G({},i.value.disabled,y.value)]}),C=function(t){var n;if(!t&&t!==0)return``;var r=t||t===0?String(t):``;if(!((n=p.value)!=null&&(n=n.inputRef)!=null&&n.contains(document.activeElement))){var i=lC(r,{decimalPlaces:e.decimalPlaces,largeNumber:e.largeNumber,isToFixed:!0});r=i||i===0?String(i):``,e.format&&(r=String(e.format(t,{fixedNumber:r})))}return r};R(d,function(t){var n=e.largeNumber,r=e.decimalPlaces,i=[void 0,null].includes(t)?``:String(t);if(!n&&!Number.isNaN(m.value)){parseFloat(m.value)!==t&&(m.value=C(i));var a=Number(aC(i,r,n));r!==void 0&&![void 0,null].includes(t)&&Number(a)!==Number(d.value)&&f(a,{type:`props`,e:void 0})}if(n&&(m.value=C(i),r!==void 0&&aC(i,r,n)!==t)){var o,s=i;(o=p.value)!=null&&(o=o.inputRef)!=null&&o.contains(document.activeElement)||(s=lC(s,{decimalPlaces:e.decimalPlaces,largeNumber:e.largeNumber,isToFixed:!0})),f(s,{type:`props`,e:void 0})}},{immediate:!0}),R([d,c,l],function(){var t;if(![void 0,``,null].includes(d.value)){var n=e.max,r=e.min,i=e.largeNumber,a=cC({value:d.value,largeNumber:i,max:n,min:r});_.value=a,(t=e.onValidate)==null||t.call(e,{error:a})}},{immediate:!0});var w=function(t){var n=Sfe({op:t,step:e.step,max:e.max,min:e.min,lastValue:d.value,largeNumber:e.largeNumber}),r=e.largeNumber,i=e.max,a=e.min;return{overLimit:cC({value:n,largeNumber:r,max:i,min:a}),newValue:n}},T=function(t){if(!(v.value||g.value)){var n=w(`reduce`);n.overLimit&&!e.allowInputOverLimit||f(n.newValue,{type:`reduce`,e:t})}},E=function(t){if(!(y.value||g.value)){var n=w(`add`);n.overLimit&&!e.allowInputOverLimit||f(n.newValue,{type:`add`,e:t})}},D=function(t,n){var r=n.e,i=Efe(t);if(wfe(i,e.largeNumber)){var a=i;if(e.decimalPlaces!==void 0&&i!==``&&i.includes(`.`)){var o=i.split(`.`),s=typeof e.decimalPlaces==`number`?e.decimalPlaces:e.decimalPlaces.places;o[1]&&o[1].length>s&&(a=`${o[0]}.${o[1].substring(0,s)}`)}if(m.value=a,e.largeNumber){f(a,{type:`input`,e:r});return}var c=a===``?void 0:Number(a);Tfe(a,d.value)&&f(c,{type:`input`,e:r})}},O=function(e){return typeof e==`number`&&!Number.isNaN(e)},k=function(t,n){var r,i=e.largeNumber,a=e.max,o=e.min,s=e.decimalPlaces;if(!e.allowInputOverLimit){if([void 0,null].includes(d.value)&&o!==-1/0){if(O(d.value)&&d.valueu&&pf,!h)return}n?.({currentIndex:i.value,current:a,target:o,targetIndex:t}),i.value=t}}};if(!t)return{};function l(e,t,n){i.value=t,a.value=n;var o=e.target;if(r&&o){var c=o.getBoundingClientRect(),l=c.x,u=c.width;s.nodeX=l,s.nodeWidth=u,s.mouseX=e.clientX}}function u(){o.value=!0}function d(){o.value,o.value=!1,i.value=-1,a.value=null}function f(e,n){return t?{draggable:!0,onDragstart:function(t){l(t,e,n)},onDragover:function(t){c(t,e,n)},onDrop:function(){u()},onDragend:function(){d()}}:{}}return{onDragStart:l,onDragOver:c,onDrop:u,onDragEnd:d,getDragProps:f,dragging:i.value!==-1}}function jfe(e){var t=e.disabled,n=e.readonly,r=e.onMouseenter,i=e.onMouseleave,a=I(!1);return{isHover:a,addHover:function(e){n||t||(a.value=!0,r?.(e))},cancelHover:function(e){n||t||(a.value=!1,i?.(e))}}}function Mfe(e){var t=I(),n=Q(),r=Wt(e),i=r.excessTagsDisplayType,a=r.readonly,o=r.disabled,s=I(0),c=I(),l=I(),u=I(!1),d=function(e){c.value=e.querySelector(`.${n.value}-input__prefix`)},f=function(){s.value=c.value.scrollWidth-c.value.clientWidth},p=function(e){q(c.value?.scroll)&&c.value.scroll({left:e,behavior:`smooth`})},m=function(){var e=t.value?.$el;e&&d(e),c.value&&setTimeout(function(){f(),p(s.value),setTimeout(function(){u.value=!0},200)},0)};return mr(function(){var e=t.value?.$el;e&&d(e)}),vr(function(){clearTimeout(l.value)}),{tagInputRef:t,scrollElement:c,scrollDistance:s,scrollTo:p,scrollToRight:m,scrollToLeft:function(){p(0)},updateScrollElement:d,updateScrollDistance:f,onWheel:function(e){var t=e.e;if(!(a.value||o.value)&&c.value){var n=Math.abs(t.deltaX)>=Math.abs(t.deltaY)?t.deltaX:t.deltaY;n>0?(f(),p(Math.min(c.value.scrollLeft+120,s.value))):n<0&&p(Math.max(c.value.scrollLeft-120,0))}},scrollToRightOnEnter:function(){i.value===`scroll`&&(l.value=setTimeout(function(){m(),clearTimeout(l.value)},100))},scrollToLeftOnLeave:function(){i.value===`scroll`&&(u.value=!1,p(0),clearTimeout(l.value))},isScrollable:u}}function pC(e){"@babel/helpers - typeof";return pC=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},pC(e)}var Nfe=/^\s+/,Pfe=/\s+$/;function mC(e,t){if(e||=``,t||={},e instanceof mC)return e;if(!(this instanceof mC))return new mC(e,t);var n=Ffe(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}mC.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(e.r*299+e.g*587+e.b*114)/1e3},getLuminance:function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,r=e.b/255,i=t<=.03928?t/12.92:((t+.055)/1.055)**2.4,a=n<=.03928?n/12.92:((n+.055)/1.055)**2.4,o=r<=.03928?r/12.92:((r+.055)/1.055)**2.4;return .2126*i+.7152*a+.0722*o},setAlpha:function(e){return this._a=xC(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=gC(this._r,this._g,this._b);return{h:e.h*360,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=gC(this._r,this._g,this._b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.v*100);return this._a==1?`hsv(`+t+`, `+n+`%, `+r+`%)`:`hsva(`+t+`, `+n+`%, `+r+`%, `+this._roundA+`)`},toHsl:function(){var e=hC(this._r,this._g,this._b);return{h:e.h*360,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=hC(this._r,this._g,this._b),t=Math.round(e.h*360),n=Math.round(e.s*100),r=Math.round(e.l*100);return this._a==1?`hsl(`+t+`, `+n+`%, `+r+`%)`:`hsla(`+t+`, `+n+`%, `+r+`%, `+this._roundA+`)`},toHex:function(e){return _C(this._r,this._g,this._b,e)},toHexString:function(e){return`#`+this.toHex(e)},toHex8:function(e){return zfe(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return`#`+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?`rgb(`+Math.round(this._r)+`, `+Math.round(this._g)+`, `+Math.round(this._b)+`)`:`rgba(`+Math.round(this._r)+`, `+Math.round(this._g)+`, `+Math.round(this._b)+`, `+this._roundA+`)`},toPercentageRgb:function(){return{r:Math.round(SC(this._r,255)*100)+`%`,g:Math.round(SC(this._g,255)*100)+`%`,b:Math.round(SC(this._b,255)*100)+`%`,a:this._a}},toPercentageRgbString:function(){return this._a==1?`rgb(`+Math.round(SC(this._r,255)*100)+`%, `+Math.round(SC(this._g,255)*100)+`%, `+Math.round(SC(this._b,255)*100)+`%)`:`rgba(`+Math.round(SC(this._r,255)*100)+`%, `+Math.round(SC(this._g,255)*100)+`%, `+Math.round(SC(this._b,255)*100)+`%, `+this._roundA+`)`},toName:function(){return this._a===0?`transparent`:this._a<1?!1:Zfe[_C(this._r,this._g,this._b,!0)]||!1},toFilter:function(e){var t=`#`+vC(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?`GradientType = 1, `:``;if(e){var i=mC(e);n=`#`+vC(i._r,i._g,i._b,i._a)}return`progid:DXImageTransform.Microsoft.gradient(`+r+`startColorstr=`+t+`,endColorstr=`+n+`)`},toString:function(e){var t=!!e;e||=this._format;var n=!1,r=this._a<1&&this._a>=0;return!t&&r&&(e===`hex`||e===`hex6`||e===`hex3`||e===`hex4`||e===`hex8`||e===`name`)?e===`name`&&this._a===0?this.toName():this.toRgbString():(e===`rgb`&&(n=this.toRgbString()),e===`prgb`&&(n=this.toPercentageRgbString()),(e===`hex`||e===`hex6`)&&(n=this.toHexString()),e===`hex3`&&(n=this.toHexString(!0)),e===`hex4`&&(n=this.toHex8String(!0)),e===`hex8`&&(n=this.toHex8String()),e===`name`&&(n=this.toName()),e===`hsl`&&(n=this.toHslString()),e===`hsv`&&(n=this.toHsvString()),n||this.toHexString())},clone:function(){return mC(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(Ufe,arguments)},brighten:function(){return this._applyModification(Wfe,arguments)},darken:function(){return this._applyModification(Gfe,arguments)},desaturate:function(){return this._applyModification(Bfe,arguments)},saturate:function(){return this._applyModification(Vfe,arguments)},greyscale:function(){return this._applyModification(Hfe,arguments)},spin:function(){return this._applyModification(Kfe,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(Yfe,arguments)},complement:function(){return this._applyCombination(qfe,arguments)},monochromatic:function(){return this._applyCombination(Xfe,arguments)},splitcomplement:function(){return this._applyCombination(Jfe,arguments)},triad:function(){return this._applyCombination(yC,[3])},tetrad:function(){return this._applyCombination(yC,[4])}},mC.fromRatio=function(e,t){if(pC(e)==`object`){var n={};for(var r in e)e.hasOwnProperty(r)&&(r===`a`?n[r]=e[r]:n[r]=EC(e[r]));e=n}return mC(e,t)};function Ffe(e){var t={r:0,g:0,b:0},n=1,r=null,i=null,a=null,o=!1,s=!1;return typeof e==`string`&&(e=tpe(e)),pC(e)==`object`&&(AC(e.r)&&AC(e.g)&&AC(e.b)?(t=Ife(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)===`%`?`prgb`:`rgb`):AC(e.h)&&AC(e.s)&&AC(e.v)?(r=EC(e.s),i=EC(e.v),t=Rfe(e.h,r,i),o=!0,s=`hsv`):AC(e.h)&&AC(e.s)&&AC(e.l)&&(r=EC(e.s),a=EC(e.l),t=Lfe(e.h,r,a),o=!0,s=`hsl`),e.hasOwnProperty(`a`)&&(n=e.a)),n=xC(n),{ok:o,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}function Ife(e,t,n){return{r:SC(e,255)*255,g:SC(t,255)*255,b:SC(n,255)*255}}function hC(e,t,n){e=SC(e,255),t=SC(t,255),n=SC(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),a,o,s=(r+i)/2;if(r==i)a=o=0;else{var c=r-i;switch(o=s>.5?c/(2-r-i):c/(r+i),r){case e:a=(t-n)/c+(t1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(t===0)r=i=a=n;else{var s=n<.5?n*(1+t):n+t-n*t,c=2*n-s;r=o(c,s,e+1/3),i=o(c,s,e),a=o(c,s,e-1/3)}return{r:r*255,g:i*255,b:a*255}}function gC(e,t,n){e=SC(e,255),t=SC(t,255),n=SC(n,255);var r=Math.max(e,t,n),i=Math.min(e,t,n),a,o,s=r,c=r-i;if(o=r===0?0:c/r,r==i)a=0;else{switch(r){case e:a=(t-n)/c+(t>1)+720)%360;--t;)r.h=(r.h+i)%360,a.push(mC(r));return a}function Xfe(e,t){t||=6;for(var n=mC(e).toHsv(),r=n.h,i=n.s,a=n.v,o=[],s=1/t;t--;)o.push(mC({h:r,s:i,v:a})),a=(a+s)%1;return o}mC.mix=function(e,t,n){n=n===0?0:n||50;var r=mC(e).toRgb(),i=mC(t).toRgb(),a=n/100;return mC({r:(i.r-r.r)*a+r.r,g:(i.g-r.g)*a+r.g,b:(i.b-r.b)*a+r.b,a:(i.a-r.a)*a+r.a})},mC.readability=function(e,t){var n=mC(e),r=mC(t);return(Math.max(n.getLuminance(),r.getLuminance())+.05)/(Math.min(n.getLuminance(),r.getLuminance())+.05)},mC.isReadable=function(e,t,n){var r=mC.readability(e,t),i,a=!1;switch(i=npe(n),i.level+i.size){case`AAsmall`:case`AAAlarge`:a=r>=4.5;break;case`AAlarge`:a=r>=3;break;case`AAAsmall`:a=r>=7;break}return a},mC.mostReadable=function(e,t,n){var r=null,i=0,a,o,s,c;n||={},o=n.includeFallbackColors,s=n.level,c=n.size;for(var l=0;li&&(i=a,r=mC(t[l]));return mC.isReadable(e,r,{level:s,size:c})||!o?r:(n.includeFallbackColors=!1,mC.mostReadable(e,[`#fff`,`#000`],n))};var bC=mC.names={aliceblue:`f0f8ff`,antiquewhite:`faebd7`,aqua:`0ff`,aquamarine:`7fffd4`,azure:`f0ffff`,beige:`f5f5dc`,bisque:`ffe4c4`,black:`000`,blanchedalmond:`ffebcd`,blue:`00f`,blueviolet:`8a2be2`,brown:`a52a2a`,burlywood:`deb887`,burntsienna:`ea7e5d`,cadetblue:`5f9ea0`,chartreuse:`7fff00`,chocolate:`d2691e`,coral:`ff7f50`,cornflowerblue:`6495ed`,cornsilk:`fff8dc`,crimson:`dc143c`,cyan:`0ff`,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:`f0f`,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:`789`,lightslategrey:`789`,lightsteelblue:`b0c4de`,lightyellow:`ffffe0`,lime:`0f0`,limegreen:`32cd32`,linen:`faf0e6`,magenta:`f0f`,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:`f00`,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`,steelblue:`4682b4`,tan:`d2b48c`,teal:`008080`,thistle:`d8bfd8`,tomato:`ff6347`,turquoise:`40e0d0`,violet:`ee82ee`,wheat:`f5deb3`,white:`fff`,whitesmoke:`f5f5f5`,yellow:`ff0`,yellowgreen:`9acd32`},Zfe=mC.hexNames=Qfe(bC);function Qfe(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function xC(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function SC(e,t){$fe(e)&&(e=`100%`);var n=epe(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function CC(e){return Math.min(1,Math.max(0,e))}function wC(e){return parseInt(e,16)}function $fe(e){return typeof e==`string`&&e.indexOf(`.`)!=-1&&parseFloat(e)===1}function epe(e){return typeof e==`string`&&e.indexOf(`%`)!=-1}function TC(e){return e.length==1?`0`+e:``+e}function EC(e){return e<=1&&(e=e*100+`%`),e}function DC(e){return Math.round(parseFloat(e)*255).toString(16)}function OC(e){return wC(e)/255}var kC=function(){var e=`(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)`,t=`[\\s|\\(]+(`+e+`)[,|\\s]+(`+e+`)[,|\\s]+(`+e+`)\\s*\\)?`,n=`[\\s|\\(]+(`+e+`)[,|\\s]+(`+e+`)[,|\\s]+(`+e+`)[,|\\s]+(`+e+`)\\s*\\)?`;return{CSS_UNIT:new RegExp(e),rgb:RegExp(`rgb`+t),rgba:RegExp(`rgba`+n),hsl:RegExp(`hsl`+t),hsla:RegExp(`hsla`+n),hsv:RegExp(`hsv`+t),hsva:RegExp(`hsva`+n),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function AC(e){return!!kC.CSS_UNIT.exec(e)}function tpe(e){e=e.replace(Nfe,``).replace(Pfe,``).toLowerCase();var t=!1;if(bC[e])e=bC[e],t=!0;else if(e==`transparent`)return{r:0,g:0,b:0,a:0,format:`name`};var n;return(n=kC.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=kC.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=kC.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=kC.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=kC.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=kC.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=kC.hex8.exec(e))?{r:wC(n[1]),g:wC(n[2]),b:wC(n[3]),a:OC(n[4]),format:t?`name`:`hex8`}:(n=kC.hex6.exec(e))?{r:wC(n[1]),g:wC(n[2]),b:wC(n[3]),format:t?`name`:`hex`}:(n=kC.hex4.exec(e))?{r:wC(n[1]+``+n[1]),g:wC(n[2]+``+n[2]),b:wC(n[3]+``+n[3]),a:OC(n[4]+``+n[4]),format:t?`name`:`hex8`}:(n=kC.hex3.exec(e))?{r:wC(n[1]+``+n[1]),g:wC(n[2]+``+n[2]),b:wC(n[3]+``+n[3]),format:t?`name`:`hex`}:!1}function npe(e){var t,n;return e||={level:`AA`,size:`small`},t=(e.level||`AA`).toUpperCase(),n=(e.size||`small`).toLowerCase(),t!==`AA`&&t!==`AAA`&&(t=`AA`),n!==`small`&&n!==`large`&&(n=`small`),{level:t,size:n}}var jC=z({name:`TTag`,props:{closable:Boolean,color:{type:String,default:``},content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,icon:{type:Function,default:void 0},maxWidth:{type:[String,Number]},shape:{type:String,default:`square`,validator:function(e){return!e||[`square`,`round`,`mark`].includes(e)}},size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},theme:{type:String,default:`default`,validator:function(e){return!e||[`default`,`primary`,`warning`,`danger`,`success`].includes(e)}},title:{type:String,default:``},variant:{type:String,default:`dark`,validator:function(e){return!e||[`dark`,`light`,`outline`,`light-outline`].includes(e)}},onClick:Function,onClose:Function},setup:function(e){var t=Rp(`tag`).globalConfig,n=Q(`tag`),r=Tm({CloseIcon:Og}).CloseIcon,i=pm(),a=hm(),o=ym().SIZE,s=Yi().vnode,c=U(function(){return[`${n.value}`,`${n.value}--${e.theme}`,`${n.value}--${e.variant}`,G(G(G(G({},`${n.value}--ellipsis`,e.maxWidth),`${n.value}--close`,e.closable),`${n.value}--disabled`,e.disabled),o.value[e.size],e.size!==`medium`),e.shape!==`square`&&`${n.value}--${e.shape}`]}),l=U(function(){return d()}),u=U(function(){return e.maxWidth?{maxWidth:isNaN(Number(e.maxWidth))?String(e.maxWidth):`${e.maxWidth}px`}:{}}),d=function(){var t=e.color,n=e.variant;if(!t)return{};var r={color:mC(t).getLuminance()>.5?`black`:`white`};return(n===`outline`||n===`light-outline`)&&(r.borderColor=t),n!==`outline`&&(r.backgroundColor=n===`dark`?t:function(){var e=mC(t).toRgb();return`rgba(${e.r}, ${e.g}, ${e.b}, 0.1)`}()),n!==`dark`&&(r.color=t),r},f=function(t){var n;e.disabled||(n=e.onClick)==null||n.call(e,{e:t})},p=function(){if(!e.closable)return null;var i=`${n.value}__icon-close`;return t.value.closeIcon?sa(t.value.closeIcon(sa),{class:i}):V(r,{onClick:function(t){var n,r=t.e;r&&r.stopPropagation(),(n=e.onClose)==null||n.call(e,{e:r})},class:i},null)},m=function(e){var t=s.props||{};if(Reflect.has(t,`title`))return t.title||void 0;if(e)return e};return function(){var t=p(),r=a(`default`,`content`),o=i(`icon`),s=m(_m(r));return V(`div`,{class:c.value,style:l.value,onClick:f},[o,V(`span`,{class:e.maxWidth?`${n.value}--text`:void 0,style:u.value,title:s},[r]),!e.disabled&&t])}}}),rpe={checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,checkedProps:{type:Object},content:{type:[String,Number,Array,Function]},default:{type:[String,Function]},disabled:Boolean,size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},uncheckedProps:{type:Object},value:{type:[String,Number]},onChange:Function,onClick:Function};function MC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function NC(e){for(var t=1;t=s.value,o=h.value;!a&&i&&(o=h.value.concat(String(i)),m(o,{trigger:`enter`,index:o.length-1,item:i,e:n.e})),e==null||(r=e.onEnter)==null||r.call(e,o,RC(RC({},n),{},{inputValue:t}))},onInputBackspaceKeyUp:function(e){h.value.length&&(g.value=e)},onInputBackspaceKeyDown:function(e,t){var n=t.e;if(!(!h.value.length||n.key===`Process`||v.value)){var r=/(Backspace|NumpadDelete)/i.test(n.code)||/(Backspace|NumpadDelete)/i.test(n.key);if(!e&&r){var i,a=h.value.length-1,s=h.value[a],c=`backspace`,l=h.value.slice(0,-1);m(l,{e:n,index:a,item:s,trigger:c}),(i=o.value)==null||i.call(o,{e:n,index:a,item:s,trigger:c,value:l})}g.value=e}},renderLabel:function(e){var r=e.displayNode,i=e.label,a=c.value?h.value.slice(0,c.value):h.value,o=r?[r]:a.map(function(e,n){var r=t(`tag`,{params:{value:e}}),i=Jm(u.value,{onClose:function(e){return y({e:e.e,index:n})}});return V(FC,H({key:n,size:l.value,disabled:_.value,closable:!v.value&&!_.value},d.value?.call(d,n,e),i.value),{default:function(){return[r??e]}})})||[];if([null,void 0,``].includes(i)||o.unshift(V(`div`,{class:`${n.value}-tag-input__prefix`,key:`label`},[i])),a.length!==h.value.length){var s=h.value.length-a.length,f=t(`collapsedItems`,{params:{value:h.value,count:h.value.length-c.value,collapsedTags:h.value.slice(c.value,h.value.length),collapsedSelectedItems:h.value.slice(c.value,h.value.length),onClose:y}});o.push(f??V(FC,H({key:`more`,size:l.value},u.value),{default:function(){return[`+`,s]}}))}return o}}}function zC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function BC(e){for(var t=1;tt.offsetHeight?hpe:0,i=t.offsetWidth+r>=e.offsetWidth?t.offsetWidth:e.offsetWidth,a={};return n.value&&so(n.value.overlayInnerStyle)===`object`&&!n.value.overlayInnerStyle.width&&(a=n.value.overlayInnerStyle),GC({width:`${Math.min(i,mpe)}px`},a)},c=function(t,n){if(!(K(a.value)&&a.value.every(Boolean)||Gd(a.value)&&a.value)&&!o.value){var r=n.trigger===`trigger-element-click`&&e.allowInput?!0:t;if(e.popupVisible!==r){var s;i.value=r,(s=e.onPopupVisibleChange)==null||s.call(e,r,n)}}},l=function(e,t){return GC({width:`${Math.max(e.offsetWidth,t.offsetWidth)}px`},n.value?.overlayInnerStyle)};return{tOverlayInnerStyle:U(function(){var e={},t=n.value?.overlayInnerStyle||{};return e=q(t)||Do(t)&&t.width?t:r.value?l:s,e}),innerPopupVisible:i,onInnerPopupVisibleChange:c}}var gpe=[`tips`];function qC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function JC(e){for(var t=1;t=0)&&e.multiple&&((r=M.value)==null||(i=r.focus)==null||i.call(r))};return t.expose({popupRef:d,allowInput:y}),function(){var e={visible:h.value??C.value},n=V(zx,H({ref:d,trigger:_.value?.trigger||`click`,placement:`bottom-left`},e,{content:v.value,hideEmptyPopup:!0},XC(XC({onVisibleChange:w,onOverlayClick:te},_.value),{},{overlayInnerStyle:S.value})),XC({default:function(){return[p.value?ee({commonInputProps:D.value,onInnerClear:O,popupVisible:e.visible,allowInput:y.value}):k(e.visible)]}},XC(XC({},t.slots),{},{content:t.slots.panel}))),r=l(`tips`),i=[`${c.value}-input__tips`,`${c.value}-tips`,`${c.value}-is-${b.value}`];return V(`div`,{ref:u,class:P.value},[n,r&&V(`div`,{class:i},[r])])}}})),Spe={checkAll:Boolean,content:{type:[String,Function]},default:{type:[String,Function]},disabled:Boolean,label:{type:String,default:``},title:{type:String,default:``},value:{type:[String,Number,Boolean,BigInt]}},Cpe={checkAll:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:{type:[String,Function]},lazyLoad:Boolean,name:{type:String,default:``},readonly:{type:Boolean,default:void 0},title:{type:String,default:``},value:{type:[String,Number,Boolean]},onChange:Function},QC=Symbol(`CheckboxGroupProvide`);function wpe(e,t){var n=I(),r=I(!0),i=function(){t.value&&(r.value=!1,n.value=zp(e.value,null,function(){r.value=!0},0))};return mr(i),R([t,e],i),_r(function(){t.value&&n.value.unobserve(e.value)}),{showCheckbox:r}}function Tpe(e){var t=function(t){(am.test(t.key)||am.test(t.code))&&(t.preventDefault(),!t.currentTarget.querySelector(`input`).disabled&&e(t))};return{onCheckboxFocus:function(e){e.currentTarget.addEventListener(`keydown`,t)},onCheckboxBlur:function(e){e.currentTarget.removeEventListener(`keydown`,t)}}}function $C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ew(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function Ope(e,t){if(e){if(typeof e==`string`)return iw(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?iw(e,t):void 0}}function iw(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nt.value.length-1?x=b-1:x--,(f=n.value[x])!=null&&f.disabled&&x--,g.value=x;break;case`ArrowDown`:e.preventDefault(),g.value===-1||g.value>=b-1?x=0:x++,(y=n.value[x])!=null&&y.disabled&&x++,g.value=x;break;case`Enter`:if(g.value===-1)break;var S=a.value.isVirtual&&o.value&&v.value.length?v.value:s.value?n.value:_.value;if(S.length||(S=n.value),!r.value){i(!0,{e});break}if(p){if(g.value===-1)return;if(S[g.value].checkAll){u(!h.value);return}var C=S[g.value]?.value;if(!C)return;var w=ow(d.value,C);if(m>0&&w.value.length>m)return;var T=c(w.value);l(w.value,{option:T.find(function(e){return e.value==C}),selectedOptions:T,trigger:w.isCheck?`check`:`uncheck`,e}),_.value=[]}else{var E=c(S[g.value].value);l(S[g.value].value,{option:E?.[0],selectedOptions:c(S[g.value].value),trigger:`check`,e}),i(!1,{e})}break;case`Escape`:if(r.value){var D;e==null||(D=e.stopImmediatePropagation)==null||D.call(e)}i(!1,{e});break}},virtualFilteredOptions:v,filteredOptions:_}}var Mpe=function(e){var t=U(function(){return e.scroll?.type===`virtual`&&e.options.value?.length>(e.scroll?.threshold||100)}),n=e.scroll?.type===`virtual`?sse({container:e.popupContentRef,data:e.options,fixedHeight:e.scroll?.isFixedRowHeight||!1,lineHeight:e.scroll?.rowHeight||28,bufferSize:e.scroll?.bufferSize||20,threshold:e.scroll?.threshold||100}):{},r=n.trs,i=r===void 0?null:r,a=n.visibleData,o=a===void 0?null:a,s=n.handleScroll,c=s===void 0?null:s,l=n.scrollHeight,u=l===void 0?null:l,d=n.translateY,f=d===void 0?null:d,p=n.handleRowMounted,m=p===void 0?null:p,h=-1,g=function(e){if(t.value){var n=e.target.scrollTop;Math.abs(h-n)>5?(c(),h=n):h=-1}};return mr(function(){var t;(t=e.popupContentRef.value)==null||t.addEventListener(`scroll`,g)}),_r(function(){var t;(t=e.popupContentRef.value)==null||t.removeEventListener(`scroll`,g)}),{trs:i,scrollHeight:u,translateY:f,visibleData:o,handleRowMounted:m,isVirtual:t,cursorStyle:U(function(){return{position:`absolute`,width:`1px`,height:`1px`,transition:`transform 0.2s`,transform:`translate(0, ${u.value}px)`,"-ms-transform":`translate(0, ${u.value}px)`,"-moz-transform":`translate(0, ${u.value}px)`,"-webkit-transform":`translate(0, ${u.value}px)`}}),panelStyle:U(function(){return{transform:`translate(0, ${f.value}px)`,"-ms-transform":`translate(0, ${f.value}px)`,"-moz-transform":`translate(0, ${f.value}px)`,"-webkit-transform":`translate(0, ${f.value}px)`}})}};function pw(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=Npe(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function Npe(e,t){if(e){if(typeof e==`string`)return mw(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mw(e,t):void 0}}function mw(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n-1},u=I([]),d=function(e,t){return e.filter(function(e){if(!e.checkAll)return K(t)?t.includes(e.value):t===e.value})},f=U(function(){var e=d(s.value,r.value);u.value=Wf([].concat(W(e),W(u.value)),`value`);var t=d(u.value,r.value);return Wf([].concat(W(t),W(s.value)),`value`)});return{options:o,optionsMap:c,optionsList:s,optionsCache:a,displayOptions:U(function(){if(e.onSearch&&e.filterable||!n.value||!(e.filterable||q(e.filter)))return o.value;var t,r=[];if(o.value.forEach(function(e){e.children&&r.push(gw(gw({},e),{},{children:e.children.filter(l)})),e?.checkAll===!0&&(t=e),l(e)&&r.push(e)}),!q(e.filter)){var i=r.filter(function(e){return e.label===n.value}),a=r.filter(function(e){return e.label!==n.value});r=i.concat(a)}return r.length&&t?[t].concat(W(r)):r}),filterMethods:l,searchDisplayOptions:f}};function Fpe(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Mi(e)}var Ipe=z({name:`TSelectPanel`,props:{inputValue:fw.inputValue,panelTopContent:fw.panelTopContent,panelBottomContent:fw.panelBottomContent,empty:fw.empty,creatable:fw.creatable,loading:fw.loading,loadingText:fw.loadingText,multiple:fw.multiple,filterable:fw.filterable,filter:fw.filter,scroll:fw.scroll,keys:fw.keys},setup:function(e,t){var n=t.expose,r=Q(`select`),i=pm(),a=mm(),o=Rp(`select`),s=o.t,c=o.globalConfig,l=wn(sw),u=I(null),d=U(function(){return e.keys}),f=U(function(){return l.value.popupContentRef.value}),p=U(function(){return e.creatable&&e.filterable&&e.inputValue}),m=U(function(){return l.value.displayOptions}),h=Mpe({scroll:e.scroll,popupContentRef:f,options:m}),g=h.trs,_=h.visibleData,v=h.handleRowMounted,y=h.isVirtual,b=h.panelStyle,x=h.cursorStyle,S=U(function(){return!m.value.length}),C=function(){return V(`ul`,{class:[`${r.value}__create-option`,`${r.value}__list`]},[V(uw,{value:e.inputValue,label:`${e.inputValue}`,createAble:!0,class:`${r.value}__create-option--special`},null)])},w=function(t){return V(`ul`,{class:`${r.value}__list`},[t.map(function(t,n){if(t.children){var r;return V(dw,{label:t.group,divider:t.divider},Fpe(r=w(t.children))?r:{default:function(){return[r]}})}var i=[`index`,`$index`,`className`,`tagName`],a=d.value||{},o=[a.value,a.label,a.disabled].includes(`content`);return V(uw,H(Sf(t,i.concat(o?`content`:[])),y.value?{rowIndex:t.$index,trs:g,scrollType:e.scroll?.type,isVirtual:y.value,bufferSize:e.scroll?.bufferSize,key:`${t.$index||``}_${n}_${t.value}`}:{key:`${n}_${t.value}`},{index:n,multiple:e.multiple,onRowMounted:v}),t.slots)})])},T=U(function(){return{small:`s`,medium:`m`,large:`l`}[l.value.size]});n({innerRef:u,visibleData:_,isVirtual:y,displayOptions:m});var E=function(t,n){return V(`div`,{ref:u,class:[`${r.value}__dropdown-inner`,`${r.value}__dropdown-inner--size-${T.value}`],style:n},[p.value&&C(),e.loading&&a(`loadingText`,{defaultNode:V(`div`,{class:`${r.value}__loading-tips`},[s(c.value.loadingText)])}),!e.loading&&S.value&&!p.value&&V(`div`,{class:`${r.value}__empty`},[i(`empty`)||s(c.value.empty)]),!S.value&&w(t)])};return function(){return y.value?V(bi,null,[i(`panelTopContent`),V(`div`,null,[V(`div`,{style:x.value},null),E(_.value,b.value)]),i(`panelBottomContent`)]):V(bi,null,[i(`panelTopContent`),E(m.value),i(`panelBottomContent`)])}}}),Lpe=[`overlayClassName`];function Rpe(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=zpe(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function zpe(e,t){if(e){if(typeof e==`string`)return _w(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_w(e,t):void 0}}function _w(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0;){var m;if(!((m=p[f])!=null&&m.disabled)){d=f;break}--f}if(d<0)return;var h=p[d],g=p.filter(function(e){return e.value!==h.value});N(g.map(function(e){return e.value}),{selectedOptions:g,trigger:s,e:a}),(u=e.onRemove)==null||u.call(e,{value:h.value,data:h,e:a});return}s!==`clear`&&N(c,{selectedOptions:de(c),trigger:s,e:a}),(r=e.onRemove)==null||r.call(e,{value:l,data:O.value.get(l),e:a})},ce=function(){var t;_.value&&((t=e.onCreate)==null||t.call(e,_.value),F.value||v(``))},le=U(function(){return C.value?.popupRef.getOverlay()}),ue=U(function(){return k.value.filter(function(e){return!e.disabled&&!(e[`check-all`]||e[`check-all`]===``)&&!e.checkAll&&M(e)})}),de=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:E.value;return k.value.filter(function(t){if(!t.checkAll)return K(e)?e.includes(t.value):e===t.value})},fe=function(){var e=[],t=T.value?b.value:E.value;return(K(t)?t:[t]).forEach(function(t){var n=O.value.get(T.value?t.value:t);n?e.push(n):e.push(T.value?t:{value:t})}),e},pe=function(t){if(e.multiple){var n=w.value.value,r=E.value.filter(function(e){return k.value.find(function(t){return t.value===e&&t.disabled})}),i=ue.value.map(function(e){return e.value}),a=T.value?b.value.map(function(e){return J(e,n)}):b.value,o=W(t?new Set([].concat(W(a),W(i),W(r))):r);N(o,{selectedOptions:de(o),trigger:t?`check`:`clear`})}},me=U(function(){return be.value!==0&&be.value===(oe.value?ee.value.length:ue.value.length)}),he=jpe({displayOptions:j,optionsList:k,innerPopupVisible:F,setInnerPopupVisible:te,selectPanelRef:S,isFilterable:ae,isRemoteSearch:oe,getSelectedOptions:de,setInnerValue:N,onCheckAllChange:pe,isCheckAll:me,innerValue:E,popupContentRef:le,multiple:e.multiple,max:e.max}),ge=he.hoverIndex,_e=he.virtualFilteredOptions,ve=he.handleKeyDown,ye=he.filteredOptions,be=U(function(){var e=ue.value.map(function(e){return e.value});return Hd(E.value,e).length}),xe=U(function(){return!me.value&&be.value!==0});Cn(sw,U(function(){return{max:e.max,multiple:e.multiple,hoverIndex:ge.value,selectValue:E.value,reserveKeyword:e.reserveKeyword,handleValueChange:N,handlerInputChange:v,handlePopupVisibleChange:te,handleCreate:ce,size:e.size,popupContentRef:le,indeterminate:xe.value,isCheckAll:me.value,onCheckAllChange:pe,getSelectedOptions:de,displayOptions:j.value,emitBlur:Te}}));var Se=function(){!e.multiple&&K(b.value)&&x(void 0,{selectedOptions:[],trigger:`default`}),e.multiple&&!K(b.value)&&x([],{selectedOptions:[],trigger:`default`})},Ce=md(function(t,n){var r,i=n.e;(r=e.onSearch)==null||r.call(e,`${t}`,{e:i})},300),we=function(e,t){e&&!F.value&&te(!0,{e:t.e}),v(e),Ce(`${e}`,{e:t.e}),dn(function(){_e.value=S.value?.visibleData,ye.value=S.value?.displayOptions})},Te=function(t){var n;(n=e.onBlur)==null||n.call(e,{e:t,value:E.value})},Ee=function(e,t){te(e,t),e&&t.trigger===`trigger-element-click`&&v(``)},De=function(){var t=ly(Ey.mark(function t(n){var r,i,a;return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(a=e.popupProps,!e.loading){t.next=1;break}return t.abrupt(`return`);case 1:a==null||(r=a[`on-scroll-to-bottom`])==null||r.call(a,n),a==null||(i=a.onScrollToBottom)==null||i.call(a,n);case 2:case`end`:return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),Oe=function(t){if(e.multiple){var n=[],r=Rpe(t||[]),i;try{for(r.s();!(i=r.n()).done;){var a=i.value,o=O.value.get(a);o&&n.push(o)}}catch(e){r.e(e)}finally{r.f()}A.value=Array.from(new Set([].concat(n,W(A.value))))}else{var s=O.value.get(t);s&&(A.value=Array.from(new Set([s].concat(W(A.value)))))}};R(b,function(e){Se(),dn(function(){Oe(e)})},{immediate:!0}),R(function(){return e.multiple},function(){Se()});var ke=function(e){var t;if(S.value){var n=(t=S.value)==null||(t=t.innerRef)==null?void 0:t.querySelector(`.${r.value}-is-selected`);dn(function(){if(n&&e){var t=getComputedStyle(n).paddingBottom,r=getComputedStyle(e).marginBottom,i=parseInt(t,10)+parseInt(r,10);e.scrollTop=n.offsetTop-e.offsetTop-(e.clientHeight-n.clientHeight)+i}})}},Ae=U(function(){return oe.value?ee.value:fe()}),je=function(){return o(`valueDisplay`,{params:ie.value})||function(){var t;if(!(!e.multiple||e.selectInputProps?.multiple===!1))return(t=E.value.slice(0,e.minCollapsedNum?e.minCollapsedNum:E.value.length)).map?.call(t,function(t,n){var r=Ae.value.find(function(e){if(e.value===t)return!0});return V(FC,H({key:n,closable:!(r!=null&&r.disabled)&&!i.value&&!a.value,size:e.size},e.tagProps,{onClose:function(t){var r,i,a=t.e;a.stopPropagation(),(r=e.tagProps)==null||(i=r.onClose)==null||i.call(r,{e:a}),se(n)}}),{default:function(){return[r?r.label??r?.value:t]}})})}()};return Cn(`updateScrollTop`,ke),function(){var t=e.popupProps||{},r=t.overlayClassName,c=Jm(Ym(t,Lpe),{onScrollToBottom:De}),l=Jm(e.selectInputProps,{onTagChange:function(e,t){se(t.index,t)},onPopupVisibleChange:Ee,onInputChange:we,onClear:function(t){var n,r=t.e;N(e.multiple?[]:void 0,{option:null,selectedOptions:de(e.multiple?[]:void 0),trigger:`clear`,e:r}),(n=e.onClear)==null||n.call(e,{e:r})},onEnter:function(t,n){var r=n.e;setTimeout(function(){var t;(t=e.onEnter)==null||t.call(e,{inputValue:`${_.value}`,e:r,value:E.value}),ce()},0)},onBlur:function(t,n){var r,i=n.e;(r=e.onBlur)==null||r.call(e,{e:i,value:E.value})},onFocus:function(t,n){var r,i=n.e;(r=e.onFocus)==null||r.call(e,{e:i,value:E.value})}});return V(`div`,{class:`${s.value}__wrap`},[V(ZC,H({autoWidth:e.autoWidth,readonly:a.value,borderless:e.borderless,multiple:e.multiple,clearable:e.clearable,loading:e.loading,status:e.status,tips:function(){return o(`tips`)},minCollapsedNum:e.minCollapsedNum,autofocus:e.autofocus,suffix:e.suffix,valueDisplayOptions:e.valueDisplayOptions},{ref:C,class:s.value,value:re.value,disabled:i.value,popupVisible:F.value,inputValue:F.value?_.value:``,placeholder:`${ne.value}`,allowInput:ae.value,"collapsed-items":e.collapsedItems,inputProps:yw(yw({size:e.size,autofocus:e.autofocus},e.inputProps),{},{onkeydown:ve}),tagInputProps:yw({size:e.size},e.tagInputProps),tagProps:yw({},e.tagProps),popupProps:yw({overlayClassName:[`${s.value}__dropdown`,r]},c.value),label:e.label,prefixIcon:e.prefixIcon,suffix:e.suffix,suffixIcon:function(){return e.suffixIcon||n.suffixIcon?o(`suffixIcon`):e.showArrow&&V(DS,{overlayClassName:`${s.value}__right-icon`,isActive:F.value},null)},valueDisplay:je},l.value),{label:n.label,prefixIcon:n.prefixIcon,suffix:n.suffix,panel:function(){return V(Ipe,H({ref:S},Rf(e,[`multiple`,`empty`,`loading`,`loadingText`,`filterable`,`creatable`,`panelTopContent`,`panelBottomContent`,`filter`,`scroll`,`keys`]),{inputValue:_.value}),n)},collapsedItems:n.collapsedItems})])}}})),xw=X(uw),Sw=X(dw),Cw=X(z({name:`TInputAdornment`,props:{append:{type:[String,Function]},prepend:{type:[String,Function]}},setup:function(e,t){var n=t.slots,r=Q(`input-adornment`),i=pm(),a=function(e,t,i){var a,o=Rd(i)||nf(i);return!n[t]&&Rd(i)&&!i?null:(a=n[t]?n[t](null).length===1&&typeof n[t](null)[0].children==`string`?V(`span`,{class:`${r.value}__text`},[n[t](null)]):n[t](null):q(i)?i(e):o?V(`span`,{class:`${r.value}__text`},[i]):i,a&&V(`span`,{class:`${r.value}__${t}`},[a]))};return function(){var t=a(sa,`prepend`,e.prepend),n=a(sa,`append`,e.append),o=i(`default`)||[null],s=[r.value,G(G({},`${r.value}--prepend`,t),`${r.value}--append`,n)];return!t&&!n?o[0]:V(`div`,{class:s},[t,o[0],n])}}})),ww={current:{type:Number,default:void 0},modelValue:{type:Number,default:void 0},defaultCurrent:{type:Number,default:1},disabled:Boolean,foldedMaxPageBtn:{type:Number,default:5},maxPageBtn:{type:Number,default:10},pageEllipsisMode:{type:String,default:`mid`,validator:function(e){return!e||[`mid`,`both-ends`].includes(e)}},pageSize:{type:Number,default:void 0},defaultPageSize:{type:Number,default:10},pageSizeOptions:{type:Array,default:function(){return[5,10,20,50]}},selectProps:{type:Object},showFirstAndLastPageBtn:Boolean,showJumper:Boolean,showPageNumber:{type:Boolean,default:!0},showPageSize:{type:Boolean,default:!0},showPreviousAndNextBtn:{type:Boolean,default:!0},size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`].includes(e)}},theme:{type:String,default:`default`,validator:function(e){return!e||[`default`,`simple`].includes(e)}},total:{type:Number,default:0},totalContent:{type:[Boolean,Function],default:!0},onChange:Function,onCurrentChange:Function,onPageSizeChange:Function};function Tw(e,t,n){var r=I(!1),i=I(!1),a=U(function(){return Math.ceil((e.foldedMaxPageBtn-1)/2)}),o=U(function(){return Math.floor((e.foldedMaxPageBtn-1)/2)});return{prevMore:r,nextMore:i,curPageLeftCount:a,curPageRightCount:o,isPrevMoreShow:U(function(){return 2+a.valuen.value})}}function Ew(e,t,n,r){var i=ym(),a=i.SIZE,o=i.STATUS,s=U(function(){var t=Math.ceil(e.total/n.value);return t>0?t:1});return{pageCount:s,paginationClass:U(function(){return[`${r.value}`,a.value[e.size],G(G({},o.value.disabled,e.disabled),`${r.value}-ie`,Zm()<11),e.theme===`simple`?`${r.value}--simple`:``]}),totalClass:U(function(){return[`${r.value}__total`]}),sizerClass:U(function(){return[`${r.value}__select`]}),preBtnClass:U(function(){return[`${r.value}__btn`,`${r.value}__btn-prev`,G({},o.value.disabled,e.disabled||t.value===1)]}),nextBtnClass:U(function(){return[`${r.value}__btn`,`${r.value}__btn-next`,G({},o.value.disabled,e.disabled||t.value===s.value)]}),btnWrapClass:U(function(){return[`${r.value}__pager`]}),btnMoreClass:U(function(){return[`${r.value}__number`,`${r.value}__number--more`,G({},o.value.disabled,e.disabled)]}),jumperClass:U(function(){return[`${r.value}__jump`]}),jumperInputClass:U(function(){return[`${r.value}__input`]}),simpleClass:U(function(){return[`${r.value}__select`]}),getButtonClass:function(n){return[`${r.value}__number`,G(G({},o.value.disabled,e.disabled),o.value.current,t.value===n)]}}}var Dw=[`pageCount`],Ow=1,kw=z({name:`TPagination`,props:ww,setup:function(e){var t=Wt(e),n=t.modelValue,r=t.pageSize,i=t.current,a=pm(),o=Y(Rm(i,n,e.defaultCurrent,e.onCurrentChange,`current`),2),s=o[0],c=o[1],l=Y(bm(r,e.defaultPageSize,e.onPageSizeChange,`pageSize`),2),u=l[0],d=l[1],f=Rp(`pagination`),p=f.t,m=f.globalConfig,h=Q(`pagination`),g=Tm({PageFirstIcon:nle,PageLastIcon:ile,ChevronLeftIcon:fg,ChevronRightIcon:yg,ChevronLeftDoubleIcon:Qse,ChevronRightDoubleIcon:rce,EllipsisIcon:Jg}),_=g.PageFirstIcon,v=g.PageLastIcon,y=g.ChevronLeftIcon,b=g.ChevronRightIcon,x=g.ChevronLeftDoubleIcon,S=g.ChevronRightDoubleIcon,C=g.EllipsisIcon,w=Ew(e,s,u,h),T=w.pageCount,E=Ym(w,Dw),D=Tw(e,T,s),O=D.prevMore,k=D.isPrevMoreShow,A=D.curPageLeftCount,j=D.nextMore,M=D.isNextMoreShow,ee=D.curPageRightCount,N=I(s.value),P=I(),F=U(function(){return T.value>e.maxPageBtn}),te=U(function(){return e.pageSizeOptions.map(function(e){return Do(e)?e:{label:p(m.value.itemsPerPage,{size:e}),value:Number(e)}}).sort(function(e,t){return e.value-t.value})}),ne=U(function(){return e.pageEllipsisMode===`mid`}),re=U(function(){var t=[],n,r;if(F.value)if(k.value&&M.value)n=s.value-A.value,r=s.value+ee.value;else{var i=ne.value?2:1,a=ne.value?T.value-1:T.value;n=k.value?Math.min(s.value-1,T.value-e.foldedMaxPageBtn+1):i,r=M.value?Math.max(s.value+1,e.foldedMaxPageBtn):a}else n=1,r=T.value;for(var o=n;o<=r;o++)t.push(o);return t});R(function(){return s.value},function(e){return N.value=e});var ie=function(t,n){var r;if(!e.disabled){var i=t;tT.value&&(i=T.value),n||={current:i,previous:s.value,pageSize:u.value},c(i,n),(r=e.onChange)==null||r.call(e,n)}},ae=function(t){({prevPage:function(){return ie(s.value-1)},nextPage:function(){return ie(s.value+1)},prevMorePage:function(){return ie(Math.max(2,s.value-e.foldedMaxPageBtn))},nextMorePage:function(){return ie(Math.min(s.value+e.foldedMaxPageBtn,T.value-1))}})[t]()},oe=function(t){if(!e.disabled){var n=Number(t),r=n>0?Math.max(Math.ceil(e.total/n),1):1,i=s.value,a=i>r;d(n,{current:a?r:i,previous:i,pageSize:n}),dn(function(){var t=s.value!==i,o=t?s.value:a?r:s.value,c={current:o,previous:i,pageSize:n};if(t||!a){var l;(l=e.onChange)==null||l.call(e,c)}else ie(o,c)})}},se=function(e){var t=Math.trunc(+e);if(!rf(t))return Math.min(Math.max(t,Ow),T.value)},ce=function(e){var t=se(e);t!==void 0&&(N.value=t,ie(t))},le=function(e){P.value=se(e),ce(e)},ue=function(e){if(se(e)===P.value){P.value=void 0;return}P.value=void 0,ce(e)};return function(){var t=e.total,n=e.pageSizeOptions,r=e.size,i=e.disabled,o=e.showPageSize;if(T.value<1)return null;var s=V(`div`,{class:E.jumperClass.value},[p(m.value.jumpTo),V(Cw,{append:`/ ${T.value} ${p(m.value.page)}`},{default:function(){return[V(fC,{class:E.jumperInputClass.value,modelValue:N.value,"onUpdate:modelValue":function(e){return N.value=e},onBlur:ue,onEnter:le,max:T.value,min:Ow,size:r,disabled:i,theme:`normal`,placeholder:``},null)]}})]);return V(`div`,{class:E.paginationClass.value},[a(`totalContent`,V(`div`,{class:E.totalClass.value},[p(m.value.total,t)])),o&&n.length>0&&V(bw,H({size:r,value:u,disabled:i,class:E.sizerClass.value,autoWidth:!0,onChange:oe,options:te.value},e.selectProps),null),e.showFirstAndLastPageBtn?V(`div`,{class:E.preBtnClass.value,onClick:function(){return ie(1)}},[V(_,null,null)]):null,e.showPreviousAndNextBtn?V(`div`,{class:E.preBtnClass.value,onClick:function(){return ae(`prevPage`)}},[V(y,null,null)]):null,e.showPageNumber&&e.theme==="default"?V(`ul`,{class:E.btnWrapClass.value},[F.value&&ne.value&&V(`li`,{class:E.getButtonClass(1),onClick:function(){return ie(Ow)}},[Ow]),F.value&&k.value&&ne.value?V(`li`,{class:E.btnMoreClass.value,onClick:function(){return ae(`prevMorePage`)},onMouseover:function(){return O.value=!0},onMouseout:function(){return O.value=!1}},[O.value?V(x,null,null):V(C,null,null)]):null,re.value.map(function(e){return V(`li`,{class:E.getButtonClass(e),key:e,onClick:function(){return ie(e)}},[e])}),F.value&&M.value&&ne.value?V(`li`,{class:E.btnMoreClass.value,onClick:function(){return ae(`nextMorePage`)},onMouseover:function(){return j.value=!0},onMouseout:function(){return j.value=!1}},[j.value?V(S,null,null):V(C,null,null)]):null,F.value&&ne.value?V(`li`,{class:E.getButtonClass(T.value),onClick:function(){return ie(T.value)}},[T.value]):null]):null,e.theme===`simple`&&s,e.showPreviousAndNextBtn?V(`div`,{class:E.nextBtnClass.value,onClick:function(){return ae(`nextPage`)}},[V(b,null,null)]):null,e.showFirstAndLastPageBtn?V(`div`,{class:E.nextBtnClass.value,onClick:function(){return ie(T.value)}},[V(v,null,null)]):null,e.theme==="default"&&e.showJumper&&s])}}}),Aw={disabled:{type:[Boolean,Object]},layout:{type:String,default:`horizontal`,validator:function(e){return!e||[`horizontal`,`vertical`].includes(e)}},showCurrent:{type:Boolean,default:!0},size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},tips:{type:Object},variant:{type:String,default:`text`,validator:function(e){return!e||[`text`,`outline`].includes(e)}},onChange:Function};function jw(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Mi(e)}var Mw=z({name:`TPaginationMini`,props:Aw,setup:function(e){var t=Q(`pagination-mini`),n=Tm({ChevronLeftIcon:fg,RoundIcon:gle,ChevronRightIcon:yg,ChevronUpIcon:Sg,ChevronDownIcon:sg}),r=n.ChevronLeftIcon,i=n.RoundIcon,a=n.ChevronRightIcon,o=n.ChevronUpIcon,s=n.ChevronDownIcon,c=U(function(){return Do(e.tips)?e.tips:e.tips===!0?{prev:`上一页`,current:`当前`,next:`下一页`}:{}}),l=U(function(){return Do(e.disabled)?e.disabled:e.disabled===!0?{prev:!0,current:!0,next:!0}:{prev:!1,current:!1,next:!1}}),u=function(e,t){return e?V(Gx,{content:e,showArrow:!1},jw(t)?t:{default:function(){return[t]}}):t};return function(){return V(`div`,{class:[t.value,G({},`${t.value}--outline`,e.variant===`outline`)]},[u(c.value.prev,V(mh,{variant:e.variant,size:e.size,shape:`square`,onClick:function(t){return e.onChange?.call(e,{e:t,trigger:`prev`})},icon:e.layout===`horizontal`?function(){return V(r,null,null)}:function(){return V(o,null,null)},class:`${t.value}__prev`,disabled:l.value.prev},null)),e.showCurrent&&u(c.value.current,V(mh,{variant:e.variant,size:e.size,shape:`square`,onClick:function(t){return e.onChange?.call(e,{e:t,trigger:`current`})},icon:function(){return V(i,null,null)},class:`${t.value}__current`,disabled:l.value.current},null)),u(c.value.next,V(mh,{variant:e.variant,size:e.size,shape:`square`,onClick:function(t){return e.onChange?.call(e,{e:t,trigger:`next`})},icon:e.layout===`horizontal`?function(){return V(a,null,null)}:function(){return V(s,null,null)},class:`${t.value}__next`,disabled:l.value.next},null))])}}}),Nw=X(kw),Pw=X(Mw),Fw={current:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultCurrent:{type:[String,Number]},layout:{type:String,default:`horizontal`,validator:function(e){return!e||[`horizontal`,`vertical`].includes(e)}},options:{type:Array},readonly:{type:Boolean,default:void 0},separator:{type:String,default:`line`,validator:function(e){return!e||[`line`,`dashed`,`arrow`].includes(e)}},sequence:{type:String,default:`positive`,validator:function(e){return!e||[`positive`,`reverse`].includes(e)}},theme:{type:String,default:`default`,validator:function(e){return!e||[`default`,`dot`].includes(e)}},onChange:Function},Iw={content:{type:[String,Function],default:``},default:{type:[String,Function]},extra:{type:[String,Function]},icon:{type:[Boolean,Function],default:!0},status:{type:String,default:`default`,validator:function(e){return!e||[`default`,`process`,`finish`,`error`].includes(e)}},title:{type:[String,Function],default:``},value:{type:[String,Number]}};function Lw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Rw(e){for(var t=1;tr)return`finish`}return(t.value===void 0?n:t.value)===o.value?`process`:`default`},u=om(),d=function(t){var n=[];return t?.forEach(function(t){var r=t?.props||{},i=t?.children;if(!(!r&&!i)){if(i&&Do(i))for(var a in i)a in Iw&&!r[a]&&(r[a]=i[a]);e.sequence===`reverse`?n.unshift(r):n.push(r)}}),n},f=function(){var t,n=(t=e.options)!=null&&t.length?e.sequence===`reverse`?e.options.slice().reverse():e.options:d(u(`StepItem`));return(n||[]).forEach(function(e,t){e.value!==void 0&&(c.value[e.value]=t)}),n},p=function(){var t=f();return t.map(function(n,r){var i=e.sequence===`reverse`?t.length-r-1:r;return r=n.value===void 0?i:r,V(zw,H(n,{index:i,status:l(n,r),key:n.value||r}),null)})},m=function(){var t=e.theme;return f().forEach(function(e){e?.icon!==void 0&&(t=`default`)}),t},h=U(function(){return[t.value,`${t.value}--${e.layout}`,`${t.value}--${m()}-anchor`,`${t.value}--${e.sequence}`,`${t.value}--${e.separator}-separator`]});return function(){return V(`div`,{class:h.value},[p()])}}})),Vw=X(zw),Hw={list:{type:Array,default:function(){return[]}},offset:{type:Array},placement:{type:String,default:`right-bottom`,validator:function(e){return!e||[`right-top`,`right-center`,`right-bottom`,`left-top`,`left-center`,`left-bottom`].includes(e)}},popupProps:{type:Object},shape:{type:String,default:`square`,validator:function(e){return!e||[`square`,`round`].includes(e)}},type:{type:String,default:`normal`,validator:function(e){return!e||[`normal`,`compact`].includes(e)}},width:{type:[String,Number]},onClick:Function,onHover:Function},Uw={icon:{type:Function},label:{type:[String,Function]},popup:{type:[String,Function]},popupProps:{type:Object},trigger:{type:String,default:`hover`,validator:function(e){return!e||[`hover`,`click`].includes(e)}}};function Ww(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Gw(e){for(var t=1;t=r&&(t.value=!0),e=u.value.length?0:i+1;a.value=u.value[o]?.text}else(tm.test(e.code)||tm.test(e.key))&&a.value&&n(`select`,a.value,{e})},p=function(){cp(document,`keydown`,f)},m=function(){lp(document,`keydown`,f)};return i({addKeyboardListener:p,removeKeyboardListener:m}),R(function(){return e.popupVisible},function(){e.popupVisible?p():m()},{immediate:!0}),R(function(){return e.value},function(){e.value||(a.value=``)},{immediate:!0}),_r(function(){m()}),function(){return u.value.length?V(`ul`,{class:c.value},[u.value.map(function(t){var n=W(l.value);t.text===a.value&&n.push(`${o.value}-select-option--hover`);var i=t.label;q(t.label)?i=t.label(sa):r.option&&(i=r.option?.call(r,{option:t}));var s=i||t.text;return V(`li`,{key:t.text,class:n,title:t.text,onClick:d},[Rd(s)&&e.highlightKeyword?V(eT,{content:s,keyword:e.value},null):s])})]):V(`div`,{class:`${o.value}-auto-complete__panel--empty`},[e.empty||s.value.empty])}}});function iT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function aT(e){for(var t=1;t=(n.getBoundingClientRect().width||n.offsetWidth||n.clientWidth)?`${r}px`:`auto`},e.popupProps?.overlayInnerStyle)},b=U(function(){return[`${f.value}-auto-complete`]}),x=U(function(){var t,n=[`${f.value}-select__dropdown`];return(t=e.popupProps)!=null&&t.overlayClassName&&(n=n.concat(e.popupProps.overlayClassName)),n}),S=U(function(){var t,n=[`${f.value}-select__dropdown-inner`];return(t=e.popupProps)!=null&&t.overlayInnerClassName&&(n=n.concat(e.popupProps.overlayInnerClassName)),n}),C=function(e,t){_.value=!0,c(e,t)},w=U(function(){return aT({value:s.value,size:e.size},e.inputProps)}),T=function(t,n){var r;g.value||h.value||(_.value=!0,(r=e.onFocus)==null||r.call(e,aT(aT({},n),{},{value:t})),dn(function(){var e;(e=v.value)==null||e.addKeyboardListener()}))},E=function(t,n){var r;(r=e.onBlur)==null||r.call(e,aT(aT({},n),{},{value:t}))},D=function(t,n){var r;(r=e.onCompositionend)==null||r.call(e,aT(aT({},n),{},{value:t}))},O=function(t,n){var r;(r=e.onCompositionstart)==null||r.call(e,aT(aT({},n),{},{value:t}))},k=function(t,n){var r;(r=e.onEnter)==null||r.call(e,aT(aT({},n),{},{value:t}))},A=function(t,n){var r;g.value||h.value||(_.value=!1,c(t,n),(r=e.onSelect)==null||r.call(e,t,n))},j=function(e,t){var n=t.trigger;g.value||h.value||n!==`trigger-element-click`&&(_.value=e)};return function(){var t=Jm(w.value,{onChange:C,onFocus:T,onBlur:E,onClear:e.onClear,onCompositionend:D,onCompositionstart:O,onEnter:k}),r=l(`default`,`triggerElement`)||V(WS,H({borderless:e.borderless,placeholder:e.placeholder??m.value.placeholder,tips:e.tips,status:e.status,readonly:g.value,disabled:h.value,autofocus:e.autofocus,clearable:e.clearable},t.value),n),i=Array.isArray(e.options)&&V(rT,{ref:v,value:s.value,options:e.options,size:e.size,sizeClassNames:p,onSelect:A,popupVisible:_.value,highlightKeyword:e.highlightKeyword,filterable:e.filterable,filter:e.filter,empty:u(`empty`)},{option:n.option}),a=u(`panelTopContent`),o=u(`panelBottomContent`),c=a||i||o?V(`div`,{class:`${f.value}-auto-complete__panel`},[a,i,o]):null,d=Jm(aT(aT({},e.popupProps),{},{overlayInnerStyle:y,overlayInnerClassName:S.value,overlayClassName:x.value}),{onVisibleChange:j});return V(`div`,{class:b.value},[V(zx,H({visible:_.value,onVisibleChange:j,trigger:`focus`,placement:`bottom-left`,hideEmptyPopup:!0,content:c?function(){return c}:null},d.value),oT(r)?r:{default:function(){return[r]}})])}}})),cT=X(eT);function lT(e,t,n){var r=n.disabled;return[`${e}-cascader__icon`,G({},t.disabled,r)]}function uT(e,t,n){var r=n.checkStrictly,i=n.multiple,a=n.value,o=n.max,s=n.isParentFilterable,c=!r&&e.expanded&&(!i||!e.isLeaf())||r&&e.expanded&&!s,l=e.isLeaf(),u=e.disabled||i&&a.length>=o&&o!==0,d=e.checked||i&&!r&&e.expanded&&!l;return!i&&!r&&!l&&(d=e.expanded),[G(G(G({},t.selected,!u&&d),t.expanded,!u&&c),t.disabled,u)]}function dT(e,t,n,r,i){var a=i.size,o=i.isParentFilterable;return[`${e}-cascader__item`].concat(W(uT(t,r,i)),[n[a],G(G({},`${e}-cascader__item--with-icon`,!!t.children),`${e}-cascader__item--leaf`,t.isLeaf()||o)])}function fT(e,t,n,r){return[`${e}-cascader__item-icon`,`${e}-icon`].concat(W(uT(t,n,r)))}function pT(e){var t=e.value,n=e.multiple,r=e.treeStore,i=e.showAllLevels;if(n||t!==0&&!t||K(t))return``;var a=r&&r.getNodes(t);if(!(a&&a.length))return t;var o=a&&a[0].getPath();return o&&o.length?i?o.map(function(e){return e.label}).join(` / `):o.at(-1).label:t}function mT(e){var t=e.value,n=e.multiple,r=e.treeStore,i=e.showAllLevels;return!n||n&&!K(t)||!(r&&r.getNodes(t))?[]:t.map(function(e){var t=r.getNodes(e);return i?gT(t[0]):t[0]?.label}).filter(function(e){return!!e})}function hT(e){var t=[];return e.forEach(function(e){t[e.level]?t[e.level].push(e):t[e.level]=[e]}),t}function gT(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`/`;return e?.getPath().map(function(e){return e.label}).join(t)}var _T=function(e){var t=[];return K(e)?e.length>0&&Do(e[0])?t=e.map(function(e){return e.value}):e.length&&(t=e):yT(e)||(t=Do(e)?[e.value]:[e]),t},vT=function(e,t,n){if(t===`single`)return e;var r=e;return n?r.map(function(e){return e.at(-1)}):r.at(-1)};function yT(e){return nf(e)&&!isNaN(e)?!1:$d(e)}function bT(e,t){var n=t.multiple,r=t.showAllLevels,i=t.valueType;return n&&!K(e)||!n&&K(e)&&i===`single`&&!r}function xT(e,t){return!e.label||!t?!1:e.label.toLowerCase().includes(t)}function ST(e){return e!==-1}function CT(e){return e===void 0?!1:typeof e!=`string`||!!e.trim()}function wT(e,t,n){if(typeof t==`string`){var r=t.trim().toLowerCase();return r?e.filter(function(e){return xT(e,r)}):e}return e.filter(function(e){return t(e.data,n)})}function TT(e,t,n,r){var i=r.checkStrictly,a=r.multiple,o=r.treeStore,s=r.setVisible,c=r.setValue,l=r.setTreeNodes,u=r.setExpand,d=r.value,f=r.max,p=r.valueType;if(!(n.disabled||a&&d.length>=f&&f!==0)){if(e===t){var m=n.setExpanded(!0);r.inputVal?o.refreshNodes():(o.replaceExpanded(m),l(o.getNodes().filter(function(e){return e.visible}))),a&&!r.isParentFilterable&&u(m)}if(!a&&(n.isLeaf()||i)&&t===`click`){o.resetChecked();var h=Y(n.setChecked(!n.checked),1)[0];c(p===`single`?h:n.getPath().map(function(e){return e.value}),`check`,n.getModel()),(!i||e===`hover`||r.inputVal)&&s(!1,{})}}}function ET(e,t){var n=t.disabled,r=t.max,i=t.inputVal,a=t.setVisible,o=t.setValue,s=t.treeNodes,c=t.treeStore,l=t.valueType,u=t.setInputVal,d=t.reserveKeyword;if(!(!e||n||e.disabled)){var f=e.setChecked(!e.isChecked());if(nf(r)&&r<0&&console.warn(`TDesign Warn:`,`max should > 0`),!(f.length>r&&nf(r)&&r>0)){if(f.length===0){var p=c.getExpanded();setTimeout(function(){c.replaceExpanded(p),c.refreshNodes()},0)}var m=s.every(function(e){return f.indexOf(e.value)>-1});i&&m&&a(!1,{}),o(l===`single`?f:f.map(function(e){return c.getNode(e).getPath().map(function(e){return e.value})}),e.checked?`uncheck`:`check`,e.getModel()),d||u(``)}}}function DT(e){var t=e.setVisible,n=e.multiple,r=e.setValue;t(!1,{}),r(n?[]:``,`clear`)}function OT(e,t,n){var r=e.disabled,i=e.setValue,a=e.value,o=e.valueType,s=e.treeStore;if(!r)if(t!==void 0){var c=iu(a).splice(t,1),l=s.getNodes(c[0])[0],u=l.setChecked(!l.isChecked());i(o===`single`?u:u.map(function(e){return s.getNode(e).getPath().map(function(e){return e.value})}),`uncheck`,l.getModel()),q(n)&&n({value:u,node:l})}else q(n)&&n({value:a,node:void 0})}var kT=function(e,t,n,r,i){if(t){var a=[];a=e?t.nodes.filter(function(t){return!t.isLeaf()&&!i?!1:q(r)?r(`${e}`,t):gT(t,``).includes(`${e}`)}):t.getNodes().filter(function(e){return e.visible}),n(a)}},AT=function(e,t){var n=new Map,r=Y(t,1)[0];if(!yT(r)){n.set(r,!0);var i=e.getNode(r);if(!i)return e.refreshNodes(),[];i.getParents().forEach(function(e){n.set(e.value,!0)})}return Array.from(n.keys())},jT=function(e,t,n){var r=_T(t);if(e){if(K(r)&&n.length===0){var i=AT(e,r);i.length>0&&e.replaceExpanded(i)}e.getExpanded()&&n.length&&e.replaceExpanded(n),e.refreshNodes()}};function MT(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Mi(e)}var NT=z({name:`TCascaderItem`,props:{node:{type:Object,default:function(){return{}}},optionChild:{type:[Object,Array]},cascaderContext:{type:Object},onChange:Function,onClick:Function,onMouseenter:Function},setup:function(e){var t=I();Im(t);var n=Q(`cascader__item`),r=Q(),i=Tm({ChevronRightIcon:yg}).ChevronRightIcon,a=ym(),o=a.STATUS,s=a.SIZE,c=U(function(){return dT(r.value,e.node,s.value,o.value,e.cascaderContext)}),l=U(function(){return fT(r.value,e.node,o.value,e.cascaderContext)});function u(e,t){var r=t.inputVal,i=r?gT(e):e.label;if(r){for(var a=i.split(r),o=[],s=0;s=a&&a!==0,name:String(t.value),stopLabelTrigger:!!t.children&&!e.cascaderContext.isParentFilterable,title:o?gT(t):d(t),onChange:function(){e.onChange()}},r),MT(s)?s:{default:function(){return[s]}})}return function(){var n=e.cascaderContext,r=e.node,a=e.optionChild;return V(`li`,{ref:t,class:c.value,onClick:e.onClick,onMouseenter:e.onMouseenter},[a||(n.multiple?p(r,n):f(r,n)),r.children&&!e.cascaderContext.isParentFilterable&&(r.loading?V(uh,{class:l.value,size:`small`},null):V(i,{class:l.value},null))])}}}),PT={autofocus:Boolean,borderless:Boolean,checkProps:{type:Object},checkStrictly:Boolean,clearable:Boolean,collapsedItems:{type:Function},columnFooter:{type:[String,Function]},columnHeader:{type:[String,Function]},disabled:{type:Boolean,default:void 0},empty:{type:[String,Function]},filter:{type:Function},filterable:Boolean,inputProps:{type:Object},keys:{type:Object},label:{type:[String,Function]},lazy:{type:Boolean,default:!0},load:{type:Function},loading:Boolean,loadingText:{type:[String,Function]},max:{type:Number,default:0},minCollapsedNum:{type:Number,default:0},multiple:Boolean,option:{type:Function},options:{type:Array,default:function(){return[]}},panelBottomContent:{type:[String,Function]},panelTopContent:{type:[String,Function]},placeholder:{type:String,default:void 0},popupProps:{type:Object},popupVisible:Boolean,prefixIcon:{type:Function},readonly:{type:Boolean,default:void 0},reserveKeyword:{type:Boolean,default:!0},selectInputProps:{type:Object},showAllLevels:{type:Boolean,default:!0},size:{type:String,default:`medium`,validator:function(e){return!e||[`large`,`medium`,`small`].includes(e)}},status:{type:String,default:`default`,validator:function(e){return!e||[`default`,`success`,`warning`,`error`].includes(e)}},suffix:{type:[String,Function]},suffixIcon:{type:Function},tagInputProps:{type:Object},tagProps:{type:Object},tips:{type:[String,Function]},trigger:{type:String,default:`click`,validator:function(e){return!e||[`click`,`hover`].includes(e)}},value:{type:[String,Number,Array],default:void 0},modelValue:{type:[String,Number,Array],default:void 0},defaultValue:{type:[String,Number,Array],default:function(){return[]}},valueDisplay:{type:[String,Function]},valueMode:{type:String,default:`onlyLeaf`,validator:function(e){return!e||[`onlyLeaf`,`parentFirst`,`all`].includes(e)}},valueType:{type:String,default:`single`,validator:function(e){return!e||[`single`,`full`].includes(e)}},onBlur:Function,onChange:Function,onFocus:Function,onPopupVisibleChange:Function,onRemove:Function};function FT(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=IT(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function IT(e,t){if(e){if(typeof e==`string`)return LT(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?LT(e,t):void 0}}function LT(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ni.maxLevel&&(o.value={filters:u(i.filters,s),maxLevel:s})}TT(e.trigger,n,t,e.cascaderContext)},h=new Map,g=function(e){var t=h.get(e);return t||(t=function(t){return f(e,t)},h.set(e,t)),t};R(a,function(e){var t=e.length-1,n=FT(h),r;try{for(n.s();!(r=n.n()).done;){var i=Y(r.value,1)[0];i>t&&h.delete(i)}}catch(e){n.e(e)}finally{n.f()}},{flush:`post`}),vr(function(){h.clear()});var _=function(n,r){var i=n.data.content?wp(n.data.content(sa)):t(`option`,{params:{item:n.data,index:r,onExpand:function(){return m(n,`click`,r)},onChange:function(){return ET(n,e.cascaderContext)}}});return V(NT,{key:n.value,node:n,optionChild:i,cascaderContext:e.cascaderContext,onClick:function(){return m(n,`click`,r)},onMouseenter:function(){return m(n,`hover`,r)},onChange:function(){return ET(n,e.cascaderContext)}},null)},v=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=s.value?c(e,i):e,o={panelIndex:i,options:e.map(function(e){return e.data}),filteredOptions:a.map(function(e){return e.data})};return V(`ul`,{class:[`${r.value}__menu`,`narrow-scrollbar`,G({},`${r.value}__menu--segment`,t)],key:`${r}__menu${i}`},[n(`columnHeader`,{params:zT(zT({},o),{},{onFilter:g(i)})}),a.map(function(e){return _(e,i)}),n(`columnFooter`,{params:zT(zT({},o),{},{onFilter:g(i)})})])},y=function(){},b=function(e){var t={panelIndex:0,options:e.map(function(e){return e.data}),filteredOptions:e.map(function(e){return e.data}),onFilter:y};return V(`ul`,{class:[`${r.value}__menu`,`narrow-scrollbar`,`${r.value}__menu--filter`],key:`${r}__menu--filtered`},[n(`columnHeader`,{params:t}),e.map(function(e){return _(e,0)}),n(`columnFooter`,{params:t})])},x=function(){var t=e.cascaderContext,n=t.inputVal,r=t.treeNodes;if(n)return b(r);for(var i=[],o=a.value.length,s=0;s>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(e){e(n)}),(r=e.get(`*`))&&r.slice().map(function(e){e(t,n)})}}}var HT=`__tdesign_tree-node__`,UT=function(){function e(t){Xp(this,e),G(this,HT,void 0),this[HT]=t}return Yp(e,[{key:`value`,get:function(){return this[HT].value}},{key:`label`,get:function(){return this[HT].label}},{key:`data`,get:function(){return this[HT].data}},{key:`actived`,get:function(){return this[HT].actived}},{key:`expanded`,get:function(){return this[HT].expanded}},{key:`checked`,get:function(){return this[HT].checked}},{key:`indeterminate`,get:function(){return this[HT].indeterminate}},{key:`loading`,get:function(){return this[HT].loading}},{key:`disabled`,get:function(){return this[HT].isDisabled()}},{key:`getLevel`,value:function(){return this[HT].getLevel()}},{key:`getIndex`,value:function(){return this[HT].getIndex()}},{key:`isFirst`,value:function(){return this[HT].isFirst()}},{key:`isLast`,value:function(){return this[HT].isLast()}},{key:`isLeaf`,value:function(){return this[HT].isLeaf()}},{key:`insertBefore`,value:function(e){return this[HT].insertBefore(e)}},{key:`insertAfter`,value:function(e){return this[HT].insertAfter(e)}},{key:`appendData`,value:function(e){return this[HT].append(e)}},{key:`getPath`,value:function(){return this[HT].getPath().map(function(e){return e.getModel()})}},{key:`getParent`,value:function(){return this[HT].parent?.getModel()}},{key:`getParents`,value:function(){return this[HT].getParents().map(function(e){return e.getModel()})}},{key:`getRoot`,value:function(){return this[HT].getRoot()?.getModel()}},{key:`getSiblings`,value:function(){return this[HT].getSiblings().map(function(e){return e.getModel()})}},{key:`getChildren`,value:function(e){var t=this[HT],n=!1,r=t.children;if(Array.isArray(r))if(r.length>0)if(e){var i=t.walk();i.shift(),n=i.map(function(e){return e.getModel()})}else n=r.map(function(e){return e.getModel()});else n=!1;else Gd(r)&&(n=r);return n}},{key:`remove`,value:function(e){var t=this[HT];if(!e){t.remove();return}var n=t.tree.getNode(e);if(!n){Vp.warnOnce(`Tree`,`\`${e}\` is not exist`);return}if(n.getParents().map(function(e){return e.value}).indexOf(t.value)<0){Vp.warnOnce(`Tree`,`\`${e}\` is not a childNode of current node`);return}n.remove()}},{key:`setData`,value:function(e){var t=this[HT],n=[`value`,`label`,`disabled`],r=Sf(e,[`children`].concat(n)),i=t.tree.config.keys;n.forEach(function(t){var n=J(e,i?.[t]||t);sf(n)||(r[t]=n)}),Object.assign(t.data,r),Object.assign(t,r),t.update()}}])}();function WT(e){return new UT(e)}function GT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function KT(e){for(var t=1;t0?this.append(n):this.children=!1,this.update();case 2:case`end`:return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()},{key:`set`,value:function(e){var t=this,n=this.tree;Object.keys(e).forEach(function(n){(qT.call(JT,n)||n===`label`)&&(t[n]=e[n]),n===`disabled`&&t.setDisabled(e[n])}),n.updated(this)}},{key:`getParent`,value:function(){return this.parent}},{key:`getParents`,value:function(){for(var e=[],t=this.parent;t;)e.push(t),t=t.parent;return e}},{key:`getSiblings`,value:function(){var e=this.parent,t=this.tree,n=[];return e?Array.isArray(e.children)&&(n=e.children):t&&(n=t.children),n}},{key:`getChildren`,value:function(e){var t=!1,n=this.children;if(Array.isArray(n))if(n.length>0)if(e){var r=this.walk();r.shift(),t=r.map(function(e){return e.getModel()})}else t=n.map(function(e){return e.getModel()});else t=!1;else Gd(n)&&(t=n);return t}},{key:`getRoot`,value:function(){var e=this.getParents();return e[e.length-1]||null}},{key:`getIndex`,value:function(){return this.getSiblings().indexOf(this)}},{key:`getPath`,value:function(){var e=this.getParents();return e.unshift(this),e.reverse()}},{key:`getLevel`,value:function(){return this.getParents().length}},{key:`isRest`,value:function(){var e=this.tree,t=e.config,n=e.filterMap,r=e.hasFilter,i=!1;if(r){var a=this.getModel();i=t.filter(a)}return i?n.set(this.value,!0):n.get(this.value)&&n.delete(this.value),i}},{key:`isVisible`,value:function(){var e=this.tree,t=e.nodeMap,n=e.hasFilter,r=e.config.allowFoldNodeOnFilter,i=!0;if(!t.get(this.value))return!1;if(n&&!r)return i=this.vmIsLocked||this.vmIsRest,i;var a=!0,o=this.getParents();return o.length>0&&(a=o.every(function(e){return e.expanded})),i=n?a&&(this.vmIsRest||this.vmIsLocked):a,i}},{key:`isDisabledState`,value:function(){var e=this.tree,t=this.parent,n=e.config,r=n.checkStrictly,i=n.disabled,a=n.disableCheck,o=n.keys,s=o===void 0?{}:o;if(i||!r&&t!=null&&t.isDisabled()&&!this.vmIsRest)return!0;if(typeof this.disableManually==`boolean`)return this.disableManually;var c=s.disabled||`disabled`,l=J(this.data,c);if(typeof l==`boolean`)return l;if(a===!0)return!0;if(typeof a==`function`){var u=a(this.getModel());if(typeof u==`boolean`)return u}return!1}},{key:`isDisabled`,value:function(){var e=this.tree,t=e.hasFilter,n=e.config.allowFoldNodeOnFilter;return t&&!n&&this.vmIsLocked&&!this.vmIsRest?!0:this.isDisabledState()}},{key:`isDraggable`,value:function(){var e=!!J(this,`tree.config.draggable`);return typeof this.draggable==`boolean`&&(e=this.draggable),e}},{key:`isExpandMutex`,value:function(){var e=!!J(this,`tree.config.expandMutex`);return typeof this.expandMutex==`boolean`&&(e=this.expandMutex),e}},{key:`isActivable`,value:function(){var e=!!J(this,`tree.config.activable`);return typeof this.activable==`boolean`&&(e=this.activable),e}},{key:`isCheckable`,value:function(){var e=!!J(this,`tree.config.checkable`);return typeof this.checkable==`boolean`&&(e=this.checkable),e}},{key:`isActived`,value:function(e){var t=this.tree,n=this.value,r=e||t.activedMap;return!!(t.nodeMap.get(n)&&r.get(n))}},{key:`isExpanded`,value:function(e){var t=this.tree,n=this.value,r=this.vmIsLocked,i=t.hasFilter,a=t.config.allowFoldNodeOnFilter;if(i&&!a&&r)return!0;var o=e||t.expandedMap;return!!(t.nodeMap.get(n)&&o.get(n))}},{key:`isChecked`,value:function(e){var t=this.children,n=this.tree,r=this.value,i=n.config,a=i.checkStrictly,o=i.valueMode;if(!n.nodeMap.get(r)||!this.isCheckable())return!1;var s=e||n.checkedMap;if(a)return!!s.get(r);var c=!1;return s.get(r)&&(o!==`onlyLeaf`||this.isLeaf())?!0:(c=Array.isArray(t)&&t.length>0?t.every(function(e){return e.isChecked(s)}):this.getParents().some(function(e){return s.get(e.value)}),c)}},{key:`isIndeterminate`,value:function(){var e=this.children,t=this.tree,n=this.value,r=t.config.checkStrictly;if(!t.nodeMap.get(n)||!this.isCheckable()||r||!Array.isArray(e))return!1;var i=null;return e.some(function(e){return!!(e.isIndeterminate()||(of(i)&&(i=e.isChecked()),i!==e.isChecked()))})}},{key:`isFirst`,value:function(){return this.getSiblings()[0]===this}},{key:`isLast`,value:function(){var e=this.getSiblings();return e[e.length-1]===this}},{key:`isLeaf`,value:function(){var e=!1;return e=Array.isArray(this.children)?this.children.length<=0:!this.children,e}},{key:`lock`,value:function(e){this.vmIsLocked=e,this.expanded=this.isExpanded(),this.visible=this.isVisible()}},{key:`afterExpanded`,value:function(){this.update(),this.expanded&&this.children===!0&&this.loadChildren(),this.updateChildren()}},{key:`toggleExpanded`,value:function(e){return this.setExpanded(!this.isExpanded(),e)}},{key:`setExpanded`,value:function(e,t){var n=this.tree,r=n.config,i=KT({directly:!1},t),a=n.expandedMap;if(i.directly||(a=new Map(n.expandedMap)),e){var o=[];o.push(this),r.expandParent&&this.getParents().forEach(function(e){o.push(e)}),o.forEach(function(e){var t=!1;if(e.parent)t=e.parent.isExpandMutex();else{var r;t=n==null||(r=n.config)==null?void 0:r.expandMutex}t&&e.getSiblings().forEach(function(e){a.delete(e.value),e.update(),e.updateChildren()}),a.set(e.value,!0),e.update(),e.updateChildren()})}else a.delete(this.value);return i.directly&&this.afterExpanded(),n.getExpanded(a)}},{key:`toggleActived`,value:function(e){return this.setActived(!this.isActived(),e)}},{key:`setActived`,value:function(e,t){var n=this.tree,r=KT({isAction:!0,directly:!1},t),i=n.config||{},a=n.activedMap;if(r.directly||(a=new Map(n.activedMap)),r.isAction&&this.isDisabledState())return n.getActived(a);if(this.isActivable())if(e){var o=Array.from(a.keys());i.activeMultiple||a.clear(),o.forEach(function(e){n.getNode(e)?.update()}),a.set(this.value,!0)}else a.delete(this.value);return this.update(),n.getActived(a)}},{key:`hasEnableUnCheckedChild`,value:function(){var e=this.children;if(!Array.isArray(e)||e.length<=0)return!1;var t=!1;return e.some(function(e){return e.isDisabledState()||e.isChecked()?!1:e.isIndeterminate()?e.hasEnableUnCheckedChild()?(t=!0,!0):!1:(t=!0,!0)}),t}},{key:`toggleChecked`,value:function(e){if(this.isIndeterminate()){var t=this.hasEnableUnCheckedChild();return this.setChecked(t,e)}return this.setChecked(!this.isChecked(),e)}},{key:`setChecked`,value:function(e,t){var n=this.tree,r=n.config||{},i=KT({isAction:!0,directly:!1},t),a=n.checkedMap;return i.directly||(a=new Map(n.checkedMap)),!this.isCheckable()||i.isAction&&this.isDisabledState()||e===this.isChecked()&&!(this.isIndeterminate()&&!this.hasEnableUnCheckedChild())?n.getChecked(a):(e?a.set(this.value,!0):a.delete(this.value),r.checkStrictly?i.directly&&this.updateChecked():(this.spreadChildrenChecked(e,a,i),this.spreadParentChecked(e,a,i),i.directly&&n.getRelatedNodes([this.value],{reverse:!0}).forEach(function(e){e.updateChecked()})),n.getChecked(a))}},{key:`spreadParentChecked`,value:function(e,t,n){var r=KT({isAction:!0,directly:!1},n);if(this.isCheckable()){var i=this.children;Array.isArray(i)&&i.length>0&&t.delete(this.value);var a=this.parent;a&&a.spreadParentChecked(e,t,r)}}},{key:`spreadChildrenChecked`,value:function(e,t,n){var r=KT({isAction:!0,directly:!1},n);if(this.isCheckable()&&!(r.isAction&&this.isDisabledState())){var i=this.children;Array.isArray(i)&&(i.length<=0||(t.delete(this.value),i.forEach(function(n){r.isAction&&n.isDisabledState()||(e?t.set(n.value,!0):t.delete(n.value),n.spreadChildrenChecked(e,t,r))})))}}},{key:`setDisabled`,value:function(e){var t;!this.tree.config.checkStrictly&&(t=this.parent)!=null&&t.isDisabled()||(this.disableManually=e,this.update(),this.updateChildren())}},{key:`update`,value:function(){this.level=this.getLevel(),this.vmIsFirst=this.isFirst(),this.vmIsLast=this.isLast(),this.vmIsLeaf=this.isLeaf(),this.vmCheckable=this.isCheckable(),this.vmIsRest=this.isRest(),this.actived=this.isActived(),this.expanded=this.isExpanded(),this.visible=this.isVisible(),this.disabled=this.isDisabled(),this.tree.updated(this)}},{key:`updateChecked`,value:function(){var e=this.tree,t=this.value,n=e.checkedMap;this.checked=this.isChecked(),this.indeterminate=this.isIndeterminate(),this.checked&&n.set(t,!0),e.updated(this)}},{key:`updateChildren`,value:function(){var e=this;this.spreadChildren(function(t){t!==e&&(t.update(),t.updateChecked())})}},{key:`updateParents`,value:function(){var e=this;this.spreadParents(function(t){t!==e&&(t.update(),t.updateChecked())})}},{key:`updateRelated`,value:function(){this.tree.getRelatedNodes([this.value]).forEach(function(e){e.update(),e.updateChecked()})}},{key:`walk`,value:function(){var e=[];return this.spreadChildren(function(t){e.push(t)}),e}},{key:`spreadChildren`,value:function(e){e(this);var t=this.children;Array.isArray(t)&&t.length>0&&t.forEach(function(t){t?.spreadChildren(e)})}},{key:`spreadParents`,value:function(e){e(this);var t=this.parent;t&&t?.spreadParents(e)}},{key:`getModel`,value:function(){var e=this.model;return e||(e=WT(this),this.model=e),e}}])}();function $T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function eE(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:!0;e.forEach(function(e){var r=t.getNode(e);!(r!=null&&r.isLeaf())&&n?t.expandedMap.set(e,!0):t.expandedMap.delete(e),r?.afterExpanded()})}},{key:`resetExpanded`,value:function(){var e=this.getExpanded();this.expandedMap.clear(),this.updateExpanded(e)}},{key:`updateExpanded`,value:function(e){this.getRelatedNodes(e,{withParents:!1}).forEach(function(e){e.update()})}},{key:`getChecked`,value:function(e){var t=this.nodeMap,n=this.config,r=n.valueMode,i=n.checkStrictly,a=[],o=e||this.checkedMap;return t.forEach(function(e){e.isChecked(o)&&(r===`parentFirst`&&!i?(!e.parent||!e.parent.isChecked(o))&&a.push(e.value):r===`onlyLeaf`&&!i?e.isLeaf()&&a.push(e.value):a.push(e.value))}),a}},{key:`getCheckedNodes`,value:function(e){var t=this.getNodes(e);return t=t.filter(function(e){return e.isChecked()}),t}},{key:`replaceChecked`,value:function(e){this.resetChecked(),this.setChecked(e)}},{key:`setChecked`,value:function(e){var t=this,n=this.config,r=n.checkStrictly;if(n.checkable&&(e.forEach(function(e){var n=t.getNode(e);n&&(r?(t.checkedMap.set(e,!0),n.updateChecked()):n.walk().forEach(function(e){t.checkedMap.set(e.value,!0)}))}),!r)){var i=this.getChecked();this.getRelatedNodes(i).forEach(function(e){e.updateChecked()})}}},{key:`resetChecked`,value:function(){var e=this.getChecked(),t=this.getRelatedNodes(e);this.checkedMap.clear(),t.forEach(function(e){e.updateChecked()})}},{key:`refreshState`,value:function(){this.nodeMap.forEach(function(e){e.update()})}},{key:`updateAll`,value:function(){this.nodeMap.forEach(function(e){e.update(),e.updateChecked()})}},{key:`remove`,value:function(e){var t=this.getNode(e);t&&t.remove()}},{key:`removeAll`,value:function(){this.expandedMap.clear(),this.checkedMap.clear(),this.activedMap.clear(),this.filterMap.clear(),this.nodeMap.clear(),this.privateMap.clear(),this.updatedMap.clear(),this.nodes=[],this.children=[],this.reflow()}},{key:`getRelatedNodes`,value:function(e,t){var n=this,r=eE({reverse:!1,withParents:!0},t),i=new Map;e.forEach(function(e){if(!i.get(e)){var t=n.getNode(e);if(t){var a=t.getParents().reverse(),o=t.walk(),s=[];s=r.withParents?a.concat(o):o,s.forEach(function(e){i.set(e.value,e)})}}});var a=Array.from(i.values());return r.reverse&&(a=a.reverse()),a}},{key:`emit`,value:function(e,t){var n=this.config,r=this.emitter,i=n[Yc(`on-${e}`)];q(i)&&i(t),r.emit(e,t)}},{key:`lockFilterPathNodes`,value:function(){var e=this.config,t=this.getNodes();this.prevFilter&&t.forEach(function(e){e.vmIsLocked&&e.lock(!1)});var n=e.filter;!n||!q(n)||(this.prevFilter=e.filter,t.reverse().forEach(function(e){var t=e.getParent();t&&(e.vmIsRest||e.vmIsLocked)&&(t.vmIsLocked||t.lock(!0))}))}}])}();function rE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function iE(e){for(var t=1;t68?1900:2e3)},s=function(e){return function(t){this[e]=+t}},c=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||={}).offset=function(e){if(!e||e===`Z`)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return n===0?0:t[0]===`+`?-n:n}(e)}],l=function(e){var t=a[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=a.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?`pm`:`PM`);return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\d/,function(e){this.milliseconds=100*e}],SS:[n,function(e){this.milliseconds=10*e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[r,s(`seconds`)],ss:[r,s(`seconds`)],m:[r,s(`minutes`)],mm:[r,s(`minutes`)],H:[r,s(`hours`)],h:[r,s(`hours`)],HH:[r,s(`hours`)],hh:[r,s(`hours`)],D:[r,s(`day`)],DD:[n,s(`day`)],Do:[i,function(e){var t=a.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,``)===e&&(this.day=r)}],M:[r,s(`month`)],MM:[n,s(`month`)],MMM:[i,function(e){var t=l(`months`),n=(l(`monthsShort`)||t.map(function(e){return e.slice(0,3)})).indexOf(e)+1;if(n<1)throw Error();this.month=n%12||n}],MMMM:[i,function(e){var t=l(`months`).indexOf(e)+1;if(t<1)throw Error();this.month=t%12||t}],Y:[/[+-]?\d+/,s(`year`)],YY:[n,function(e){this.year=o(e)}],YYYY:[/\d{4}/,s(`year`)],Z:c,ZZ:c};function f(n){for(var r=n,i=a&&a.formats,o=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(t,n,r){var a=r&&r.toUpperCase();return n||i[r]||e[r]||i[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,n){return t||n.slice(1)})})).match(t),s=o.length,c=0;c-1)return new Date((t===`X`?1e3:1)*e);var r=f(t)(e),i=r.year,a=r.month,o=r.day,s=r.hours,c=r.minutes,l=r.seconds,u=r.milliseconds,d=r.zone,p=new Date,m=o||(i||a?1:p.getDate()),h=i||p.getFullYear(),g=0;i&&!a||(g=a>0?a-1:p.getMonth());var _=s||0,v=c||0,y=l||0,b=u||0;return d?new Date(Date.UTC(h,g,m,_,v,y,b+60*d.offset*1e3)):n?new Date(Date.UTC(h,g,m,_,v,y,b)):new Date(h,g,m,_,v,y,b)}catch{return new Date(``)}}(t,s,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(s)&&(this.$d=new Date(``)),a={}}else if(s instanceof Array)for(var p=s.length,m=1;m<=p;m+=1){o[1]=s[m-1];var h=n.apply(this,o);if(h.isValid()){this.$d=h.$d,this.$L=h.$L,this.init();break}m===p&&(this.$d=new Date(``))}else i.call(this,e)}}})})(pE,pE.exports);var mE=pE.exports,hE=Jf(mE),gE={exports:{}};gE.exports,(function(e,t){(function(t,n){e.exports=n()})(qf,function(){return function(e,t){t.prototype.isoWeeksInYear=function(){var e=this.isLeapYear(),t=this.endOf(`y`).day();return t===4||e&&t===5?53:52}}})})(gE,gE.exports);var _E=gE.exports,vE=Jf(_E),yE={exports:{}};yE.exports,(function(e,t){(function(t,n){e.exports=n()})(qf,function(){return function(e,t){t.prototype.isLeapYear=function(){return this.$y%4==0&&this.$y%100!=0||this.$y%400==0}}})})(yE,yE.exports);var bE=yE.exports,xE=Jf(bE);Z.extend(vE),Z.extend(xE),Z.extend(hE);var SE=`HH:mm:ss`;function CE(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:``).replace(/\W?Y{2,4}|\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g,``).trim()}function wE(e,t,n,r,i){if(e===``||e===null)return Z();var a=e;if(/[w|W]/g.test(t)){Rd(a)||(a=Z(a).locale(r||`zh-cn`).format(t));var o=a.split(/[-/.\s]/)[0],s=a.split(/[-/.\s]/)[1],c=t.split(/[-/.\s]/)[1],l=Z(o,`YYYY`).locale(r||`zh-cn`).startOf(`year`);(l.day()>4||l.day()===0)&&(l=l.add(1,`week`));for(var u=Z(o,`YYYY`).locale(r||`zh-cn`).isoWeeksInYear(),d=0;d<=u;d+=1){var f=l.add(d,`week`);if(n===`start`&&(f=f.subtract(5,`day`)),f.format(c)===s){if(i){var p=(i||``).split(`:`).map(function(e){return Number(e)});f=f.hour(p[0]||0).minute(p[1]||0).second(p[2]||0)}return f}}}if(/Q/g.test(t)){Rd(a)||(a=Z(a).locale(r||`zh-cn`).format(t));for(var m=a.split(/[-/.\s]/)[0],h=a.split(/[-/.\s]/)[1],g=t.split(/[-/.\s]/)[1],_=Z(m,`YYYY`).startOf(`year`),v=0;v<4;v+=1){var y=_.add(v,`quarter`);if(y.format(g)===h){if(i){var b=(i||``).split(`:`).map(function(e){return Number(e)});return y.hour(b[0]||0).minute(b[1]||0).second(b[2]||0)}return y}}}var x=Z(a,t).isValid()?Z(a,t):Z(a);if(!x.isValid())return Vp.error(`DatePicker`,`Check whether the format、value format is valid. + value: '${e}', format: '${t}'`),Z();try{var S=CE(t||``);if(i&&(!S||S.trim()===``)&&i){var C=i.split(`:`).map(function(e){return Number(e)});return x.hour(C[0]||0).minute(C[1]||0).second(C[2]||0)}}catch(e){Vp.error(`DatePicker`,`set defaultTime error: ${e}`)}return x}function TE(e){var t=e.newDate,n=e.format,r=e.dayjsLocale,i=e.targetFormat,a=e.autoSwap,o=e.defaultTime;if(!t||!Array.isArray(t))return[];var s=t.map(function(e,t){return e&&wE(e,n,void 0,void 0,o?.[t]).locale(r)});return a&&s[0]&&s[1]&&s[0].toDate().getTime()>s[1].toDate().getTime()&&(s=[s[1],s[0]]),s.some(function(e){return e&&!e.isValid()})?(Vp.error(`DatePicker`,`Check whether the value、format、valueType format is valid. +format: '${n}' value: '${t}' valueType: '${i}'`),[]):i===`time-stamp`?s.map(function(e){return e&&e.toDate().getTime()}):i===`Date`?s.map(function(e){return e&&e.toDate()}):s.map(function(e){return e&&e.format(i||n)})}function EE(e){var t=e.newDate,n=e.format,r=e.targetFormat,i=e.dayjsLocale,a=e.defaultTime;if(!t)return``;var o=wE(t,n,void 0,void 0,a).locale(i);return o.isValid()?r===`time-stamp`?o.toDate().getTime():r===`Date`?o.toDate():o.format(r||n):(Vp.error(`DatePicker`,`Check whether the format、value format is valid. +format: '${n}' value: '${t}'`),``)}function DE(e,t){return Array.isArray(e)?e.every(function(e){return e===``||Z(e,t).isValid()||Z(e).isValid()}):e===``||Z(e,t).isValid()||Z(e).isValid()}function OE(e,t){var n=t.format,r=t.targetFormat,i=t.dayjsLocale,a=i===void 0?`zh-cn`:i,o=t.autoSwap,s=t.defaultTime;return Array.isArray(e)?TE({newDate:e,format:n,dayjsLocale:a,targetFormat:r,autoSwap:o,defaultTime:s}):EE({newDate:e,format:n,dayjsLocale:a,targetFormat:r,defaultTime:Array.isArray(s)?``:s})}function kE(e,t){if(e&&t){var n=e.split(`:`),r=t.split(`:`);return n.slice(0,r.length).join(`:`)}return e}function AE(e,t,n,r){var i=Array.isArray(e)?e:[e];return r=Array.isArray(r)?r:[r,r],i=i.map(function(e,i){if(e){var a=Z(e,typeof e==`string`?t:void 0).format(n);return!Z(a,n).isValid()&&r[i]?r[i]:a}return kE(r[i],n)}),i=i.length?i:r.map(function(e){return kE(e,n)}),Array.isArray(e)?i:i?.[0]}function jE(e){var t=e.mode,n=t===void 0?`date`:t,r=e.format,i=e.valueType,a=e.enableTimePicker;return n===`year`?{format:r||`YYYY`,valueType:i||r||`YYYY`,timeFormat:SE}:n===`month`?{format:r||`YYYY-MM`,valueType:i||r||`YYYY-MM`,timeFormat:SE}:n===`quarter`?{format:r||`YYYY-[Q]Q`,valueType:i||r||`YYYY-[Q]Q`,timeFormat:SE}:n===`week`?{format:r||`gggg-wo`,valueType:i||r||`gggg-wo`,timeFormat:SE}:n===`date`?{format:r||`YYYY-MM-DD${a?` HH:mm:ss`:``}`,valueType:i||r||`YYYY-MM-DD${a?` HH:mm:ss`:``}`,timeFormat:CE(r||`YYYY-MM-DD${a?` HH:mm:ss`:``}`)||SE}:(Vp.error(`DatePicker`,`Invalid mode: ${n}`),{})}function ME(e){var t=e.value,n=e.mode,r=n===void 0?`date`:n,i=e.format,a=e.timeFormat,o=a===void 0?`HH:mm:ss`:a,s=e.enableTimePicker,c={year:[Z().year(),Z().year()],month:[Z().month(),Z().month()],time:[Z().format(o),Z().format(o)]};return r===`year`?c.year[1]+=10:r===`month`||r===`quarter`?c.year[1]+=1:(r===`date`||r===`week`)&&(!s||Do(s)&&s?.mode===`switch`)&&(c.month[0]===11?(c.year[1]+=1,c.month[1]=0):c.month[1]+=1),!t||!Array.isArray(t)||!t.length?c:{year:t.map(function(e){return wE(e,i).year()}),month:t.map(function(e){return wE(e,i).month()}),time:t.map(function(e){return wE(e,i).format(o)})}}function NE(e){var t=Wt(e),n=t.value,r=t.modelValue,i=Y(Rm(n,r,e.defaultValue,e.onChange),2),a=i[0],o=i[1],s=U(function(){return jE({mode:e.mode,format:e.format,enableTimePicker:!e.multiple&&e.enableTimePicker})});e.enableTimePicker&&(CE(s.value.format)||console.error(`format: ${s.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`));var c=I(AE(e.multiple?a.value?.[0]:a.value,s.value.format,s.value.timeFormat,e.defaultTime)),l=I(wE(e.multiple?a.value?.[0]:a.value,s.value.format).month()),u=I(wE(e.multiple?a.value?.[0]:a.value,s.value.format).year()),d=I(OE(e.multiple?a.value?.[0]:a.value,{format:s.value.format}));return Tn(function(){if(!a.value){d.value=``;return}DE(a.value,s.value.format)&&(d.value=OE(a.value,{format:s.value.format}),c.value=AE(a.value,s.value.format,s.value.timeFormat,e.defaultTime))}),{year:u,month:l,value:a,time:c,cacheValue:d,onChange:o}}function PE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function FE(e){for(var t=1;t25){var a=i(this).startOf(t).add(1,t).date(r),o=i(this).endOf(e);if(a.isBefore(o))return 1}var s=i(this).startOf(t).date(r).startOf(e).subtract(1,`millisecond`),c=this.diff(s,e,!0);return c<0?i(this).startOf(`week`).week():Math.ceil(c)},a.weeks=function(e){return e===void 0&&(e=null),this.week(e)}}})})(GE,GE.exports);var KE=GE.exports,qE=Jf(KE),JE={exports:{}};JE.exports,(function(e,t){(function(t,n){e.exports=n()})(qf,function(){return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return t===1&&e===11?n+1:e===0&&t>=52?n-1:n}}})})(JE,JE.exports);var YE=JE.exports,XE=Jf(YE),ZE={exports:{}};ZE.exports,(function(e,t){(function(t,n){e.exports=n()})(qf,function(){return function(e,t,n){var r=t.prototype,i=function(e){return e&&(e.indexOf?e:e.s)},a=function(e,t,n,r,a){var o=e.name?e:e.$locale(),s=i(o[t]),c=i(o[n]),l=s||c.map(function(e){return e.slice(0,r)});if(!a)return l;var u=o.weekStart;return l.map(function(e,t){return l[(t+(u||0))%7]})},o=function(){return n.Ls[n.locale()]},s=function(e,t){return e.formats[t]||function(e){return e.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,n){return t||n.slice(1)})}(e.formats[t.toUpperCase()])},c=function(){var e=this;return{months:function(t){return t?t.format(`MMMM`):a(e,`months`)},monthsShort:function(t){return t?t.format(`MMM`):a(e,`monthsShort`,`months`,3)},firstDayOfWeek:function(){return e.$locale().weekStart||0},weekdays:function(t){return t?t.format(`dddd`):a(e,`weekdays`)},weekdaysMin:function(t){return t?t.format(`dd`):a(e,`weekdaysMin`,`weekdays`,2)},weekdaysShort:function(t){return t?t.format(`ddd`):a(e,`weekdaysShort`,`weekdays`,3)},longDateFormat:function(t){return s(e.$locale(),t)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return c.bind(this)()},n.localeData=function(){var e=o();return{firstDayOfWeek:function(){return e.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(t){return s(e,t)},meridiem:e.meridiem,ordinal:e.ordinal}},n.months=function(){return a(o(),`months`)},n.monthsShort=function(){return a(o(),`monthsShort`,`months`,3)},n.weekdays=function(e){return a(o(),`weekdays`,null,null,e)},n.weekdaysShort=function(e){return a(o(),`weekdaysShort`,`weekdays`,3,e)},n.weekdaysMin=function(e){return a(o(),`weekdaysMin`,`weekdays`,2,e)}}})})(ZE,ZE.exports);var QE=ZE.exports,$E=Jf(QE),eD={exports:{}};eD.exports,(function(e,t){(function(t,n){e.exports=n()})(qf,function(){var e=`month`,t=`quarter`;return function(n,r){var i=r.prototype;i.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=i.add;i.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var o=i.startOf;i.startOf=function(n,r){var i=this.$utils(),a=!!i.u(r)||r;if(i.p(n)===t){var s=this.quarter()-1;return a?this.month(3*s).startOf(e).startOf(`day`):this.month(3*s+2).endOf(e).endOf(`day`)}return o.bind(this)(n,r)}}})})(eD,eD.exports);var tD=eD.exports,nD=Jf(tD);function rD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function iD(e){for(var t=1;t2&&arguments[2]!==void 0?arguments[2]:`zh-cn`;return lD(e,t)&&Z(e).locale(n).week()===Z(t).locale(n).week()}function Upe(e,t){return lD(e,t)&&e.getDate()===t.getDate()}function uD(e,t){var n=e.getTime(),r=t.getTime();return nr)}function dD(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`date`,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`zh-cn`;return{isSameYear:cD,isSameQuarter:Vpe,isSameMonth:lD,isSameWeek:Hpe,isSameDate:Upe}[`isSame${aD(n)}`](e,t,r)}function fD(e,t,n){return t&&uD(e,t)===-1||n&&uD(e,n)===1}function pD(){var e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0)}function mD(e,t){return Z(e).subtract(t,`month`).toDate()}function hD(e,t){return Z(e).add(t,`month`).toDate()}function Wpe(e,t){for(var n=e.year,r=e.month,i=t.firstDayOfWeek,a=t.showWeekOfYear,o=a!==void 0&&a,s=t.disableDate,c=s===void 0?function(){return!1}:s,l=t.minDate,u=t.maxDate,d=t.dayjsLocale,f=d===void 0?`zh-cn`:d,p=t.cancelRangeSelectLimit,m=p!==void 0&&p,h=oD({year:n,month:r}),g=Bpe({year:n,month:r}),_=sD({year:n,month:r}),v=[],y=1,b=pD();y<=_;y++){var x=new Date(n,r,y);v.push({text:y,active:!1,value:x,disabled:q(c)&&c(x)||!m&&fD(x,l,u),now:dD(b,x),firstDayOfMonth:y===1,lastDayOfMonth:y===_,type:`current-month`,dayjsObj:Z(x).locale(f)})}if(h.getDay()!==i)for(h.setDate(0);v.unshift({text:h.getDate().toString(),active:!1,value:new Date(h),disabled:q(c)&&c(h)||!m&&fD(h,l,u),additional:!0,type:`prev-month`,dayjsObj:Z(h).locale(f)}),h.setDate(h.getDate()-1),h.getDay()!==Math.abs(i+6)%7;);for(var S=42;v.length0&&arguments[0]!==void 0?arguments[0]:``,t=e.match(/[ap]m/i)||[``],n=Y((e.match(/\d{1,2}(:\d{1,2})?(:\d{1,2})?([.:]\d{1,3})?/)||[`0:0:0:0`])[0].split(/[:.]/),4),r=n[0],i=r===void 0?0:r,a=n[1],o=a===void 0?0:a,s=n[2],c=s===void 0?0:s,l=n[3],u=l===void 0?0:l;return{hours:+i,minutes:+o,seconds:+c,milliseconds:+u,meridiem:t[0]}}function Ype(e){var t=e.value,n=e.disableDate,r=e.mode,i=e.format;if(!n)return!0;var a=r===`quarter`?`date`:r,o=!0;if(q(n))return!n(t);if(Array.isArray(n))return!n.map(function(e){return wE(e,i)}).some(function(e){return e.isSame(Z(t))});var s=n.from,c=n.to,l=n.before,u=n.after;if(s&&c){var d=Z(s).startOf(`day`),f=Z(c).endOf(`day`);return!Z(t).isBetween(d,f,a,`[]`)}var p=l?new Date(Z(l).startOf(`day`).format()):null,m=u?new Date(Z(u).endOf(`day`).format()):null;if(m&&p){var h=Z(new Date(p)),g=Z(new Date(m));o=Z(t).isBetween(h,g,a,`[]`)}else if(p){var _=Z(new Date(p));o=!Z(t).isBefore(_,a)}else if(m){var v=Z(new Date(m));o=!Z(t).isAfter(v,a)}return o}function Xpe(e,t){return t===`time-stamp`?new Date(e):Z(e,t).toDate()}function _D(e){if(!K(e))return{min:null,max:null};var t=Y(e,2),n=t[0],r=t[1],i=n==null?null:new Date(n),a=r==null?null:new Date(r);return i==null||a==null?{min:i,max:a}:i>a?{min:a,max:i}:{min:i,max:a}}function vD(e,t,n){if(K(e)){var r=_D(e),i=r.min,a=r.max;return!(i&&t===i.getFullYear()&&na.getMonth()||i&&ta.getFullYear())}if(q(e)){for(var o=e,s=new Date(t,n+1,0).getDate(),c=1;c<=s;c++)if(o(new Date(t,n,c)))return!0;return!1}return!0}function yD(e,t){if(K(e)){var n=_D(e),r=n.min,i=n.max;return!(r&&ti.getFullYear())}if(q(e)){for(var a=0;a<12;a++)if(vD(e,t,a))return!0;return!1}return!0}function bD(e,t){for(var n=t-9;n<=t;n++)if(yD(e,n))return!0;return!1}function Zpe(e,t,n,r){var i={date:1,week:1,month:12,quarter:12,year:120}[t]||0,a=new Date(n,r||0),o=new Date(a.getFullYear(),a.getMonth()-i),s=new Date(a.getFullYear(),a.getMonth()+i),c=_D(e),l=c.min,u=c.max,d=function(e,t){return e.getFullYear()===t.getFullYear()?e.getMonth()-t.getMonth():e.getFullYear()-t.getFullYear()},f=!1,p=!1;if(K(e))l&&(f=t===`date`||t===`week`?d(o,l)<0:o.getFullYear()0:s.getFullYear()>u.getFullYear()),t===`year`&&(l&&(f=o.getFullYear()u.getFullYear()));else if(q(e)){if(t===`date`||t===`week`)f=!vD(e,o.getFullYear(),o.getMonth()),p=!vD(e,s.getFullYear(),s.getMonth());else if(t===`month`||t===`quarter`)f=!yD(e,o.getFullYear()),p=!yD(e,s.getFullYear());else if(t===`year`){var m=o.getFullYear()-o.getFullYear()%10+9,h=s.getFullYear()-s.getFullYear()%10+9;f=!bD(e,m),p=!bD(e,h)}}return{prev:f,next:p}}var xD={allowInput:Boolean,borderless:Boolean,cell:{type:Function},clearable:Boolean,defaultTime:{type:String,default:`00:00:00`},disableDate:{type:[Object,Array,Function]},disableTime:{type:Function},disabled:{type:Boolean,default:void 0},enableTimePicker:Boolean,firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:void 0},inputProps:{type:Object},label:{type:[String,Function]},mode:{type:String,default:`date`,validator:function(e){return!e||[`year`,`quarter`,`month`,`week`,`date`].includes(e)}},multiple:Boolean,needConfirm:{type:Boolean,default:!0},panelActiveDate:{type:Object,default:void 0},placeholder:{type:[String,Array],default:void 0},popupProps:{type:Object},prefixIcon:{type:Function},presets:{type:[Object,Function]},presetsPlacement:{type:String,default:`bottom`,validator:function(e){return!e||[`left`,`top`,`right`,`bottom`].includes(e)}},range:{type:[Array,Function]},readonly:{type:Boolean,default:void 0},selectInputProps:{type:Object},size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},status:{type:String,default:`default`,validator:function(e){return!e||[`default`,`success`,`warning`,`error`].includes(e)}},suffixIcon:{type:Function},timePickerProps:{type:Object},tips:{type:[String,Function]},value:{type:[String,Number,Array,Date],default:void 0},modelValue:{type:[String,Number,Array,Date],default:void 0},defaultValue:{type:[String,Number,Array,Date],default:``},valueDisplay:{type:[String,Function]},valueType:{type:String,default:``},onBlur:Function,onChange:Function,onClear:Function,onConfirm:Function,onFocus:Function,onMonthChange:Function,onPick:Function,onPresetClick:Function,onYearChange:Function};function SD(e){var t=e.disableDate,n=e.format,r=e.mode,i=e.start,a=e.end;return{disableDate:function(e){return!Ype({disableDate:t,format:n,mode:r,value:e})},minDate:Do(t)&&`before`in t?new Date(Z(t.before).startOf(`day`).format()):i,maxDate:Do(t)&&`after`in t?new Date(Z(t.after).endOf(`day`).format()):a}}function CD(e){var t=Wt(e),n=t.value,r=t.modelValue,i=Y(Rm(n,r,e.defaultValue,e.onChange),2),a=i[0],o=i[1],s=U(function(){return Array.isArray(a.value)?a.value:[]}),c=U(function(){return jE({mode:e.mode,format:e.format,valueType:e.valueType,enableTimePicker:e.enableTimePicker})});e.enableTimePicker&&(CE(c.value.format)||console.error(`format: ${c.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`)),Array.isArray(a.value)?DE(a.value,c.value.format)||console.error(`value: ${a.value} is invalid dateTime! Check whether the value is consistent with format: ${c.value.format}`):console.error(`typeof value: ${a.value} must be Array!`);var l=I(!1),u=I(ME({value:s.value,mode:e.mode,format:c.value.format,timeFormat:c.value.timeFormat}).time),d=I(ME({value:s.value,mode:e.mode,format:c.value.format,enableTimePicker:e.enableTimePicker}).month),f=I(ME({value:s.value,mode:e.mode,format:c.value.format}).year),p=I(OE(s.value,{format:c.value.format}));return R(function(){return l.value},function(){f.value[1]s)};i=function(t){var n=r?!!r(t):!1;if(e.mode===`date`||e.mode===`week`){var i=t.getTime(),a=!u||i>=u.getTime(),o=!d||i<=d.getTime();return n||!(a&&o)}if(e.mode===`month`){var s=new Date(t.getFullYear(),t.getMonth(),1),c=new Date(t.getFullYear(),t.getMonth()+1,0);c.setHours(23,59,59,999);var l=f(s,c,u,d);return n||!l}if(e.mode===`quarter`){var p=Math.floor(t.getMonth()/3)*3,m=new Date(t.getFullYear(),p,1),h=new Date(t.getFullYear(),p+3,0);h.setHours(23,59,59,999);var g=f(m,h,u,d);return n||!g}if(e.mode===`year`){var _=new Date(t.getFullYear(),0,1),v=new Date(t.getFullYear(),11,31);v.setHours(23,59,59,999);var y=f(_,v,u,d);return n||!y}return n}}else if(q(e.range)){var p=e.range;i=function(t){var n=r?!!r(t):!1;if(e.mode===`date`||e.mode===`week`){var i=!p(t);return n||i}if(e.mode===`month`){var a=vD(e.range,t.getFullYear(),t.getMonth());return n||!a}if(e.mode===`quarter`){for(var o=Math.floor(t.getMonth()/3)*3,s=!1,c=o;cMath.floor(o/10)*10+9:n>o}if(q(e.range)){if(e.mode===`year`){for(var s=n-10;s>=n-50;s-=10)if(i(s))return!0;return!1}for(var c=n-1;c>n-10;c--)if(r(c))return!0;return!1}return!0},canLoadMoreBottom:function(n){var a=t.value.max;if(K(e.range)){if(!a)return!0;var o=a.getFullYear();return e.mode===`year`?n=0})?.value||e.year}),_=U(function(){return o.value.months.map(function(t,n){return{label:t,value:n,disabled:!c(e.year,n)}})}),v=U(function(){var e=m.value;if(!e.length)return!1;var t=e[0].value;return f(t)}),y=U(function(){var e=m.value;if(!e.length)return!1;var t=e[e.length-1].value;return p(t)});function b(t){var n=[];if(e.mode===`year`)for(var r=t%10,i=t-r-100,a=t-r+100,o=i;o<=a;o+=10){var s=o+9;u(s)&&n.push({label:`${o} - ${s}`,value:s,disabled:!1})}else{l(t)&&n.push({label:`${t}`,value:t,disabled:!1});for(var c=1;c<=10;c++)l(t+c)&&n.push({label:`${t+c}`,value:t+c,disabled:!1}),l(t-c)&&n.unshift({label:`${t-c}`,value:t-c,disabled:!1})}return n}function x(t,n){var r=[];if(e.mode===`year`){var i=t%10;if(n===`add`)for(var a=t-i+10;a<=t-i+50;a+=10){var o=a+9;u(o)&&r.push({label:`${a} - ${o}`,value:o,disabled:!1})}else for(var s=t-i-1;s>t-i-50;s-=10)u(s)&&r.unshift({label:`${s-9} - ${s}`,value:s,disabled:!1})}else if(n===`add`)for(var c=t+1;c<=t+10;c++)l(c)&&r.push({label:`${c}`,value:c,disabled:!1});else for(var d=t-1;d>t-10;d--)l(d)&&r.unshift({label:`${d}`,value:d,disabled:!1});return r}var S=U(function(){return{year:{prev:o.value.preDecade,current:o.value.now,next:o.value.nextDecade},month:{prev:o.value.preYear,current:o.value.now,next:o.value.nextYear},date:{prev:o.value.preMonth,current:o.value.now,next:o.value.nextMonth},quarter:{prev:o.value.preYear,current:o.value.now,next:o.value.nextYear},week:{prev:o.value.preMonth,current:o.value.now,next:o.value.nextMonth}}});function C(e){var t=e.e;t.target.scrollTop===0?v.value&&w(t):t.target.scrollTop===t.target.scrollHeight-t.target.clientHeight&&y.value&&T(t)}function w(e){var t;e==null||(t=e.stopPropagation)==null||t.call(e);var n=m.value[0].value,r=x(n,`reduce`);m.value=[].concat(W(r),W(m.value))}function T(e){var t;e==null||(t=e.stopPropagation)==null||t.call(e);var n=m.value.slice(-1)[0].value,r=x(n,`add`);m.value=[].concat(W(m.value),W(r))}return R(function(){return e.mode},function(){m.value=b(e.year)}),function(){return V(`div`,{class:a.value},[V(`div`,{class:`${a.value}-controller`},[h.value&&V(bw,{class:`${a.value}-controller-month`,value:e.month,options:_.value,onChange:function(t){var n;(n=e.onMonthChange)==null||n.call(e,t)},popupProps:{attach:function(e){return e.parentNode},overlayClassName:`${a.value}-controller-month-popup`}},null),V(bw,{class:`${a.value}-controller-year`,value:e.mode===`year`?g.value:e.year,options:m.value,onChange:function(t){var n;(n=e.onYearChange)==null||n.call(e,t)},popupProps:{onScroll:C,attach:function(e){return e.parentNode},overlayClassName:`${a.value}-controller-year-popup`},panelTopContent:function(){return v.value&&V(`div`,{class:`${i.value}-select-option`,onClick:w},[zi(`...`)])},panelBottomContent:function(){return y.value&&V(`div`,{class:`${i.value}-select-option`,onClick:T},[zi(`...`)])}},null)]),V(Pw,{tips:S.value[e.mode],size:`small`,onChange:e.onJumperClick,disabled:d.value},null)])}}}),tme=z({name:`TDatePickerCell`,props:{time:String,text:[String,Number],value:Date,active:Boolean,highlight:Boolean,disabled:Boolean,startOfRange:Boolean,endOfRange:Boolean,hoverHighlight:Boolean,hoverStartOfRange:Boolean,hoverEndOfRange:Boolean,additional:Boolean,now:Boolean,firstDayOfMonth:Boolean,lastDayOfMonth:Boolean,onClick:Function,onMouseEnter:Function,cell:Function,dayjsObj:Mp.Dayjs},setup:function(e){var t=Q(`date-picker__cell`),n=pm(),r=U(function(){var n;return[t.value,(n={},G(G(G(G(G(G(G(G(G(G(n,`${t.value}--now`,e.now),`${t.value}--active`,e.active),`${t.value}--disabled`,e.disabled),`${t.value}--highlight`,e.highlight),`${t.value}--hover-highlight`,e.hoverHighlight),`${t.value}--active-start`,e.startOfRange),`${t.value}--active-end`,e.endOfRange),`${t.value}--hover-start`,e.hoverStartOfRange),`${t.value}--hover-end`,e.hoverEndOfRange),`${t.value}--additional`,e.additional),G(G(n,`${t.value}--first-day-of-month`,e.firstDayOfMonth),`${t.value}--last-day-of-month`,e.lastDayOfMonth))]});function i(t){var n;if(!e.disabled){if(e.time){var r=gD(e.time),i=r.hours,a=r.minutes,o=r.seconds,s=r.milliseconds,c=r.meridiem,l=i;/am/i.test(c)&&l===12&&(l-=12),/pm/i.test(c)&&l<12&&(l+=12),e.value.setHours(l),e.value.setMinutes(a),e.value.setSeconds(o),e.value.setMilliseconds(s)}(n=e.onClick)==null||n.call(e,e.value,{e:t})}}function a(){var t;if(!e.disabled){if(e.time){var n=gD(e.time),r=n.hours,i=n.minutes,a=n.seconds,o=n.milliseconds,s=n.meridiem,c=r;/am/i.test(s)&&c===12&&(c-=12),/pm/i.test(s)&&c<12&&(c+=12),e.value.setHours(c),e.value.setMinutes(i),e.value.setSeconds(a),e.value.setMilliseconds(o)}(t=e.onMouseEnter)==null||t.call(e,e.value)}}return function(){return V(`td`,{class:r.value,onClick:i,onMouseenter:a},[V(`div`,{class:`${t.value}-inner`},[n(`cell`,{params:{value:e.value}})??e.text])])}}});function OD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nme(e){for(var t=1;t=f&&_<=m&&v>p&&v1}).length;return o.value?Z(o.value,s.value):e?Z().hour(0).minute(0).second(0):Z()});R(function(){return m.value},function(){m.value&&o.value&&S(!0)}),R(function(){return l.value},function(){l.value&&S(!0)}),mr(function(){u.value=lme(s.value)});var h=function(){var e=f.value?.querySelector(`div`);return e?{offsetHeight:parseFloat(getComputedStyle(e).height),margin:parseFloat(getComputedStyle(e).marginTop)}:{offsetHeight:0,margin:0}},g=function(t,n){var r=VD.indexOf(t);if(r!==-1){var i,a=[m.value.hour(),m.value.minute(),m.value.second(),m.value.millisecond()];return a[r]=Number(n),!((i=e.disableTime)!=null&&(i=i.call.apply(i,[e].concat(a,[{partial:c.value||`start`}])))!=null&&(i=i[t])!=null&&i.includes(Number(n)))}return!0},_=function(t){var n=0;if(VD.includes(t)){var r=VD.indexOf(t),i=a.value[r]||1;n=t===MD.hour?ND.test(s.value)?11:23:t===MD.milliSecond?999:59;var o=zf(0,n+1,Number(i)).map(function(e){return Lf(String(e),2,`0`)})||[];return e.hideDisabledTime&&e.disableTime?o.filter(function(n){var i,a=[m.value.hour(),m.value.minute(),m.value.second(),m.value.millisecond()];return a[r]=Number(n),!((i=e.disableTime)!=null&&(i=i.call.apply(i,[e].concat(a,[{partial:c.value||`start`}])))!=null&&(i=i[t])!=null&&i.includes(Number(n)))}):o}return AD},v=function(e,t){e===MD.hour&&/[h]{1}/.test(s.value)&&(t%=12);var n=_(e).indexOf(Lf(String(t),2,`0`)),r=h(),i=r.offsetHeight+r.margin;return Math.abs(Math.max(0,n)*i)},y=function(t,n,r){var i,c,l;if(e.isShowPanel){var d=(p[n]?.scrollTop||0)+ume.top,f=h(),y=f.offsetHeight+f.margin,b=Math.abs(Math.round(d/y+.5)),x=AD[Math.min(b-1,1)].toLowerCase();if(Number.isNaN(b)&&(b=1),VD.includes(t)){var S=59;t===MD.hour?S=/[h]{1}/.test(s.value)?11:23:t===MD.milliSecond&&(S=999);var C=VD.indexOf(t),w=zf(0,S+1,Number(a.value[C])||1);c=cme(w,Number(_(t)[Math.min(b-1,S+1,w.length-1)]),Number(a.value[C])||1),Number.isNaN(c)&&(c=w[w.length-1]),t===MD.hour&&u.value.includes(MD.meridiem)&&m.value.hour()>=12&&(c=Number(c)+12)}else c=x;var T=v(t,c);if(!(!Z(m.value).isValid()||o.value&&!Z(o.value,s.value,!0).isValid())){if(VD.includes(t)){var E;l=g(t,c)?(E=m.value)[t]?.call(E,c).format(s.value):m.value.format(s.value)}else{var D=m.value.hour();l=x===`am`&&D>=12?m.value.hour(D-12).format(s.value):x===`pm`&&D<12?m.value.hour(D+12).format(s.value):m.value.format(s.value)}if(l!==o.value&&((i=e.onChange)==null||i.call(e,l,r)),T!==d){var O,k=p[u.value.indexOf(t)];if(!k||k.scrollTop===T)return;(O=k.scrollTo)==null||O.call(k,{top:T,behavior:`smooth`})}}}},b=function(e,t,n){var r,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,a=v(e,t),o=p[n];!o||o.scrollTop===a||!g(e,t)||(r=o.scrollTo)==null||r.call(o,{top:a,behavior:i})},x=function(t,n,r,i){if(g(t,n))if(VD.includes(t))t===MD.hour&&m.value.format(`a`)===`pm`&&u.value.includes(MD.meridiem)&&(n=Number(n)+12),b(t,n,r,`smooth`);else{var a=m.value.hour();if(n===`am`&&a>=12){var o;(o=e.onChange)==null||o.call(e,m.value.hour(a-12).format(s.value),i)}else if(n===`pm`&&a<12){var c;(c=e.onChange)==null||c.call(e,m.value.hour(a+12).format(s.value),i)}}},S=function(){var t=arguments.length>0&&arguments[0]!==void 0&&arguments[0],n=o.value&&!t?`smooth`:`auto`,r=!!a.value.filter(function(e){return Number(e)>1}).length;dn(function(){u.value.forEach(function(e,t){if(!r||r&&o.value){var i;b(e,VD.includes(e)?(i=m.value)[e]?.call(i):m.value.format(`a`),t,n)}else b(e,_(e)?.[0],t,n)})}),e.resetTriggerScroll()},C=function(e,t){var n,r;return e===MD.meridiem?m.value.format(`a`)===t:(r=(n=m.value)[e]?.call(n),e===MD.hour&&/[h]{1}/.test(s.value)&&(r%=12),r===Number(t))};return function(){var e,i;return V(`div`,{class:`${n.value}-body`,ref:d},[V(`div`,{class:`${n.value}-body-active-mask`,ref:f},[(e=u.value).map?.call(e,function(e,t){return V(`div`,{key:`${e}_${t}`},null)})]),(i=u.value).map?.call(i,function(e,i){return V(`ul`,{key:`${e}_${i}`,ref:function(e){return p[i]=e},class:`${n.value}-body-scroll`,onScroll:md(function(t){return y(e,i,t)},50)},[_(e).map(function(a){return V(`li`,{key:a,class:[`${n.value}-body-scroll-item`,G(G({},r.value.disabled,!g(e,a)),r.value.current,C(e,a))],onClick:function(t){return x(e,a,i,t)}},[VD.includes(e)?ND.test(s.value)&&e===MD.hour&&a===`00`?`12`:a:t.value[a===`am`?`anteMeridiem`:`postMeridiem`]])})])})])}}});function HD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function UD(e){for(var t=1;t1}).length}),u=U(function(){l.value;var t=Z(e.value,e.format);return e.value&&t.isValid()?t.format(e.format):Z().hour(0).minute(0).second(0).format(e.format)}),d=function(){dn(function(){s.value=!0})},f=function(){s.value=!1},p=function(t){var n=typeof t==`function`?t():t;if(typeof e.activeIndex==`number`)if(Array.isArray(n)){var r;(r=e.onChange)==null||r.call(e,n[e.activeIndex])}else Vp.error(`TimePicker`,`preset: ${e.presets} 预设值必须是数组!`);else{var i;(i=e.onChange)==null||i.call(e,n)}},m=function(){return sf(e.presets)?l.value?null:V(ph,{theme:`primary`,variant:`text`,size:`small`,onClick:function(){return e.onChange?.call(e,Z().format(e.format))}},{default:function(){return[t.value.now]}}):Object.keys(e.presets||[]).map(function(t){return V(ph,{key:t,theme:`primary`,size:`small`,variant:`text`,onClick:function(){return p(e.presets[t])}},fme(t)?t:{default:function(){return[t]}})})};return mr(function(){d()}),R(function(){return o.value},function(){d()}),function(){return V(`div`,{class:n.value},[V(`div`,{class:`${n.value}-section-body`},[V(dme,H(e,{ref:c,format:e.format||`HH:mm:ss`,steps:e.steps||ime,value:Z(e.value,e.format).isValid()?e.value:u.value,triggerScroll:s.value,onChange:e.onChange,resetTriggerScroll:f,isShowPanel:e.isShowPanel}),null)]),a.value?V(`div`,{class:`${n.value}-section-footer`},[V(ph,{theme:`primary`,variant:`base`,disabled:!e.value,onClick:function(t){return e.handleConfirmClick?.call(e,t,u.value)},size:`small`},{default:function(){return[t.value.confirm]}}),m()]):null])}}});function GD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function KD(e){for(var t=1;t=i[1]&&(r?i[0]=i[1]-1:(i[0]=i[1],a[0]>=a[1]&&(a[0]=a[1]-1,a[0]===-1&&(a[0]=11,i=[i[0]-1,i[1]])))),{nextYear:i,nextMonth:a}}function iO(e,t,n){if(af(e))return null;var r=wE(e,t);if(n){var i=Y(n,4),a=i[0],o=a===void 0?0:a,s=i[1],c=s===void 0?0:s,l=i[2],u=l===void 0?0:l,d=i[3],f=d===void 0?0:d;r=r.hour(o).minute(c).second(u).millisecond(f)}return r.toDate()}var aO={prev:`arrow-previous`,next:`arrow-next`};function oO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Sme(e){for(var t=1;t0:!!n;return V(`div`,{class:s.value},[i?V(`div`,{class:r.value},[n]):null,e.enableTimePicker&&e.needConfirm&&V(mh,{disabled:!e.selectedValue,size:`small`,theme:`primary`,onClick:function(t){return e.onConfirmClick?.call(e,{e:t})}},cO(t=a(o.value.confirm))?t:{default:function(){return[t]}})])}}}),lO=z({name:`TExtraContent`,props:{presets:Object,enableTimePicker:Boolean,presetsPlacement:String,needConfirm:Boolean,onPresetClick:Function,onConfirmClick:Function,selectedValue:[String,Number,Array,Date]},setup:function(e,t){var n=t.slots,r=U(function(){return e.enableTimePicker&&e.needConfirm||e.presets||!!n.presets});return function(){return r.value?V(Cme,{presets:e.presets,onPresetClick:e.onPresetClick,enableTimePicker:e.enableTimePicker,onConfirmClick:e.onConfirmClick,presetsPlacement:e.presetsPlacement,selectedValue:e.selectedValue,needConfirm:e.needConfirm},{presets:n.presets}):null}}});function uO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wme(e){for(var t=1;t=o[1]&&(--o[0],o[0]===-1))&&(o[0]=11,u.value=[u.value?.[0]-1,u.value?.[1]])),d.value=o,(r=e.onMonthChange)==null||r.call(e,{partial:i,month:o[a],date:l.value.map(function(e){return Z(e).toDate()}),trigger:`month-select`})}var M=U(function(){return{hoverValue:h.value?a.value:[],value:x.value?p.value:l.value,isFirstValueSelected:g.value,activeIndex:m.value,year:u.value,month:d.value,format:b.value.format,mode:e.mode,presets:e.presets,time:f.value,disableDate:e.disableDate,disabled:v.value,disableTime:e.disableTime,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,popupVisible:o.value,range:e.range,panelPreselection:e.panelPreselection,cancelRangeSelectLimit:e.cancelRangeSelectLimit,needConfirm:e.needConfirm,onCellClick:w,onCellMouseEnter:S,onCellMouseLeave:C,onJumperClick:T,onConfirmClick:O,onPresetClick:k,onYearChange:A,onMonthChange:j,onTimePickerChange:E,cell:e.cell}});return function(){return V(`div`,{class:r.value},[V($D,{readonly:y.value,disabled:v.value,label:e.label,status:e.status,tips:e.tips||n.tips,inputValue:a.value,popupProps:c.value,rangeInputProps:s.value,popupVisible:o.value,panel:function(){return V(gO,M.value,n)}},null)])}}}),Ame={defaultTime:{type:Array,default:function(){return[`00:00:00`,`23:59:59`]}},onCellClick:Function,onChange:Function,onConfirm:Function,onMonthChange:Function,onPanelClick:Function,onPresetClick:Function,onTimeChange:Function,onYearChange:Function};function _O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jme(e){for(var t=1;t=l[1]&&(--l[0],l[0]===-1))&&(l[0]=11,r.value=[r.value?.[0]-1,r.value?.[1]])),i.value=l,(o=e.onMonthChange)==null||o.call(e,{partial:s,month:l[c],date:n.value.map(function(e){return Z(e).toDate()}),trigger:`month-select`})}var C=U(function(){return{hoverValue:d.value?f.value:[],value:u.value?o.value:n.value,activeIndex:p.value,year:r.value,month:i.value,mode:e.mode,format:l.value.format,presets:e.presets,time:a.value,disableDate:e.disableDate,range:e.range,firstDayOfWeek:e.firstDayOfWeek,timePickerProps:e.timePickerProps,enableTimePicker:e.enableTimePicker,presetsPlacement:e.presetsPlacement,panelPreselection:e.panelPreselection,popupVisible:!0,panelClick:e.onPanelClick,onCellClick:g,onCellMouseEnter:m,onCellMouseLeave:h,onJumperClick:_,onConfirmClick:y,onPresetClick:b,onYearChange:x,onMonthChange:S,onTimePickerChange:v}});return function(){return V(gO,C.value,null)}}}),Nme=X(Tme),Pme=X(Ome),Fme=X(kme),Ime=X(Mme),Lme={colon:Boolean,data:{type:Object,default:function(){return{}}},disabled:{type:Boolean,default:void 0},errorMessage:{type:Object},id:{type:String,default:void 0},labelAlign:{type:String,default:`right`,validator:function(e){return!e||[`left`,`right`,`top`].includes(e)}},labelWidth:{type:[String,Number],default:`100px`},layout:{type:String,default:`vertical`,validator:function(e){return!e||[`vertical`,`inline`].includes(e)}},preventSubmitDefault:{type:Boolean,default:!0},readonly:{type:Boolean,default:void 0},requiredMark:{type:Boolean,default:void 0},requiredMarkPosition:{type:String,validator:function(e){return!e||[`left`,`right`].includes(e)}},resetType:{type:String,default:`empty`,validator:function(e){return!e||[`empty`,`initial`].includes(e)}},rules:{type:Object},scrollToFirstError:{type:String,validator:function(e){return!e||[``,`smooth`,`auto`].includes(e)}},showErrorMessage:{type:Boolean,default:!0},statusIcon:{type:[Boolean,Function],default:void 0},submitWithWarningMessage:Boolean,onReset:Function,onSubmit:Function,onValidate:Function},vO={exports:{}},yO={exports:{}};yO.exports,(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var n in t)e[n]===void 0&&(e[n]=t[n]);return e}e.exports=t.default,e.exports.default=t.default})(yO,yO.exports);var bO=yO.exports;vO.exports,(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=m;var n=r(bO);function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return s(e)||o(e,t)||l(e,t)||a()}function a(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function o(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function s(e){if(Array.isArray(e))return e}function c(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=l(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function l(e,t){if(e){if(typeof e==`string`)return u(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=r&&(a===void 0||o<=a)}e.exports=t.default,e.exports.default=t.default})(EO,EO.exports);var Bme=EO.exports,DO={exports:{}};DO.exports,(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var n=i(CO),r=i(bO);function i(e){return e&&e.__esModule?e:{default:e}}var a={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1,ignore_max_length:!1};function o(e,t){(0,n.default)(e),t=(0,r.default)(t,a),t.allow_trailing_dot&&e[e.length-1]===`.`&&(e=e.substring(0,e.length-1)),t.allow_wildcard===!0&&e.indexOf(`*.`)===0&&(e=e.substring(2));var i=e.split(`.`),o=i[i.length-1];return t.require_tld&&(i.length<2||!t.allow_numeric_tld&&!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(o)||/\s/.test(o))||!t.allow_numeric_tld&&/^\d+$/.test(o)?!1:i.every(function(e){return!(e.length>63&&!t.ignore_max_length||!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(e)||/[\uff01-\uff5e]/.test(e)||/^-|-$/.test(e)||!t.allow_underscores&&/_/.test(e))})}e.exports=t.default,e.exports.default=t.default})(DO,DO.exports);var OO=DO.exports,kO={exports:{}};kO.exports,(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=u;var n=r(CO);function r(e){return e&&e.__esModule?e:{default:e}}function i(e){"@babel/helpers - typeof";return i=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},i(e)}var a=`(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])`,o=`(${a}[.]){3}${a}`,s=RegExp(`^${o}\$`),c=`(?:[0-9a-fA-F]{1,4})`,l=RegExp(`^((?:${c}:){7}(?:${c}|:)|(?:${c}:){6}(?:${o}|:${c}|:)|(?:${c}:){5}(?::${o}|(:${c}){1,2}|:)|(?:${c}:){4}(?:(:${c}){0,1}:${o}|(:${c}){1,3}|:)|(?:${c}:){3}(?:(:${c}){0,2}:${o}|(:${c}){1,4}|:)|(?:${c}:){2}(?:(:${c}){0,3}:${o}|(:${c}){1,5}|:)|(?:${c}:){1}(?:(:${c}){0,4}:${o}|(:${c}){1,6}|:)|(?::((?::${c}){0,5}:${o}|(?::${c}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?\$`);function u(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};(0,n.default)(e);var r=(i(t)===`object`?t.version:arguments[1])||``;return r?r.toString()===`4`?s.test(e):r.toString()===`6`&&l.test(e):u(e,{version:4})||u(e,{version:6})}e.exports=t.default,e.exports.default=t.default})(kO,kO.exports);var AO=kO.exports;xO.exports,(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=v;var n=c(CO),r=c(TO),i=c(Bme),a=c(OO),o=c(AO),s=c(bO);function c(e){return e&&e.__esModule?e:{default:e}}var l={allow_display_name:!1,allow_underscores:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:``,ignore_max_length:!1,host_blacklist:[],host_whitelist:[]},u=/^([^\x00-\x1F\x7F-\x9F\cX]+)]/.test(t)&&(t===e||t.split(`"`).length!==t.split(`\\"`).length))}function v(e,t){if((0,n.default)(e),t=(0,s.default)(t,l),t.require_display_name||t.allow_display_name){var c=e.match(u);if(c){var v=c[1];if(e=e.replace(v,``).replace(/(^<|>$)/g,``),v.endsWith(` `)&&(v=v.slice(0,-1)),!_(v))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>g)return!1;var y=e.split(`@`),b=y.pop(),x=b.toLowerCase();if(t.host_blacklist.length>0&&(0,r.default)(x,t.host_blacklist)||t.host_whitelist.length>0&&!(0,r.default)(x,t.host_whitelist))return!1;var S=y.join(`@`);if(t.domain_specific_validation&&(x===`gmail.com`||x===`googlemail.com`)){S=S.toLowerCase();var C=S.split(`+`)[0];if(!(0,i.default)(C.replace(/\./g,``),{min:6,max:30}))return!1;for(var w=C.split(`.`),T=0;Te.length)&&(t=e.length);for(var n=0,r=Array(t);n]/.test(e)||e.indexOf(`mailto:`)===0||(t=(0,s.default)(t,h),t.validate_length&&e.length>t.max_allowed_length)||!t.allow_fragments&&(0,i.default)(e,`#`)||!t.allow_query_components&&((0,i.default)(e,`?`)||(0,i.default)(e,`&`)))return!1;var c,u,d,f,p,m,_=e.split(`#`),v;e=_.shift(),_=e.split(`?`),e=_.shift();var y=e.match(/^([a-z][a-z0-9+\-.]*):/i),b=!1,x=function(n){return b=!0,c=n.toLowerCase(),t.require_valid_protocol&&t.protocols.indexOf(c)===-1?!1:e.substring(y[0].length)};if(y){var S=y[1],C=e.substring(y[0].length);if(C.slice(0,2)!==`//`){var w=C.indexOf(`/`),T=w===-1?C:C.substring(0,w),E=T.indexOf(`@`);if(E!==-1){var D=T.substring(0,E);if(/^[a-zA-Z0-9\-_.%:]*$/.test(D)){if(t.require_protocol)return!1}else if(e=x(S),e===!1)return!1}else if(/^[0-9]/.test(C)){if(t.require_protocol)return!1}else if(e=x(S),e===!1)return!1}else if(e=x(S),e===!1)return!1}else if(t.require_protocol)return!1;if(e.slice(0,2)===`//`){if(!b&&!t.allow_protocol_relative_urls)return!1;e=e.slice(2)}if(e===``)return!1;if(_=e.split(`/`),e=_.shift(),e===``&&!t.require_host)return!0;if(_=e.split(`@`),_.length>1){if(t.disallow_auth||_[0]===``||(u=_.shift(),u.indexOf(`:`)>=0&&u.split(`:`).length>2))return!1;var O=l(u.split(`:`),2),k=O[0],A=O[1];if(k===``&&A===``)return!1}f=_.join(`@`),m=null,v=null;var j=f.match(g);if(j?(d=``,v=j[1],m=j[2]||null):(_=f.split(`:`),d=_.shift(),_.length&&(m=_.join(`:`))),m!==null&&m.length>0){if(p=parseInt(m,10),!/^[0-9]+$/.test(m)||p<=0||p>65535)return!1}else if(t.require_port)return!1;return t.host_whitelist?(0,r.default)(d,t.host_whitelist):d===``&&!t.require_host||!(!(0,o.default)(d)&&!(0,a.default)(d,t)&&(!v||!(0,o.default)(v,6))||(d||=v,t.host_blacklist&&(0,r.default)(d,t.host_blacklist)))}e.exports=t.default,e.exports.default=t.default})(jO,jO.exports);var Wme=jO.exports,Gme=Jf(Wme);function NO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function PO(e){for(var t=1;t=t:Qm(e)>=t},len:function(e,t){return Qm(String(e))===t},number:function(e){return nf(e)},enum:function(e,t){return t.includes(e)},idcard:function(e){return/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/i.test(e)},telnumber:function(e){return/^1[3-9]\d{9}$/.test(e)},pattern:function(e,t){return(typeof t==`string`?new RegExp(t):t).test(String(e))},validator:function(e,t,n){return t(e,n)}};function qme(e,t,n){return IO.apply(this,arguments)}function IO(){return IO=ly(Ey.mark(function e(t,n,r){var i,a,o,s,c,l,u;return Ey.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i={result:!0},a=Object.keys(n),c=0;case 1:if(!(c0;return t??n}),m=U(function(){return u?.requiredMarkPosition??a.value.requiredMarkPosition}),h=U(function(){return n.label||e.label}),g=U(function(){return!!(u!=null&&u.colon&&h.value)}),_=Q(`form__label`),v=U(function(){return af(e.labelAlign)?u?.labelAlign:e.labelAlign}),y=U(function(){return af(e.labelWidth)?u?.labelWidth:e.labelWidth}),b=U(function(){return[i.value.label,G(G(G(G(G({},`${_.value}--required`,p.value),`${_.value}--required-right`,p.value&&m.value===`right`),`${_.value}--top`,h.value&&(v.value===`top`||!y.value)),`${_.value}--left`,v.value===`left`&&y.value),`${_.value}--right`,v.value===`right`&&y.value)]}),x=U(function(){return`${d.value}-is-${e.status||`default`} ${e.status===`success`?i.value.successBorder:``}`}),S=function(){if(Number(y.value)!==0){var t={};return y.value&&v.value!==`top`&&(t=nf(y.value)?{width:`${y.value}px`}:{width:y.value}),V(`div`,{class:b.value,style:t},[V(`label`,{for:e.for||null},[r(`label`)]),g.value&&a.value.colonText])}},C=function(){var e=function(e){return V(`span`,{class:i.value.status},[V(e,null,null)])},t=O.value;if(A.value===LS.SUCCESS)return e(s);if(t!=null&&t[0]){var n=t[0].type||`error`,r={error:c,warning:l,success:s}[n];return e(r)}return null},w=function(){if(e.statusIcon!==!1){var t=r(`statusIcon`,{defaultNode:C()});if(t)return V(`span`,{class:i.value.status},[t]);if(t!==!1&&(t=u?.renderContent(`statusIcon`,{defaultNode:C(),params:e}),t))return t}},T=U(function(){if(!de.value)return``;if(A.value===LS.SUCCESS)return e.successBorder?[i.value.success,i.value.successBorder].join(` `):i.value.success;if(O.value.length){var t=O.value[0].type||`error`;return e.status?x.value:t===`error`?i.value.error:i.value.warning}}),E=U(function(){return[i.value.controls,T.value]}),D=U(function(){var e={};return y.value&&v.value!==`top`&&(e=nf(y.value)?{marginLeft:`${y.value}px`}:{marginLeft:y.value}),e}),O=I([]),k=I([]),A=I(LS.TO_BE_VALIDATED),j=I(!1),M=I(!1),ee=function(){M.value=!1,O.value=[],k.value=[],A.value=LS.TO_BE_VALIDATED},N=function(){var t=Object.prototype.toString.call(J(u?.data,e.name)),n;return t===`[object String]`&&(n=``),t===`[object Array]`&&(n=[]),t===`[object Object]`&&(n={}),n},P=function(){var t=ly(Ey.mark(function t(){var n,r=arguments;return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.length>0&&r[0]!==void 0?r[0]:u?.resetType,e.name){t.next=1;break}return t.abrupt(`return`);case 1:return n===`empty`?Bf(u?.data,e.name,N()):n===`initial`&&Bf(u?.data,e.name,se.value),t.next=2,dn();case 2:j.value?M.value=!0:ee();case 3:case`end`:return t.stop()}},t)}));return function(){return t.apply(this,arguments)}}(),F=U(function(){return u?.errorMessage??a.value.errorMessage}),te=U(function(){var t;return(t=e.rules)!=null&&t.length?e.rules:e.name&&J(u?.rules,e.name)||[]}),ne=function(){var t=ly(Ey.mark(function t(n){var r,i;return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(i={successList:[],errorList:[],rules:[],resultList:[],allowSetValue:!1},i.rules=n===`all`?te.value:te.value.filter(function(e){return(e.trigger||`change`)===n}),!(te.value.length&&!((r=i.rules)!=null&&r.length))){t.next=1;break}return t.abrupt(`return`,i);case 1:return i.allowSetValue=!0,t.next=2,LO(oe.value,i.rules,{formData:u?.data,name:e.name});case 2:return i.resultList=t.sent,i.errorList=i.resultList.filter(function(e){return e.result!==!0}).map(function(t){return Object.keys(t).forEach(function(n){if(!t.message&&F.value[n]){var r=Rd(e.label)?e.label:e.name;t.message=Xme(F.value[n],{name:r,validate:t[n]})}}),t}),i.successList=i.resultList.filter(function(e){return e.result===!0&&e.message&&e.type===`success`}),t.abrupt(`return`,i);case 3:case`end`:return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),re=function(){var t=ly(Ey.mark(function t(n,r){var i,a,o,s,c,l;return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return j.value=!0,ue.value=r,t.next=1,ne(n);case 1:return i=t.sent,a=i.successList,o=i.errorList,s=i.rules,c=i.resultList,l=i.allowSetValue,l&&(k.value=a,O.value=o),s.length&&(A.value=o.length?LS.FAIL:LS.SUCCESS),M.value&&ee(),j.value=!1,t.abrupt(`return`,G({},e.name,o.length===0||c));case 2:case`end`:return t.stop()}},t)}));return function(e,n){return t.apply(this,arguments)}}(),ie=function(){var t=ly(Ey.mark(function t(n){var r,i,a;return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=1,ne(n);case 1:return r=t.sent,i=r.errorList,a=r.resultList,t.abrupt(`return`,G({},e.name,i.length===0||a));case 2:case`end`:return t.stop()}},t)}));return function(e){return t.apply(this,arguments)}}(),ae=function(e){if(!(!e||!K(e))){if(O.value=[],k.value=[],e.length===0){A.value=LS.SUCCESS;return}var t=e.filter(function(e){return e.type===`error`||e.type===`warning`}),n=e.filter(function(e){return e.type===`success`});O.value=t.map(function(e){return{message:e.message,type:e.type,result:!1}}),k.value=n.map(function(e){return{message:e.message,type:e.type,result:!0}}),A.value=t.length>0?LS.FAIL:LS.SUCCESS}},oe=U(function(){return u?.data&&J(u?.data,e.name)}),se=I(void 0),ce=Wt(e).name,le=Dt({name:ce,resetHandler:ee,resetField:P,validate:re,validateOnly:ie,setValidateMessage:ae});mr(function(){se.value=iu(oe.value),u?.children.push(le)}),_r(function(){u&&(u.children=u?.children.filter(function(e){return e!==le}))}),R(oe,ly(Ey.mark(function e(){return Ey.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,re(`change`);case 1:case`end`:return e.stop()}},e)})),{deep:!0}),R(function(){return[e.name,JSON.stringify(e.rules)].join(`,`)},function(){re(`change`)});var ue=I(void 0),de=U(function(){return Gd(ue.value)?ue.value:Gd(e.showErrorMessage)?e.showErrorMessage:u?.showErrorMessage}),fe=U(function(){return[i.value.formItem,zO(f.value,e.name),G(G({},i.value.formItemWithHelp,pe.value),i.value.formItemWithExtra,me.value)]}),pe=U(function(){var e=r(`help`);return e?V(`div`,{class:i.value.help},[e]):null}),me=U(function(){var e,t=function(e){return V(`div`,{class:i.value.extra,title:e},[e])},n=O.value;return de.value&&n!=null&&(e=n[0])!=null&&e.message?t(n[0].message):k.value.length?t(k.value[0].message):null}),he=U(function(){var e=r(`tips`);return e?V(`div`,{class:[`${f.value}-tips`,`${d.value}-tips`,x.value]},[e]):null});return Cn(zS,{handleBlur:function(){var e=ly(Ey.mark(function e(){return Ey.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,re(`blur`);case 1:case`end`:return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}()}),function(){return V(`div`,{class:fe.value},[S(),V(`div`,{class:E.value,style:D.value},[V(`div`,{class:i.value.controlsContent},[r(`default`),w()]),pe.value,he.value,me.value])])}}}),Qme=X(Jme),$me=X(Zme),BO={allowUncheck:Boolean,checked:{type:Boolean,default:void 0},modelValue:{type:Boolean,default:void 0},defaultChecked:Boolean,default:{type:[String,Function]},disabled:{type:Boolean,default:void 0},label:{type:[String,Function]},name:{type:String,default:``},readonly:{type:Boolean,default:void 0},value:{type:[String,Number,Boolean],default:void 0},onChange:Function,onClick:Function},VO=Symbol(`RadioGroupProvide`),HO=Symbol(`RadioButtonProvide`),UO=z({name:`TRadio`,inheritAttrs:!1,props:BO,setup:function(e,t){var n=t.attrs,r=I(),i=Wt(e),a=i.checked,o=i.modelValue,s=Y(Rm(a,o,e.defaultChecked,e.onChange,`checked`),2),c=s[0],l=s[1],u=U(function(){return d?e.value===d.value:c.value}),d=wn(VO,void 0),f=U(function(){return!!(e.allowUncheck||d?.allowUncheck)}),p=function(e){e.stopPropagation()},m=function(t){var n;if(!(y.value||b.value)&&((n=e.onClick)==null||n.call(e,{e:t}),!(u.value&&!f.value)))if(d){var r=u.value&&f.value?void 0:e.value;d.setValue(r,{e:t,name:d.name})}else l(!f.value||!u.value,{e:t})},h=U(function(){return Xm({focus:n.onFocus,blur:n.onBlur,keydown:n.onKeydown,keyup:n.onKeyup,keypresss:n.onKeypresss})}),g=U(function(){return Sf(n,[].concat(W(Object.keys(h.value)),[`input`,`change`]).map(function(e){return`on${e[0].toUpperCase()}${e.slice(1)}`}))}),_=U(function(){return d?.disabled}),v=U(function(){return d?.readonly}),y=Sm({afterDisabled:_}),b=Mm({afterReadonly:v}),x=U(function(){return{name:d?d.name:e.name,checked:u.value,disabled:y.value,readonly:b.value,value:e.value}}),S=ym().STATUS,C=wn(HO,void 0),w=Q(`radio-button`),T=Q(`radio`),E=U(function(){return C?w.value:T.value}),D=U(function(){return[`${E.value}`,G(G({},S.value.checked,x.value.checked),S.value.disabled,x.value.disabled)]}),O=hm();return function(){return V(`label`,H({ref:r,class:D.value},g.value,{tabindex:y.value?void 0:`0`,onClick:m}),[V(`input`,H({type:`radio`,class:`${E.value}__former`},h.value,x.value,{onClick:p,tabindex:`-1`,"data-value":Rd(e.value)?`'${e.value}'`:e.value,"data-allow-uncheck":f.value||void 0}),null),V(`span`,{class:`${E.value}__input`},null),V(`span`,{class:`${E.value}__label`},[O(`default`,`label`)])])}}}),ehe={allowUncheck:Boolean,direction:{type:String,default:`horizontal`,validator:function(e){return!e||[`horizontal`,`vertical`].includes(e)}},disabled:{type:Boolean,default:void 0},name:{type:String,default:``},options:{type:Array},readonly:{type:Boolean,default:void 0},size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},theme:{type:String,default:`radio`,validator:function(e){return!e||[`radio`,`button`].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},variant:{type:String,default:`outline`,validator:function(e){return!e||[`outline`,`primary-filled`,`default-filled`].includes(e)}},onChange:Function};function WO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function GO(e){for(var t=1;t2&&arguments[2]!==void 0?arguments[2]:{},r=n.window,i=r===void 0?ihe:r,a=Ym(n,rhe),o,s=i&&`MutationObserver`in i,c=function(){o&&=(o.disconnect(),void 0)},l=R(function(){return ahe(e)},function(e){c(),s&&i&&e&&(o=new MutationObserver(t),o.observe(e,a))},{immediate:!0}),u=function(){c(),l()};return ohe(u),{isSupported:s,stop:u}}function JO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YO(e){for(var t=1;t0&&arguments[0]!==void 0&&arguments[0];if(e.variant!==`outline`){var n=s.value.querySelector(p.value),r=t?`none`:`all`;if(!n){m.value={"transition-property":r,width:`0px`,height:`9px`,left:`0px`,top:`0px`};return}var i=n.offsetWidth,a=n.offsetHeight,o=n.offsetLeft,c=n.offsetTop;i?m.value={"transition-property":r,width:`${i}px`,height:`${a}px`,left:`${o}px`,top:`${c}px`}:h()}},_;R(a,ly(Ey.mark(function e(){return Ey.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,dn();case 1:g();case 2:case`end`:return e.stop()}},e)}))),mr(function(){g(!0),Nm(s,Hf(ly(Ey.mark(function e(){return Ey.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,dn();case 1:g();case 2:case`end`:return e.stop()}},e)})),300));var e=s.value.querySelector(`${p.value} .${c.value}__label`);e&&(_=qO(e,function(e){e.forEach(function(e){e.type===`characterData`&&g()})},{attributes:!0,childList:!0,characterData:!0,subtree:!0}))}),vr(function(){var e;(e=_)==null||e.stop()});var v=Wt(e),y=v.name,b=v.disabled,x=v.readonly,S=v.allowUncheck;Cn(VO,Dt({name:y,disabled:b,readonly:x,value:a,allowUncheck:S,setValue:f}));var C=Q(`radio-group`),w=mm(),T=function(){if(e.variant.includes(`filled`)&&!af(a.value))return V(`div`,{style:m.value,class:`${C.value}__bg-block`},null)},E=function(){return e.options?.map(function(t){var n=t;return(nf(t)||Rd(t))&&(n={value:t,label:t.toString()}),V(e.theme===`button`?KO:UO,{key:`radio-group-options-${n.value}-${Math.random()}`,name:e.name,checked:a.value===n.value,disabled:`disabled`in n?n.disabled:e.disabled,value:n.value},{default:function(){return[q(n.label)?n.label(sa):n.label]}})})},D=U(function(){return[`${C.value}`,d.value[e.size],G(G(G(G({},`${C.value}__outline`,e.variant===`outline`),`${C.value}--filled`,e.variant.includes(`filled`)),`${C.value}--primary-filled`,e.variant===`primary-filled`),`${C.value}--vertical`,e.direction===`vertical`)]});return function(){return V(`div`,{ref:s,class:D.value},[w(`default`)||E(),T()])}}}),XO=X(UO),ZO=X(she),QO=X(KO);function $O(e,t){return t?{top:`calc(${100-e}% - 1px)`}:{left:`${e}%`}}var ek=function(e,t){return t===`first`?e instanceof Array?e[0]:e:e instanceof Array?e[1]:0},che=function(e,t){if(!e)return String(t);if(Rd(e)){var n=String(t);try{if(/\${value}/g.test(e))n=e.replace(/\${value}/g,String(t));else throw n=e,Error()}catch{console.warn("fail to parse label prop, please pass string such as '${value}'")}return n}return e},tk=function(e,t){return Number(parseFloat(`${e}`).toFixed(t))},nk=Symbol(`sliderProps`);function rk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ik(e){for(var t=1;t= props min`),i>t.max&&Vp.errorOnce(`TSlider`,`marks max value should <= props max`),r.forEach(function(e){n.push({point:e,position:(e-a)/(i-a)*100,mark:e})})}else Object.keys(t.marks).map(parseFloat).sort(function(e,t){return e-t}).filter(function(e){return e<=t.max&&e>=t.min}).forEach(function(e){var r={point:e,position:(e-t.min)*100/(t.max-t.min),mark:t.marks[e]};n.push(r)});return n});return function(r){return n.value.length?V(`div`,null,[V(`div`,{class:`${t}__stops`},[n.value.map(function(n,r){return n.position===0||n.position===100?null:V(`div`,{class:`${t}__stop ${t}__mark-stop`,style:$O(n.position,e.value.vertical),key:r},null)})]),V(`div`,{class:`${t}__mark`},[n.value.map(function(t,n){return V(uhe,{mark:t.mark,point:t.point,key:n,style:$O(t.position,e.value.vertical),onClickMarkPoint:r},null)})])]):null}},fhe={disabled:{type:Boolean,default:void 0},inputNumberProps:{type:[Boolean,Object],default:!1},label:{type:[String,Boolean,Function],default:!0},layout:{type:String,default:`horizontal`,validator:function(e){return!e||[`vertical`,`horizontal`].includes(e)}},marks:{type:[Object,Array]},max:{type:Number,default:100},min:{type:Number,default:0},range:Boolean,showStep:Boolean,step:{type:Number,default:1},tooltipProps:{type:Object},value:{type:[Number,Array],default:void 0},modelValue:{type:[Number,Array],default:void 0},defaultValue:{type:[Number,Array],default:0},onChange:Function,onChangeEnd:Function};function ak(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ok(e){for(var t=1;t100?n=100:n<0&&(n=0);var r=100*m.value/f.value,a=Math.round(n/r)*r*f.value*.01;a+=c.min,a=tk(a,c.precision),t.emit(`input`,a),dn(function(){var e,t;i.value&&((e=(t=i.value).updatePopper)==null||e.call(t))})}},_=function(){l.value.focus(),o(!0)},v=function(){d.dragging||o(!1)},y=function(t){d.dragging=!0,d.isClick=!0;var n=t.type,r=t.clientY,i=t.clientX;if(n===`touchstart`){var a=t.touches,o=[a[0].clientY,a[0].clientX];r=o[0],i=o[1]}e.vertical?d.startY=r:d.startX=i,d.startPos=parseFloat(p.value),d.newPos=d.startPos},b=function(t){var n=t;if(d.dragging){u.value=!0,d.isClick=!1,c!=null&&c.resetSize&&q(c?.resetSize)&&c.resetSize();var r=0,i=c.sliderSize,a=n.type,o=n.clientY,s=n.clientX;if(a===`touchmove`){var l=n.touches,f=[l[0].clientY,l[0].clientX];o=f[0],s=f[1]}r=e.vertical?d.startY-o:s-d.startX,r=r/i*100,d.newPos=d.startPos+r,g(d.newPos)}},x=function(){d.dragging&&(setTimeout(function(){d.dragging=!1,o(!1),d.isClick||g(d.newPos),u.value&&t.emit(`mouseup`),u.value=!1},0),window.removeEventListener(`mousemove`,b),window.removeEventListener(`touchmove`,b),window.removeEventListener(`mouseup`,x),window.removeEventListener(`touchend`,x),window.removeEventListener(`contextmenu`,x))};function S(e){c.disabled||(e.preventDefault(),y(e),window.addEventListener(`mousemove`,b),window.addEventListener(`mouseup`,x),window.addEventListener(`touchmove`,b),window.addEventListener(`touchend`,x),window.addEventListener(`contextmenu`,x))}var C=function(e){if(!c.disabled){var t=m.value/f.value*100;e===`sub`&&(t=-t),d.newPos=parseFloat(p.value)+t,g(d.newPos)}},w=function(e){var t=e.code;e.preventDefault(),(t===`ArrowDown`||t===`ArrowLeft`)&&C(`sub`),(t===`ArrowUp`||t===`ArrowRight`)&&C(`add`)};return t.expose({setPosition:g}),function(){return V(`div`,{ref:l,class:`${n.value}-wrapper`,style:h.value,tabindex:`0`,"show-tooltip":s.value,onMouseenter:_,onMouseleave:v,onMousedown:S,onTouchstart:S,onFocus:_,onBlur:v,onKeydown:w},[V(Gx,H({ref:i,hideEmptyPopup:!0,disabled:!s.value},a.value),{default:function(){return[V(`div`,{class:[n.value,G({},`${n.value}--dragging`,d.dragging)]},null)]}})])}}}),hhe=X(z({name:`TSlider`,model:{prop:`value`,event:`change`},props:fhe,setup:function(e){var t=Sm(),n=Q(`slider`),r=ym().STATUS,i=Wt(e),a=i.value,o=i.modelValue,s=Y(Rm(a,o,e.defaultValue,e.onChange),2),c=s[0],l=s[1],u=I(),d=I(),f=I(),p=I(),m=I(ek(c.value,`first`)),h=I(ek(c.value,`second`)),g=I(!1),_=I(1),v=U(function(){return e.layout===`vertical`}),y=U(function(){return[`${n.value}__container`,{"is-vertical":v.value}]}),b=U(function(){return[`${n.value}`,G(G(G({"is-vertical":v.value},`${n.value}--with-input`,e.inputNumberProps),`${n.value}--vertical`,v.value),r.value.disabled,t.value)]}),x=U(function(){return[`${n.value}__rail`,{"show-input":e.inputNumberProps,disabled:t.value}]}),S=U(function(){return v.value?{height:`100%`}:{}}),C=U(function(){var t=e.range?`${100*(T.value-e.min)/w.value}%`:`0%`,n=`${100*(e.range?E.value-T.value:m.value-e.min)/w.value}%`;return v.value?{height:n,bottom:t}:{width:n,left:t}}),w=U(function(){return e.max-e.min}),T=U(function(){return Math.min(m.value,h.value)}),E=U(function(){return Math.max(m.value,h.value)}),D=U(function(){if(!e.showStep||e.min>e.max)return[];if(e.step===0)return console.warn(`[Element Warn][Slider]step should not be 0.`),[];for(var t=w.value/e.step,n=100*e.step/w.value,r=[],i=1;i100*(E.value-e.max)/w.value}):r.filter(function(t){return t>100*(m.value-e.min)/w.value})}),O=U(function(){var t=[e.min,e.max,e.step].map(function(e){var t=`${e}`.split(`.`);return t[1]?t[1].length:0});return Math.max.apply(null,t)}),k=function(t){var n=[e.min,e.max],r=n[0],i=n[1];if(r>i){console.warn(`[Slider] max should be greater than min.`);return}if(e.range&&K(t)){var a=[Math.min.apply(Math,W(t)),Math.max.apply(Math,W(t))],o=a[0],s=a[1];o>i&&(o=m.value),oi&&(s=i);var c=[o,s];return m.value=c[0],h.value=c[1],[o,s]}var l=t;return li&&(l=i),l},A=function(t){var n=t;n===void 0&&(n=e.range?[m.value,h.value]:m.value),l(k(n))},j=function(){d.value&&(_.value=d.value[`client${v.value?`Height`:`Width`}`])},M=I(!1),ee=function(){var t;e.range?(K(c.value)?(m.value=tk(Math.max(e.min||0,c.value[0]),O.value),h.value=tk(Math.min(e.max||100,c.value[1]),O.value)):(m.value=tk(e.min||0,O.value),h.value=tk(e.max||100,O.value)),t=`${m.value}-${h.value}`):(nf(c.value)?m.value=tk(Math.min(e.max,Math.max(e.min,c.value)),O.value):m.value=e.min,t=String(m.value)),u.value&&u.value.setAttribute(`aria-valuetext`,t),j(),window.addEventListener(`resize`,j)},N=function(t){var n=t*w.value/100;if(n=e.min+n,!e.range&&f.value){f.value.setPosition(t);return}var r=Math.abs(T.value-n)h.value?`button1`:`button2`;r===`button1`&&f.value&&f.value.setPosition(t),r===`button2`&&p.value&&p.value.setPosition(t)},P=function(){return k(e.range?[m.value,h.value]:m.value)},F=function(n){var r;if(!(t.value||g.value)&&d.value){j();var i=0;if(v.value)i=(d.value.getBoundingClientRect().bottom-n.clientY)/_.value*100,N(i);else{var a=d.value.getBoundingClientRect().left;i=(n.clientX-a)/_.value*100,N(i)}var o=P();(r=e.onChangeEnd)==null||r.call(e,o)}},te=function(n){var r;if(!(t.value||g.value)){j(),N(Number(n/w.value*100)),A(n);var i=P();(r=e.onChangeEnd)==null||r.call(e,i)}};R(function(){return c.value},function(t){if(g.value!==!0)if(K(t)&&e.range){var n=Y(t,2);m.value=n[0],h.value=n[1]}else m.value=t},{deep:!0}),R([m,h,g],function(t,n){t[0]!==n[0]&&(e.range?A([T.value,E.value]):A(m.value)),t[1]!==n[1]&&e.range&&A([T.value,E.value]),t[2]!==n[2]&&t[2]===!1&&ee()}),mr(function(){ee(),M.value=!0}),_r(function(){window.removeEventListener(`resize`,j)});var ne=dhe(U(function(){return{max:e.max,min:e.min,marks:e.marks,vertical:v.value,prefixName:n.value}})),re=lhe(U(function(){return{max:e.max,min:e.min,inputNumberProps:e.inputNumberProps,step:e.step,prefixName:n.value,vertical:v.value,disabled:t.value}})),ie=function(){var t=k(m.value),r=function(e){m.value=k(e)},i=k(h.value);return V(`div`,{class:[`${n.value}__input-container`,{"is-vertical":v.value}]},[re(t,r),e.range&&V(`div`,{class:`${n.value}__center-line`},null),e.range&&re(i,function(e){h.value=k(e)})])},ae=function(e){g.value=e},oe=Wt(e),se=oe.min,ce=oe.max,le=oe.step;return Cn(nk,Dt({min:se,max:ce,step:le,dragging:g,toggleDragging:ae,precision:O,disabled:t,resetSize:j,sliderSize:_})),function(){return V(`div`,{class:y.value,ref:u},[V(`div`,{class:b.value,role:`slider`,"aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.layout,"aria-disabled":t.value,"tooltip-props":e.tooltipProps},[V(`div`,{class:x.value,style:S.value,onClick:F,ref:d},[V(`div`,{class:`${n.value}__track`,style:C.value},null),V(sk,{vertical:v.value,value:m.value,ref:f,range:e.range,position:`start`,"tooltip-props":e.tooltipProps,label:e.label,onInput:function(e){m.value=e},onMouseup:function(){var t,n=P();(t=e.onChangeEnd)==null||t.call(e,n)}},null),e.range&&V(sk,{vertical:v.value,value:h.value,ref:p,label:e.label,range:e.range,position:`end`,"tooltip-props":e.tooltipProps,onInput:function(e){h.value=e},onMouseup:function(){var t,n=P();(t=e.onChangeEnd)==null||t.call(e,n)}},null),e.showStep&&V(`div`,{class:`${n.value}__stops`},[D.value.map(function(e,t){return e.position===0||e.position===100?null:V(`div`,{class:`${n.value}__stop`,key:t,style:$O(e,v.value)},null)})]),ne(te)])]),M.value&&e.inputNumberProps&&ie()])}}})),ghe=X(sk),_he=X(z({name:`TSwitch`,props:{beforeChange:{type:Function},customValue:{type:Array},disabled:{type:Boolean,default:void 0},label:{type:[Array,Function],default:function(){return[]}},loading:Boolean,size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},defaultValue:{type:[String,Number,Boolean]},onChange:Function},setup:function(e,t){var n=t.slots,r=Sm(),i=Q(`switch`),a=ym(),o=a.STATUS,s=a.SIZE,c=Wt(e),l=c.value,u=c.modelValue,d=Y(Rm(l,u,e.defaultValue,e.onChange),2),f=d[0],p=d[1],m=U(function(){return e.customValue&&e.customValue.length>0?e.customValue[0]:!0}),h=U(function(){return e.customValue&&e.customValue.length>1?e.customValue[1]:!1});function g(e){p(f.value===m.value?h.value:m.value,{e})}function _(t){if(!(r.value||e.loading)){if(!e.beforeChange){g(t);return}Promise.resolve(e.beforeChange()).then(function(e){e&&g(t)}).catch(function(e){throw Error(`Switch: some error occurred: ${e}`)})}}var v=U(function(){return[`${i.value}`,s.value[e.size],G(G(G({},o.value.disabled,r.value),o.value.loading,e.loading),o.value.checked,f.value===m.value||e.modelValue===m.value)]}),y=U(function(){return[`${i.value}__handle`,G(G({},o.value.disabled,r.value),o.value.loading,e.loading)]}),b=U(function(){return[`${i.value}__content`,s.value[e.size],G({},o.value.disabled,r.value)]});R(f,function(t){if(e.customValue&&e.customValue.length&&!e.customValue.includes(t))throw Error(`value is ${t} not in ${JSON.stringify(e.customValue)}`)},{immediate:!0});var x=U(function(){if(q(e.label))return e.label(sa,{value:f.value});if(Rd(e.label))return e.label;if(K(e.label)&&e.label.length){var t=f.value===m.value?e.label[0]:e.label[1];if(!t)return;if(Rd(t))return t;if(q(t))return t(sa)}return n.label?n.label({value:f.value}):null});return function(){var t,n;return e.loading?n=V(uh,{size:`small`},null):x.value&&(t=x.value),V(`div`,{class:v.value,onClick:_},[V(`span`,{class:y.value},[n]),V(`div`,{class:b.value},[t])])}}})),vhe={allowInputOverMax:Boolean,autofocus:Boolean,autosize:{type:[Boolean,Object],default:!1},disabled:{type:Boolean,default:void 0},maxcharacter:{type:Number},maxlength:{type:[String,Number]},name:{type:String,default:``},placeholder:{type:String,default:void 0},readonly:{type:Boolean,default:void 0},status:{type:String,default:`default`,validator:function(e){return!e||[`default`,`success`,`warning`,`error`].includes(e)}},tips:{type:[String,Function]},value:{type:[String,Number],default:void 0},modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number]},onBlur:Function,onChange:Function,onFocus:Function,onKeydown:Function,onKeypress:Function,onKeyup:Function,onValidate:Function},yhe=` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important +`,ck;function lk(e){var t,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;ck||(ck=document.createElement(`textarea`),document.body.appendChild(ck));var i=_se(e),a=i.paddingSize,o=i.borderSize,s=i.boxSizing,c=i.sizingStyle;ck.setAttribute(`style`,`${c};${yhe}`),ck.value=e.value||e.placeholder||``;var l=ck.scrollHeight,u={},d=s===`border-box`;d?l+=o:s===`content-box`&&(l-=a),ck.value=``;var f=ck.scrollHeight-a;(t=ck)==null||(t=t.parentNode)==null||t.removeChild(ck),ck=null;var p=function(e){var t=f*e;return d&&(t=t+a+o),t};if(!of(n)){var m=p(n);l=Math.max(m,l),u.minHeight=`${m}px`}return of(r)||(l=Math.min(p(r),l)),u.height=`${l}px`,u}var bhe=X(z({name:`TTextarea`,inheritAttrs:!1,props:vhe,setup:function(e,t){var n=t.attrs,r=t.expose,i=Q(),a=Q(`textarea`),o=U(function(){return`${a.value}__tips`}),s=U(function(){return`${a.value}__limit`}),c=Wt(e),l=c.value,u=c.modelValue,d=Y(Rm(l,u,e.defaultValue,e.onChange),2),f=d[0],p=d[1],m=Sm(),h=Mm(),g=I({}),_=I(),v=I(!1),y=I(!1),b=function(){return _.value?.focus()},x=function(){return _.value?.blur()},S=function(){var t;if(e.autosize===!0)dn(function(){g.value=lk(_.value)});else if(e.autosize&&so(e.autosize)===`object`){var r=e.autosize,i=r.minRows,a=r.maxRows;dn(function(){g.value=lk(_.value,i,a)})}else n.rows?g.value={height:`auto`,minHeight:`auto`}:n.style&&(t=n.style)!=null&&t.height&&(g.value={height:n.style?.height})},C=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``,t=_.value,n=String(e);t&&t.value!==n&&(t.value=n,f.value=n)},w=function(t){var n=t.target.value;if(e.maxcharacter&&e.maxcharacter>=0){var r=Qm(n,e.maxcharacter);e.allowInputOverMax||(n=so(r)===`object`&&r.characters)}!y.value&&p(n,{e:t}),dn(function(){return C(n)}),S()},T=function(e){w(e)},E=function(){y.value=!0},D=function(e){y.value=!1,w(e)},O=function(t,n){var r;m.value||(r=e[`on${t[0].toUpperCase()}${t.slice(1)}`])==null||r.call(e,f.value,{e:n})},k=function(e){O(`keydown`,e)},A=function(e){O(`keyup`,e)},j=function(e){O(`keypress`,e)},M=function(t){var n;m.value||(v.value=!0,(n=e.onFocus)==null||n.call(e,f.value,{e:t}))},ee=wn(zS,void 0),N=function(t){var n;t.target&&(v.value=!1,(n=e.onBlur)==null||n.call(e,f.value,{e:t}),ee?.handleBlur())},P=U(function(){return[a.value,G(G({},`${i.value}-is-disabled`,m.value),`${i.value}-is-readonly`,h.value)]}),F=U(function(){return Xm({autofocus:e.autofocus,disabled:m.value,readonly:h.value,placeholder:e.placeholder,maxlength:!e.allowInputOverMax&&e.maxlength||void 0,name:e.name||void 0})}),te=U(function(){var e=Qm(String(f.value||``));return so(e)===`object`?e.length:e}),ne=BS(U(function(){return{value:[void 0,null].includes(f.value)?void 0:String(f.value),status:e.status,maxlength:Number(e.maxlength),maxcharacter:e.maxcharacter,allowInputOverMax:e.allowInputOverMax,onValidate:e.onValidate}})).tStatus;R(function(){return f.value},function(){return S()}),R(_,function(t){t&&(S(),e.autofocus&&t.focus())}),R(g,function(e){var t=n.style;Do(t)?Pm(_.value,mf(t,e)):Pm(_.value,e)}),R(function(){return e.autosize},S,{deep:!0}),r({focus:b,blur:x}),mr(function(){S()});var re=pm();return function(){var t=Xm({onFocus:M,onBlur:N,onKeydown:k,onKeyup:A,onKeypress:j}),r=ym().STATUS,c=U(function(){return[`${a.value}__inner`,G(G(G(G(G({},`${i.value}-is-${ne.value}`,ne.value),r.value.disabled,m.value),r.value.focused,v.value),`${i.value}-resize-none`,so(e.autosize)===`object`),`${i.value}-hide-scrollbar`,e.autosize===!0)]}),l=re(`tips`),u=l&&V(`div`,{class:`${o.value} ${a.value}__tips--${e.status||`normal`}`},[l]),d=e.maxcharacter&&V(`span`,{class:s.value},[`${te.value}/${e.maxcharacter}`])||!e.maxcharacter&&e.maxlength&&V(`span`,{class:s.value},[`${f.value?String(f.value)?.length:0}/${e.maxlength}`]);return V(`div`,H({class:P.value},Sf(n,[`style`])),[V(`textarea`,H({onInput:T,onCompositionstart:E,onCompositionend:D,ref:_,value:f.value,class:c.value},t,F.value),null),u||d?V(`div`,{class:[`${a.value}__info_wrapper`,G({},`${a.value}__info_wrapper_align`,!u)]},[u,d]):null])}}}));function uk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xhe(e){for(var t=1;t2&&arguments[2]!==void 0?arguments[2]:{},r=n.isTreeMode,i=r!==void 0&&r,a=n.include,o=a===void 0||a,s=n.remainValue,c=s===void 0?[]:s;if(i){var l=[];if(e)for(var u=0;u0){var p=hk(d.children,t,{isTreeMode:i,include:o});l=l.concat(p)}else(o&&f||!o&&!f)&&l.push(d.value)}return l}return e.filter(function(e){if(!e)return!1;var n=pk(e.value,t);return(o&&n||!o&&!n)&&(!e.disabled||pk(e.value,c))}).map(function(e){return e.value})}function gk(e,t){var n=arguments.length>2&&arguments[2]!==void 0&&arguments[2];return e.map(function(e,r){var i=t?.label||`label`,a=t?.value||`value`,o=t?.disabled||`disabled`;if(sf(e[i]))throw Error(`${i} is not in DataOption ${JSON.stringify(e)}`);if(sf(e[a]))throw Error(`${a} is not in DataOption ${JSON.stringify(e)}`);var s={label:e[i],value:e[a],key:`key__value_${e[a]}_index_${r}`,disabled:e[o]??!1,data:e};return n&&e.children&&(s.children=gk(e.children,t,!0)),s})}function Che(e,t,n){return pk(e.value,t)?n:!1}function _k(e,t,n){var r;return e?pk(e.value,t)?n:(r=e.children)!=null&&r.length?e.children.some(function(e){return _k(e,t,n)}):!n:!n}function vk(e,t,n,r){e.forEach(function(e){var i;Che(e,n,r)?(i=iu(e),t.push(i)):_k(e,n,r)&&(i=xhe({},e),delete i.children,t.push(i),e.children&&(i.children=[],vk(e.children,i.children,n,r),i.children.length===0&&delete i.children))})}function yk(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!(arguments.length>3&&arguments[3]!==void 0&&arguments[3]))return n?t?.map(function(t){return e.find(function(e){return ef(e.value,t)})}).filter(function(e){return!!e}):e.filter(function(e){return!pk(e.value,t)});var r=[];return vk(e,r,t,n),r}function bk(e){var t=0;return e.forEach(function(e){e.children&&e.children.length>0?t+=bk(e.children):t+=1}),t}var whe=z({name:`TTransferSearch`,props:{value:{type:String,default:``},search:{type:[Boolean,Object],default:!1},placeholder:{type:String,default:``},onChange:Function},setup:function(e){var t=Q(),n=Tm({SearchIcon:mv}).SearchIcon,r=Jm(so(e.search)===`object`?e.search:{clearable:!0},{onChange:function(t,n){var r,i=n.e,a=n.trigger;(r=e.onChange)==null||r.call(e,{value:t,e:i,trigger:a})}});return function(){return V(`div`,{class:`${t.value}-transfer__search-wrapper`},[V(WS,H({defaultValue:e.value,placeholder:e.placeholder},r.value),{default:function(){return[V(n,{slot:`suffix-icon`},null)]}})])}}});function The(e,t,n){var r=I(null),i=I(null),a=I(null);return{onDragStart:function(e){r.value=Number(e.target.dataset.index)},onDragEnd:function(){r.value=null,i.value=null,a.value=``},onDrop:function(o){o.preventDefault();var s=r.value,c=i.value;if(r.value=null,i.value=null,a.value=``,s!==c){var l=W(e.value),u=t.value[s].value,d=t.value[c].value,f=l.indexOf(u),p=l.indexOf(d);l.splice(f,1),a.value===`bottom`&&(p+=1),l.splice(p,0,u),n?.(l,[u,d])}},onDragOver:function(e){if(e.preventDefault(),e.currentTarget){var t=e.currentTarget,n=Number(t.dataset.index),o=t.offsetHeight,s=e.clientY-t.getBoundingClientRect().top,c=o*.3;if(i.value=n,i.value===r.value){a.value=``;return}so-c?a.value=`bottom`:a.value=`center`}},onDragLeave:function(){a.value=``,i.value=null}}}function xk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Sk(e){for(var t=1;t-1})}),f=U(function(){return d.value&&d.value.length||0}),p=U(function(){var t=d.value;if(!e.pagination||u.value===0)return t;var n=(l.value-1)*u.value,r=l.value*u.value;return t=t.slice(n,r),t}),m=U(function(){return so(e.pagination)===`object`?Sk(Sk(Sk({},{totalContent:!1,pageSizeOptions:[]}),e.pagination),{},{size:`small`,theme:`simple`,current:l.value,total:f.value,pageSize:u.value}):{}}),h=The(n,p,e.onDataChange),g=h.onDragStart,_=h.onDragEnd,v=h.onDrop,y=h.onDragOver,b=h.onDragLeave,x=U(function(){var t=hk(e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1});return e.checkedValue.length>0&&(e.isTreeMode?t.every(function(t){return e.checkedValue.includes(t)}):(e.search?d.value:e.dataSource).every(function(t){return t.disabled||e.checkedValue.includes(t.value)}))}),S=U(function(){return!x.value&&e.checkedValue.length>0}),C=U(function(){return bk(e.dataSource)});R(C,function(e){e<=(l.value-1)*u.value&&(s.value=Math.ceil(e/u.value))});var w=function(e,t){return jd(iu(e),function(e){return!!(e.label.toLowerCase().includes(t.toLowerCase())||e.children&&e.children.length>0&&(e.children=w(e.children,t),e.children.length>0))})},T=function(t){var n;(n=e.onPageChange)==null||n.call(e,t),s.value=t.current,c.value=t.pageSize},E=function(t){var n;(n=e.onCheckedChange)==null||n.call(e,t)},D=function(t){E(t?hk(e.search?d.value:e.dataSource,[],{isTreeMode:e.isTreeMode,include:!1}):[])},O=function(t){var n;(n=e.onScroll)==null||n.call(e,t)},k=function(t){var n,r={query:t.value,type:e.listType,e:t.e,trigger:t.trigger};o.value=t.value,(n=e.onSearch)==null||n.call(e,r)},A=mm(),j=function(){return V(`span`,null,[A(`title`,{defaultNode:e.title&&Rd(e.title)?V(`template`,null,[e.title]):null,params:{type:e.listType}})])},M=function(){var n=e.draggable&&e.listType===`target`,r=null;if(n){var i;r=V(rw,{value:e.checkedValue,onChange:E},Ck(i=p.value.map(function(r,i){var a;return V(`div`,{draggable:n,onDragend:_,onDragstart:g,onDragover:y,onDragleave:b,onDrop:v,"data-index":i},[V(nw,H({disabled:e.disabled||r.disabled,value:r.value,needRipple:!0,class:[`${t.value}-transfer__list-item`,e.checkedValue.includes(r.value)?`${t.value}-is-checked`:``],key:r.key},e.checkboxProps),Ck(a=A(`transferItem`,{defaultNode:V(`span`,null,[r.label]),params:{data:r.data,index:i,type:e.listType}}))?a:{default:function(){return[a]}})])}))?i:{default:function(){return[i]}})}else{var a;r=V(rw,{value:e.checkedValue,onChange:E},Ck(a=p.value.map(function(n,r){var i;return V(nw,H({disabled:e.disabled||n.disabled,value:n.value,needRipple:!0,class:[`${t.value}-transfer__list-item`,e.checkedValue.includes(n.value)?`${t.value}-is-checked`:``],key:n.key},e.checkboxProps),Ck(i=A(`transferItem`,{defaultNode:V(`span`,null,[n.label]),params:{data:n.data,index:r,type:e.listType}}))?i:{default:function(){return[i]}})}))?a:{default:function(){return[a]}})}return V(`div`,{class:[`${t.value}-transfer__list-content`,`narrow-scrollbar`],onScroll:O},[A(`tree`,{defaultNode:r,params:{data:p.value,value:e.checkedValue,onChange:E}})])},ee=function(){var n=e.empty||i(a.value.empty),r=Rd(n)?V(`span`,null,[n]):null;return V(`div`,{class:`${t.value}-transfer__empty`},[A(`empty`,{defaultNode:r,params:{type:e.listType}})])},N=function(){return A(`footer`,{defaultNode:Rd(e.footer)?V(`div`,{class:`${t.value}-transfer__footer`},[e.footer]):null,params:{type:e.listType}})};return function(){return V(`div`,{class:[`${t.value}-transfer__list`,`${t.value}-transfer__list-${e.listType}`]},[V(`div`,{class:`${t.value}-transfer__list-header`},[V(`div`,null,[e.checkAll&&V(nw,{disabled:e.disabled||!e.dataSource.length,checked:x.value,indeterminate:S.value,onChange:D},null),V(`span`,null,[i(a.value.title,{checked:e.checkedValue.length,total:C.value})])]),j()]),V(`div`,{class:[`${t.value}-transfer__list-body`,e.search?`${t.value}-transfer__list--with-search`:``]},[e.search&&V(whe,{value:o.value,placeholder:i(a.value.placeholder),onChange:k,search:e.search},null),p.value.length>0?M():ee()]),e.pagination&&u.value>0&&f.value>0&&V(`div`,{class:`${t.value}-transfer__list-pagination`},[V(Nw,H(m.value,{onChange:T}),null)]),N()])}}}),wk={checkboxProps:{type:Object},checked:{type:Array,default:void 0},defaultChecked:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},direction:{type:String,default:`both`,validator:function(e){return!e||[`left`,`right`,`both`].includes(e)}},disabled:{type:[Boolean,Array],default:void 0},empty:{type:[String,Array,Function],default:``},footer:{type:[Array,Function]},keys:{type:Object},operation:{type:[Array,Function]},pagination:{type:[Object,Array]},search:{type:[Boolean,Object,Array],default:!1},showCheckAll:{type:[Boolean,Array],default:!0},targetDraggable:Boolean,targetSort:{type:String,default:`original`,validator:function(e){return!e||[`original`,`push`,`unshift`].includes(e)}},title:{type:[Array,Function],default:function(){return[]}},transferItem:{type:Function},value:{type:Array,default:void 0},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:function(){return[]}},onChange:Function,onCheckedChange:Function,onPageChange:Function,onScroll:Function,onSearch:Function};function Tk(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Mi(e)}var Dhe=z({name:`TTransferOperations`,props:{leftDisabled:{type:Boolean,required:!0},rightDisabled:{type:Boolean,required:!0},operation:wk.operation},emits:[`moveToRight`,`moveToLeft`],setup:function(e,t){var n=t.slots,r=t.emit,i=Q(),a=Tm({ChevronRightIcon:yg,ChevronLeftIcon:fg}),o=a.ChevronRightIcon,s=a.ChevronLeftIcon,c=function(){r(`moveToRight`)},l=function(){r(`moveToLeft`)},u=function(){return V(o,null,null)},d=function(){return V(s,null,null)},f=function(t){return q(e.operation)||t===`right`&&e.operation&&q(e.operation[0])||t===`left`&&e.operation&&q(e.operation[1])||n.operation?null:t===`left`?d:u},p=function(t,r){if(q(n.operation))return n.operation({direction:r});if(q(e.operation)){var i=e.operation;return i(t,{direction:r})}var a;if(K(e.operation)){var o=Y(e.operation,2),s=o[0],c=o[1],l=r===`right`?c:s,u=q(l)?l(t):l;a=u===!1||u===!0?``:u}else a=``;return a};return function(){var t,n;return V(`div`,{class:`${i.value}-transfer__operations`},[V(mh,{variant:`outline`,size:`small`,shape:K(e.operation)&&Rd(e.operation[1])?`rectangle`:`square`,key:e.rightDisabled?`right-outline`:`right-base`,disabled:e.rightDisabled,onClick:c,icon:f(`right`)},Tk(t=p(sa,`right`))?t:{default:function(){return[t]}}),V(mh,{variant:`outline`,size:`small`,shape:K(e.operation)&&Rd(e.operation[0])?`rectangle`:`square`,key:e.rightDisabled?`left-outline`:`left-base`,disabled:e.leftDisabled,onClick:l,icon:f(`left`)},Tk(n=p(sa,`left`))?n:{default:function(){return[n]}})])}}});function Ohe(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Mi(e)}var khe=X(z({name:She,props:wk,setup:function(e,t){var n=t.slots,r=Sm(),i=Q(),a=Wt(e),o=a.value,s=a.modelValue,c=a.checked,l=Y(Rm(o,s,e.defaultValue,e.onChange),2),u=l[0],d=l[1],f=Y(bm(c,e.defaultChecked,e.onCheckedChange,`checked`),1)[0],p=U(function(){return u.value}),m=U(function(){var e=n.tree;return q(e)}),h=U(function(){return e.direction===`right`}),g=U(function(){return e.direction===`left`}),_=U(function(){return gk(e.data,e.keys,m.value)}),v=U(function(){return yk(_.value,p.value,!1,m.value)}),y=U(function(){return yk(_.value,p.value,!0,m.value)}),b=U(function(){return G(G({},dk,hk(v.value,f.value,{isTreeMode:m.value})),fk,hk(y.value,f.value,{isTreeMode:m.value}))}),x=U(function(){return!!n.footer||!!e.footer}),S=U(function(){return!!e.pagination&&!n.content}),C=U(function(){return!!e.search}),w=U(function(){return mk(e.footer||``)}),T=U(function(){return mk(e.empty)}),E=U(function(){return mk(e.search)}),D=U(function(){return mk(e.showCheckAll)}),O=U(function(){return mk(r.value)}),k=U(function(){return mk(e.title)}),A=U(function(){return mk(e.pagination)}),j=function(t,n){var r,i=n===`source`?t:b.value[dk],a=n===`target`?t:b.value[fk],o=[].concat(W(i),W(a)),s={checked:o,sourceChecked:i,targetChecked:a,type:n};f.value=o,(r=e.onCheckedChange)==null||r.call(e,s)},M=function(t){var n=JSON.parse(JSON.stringify(p.value)),r,i=t===`target`?b.value[dk]:b.value[fk];if(t===`source`)r=n.filter(function(e){return!i.some(function(t){return ef(t,e)})});else if(e.targetSort===`original`){var a=_.value.reduce(function(e,t){return n.some(function(e){return ef(e,t.value)})&&t.disabled?e.concat(t.value):e},[]);r=hk(_.value,n.concat(i),{isTreeMode:m.value,remainValue:a})}else r=e.targetSort===`unshift`?i.concat(n):n.concat(i);j([],t===`source`?fk:dk),d(r,{type:t,movedValue:i})},ee=function(){M(fk)},N=function(){M(dk)},P=function(t,n){var r,i=t.target,a={e:t,bottomDistance:i.scrollHeight-i.scrollTop-i.clientHeight,type:n};(r=e.onScroll)==null||r.call(e,a)},F=function(t){var n;(n=e.onSearch)==null||n.call(e,t)},te=function(t,n){var r;(r=e.onPageChange)==null||r.call(e,t,{type:n})},ne=function(e,t){d(e,{type:fk,movedValue:t})},re=function(t){var r=Rf(n,[`title`,`empty`,`footer`,`operation`,`transferItem`,`default`,`tree`]);return V(Ehe,{checkboxProps:e.checkboxProps,transferItem:e.transferItem,"list-type":t,title:k.value[t],"data-source":t===`source`?v.value:y.value,"checked-value":b.value[t],disabled:O.value[t],search:E.value[t],pagination:A.value[t],"check-all":D.value[t],footer:w.value[t],empty:T.value[t],onCheckedChange:function(e){return j(e,t)},onScroll:function(e){return P(e,t)},onSearch:F,onPageChange:function(e){return te(e,t)},isTreeMode:m.value,onDataChange:ne,currentValue:p.value,draggable:e.targetDraggable&&t===`target`},Ohe(r)?r:{default:function(){return[r]}})};return function(){return V(`div`,{class:[`${i.value}-transfer`,C.value?`${i.value}-transfer__search`:``,x.value?`${i.value}-transfer__footer`:``,S.value?`${i.value}-transfer__pagination`:``,m.value?`${i.value}-transfer--with-tree`:``]},[re(dk),V(Dhe,{leftDisabled:O.value.target||h.value||b.value.target.length===0,rightDisabled:O.value.source||g.value||b.value.source.length===0,operation:e.operation,onMoveToRight:ee,onMoveToLeft:N},{operation:n.operation}),re(fk)])}}})),Ahe={name:`TTreeNode`,inject:{onDrag:{default:void 0}}};function jhe(e){return X(e)}function Ek(e){return sa}function Mhe(e){return e.$slots}function Dk(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`value`,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`defaultValue`,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:`onChange`;!(arguments.length>5&&arguments[5]!==void 0)||arguments[5];var a=t.modelValue;return n===`value`?Rm(t[n],a,e[r],e[i],n):bm(t[n],e[r],e[i],n)}var Ok=function(e){return e[e.Before=-1]=`Before`,e[e.Inside=0]=`Inside`,e[e.After=1]=`After`,e}(Ok||{});function Nhe(e){var t=e.treeItemRef,n=Dt({isDragOver:!1,isDragging:!1,dropPosition:0}),r=function(e){var r,i=t.value;if(i){var a=i==null||(r=i.getBoundingClientRect)==null?void 0:r.call(i),o=window.scrollY+a.top,s=e.pageY,c=a.height/4,l=s-o;l0,t=Gd(a.children)&&a.children;return d&&(e||t)});if(a.vmCheckable){var g=!1;a.vmIsLocked&&!a.vmIsRest&&(g=!0),a.isDisabled()&&(g=!0);var _=function(){return p}();p=V(nw,H({class:m,checked:a.checked,indeterminate:a.indeterminate,name:String(a.value),onChange:r,stopLabelTrigger:h.value},f,{disabled:g,title:a.label}),Hhe(p)?p:{default:function(){return[_]}})}else{var v=V(`span`,{style:`position: relative`},[p]);p=a.isActivable()?V(`span`,{key:`1`,ref:`label`,class:m,title:a.label},[v]):V(`span`,{key:`2`,class:m,title:a.label},[v])}return p}}}function Whe(e){var t=Q(`tree`).value;return{renderLine:function(n){var r=e.node,i=e.treeScope,a=i.scopedSlots,o=i?.treeProps||{},s=o.line,c=!!o.icon,l=null;if(s===!0){if(a!=null&&a.line)l=a.line({node:r?.getModel()});else if(r.parent&&r.tree){var u=r.vmIsLeaf,d=r.vmIsFirst,f=r.level,p=[];p.push(`${t}__line`),(u||!c)&&p.push(`${t}__line--leaf`),d&&c&&p.push(`${t}__line--first`);var m=[],h=r.getParents();h.pop(),h.forEach(function(e,t){e.vmIsLast||m.push(`calc(-${t+1} * var(--space)) 0 var(--color)`)}),l=V(`span`,{class:p,style:{"--level":f?String(f):void 0,"box-shadow":m.join(`,`)}},null)}}else l=Mk(s,{createElement:n,node:r});return l}}}function Ghe(e){var t=Q(`tree`).value;return{renderOperations:function(n){var r=e.node,i=e.treeScope,a=i.scopedSlots,o=(i?.treeProps||{}).operations,s=null;return s=a!=null&&a.operations?a.operations({node:r?.getModel()}):Mk(o,{createElement:n,node:r}),s&&=V(`span`,{class:`${t}__operations`,ignore:`active,expand`},[s]),s}}}function Ik(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Khe(e){for(var t=1;t0),`${s}__item--tip-highlight`,!r&&n&&i===0)),a},E=function(e){var t=[],n=l(e),r=d(e);r&&t.push(r),n&&t.push(n);var i=u(e);i&&t.push(i);var a=f(e);return a&&t.push(a),t};return{hasLazyLoadHolder:x,tRowHeight:S,renderItemNode:function(t){var n=e.node,r=e.props;if(!n)return null;var i=n.level,a=n.value,o=w(),s=T(),l=e;return l.stateId=r.stateId,V(`div`,{ref:`treeItemRef`,class:s,"data-value":a,"data-level":i,style:o,onClick:function(e){return c(e)},draggable:!n.isDisabled()&&n.isDraggable(),onDragstart:function(e){return h(e)},onDragend:function(e){return g(e)},onDragover:function(e){return _(e)},onDragleave:function(e){return v(e)},onDrop:function(e){return y(e)}},[x.value?[V(`div`,null,null)]:E(t)])}}}function Lk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Rk(e){for(var t=1;t=0&&(e===`trigger`?(l=!0,d=!0):e===`ignore`&&(l=!1)),t.indexOf(`active`)>=0&&e===`ignore`&&(u=!1)}),!(l&&(a(c),d))&&(u&&o(c),Ak(n,r,`click`,{node:c.getModel(),e:i}),t.mouseEvent=null)}}}}function Xhe(e){var t=e.store,n=e.scope,r=e.allNodes,i=e.nodes,a=e.virtualConfig,o=Yhe(e),s=o.handleClick,c=o.handleChange,l=I(!1),u=new Map,d=function(){r.value=t.getNodes()},f=function(){if(!a?.isVirtualScroll.value){var e=[],n=!1;r.value.forEach(function(t){t.visible&&(n=!0,u.set(t.value,t.value)),u.has(t.value)&&e.push(t)}),u.forEach(function(e){t.getNode(e)||u.delete(e)}),i.value=e,l.value=!n}},p=function(){if(a?.isVirtualScroll.value){var e=a.visibleData.value;i.value=e,l.value=e.length<=0}},m=function(e,t,r,i){var a=t.VIRTUAL_SCROLL_INDEX||r,o=t[ZT];return V(Jhe,{key:o,rowIndex:a,stateId:i,itemKey:o,treeScope:n,onClick:s,onChange:c},null)};return R(r,f),R(a.visibleData,p),d(),f(),p(),t.emitter.on(`update`,d),{nodesEmpty:l,renderTreeNodes:function(e){var t=`render-${new Date().getTime()}`;return i.value.map(function(n,r){return m(e,n,r,t)})}}}function zk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bk(e){for(var t=1;t0&&s.replaceChecked(c.value),Array.isArray(u.value)&&u.value.length>0&&s.replaceExpanded(u.value),Array.isArray(l.value)&&l.value.length>0&&s.replaceActived(l.value),t!=null&&t.onLoad&&t?.onLoad(r),n.emit(`load`,r)},v=function(e){s.reload(e||[]),s.refreshNodes(),Array.isArray(c.value)&&s.setChecked(c.value),f(),Array.isArray(l.value)&&s.setActived(l.value),s.refreshState()};function y(){s.setConfig({keys:o}),d(),s.append(t.data||[]),s.refreshNodes(),Array.isArray(c.value)&&s.setChecked(c.value),f(),Array.isArray(l.value)&&s.setActived(l.value),s.emitter.on(`load`,_),s.emitter.on(`update`,h)}return y(),e.setStore(s),R(function(){return W(c.value||[])},function(e){s.replaceChecked(e)}),R(function(){return W(u.value||[])},function(e){s.replaceExpanded(e)}),R(function(){return W(l.value||[])},function(e){s.replaceActived(e)}),R(r.filter,function(e,t){g(e,t)}),R(r.keys,function(e){s.setConfig({keys:e})}),R(r.expandAll,function(e){if(e){var t=s.getNodes().filter(function(e){return Array.isArray(e.children)&&e.children.length}).map(function(e){return e.value});s.setExpanded(t)}else s.replaceExpanded(m),m=null}),{store:s,rebuild:v,checkFilterExpand:g,updateStoreConfig:d,updateExpanded:f,expandFilterPath:h}}function Vk(e){return e&&(isNaN(Number(e))?e:`${e}px`)}function ege(e){var t=e.props,n=Q(`tree`).value,r=Q().value,i=e.virtualConfig,a=e.isScrolling,o=e.refProps,s=o.height,c=o.maxHeight;return{treeClasses:U(function(){var e=[n],o=t.disabled,s=t.hover,c=t.transition,l=t.checkable,u=t.draggable,d=t.expandOnClickNode,f=t.scroll;return o&&e.push(`${r}-is-disabled`),s&&e.push(`${n}--hoverable`),l&&e.push(`${n}--checkable`),u&&e.push(`${n}--draggable`),c&&e.push(`${n}--transition`),d&&e.push(`${n}--block-node`),i?.isVirtualScroll.value?(e.push(`${n}__vscroll`),a.value&&e.push(`${n}--scrolling`)):f&&f.type===`lazy`&&e.push(`${n}__lazyload`),e}),treeContentStyles:U(function(){return{height:Vk(s.value),maxHeight:Vk(c.value),overflowY:Vk(s.value)||Vk(c.value)?`auto`:void 0}}),scrollStyles:U(function(){var e=`translateY(${i?.isVirtualScroll.value?i?.translateY.value:0}px)`;return{transform:e,"-ms-transform":e,"-moz-transform":e,"-webkit-transform":e}}),cursorStyles:U(function(){var e=`translate(0, ${i?.isVirtualScroll.value?i?.translateY.value:0}px)`;return{transform:e,"-ms-transform":e,"-moz-transform":e,"-webkit-transform":e}})}}var tge={activable:Boolean,activeMultiple:Boolean,actived:{type:Array,default:void 0},defaultActived:{type:Array},allowDrop:{type:Function},allowFoldNodeOnFilter:Boolean,checkProps:{type:Object},checkStrictly:Boolean,checkable:Boolean,data:{type:Array,default:function(){return[]}},disableCheck:{type:[Boolean,Function],default:!1},disabled:Boolean,draggable:Boolean,empty:{type:[String,Function],default:``},expandAll:Boolean,expandLevel:{type:Number,default:0},expandMutex:Boolean,expandOnClickNode:Boolean,expandParent:Boolean,expanded:{type:Array,default:void 0},defaultExpanded:{type:Array,default:function(){return[]}},filter:{type:Function},height:{type:[String,Number]},hover:Boolean,icon:{type:[Boolean,Function],default:!0},keys:{type:Object},label:{type:[String,Boolean,Function],default:!0},lazy:{type:Boolean,default:!0},line:{type:[Boolean,Function],default:!1},load:{type:Function},maxHeight:{type:[String,Number]},operations:{type:Function},scroll:{type:Object},transition:{type:Boolean,default:!0},value:{type:Array,default:void 0},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:function(){return[]}},valueMode:{type:String,default:`onlyLeaf`,validator:function(e){return!e||[`onlyLeaf`,`parentFirst`,`all`].includes(e)}},onActive:Function,onChange:Function,onClick:Function,onDragEnd:Function,onDragLeave:Function,onDragOver:Function,onDragStart:Function,onDrop:Function,onExpand:Function,onLoad:Function,onScroll:Function};function Hk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Uk(e){for(var t=1;t=0}}),j=U(function(){return c.value||e.disabled}),M=U(function(){return w.value&&p.value?.label||e.placeholder||s.value.placeholder}),ee=U(function(){return[`${o.value}-select__dropdown`,`narrow-scrollbar`]}),N=U(function(){return{small:`s`,medium:`m`,large:`l`}[e.size]}),P=U(function(){return e.valueType===`object`}),F=U(function(){return e.multiple?P.value?K(x.value)?x.value.map(function(e){return e.value}):[]:K(x.value)?x.value.map(function(e){return e}):[]:[]}),te=U(function(){return e.multiple&&!!e.max&&K(x.value)&&e.max<=x.value.length}),ne=U(function(){return!$d(e.treeProps)&&!$d(e.treeProps.keys)?e.treeProps.keys.label||`label`:e.keys?.label||`label`}),re=U(function(){return!$d(e.treeProps)&&!$d(e.treeProps.keys)?e.treeProps.keys.value||`value`:e.keys?.value||`value`}),ie=U(function(){return!$d(e.treeProps)&&!$d(e.treeProps.keys)?e.treeProps.keys.children||`children`:e.keys?.children||`children`});mr(ly(Ey.mark(function t(){return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:k(),!x.value&&e.defaultValue&&ae(e.defaultValue,null,`uncheck`),P.value?d.value=K(x.value)?x.value.map(function(e){return e?.value}):[x.value?.value]:d.value=K(x.value)?x.value:[x.value],me();case 1:case`end`:return t.stop()}},t)})));var ae=function(e,t,n){S(e,{node:t,trigger:n}),me()},oe=function(t){var n,r=e.multiple?[]:``;d.value=[],ae(r,null,`clear`),(n=e.onClear)==null||n.call(e,{e:t.e})},se=function(e,t){var n=e;P.value&&(n=e.map(_e)),ae(n,t.node,`check`)},ce=function(t,n){if(e.multiple||T(!1,n),!(e.multiple||!n.node.actived)&&x.value!==n.node.data[re.value]){var r=t;r=P.value?_e($d(t)?``:t[0]):$d(t)?``:t[0],ae(r,n.node,`check`),d.value=t}},le=function(e){f.value=e},ue=function(){me()},de=function(t){var n;if(!w.value){var r;(r=e.onSearch)==null||r.call(e,String(t));return}O(t),(n=e.onSearch)==null||n.call(e,String(t))},fe=function(t,n){var r,i=n.trigger,a=n.index;[`tag-remove`,`backspace`].includes(i)&&K(x.value)&&x.value.splice(a,1),(r=e.onRemove)==null||r.call(e,{value:t,data:null,e:n&&n.e}),ae(x.value,null,i)},pe=function(e,t){T(e,t),e&&t.trigger===`trigger-element-click`&&O(``)},me=function(){var t=ly(Ey.mark(function t(){return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:e.multiple?e.multiple?K(x.value)?p.value=ge():p.value=[]:p.value=null:x.value||x.value===0?p.value=he():p.value=``;case 1:case`end`:return t.stop()}},t)}));return function(){return t.apply(this,arguments)}}(),he=function(){return _e(P.value?x.value.value:x.value)},ge=function(){return x.value.map(function(e){return _e(P.value?e.value:e)})},_e=function(t){if(u.value){var n=u.value.getItem(t);if(n)return Kk(Kk({},n.data),{},{label:n.data[ne.value],value:n.data[re.value]})}return ve(e.data,t)||{label:t,value:t}},ve=function(e,t){for(var n=0,r=e.length;n0&&arguments[0]!==void 0?arguments[0]:`RGB`,t=arguments.length>1?arguments[1]:void 0,n=t&&Object.keys(Zk).find(function(t){return t in Zk&&Zk[t]===e})||e;if(!Qk[n])return[];var r=W(Qk[n]);return t&&e!==`CMYK`&&r.push({type:`inputNumber`,key:`a`,min:0,max:100,format:function(e){return`${e}%`},flex:1.15}),r},kge=`color-picker`,bA=function(e){var t=Q(kge);return U(function(){return e?`${t.value}-${e}`:t.value})},xA={borderless:Boolean,clearable:Boolean,colorModes:{type:Array,default:function(){return[`monochrome`,`linear-gradient`]}},disabled:{type:Boolean,default:void 0},enableAlpha:Boolean,enableMultipleGradient:{type:Boolean,default:!0},format:{type:String,default:`RGB`,validator:function(e){return!e||[`HEX`,`HEX8`,`RGB`,`RGBA`,`HSL`,`HSLA`,`HSV`,`HSVA`,`CMYK`,`CSS`].includes(e)}},inputProps:{type:Object},popupProps:{type:Object},recentColors:{type:Array,default:void 0},defaultRecentColors:{type:Array,default:function(){return[]}},selectInputProps:{type:Object},showPrimaryColorPreview:{type:Boolean,default:!0},size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},swatchColors:{type:Array,default:void 0},value:{type:String,default:void 0},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:``},onChange:Function,onClear:Function,onPaletteBarChange:Function,onRecentColorsChange:Function};function SA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function CA(e){for(var t=1;t2&&r>=0&&r<=i-1){n.splice(r,1),n[r]||(r=n[r+1]?r+1:n[r-1]?r-1:0);var a=n[r];p(n,!0),f(a?.id)}}},y=function(t){if(!(e.disabled||!e.enableMultipleGradient)){var n=uA(t.offsetX/i.width*100,e.color.rgba);l.value.push(n),p(l.value,!0),f(n.id)}};return mr(function(){var e=r.value.getBoundingClientRect();i.left=e.left,i.width=e.width||176}),_r(function(){window.removeEventListener(`mousemove`,g,!1),window.removeEventListener(`mouseup`,_,!1),window.removeEventListener(`contextmenu`,_,!1)}),function(){var i=e.color,a=i.linearGradient,o=i.gradientColors,u=lA({points:o,degree:90});return V(`div`,{class:`${t.value}__gradient`},[V(`div`,{class:`${t.value}__gradient-slider`},[V(`div`,{class:[`${t.value}__slider`,`${t.value}--bg-alpha`],onKeyup:v,tabindex:0,ref:r},[V(`ul`,{class:`gradient-thumbs`,onClick:y,style:{background:u}},[l.value.map(function(e){var r=`${Math.round(e.left*100)/100}%`;return V(`li`,{class:[`${t.value}__thumb`,`gradient-thumbs__item`,c.value===e.id?n.active:``],key:e.id,title:`${e.color} ${r}`,style:{color:e.color,left:r},onClick:function(e){return e.stopPropagation()},onMousedown:function(){return h(e.id)}},[V(`span`,{class:[`gradient-thumbs__item-inner`,`${t.value}--bg-alpha`]},null)])})])])]),V(`div`,{class:`${t.value}__gradient-degree`,title:`${s.value}deg`},[V(fC,{size:`small`,theme:`normal`,min:0,max:360,step:1,format:function(e){return`${e}°`},modelValue:s.value,"onUpdate:modelValue":function(e){return s.value=e},onBlur:d,onEnter:d,disabled:e.disabled},null)]),V(`div`,{class:[`${t.value}__gradient-preview`,`${t.value}--bg-alpha`]},[V(`span`,{class:`preview-inner`,style:{background:a}},null)])])}}}),Rge=z({name:`SaturationPanel`,props:EA,setup:function(e){var t=bA(),n=I(),r=I(null),i=I(null),a=Dt({width:230,height:168}),o=U(function(){var t=e.color,n=t.saturation,r=t.value,i=a.width,o=a.height,s=Math.round((1-r)*o),c=Math.round(n*i);return{color:e.color.rgb,left:`${c}px`,top:`${s}px`}}),s=function(e){var t=a.width,n=a.height,r=e.x,i=e.y;return{saturation:Math.round(r/t*100),value:Math.round((1-i/n)*100)}},c=function(t,n){if(!e.disabled){var r=s(t),i=r.saturation,a=r.value;e.onChange({saturation:i/100,value:a/100,addUsedColor:n})}},l=function(t){e.disabled||dn(function(){c(t,!0)})},u=U(function(){return`hsl(${e.color.hue}, 100%, 50%)`});return mr(function(){a.width=n.value.offsetWidth||230,a.height=n.value.offsetHeight||168,i.value=new _A(n.value,{start:function(){a.width=n.value.offsetWidth,a.height=n.value.offsetHeight},drag:function(e){c(e)},end:l})}),_r(function(){i.value.destroy()}),function(){return V(`div`,{class:[`${t.value}__saturation`],ref:n,style:{background:u.value}},[V(`span`,{class:[`${t.value}__thumb`],role:`slider`,tabindex:0,ref:r,style:o.value},null)])}}});function FA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function IA(e){for(var t=1;t0?V(`span`,{role:`button`,class:`${t.value}__icon`,onClick:function(){return d()}},[V(r,null,null)]):null]):null}()]),V(`ul`,{class:[`${n}--items`,`narrow-scrollbar`]},[e.colors.map(function(r){return V(`li`,{class:[`${n}--item`,l(r)&&e.editable?a.active:``],title:r,key:r,onClick:function(){e.disabled||c(r)}},[V(`div`,{class:[`${n}--color`,`${t.value}--bg-alpha`]},[V(`span`,{class:`${n}--inner`,style:{background:r}},null)])])})])])}}});function RA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zge(e){for(var t=1;t-1&&e.splice(n,1),e.unshift(t),e.length>100&&(e.length=100),w(e)}},w=function(e){g(e)},T=function(t){p(x.value.getFormattedColor(e.format,e.enableAlpha),{color:fA(x.value),trigger:t||`palette-saturation-brightness`})};R(function(){return f.value},function(t){var n=_(t);v.value=n,x.value.isGradient=n===`linear-gradient`,x.value.getFormattedColor(e.format,e.enableAlpha)!==t&&x.value.update(t)});var E=function(e){v.value=e;var t=e===`linear-gradient`;x.value.isGradient=t,t?x.value.update(x.value.gradientColors.length>0?x.value.linearGradient:Yk):x.value.update(x.value.rgba),T()},D=function(e){var t=e.saturation,n=e.value,r=x.value,i=r.saturation,a=r.value,o=`palette-saturation-brightness`;if(n!==a&&t!==i)x.value.saturation=t,x.value.value=n,o=`palette-saturation-brightness`;else if(t!==i)x.value.saturation=t,o=`palette-saturation`;else if(n!==a)x.value.value=n,o=`palette-brightness`;else return;T(o)},O=function(t){var n;x.value.hue=t,T(`palette-hue-bar`),(n=e.onPaletteBarChange)==null||n.call(e,{color:fA(x.value)})},k=function(e){x.value.alpha=e,T(`palette-alpha-bar`)},A=function(e,t){x.value.update(e),x.value.alpha=t,T(`input`)},j=function(e){var t=e.key,n=e.payload,r=`palette-saturation-brightness`;switch(t){case`degree`:x.value.gradientDegree=n,r=`input`;break;case`selectedId`:x.value.gradientSelectedId=n;break;case`colors`:x.value.gradientColors=n;break}T(r)},M=function(e,t){var n=_(e);v.value=n,x.value.isGradient=n===`linear-gradient`,x.value.update(e),T(t)};return function(){var n={color:x.value,disabled:e.disabled},r=e.colorModes.length===1&&e.colorModes.includes(`linear-gradient`),s=h.value;r&&Array.isArray(s)&&(s=s.filter(function(e){return dA.isGradientColor(e)}));var c=!!Array.isArray(s),l=e.swatchColors;sf(l)&&(l=W(sge)),of(l)&&(l=[]),r&&(l=l.filter(function(e){return dA.isGradientColor(e)}));var u=Array.isArray(l)&&l.length;return V(`div`,{class:[`${t.value}__panel`,e.disabled?o.disabled:!1]},[V(Pge,H(e,{mode:v.value,onModeChange:E}),null),V(`div`,{class:[`${t.value}__body`]},[y.value?V(Lge,H(n,{onChange:j,enableMultipleGradient:e.enableMultipleGradient}),null):null,V(Rge,H(n,{onChange:D}),null),V(`div`,{class:[`${t.value}__sliders-wrapper`]},[V(`div`,{class:[`${t.value}__sliders`]},[V(Fge,H(n,{onChange:O}),null),e.enableAlpha?V(Nge,H(n,{onChange:k}),null):null]),e.showPrimaryColorPreview?V(`div`,{class:[`${t.value}__sliders-preview`,`${t.value}--bg-alpha`]},[V(`span`,{class:`${t.value}__sliders-preview-inner`,style:{background:y.value?x.value.linearGradient:x.value.rgba}},null)]):null]),V(Mge,H(e,{color:x.value,format:S.value,onInputChange:A}),null),function(){return!u&&!c?null:V(bi,null,[V(`div`,{class:`${t.value}__swatches-wrap`},[c?V(LA,H(n,{title:i(a.value.recentColorTitle),editable:!0,colors:s,handleAddColor:C,onSetColor:function(e){return M(e,`recent`)},onChange:w}),null):null,u?V(LA,H(n,{title:i(a.value.swatchColorTitle),colors:l,onSetColor:function(e){return M(e,`preset`)}}),null):null])])}()])])}}});function BA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function VA(e){for(var t=1;tn-l.value*2?`scale(${(n-l.value*2)/r})`:`scale(1)`)};return mr(function(){dn(function(){_()})}),gr(function(){dn(function(){_()})}),R(function(){return e.image},function(e){e&&(c.value=!0)}),function(){var a=n(`default`,`content`),l=r(`icon`),u=l&&!a,f=e.shape,_=e.image,v=e.alt,y=[`${t.value}`,i.value[d.value],G(G(G({},`${t.value}--circle`,f===`circle`),`${t.value}--round`,f===`round`),`${t.value}__icon`,!!u)];return a=V(`span`,{ref:s,style:JA({},h.value)},[a]),l&&(a=[l,u?``:a]),_&&c.value&&(a=V(KA,H({style:JA({},m.value),src:_,alt:v,error:``,loading:``,onError:g},e.imageProps),null)),V(`div`,{ref:o,class:y,style:JA({},p.value)},[a])}}}),qge={cascading:{type:String,default:`right-up`,validator:function(e){return!e||[`left-up`,`right-up`].includes(e)}},collapseAvatar:{type:[String,Function]},max:{type:Number},popupProps:{type:Object},size:{type:String,default:``}};function Jge(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Mi(e)}var Yge=z({name:`TAvatarGroup`,props:qge,setup:function(e){Cn(`avatarGroup`,e);var t=pm(),n=Q(`avatar`),r=Q(`avatar-group`),i=function(t){if(t?.length>e.max){var r=a(t),i=t.slice(0,e.max);return i.push(V(YA,{class:`${n.value}__collapse`,size:e.size},Jge(r)?r:{default:function(){return[r]}})),i}return t},a=function(n){return t(`collapseAvatar`)||`+${n.length-e.max}`};return function(){var a=t(`default`),o=e.cascading,s=e.max,c=[`${r.value}`,G(G({},`${n.value}--offset-right`,o===`right-up`),`${n.value}--offset-left`,o===`left-up`)],l=s&&s>=0?[i(Tp(a))]:[a];return V(`div`,{class:c},[l])}}}),Xge=X(YA),Zge=X(Yge),Qge=X(z({name:`TBadge`,inheritAttrs:!1,props:{color:{type:String,default:``},content:{type:[String,Function]},count:{type:[String,Number,Function],default:0},default:{type:[String,Function]},dot:Boolean,maxCount:{type:Number,default:99},offset:{type:Array},shape:{type:String,default:`circle`,validator:function(e){return[`circle`,`round`].includes(e)}},showZero:Boolean,size:{type:String,default:`medium`,validator:function(e){return[`small`,`medium`].includes(e)}}},setup:function(e,t){var n=t.attrs,r=hm(),i=pm(),a=U(function(){var t=i(`count`);return Number.isNaN(Number(t))?t:(t=Number(e.count),t>e.maxCount?`${e.maxCount}+`:t)}),o=function(){if(!e.offset)return{};var t=Y(e.offset,2),n=t[0],r=t[1];return n=Number.isNaN(Number(n))?n:`${n}px`,r=Number.isNaN(Number(r))?r:`${r}px`,{xOffset:n,yOffset:r}},s=Q(),c=Q(`badge`),l=U(function(){return!e.showZero&&(a.value===0||a.value===`0`)}),u=U(function(){return[G(G(G(G({},`${c.value}--dot`,!!e.dot),`${c.value}--circle`,!e.dot&&e.shape===`circle`),`${c.value}--round`,!e.dot&&e.shape===`round`),`${s.value}-size-s`,e.size===`small`)]}),d=U(function(){var t=o(),n=t.xOffset,r=t.yOffset;return{background:e.color,right:n,top:r}});return function(){return V(`div`,H({class:c.value},n),[r(`default`,`content`),l.value?null:V(`sup`,{class:u.value,style:d.value},[e.dot?null:a.value])])}}})),$ge={cell:{type:[String,Function]},cellAppend:{type:[String,Function]},controllerConfig:{type:[Boolean,Object],default:void 0},fillWithZero:{type:Boolean,default:void 0},firstDayOfWeek:{type:Number,validator:function(e){return!e||[1,2,3,4,5,6,7].includes(e)}},format:{type:String,default:`YYYY-MM-DD`},head:{type:[String,Function]},isShowWeekendDefault:{type:Boolean,default:!0},mode:{type:String,default:`month`,validator:function(e){return!e||[`month`,`year`].includes(e)}},month:{type:[String,Number]},multiple:Boolean,preventCellContextmenu:Boolean,range:{type:Array},theme:{type:String,default:`full`,validator:function(e){return!e||[`full`,`card`].includes(e)}},value:{type:[String,Array,Date]},week:{type:[Array,Function]},year:{type:[String,Number]},onCellClick:Function,onCellDoubleClick:Function,onCellRightClick:Function,onControllerChange:Function,onMonthChange:Function},XA=`calendar`,ZA=1970,QA={1:`一`,2:`二`,3:`三`,4:`四`,5:`五`,6:`六`,7:`日`},$A=function(e){var t=Z(e).day();return t===0&&(t=7),t},e_e=function(e){var t=``,n=e.toString();return n in QA&&(t=QA[n]),t},t_e=function(e,t){var n=0,r=$A(t);return n=r>=e?r-e:7-e+r,n},ej=function(e,t){var n=new Date(e);return n.setDate(n.getDate()+t),n},n_e=function(e,t){for(var n=t.curSelectedYear,r=t.curDate,i=t.curDateList,a=e.format,o=e.multiple,s=[],c=function(e){var t=new Date(n,e-1),c=o?!!i.find(function(t){return t.year()===n&&parseInt(t.format(`M`),10)===e}):r.year()===n&&parseInt(r.format(`M`),10)===e;s.push({mode:`year`,isCurrent:c,date:t,formattedDate:Z(t).format(a),filterDate:null,formattedFilterDate:null,isShowWeekend:!0})},l=1;l<=12;l++)c(l);return s},r_e=function(e,t){for(var n=t.curSelectedYear,r=t.curSelectedMonth,i=t.realFirstDayOfWeek,a=t.curDate,o=t.curDateList,s=e.format,c=e.multiple,l=[],u=Z(`${n}-${r}`).startOf(`month`).toDate(),d=Z(Z(`${n}-${r}`).endOf(`month`).format(`YYYY-MM-DD`)).toDate(),f=d.getDate(),p=t_e(i,u),m=[],h=1,g=function(e,t,n,r){return{mode:`month`,belongTo:e,isCurrent:t,day:$A(n),weekOrder:r,date:n,formattedDate:Z(n).format(s),filterDate:null,formattedFilterDate:null,isShowWeekend:!0}},_=function(e){return c?!!o.find(function(t){return t.isSame(Z(e))}):a.isSame(Z(e))},v=0;v0&&(n.curSelectedYear=t)}function a(e){var t=parseInt(e?`${e}`:tj().format(`M`),10);!isNaN(t)&&t>0&&t<=12&&(n.curSelectedMonth=t)}function o(e){K(e)?n.curDate=e&&e.length?Z(e[0]):tj():n.curDate=e?Z(e):tj()}function s(e){K(e)?n.curDateList=e&&e.length?e.map(function(e){return Z(e)}):[tj()]:n.curDateList=e?[Z(e)]:[tj()]}function c(e){var t=!0;return n.isShowWeekend||(t=e!==6&&e!==7),t}return R(function(){return e.firstDayOfWeek},function(){n.realFirstDayOfWeek=e.firstDayOfWeek??t.value.firstDayOfWeek??1},{immediate:!0}),R(function(){return e.value},function(t){e.multiple?s(t):o(t)},{immediate:!0}),R(function(){return e.year},function(e){i(e)},{immediate:!0}),R(function(){return e.month},function(e){a(e)},{immediate:!0}),R(function(){return e.isShowWeekendDefault},function(e){n.isShowWeekend=e},{immediate:!0}),R(function(){return e.mode},function(e){n.curSelectedMode=e},{immediate:!0}),R(function(){return e.theme},function(e){e===`card`&&(n.controlSize=`small`),e===`full`&&(n.controlSize=`medium`)},{immediate:!0}),{state:n,toToday:r,checkDayVisible:c}}function a_e(e,t){var n=Q(XA);return{body:U(function(){return[`${n.value}`,`${n.value}--${e.theme}`]}),panel:U(function(){return[`${n.value}__panel`,`${n.value}__panel--${t.curSelectedMode}`]}),control:U(function(){return[`${n.value}__control`]}),title:U(function(){return[`${n.value}__title`]}),controlSection:U(function(){return[`${n.value}__control-section`]}),controlSectionCell:U(function(){return[`${n.value}__control-section-cell`]}),controlTag:U(function(){return[`${n.value}__control-tag`]}),table:U(function(){return[`${n.value}__table`]}),tableHead:U(function(){return[`${n.value}__table-head`]}),tableHeadRow:U(function(){return[`${n.value}__table-head-row`]}),tableHeadCell:U(function(){return[`${n.value}__table-head-cell`]}),tableBody:U(function(){return[`${n.value}__table-body`]}),tableBodyRow:U(function(){return[`${n.value}__table-body-row`]})}}function o_e(){var e=Q(XA);return{tableBodyCell:U(function(){return[`${e.value}__table-body-cell`]}),tableBodyCell4Now:U(function(){return`${e.value}__table-body-cell--now`}),tableBodyCellDisplay:U(function(){return[`${e.value}__table-body-cell-display`]}),tableBodyCellCsontent:U(function(){return[`${e.value}__table-body-cell-content`]})}}function nj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rj(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:!0,disabled:!1,mode:{visible:!0,radioGroupProps:{}},year:{visible:!0,selectProps:{}},month:{visible:!0,selectProps:{}},weekend:{visible:!0,showWeekendButtonProps:{},hideWeekendButtonProps:{}},current:{visible:!0,currentDayButtonProps:{},currentMonthButtonProps:{}}}};function s_e(e,t){var n=Rp(XA).globalConfig,r=U(function(){var n=Z(`${t.curSelectedYear}-${t.curSelectedMonth}`);return{isShowWeekend:t.isShowWeekend,filterDate:n.toDate(),formattedFilterDate:n.format(e.format),mode:t.curSelectedMode}}),i=U(function(){var t=e.controllerConfig??n.value.controllerConfig??!0;return Gd(t)?ij(t):rj(rj({},ij()),t)}),a=U(function(){return!!i.value&&i.value.visible});function o(e){var t=!0,n=i.value;return(!n||!n.visible||n[e]===!1||n[e]&&!n[e].visible)&&(t=!1),t}function s(e,t){var n=!1,r=i.value;return r&&(r.disabled||r[e]&&r[e][t]&&r[e][t].disabled)&&(n=!0),n}function c(){dn(function(){q(e.onControllerChange)&&e.onControllerChange(rj({},r.value))})}return{options:r,configData:i,visible:a,checkControllerVisible:o,checkControllerDisabled:s,emitControllerChange:c}}function c_e(e,t){var n=Rp(XA),r=n.t,i=n.globalConfig,a=U(function(){return e.week||r(i.value.week).split(`,`)});function o(e){var t=a.value;return Do(t)&&t[e-1]?t[e-1]:e_e(e)}return{cellColHeaders:U(function(){for(var e=[],n=1,r=7,i=t.realFirstDayOfWeek;i<=r;i++)e.push({num:i,display:o(i)});if(t.realFirstDayOfWeek>n)for(var a=n;ao:e===r?n=to)}return n}function g(){var e,t;if((e=m.value)!=null&&e.from&&(t=m.value)!=null&&t.to){var n=Z(m.value.from).year(),r=Z(m.value.to).year(),i=parseInt(Z(m.value.from).format(`M`),10);h(c.curSelectedYear,c.curSelectedMonth)&&(c.curSelectedMonth=c.curSelectedYear===n?i:c.curSelectedYear===r?1:c.curSelectedMonth)}}R(function(){return{year:`${c.curSelectedYear}`,month:`${c.curSelectedMonth}`}},function(t){q(e.onMonthChange)&&e.onMonthChange(uj({},t)),p.emitControllerChange()});var _={yearSelectOptionList:U(function(){var e=[],t=c.curSelectedYear-10,n=c.curSelectedYear+10;m.value&&m.value.from&&m.value.to&&(t=Z(m.value.from).year(),n=Z(m.value.to).year()),t<1970&&(t=ZA),n<1970&&(n=ZA);for(var r=t;r<=n;r++)e.push({value:r,label:a(o.value.yearSelection,{year:r}),disabled:!1});return e}),isYearSelectVisible:U(function(){return p.checkControllerVisible(`year`)}),isYearSelectDisabled:U(function(){return p.checkControllerDisabled(`year`,`selectProps`)}),monthSelectOptionList:U(function(){g();for(var e=[],t=1;t<=12;t++){var n=h(c.curSelectedYear,t);e.push({value:t,label:a(o.value.monthSelection,{month:t}),disabled:n})}return e}),isMonthSelectVisible:U(function(){return c.curSelectedMode===`month`&&p.checkControllerVisible(`month`)}),isMonthSelectDisabled:U(function(){return p.checkControllerDisabled(`month`,`selectProps`)})},v={optionList:U(function(){return[{value:`month`,label:a(o.value.monthRadio)},{value:`year`,label:a(o.value.yearRadio)}]}),isVisible:U(function(){return p.checkControllerVisible(`mode`)}),isDisabled:U(function(){return p.checkControllerDisabled(`mode`,`radioGroupProps`)})},y={text:U(function(){return c.isShowWeekend?a(o.value.hideWeekend):a(o.value.showWeekend)}),vBind:U(function(){var e=p.configData.value.weekend;return c.isShowWeekend?e.hideWeekendButtonProps:e.showWeekendButtonProps}),isVisible:U(function(){return e.theme===`full`&&p.checkControllerVisible(`current`)&&p.checkControllerVisible(`weekend`)}),isDisabled:U(function(){var e=c.isShowWeekend?`hideWeekendButtonProps`:`showWeekendButtonProps`;return p.checkControllerDisabled(`weekend`,e)})},b={text:U(function(){return c.curSelectedMode===`month`?a(o.value.today):a(o.value.thisMonth)}),vBind:U(function(){var e=p.configData.value.current;return c.curSelectedMode===`month`?e.currentDayButtonProps:e.currentMonthButtonProps}),isVisible:U(function(){return e.theme===`full`&&p.checkControllerVisible(`current`)}),isDisabled:U(function(){var e=c.curSelectedMode===`month`?`currentDayButtonProps`:`currentMonthButtonProps`;return p.checkControllerDisabled(`current`,e)})},x=function(){var e;return V(`div`,{class:d.control.value},[V(`div`,{class:d.title.value},[r(`head`,void 0,{params:uj({},p.options.value)})]),V(`div`,{class:d.controlSection.value},[_.isYearSelectVisible.value&&V(`div`,{class:d.controlSectionCell.value},[V(bw,H({modelValue:c.curSelectedYear,"onUpdate:modelValue":function(e){return c.curSelectedYear=e},size:c.controlSize,autoWidth:!0},p.configData.value.year.selectProps,{disabled:_.isYearSelectDisabled.value,options:_.yearSelectOptionList.value}),null)]),_.isMonthSelectVisible.value&&V(`div`,{class:d.controlSectionCell.value},[V(bw,H({autoWidth:!0,modelValue:c.curSelectedMonth,"onUpdate:modelValue":function(e){return c.curSelectedMonth=e},size:c.controlSize},p.configData.value.month.selectProps,{disabled:_.isMonthSelectDisabled.value,options:_.monthSelectOptionList.value}),null)]),v.isVisible.value&&V(`div`,{class:d.controlSectionCell.value,style:`height: auto`},[V(ZO,H({modelValue:c.curSelectedMode,"onUpdate:modelValue":function(e){return c.curSelectedMode=e},variant:`default-filled`,size:c.controlSize},p.configData.value.mode.radioGroupProps,{disabled:v.isDisabled.value,onChange:p.emitControllerChange}),f_e(e=v.optionList.value.map(function(e){return V(QO,{key:e.value,value:e.value},{default:function(){return[e.label]}})}))?e:{default:function(){return[e]}})]),y.isVisible.value&&V(`div`,{class:d.controlSectionCell.value},[V(IC,H({class:d.controlTag.value,size:`large`},y.vBind.value,{disabled:y.isDisabled.value,onClick:function(){c.isShowWeekend=!c.isShowWeekend,p.emitControllerChange()}}),{default:function(){return[y.text.value]}})]),b.isVisible.value&&V(`div`,{class:d.controlSectionCell.value},[V(mh,H({size:c.controlSize},b.vBind.value,{disabled:b.isDisabled.value,onClick:function(){l()}}),{default:function(){return[b.text.value]}})])])])},S=function(t,n,r){if(q(e[t])){var i={cell:uj(uj({},r),p.options.value),e:n};e[t](i)}},C=function(t,n){var r=Z(n.date);e.multiple?c.curDateList.find(function(e){return e.isSame(r)})?c.curDateList=qae(c.curDateList,function(e){return!e.isSame(r)}):c.curDateList.push(r):c.curDate=r,S(`onCellClick`,t,n)},w=function(e,t){S(`onCellDoubleClick`,e,t)},T=function(t,n){e.preventCellContextmenu&&t.preventDefault(),S(`onCellRightClick`,t,n)},E=U(function(){return r_e(e,c)}),D=function(){return V(`table`,{class:d.table.value},[V(`thead`,{class:d.tableHead.value},[V(`tr`,{class:d.tableHeadRow.value},[f.value.map(function(t,n){return u(t.num)&&V(`th`,{class:d.tableHeadCell.value},[K(e.week)?e.week[n]:r(`week`,void 0,{defaultNode:V(`span`,null,[t.display]),params:{day:t.num}})])})])]),V(`tbody`,{class:d.tableBody.value},[E.value.map(function(t,r){return V(`tr`,{class:d.tableBodyRow.value},[t.map(function(t,i){return(c.isShowWeekend||t.day<6)&&V(cj,{key:`d-${r}-${i}`,item:t,theme:e.theme,t:a,global:o.value,cell:e.cell,cellAppend:e.cellAppend,fillWithZero:e.fillWithZero,onClick:function(e){return C(e,t)},onDblclick:function(e){return w(e,t)},onRightclick:function(e){return T(e,t)}},uj({},n))})])})])])},O=U(function(){for(var t=[],n=n_e(e,c),r=Math.ceil(n.length/4),i=0,a=1;a<=r;a++){for(var o=[],s=1;s<=4;s++)o.push(n[i]),i+=1;t.push(o)}return t}),k=function(){return V(`table`,{class:d.table.value},[V(`tbody`,{class:d.tableBody.value},[O.value.map(function(t,r){return V(`tr`,{class:d.tableBodyRow.value},[t.map(function(t,i){return V(cj,{key:`m-${r}-${i}`,item:t,theme:e.theme,t:a,global:o.value,cell:e.cell,cellAppend:e.cellAppend,fillWithZero:e.fillWithZero,onClick:function(e){return C(e,t)},onDblclick:function(e){return w(e,t)},onRightclick:function(e){return T(e,t)}},uj({},n))})])})])])};return function(){return V(`div`,{class:d.body.value},[p.visible.value&&x(),V(`div`,{class:d.panel.value},[c.curSelectedMode===`month`?D():k()])])}}})),m_e=X(z({name:`TCard`,props:{actions:{type:[String,Function]},avatar:{type:[String,Function]},bordered:{type:Boolean,default:!0},bodyClassName:{type:String},bodyStyle:{type:Object},content:{type:[String,Function]},cover:{type:[String,Function]},default:{type:[String,Function]},description:{type:[String,Function]},footer:{type:[String,Function]},footerClassName:{type:String},footerStyle:{type:Object},header:{type:[String,Function]},headerClassName:{type:String},headerStyle:{type:Object},headerBordered:Boolean,hoverShadow:Boolean,loading:{type:[Boolean,Function],default:!1},loadingProps:{type:Object},shadow:Boolean,size:{type:String,default:`medium`,validator:function(e){return!e||[`medium`,`small`].includes(e)}},status:{type:String,default:``},subtitle:{type:[String,Function]},theme:{type:String,default:`normal`,validator:function(e){return!e||[`normal`,`poster1`,`poster2`].includes(e)}},title:{type:[String,Function]}},setup:function(e,t){var n=t.slots,r=pm(),i=Q(`card`),a=ym().SIZE,o=U(function(){var t=[i.value];return e.size===`small`&&t.push(`${a.value[e.size]}`),e.bordered&&t.push(`${i.value}--bordered`),e.shadow&&t.push(`${i.value}--shadow`),e.hoverShadow&&t.push(`${i.value}--shadow-hover`),t}),s=U(function(){return[`${i.value}__header`,e.headerBordered&&`${i.value}__title--bordered`]}),c=Q(`card__header-wrapper`),l=Q(`card__avatar`),u=Q(`card__title`),d=Q(`card__subtitle`),f=Q(`card__description`),p=Q(`card__actions`),m=Q(`card__body`),h=Q(`card__cover`),g=Q(`card__footer`),_=Q(`card__footer-wrapper`),v=U(function(){return e.theme===`poster2`}),y=U(function(){return e.title||n.title}),b=U(function(){return e.header||n.header}),x=U(function(){return e.subtitle||n.subtitle}),S=U(function(){return e.avatar||n.avatar}),C=U(function(){return e.description||n.description}),w=U(function(){return e.status||n.status}),T=U(function(){return e.actions||n.actions}),E=U(function(){return e.footer||n.footer}),D=U(function(){return e.cover||n.cover}),O=U(function(){return e.loading||n.loading}),k=U(function(){return e.content||n.content||e.default||n.default}),A=U(function(){return b.value||y.value||x.value||C.value||S.value||w.value&&v.value||T.value&&!v.value}),j=U(function(){return E.value||T.value&&v.value}),M=function(){var t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return V(`div`,{class:o.value},[A.value?ee():null,D.value?N():null,(k.value||t)&&V(uh,H({loading:t},e.loadingProps),{default:function(){return[V(`div`,{class:[m.value,e.bodyClassName],style:e.bodyStyle},[r(`default`)||r(`content`)])]}}),j.value&&V(`div`,{class:[g.value,e.footerClassName],style:e.footerStyle},[V(`div`,{class:_.value},[r(`footer`)]),T.value&&v.value&&V(`div`,{class:p.value},[r(`actions`)])])])},ee=function(){return b.value?V(`div`,{class:[s.value,e.headerClassName],style:e.headerStyle},[r(`header`)]):V(`div`,{class:[s.value,e.headerClassName],style:e.headerStyle},[V(`div`,{class:c.value},[S.value&&V(`div`,{class:l.value},[r(`avatar`)]),V(`div`,null,[y.value&&V(`div`,{class:u.value},[r(`title`)]),x.value&&V(`div`,{class:d.value},[r(`subtitle`)]),C.value&&V(`p`,{class:f.value},[r(`description`)])])]),T.value&&!v.value&&V(`div`,{class:p.value},[r(`actions`)]),w.value&&V(`div`,{class:p.value},[r(`status`)])])},N=function(){var t=Rd(e.cover);return V(`div`,{class:h.value},[t?V(`img`,{src:e.cover},null):r(`cover`)])};return function(){var e=r(`loading`);return e?O.value?e:M():M(!!O.value)}}})),h_e={actions:{type:Array},author:{type:[String,Function]},avatar:{type:[String,Object,Function]},content:{type:[String,Function]},datetime:{type:[String,Function]},quote:{type:[String,Function]},reply:{type:[String,Function]}};function g_e(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Mi(e)}var __e=X(z({name:`TComment`,props:h_e,setup:function(){var e=Q(`comment`),t=pm(),n=cm();return function(){var r=t(`reply`),i=t(`author`),a=t(`datetime`),o=t(`quote`),s=t(`actions`),c=t(`content`),l=t(`avatar`),u=U(function(){return i||a}),d=r?V(`div`,{class:`${e.value}__reply`},[r]):null,f=o?V(`div`,{class:`${e.value}__quote`},[o]):null,p=l?V(`div`,{class:`${e.value}__avatar`},[Rd(l)?V(`img`,{src:l,alt:``,class:`${e.value}__avatar-image`},null):l]):null,m=u.value&&V(`div`,{class:`${e.value}__author`},[i&&V(`span`,{class:`${e.value}__name`},[i]),a&&V(`span`,{class:`${e.value}__time`},[a])]),h=V(`div`,{class:`${e.value}__content`},[m,V(`div`,{class:`${e.value}__detail`},[c]),f,function(){if(!s||!s.length)return null;var t=n(s);return V(`div`,{class:`${e.value}__actions`},[t.map(function(e,t){return V(mh,{key:`action-${t}`,size:`small`,variant:`text`},g_e(e)?e:{default:function(){return[e]}})})])}()]);return V(`div`,{class:e.value},[V(`div`,{class:`${e.value}__inner`},[p,h]),d])}}})),v_e={action:{type:Function},description:{type:[String,Function]},image:{type:[String,Function]},imageStyle:{type:Object},size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},title:{type:[String,Function]},type:{type:String,default:`empty`,validator:function(e){return!e||[`empty`,`success`,`fail`,`network-error`,`maintenance`].includes(e)}}},y_e=z({name:`MaintenanceSvg`,setup:function(){return function(){return V(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 48 48`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[V(`g`,{id:`路况事件-traffic-events`},[V(`g`,{id:`Subtract`},[V(`path`,{d:`M29.5237 17L24 3.82812L18.4763 17H29.5237Z`,fill:`var(--td-text-color-placeholder)`},null),V(`path`,{d:`M31.2011 21H16.7989L13.6699 28.4615H34.3301L31.2011 21Z`,fill:`var(--td-text-color-placeholder)`},null),V(`path`,{d:`M36.0076 32.4615H11.9924L9.66997 37.9997H6V41.9997H42V37.9997H38.33L36.0076 32.4615Z`,fill:`var(--td-text-color-placeholder)`},null)])])])}}}),b_e=z({name:`NetworkErrorSvg`,setup:function(){return function(){return V(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 48 48`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[V(`g`,{id:`æ—\xA0网络-no-network`},[V(`g`,{id:`Union`},[V(`path`,{d:`M26 17V2H22V17H26Z`,fill:`var(--td-text-color-placeholder)`},null),V(`path`,{d:`M26.0078 20H22V24.0078H26.0078V20Z`,fill:`var(--td-text-color-placeholder)`},null),V(`path`,{d:`M2.75751 13.45C7.29713 9.80916 12.553 7.50276 18 6.53088V28H30V6.53052C35.4475 7.50216 40.7038 9.80854 45.2438 13.4497L46.8021 14.6995L24.0006 43.2016L1.19922 14.6998L2.75751 13.45Z`,fill:`var(--td-text-color-placeholder)`},null)])])])}}}),x_e=z({name:`EmptySvg`,setup:function(){return function(){return V(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 48 48`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[V(`g`,{id:`æ—\xA0结果-no-result`},[V(`g`,{id:`Union`},[V(`path`,{d:`M22 0H26V8H22V0Z`,fill:`var(--td-text-color-placeholder)`},null),V(`path`,{d:`M10.002 1.17157L7.17353 4L13.002 9.82843L15.8304 7L10.002 1.17157Z`,fill:`var(--td-text-color-placeholder)`},null),V(`path`,{"fill-rule":`evenodd`,"clip-rule":`evenodd`,d:`M2 27.4689L10.8394 12H37.1606L46 27.4689V44H2V27.4689ZM13.1606 16L7.44636 26H17.8025L18.1889 27.5015C18.8551 30.0898 21.207 32 24 32C26.793 32 29.1449 30.0898 29.8111 27.5015L30.1975 26H40.5536L34.8394 16H13.1606Z`,fill:`var(--td-text-color-placeholder)`},null),V(`path`,{d:`M37.998 1.17157L32.1696 7L34.998 9.82843L40.8265 4L37.998 1.17157Z`,fill:`var(--td-text-color-placeholder)`},null)])])])}}}),S_e=z({name:`FailSvg`,setup:function(){return function(){return V(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 48 48`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[V(`path`,{"fill-rule":`evenodd`,"clip-rule":`evenodd`,d:`M24 6C14.0589 6 6 14.0589 6 24C6 33.9411 14.0589 42 24 42C33.9411 42 42 33.9411 42 24C42 14.0589 33.9411 6 24 6ZM2 24C2 11.8497 11.8497 2 24 2C36.1503 2 46 11.8497 46 24C46 36.1503 36.1503 46 24 46C11.8497 46 2 36.1503 2 24ZM26 13V28H22V13H26ZM22 31H26.0078V35.0078H22V31Z`,fill:`#D54941`},null)])}}}),C_e=z({name:`SuccessSvg`,setup:function(){return function(){return V(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 48 48`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},[V(`path`,{"fill-rule":`evenodd`,"clip-rule":`evenodd`,d:`M24 42C33.9411 42 42 33.9411 42 24C42 14.0589 33.9411 6 24 6C14.0589 6 6 14.0589 6 24C6 33.9411 14.0589 42 24 42ZM46 24C46 36.1503 36.1503 46 24 46C11.8497 46 2 36.1503 2 24C2 11.8497 11.8497 2 24 2C36.1503 2 46 11.8497 46 24ZM21 32.8284L12.1716 24L15 21.1716L21 27.1716L33 15.1716L35.8284 18L21 32.8284Z`,fill:`#2BA471`},null)])}}}),w_e=X(z({name:`TEmpty`,components:{TImage:KA},props:v_e,setup:function(e,t){var n=t.slots,r=Wt(e),i=r.size,a=r.image,o=r.description,s=r.title,c=r.type,l=Rp(`empty`).globalConfig,u=Q(`empty`),d=U(function(){return e.action||n.action}),f=ym().SIZE,p=pm(),m=U(function(){return{maintenance:{image:l.value.image.maintenance||y_e,title:l.value.titleText.maintenance},success:{image:l.value.image.success||C_e,title:l.value.titleText.success},fail:{image:l.value.image.fail||S_e,title:l.value.titleText.fail},"network-error":{image:l.value.image.networkError||b_e,title:l.value.titleText.networkError},empty:{image:l.value.image.empty||x_e,title:l.value.titleText.empty}}}),h=U(function(){return[u.value,f.value[i.value]]}),g=[`${u.value}__title`],_=[`${u.value}__image`],v=[`${u.value}__description`],y=[`${u.value}__action`],b=U(function(){return m.value[c.value]??null}),x=U(function(){var e;return a.value||(n==null||(e=n.image)==null?void 0:e.call(n))||b.value?.image}),S=U(function(){var e;return s.value||(n==null||(e=n.title)==null?void 0:e.call(n))||b.value?.title}),C=U(function(){var e;return o.value||(n==null||(e=n.description)==null?void 0:e.call(n))}),w=function(){return S.value?V(`div`,{class:g},[S.value]):null},T=function(){return C.value?V(`div`,{class:v},[C.value]):null},E=function(){var e=x.value,t=null;return Rd(e)?t=V(KA,{src:e},null):e&&Reflect.has(e,`setup`)?t=sa(e):gc(e)&&(t=V(KA,e,null)),t};return function(){return V(`div`,{class:h.value},[x.value?V(`div`,{class:_,style:e.imageStyle},[n!=null&&n.image?p(`image`):E()]):null,w(),T(),d.value?V(`div`,{class:y},[p(`action`)]):null])}}})),T_e={max:2,min:.5,step:.2,defaultScale:1},E_e=function(e,t){var n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return r.leftn.right||r.topn.bottom},dj=1,D_e=function(e){return e>0?-1:1},O_e=-90;function k_e(e){var t=e%360;return t===0?0:Math.abs(t)>180?(t+360)%360:t}function fj(e,t,n){return Math.max(t,Math.min(n,e))}function A_e(e,t,n,r){return fj(oC(e,t),n,r)}function j_e(e,t,n,r){return fj(sC(e,t),n,r)}function pj(e,t,n){if(!(n?.mouseOffsetX==null||n?.mouseOffsetY==null)){var r=t/e,i=n?.currentTranslate??{},a=i.translateX,o=a===void 0?0:a,s=i.translateY,c=s===void 0?0:s,l=n.mouseOffsetX,u=n.mouseOffsetY;return{translateX:r*o+(1-r)*l,translateY:r*c+(1-r)*u}}}function M_e(e,t,n,r,i){var a=A_e(e,t,n,r);return{newScale:a,zoomResult:{newTranslate:pj(e,a,i)}}}function N_e(e,t,n,r,i){var a=j_e(e,t,n,r);return{newScale:a,zoomResult:{newTranslate:pj(e,a,i)}}}function mj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hj(e){for(var t=1;tl?f():p(),l=i}},onTouchEnd:function(){l=0}}}function L_e(){var e=I(0);return{rotate:e,onRotate:function(){e.value+=O_e},resetRotate:function(){var t=k_e(e.value);t!==0&&(e.value-=t)}}}var _j=z({name:`TImageItem`,props:{rotate:Number,scale:Number,mirror:Number,src:[String,Object],placementSrc:[String,Object],isSvg:Boolean,imageReferrerpolicy:String},setup:function(e,t){var n=t.expose,r=Wt(e),i=r.src,a=r.placementSrc,o=r.isSvg,s=Q(),c=I(!1),l=I(!1),u=P_e({translateX:0,translateY:0}),d=u.transform,f=u.mouseDownHandler,p=u.resetTransform,m=Rp(`imageViewer`).globalConfig.value.errorText,h=I(),g=I(),_=`${s.value}-image-viewer__modal-box--transitioning`,v=null,y=null,b=function(){var e=g.value;e&&(y&&=(clearTimeout(y),null),e.classList.remove(_),v&&=(e.removeEventListener(`transitionend`,v),null))};n({modalBoxRef:g,transform:d,resetTransform:p,enableTransition:function(){var e=g.value;if(e){b(),e.getBoundingClientRect(),e.classList.add(_),y=setTimeout(b,350);var t=function(e){e.propertyName===`transform`&&b()};v=t,e.addEventListener(`transitionend`,t)}}});var x=U(function(){return{transform:`rotateZ(${e.rotate}deg) scale(${e.scale})`,display:!e.placementSrc||l.value?`block`:`none`}}),S=U(function(){return{transform:`rotateZ(${e.rotate}deg) scale(${e.scale})`,display:l.value?`none`:`block`}}),C=U(function(){var t=d.value;return{transform:`translate(${t.translateX}px, ${t.translateY}px) scale(${e.mirror}, 1)`}}),w=function(){c.value=!1,l.value=!1,o.value&&T(E.value)},T=function(){var e=ly(Ey.mark(function e(t){var n,r,i,a,o,u,d,f,p,m,g,_,v;return Ey.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,fetch(t);case 1:if(r=e.sent,r.ok){e.next=2;break}throw c.value=!0,Error(`Failed to fetch SVG: ${r.statusText}`);case 2:return e.next=3,r.text();case 3:if(i=e.sent,a=Coe(i),a){e.next=4;break}return c.value=!0,e.abrupt(`return`);case 4:o=h.value,o.innerHTML=``,(n=o.classList)==null||n.add(`${s.value}-image-viewer__modal-image-svg`),u=o.attachShadow({mode:`closed`}),d=document.createElement(`div`),d.style.background=`var(--td-bg-color-container)`,d.style.padding=`4px`,d.style.borderRadius=`4px`,d.style.maxHeight=`100%`,d.style.maxWidth=`100%`,d.style.boxSizing=`border-box`,d.style.height=`auto`,d.innerHTML=a,u.appendChild(d),f=d.querySelector(`svg`),f&&(p=f.getAttribute(`viewBox`),p?(m=p.split(/[\s,]/).filter(function(e){return e}).map(parseFloat),g=m[2],d.style.width=`${g}px`):(_=f.getBBox(),v=`${_.x} ${_.y} ${_.width} ${_.height}`,f.setAttribute(`viewBox`,v),d.style.width=`${_.width}px`),f.style.maxHeight=`100%`,f.style.maxWidth=`100%`,f.style.height=`auto`,f.style.display=`block`,f.style.lineHeight=`normal`),l.value=!0;case 5:case`end`:return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),E=Em(i).previewUrl,D=Em(a).previewUrl;return R([E,D],function(){w()}),mr(ly(Ey.mark(function e(){return Ey.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!o.value){e.next=1;break}return e.next=1,T(E.value);case 1:case`end`:return e.stop()}},e)}))),function(){return V(`div`,{class:`${s.value}-image-viewer__modal-pic`},[V(`div`,{ref:g,class:`${s.value}-image-viewer__modal-box`,style:C.value},[c.value&&V(`div`,{class:`${s.value}-image-viewer__img-error`},[V(`div`,{class:`${s.value}-image-viewer__img-error-content`},[V(w_,{size:`4em`},null),V(`div`,{class:`${s.value}-image-viewer__img-error-text`},[m])])]),!c.value&&!!e.placementSrc&&D.value&&V(`img`,{class:`${s.value}-image-viewer__modal-image`,onMousedown:function(e){e.stopPropagation(),f(e)},onTouchstart:function(e){e.stopPropagation(),f(e)},src:D.value,style:S.value,referrerpolicy:e.imageReferrerpolicy,alt:`image`,draggable:`false`},null),!c.value&&E.value&&!o.value&&V(`img`,{class:`${s.value}-image-viewer__modal-image`,onMousedown:function(e){e.stopPropagation(),f(e)},onTouchstart:function(e){e.stopPropagation(),f(e)},src:E.value,onLoad:function(){return l.value=!0},onError:function(){return c.value=!0},style:x.value,referrerpolicy:e.imageReferrerpolicy,alt:`image`,draggable:`false`},null),!c.value&&E.value&&o.value&&V(`div`,{ref:h,class:`${s.value}-image-viewer__modal-image`,onMousedown:function(e){e.stopPropagation(),f(e)},onTouchstart:function(e){e.stopPropagation(),f(e)},"data-alt":`svg`,style:x.value,draggable:`false`},null)])])}}}),vj=z({name:`TImageModalIcon`,props:{disabled:Boolean,onClick:Function,label:String,icon:Function},setup:function(e){var t=Q(),n=pm(),r=U(function(){return[`${t.value}-image-viewer__modal-icon`,G({},`${t.value}-is-disabled`,e.disabled)]});return function(){return V(`div`,{class:r.value,onClick:e.onClick},[n(`icon`),e.label&&V(`span`,{class:`${t.value}-image-viewer__modal-icon-label`},[e.label])])}}}),yj={attach:{type:[String,Function]},body:{type:[String,Function]},cancelBtn:{type:[String,Object,Function,null]},closeBtn:{type:[String,Boolean,Function],default:!0},closeOnEscKeydown:{type:Boolean,default:void 0},closeOnOverlayClick:{type:Boolean,default:void 0},confirmBtn:{type:[String,Object,Function,null]},confirmLoading:{type:Boolean,default:void 0},confirmOnEnter:Boolean,default:{type:[String,Function]},destroyOnClose:Boolean,dialogClassName:{type:String,default:``},dialogStyle:{type:Object},draggable:Boolean,footer:{type:[Boolean,Function],default:!0},header:{type:[String,Boolean,Function],default:!0},lazy:Boolean,mode:{type:String,default:`modal`,validator:function(e){return!e||[`modal`,`modeless`,`normal`,`full-screen`].includes(e)}},placement:{type:String,default:`top`,validator:function(e){return!e||[`top`,`center`].includes(e)}},preventScrollThrough:{type:Boolean,default:!0},showInAttachedElement:Boolean,showOverlay:{type:Boolean,default:!0},theme:{type:String,default:`default`,validator:function(e){return!e||[`default`,`info`,`warning`,`danger`,`success`].includes(e)}},top:{type:[String,Number]},visible:Boolean,width:{type:[String,Number]},zIndex:{type:Number},onBeforeClose:Function,onBeforeOpen:Function,onCancel:Function,onClose:Function,onCloseBtnClick:Function,onClosed:Function,onConfirm:Function,onEscKeydown:Function,onOpened:Function,onOverlayClick:Function};function bj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xj(e){for(var t=1;t`u`||!navigator||/(Chrome|Safari)/i.test(navigator.userAgent))return e;var t=document.createElement(`div`);t.style.cssText=`width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;`,document.body.appendChild(t);var n=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),/Firefox/.test(navigator.userAgent)&&(n-=4),Zm()<=11&&(n=12),n}function Cj(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document.body;return e===document.body?window.innerWidth-document.documentElement.clientWidth:e.offsetWidth-e.clientWidth}function wj(e){return Number.isNaN(Number(e))?e:`${Number(e)}px`}function B_e(e){var t=e,n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight;t.addEventListener(`mousedown`,function(e){var i=e.clientX-t.offsetLeft,a=e.clientY-t.offsetTop,o=t.offsetWidth,s=t.offsetHeight;if(o>n||s>r)return;function c(e){var o=e.clientX-i,s=e.clientY-a;o<0&&(o=0),s<0&&(s=0),n-t.offsetWidth-o<0&&(o=n-t.offsetWidth),r-t.offsetHeight-s<0&&(s=r-t.offsetHeight),t.style.position=`absolute`,t.style.left=`${o}px`,t.style.top=`${s}px`}function l(){document.removeEventListener(`mousemove`,c),document.removeEventListener(`mouseup`,l)}document.addEventListener(`mousemove`,c),document.addEventListener(`mouseup`,l),document.addEventListener(`dragend`,l)})}var V_e={body:{type:[String,Function]},cancelBtn:{type:[String,Object,Function]},closeBtn:{type:[String,Boolean,Function],default:!0},confirmBtn:{type:[String,Object,Function]},confirmLoading:{type:Boolean,default:void 0},footer:{type:[Boolean,Function]},header:{type:[String,Boolean,Function],default:!0},theme:{type:String,default:`default`,validator:function(e){return!e||[`default`,`info`,`warning`,`danger`,`success`].includes(e)}},onCancel:Function,onCloseBtnClick:Function,onConfirm:Function};function Tj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ej(e){for(var t=1;tdocument.documentElement.clientHeight?Cj():0;u.value=document.createElement(`style`),u.value.dataset.id=`td_dialog_${+new Date}_${U_e+=1}`,u.value.innerHTML=` + html body { + overflow-y: hidden; + width: calc(100% - ${t}px); + } + `,e.visible&&w(e.visible)}),_r(function(){w(!1),S()});var ne=U(function(){var t=e.destroyOnClose,n=e.visible,r=e.lazy;return b.value?n||!t:!r});return function(){var r=[(d.value||p.value)&&V(`div`,{key:`mask`,class:h.value},null),te()],i={zIndex:e.zIndex},a=[`${n.value}__ctx`,G(G(G({},`${n.value}__ctx--fixed`,d.value||p.value||f.value),`${n.value}__ctx--absolute`,d.value&&e.showInAttachedElement),`${n.value}__ctx--modeless`,f.value)];return V(Ln,{disabled:!e.attach||!c.value,to:c.value},{default:function(){return[V(va,{duration:300,name:`${n.value}-zoom__vue`,onBeforeEnter:M,onAfterEnter:ee,onBeforeLeave:N,onAfterLeave:P},{default:function(){return[ne.value&&xn(V(`div`,H({class:a,style:i},t.attrs),[r]),[[Na,e.visible]])]}})]}})}}});function Aj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jj(e){for(var t=1;t=oe.value.length?p.value:e,{trigger:`next`})},de=function(e){m(e,{trigger:`current`})},fe=function(t){e.onDownload?e.onDownload(t):Z_e(t)},pe=function(e){nf(e)&&de(e),_(!0)},me=function(t){var n;_(!1),(n=e.onClose)==null||n.call(e,t)},he=function(e){me({e,trigger:`close-btn`})},ge=function(t){e.closeOnOverlay&&me({e:t,trigger:`overlay`})},_e=function(t){switch(t.stopPropagation(),t.code){case Rj.left:le();break;case Rj.right:ue();break;case Rj.up:j();break;case Rj.down:M();break;case Rj.esc:e.closeOnEscKeydown&&ce()&&me({e:t,trigger:`esc`});break;default:break}},ve=I(),ye=I();R(function(){return g.value},function(e){clearTimeout(y.value),e?(v.value=!1,dn().then(function(){var e,t;(e=ve.value)==null||(t=e.focus)==null||t.call(e)}),ae()):y.value=setTimeout(function(){v.value=!0},200)}),_r(function(){clearTimeout(y.value)});var be=function(e){e.preventDefault();var t=e.deltaY>0,n=ve.value,r=ye.value?.modalBoxRef;if(!n||!r){t?M():j();return}if(t&&E_e(n,r)){var i=M({mouseOffsetX:0,mouseOffsetY:0,currentTranslate:ye.value?.transform??{translateX:0,translateY:0}});if(i!=null&&i.newTranslate){var a,o;(a=ye.value)==null||(o=a.enableTransition)==null||o.call(a),ye.value.transform=i.newTranslate}}else t?M():j()},xe=function(){var e=ve.value;e&&(e.addEventListener(`wheel`,be,{passive:!1}),document.addEventListener(`touchstart`,N,{passive:!1}),document.addEventListener(`touchmove`,P,{passive:!1}),document.addEventListener(`touchend`,F))},Se=function(){var e=ve.value;e&&e.removeEventListener(`wheel`,be),document.removeEventListener(`touchstart`,N),document.removeEventListener(`touchmove`,P),document.removeEventListener(`touchend`,F)};R(function(){return g.value},function(e){e?dn().then(function(){return xe()}):Se()}),_r(function(){Se()});var Ce=U(function(){return{transform:`translateX(calc(-${p.value} * (40px / 9 * 16 + 4px)))`}}),we=function(){return V(`div`,{class:S.value},[V(vj,{icon:function(){return V(sg,null,null)},class:`${n.value}__header-pre-bt`,onClick:w},null),V(`div`,{class:`${n.value}__header-prev`},[V(`div`,{class:`${n.value}__header-trans`,style:Ce.value},[oe.value.map(function(e,r){return V(`div`,{key:r,class:[`${n.value}__header-box`,G({},`${t.value}-is-active`,r===p.value)]},[V(KA,{src:e.thumbnail||e.mainImage,error:``,class:`${n.value}__header-img`,onClick:function(){return de(r)}},null)])})])])])},Te=function(){var e=r(`title`);return V(`div`,{class:`${n.value}__modal-index`},[e||`${p.value+1}/${oe.value.length}`])},Ee=function(e){var t=r(`navigationArrow`,V(fg,{style:{transform:`rotate(${e===`prev`?0:180}deg)`},size:`24px`},null));return V(vj,{class:`${n.value}__modal-${e}-bt`,onClick:e===`prev`?le:ue,icon:function(){return t}},null)},De=function(){if(e.closeBtn!==!1)return V(`div`,{class:[`${n.value}__modal-icon`,`${n.value}__modal-close-bt`],onClick:he},[r(`closeBtn`,V(Og,{size:`24px`},null))])},Oe=function(){var e=oe.value[0]||``,t=typeof e==`string`?e:e.thumbnail||e.mainImage;return V(`div`,{class:`${n.value}__trigger`},[V(KA,{src:t,alt:`preview`,fit:`contain`,class:`${n.value}__trigger-img`},null),V(`div`,{class:`${n.value}__trigger--hover`,onClick:function(){return pe()}},[V(`span`,null,[V(zh,{size:`1.4em`,class:`${n.value}__trigger-icon`},null),i.value.previewText])])])};return function(){return e.mode===`modeless`?V(bi,null,[Dp(`trigger`)?r(`trigger`,{params:{open:pe}}):Oe(),V(G_e,{zIndex:C.value,visible:g.value,index:p.value,images:oe.value,scale:A.value,rotate:ne.value,mirror:E.value,currentImage:se.value,onRotate:re,onZoomIn:j,onZoomOut:M,onMirror:D,onReset:ae,onClose:me,onDownload:fe,draggable:e.draggable,showOverlay:o.value,title:Te,imageReferrerpolicy:d.value},null)]):V(bi,null,[Dp(`trigger`)?r(`trigger`,{params:{open:pe}}):Oe(),V(Ln,{disabled:!e.attach||!b.value,to:b.value},{default:function(){return[V(va,null,{default:function(){return[(g.value||!v.value)&&xn(V(`div`,{ref:ve,class:x.value,style:{zIndex:C.value},tabindex:-1,onKeydown:_e},[!!o.value&&V(`div`,{class:`${n.value}__modal-mask`,onClick:ge},null),oe.value.length>1&&V(bi,null,[we(),Te(),Ee(`prev`),Ee(`next`)]),De(),V(Lj,{zIndex:C.value+1,onZoomIn:j,onZoomOut:M,onMirror:D,onReset:ae,onRotate:re,onDownload:fe,scale:A.value,currentImage:se.value},null),V(_j,{ref:ye,scale:A.value,rotate:ne.value,mirror:E.value,src:se.value.mainImage,placementSrc:se.value.thumbnail,isSvg:se.value.isSvg,imageReferrerpolicy:d.value},null)]),[[Na,g.value]])]}})]}})])}}})),Hj=z({name:`TListItem`,props:{action:{type:[String,Function]},content:{type:[String,Function]},default:{type:[String,Function]}},setup:function(){var e=Q(`list-item`),t=pm();return function(){var n=t(`content`),r=t(`default`),i=t(`action`);return V(`li`,{class:e.value},[V(`div`,{class:`${e.value}-main`},[r||n,i&&V(`li`,{class:`${e.value}__action`},[i])])])}}}),eve={asyncLoading:{type:[String,Function]},footer:{type:[String,Function]},header:{type:[String,Function]},layout:{type:String,default:`horizontal`,validator:function(e){return!e||[`horizontal`,`vertical`].includes(e)}},scroll:{type:Object},size:{type:String,default:`medium`,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},split:Boolean,stripe:Boolean,onLoadMore:Function,onScroll:Function};function Uj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Wj(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function nve(e,t){if(e){if(typeof e==`string`)return Gj(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Gj(e,t):void 0}}function Gj(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=n.value.length){Vp.error(`List`,`${a} does not exist in data, check \`index\` or \`key\` please.`);return}r.scrollToElement(qj(qj({},e),{},{index:a-1}))}}},ave=z({name:`TList`,props:eve,setup:function(e,t){var n=t.expose,r=I(),i=Rp(`list`).globalConfig,a=Q(`list`),o=ym().SIZE,s=pm(),c=rve().listItems,l=ive(e.scroll,r,c),u=l.virtualConfig,d=l.cursorStyle,f=l.listStyle,p=l.isVirtualScroll,m=l.onInnerVirtualScroll,h=l.scrollToElement,g=U(function(){return[`${a.value}`,o.value[e.size],G(G(G({},`${a.value}--split`,e.split),`${a.value}--stripe`,e.stripe),`${a.value}--vertical-action`,e.layout===`vertical`)]}),_=function(){var e=s(`header`),t=s(`footer`),n=u.isVirtualScroll.value;return V(bi,null,[e?V(`div`,{class:`${a.value}__header`},[e]):null,n?V(bi,null,[V(`div`,{style:d.value},null),V(`ul`,{class:`${a.value}__inner`,style:f.value},[u.visibleData.value.map(function(e){return V(bi,null,[V(Hj,Sf(e,`slots`),e.slots)])})])]):V(`ul`,{class:`${a.value}__inner`},[s(`default`)]),t?V(`div`,{class:`${a.value}__footer`},[t]):null])},v=function(t){var n,r=t.target,i=r.scrollTop,a=r.scrollHeight,o=r.clientHeight;p.value&&m(t),(n=e.onScroll)==null||n.call(e,{e:t,scrollTop:i,scrollBottom:a-o-i})},y=U(function(){return Rd(e.asyncLoading)&&[`loading`,`load-more`].includes(e.asyncLoading)?`${a.value}__load ${a.value}__load--${e.asyncLoading}`:`${a.value}__load`}),b=function(){if(e.asyncLoading&&Rd(e.asyncLoading)){if(e.asyncLoading===`loading`)return V(`div`,null,[V(uh,null,null),V(`span`,null,[i.value.loadingText])]);if(e.asyncLoading===`load-more`)return V(`span`,null,[i.value.loadingMoreText])}return s(`asyncLoading`)},x=function(t){var n;Rd(e.asyncLoading)&&e.asyncLoading!==`load-more`||(n=e.onLoadMore)==null||n.call(e,{e:t})};return n({scrollTo:h}),function(){var e=[_(),V(`div`,{class:y.value,onClick:x},[b()])];return V(`div`,{class:g.value,onScroll:v,ref:r,style:p.value?`position:relative`:void 0},[e])}}}),ove=z({name:`TListItemMeta`,props:{avatar:{type:[String,Function]},description:{type:[String,Function]},image:{type:[String,Function]},title:{type:[String,Function]}},setup:function(e,t){var n=Q(`list-item__meta`),r=hm(),i=pm(),a=function(){(e.avatar||t.slots.avatar)&&console.warn("`avatar` is going to be deprecated, please use `image` instead");var i=r(`avatar`,`image`);if(i)return Rd(i)?V(`div`,{class:`${n.value}-avatar`},[V(`img`,{src:i},null)]):V(`div`,{class:`${n.value}-avatar`},[i])};return function(){var e=i(`title`),t=i(`description`),r=[a(),V(`div`,{class:`${n.value}-content`},[e&&V(`h3`,{class:`${n.value}-title`},[e]),t&&V(`p`,{class:`${n.value}-description`},[t])])];return V(`div`,{class:n.value},[r])}}}),sve=X(ave),cve=X(Hj),lve=X(ove),uve={color:{type:[String,Object,Array],default:``},label:{type:[String,Boolean,Function],default:!0},percentage:{type:Number,default:0},size:{type:[String,Number],default:`medium`},status:{type:String,validator:function(e){return!e||[`success`,`error`,`warning`,`active`].includes(e)}},strokeWidth:{type:[String,Number]},theme:{type:String,default:`line`,validator:function(e){return!e||[`line`,`plump`,`circle`].includes(e)}},trackColor:{type:String,default:``}},Jj={LINE:`line`,PLUMP:`plump`,CIRCLE:`circle`},Yj={SMALL:`small`,MEDIUM:`medium`,LARGE:`large`},Xj={SMALL:72,MEDIUM:112,LARGE:160},Zj={SMALL:14/Xj.SMALL,MEDIUM:20/Xj.MEDIUM,LARGE:36/Xj.LARGE},dve=[`success`,`error`,`warning`],fve=X(z({name:`TProgress`,props:uve,setup:function(e){var t=pm(),n=Q(),r=Q(`progress`),i=Tm({CloseCircleFilledIcon:Tg,CheckCircleFilledIcon:Qh,ErrorCircleFilledIcon:Zg,CloseIcon:Og,CheckIcon:ig,ErrorIcon:wce}),a=i.CloseCircleFilledIcon,o=i.CheckCircleFilledIcon,s=i.ErrorCircleFilledIcon,c=i.CloseIcon,l={success:i.CheckIcon,warning:i.ErrorIcon,error:c},u={success:o,warning:s,error:a},d=U(function(){return!e.status&&e.percentage>=100?`success`:e.status||`default`}),f=U(function(){var t={};if(e.strokeWidth){var n=Rd(e.strokeWidth)?e.strokeWidth:`${e.strokeWidth}px`;t.height=n,t.borderRadius=n}return e.trackColor&&(t.backgroundColor=e.trackColor),t}),p=U(function(){return{width:`${e.percentage}%`,background:e.color&&fse(e.color)}}),m=U(function(){return{stroke:Do(e.color)?``:e.color}}),h=U(function(){return{stroke:Do(e.trackColor)?``:e.trackColor}}),g=U(function(){var t=Xj.MEDIUM;if(!e.size)return t;var n=Yj.SMALL,r=Yj.LARGE,i=Yj.MEDIUM;switch(e.size){case n:t=Xj.SMALL;break;case i:t=Xj.MEDIUM;break;case r:t=Xj.LARGE;break;default:var a=Number(e.size);t=!isNaN(a)&&a>0?a:Xj.MEDIUM;break}return t}),_=U(function(){return g.value/2}),v=U(function(){return _.value-b.value/2}),y=U(function(){if(e.theme!==Jj.CIRCLE)return{};var t=g.value*Zj.MEDIUM;return g.value<=Xj.SMALL?t=g.value*Zj.SMALL:g.value>=Xj.LARGE&&(t=g.value*Zj.LARGE),{width:`${g.value}px`,height:`${g.value}px`,fontSize:`${t}px`}}),b=U(function(){var t=e.size===Yj.SMALL?4:6;return e.strokeWidth?Number(e.strokeWidth):t}),x=U(function(){var t=(g.value-b.value)/2,n=Math.PI*2*t,r=e.percentage/100;return`${n*r} ${n*(1-r)}`}),S=U(function(){return e.theme===Jj.CIRCLE?l:u}),C=function(){var t=`${e.percentage}%`,n=e.status||``;if(dve.includes(n)&&e.theme!==Jj.PLUMP){var i=S.value[n];i&&(t=V(i,{class:[`${r.value}__icon`]},null))}return t},w=I(!0),T=I(),E=U(function(){return w.value?`${r.value}--over-ten`:`${r.value}--under-ten`});function D(){return O.apply(this,arguments)}function O(){return O=ly(Ey.mark(function t(){var n;return Ey.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(e.theme!==Jj.PLUMP){t.next=3;break}if(!(!T.value||e.label===!1)){t.next=1;break}return t.abrupt(`return`);case 1:return t.next=2,dn();case 2:n=T.value.querySelector(`.${r.value}__info`)||T.value.nextElementSibling,w.value=T.value.clientWidth>n?.clientWidth+10;case 3:case`end`:return t.stop()}},t)})),O.apply(this,arguments)}return Nm(T,D),function(){var i=V(`div`,{class:`${r.value}__info`},[t(`label`,C())]);return V(`div`,{class:r.value},[e.theme===Jj.LINE&&V(`div`,{class:[`${r.value}--thin`,`${r.value}--status--${d.value}`,G({},`${n.value}-size-s`,e.size===`small`)]},[V(`div`,{class:`${r.value}__bar`,style:f.value},[V(`div`,{class:`${r.value}__inner`,style:p.value},null)]),i]),e.theme===Jj.PLUMP&&V(`div`,{class:[`${r.value}__bar ${r.value}--plump ${E.value}`,G({},`${r.value}--status--${d.value}`,d.value),G({},`${n.value}-size-s`,e.size===`small`)],style:f.value},[V(`div`,{class:`${r.value}__inner`,ref:T,style:p.value},[w.value&&i]),!w.value&&i]),e.theme===Jj.CIRCLE&&V(`div`,{class:`${r.value}--circle ${r.value}--status--${d.value}`,style:y.value},[i,V(`svg`,{width:g.value,height:g.value,viewBox:`0 0 ${g.value} ${g.value}`},[V(`circle`,{cx:_.value,cy:_.value,r:v.value,"stroke-width":b.value,fill:`none`,class:[`${r.value}__circle-outer`],style:h.value},null),e.percentage>0&&V(`circle`,{cx:_.value,cy:_.value,r:v.value,"stroke-width":b.value,fill:`none`,"stroke-linecap":`round`,class:[`${r.value}__circle-inner`],transform:`matrix(0,-1,1,0,0,${g.value})`,"stroke-dasharray":x.value,style:m.value},null)])])])}}})),pve={animation:{type:String,default:`none`,validator:function(e){return!e||[`gradient`,`flashed`,`none`].includes(e)}},content:{type:[String,Function]},default:{type:[String,Function]},delay:{type:Number,default:0},loading:{type:Boolean,default:!0},rowCol:{type:Array},theme:{type:String,default:`text`,validator:function(e){return!e||[`text`,`avatar`,`paragraph`,`avatar-text`,`tab`,`article`].includes(e)}}},mve={text:[1],avatar:[{type:`circle`,size:`56px`}],paragraph:[1,1,{width:`70%`}],"avatar-text":[[{type:`circle`},{type:`text`,height:`32px`}]],tab:[{height:`30px`},{height:`200px`}],article:[{type:`rect`,height:`30px`,width:`100%`},{type:`rect`,height:`200px`,width:`100%`},[{type:`text`,height:`30px`},{type:`text`,height:`30px`},{type:`text`,height:`30px`}],[{type:`text`,height:`30px`},{type:`text`,height:`30px`}],[{type:`text`,height:`30px`},{type:`text`,height:`30px`}],[{type:`text`,height:`30px`},{type:`text`,height:`30px`}]]},hve=function(e){var t=[`width`,`height`,`marginRight`,`marginLeft`,`margin`,`size`,`background`,`backgroundColor`],n=Object.create(null);return t.forEach(function(t){if(t in e){var r=e[t],i=nf(r)?`${r}px`:r;if(t===`size`){var a=[i,i];n.width=a[0],n.height=a[1]}else n[t]=i}}),n},Qj=X(z({name:`TSkeleton`,props:pve,setup:function(e,t){var n=t.slots,r=I(!1),i=Q(`skeleton`),a=hm(),o=function(t){return[`${i.value}__col`,`${i.value}--type-${t.type||`text`}`,G({},`${i.value}--animation-${e.animation}`,e.animation)]},s=function(e){var t=[];return t=K(e)?e:nf(e)?Array(e).fill({type:`text`}):[e],t.map(function(e){return V(`div`,{class:o(e),style:hve(e)},[q(e.content)?e.content(sa):e.content])})},c=function(t){var n=t||e.rowCol,r=function(){return[`${i.value}__row`]};return n.map(function(e){return V(`div`,{class:r()},[s(e)])})},l=null;return R(function(){return e.loading},function(t){if(!t){clearTimeout(l),r.value=!1;return}e.delay>0?l=setTimeout(function(){clearTimeout(l),r.value=!0},e.delay):r.value=!0},{immediate:!0}),function(){var t=a(`default`,`content`);if(n.default&&!r.value)return V(`div`,null,[t]);if(r.value){var o=[];return e.theme&&!e.rowCol&&o.push(c(mve[e.theme])),e.rowCol&&o.push(c(e.rowCol)),!e.theme&&!e.rowCol&&o.push(c([1,1,1,{width:`70%`}])),V(`div`,{class:i.value},[o])}}}})),gve={animation:{type:Object},animationStart:Boolean,color:{type:String,default:``},decimalPlaces:{type:Number},extra:{type:[String,Function]},format:{type:Function},loading:Boolean,prefix:{type:[String,Function]},separator:{type:String,default:`,`},suffix:{type:[String,Function]},title:{type:[String,Function]},trend:{type:String,validator:function(e){return!e||[`increase`,`decrease`].includes(e)}},trendPlacement:{type:String,default:`left`,validator:function(e){return!e||[`left`,`right`].includes(e)}},unit:{type:[String,Function]},value:{type:Number}},$j=function(e){return 1-Math.abs((e-1)**4)},_ve=function(){function e(t){var n=this,r=t.from,i=t.to,a=t.duration,o=a===void 0?200:a,s=t.onStart,c=t.onUpdate,l=c===void 0?function(){}:c,u=t.onFinish;Xp(this,e),G(this,`from`,void 0),G(this,`to`,void 0),G(this,`duration`,void 0),G(this,`onStart`,void 0),G(this,`onUpdate`,void 0),G(this,`onFinish`,void 0),G(this,`startTime`,void 0),G(this,`started`,void 0),G(this,`finished`,void 0),G(this,`timer`,void 0),G(this,`keys`,void 0),G(this,`time`,0),G(this,`elapsed`,0),this.from=r,this.to=i,this.duration=o,this.onStart=s,this.onUpdate=l,this.onFinish=u,this.startTime=Date.now(),this.started=!1,this.finished=!1,this.timer=null,this.keys={},Object.entries(r).forEach(function(e){var t=Y(e,2),r=t[0],i=t[1];n.to[r]===void 0&&(n.to[r]=i)}),Object.entries(i).forEach(function(e){var t=Y(e,2),r=t[0],i=t[1];n.from[r]===void 0&&(n.from[r]=i)})}return Yp(e,[{key:`update`,value:function(){var e=this;if(this.time=Date.now(),!(this.time=this.duration){var t;this.finished=!0,(t=this.onFinish)==null||t.call(this,this.keys);return}var n=Math.min(this.time-this.startTime,this.duration);this.elapsed=n;var r=$j(n/this.duration);if(Object.keys(this.to).forEach(function(t){var n=e.to[t]-e.from[t];e.keys[t]=e.from[t]+n*r}),!this.started){var i;(i=this.onStart)==null||i.call(this,this.keys),this.started=!0}this.onUpdate(this.keys)}}},{key:`polyfillStart`,value:function(){var e=this,t=$j((Date.now()-this.startTime)/this.duration);this.timer=setInterval(function(){e.update(),e.finished&&clearInterval(e.timer)},t)}},{key:`normalStart`,value:function(){var e=this,t=function(){e.update(),e.timer=requestAnimationFrame(t),e.finished&&(cancelAnimationFrame(e.timer),e.timer=null)};t()}},{key:`start`,value:function(){this.startTime=Date.now(),Zm()<10?this.polyfillStart():this.normalStart()}},{key:`stop`,value:function(){Zm()<10?clearInterval(this.timer):cancelAnimationFrame(this.timer),this.timer=null}}])}(),vve={black:`var(--td-text-color-primary)`,blue:`var(--td-brand-color)`,red:`var(--td-error-color)`,orange:`var(--td-warning-color)`,green:`var(--td-success-color)`};function yve(e,t,n){var r={minimumFractionDigits:t??0,maximumFractionDigits:t??20,useGrouping:!!n};return e.toLocaleString(void 0,r).replace(/,|,/g,n)}var bve=X(z({name:`TStatistic`,props:gve,setup:function(e,t){var n=t.expose,r=Q(`statistic`),i=pm(),a=Tm({ArrowTriangleUpFilledIcon:Fse,ArrowTriangleDownFilledIcon:Nse}),o=a.ArrowTriangleUpFilledIcon,s=a.ArrowTriangleDownFilledIcon,c={increase:V(o,null,null),decrease:V(s,null,null)},l=U(function(){return nf(e.value)?e.value:0}),u=I(e.animation?.valueFrom??e.value),d=U(function(){return e.decimalPlaces??l.value.toString().split(`.`)[1]?.length??0}),f=I(),p=Wt(e).value,m=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.animation?.valueFrom??0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:l.value;if(t!==n){var r;f.value=new _ve({from:{value:t},to:{value:n},duration:e.animation.duration,onUpdate:function(e){u.value=Number(e.value.toFixed(d.value))},onFinish:function(){u.value=n}}),(r=f.value)==null||r.start()}},h=U(function(){return q(e.format)?e.format(u.value):yve(u.value,e.decimalPlaces,e.separator)}),g=U(function(){return{color:vve[e.color]||e.color}});return R(function(){return e.animationStart},function(t){e.animation&&t&&!f.value&&m()}),R(p,function(t){if(f.value){var n;(n=f.value)==null||n.stop(),f.value=null}u.value=t,e.animationStart&&e.animation&&m()}),mr(function(){return e.animation&&e.animationStart&&m()}),n({start:m,contentStyle:g}),function(){var t=e.trend?c[e.trend]:null,n=i(`prefix`)||(t&&e.trendPlacement!==`right`?t:null),a=i(`suffix`)||(t&&e.trendPlacement===`right`?t:null),o=i(`title`),s=i(`unit`),l=i(`extra`);return V(`div`,{class:r.value},[o&&V(`div`,{class:`${r.value}-title`},[o]),V(Qj,{animation:`gradient`,theme:`text`,loading:!!e.loading},{default:function(){return[V(`div`,{class:`${r.value}-content`,style:g.value},[n&&V(`span`,{class:`${r.value}-content-prefix`},[n]),V(`span`,{class:`${r.value}-content-value`},[h.value]),s&&V(`span`,{class:`${r.value}-content-unit`},[s]),a&&V(`span`,{class:`${r.value}-content-suffix`},[a])])]}}),l&&V(`div`,{class:`${r.value}-extra`},[l])])}}})),eM={animation:{type:String,default:`slide`,validator:function(e){return!e||[`slide`,`fade`].includes(e)}},autoplay:{type:Boolean,default:!0},cardScale:{type:Number,default:210/332},current:{type:Number,default:0},defaultCurrent:{type:Number,default:0},direction:{type:String,default:`horizontal`,validator:function(e){return!e||[`horizontal`,`vertical`].includes(e)}},duration:{type:Number,default:300},height:{type:Number},interval:{type:Number,default:5e3},loop:{type:Boolean,default:!0},navigation:{type:[Object,Function]},stopOnHover:{type:Boolean,default:!0},trigger:{type:String,default:`hover`,validator:function(e){return!e||[`hover`,`click`].includes(e)}},type:{type:String,default:`default`,validator:function(e){return!e||[`default`,`card`].includes(e)}},onChange:Function};function tM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nM(e){for(var t=1;t=e.swiperItemLength/2?e.swiperItemLength+1:e.index>e.currentIndex+1&&e.index-e.currentIndex>=e.swiperItemLength/2?-2:e.index:0}),o=U(function(){if(e.type!==`card`)return 0;var t=e.swiperWidth,n=!i.value&&e.swiperItemLength>2?a.value:e.index;return Math.abs(n-e.currentIndex)<=1?t*((n-e.currentIndex)*(1-rM*e.cardScale)-rM+1)/2:n2?a.value:e.index,n=t===e.currentIndex,r=Math.round(Math.abs(t-e.currentIndex))<=1;return n?2:+!!r}),c=U(function(){if(e.animation===`fade`)return{opacity:+!!i.value,transition:e.isSwitching?`opacity ${e.duration/1e3}s`:``,zIndex:+!!i.value};if(e.type===`card`){var t=(!i.value&&e.swiperItemLength>2?a.value:e.index)===e.currentIndex;return{transform:`translateX(${o.value}px) scale(${t?1:e.cardScale})`,transition:`transform ${e.duration/1e3}s ease`,zIndex:s.value}}return{}});return function(){return V(`div`,{class:[`${r.value}-swiper__container__item`,G(G(G({},`${r.value}-swiper__card`,e.type===`card`),`${r.value}-is-active`,e.type===`card`&&i.value),`${r.value}-swiper__fade`,e.animation===`fade`)],style:c.value},[n.default?.call(n,{})||[]])}}});function aM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oM(e){for(var t=1;t=y.value:!e.loop&&f.value+2>=y.value}),C=U(function(){return[e.autoplay,f.value,e.duration,e.interval]}),w=U(function(){return G(G(G(G(G(G({},`${r.value}-swiper__wrap`,!0),`${r.value}-swiper--inside`,x.value.placement===`inside`),`${r.value}-swiper--outside`,x.value.placement===`outside`),`${r.value}-swiper--vertical`,e.direction===`vertical`),`${r.value}-swiper--large`,x.value.size===`large`),`${r.value}-swiper--small`,x.value.size===`small`)}),T=U(function(){var t=e.height?`${e.height}px`:`${v.value.height}px`;if(e.type===`card`||e.animation===`fade`)return{height:t};if(e.animation===`slide`){var n={transition:h.value?`transform ${e.duration/1e3}s ease`:``},r=f.value;return y.value>1&&(r+=1,(u||d)&&(n.transition=``)),e.direction===`vertical`?(n.height=t,n.transform=`translate3d(0, -${r*100}%, 0px)`):n.transform=`translate3d(-${r*100}%, 0px, 0px)`,[`msTransform`,`WebkitTransform`].forEach(function(e){n[e]=n.transform}),n}return{}}),E=function(){var t=b(`SwiperItem`);y.value=t.length;var n=t.map(function(t,n){var r,i=oM(oM({},e),t.props);return V(iM,H({index:n,currentIndex:f.value,isSwitching:h.value,swiperWidth:v.value.width,swiperItemLength:y.value},i),Sve(r=t.children.default())?r:{default:function(){return[r]}})});if(e.animation===`slide`&&n.length>1){var r=Ri(n[0],{key:`swiper-item-append-0`}),i=Ri(n[n.length-1],{key:`swiper-item-prepend-${n.length-1}`});n.unshift(i),n.push(r)}return n},D=function(t,r){var i,a=t%y.value;p.value=a,n(`update:current`,a),(i=e.onChange)==null||i.call(e,a,r),h.value=!0,e.animation===`slide`&&y.value>1&&e.type!==`card`&&(a=t,u=!1,d=!1,t>=y.value&&(O(),setTimeout(function(){d=!0,f.value=0},e.duration)),f.value===0&&y.value>=2&&t===y.value-1&&(a=-1,p.value=y.value-1,O(),setTimeout(function(){u=!0,f.value=y.value-1},e.duration))),f.value=a},O=function(){c&&=(clearTimeout(c),null)},k=function(){e.autoplay&&e.interval>0&&(O(),c=setTimeout(function(){D(f.value+1,{source:`autoplay`})},f.value===0?e.interval-(e.duration+50):e.interval))},A=function(){m.value=!0,e.stopOnHover&&O(),x.value.showSlideBtn===`hover`&&(g.value=!0)},j=function(){m.value=!1,S.value||k(),x.value.showSlideBtn===`hover`&&(g.value=!1)},M=function(t){e.trigger===`hover`&&D(t,{source:`hover`})},ee=function(t){e.trigger===`click`&&D(t,{source:`click`})},N=function(t){if(!h.value)return e.type===`card`?D(f.value+1>=y.value?0:f.value+1,t):D(f.value+1,t)},P=function(t){if(!h.value)return f.value-1<0?e.animation===`slide`&&y.value===2?D(0,t):D(y.value-1,t):D(f.value-1,t)},F=function(){var e=f.value+1>y.value?1:f.value+1;return V(`div`,{class:`${r.value}-swiper__arrow`},[V(`div`,{class:`${r.value}-swiper__arrow-left`,onClick:function(){return P({source:`click`})}},[V(o,null,null)]),V(`div`,{class:`${r.value}-swiper__navigation-text-fraction`},[e,`/`,y.value]),V(`div`,{class:`${r.value}-swiper__arrow-right`,onClick:function(){return N({source:`click`})}},[V(s,null,null)])])},te=function(){return g.value?V(`div`,{class:[`${r.value}-swiper__arrow`,`${r.value}-swiper__arrow--default`]},[V(`div`,{class:`${r.value}-swiper__arrow-left`,onClick:function(){return P({source:`click`})}},[V(o,null,null)]),V(`div`,{class:`${r.value}-swiper__arrow-right`,onClick:function(){return N({source:`click`})}},[V(s,null,null)])]):null},ne=function(){if(Mi(e.navigation))return e.navigation;var t=i(`navigation`);if(t&&Mi(t?.[0]))return t;if(x.value.type===`fraction`)return V(`div`,{class:[`${r.value}-swiper__navigation`,`${r.value}-swiper__navigation--fraction`]},[F()]);var n=b(`SwiperItem`);return V(`ul`,{class:[`${r.value}-swiper__navigation`,G(G(G({},`${r.value}-swiper__navigation-bars`,x.value.type===`bars`),`${r.value}-swiper__navigation-dots`,x.value.type===`dots`),`${r.value}-swiper__navigation-dots-bar`,x.value.type===`dots-bar`)]},[n.map(function(e,t){return V(`li`,{key:t,class:[`${r.value}-swiper__navigation-item`,G({},`${r.value}-is-active`,t===p.value)],onMouseenter:function(){return M(t)},onClick:function(){return ee(t)}},[V(`span`,null,null)])})])},re=function(){return E()};return R(function(){return C.value},function(){k()}),R(function(){return h.value},function(){h.value&&(l&&clearTimeout(l),l=setTimeout(function(){h.value=!1,l=0,S.value&&O()},e.duration+50))}),R(function(){return e.current},function(){D(e.current,{source:`autoplay`})}),mr(function(){k(),g.value=x.value.showSlideBtn===`always`}),Nm(_,function(){var e=_.value?.parentNode;e&&(v.value={width:e.offsetWidth||0,height:e.offsetHeight||0})}),function(){return V(`div`,{class:[`${r.value}-swiper`],onMouseenter:A,onMouseleave:j,ref:_},[V(`div`,{class:w.value},[V(`div`,{class:[`${r.value}-swiper__content`,G(G({},`${r.value}-swiper-fade`,e.animation===`fade`),`${r.value}-swiper-card`,e.type===`card`)]},[V(`div`,{class:`${r.value}-swiper__container`,style:T.value},[re()])]),ne(),te()])])}}})),Tve=X(iM),sM={activeRowKeys:{type:Array,default:void 0},defaultActiveRowKeys:{type:Array,default:function(){return[]}},activeRowType:{type:String,default:``},allowResizeColumnWidth:{type:Boolean,default:void 0},attach:{type:[String,Function]},bordered:Boolean,bottomContent:{type:[String,Function]},cellEmptyContent:{type:[String,Function]},columns:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},disableDataPage:Boolean,disableSpaceInactiveRow:{type:Boolean,default:void 0},empty:{type:[String,Function],default:``},firstFullRow:{type:[String,Function]},fixedRows:{type:Array},footData:{type:Array,default:function(){return[]}},footerAffixProps:{type:Object},footerAffixedBottom:{type:[Boolean,Object],default:!1},footerSummary:{type:[String,Function]},headerAffixProps:{type:Object},headerAffixedTop:{type:[Boolean,Object],default:!1},height:{type:[String,Number]},horizontalScrollAffixedBottom:{type:[Boolean,Object]},hover:Boolean,keyboardRowHover:{type:Boolean,default:!0},lastFullRow:{type:[String,Function]},lazyLoad:Boolean,loading:{type:[Boolean,Function],default:void 0},loadingProps:{type:Object},locale:{type:Object},maxHeight:{type:[String,Number]},pagination:{type:Object},paginationAffixedBottom:{type:[Boolean,Object]},resizable:Boolean,rowAttributes:{type:[Object,Array,Function]},rowClassName:{type:[String,Object,Array,Function]},rowKey:{type:String,default:`id`,required:!0},rowspanAndColspan:{type:Function},rowspanAndColspanInFooter:{type:Function},scroll:{type:Object},showHeader:{type:Boolean,default:!0},size:{type:String,validator:function(e){return!e||[`small`,`medium`,`large`].includes(e)}},stripe:Boolean,tableContentWidth:{type:String,default:``},tableLayout:{type:String,default:`fixed`,validator:function(e){return!e||[`auto`,`fixed`].includes(e)}},topContent:{type:[String,Function]},verticalAlign:{type:String,default:`middle`,validator:function(e){return!e||[`top`,`middle`,`bottom`].includes(e)}},onActiveChange:Function,onActiveRowAction:Function,onCellClick:Function,onColumnResizeChange:Function,onPageChange:Function,onRowClick:Function,onRowDblclick:Function,onRowMousedown:Function,onRowMouseenter:Function,onRowMouseleave:Function,onRowMouseover:Function,onRowMouseup:Function,onScroll:Function,onScrollX:Function,onScrollY:Function};function cM(e,t){for(var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,r=n,i=0,a=e.length;ir&&(r=c)}}return r}function lM(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=e?.children||[],r=0,i=n.length;r1&&(f.rowspan=u),d>1&&(f.colspan=d),r.set(l,f),l!=null&&(c=l.children)!=null&&c.length?i(l.children,a):a.push(l)}},a=[];return i(e,a),{rowspanAndColspanMap:r,leafColumns:a}}function Dve(e){var t=function(e,n){for(var r,i=[],a=[],o=0,s=e.length;o1}),spansAndLeafNodes:i,renderTitleWidthIcon:function(t,i,a,o,s,c){var l=Y(t,3),u=l[0],d=l[1],f=l[2],p=G(G({},n.sortable,d),r.filterable,f),m=q(o)?o(sa,{col:i,colIndex:a}):void 0,h=o===void 0?!!i.ellipsis:!!o;return V(`div`,{class:p},[V(`div`,{class:n.title},[h?V(fM,{placement:`bottom`,attach:e.attach||(s?function(){return s}:void 0),tooltipContent:m&&function(){return m},tooltipProps:so(o)===`object`?o:void 0,classPrefix:c?.classPrefix,overlayClassName:c?.ellipsisOverlayClassName},Ave(u)?u:{default:function(){return[u]}}):V(`div`,null,[u]),!!(d||f)&&V(`div`,{class:r.iconWrap},[d,f])])])}}}function _M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jve(e){for(var t=1;tc}return!(a||t.value||i===d.value.length-1)},E=function(e,t,n,r){return t?x(e,t,n,r):C(n,r)};return{resizeLineRef:l,resizeLineStyle:_,onColumnMouseover:y,onColumnMousedown:function(e,t,r){if(g.draggingCol){var d=g.draggingCol,m=d.getBoundingClientRect(),h=n.value?.getBoundingClientRect(),y=u.value[t.colKey]?.next,b=u.value[t.colKey]?.prev,x=v(t)?S(d,t,y,m,h):E(t,y,m,h),C=x.resizeLinePos,D=x.minResizeLineLeft,O=x.maxResizeLineLeft;g.isDragging=!0,g.draggingStart=e.x,l!=null&&l.value&&(_.display=`block`,_.height=`${h.bottom-m.top}px`,_.left=`${C}px`,_.bottom=`${n.value.parentElement.getBoundingClientRect().bottom-h.bottom}px`);var k=function(){if(g.isDragging){var e=C-parseFloat(_.left)||0,n=i(`calculate`),l=u.value[t.colKey]?.current;if(l){var m=g.effectCol===`next`?l.nextSibling:l.prevSibling,h=jve({},n),x=t.resizable===!1?m:t,S=T(h,g.effectCol===`next`?l.nextSibling:t,e,r);g.effectCol===`next`?v(t)?d.dataset.colkey===t.colKey?h[x.colKey]+=e:h[y.colKey]+=e:(h[x.colKey]-=e,S&&(h[y.colKey]+=e)):g.effectCol===`prev`&&(S&&(h[x.colKey]+=e),b&&(h[b.colKey]-=e)),a(h);var E=w(h);o(Math.round(E)),s(),g.isDragging=!1,g.draggingCol=null,g.effectCol=null,d.style.cursor=``,_.display=`none`,_.left=`0`,lp(document,`mouseup`,k),lp(document,`mousemove`,A),document.onselectstart=f,document.ondragstart=p,c?.({columnsWidth:h})}}},A=function(e){if(g.isDragging){var t=C+e.x-g.draggingStart;_.left=`${Math.min(Math.max(t,D),O)}px`}};cp(document,`mouseup`,k),cp(document,`mousemove`,A),document.onselectstart=function(){return!1},document.ondragstart=function(){return!1}}},setEffectColMap:h}}function yM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bM(e){for(var t=1;t6&&arguments[6]!==void 0?arguments[6]:0;if(!r||!r.length)return{style:void 0,classes:void 0};var s=tn-1-r[1],l=n-r[1],u=i?.get(e)||{},d=G(G(G(G({},a.top,s),a.bottom,c),a.firstBottom,t===l),a.withoutBorderBottom,t===l-1);return{style:{top:s?`${u.top-o}px`:void 0,bottom:c?`${u.bottom+o}px`:void 0},classes:d}}function Ive(e,t,n,r){var i=Wt(e),a=i.columns,o=i.tableLayout,s=i.tableContentWidth,c=i.fixedRows,l=i.firstFullRow,u=i.lastFullRow,d=i.maxHeight,f=i.headerAffixedTop,p=i.footerAffixedBottom,m=i.bordered,h=i.resizable,g=i.allowResizeColumnWidth,_=I([]),v=I(),y=I(),b=I(!1),x=I(!1),S=I(),C=I(6),w=I(new Map),T=Dt({left:!1,right:!1}),E=I({left:0,top:0}),D=I(0),O=I(0),k=I({}),A=I(!1),j=I(!1),M=I(!1),ee=U(function(){return g.value??h.value??!1}),N=U(function(){return!(e.headerAffixedTop||e.footerAffixedBottom||e.horizontalScrollAffixedBottom||e.scroll?.type===`virtual`)});function P(e){S.value=e}function F(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Map,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4?arguments[4]:void 0,a=0,o=e.length;a2&&arguments[2]!==void 0?arguments[2]:{},r=0,i=e.length;r=0&&e[c].fixed!==`left`;)--c;var l=e[c],u=r===0&&n?.left||0,d=t.get(l?.colKey||r-1);s&&(s.left=(d?.left||u)+(d?.width||0)),(a=o.children)!=null&&a.length&&te(o.children,t,s)}},ne=function(e,t){for(var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=e.length-1;r>=0;r--){var i,a=e[r];if(a.fixed===`left`)return;for(var o=t.get(a.colKey||r),s=r+1;s=l.length-s;y--){var b=t[t.length-(l.length-y)],x=J(l[y],d),S=n.get(x)||{},C=J(l[y+1],d),w=n.get(C)||{},T=0;y===l.length-1&&(T=i?.getBoundingClientRect().height||0),S.bottom=(w.bottom||T)+(w.height||0),n.set(x,bM(bM({},S),{},{height:b?.getBoundingClientRect().height||0}))}},ae=function(e,t){if(w.value.clear(),e){var n=e.querySelector(`thead`);n&&re(n.children,t);var r=e.querySelector(`tbody`),i=e.querySelector(`tfoot`);r&&ie(r.children,t,n,i),w.value=t}},oe,se=function(e,t){if(!(!A.value||!e)){var n=e.scrollLeft;if(!(oe===n&&(!t||!t.skipScrollLimit))){oe=n;var r=e.clientWidth+n0;T.left===i&&T.right===r||(T.left=i&&M.value,T.right=r&&j.value)}}},ce=function(e){for(var t=0;ty.value.clientHeight,x.value=y.value.scrollWidth>y.value.clientWidth;var t=y.value.getBoundingClientRect();E.value={top:t.top,left:t.left},clearTimeout(e)}},0)},de=function(e){O.value!==e&&(O.value=e)},fe=function(){var t,n=y.value?.getBoundingClientRect();if(n){var r=b.value?C.value:0;D.value=n.width-r-+!!e.bordered;var i=S==null||(t=S.value)==null?void 0:t.getBoundingClientRect();i!=null&&i.width&&de(i.width)}},pe=function(){var e,t,n,i,a,o,s,c;(e=r.paginationAffixRef.value)==null||(t=e.handleScroll)==null||t.call(e),(n=r.horizontalScrollAffixRef.value)==null||(i=n.handleScroll)==null||i.call(n),(a=r.headerTopAffixRef.value)==null||(o=a.handleScroll)==null||o.call(a),(s=r.footerBottomAffixRef.value)==null||(c=s.handleScroll)==null||c.call(s)},me=function(e){for(var t={},n=0,r=e.length;n0&&arguments[0]!==void 0?arguments[0]:0)+(arguments.length>1?arguments[1]:void 0)},0),d=y.value.clientWidth,f=u-c;de(Math.max(d,f))}});var be=function(){ge(),ue(),pe(),(A.value||b.value)&&(le(),se(y.value,{skipScrollLimit:!0})),o.value===`auto`&&he(ye(`calculate`))},xe=md(function(){be()},30),Se=null;function Ce(e){typeof window>`u`||Zm()<11||window.ResizeObserver===void 0||(lp(window,`resize`,xe),Se=new window.ResizeObserver(function(){var e=setTimeout(function(){be(),clearTimeout(e)},200)}),Se.observe(e),v.value=e)}return mr(function(){C.value=z_e(),ge();var e=A.value||b.value||!N.value||!_.value.length,t=typeof window<`u`&&window.ResizeObserver!==void 0;(e&&Zm()<11||!t)&&cp(window,`resize`,xe)}),_r(function(){var e,t;typeof window<`u`&&lp(window,`resize`,xe),(e=Se)==null||e.unobserve(v.value),(t=Se)==null||t.disconnect()}),{tableWidth:D,tableElmWidth:O,thWidthList:k,isFixedHeader:b,isWidthOverflow:x,tableContentRef:y,isFixedColumn:A,showColumnShadow:T,rowAndColFixedPosition:w,virtualScrollHeaderPos:E,scrollbarWidth:C,setData:function(e){_.value=e},refreshTable:be,setTableElmWidth:de,emitScrollEvent:ve,updateThWidthListHandler:ge,updateColumnFixedShadow:se,setUseFixedTableElmRef:P,getThWidthList:ye,updateThWidthList:he,addTableResizeObserver:Ce,updateTableAfterColumnResize:function(){le(),ue()}}}function SM(e,t){if(e){for(var n=e instanceof Array?e:[e],r={},i=0;ii))return e;var a=(r-1)*i,o=r*i;return e.slice(a,o)}function DM(e,t){return so(e)===`object`?e:so(t)===`object`?t:{}}function OM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Lve(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:1,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:10,r=e.data;u.value=!o.value&&r.length>n,l.value=EM(r,{current:t,pageSize:n},o.value)};return R([a,function(){return a.value.length},function(){return i.value?.current},function(){return i.value?.pageSize},o],function(){if(!(!i.value||!i.value.current)){var e=i.value;c.value={current:e.current,pageSize:e.pageSize},d(i.value.current,i.value.pageSize||i.value.defaultPageSize)}},{immediate:!0}),R([a],function(){!i.value||!i.value.defaultCurrent||i.value.current||d(c.value.current??i.value.defaultCurrent,c.value.pageSize??i.value.defaultPageSize)},{immediate:!0}),{isPaginateData:u,dataSource:l,innerPagination:c,renderPagination:function(){if(!e.pagination)return null;var r=Lve({},e.pagination);return delete r.onChange,V(`div`,{class:`${s.value}-table__pagination`},[V(Nw,H({size:e.size===`large`?null:e.size},r,{onChange:function(t){var r,i,a;(r=e.pagination)==null||(i=r.onChange)==null||i.call(r,t),c.value=t,d(t.current,t.pageSize),(a=e.onPageChange)==null||a.call(e,t,l.value);var o=n.value;o.scrollTo?o.scrollTo({top:0,left:0}):(o.scrollTop=0,o.scrollLeft=0)}}),{totalContent:t.slots.totalContent})])}}}function zve(e){var t=I(),n=I(),r=I(),i=I(),a=I(),o=I(!0),s=I(!0),c=I(!0),l=!1,u=!1,d=U(function(){return e.scroll&&e.scroll.type===`virtual`&&(e.scroll.threshold||100)e.height},g=function(e){return Gd(e)?0:e.offsetTop||0},_=function(){var l;if(!(!f.value&&!d.value&&!t.value)){var u=t.value?.getBoundingClientRect();if(u){var p=(l=t.value)==null||(l=l.querySelector(`thead`))==null?void 0:l.getBoundingClientRect(),m=p?.height||0,_=r.value?.getBoundingClientRect();if((e.headerAffixedTop||d.value)&&n.value){var v=g(e.headerAffixProps||e.headerAffixedTop),y=_?.height||0,b=Math.abs(u.top)-1*p.height),o.value=b}e.footerAffixedBottom&&r!=null&&r.value?s.value=h(_,u,m):e.horizontalScrollAffixedBottom&&i!=null&&i.value&&(s.value=h(i.value.getBoundingClientRect(),u,m)),e.paginationAffixedBottom&&a.value&&(c.value=h(a.value.getBoundingClientRect(),u,m))}}},v=function(){_()},y=function(){m(r.value)},b=function(){m(n.value)},x=function(){m(i.value)},S=function(){m(t.value)},C=function(){cp(r.value,`scroll`,y)},w=function(){lp(r.value,`scroll`,y)},T=function(){cp(n.value,`scroll`,b),ee()},E=function(){l||lp(n.value,`scroll`,b),N()},D=function(){cp(i.value,`scroll`,x)},O=function(){lp(i.value,`scroll`,x)},k=function(){cp(t.value,`scroll`,S),ee()},A=function(){l||lp(t.value,`scroll`,S),N()},j=function(){l=!0},M=function(){l=!1,u||(lp(n.value,`scroll`,b),lp(t.value,`scroll`,S))},ee=function(){u=!0},N=function(){u=!1},P=[],F=function(e){var t=md(function(t){lp(e,`scroll`,t)},200);function n(){m(e),t(n)}function r(r){r.composedPath().includes(e)&&(P.forEach(function(e){return e()}),P.length=0,cp(e,`scroll`,n),t(n),P.push(function(){lp(e,`scroll`,n)}))}cp(e,`touchstart`,r);function i(){lp(e,`touchstart`,r)}return{removeElementTouchScrollListener:i}},te=[],ne=function(){te.forEach(function(e){return e()}),te.length=0},re=function(){lp(window,`mousedown`,j),lp(window,`mouseup`,M),ne(),n.value&&(lp(n.value,`mouseenter`,T),lp(n.value,`mouseleave`,E)),r.value&&(lp(r.value,`mouseenter`,C),lp(r.value,`mouseleave`,w)),t.value&&(lp(t.value,`mouseenter`,k),lp(t.value,`mouseleave`,A)),i.value&&(lp(i.value,`mouseenter`,D),lp(i.value,`mouseleave`,O))},ie=function(){if(cp(window,`mousedown`,j),cp(window,`mouseup`,M),re(),n.value){cp(n.value,`mouseenter`,T),cp(n.value,`mouseleave`,E);var a=F(n.value).removeElementTouchScrollListener;te.push(a)}if(e.footerAffixedBottom&&r.value){cp(r.value,`mouseenter`,C),cp(r.value,`mouseleave`,w);var o=F(r.value).removeElementTouchScrollListener;te.push(o)}if(e.horizontalScrollAffixedBottom&&i.value){cp(i.value,`mouseenter`,D),cp(i.value,`mouseleave`,O);var s=F(i.value).removeElementTouchScrollListener;te.push(s)}if((f.value||d.value)&&t.value){cp(t.value,`mouseenter`,k),cp(t.value,`mouseleave`,A);var c=F(t.value).removeElementTouchScrollListener;te.push(c)}},ae=function(){if(!(!f.value&&!e.paginationAffixedBottom))var t=setTimeout(function(){f.value||e.paginationAffixedBottom?cp(document,`scroll`,v):lp(document,`scroll`,v),clearTimeout(t)})};return R([n,r,i,t],function(){ie(),m(),_()}),R(f,ae),R(function(){return[e.data,e.columns,e.headerAffixedTop,e.footerAffixedBottom,e.horizontalScrollAffixedBottom]},function(){m()}),_r(function(){lp(document,`scroll`,v),re(),n.value=null,r.value=null,i.value=null,t.value=null}),{showAffixHeader:o,showAffixFooter:s,showAffixPagination:c,affixHeaderRef:n,affixFooterRef:r,horizontalScrollbarRef:i,paginationRef:a,onHorizontalScroll:m,setTableContentRef:function(e){t.value=e,ae()},updateAffixHeaderOrFooter:_}}function Bve(e,t,n){var r=U(function(){return Math.max(n.rowHeight||48,48)}),i=I(!1),a=U(function(){return n?.type===`lazy`&&!i.value}),o=!sp&&window.requestAnimationFrame||function(e){return setTimeout(e,16.6)},s=function(){i.value||o(function(){i.value=!0})};return mr(function(){n?.type===`lazy`&&dn(function(){var i=Math.max(10,n.bufferSize||10),a=r.value*i;!(t!=null&&t.value)||!(e!=null&&e.value)||zp(t.value,e.value,s,a)})}),{hasLazyLoadHolder:a,tRowHeight:r}}function kM(e,t,n,r,i){var a=J(e,t);return a===void 0?(i===void 0&&Vp.error(`Table`,`rowKey is wrong, can not get unique identifier of row.`),[`__row_${i}__`,n||r].join(`_`)):[a,n||r].join(`_`)}function Vve(e){return e.split(`_`)?.[0]}function AM(e,t,n,r){var i=I(new Map),a=function(r,a){var o=r.rowIndex,s=r.colIndex;if(!(!a.rowspan&&!a.colspan)){for(var c=o+(a.rowspan||1),l=s+(a.colspan||1),u=o;u1&&(c.rowspan=u.rowspan),u?.colspan>1&&(c.colspan=u.colspan),u.skipped)return null}return C(l,{dataLength:i,rowAndColFixedPosition:a,columnLength:t.length,cellSpans:c,cellEmptyContent:e.cellEmptyContent})});return V(`tr`,H({ref:o},h.value,{style:m.value?.style,class:g.value},b(r,e.rowIndex)),[v.value?[V(`td`,{style:{height:`${y.value}px`,border:`none`}},null)]:s])}}});function IM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function LM(e){for(var t=1;t1)for(var o=r+1;o1)for(var g=f+1;g1&&(j.colspan=t.colspan),V(`th`,H({key:t.colKey,"data-colkey":t.colKey,class:w,style:E},j,h,O),[V(`div`,{class:o.thCellInner},[A?V(fM,{placement:`bottom`,attach:e.attach||(r.value?function(){return l(r.value)}:void 0),tooltipContent:k&&function(){return k},tooltipProps:so(t.ellipsisTitle)===`object`?t.ellipsisTitle:void 0,overlayClassName:e.ellipsisOverlayClassName,classPrefix:e.classPrefix},Gve(D)?D:{default:function(){return[D]}}):D])])});return V(`tr`,{key:f},[p])})}(e.rowAndColFixedPosition,e.thWidthList)])}}});function WM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function GM(e){for(var t=1;t1&&(c.rowspan=d.rowspan),d?.colspan>1&&(c.colspan=d.colspan),d.skipped)return null}var p=xM(i,a,e.rowAndColFixedPosition,r.tableColFixedClasses),m=GM({},p.style);return(o=e.thWidthList)!=null&&o[i.colKey]&&(m.width=`${e.thWidthList[i.colKey]}px`),V(`td`,H(GM({key:i.colKey},c),{class:p.classes,style:m}),[u({row:t,rowIndex:n,col:i,colIndex:a})])})])}),a=n(`footerSummary`);return!a&&(!e.footData||!e.footData.length)?null:V(`tfoot`,{class:t,style:{visibility:e.virtualScroll?`hidden`:`visible`}},[a&&V(`tr`,{class:r.tableFullRowClasses.base},[V(`td`,{colspan:o.value.length},[V(`div`,{class:r.tableFullRowClasses.innerFullElement},[a])])]),i])}}});function Kve(e,t){var n=Wt(e),r=n.data,i=n.activeRowType,a=n.activeRowKeys,o=n.defaultActiveRowKeys,s=n.disableSpaceInactiveRow,c=I(-1),l=I(!1),u=I(!1),d=I(-1),f=Y(bm(a,o.value,e.onActiveChange,`activeRowKeys`),2),p=f[0],m=f[1],h=function(t){var n=t.row,a=J(n,e.rowKey);if(i.value===`single`){for(var o=p.value.length>1?[a]:[],s=[],c=0,l=r.value.length;c0&&arguments[0]!==void 0?arguments[0]:!0;return V(`colgroup`,null,[l.map(function(n){var r={width:zM((t||f?ie.value[n.colKey]:void 0)||n.width)||m};return n.minWidth&&(r.minWidth=zM(n.minWidth)),!r.width&&!n.minWidth&&e.tableLayout===`fixed`&&(r.minWidth=`80px`),V(`col`,{key:n.colKey,style:r},null)})])},g=function(){if(e.showHeader===!1)return null;var t=Jm(DM(e.headerAffixedTop),{onFixedChange:$e});return!!(tt.isVirtualScroll.value||e.headerAffixedTop)&&(e.headerAffixedTop?V(Dy,H({ref:A,offsetTop:0},t.value),YM(pe)?pe:{default:function(){return[pe]}}):te.value&&pe)},b=function(){return V(Dy,H({offsetBottom:0},DM(e.horizontalScrollAffixedBottom),{style:{marginTop:`-${ee.value*2}px`},ref:k}),{default:function(){return[V(`div`,{ref:be,class:[`scrollbar`,p.obviousScrollbar],style:{width:`${N.value}px`,overflow:`auto`,opacity:Number(Ce.value)}},[V(`div`,{style:{width:`${P.value}px`,height:`5px`}},null)])]}})},x={isFixedHeader:te.value,rowAndColFixedPosition:oe.value,isMultipleHeader:S.value,bordered:e.bordered,maxHeight:e.maxHeight,height:e.height,spansAndLeafNodes:C.value,thList:w.value,thWidthList:ie.value,resizable:e.resizable,columnResizeParams:Ne,classPrefix:u,ellipsisOverlayClassName:E.value===`medium`?``:_[E.value],attach:e.attach,showColumnShadow:ae,thDraggable:e.thDraggable},T=Zm()<=11?4:0,M=ne.value?ee.value:0,re=I((ve.value?.getBoundingClientRect().height||0)-T),se=setTimeout(function(){re.value=(ve.value?.getBoundingClientRect().height||0)-T,clearTimeout(se)},0),ce=U(function(){return re.value-M}),le=e.headerAffixedTop?Number(Se.value):1,ue=U(function(){return{width:`${N.value}px`,height:`${ce.value}px`,opacity:le}}),de=+!!e.bordered,fe=!!((e.headerAffixedTop||tt.isVirtualScroll.value)&&N.value)&&V(`div`,{ref:ve,style:{width:`${N.value-de}px`,opacity:Number(Se.value)},class:[`scrollbar`,G({},p.affixedHeaderElm,e.headerAffixedTop||tt.isVirtualScroll.value)]},[V(`table`,{class:Re.value,style:JM(JM({},y.value),{},{width:`${P.value}px`})},[h(!0),V(UM,x,t.slots)])]),pe=V(`div`,{class:p.affixedHeaderWrap,style:ue.value},[fe]),me=ne.value?ee.value:0;e.bordered&&(me+=1);var he=!!(tt.isVirtualScroll.value||e.footerAffixedBottom),ge=e.footData?.length||e.footerSummary||t.slots.footerSummary,_e=Jm(DM(e.footerAffixedBottom),{onFixedChange:$e}),Te=!!(he&&ge&&N.value)&&V(Dy,H({ref:j,class:p.affixedFooterWrap,offsetBottom:me||0,style:{marginTop:`${-1*((c.value??0)+me)}px`}},_e.value),{default:function(){return[V(`div`,{ref:ye,style:{width:`${N.value-de}px`,opacity:Number(Ce.value)},class:[`scrollbar`,G({},p.affixedFooterElm,e.footerAffixedBottom||tt.isVirtualScroll.value)]},[V(`table`,{class:Re.value,style:JM(JM({},y.value),{},{width:`${P.value}px`})},[h(!0),V(KM,{rowKey:e.rowKey,isFixedHeader:te.value,rowAndColFixedPosition:oe.value,footData:e.footData,columns:C.value.leafColumns,rowAttributes:e.rowAttributes,rowClassName:e.rowClassName,thWidthList:ie.value,footerSummary:e.footerSummary,rowspanAndColspanInFooter:e.rowspanAndColspanInFooter},t.slots)])])]}}),Ee=`translate(0, ${tt.scrollHeight.value+(c.value??0)+(re.value??0)}px)`,De={transform:Ee,"-ms-transform":Ee,"-moz-transform":Ee,"-webkit-transform":Ee},Oe=JM(JM({classPrefix:u,ellipsisOverlayClassName:E.value===`medium`?``:_[E.value],rowAndColFixedPosition:oe.value,showColumnShadow:ae,data:n,virtualConfig:tt,columns:C.value.leafColumns,tableElm:i.value,tableWidth:N.value,isWidthOverflow:ne.value,scroll:e.scroll,cellEmptyContent:e.cellEmptyContent,tableContentElm:F.value,handleRowMounted:tt.handleRowMounted,renderExpandedRow:e.renderExpandedRow},Rf(e,RM)),{},{pagination:Ae.value,attach:e.attach,hoverRow:qe.value,activeRow:He.value,onRowClick:ct}),Ie=V(`div`,{ref:F,class:p.content,style:JM(JM({},v.value),{},{overflowAnchor:`none`}),onScroll:rt},[tt.isVirtualScroll.value&&V(`div`,{class:d.cursor,style:De},null),V(`table`,{ref:a,class:Re.value,style:JM(JM({},y.value),{},{width:e.resizable&&ne.value&&P.value?`${P.value}px`:y.value.width})},[h(!1),e.showHeader&&V(UM,JM(JM({},x),{},{thWidthList:f?ie.value:{}}),t.slots),V(Wve,H({ref:o},Oe),t.slots),V(KM,{rowKey:e.rowKey,isFixedHeader:te.value,rowAndColFixedPosition:oe.value,footData:e.footData,columns:C.value.leafColumns,rowAttributes:e.rowAttributes,rowClassName:e.rowClassName,footerSummary:e.footerSummary,rowspanAndColspanInFooter:e.rowspanAndColspanInFooter,virtualScroll:tt.isVirtualScroll.value},t.slots)])]),Ve=q(e.loading)?e.loading:t.slots.loading,Ue=e.loading!==void 0&&V(uh,H({loading:!!e.loading,text:Ve,attach:i.value?function(){return i.value}:void 0,showOverlay:!0,size:`small`},e.loadingProps),null),We=r(`topContent`),Ge=r(`bottomContent`),Ke=V(`div`,{ref:xe,class:p.paginationWrap,style:{opacity:Number(we.value)}},[Me()]),Je=!!Ge&&V(`div`,{ref:s,class:p.bottomContent},[Ge]);return V(`div`,{ref:i,tabindex:Qe.value,class:Le.value,onFocus:ot,onBlur:st},[!!We&&V(`div`,{class:p.topContent},[We]),g(),Ie,Te,Ue,Je,ze.value&&V(`div`,{class:p.scrollbarDivider,style:{right:`${ee.value}px`,bottom:Be.value?`${Be.value}px`:void 0,height:`${F.value?.getBoundingClientRect().height}px`}},null),e.horizontalScrollAffixedBottom&&b(),e.paginationAffixedBottom?V(Dy,H({offsetBottom:0},DM(e.paginationAffixedBottom),{ref:O}),YM(Ke)?Ke:{default:function(){return[Ke]}}):Ke,V(`div`,{ref:Pe,class:p.resizeLine,style:Fe},null)])}}}),ZM={asyncLoading:{type:[String,Function]},columnController:{type:Object},columnControllerVisible:{type:Boolean,default:void 0},defaultColumnControllerVisible:{type:Boolean,default:void 0},columns:{type:Array,default:function(){return[]}},displayColumns:{type:Array,default:void 0},defaultDisplayColumns:{type:Array},dragSort:{type:String,validator:function(e){return!e||[`row`,`row-handler`,`col`,`row-handler-col`,`drag-col`].includes(e)}},dragSortOptions:{type:Object},editableCellState:{type:Function},editableRowKeys:{type:Array},expandIcon:{type:[Boolean,Function],default:!0},expandOnRowClick:Boolean,expandedRow:{type:[String,Function]},expandedRowKeys:{type:Array,default:void 0},defaultExpandedRowKeys:{type:Array,default:function(){return[]}},filterIcon:{type:Function},filterRow:{type:[String,Function]},filterValue:{type:Object,default:void 0},defaultFilterValue:{type:Object},hideSortTips:Boolean,indeterminateSelectedRowKeys:{type:Array},multipleSort:Boolean,reserveSelectedRowOnPaginate:{type:Boolean,default:!0},rowSelectionAllowUncheck:Boolean,rowSelectionType:{type:String,validator:function(e){return!e||[`single`,`multiple`].includes(e)}},selectOnRowClick:Boolean,selectedRowKeys:{type:Array,default:void 0},defaultSelectedRowKeys:{type:Array,default:function(){return[]}},showSortColumnBgColor:Boolean,sort:{type:[Object,Array],default:void 0},defaultSort:{type:[Object,Array]},sortIcon:{type:Function},sortOnRowDraggable:Boolean,onAsyncLoadingClick:Function,onCellClick:Function,onChange:Function,onColumnChange:Function,onColumnControllerVisibleChange:Function,onDataChange:Function,onDisplayColumnsChange:Function,onDragSort:Function,onExpandChange:Function,onFilterChange:Function,onRowEdit:Function,onRowValidate:Function,onSelectChange:Function,onSortChange:Function,onValidate:Function};function QM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $M(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:new Set,n=0,r=e.length;n1&&arguments[1]!==void 0?arguments[1]:[];if((t=c.value)!=null&&(t=t.groupColumns)!=null&&t.length)return[];for(var r=0,i=e.length;r1&&arguments[1]!==void 0?arguments[1]:{},n=0,r=e.length;n0&&y.value.length0&&arguments[0]!==void 0?arguments[0]:{},n=W(p.value),r=J(t,e.rowKey||`id`),i=n.indexOf(r),a=i!==-1;if(_.value===`multiple`)a?n.splice(i,1):n.push(r);else if(_.value===`single`)n=a&&b.value?[]:[r];else{Vp.warn(`Table`,"`column.type` must be one of `multiple` and `single`");return}m(n,{selectedRowData:n.map(function(e){return h.value.get(e)}),currentRowKey:r,currentRowData:t,type:a?`uncheck`:`check`})}function D(t){var n=e.rowKey||`id`,i=v.value.map(function(e){return J(e,n)}),a=r.value?.filter(function(e){return!i.includes(e)})||[],o=t?[].concat(W(a),W(i)):W(a);m(o,{selectedRowData:t?o.map(function(e){return h.value.get(e)}):[],type:t?`check`:`uncheck`,currentRowKey:`CHECK_ALL_BOX`})}function O(e){return[`multiple`,`single`].includes(e.type)?cN(cN({},e),{},{width:e.width||64,className:[t.checkCell,e.className],cell:function(e,t){return T(t)},title:e.type===`multiple`?C():e.title}):e}var k=function(t){var n=t.row,r=t.index,i=e.columns.findIndex(function(e){return e.colKey===`row-select`}),a=!1;i!==-1&&(a=w({row:n,rowIndex:r,col:e.columns[i],colIndex:i})?.disabled),a||E(n)};R([o,a],function(){for(var e=0,t=o.value.length;e1)],n={asc:c.value.sortAscendingOperationText,desc:c.value.sortDescendingOperationText},i=u.value.map(function(t){var i,a=t===e.sortOrder?r.iconActive:r.iconDefault,o=c.value.sortCancelOperationText,s=t===e.sortOrder?o:n[t];return e.hideSortTips??c.value.hideSortTips?f(t,a):V(Gx,H({content:s,placement:`right`,showArrow:!1,class:r.iconDirection[t]},e.tooltipProps),$ve(i=f(t,a))?i:{default:function(){return[i]}})});return V(`div`,{class:t},[i])}}});function lN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tye(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},n=0,r=e.length;n=0)&&(n[i]=e[i]);return n}function cye(e,t){if(e==null)return{};var n=sye(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var lye=`1.15.6`;function yN(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}var bN=yN(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),xN=yN(/Edge/i),SN=yN(/firefox/i),CN=yN(/safari/i)&&!yN(/chrome/i)&&!yN(/android/i),wN=yN(/iP(ad|od|hone)/i),TN=yN(/chrome/i)&&yN(/android/i),EN={capture:!1,passive:!1};function DN(e,t,n){e.addEventListener(t,n,!bN&&EN)}function ON(e,t,n){e.removeEventListener(t,n,!bN&&EN)}function kN(e,t){if(t){if(t[0]===`>`&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function AN(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function jN(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&kN(e,t):kN(e,t))||r&&e===n)return e;if(e===n)break}while(e=AN(e))}return null}var MN=/\s+/g;function NN(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(MN,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(MN,` `))}function PN(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,``):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf(`webkit`)===-1&&(t=`-webkit-`+t),r[t]=n+(typeof n==`string`?``:`px`)}}function FN(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=PN(e,`transform`);r&&r!==`none`&&(n=r+` `+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function IN(e,t,n){if(e){var r=e.getElementsByTagName(t),i=0,a=r.length;if(n)for(;i=a:i<=a,!o)return r;if(r===LN())break;r=WN(r,!1)}return!1}function BN(e,t,n,r){for(var i=0,a=0,o=e.children;a2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,i=cye(n,_ye);eP.pluginEvent.bind(GP)(e,t,gN({dragEl:rP,parentEl:iP,ghostEl:aP,rootEl:oP,nextEl:sP,lastDownEl:cP,cloneEl:lP,cloneHidden:uP,dragStarted:EP,putSortable:gP,activeSortable:GP.active,originalEvent:r,oldIndex:dP,oldDraggableIndex:pP,newIndex:fP,newDraggableIndex:mP,hideGhostForTarget:HP,unhideGhostForTarget:UP,cloneNowHidden:function(){uP=!0},cloneNowShown:function(){uP=!1},dispatchSortableEvent:function(e){nP({sortable:t,name:e,originalEvent:r})}},i))};function nP(e){gye(gN({putSortable:gP,cloneEl:lP,targetEl:rP,rootEl:oP,oldIndex:dP,oldDraggableIndex:pP,newIndex:fP,newDraggableIndex:mP},e))}var rP,iP,aP,oP,sP,cP,lP,uP,dP,fP,pP,mP,hP,gP,_P=!1,vP=!1,yP=[],bP,xP,SP,CP,wP,TP,EP,DP,OP,kP=!1,AP=!1,jP,MP,NP=[],PP=!1,FP=[],IP=typeof document<`u`,LP=wN,RP=xN||bN?`cssFloat`:`float`,vye=IP&&!TN&&!wN&&`draggable`in document.createElement(`div`),zP=function(){if(IP){if(bN)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),BP=function(e,t){var n=PN(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=BN(e,0,t),a=BN(e,1,t),o=i&&PN(i),s=a&&PN(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+RN(i).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+RN(a).width;if(n.display===`flex`)return n.flexDirection===`column`||n.flexDirection===`column-reverse`?`vertical`:`horizontal`;if(n.display===`grid`)return n.gridTemplateColumns.split(` `).length<=1?`vertical`:`horizontal`;if(i&&o.float&&o.float!==`none`){var u=o.float===`left`?`left`:`right`;return a&&(s.clear===`both`||s.clear===u)?`vertical`:`horizontal`}return i&&(o.display===`block`||o.display===`flex`||o.display===`table`||o.display===`grid`||c>=r&&n[RP]===`none`||a&&n[RP]===`none`&&c+l>r)?`vertical`:`horizontal`},yye=function(e,t,n){var r=n?e.left:e.top,i=n?e.right:e.bottom,a=n?e.width:e.height,o=n?t.left:t.top,s=n?t.right:t.bottom,c=n?t.width:t.height;return r===o||i===s||r+a/2===o+c/2},bye=function(e,t){var n;return yP.some(function(r){var i=r[ZN].options.emptyInsertThreshold;if(!(!i||VN(r))){var a=RN(r),o=e>=a.left-i&&e<=a.right+i,s=t>=a.top-i&&t<=a.bottom+i;if(o&&s)return n=r}}),n},VP=function(e){function t(e,n){return function(r,i,a,o){var s=r.options.group.name&&i.options.group.name&&r.options.group.name===i.options.group.name;if(e==null&&(n||s))return!0;if(e==null||e===!1)return!1;if(n&&e===`clone`)return e;if(typeof e==`function`)return t(e(r,i,a,o),n)(r,i,a,o);var c=(n?r:i).options.group.name;return e===!0||typeof e==`string`&&e===c||e.join&&e.indexOf(c)>-1}}var n={},r=e.group;(!r||_N(r)!=`object`)&&(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},HP=function(){!zP&&aP&&PN(aP,`display`,`none`)},UP=function(){!zP&&aP&&PN(aP,`display`,``)};IP&&!TN&&document.addEventListener(`click`,function(e){if(vP)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),vP=!1,!1},!0);var WP=function(e){if(rP){e=e.touches?e.touches[0]:e;var t=bye(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[ZN]._onDragOver(n)}}},xye=function(e){rP&&rP.parentNode[ZN]._isOutsideThisEl(e.target)};function GP(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw`Sortable: \`el\` must be an HTMLElement, not ${{}.toString.call(e)}`;this.el=e,this.options=t=vN({},t),e[ZN]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?`>li`:`>*`,swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return BP(e,this.options)},ghostClass:`sortable-ghost`,chosenClass:`sortable-chosen`,dragClass:`sortable-drag`,ignore:`a, img`,filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(`Text`,t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:`data-id`,delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:`sortable-fallback`,fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:GP.supportPointer!==!1&&`PointerEvent`in window&&(!CN||wN),emptyInsertThreshold:5};for(var r in eP.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in VP(t),this)i.charAt(0)===`_`&&typeof this[i]==`function`&&(this[i]=this[i].bind(this));this.nativeDraggable=!t.forceFallback&&vye,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?DN(e,`pointerdown`,this._onTapStart):(DN(e,`mousedown`,this._onTapStart),DN(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(DN(e,`dragover`,this),DN(e,`dragenter`,this)),yP.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),vN(this,pye())}GP.prototype={constructor:GP,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(DP=null)},_getDirection:function(e,t){return typeof this.options.direction==`function`?this.options.direction.call(this,e,t,rP):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,i=r.preventOnFilter,a=e.type,o=e.touches&&e.touches[0]||e.pointerType&&e.pointerType===`touch`&&e,s=(o||e).target,c=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,l=r.filter;if(JP(n),!rP&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&CN&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=jN(s,r.draggable,n,!1),!(s&&s.animated)&&cP!==s)){if(dP=HN(s),pP=HN(s,r.draggable),typeof l==`function`){if(l.call(this,e,s,this)){nP({sortable:t,rootEl:c,name:`filter`,targetEl:s,toEl:n,fromEl:n}),tP(`filter`,t,{evt:e}),i&&e.preventDefault();return}}else if(l&&(l=l.split(`,`).some(function(r){if(r=jN(c,r.trim(),n,!1),r)return nP({sortable:t,rootEl:r,name:`filter`,targetEl:s,fromEl:n,toEl:n}),tP(`filter`,t,{evt:e}),!0}),l)){i&&e.preventDefault();return}r.handle&&!jN(c,r.handle,n,!1)||this._prepareDragStart(e,o,s)}}},_prepareDragStart:function(e,t,n){var r=this,i=r.el,a=r.options,o=i.ownerDocument,s;if(n&&!rP&&n.parentNode===i){var c=RN(n);if(oP=i,rP=n,iP=rP.parentNode,sP=rP.nextSibling,cP=n,hP=a.group,GP.dragged=rP,bP={target:rP,clientX:(t||e).clientX,clientY:(t||e).clientY},wP=bP.clientX-c.left,TP=bP.clientY-c.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,rP.style[`will-change`]=`all`,s=function(){if(tP(`delayEnded`,r,{evt:e}),GP.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!SN&&r.nativeDraggable&&(rP.draggable=!0),r._triggerDragStart(e,t),nP({sortable:r,name:`choose`,originalEvent:e}),NN(rP,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){IN(rP,e.trim(),qP)}),DN(o,`dragover`,WP),DN(o,`mousemove`,WP),DN(o,`touchmove`,WP),a.supportPointer?(DN(o,`pointerup`,r._onDrop),!this.nativeDraggable&&DN(o,`pointercancel`,r._onDrop)):(DN(o,`mouseup`,r._onDrop),DN(o,`touchend`,r._onDrop),DN(o,`touchcancel`,r._onDrop)),SN&&this.nativeDraggable&&(this.options.touchStartThreshold=4,rP.draggable=!0),tP(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(xN||bN))){if(GP.eventCanceled){this._onDrop();return}a.supportPointer?(DN(o,`pointerup`,r._disableDelayedDrag),DN(o,`pointercancel`,r._disableDelayedDrag)):(DN(o,`mouseup`,r._disableDelayedDrag),DN(o,`touchend`,r._disableDelayedDrag),DN(o,`touchcancel`,r._disableDelayedDrag)),DN(o,`mousemove`,r._delayedDragTouchMoveHandler),DN(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&DN(o,`pointermove`,r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(s,a.delay)}else s()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){rP&&qP(rP),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;ON(e,`mouseup`,this._disableDelayedDrag),ON(e,`touchend`,this._disableDelayedDrag),ON(e,`touchcancel`,this._disableDelayedDrag),ON(e,`pointerup`,this._disableDelayedDrag),ON(e,`pointercancel`,this._disableDelayedDrag),ON(e,`mousemove`,this._delayedDragTouchMoveHandler),ON(e,`touchmove`,this._delayedDragTouchMoveHandler),ON(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?DN(document,`pointermove`,this._onTouchMove):t?DN(document,`touchmove`,this._onTouchMove):DN(document,`mousemove`,this._onTouchMove):(DN(rP,`dragend`,this),DN(oP,`dragstart`,this._onDragStart));try{document.selection?YP(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(_P=!1,oP&&rP){tP(`dragStarted`,this,{evt:t}),this.nativeDraggable&&DN(document,`dragover`,xye);var n=this.options;!e&&NN(rP,n.dragClass,!1),NN(rP,n.ghostClass,!0),GP.active=this,e&&this._appendGhost(),nP({sortable:this,name:`start`,originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(xP){this._lastX=xP.clientX,this._lastY=xP.clientY,HP();for(var e=document.elementFromPoint(xP.clientX,xP.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(xP.clientX,xP.clientY),e!==t);)t=e;if(rP.parentNode[ZN]._isOutsideThisEl(e),t)do{if(t[ZN]){var n=void 0;if(n=t[ZN]._onDragOver({clientX:xP.clientX,clientY:xP.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=AN(t));UP()}},_onTouchMove:function(e){if(bP){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,a=aP&&FN(aP,!0),o=aP&&a&&a.a,s=aP&&a&&a.d,c=LP&&MP&&UN(MP),l=(i.clientX-bP.clientX+r.x)/(o||1)+(c?c[0]-NP[0]:0)/(o||1),u=(i.clientY-bP.clientY+r.y)/(s||1)+(c?c[1]-NP[1]:0)/(s||1);if(!GP.active&&!_P){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))=0&&(nP({sortable:this,name:`update`,toEl:iP,originalEvent:e}),nP({sortable:this,name:`sort`,toEl:iP,originalEvent:e})):(fP>=0&&(nP({rootEl:iP,name:`add`,toEl:iP,fromEl:oP,originalEvent:e}),nP({sortable:this,name:`remove`,toEl:iP,originalEvent:e}),nP({rootEl:iP,name:`sort`,toEl:iP,fromEl:oP,originalEvent:e}),nP({sortable:this,name:`sort`,toEl:iP,originalEvent:e})),gP&&gP.save()),GP.active&&((fP==null||fP===-1)&&(fP=dP,mP=pP),nP({sortable:this,name:`end`,toEl:iP,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){tP(`nulling`,this),oP=rP=iP=aP=sP=lP=cP=uP=bP=xP=EP=fP=mP=dP=pP=DP=OP=gP=hP=GP.dragged=GP.ghost=GP.clone=GP.active=null,FP.forEach(function(e){e.checked=!0}),FP.length=SP=CP=0},handleEvent:function(e){switch(e.type){case`drop`:case`dragend`:this._onDrop(e);break;case`dragenter`:case`dragover`:rP&&(this._onDragOver(e),Sye(e));break;case`selectstart`:e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,r=0,i=n.length,a=this.options;ri.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>i.bottom+a||e.clientX>r.right&&e.clientY>r.top}function Eye(e,t,n,r,i,a,o,s){var c=r?e.clientY:e.clientX,l=r?n.height:n.width,u=r?n.top:n.left,d=r?n.bottom:n.right,f=!1;if(!o){if(s&&jPu+l*a/2:cd-jP)return-OP}else if(c>u+l*(1-i)/2&&cd-l*a/2)?c>u+l/2?1:-1:0}function Dye(e){return HN(rP)0?(r.splice(n+1,0,r[t]),r.splice(t,1)):(r.splice(n,0,r[t]),r.splice(t+1,1)),r}function pF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function mF(e){for(var t=1;ti?i*(r-1)+t:t}var b=function(n){var r;if(!((n==null||(r=n.children)==null?void 0:r.length)===0||!_.value&&!g.value)){var i=n?.querySelector(`tbody`);if(!i)return console.error(`tbody does not exist.`),null;var a=mF({animation:150,ghostClass:l.ghost,chosenClass:l.chosen,dragClass:l.dragging,filter:`.${d.base},.${f.row}`,onMove:function(e){return!up(e.related,d.base)},onEnd:function(n){var r;if(n.newIndex!==n.oldIndex){hF(n.item),gF(n.from,n.item,n.oldIndex);var i=n.oldIndex,a=n.newIndex;(q(e.firstFullRow)&&e.firstFullRow(sa)||t.slots.firstFullRow||t.slots[`first-full-row`])&&(--i,--a),s.value&&(i=y(i,s.value),a=y(a,s.value));var c={data:o.value,currentIndex:i,current:o.value[i],targetIndex:a,target:o.value[a],newData:fF(W(e.data),i,a),e:n,sort:`row`};c.currentData=c.newData,(r=e.onDragSort)==null||r.call(e,c)}}},e.dragSortOptions);i&&(g.value?new GP(i,mF({},a)):new GP(i,mF(mF({},a),{},{handle:`.${l.handle}`})))}},x=function(t,n){var r=mF({animation:150,dataIdAttr:`data-colkey`,direction:`vertical`,ghostClass:l.ghost,chosenClass:l.chosen,dragClass:l.dragging,handle:`.${u.thCellInner}`,onEnd:function(t){var r;if(t.newIndex!==t.oldIndex){n&&(hF(t.item),gF(t.from,t.item,t.oldIndex));var i=t.oldIndex,a=t.newIndex,o=t.target,s=n?i:a,c=n?a:i,l=o.children[s],u=o.children[c],d=iN(p.value,l.dataset.colkey),f=iN(p.value,u.dataset.colkey);(!d||!d.colKey)&&Vp.error(`Table`,`colKey is missing in ${JSON.stringify(d)}`),(!f||!f.colKey)&&Vp.error(`Table`,`colKey is missing in ${JSON.stringify(f)}`),s=aN(e.columns,d.colKey),c=aN(e.columns,f.colKey);var m={data:p.value,currentIndex:s,current:d,targetIndex:c,target:f,newData:fF(W(e.columns),s,c),e:t,sort:`col`};m.currentData=m.newData,(r=e.onDragSort)==null||r.call(e,m)}}},e.dragSortOptions);t&&new GP(t,r)},S=function(e){if(!(!v.value||!e)){var t=e.querySelectorAll(`thead > tr`);if(t.length<=1){var n=Y(t,1)[0];x(n,!0)}else t?.forEach(function(e){x(e,!1)})}};function C(e){m.value=e}function w(e){p.value=e}R([m,p,a,n],function(e){var t=Y(e,4),n=t[0];t[1],t[2];var r=t[3];T(n,r)});function T(e,t){var n=e;if(!(!e||!n.$el||!t.showElement))var r=setTimeout(function(){b(n.$el),S(n.$el);var e=setTimeout(function(){n.$refs.affixHeaderRef&&S(n.$refs.affixHeaderRef),clearTimeout(e)});clearTimeout(r)},60)}return{innerPagination:s,isRowDraggable:g,isRowHandlerDraggable:_,isColDraggable:v,setDragSortPrimaryTableRef:C,setDragSortColumns:w}}function vF(e){var t=pm(),n=Rp(`table`,e.locale).globalConfig,r=uM(),i=r.isLoadingClass,a=r.isLoadMoreClass,o=r.asyncLoadingClass,s=U(function(){return[o,G(G({},i,e.asyncLoading===`loading`),a,e.asyncLoading===`load-more`)]});function c(){var t;Rd(e.asyncLoading)&&((t=e.onAsyncLoadingClick)==null||t.call(e,{status:e.asyncLoading}))}function l(){var r=t(`asyncLoading`);if(Rd(r)){var i=e.asyncLoading,a={"load-more":n.value.loadingMoreText,loading:n.value.loadingText}[String(i)];return V(`div`,{class:s.value,onClick:c},[V(uh,{indicator:i===`loading`,loading:!!i,size:`small`,text:a},null)])}return[null,!1,void 0].includes(r)?null:V(`div`,{class:s.value,onClick:c},[r])}return{renderAsyncLoading:l}}function yF(e){return Gf(e)||oo(e)||ao(e)||Kf()}function bF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xF(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:{errors:[],errorMap:{}}).errorMap;e&&Object.assign(a,e)}),r.value=a,(i=e.onValidate)==null||i.call(e,{result:a}),n({result:a})},i)})},validateTableCellData:d,validateRowData:u,onRuleChange:function(t){if(e.editableRowKeys){var r=J(t.row,e.rowKey||`id`),i=n.get(r);if(i){var a=i.findIndex(function(e){return e.col.colKey===t.col.colKey});a===-1?i.push(t):i[a]=t,n.set(r,i)}else n.set(r,[t])}},clearValidateRowData:function(){r.value={}},clearAllEditableCellData:function(){Object.keys(s.value).forEach(function(e){var t,n;(t=s.value[e])==null||(n=t.clearValidateCellData)==null||n.call(t)})},onCellInstanceChange:function(e,t){t?s.value[e]=t:delete s.value[e]},onUpdateEditedCell:function(e,t,n){o.value[e]||(o.value[e]=iu(t)),Object.entries(n).forEach(function(t){var n=Y(t,2),r=n[0],i=n[1];Bf(o.value[e],r,i)})},getEditRowData:function(t){var n,r=t.row,i=t.col,a=J(r,e.rowKey||`id`),s=o.value[a];if(s&&(n=e.editableRowKeys)!=null&&n.includes(a)){var c=wF({},s);return Bf(c,i.colKey,J(s,i.colKey)),c}return r},onPrimaryTableCellEditChange:function(t){var n=kM(t.row,e.rowKey,t.col.colKey,t.colIndex);t.isEdit?a.value[n]=t:delete a.value[n]}}}function EF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function DF(e){for(var t=1;t1&&arguments[1]!==void 0&&arguments[1],i=[],a=function(){var a,c,u,f=DF({},n[s]);if(!(f.children?.length||v.value?.includes(f.colKey))&&(e.columnController||e.displayColumns||e.defaultDisplayColumns)&&!r)return 1;f=ee(f);var m=e.sort;if(f.sorter&&e.showSortColumnBgColor&&(m instanceof Array?m:[m]).find(function(e){return e&&e.sortBy===f.colKey&&e.descending!==void 0})&&(f.className=f.className instanceof Array?f.className.concat(p.sortColumn):[f.className,p.sortColumn]),f.sorter||f.filter){var _=hM(t.slots,f,s),y=f.ellipsisTitle;f.title=function(e,t){var n=f.sorter?D(t):null,r=f.filter?ie(t):null,i=o.value?.tableContentRef;return me([_,n,r],t.col,t.colIndex,y,i,{classPrefix:l,ellipsisOverlayClassName:g.value===`medium`?``:h[g.value]})},f.ellipsisTitle=!1}if((a=f.edit)!=null&&a.component){var b=f.cell;f.cell=function(n,r){var i=DF(DF({},r),{},{row:De(r),oldCell:b,rowKey:e.rowKey||`id`,tableBaseClass:d,cellEmptyContent:e.cellEmptyContent,onChange:Pe,onValidate:e.onRowValidate,onRuleChange:Se,onEditableChange:Oe});if(e.editableRowKeys){var a=J(r.row,e.rowKey||`id`);i.editable=ve.value[a]||!1;var o=[a,r.col.colKey].join(`__`),s=_e.value?.[o];s&&(i.errors=s)}return e.editableCellState&&(i.readonly=!e.editableCellState(r)),V(SF,H(i,{cellKey:kM(r.row,e.rowKey||`id`,r.col.colKey,r.colIndex),onCellInstanceChange:Te,onUpdateEditedCell:Ee}),t.slots)}}(c=f.children)!=null&&c.length&&(f.children=Fe(f.children,r||v.value?.includes(f.colKey))),(!f.children||(u=f.children)!=null&&u.length)&&i.push(f)},s=0,c=n.length;s2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=J(e,t);return n||r?`${i}_${n||0}_${r||0}}`:i}var FF=function(){function e(){Xp(this,e),G(this,`treeDataMap`,new Map),G(this,`expandAllRowIndex`,void 0),this.treeDataMap=new Map}return Yp(e,[{key:`initialTreeStore`,value:function(e,t,n){var r;(r=this.treeDataMap)==null||r.clear(),this.initialTreeDataMap(this.treeDataMap,e,t.find(function(e){return e.colKey===`row-select`}),n)}},{key:`getAllUniqueKeys`,value:function(e,t){for(var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=0,i=e.length;r2&&arguments[2]!==void 0?arguments[2]:[],r=0,i=e.length;r=0){var i=(r.expandChildrenLength||0)+1;if(t.splice(r.rowIndex,i),r.parent){var a=J(r.parent.row,n.childrenKey),o=a.findIndex(function(t){return J(t,n.rowKey)===e});a.splice(o,1),IF(this.treeDataMap,r.parent.row,-1*i,`delete`,n)}this.treeDataMap.delete(e),BF(this.treeDataMap,t,{minRowIndex:r.rowIndex,rowKey:n.rowKey,type:`remove`})}else Vp.warn(`EnhancedTable`,`Can not remove this node, which is not appeared.`);return t}},{key:`removeChildren`,value:function(e,t,n){var r=this.treeDataMap.get(e);if(r&&r.rowIndex>=0){var i=r.expandChildrenLength||0;i&&t.splice(r.rowIndex+1,i),r.parent&&IF(this.treeDataMap,r.parent.row,-1*i,`delete`,n),r.expandChildrenLength=0,r.expanded=!1,Bf(r.row,n.childrenKey,void 0),this.treeDataMap.set(e,r),i&&BF(this.treeDataMap,t,{minRowIndex:r.rowIndex+1,rowKey:n.rowKey,type:`remove`})}else Vp.warn(`EnhancedTable`,`Can not remove this node's children, which is not appeared.`);return t}},{key:`appendTo`,value:function(e,t,n,r){var i=this.treeDataMap.get(e);if(!this.validateDataExist(i,e))return n;for(var a=J(i.row,r.childrenKey),o=i.expanded||!(a!=null&&a.length),s=t instanceof Array?t:[t],c=[],l=[],u=-1,d=0,f=s.length;di){var p=e.slice(u,r),m=d.concat(f,p);e.splice(i,m.length),e.splice.apply(e,[i,0].concat(W(m))),BF(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:i,maxRowIndex:l})}else{var h=e.slice(l,i).concat(f,d);e.splice(r,h.length),e.splice.apply(e,[r,0].concat(W(h))),BF(this.treeDataMap,e,{rowKey:n.rowKey,minRowIndex:r,maxRowIndex:u})}if(s.parent){for(var g=s.parent.row[n.childrenKey],_=0,v=-1,y=-1,b=0,x=g.length;b=2));b++);y2&&arguments[2]!==void 0?arguments[2]:null,o=0,s=e.length;o2&&arguments[2]!==void 0?arguments[2]:`data`,i=[];return e.forEach(function(e){var a=J(e,t.rowKey),o=n.treeDataMap.get(a);o.expanded&&(r===`unique`?i.push(a):r===`data`?i.push(e):i.push(o))}),i}},{key:`initialTreeDataMap`,value:function(e,t,n,r){for(var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,o=0,s=t.length;o0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=[],r=[],i=new Map,a=new Map,o=0,s=e.length;o0&&arguments[0]!==void 0?arguments[0]:`expand-all`,t=(arguments.length>1?arguments[1]:void 0)||o.value;r.value=n.value.expandAll(t,i.value),p(r.value.map(function(e){return PF(e,i.value.rowKey)}),{row:void 0,rowState:void 0,rowIndex:void 0,type:`expand`,trigger:e}),m.value.type=`expand-all`}function g(){r.value=W(n.value.foldAll(r.value,i.value)),p([],{row:void 0,rowState:void 0,rowIndex:void 0,type:`fold`,trigger:`fold-all`})}function _(t,r){var a,o=t.row,s=t.rowIndex;m.value=UF({type:`user-reaction-change`},t);var c=PF(o,i.value.rowKey),l=n.value.treeDataMap.get(c),u=W(f.value);if(l.expanded){for(var d=n.value.getExpandedChildrenKeys([o],i.value),h=0,g=u.length;h2&&arguments[2]!==void 0?arguments[2]:[]),a=r.addedList,o=r.removedList;return n.value.expandTreeNode(a,e,i.value),n.value.foldTreeNode(o,e,i.value),W(e)}return R([f,o],function(e,t){var a=Y(e,1)[0],s=Y(t,1)[0];if(!(!n.value.treeDataMap.size||!o.value.length)){if(m.value.type===`user-reaction-change`){var c=m.value||{},l=c.row,u=c.rowIndex;r.value=W(n.value.toggleExpandData({row:l,rowIndex:u},W(r.value),i.value))}else m.value.type===`props-change`&&v(r.value,a,s);m.value.type=`props-change`}}),{tExpandedTreeNode:f,isDefaultExpandAllExecute:l,isDefaultExpandedTreeNodesExecute:u,expandAll:h,foldAll:g,onExpandFoldIconClick:_,updateExpandOnDataChange:function(e){var t,n;(t=c.value)!=null&&t.defaultExpandAll&&!l.value?(h(`default-expand-all`,W(e)),l.value=!0):(n=f.value)!=null&&n.length&&dn(function(){r.value=v(W(e),f.value,[])})}}}function GF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function KF(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:``,t=arguments.length>1?arguments[1]:void 0;if(!e){p.value=d.value.appendToRoot(t,p.value,g.value);return}p.value=W(d.value.appendTo(e,t,p.value,g.value))}function te(e,t){p.value=W(d.value.insertAfter(e,t,p.value,g.value))}function ne(e,t){p.value=W(d.value.insertBefore(e,t,p.value,g.value))}function re(t){var n=d.value.swapData(p.value,t,g.value);if(n.result)p.value=W(n.dataSource);else{var r,i={code:n.code,reason:n.reason};(r=e.onAbnormalDragSort)==null||r.call(e,i)}}function ie(){return d.value.getTreeNode(p.value,g.value)}function ae(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`data`;return d.value.getTreeExpandedRow(p.value,g.value,e)}return{store:d,rowDataKeys:g,dataSource:p,swapData:re,setData:M,getData:ee,remove:N,removeChildren:P,appendTo:F,insertAfter:te,insertBefore:ne,formatTreeColumn:j,toggleExpandData:k,expandAll:x,foldAll:S,getTreeNode:ie,resetData:D,getTreeExpandedRow:ae,onExpandFoldIconClick:w}}function JF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YF(e){for(var t=1;t0&&p=0)return e.rowIndex;if(e.rowIndex<0)return y(e.parent,t)};return t.expose(rI(rI({store:i.value,dataSource:a.value},l),{},{primaryTableRef:n,validateRowData:function(e){return n.value.validateRowData(e)},validateTableData:function(){return n.value.validateTableData()},clearValidateData:function(){n.value.clearValidateData()},refreshTable:function(){n.value.refreshTable()},scrollToElement:function(e){var t=e.index;if(!t&&t!==0){if(!e.key){Vp.error(`Table`,"scrollToElement: one of `index` or `key` must exist.");return}t=y(d.value.get(e.key),e.key),(t<0||t===void 0)&&Vp.error(`Table`,`${e.key} does not exist in data, check \`rowKey\` or \`data\` please.`)}n.value.scrollToElement(rI(rI({},e),{},{index:t}))}})),function(){var r,i=Yi().vnode,o=rI(rI({},i.props),{},{rowKey:e.rowKey||`id`,data:a.value,columns:g.value,indeterminateSelectedRowKeys:p.value,disableDataPage:!!(e.tree&&Object.keys(e.tree).length)||e.disableDataPage,onSelectChange:m,onDragSort:_,rowClassName:function(t){var n=t.row,r=J(n,e.rowKey||`id`),i=d.value.get(r);return i?[`${u.value}-table-tr--level-${i.level}`,e.rowClassName]:[e.rowClassName]}});return(r=e.tree)!=null&&r.expandTreeNodeOnClick&&(o.onRowClick=v),V(kF,H(o,{ref:n}),t.slots)}}}),aI=X(XM),oI=X(kF),sI=X(iI),cI=X(iu(kF),`TTable`),lI={labelAlign:{type:String,default:`left`,validator:function(e){return!e||[`left`,`right`,`alternate`,`top`,`bottom`].includes(e)}},layout:{type:String,default:`vertical`,validator:function(e){return!e||[`horizontal`,`vertical`].includes(e)}},mode:{type:String,default:`alternate`,validator:function(e){return!e||[`alternate`,`same`].includes(e)}},reverse:Boolean,theme:{type:String,default:`default`,validator:function(e){return!e||[`default`,`dot`].includes(e)}}},uI={vertical:[`left`,`right`],horizontal:[`top`,`bottom`]},dI=Symbol(`timeLineProvide`),fI=U(function(){return{theme:`default`,reverse:!1,itemsStatus:[],layout:`horizontal`,renderAlign:`left`,mode:`alternate`}}),pI={content:{type:[String,Function]},dot:{type:Function},dotColor:{type:String,default:`primary`},label:{type:[String,Function]},labelAlign:{type:String,validator:function(e){return!e||[`left`,`right`,`top`,`bottom`].includes(e)}},loading:Boolean,onClick:Function};function mI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hI(e){for(var t=1;t=0?t.splice(n,1):o.value?t=[e]:t.push(e),d(t)},p=U(function(){return[t.value,G({},n.value,!!s.value)]}),m=function(){var e=0;return function(){return e++}}();return Cn(`collapseValue`,u),Cn(`updateCollapseValue`,f),Cn(`collapseProps`,Wt(e)),Cn(`getUniqId`,m),Cn(`renderParentTNode`,r),function(){var e=r(`default`);return V(`div`,{class:p.value},[e])}}}),xI={content:{type:[String,Function]},default:{type:[String,Function]},destroyOnCollapse:Boolean,disabled:{type:Boolean,default:void 0},expandIcon:{type:[Boolean,Function],default:void 0},header:{type:[String,Function]},headerRightContent:{type:[String,Function]},value:{type:[String,Number]}};function SI(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Mi(e)}var CI=z({name:`TCollapsePanel`,props:xI,setup:function(e,t){var n=t.slots,r=pm(),i=hm(),a=Q(`collapse-panel`),o=Q(`is-disabled`),s=Q(`is-clickable`),c=Q(`slide-down`),l=Wt(e),u=l.value,d=l.disabled,f=l.destroyOnCollapse,p=wn(`collapseValue`),m=wn(`updateCollapseValue`),h=wn(`getUniqId`,function(){},!1),g=wn(`collapseProps`),_=g.defaultExpandAll,v=g.disabled,y=g.expandIconPlacement,b=g.expandOnRowClick,x=wn(`renderParentTNode`),S=u.value||h();_.value&&m(S);var C=vm(),w=C.beforeEnter,T=C.enter,E=C.afterEnter,D=C.beforeLeave,O=C.leave,k=C.afterLeave,A=I(),j=U(function(){return d.value||v.value}),M=U(function(){return p.value instanceof Array?p.value.includes(S):p.value===S}),ee=U(function(){return[a.value,G({},o.value,j.value)]}),N=U(function(){return n.expandIcon||e.expandIcon}),P=function(e){(b.value||e.currentTarget===A.value)&&!j.value&&m(S),e.stopPropagation()},F=function(e){e.stopPropagation()},te=function(){return V(DS,{overlayClassName:`${a.value}__icon--default`},null)},ne=function(){var e=N.value===void 0?x:r;return V(`div`,{ref:A,class:`${a.value}__icon ${a.value}__icon--${y.value} ${M.value?`${a.value}__icon--active`:``}`,onClick:P},[e(`expandIcon`,te())])},re=function(){return V(`div`,{class:`${a.value}__header--blank`},null)},ie=function(){var e=r(`headerRightContent`);return e?V(`div`,{onClick:F},[e]):null},ae=function(){return V(`div`,{class:[`${a.value}__header`,G({},s.value,b.value&&!j.value)],onClick:P},[y.value===`left`&&ne(),r(`header`),re(),ie(),y.value===`right`&&ne()])},oe=function(){return xn(V(`div`,{class:`${a.value}__body`},[V(`div`,{class:`${a.value}__content`},[i(`default`,`content`)])]),[[Na,M.value]])},se=function(){return M.value?V(`div`,{class:`${a.value}__body`},[V(`div`,{class:`${a.value}__content`},[i(`default`,`content`)])]):null},ce=function(){return f.value?se():oe()};return function(){var e;return V(`div`,{class:ee.value},[V(`div`,{class:`${a.value}__wrapper`},[ae(),V(va,{name:c.value,onBeforeEnter:w,onEnter:T,onAfterEnter:E,onBeforeLeave:D,onLeave:O,onAfterLeave:k},SI(e=ce())?e:{default:function(){return[e]}})])])}}}),wI=X(bI),TI=X(CI),EI={alpha:{type:Number,default:1},content:{type:[String,Function]},default:{type:[String,Function]},height:{type:Number},isRepeat:{type:Boolean,default:!0},layout:{type:String,default:`rectangular`,validator:function(e){return!e||[`rectangular`,`hexagonal`].includes(e)}},lineSpace:{type:Number,default:16},movable:Boolean,moveInterval:{type:Number,default:3e3},offset:{type:Array},removable:{type:Boolean,default:!0},rotate:{type:Number,default:-22},watermarkContent:{type:[Object,Array]},width:{type:Number},x:{type:Number},y:{type:Number},zIndex:{type:Number}};function DI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function OI(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(e.url){var l=e.url,u=e.isGrayscale,d=u!==void 0&&u,f=new Image;f.crossOrigin=`anonymous`,f.referrerPolicy=`no-referrer`,f.src=l,f.onload=function(){var l,u;if((l=g.save)==null||l.call(g),D(g,o,s,c),d){var p=document.createElement(`canvas`),m=p.getContext(`2d`);p.width=n*_,p.height=r*_,m.drawImage(f,0,0,n*_,r*_);for(var y=m.getImageData(0,0,n*_,r*_),b=y.data,x=0;x { - const headers = new Headers(options.headers || {}) - headers.set('Accept', 'application/json') - if (options.body && !(options.body instanceof FormData)) headers.set('Content-Type', 'application/json') - if (csrf && options.method && options.method !== 'GET') headers.set('X-CSRF-Token', csrf) - const response = await fetch(`${base}${path}`, { ...options, headers, credentials: 'same-origin' }) - const data = await response.json().catch(() => ({})) - if (!response.ok) throw new Error(data.error || `请求失败 (${response.status})`) - return data - } - const setLoggedIn = (user) => { - $('#login-panel').hidden = !!user - $('#app-panel').hidden = !user - $('#logout').hidden = !user - $('#operator').textContent = user ? (user.email || user.username || '管理员') : '' - } - const login = async (event) => { - event.preventDefault(); $('#login-error').textContent = '' - const body = Object.fromEntries(new FormData(event.currentTarget).entries()) - try { - const result = await api('/login', { method: 'POST', body: JSON.stringify(body) }) - if (result.requires_2fa) { pendingToken = result.pending_token; $('#login-form').hidden = true; $('#twofa-form').hidden = false; return } - csrf = result.csrf_token; setLoggedIn(result.user); await loadAll() - } catch (error) { $('#login-error').textContent = error.message } - } - const login2fa = async (event) => { - event.preventDefault(); $('#login-error').textContent = '' - const body = Object.fromEntries(new FormData(event.currentTarget).entries()); body.pending_token = pendingToken - try { const result = await api('/login/2fa', { method: 'POST', body: JSON.stringify(body) }); csrf = result.csrf_token; setLoggedIn(result.user); await loadAll() } catch (error) { $('#login-error').textContent = error.message } - } - const logout = async () => { try { await api('/logout', { method: 'POST' }) } catch (_) {} csrf = ''; setLoggedIn(null); $('#login-form').hidden = false; $('#twofa-form').hidden = true } - const badge = (state) => `${escapeHtml(state || 'unknown')}` - const escapeHtml = (value) => String(value == null ? '' : value).replace(/[&<>"']/g, (char) => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[char])) - const normalizedVersion = (value) => String(value || '').trim().replace(/^v/, '') - const marketplaceInstalled = (item) => { - const installed = installedPlugins.get(String(item.plugin_id || '')) - return !!(item.installed || installed) - } - const marketplaceStatus = (item) => marketplaceInstalled(item) - ? `已入库 · ${escapeHtml(item.installed_status === 'installed' ? '运行中' : item.installed_status === 'stopped' ? '已停用' : item.installed_state === 'error' ? '启用失败' : item.installed_state === 'incompatible' ? 'Core 不兼容' : '待启用')}` - : '可安装' - const loadMarketplace = async () => { - const data = await api('/api/marketplace'); const root = $('#marketplace'); root.textContent = '' - const items = Array.isArray(data.items) ? data.items : [] - if (!items.length) { root.innerHTML = '
暂无可用插件
'; return } - for (const item of items) { - const pluginId = String(item.plugin_id || ''); const version = String(item.version || '') - const installed = marketplaceInstalled(item); const sameVersion = installed && normalizedVersion(item.installed_version) === normalizedVersion(version); const card = document.createElement('article'); card.className = 'market-card' - const marketButtonLabel = installed ? (sameVersion ? '已入库' : '请在已入库卡片中升级') : '下载并入库' - card.innerHTML = `

${escapeHtml(item.name || pluginId)}

${escapeHtml(pluginId)} · v${escapeHtml(version)}

${marketplaceStatus(item)}

${escapeHtml(item.description || '由受控插件目录提供的 Business Plugin')}

发布者
${escapeHtml(item.publisher || item.publisher_key_id || '-')}
兼容性
${escapeHtml(item.compatibility && item.compatibility.status || item.compatibility_status || 'unknown')}
包 SHA-256
${escapeHtml(item.archive_sha256 || item.sha256 || '-')}
` - root.appendChild(card) - } - } - const loadPlugins = async () => { - const data = await api('/api/plugins'); const root = $('#plugins'); root.textContent = '' - installedPlugins = new Map((data.items || []).map((plugin) => [String(plugin.plugin_id || ''), plugin])) - if (!data.items || !data.items.length) { root.innerHTML = '
还没有登记业务插件
'; return } - for (const plugin of data.items) { - const card = document.createElement('article'); card.className = 'plugin-card' - const staged = plugin.installation_status === 'staged' || plugin.state === 'disabled' || plugin.state === 'incompatible' - const installedLabel = plugin.state === 'healthy' || plugin.state === 'enabled' ? '运行中' : plugin.installation_status === 'stopped' ? '已停用' : plugin.state === 'incompatible' ? 'Core 不兼容' : plugin.state === 'error' ? '启用失败' : staged ? '已入库 · 待启用' : '' - card.innerHTML = `

${escapeHtml(plugin.name)}

${escapeHtml(plugin.plugin_id)} · v${escapeHtml(plugin.version)}

${badge(plugin.state)}${installedLabel ? `${installedLabel}` : ''}
能力
${(plugin.capabilities || []).map(escapeHtml).join(', ') || '未声明'}
活动 revision
${escapeHtml(plugin.active_revision || '-')}
Core 兼容性
${escapeHtml((plugin.compatibility || {}).status || 'unknown')}

${escapeHtml(plugin.last_error || '')}

` - root.appendChild(card) - } - } - const loadAudit = async () => { const data = await api('/api/audit'); const root = $('#audit'); root.textContent = ''; for (const item of (data.items || []).slice().reverse()) { const row = document.createElement('div'); row.className = 'audit-row'; row.innerHTML = `${escapeHtml(item.action)}${escapeHtml(item.plugin_id || '-')}${escapeHtml(item.result)}`; root.appendChild(row) } } - const loadAll = async () => { try { await loadPlugins(); await Promise.all([loadMarketplace(), loadAudit()]); notice('') } catch (error) { notice(error.message, true) } } - const mutate = async (action, id) => { const key = `${action}-${id}-${Date.now()}`; try { const result = await api(`/api/plugins/${encodeURIComponent(id)}/${action}`, { method: 'POST', headers: { 'Idempotency-Key': key } }); notice(`操作已提交:${result.operation_id || result.state}${result.warning ? `;${result.warning}` : ''}`); await loadAll() } catch (error) { notice(error.message, true) } } - const openConfig = async (id) => { configPluginId = id; $('#config-plugin').textContent = id; $('#config-error').textContent = ''; const form = $('#config-form'); form.elements.service_url.value = ''; form.elements.public_url.value = ''; try { const data = await api(`/api/plugins/${encodeURIComponent(id)}/config`); form.elements.service_url.value = data.endpoint || ''; if (data.config && typeof data.config.public_url === 'string') form.elements.public_url.value = data.config.public_url; $('#config-dialog').showModal() } catch (error) { notice(error.message, true) } } - const saveConfig = async (event) => { event.preventDefault(); const form = event.currentTarget; const body = { service_url: form.elements.service_url.value.trim(), public_url: form.elements.public_url.value.trim() }; try { const result = await api(`/api/plugins/${encodeURIComponent(configPluginId)}/config`, { method: 'PUT', headers: { 'Idempotency-Key': `config-${configPluginId}-${Date.now()}` }, body: JSON.stringify(body) }); $('#config-dialog').close(); notice(`配置已保存:${result.operation_id || result.state}`); await loadAll() } catch (error) { $('#config-error').textContent = error.message } } - const upload = async (file) => { const form = new FormData(); form.append('package', file); try { const result = await api('/api/plugins/install', { method: 'POST', headers: { 'Idempotency-Key': `install-${Date.now()}` }, body: form }); notice(`插件已入库,待手动启用:${result.operation_id || result.state}`); await loadAll() } catch (error) { notice(error.message, true) } } - const uploadUpgrade = async (id, file) => { const form = new FormData(); form.append('package', file); try { const result = await api(`/api/plugins/${encodeURIComponent(id)}/upgrade`, { method: 'POST', headers: { 'Idempotency-Key': `upgrade-${id}-${Date.now()}` }, body: form }); notice(`升级已提交:${result.operation_id || result.state}`); await loadAll() } catch (error) { notice(error.message, true) } } - const installFromMarketplace = async (button) => { - const pluginId = button.dataset.id; const version = button.dataset.version - if (!pluginId || !version || button.disabled) return - button.disabled = true - try { const result = await api('/api/marketplace/install', { method: 'POST', headers: { 'Idempotency-Key': `marketplace-install-${pluginId}-${version}-${Date.now()}` }, body: JSON.stringify({ plugin_id: pluginId, version }) }); notice(`插件已入库,待手动启用:${result.operation_id || result.state}`); await loadAll() } catch (error) { button.disabled = false; notice(error.message, true) } - } - $('#login-form').addEventListener('submit', login); $('#twofa-form').addEventListener('submit', login2fa); $('#logout').addEventListener('click', logout); $('#refresh').addEventListener('click', loadAll); $('#marketplace-refresh').addEventListener('click', loadAll); $('#audit-refresh').addEventListener('click', loadAudit); $('#config-form').addEventListener('submit', saveConfig); $('#config-close').addEventListener('click', () => $('#config-dialog').close()); $('#config-cancel').addEventListener('click', () => $('#config-dialog').close()) - $('#package-file').addEventListener('change', (event) => { const file = event.target.files[0]; if (file) upload(file); event.target.value = '' }) - $('#plugins').addEventListener('change', (event) => { const input = event.target.closest('[data-action="upgrade-file"]'); if (!input) return; const file = input.files[0]; if (file) uploadUpgrade(input.dataset.id, file); input.value = '' }) - $('#plugins').addEventListener('click', (event) => { const button = event.target.closest('[data-action]'); if (!button || button.disabled) return; const action = button.dataset.action; const id = button.dataset.id; if (action === 'config') { openConfig(id); return } if (action === 'uninstall' && !window.confirm('删除后将移除插件文件,Core 数据不会删除。继续吗?')) return; mutate(action, id) }) - $('#marketplace').addEventListener('click', (event) => { const button = event.target.closest('[data-market-action="install"]'); if (button) installFromMarketplace(button) }) - api('/api/me').then((data) => { csrf = data.csrf_token; setLoggedIn(data.user); loadAll() }).catch(() => setLoggedIn(null)) -})() + `}var jI=function(e){var t=document.createElement(`style`),n=null;document.head.appendChild(t),n=t.sheet,n.insertRule(e,n.cssRules.length)};function MI(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=NI(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function NI(e,t){if(e){if(typeof e==`string`)return PI(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?PI(e,t):void 0}}function PI(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=o)return n;if(a-r=h.value)return``;if(t2&&arguments[2]!==void 0?arguments[2]:{};e&&(l=sa(t,{style:n},[l]))}return u(a,`strong`),u(r,`u`),u(i,`del`),u(n,`code`),u(s!==!1,`mark`,s?{backgroundColor:s}:{}),u(o,`kbd`),u(c,`i`),l},c=U(function(){var t=e.theme,n=e.disabled,i=r.value,a=[i];return n?a.push(`${i}--disabled`):t&&[`primary`,`secondary`,`success`,`warning`,`error`].includes(t)&&a.push(`${i}--${t}`),a}),l=U(function(){var t=e.copyable;return a.value?i.value.copiedText:so(t)===`object`?t.tooltipProps?.content:null}),u=U(function(){return e.content||n?.default()}),d=function(t){var n=e.copyable,r=a.value?function(){return V(ig,null,null)}:function(){return V(dce,null,null)},i={theme:`default`},o=function(){};return so(n)===`object`&&(n.suffix&&!a.value&&(r=n.suffix),n.tooltipProps&&(i=n.tooltipProps),typeof n.onCopy==`function`&&(o=n.onCopy)),V(Gx,H(i,{content:l.value}),{default:function(){return[t?V(`span`,{onClick:function(e){return p(e,o)}},[r()]):V(mh,{icon:r,shape:`square`,theme:`primary`,variant:`text`,onClick:function(e){return p(e,o)}},null)]}})},f=function(){var t=e.copyable;if(so(t)===`object`&&t!=null&&t.text)return t.text;if(typeof u.value==`string`)return u.value;if(Array.isArray(u.value))return u.value.map(function(e){return e.children}).join(``)},p=function(e,t){e.preventDefault(),e.stopPropagation(),a.value=!0,setTimeout(function(){a.value=!1},1500),hoe(f()),t?.()};return function(){var t,n=o(`default`,`content`);return e.ellipsis?V(HI,H(e,{class:c.value,renderCopy:e.copyable?function(){return d(!0)}:null}),UI(t=s(e,n))?t:{default:function(){return[t]}}):V(`span`,{class:c.value},[s(e,n),e.copyable?d():null])}}});function GI(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Mi(e)}var KI=z({name:`TTypography`,setup:function(){var e=pm();return function(){var t;return V(WI,null,GI(t=e(`default`))?t:{default:function(){return[t]}})}}}),qI={content:{type:[String,Function]},default:{type:[String,Function]},ellipsis:{type:[Boolean,Object],default:!1},level:{type:String,default:`h1`,validator:function(e){return!e||[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`].includes(e)}}};function JI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YI(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function lL(e,t){if(e){if(typeof e==`string`)return uL(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?uL(e,t):void 0}}function uL(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n31||e>>>t)throw RangeError(`Value out of range`);for(var r=t-1;r>=0;r--)n.push(e>>>r&1)}function fL(e,t){return(e>>>t&1)!=0}function pL(e){if(!e)throw Error(`Assertion error`)}var mL=function(){function e(t,n){Xp(this,e),G(this,`modeBits`,void 0),G(this,`numBitsCharCount`,void 0),this.modeBits=t,this.numBitsCharCount=n}return Yp(e,[{key:`numCharCountBits`,value:function(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}}])}();oL=mL,G(mL,`NUMERIC`,new oL(1,[10,12,14])),G(mL,`ALPHANUMERIC`,new oL(2,[9,11,13])),G(mL,`BYTE`,new oL(4,[8,16,16])),G(mL,`KANJI`,new oL(8,[8,10,12])),G(mL,`ECI`,new oL(7,[0,0,0]));var hL=Yp(function e(t,n){Xp(this,e),G(this,`ordinal`,void 0),G(this,`formatBits`,void 0),this.ordinal=t,this.formatBits=n});sL=hL,G(hL,`LOW`,new sL(0,1)),G(hL,`MEDIUM`,new sL(1,0)),G(hL,`QUARTILE`,new sL(2,3)),G(hL,`HIGH`,new sL(3,2));var gL=function(){function e(t,n,r){if(Xp(this,e),G(this,`mode`,void 0),G(this,`numChars`,void 0),G(this,`bitData`,void 0),this.mode=t,this.numChars=n,this.bitData=r,n<0)throw RangeError(`Invalid argument`);this.bitData=r.slice()}return Yp(e,[{key:`getData`,value:function(){return this.bitData.slice()}}],[{key:`makeBytes`,value:function(t){var n=[],r=cL(t),i;try{for(r.s();!(i=r.n()).done;){var a=i.value;dL(a,8,n)}}catch(e){r.e(e)}finally{r.f()}return new e(mL.BYTE,t.length,n)}},{key:`makeNumeric`,value:function(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);for(var n=[],r=0;r=1<e.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=t*4+17;for(var o=[],s=0;s=0&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}return Yp(e,[{key:`getModule`,value:function(e,t){return e>=0&&e=0&&t>>9)*1335;var i=(t<<10|n)^21522;pL(i>>>15==0);for(var a=0;a<=5;a++)this.setFunctionModule(8,a,fL(i,a));this.setFunctionModule(8,7,fL(i,6)),this.setFunctionModule(8,8,fL(i,7)),this.setFunctionModule(7,8,fL(i,8));for(var o=9;o<15;o++)this.setFunctionModule(14-o,8,fL(i,o));for(var s=0;s<8;s++)this.setFunctionModule(this.size-1-s,8,fL(i,s));for(var c=8;c<15;c++)this.setFunctionModule(8,this.size-15+c,fL(i,c));this.setFunctionModule(8,this.size-8,!0)}},{key:`drawVersion`,value:function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^(e>>>11)*7973;var n=this.version<<12|e;pL(n>>>18==0);for(var r=0;r<18;r++){var i=fL(n,r),a=this.size-11+r%3,o=Math.floor(r/3);this.setFunctionModule(a,o,i),this.setFunctionModule(o,a,i)}}}},{key:`drawFinderPattern`,value:function(e,t){for(var n=-4;n<=4;n++)for(var r=-4;r<=4;r++){var i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;a>=0&&a=0&&o=s)&&h.push(t[e])})},_=0;_=1;r-=2){r===6&&(r=5);for(var i=0;i>>3],7-(n&7)),n++)}}pL(n===t.length*8)}},{key:`applyMask`,value:function(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(var t=0;t5&&t++):(this.finderPenaltyAddHistory(i,a),r||(t+=this.finderPenaltyCountPatterns(a)*e.PENALTY_N3),r=this.modules[n][o],i=1);t+=this.finderPenaltyTerminateAndCount(r,i,a)*e.PENALTY_N3}for(var s=0;s5&&t++):(this.finderPenaltyAddHistory(l,u),c||(t+=this.finderPenaltyCountPatterns(u)*e.PENALTY_N3),c=this.modules[d][s],l=1);t+=this.finderPenaltyTerminateAndCount(c,l,u)*e.PENALTY_N3}for(var f=0;f=0&&y<=9),t+=y*e.PENALTY_N4,pL(t>=0&&t<=2568888),t}},{key:`getAlignmentPatternPositions`,value:function(){if(this.version===1)return[];for(var e=Math.floor(this.version/7)+2,t=this.version===32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6],r=this.size-7;n.length0&&e[2]===t&&e[3]===t*3&&e[4]===t&&e[5]===t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}},{key:`finderPenaltyTerminateAndCount`,value:function(e,t,n){var r=t;return e&&(this.finderPenaltyAddHistory(r,n),r=0),r+=this.size,this.finderPenaltyAddHistory(r,n),this.finderPenaltyCountPatterns(n)}},{key:`finderPenaltyAddHistory`,value:function(e,t){var n=e;t[0]===0&&(n+=this.size),t.pop(),t.unshift(n)}}],[{key:`encodeText`,value:function(t,n){var r=gL.makeSegments(t);return e.encodeSegments(r,n)}},{key:`encodeBinary`,value:function(t,n){var r=gL.makeBytes(t);return e.encodeSegments([r],n)}},{key:`encodeSegments`,value:function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:40,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;if(!(e.MIN_VERSION<=r&&r<=i&&i<=e.MAX_VERSION)||a<-1||a>7)throw RangeError(`Invalid value`);var s,c;for(s=r;;s++){var l=e.getNumDataCodewords(s,n)*8,u=gL.getTotalBits(t,s);if(u<=l){c=u;break}if(s>=i)throw RangeError(`Data too long`)}for(var d=n,f=0,p=[hL.MEDIUM,hL.QUARTILE,hL.HIGH];f>>3]|=e<<7-(t&7)}),new e(s,d,w,a)}},{key:`getNumRawDataModules`,value:function(t){if(te.MAX_VERSION)throw RangeError(`Version number out of range`);var n=(16*t+128)*t+64;if(t>=2){var r=Math.floor(t/7)+2;n-=(25*r-10)*r-55,t>=7&&(n-=36)}return pL(n>=208&&n<=29648),n}},{key:`getNumDataCodewords`,value:function(t,n){return Math.floor(e.getNumRawDataModules(t)/8)-e.ECC_CODEWORDS_PER_BLOCK[n.ordinal][t]*e.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][t]}},{key:`reedSolomonComputeDivisor`,value:function(t){if(t<1||t>255)throw RangeError(`Degree out of range`);for(var n=[],r=0;r>>8||t>>>8)throw RangeError(`Byte out of range`);for(var n=0,r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return pL(n>>>8==0),n}}])}();G(_L,`MIN_VERSION`,1),G(_L,`MAX_VERSION`,40),G(_L,`PENALTY_N1`,3),G(_L,`PENALTY_N2`,3),G(_L,`PENALTY_N3`,40),G(_L,`PENALTY_N4`,10),G(_L,`ECC_CODEWORDS_PER_BLOCK`,[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]]),G(_L,`NUM_ERROR_CORRECTION_BLOCKS`,[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]]);var vL={L:hL.LOW,M:hL.MEDIUM,Q:hL.QUARTILE,H:hL.HIGH},yL=4,bL=0,xL=.1,SL=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=[];return e.forEach(function(e,r){var i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)},CL=function(e,t){return e.slice().map(function(e,n){return n=t.y+t.h?e:e.map(function(e,n){return n=t.x+t.w?e:!1})})},wL=function(e,t,n,r){if(r==null)return null;var i=e.length+n*2,a=Math.floor(t*xL),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){var p=Math.floor(l),m=Math.floor(u);f={x:p,y:m,w:Math.ceil(s+l-p),h:Math.ceil(c+u-m)}}var h=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:h}},TL=function(e,t){return t==null?e?yL:bL:Math.max(Math.floor(t),0)},EL=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),DL=function(e){var t=e.value,n=e.level,r=e.minVersion,i=e.includeMargin,a=e.marginSize,o=e.imageSettings,s=e.size,c=U(function(){var e=gL.makeSegments(t);return _L.encodeSegments(e,vL[n],r)}),l=U(function(){return c.value.getModules()}),u=U(function(){return TL(i,a)}),d=U(function(){return wL(l.value,s,u.value,o)});return{cells:l,margin:u,numCells:U(function(){return l.value.length+u.value*2}),calculatedImageSettings:d,qrcode:c}},OL={value:{type:String,default:``},size:{type:Number,default:128},level:{type:String,default:`L`},bgColor:{type:String,default:`#FFFFFF`},fgColor:{type:String,default:`#000000`},style:{type:Object,default:function(){return{}}},includeMargin:{type:Boolean,default:!1},marginSize:{type:Number,default:0},imageSettings:{type:Object,default:function(){return{}}},title:{type:String,default:``},minVersion:{type:Number,default:1}},kL={locale:{type:Object,default:function(){return{}}},onRefresh:{type:Function},statusRender:{type:Function},status:{type:String,default:`active`}},AL=z({name:`QRCodeCanvas`,props:OL,setup:function(e){var t=U(function(){return e.imageSettings?.src}),n=I(),r=I(null),i=I(``),a=function(){var t=DL({value:e.value,level:e.level,minVersion:1,includeMargin:!1,marginSize:e.marginSize,imageSettings:e.imageSettings,size:e.size}),a=t.margin,o=t.cells,s=t.numCells,c=t.calculatedImageSettings;if(r.value){var l=r.value,u=l.getContext(`2d`);if(u){i.value=c.value?.crossOrigin;var d=o,f=n.value;f&&(f.crossOrigin=c.value.crossOrigin);var p=c.value&&f!==null&&f?.complete&&f.naturalHeight!==0&&f.naturalWidth!==0;p&&c.value.excavation!=null&&(d=U(function(){return CL(o.value,c.value.excavation)}));var m=window.devicePixelRatio||1;l.height=e.size*m,l.width=e.size*m;var h=e.size/s.value*m;u.scale(h,h),u.fillStyle=e.bgColor,u.fillRect(0,0,s.value,s.value),u.fillStyle=e.fgColor,EL?u.fill(new Path2D(SL(d.value,a.value))):o.value.forEach(function(e,t){e.forEach(function(e,n){e&&u.fillRect(n+a.value,t+a.value,1,1)})}),c&&(u.globalAlpha=c.value.opacity),p&&(u.globalAlpha=c.value.opacity,u.drawImage(f,c.value.x+a.value,c.value.y+a.value,c.value.w,c.value.h))}}};return Tn(function(){a()}),mr(function(){a()}),function(){return V(bi,null,[V(`canvas`,{ref:r,role:`img`},null),t.value==null?null:V(`img`,{ref:n,onLoad:a,style:{display:`none`},src:t.value},null)])}}}),jL=z({name:`QRCodeSVG`,props:OL,setup:function(e){var t=U(function(){return DL({value:e.value,level:e.level,minVersion:1,includeMargin:!1,marginSize:e.marginSize,imageSettings:e.imageSettings,size:e.size})}),n=U(function(){var n=t.value,r=n.cells,i=n.calculatedImageSettings;return e.imageSettings&&i.value?.excavation!=null?CL(r.value,i.value.excavation):r.value}),r=U(function(){var n=t.value,r=n.calculatedImageSettings,i=n.margin;return!e.imageSettings.src||!r.value?null:V(`image`,{href:e.imageSettings.src,height:r.value.h,width:r.value.w,x:r.value.x+i.value,y:r.value.y+i.value,crossOrigin:r.value.crossOrigin},null)});return function(){var i=t.value,a=i.margin,o=i.numCells,s=SL(n.value,a.value);return V(`svg`,{height:e.size,width:e.size,viewBox:`0 0 ${o.value} ${o.value}`,role:`img`,style:e.style},[V(`path`,{fill:e.bgColor,d:`M0,0 h${o.value}v${o.value}H0z`,"shape-rendering":`crispEdges`},null),V(`path`,{fill:e.fgColor,d:s,"shape-rendering":`crispEdges`},null),r.value])}}}),ML=z({name:`QRCodeStatus`,props:kL,setup:function(e){var t=Q(),n=V(uh,{size:`32px`},null),r=U(function(){return V(bi,null,[V(`p`,{class:`${t.value}-expired__text`},[e.locale?.expiredText]),e?.onRefresh&&V(`p`,{class:`${t.value}-expired__button`,onClick:e?.onRefresh},[V(ev,{size:`16`},null),e.locale?.refreshText])])}),i=V(`p`,{class:`${t.value}-scanned`},[V(Qh,{size:`16`,class:`${t.value}-scanned__icon`},null),e.locale?.scannedText]),a=U(function(){return{expired:r.value,loading:n,scanned:i,active:null}}),o=function(e){return a.value[e.status]};return function(){return V(bi,null,[e.statusRender||o({status:e.status,onRefresh:e.onRefresh})])}}}),NL=X(z({name:`TQRCode`,props:aL,setup:function(e){var t=Q(),n=pm(),r=Rp(`qrcode`).globalConfig,i=Km({themeFgColor:`--td-text-color-primary`,themeBgColor:`--td-bg-color-specialcomponent`}),a=i.themeFgColor,o=i.themeBgColor,s=U(function(){return e.bgColor||o.value||`transparent`}),c=U(function(){return e.color||a.value||`#000000`}),l=U(function(){return{src:e.icon,x:void 0,y:void 0,height:nf(e.iconSize)?e.iconSize:e.iconSize?.height??40,width:nf(e.iconSize)?e.iconSize:e.iconSize?.width??40,excavate:!0,crossOrigin:`anonymous`}}),u=U(function(){return[`${t.value}-qrcode`,G(G({},`${t.value}-borderless`,e.borderless),`${t.value}-qrcode-svg`,e.type===`svg`)]}),d=U(function(){return{backgroundColor:s.value,width:`${e.size}px`,height:`${e.size}px`}});return function(){var i={value:e.value,size:e.size,bgColor:s.value,fgColor:c.value,imageSettings:e.icon?l.value:void 0,level:e.level};return V(`div`,H({class:u.value,style:d.value},{level:e.level}),[e.status!==`active`&&V(`div`,{class:[`${t.value}-mask`,G({},`${t.value}-${e.status}`,e.status!==`loading`)]},[V(ML,{locale:r.value,status:e.status,onRefresh:e.onRefresh,statusRender:n(`statusRender`,{params:{status:e.status,onRefresh:e.onRefresh}})},null)]),e.type===`canvas`?V(AL,H(i,{size:e.size}),null):V(jL,H(i,{size:e.size}),null)])}}}),`TQrcode`),PL=X(z({name:`TAlert`,props:{close:{type:[String,Boolean,Function],default:!1},closeBtn:{type:[String,Boolean,Function],default:!1},default:{type:[String,Function]},icon:{type:Function},maxLine:{type:Number,default:0},message:{type:[String,Function]},operation:{type:Function},theme:{type:String,default:`info`,validator:function(e){return!e||[`success`,`info`,`warning`,`error`].includes(e)}},title:{type:[String,Function]},onClose:Function,onClosed:Function},setup:function(e,t){var n=t.slots,r=Yi(),i=Rp(`alert`),a=i.globalConfig,o=i.classPrefix,s=Tm({CheckCircleFilledIcon:Qh,CloseIcon:Og,ErrorCircleFilledIcon:Zg,HelpCircleFilledIcon:v_,InfoCircleFilledIcon:A_}),c=s.CheckCircleFilledIcon,l=s.CloseIcon,u=s.ErrorCircleFilledIcon,d=s.HelpCircleFilledIcon,f=s.InfoCircleFilledIcon,p=Q(`alert`),m=pm(),h=Uoe(),g=I(),_=I(),v=I(0),y=I(!0),b=I(!0),x=function(){var e=h(`icon`,{info:f,success:c,warning:u,error:u,question:d});return e?V(`div`,{class:`${p.value}__icon`},[e]):null},S=function(){var t=e.closeBtn,i=Object.prototype.hasOwnProperty.call(r.vnode.props||{},`close`)||n.close,a=i?e.close:t;i&&Vp.warnOnce(`TAlert`,"prop `close` is going to be deprecated, please use `closeBtn` instead.");var o=null;return o=a===!0||a===``?V(l,null,null):Rd(a)?a:m(i?`close`:`closeBtn`),o?V(`div`,{class:`${p.value}__close`,onClick:D},[o]):null},C=function(){var e=m(`title`);return e?V(`div`,{class:`${p.value}__title`},[` `,e]):null},w=function(){var e=m(`operation`);return V(`div`,{class:`${p.value}__message`},[T(),e?V(`div`,{class:`${p.value}__operation`},[e]):null])},T=function(){var t,n=m(`default`)||m(`message`);K(n)&&(n=gm(n));var r=K(n)?n.length:1,i=e.maxLine>0&&e.maxLinedocument.documentElement.clientWidth?Cj():0;i.value=document.createElement(`style`),i.value.dataset.id=`td_drawer_${+new Date}_${HL+=1}`,i.value.innerHTML=` + html body { + overflow-y: hidden; + ${M} + ${e.mode===`push`?``:`width: calc(100% - ${t}px);`} + } + `},N=function(){e.mode===`push`&&dn(function(){D.value&&(D.value.style.cssText=M)})},P=function(){if(!(!D.value||e.mode!==`push`)){var t={left:{name:`margin-left`,value:w.value},right:{name:`margin-left`,value:`-${w.value}`},top:{name:`margin-top`,value:w.value},bottom:{name:`margin-top`,value:`-${w.value}`}}[e.placement];r.value?D.value.style.setProperty(t.name,t.value):D.value.style.removeProperty(t.name)}},F=function(){var t=b({confirmBtn:e.confirmBtn,globalConfirm:o.value.confirm,className:`${u.value}__confirm`}),n=x({cancelBtn:e.cancelBtn,globalCancel:o.value.cancel,className:`${u.value}__cancel`});return V(`div`,{style:k.value},[e.placement===`right`?t:null,n,e.placement===`right`?null:t])},te=jm(`drawer`,{visible:g}).isTopInteractivePopup;R(O,N,{immediate:!0});var ne=function(t){if(t&&(_.value=!0),e.destroyOnClose){t?(n.value=!1,setTimeout(function(){return r.value=!0})):(r.value=!1,n.value&&=!1,_.value?setTimeout(function(){return n.value=!0},300):n.value=!0);return}if(n.value&&t){n.value=!1,setTimeout(function(){return r.value=!0});return}setTimeout(function(){return r.value=t})},re=function(){!e.showInAttachedElement&&e.preventScrollThrough&&r.value&&(_.value||!e.lazy)&&(i.value||ee(),i.value&&!document.head.contains(i.value)&&document.head.appendChild(i.value))};R(function(){return e.visible},function(t){if(!sp){if(t){var n;re(),(n=e.onBeforeOpen)==null||n.call(e)}else{var r;j(),(r=e.onBeforeClose)==null||r.call(e)}ne(t)}},{immediate:!0});var ie=function(t){var n;(n=e.onCloseBtnClick)==null||n.call(e,{e:t}),oe({trigger:`close-btn`,e:t})},ae=function(t){var n;(n=e.onOverlayClick)==null||n.call(e,{e:t}),(e.closeOnOverlayClick??o.value.closeOnOverlayClick)&&oe({trigger:`overlay`,e:t})},oe=function(n){var r;(r=e.onClose)==null||r.call(e,n),t.emit(`update:visible`,!1)};gr(P),mr(function(){re(),window.addEventListener(`keydown`,A)}),_r(function(){j(),window.removeEventListener(`keydown`,A)});var se=U(function(){return _.value?r.value||!n.value:e.destroyOnClose&&n.value?!1:!e.lazy});return function(){if(se.value){var n=l(`body`,`default`),r=c(`header`),i=F();return V(Ln,{disabled:!e.attach||!v.value,to:v.value},{default:function(){return[V(`div`,H({ref:S,class:C.value,style:{zIndex:e.zIndex},onKeydown:A,tabindex:0},t.attrs),[e.showOverlay&&V(`div`,{class:`${u.value}__mask`,onClick:ae},null),V(`div`,{class:E.value,style:VL(VL({},T.value),h.value)},[r&&V(`div`,{class:`${u.value}__header`},[r]),e.closeBtn&&V(`div`,{class:`${u.value}__close-btn`,onClick:ie},[c(`closeBtn`,V(s,null,null))]),V(`div`,{class:[`${u.value}__body`,`narrow-scrollbar`]},[n]),e.footer&&V(`div`,{class:`${u.value}__footer`},[c(`footer`,i)]),e.sizeDraggable&&V(`div`,{style:m.value,onMousedown:p},null)])])]}})}}}});function WL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function GL(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:document.body,n=Sp(),r=n.scrollTop,i=n.scrollLeft,a=e.getBoundingClientRect(),o=a.top,s=a.left,c=t.getBoundingClientRect(),l=c.top,u=c.left,d=bp(t,`position`);return t.tagName.toLowerCase()!==`body`&&d===`relative`||d===`sticky`?{top:o-l,left:s-u}:xp(e)?{top:o,left:s}:{top:o+r,left:s+i}}function $L(e){if(e){var t,n=null;if(Rd(e))n=document.querySelector(e);else if(q(e))n=e();else throw Error(`elm should be string or function`);if(n)return n;if(((t=process)==null||(t=t.env)==null?void 0:t.NODE_ENV)!==`test`)throw Error(`There is no element with given.`)}else return document.body}function eR(e){var t=e.getBoundingClientRect();if(!yp(e)){var n=uoe().height;_p(t.top-(n/2-t.height/2),{})}}var tR=X(z({name:`TGuide`,props:YL,setup:function(e,t){var n=pm(),r=Q(`guide`),i=Q(`guide--lock`),a=Rp(`guide`).globalConfig,o=Wt(e),s=o.current,c=o.modelValue,l=o.hideCounter,u=o.hidePrev,d=o.hideSkip,f=o.steps,p=o.zIndex,m=Y(Rm(s,c,e.defaultCurrent,e.onChange,`current`),2),h=m[0],g=m[1],_=I(),v=I(),y=I(),b=I(),x=I(),S=I(),C=I(),w=I(!1),T=U(function(){return f.value.length}),E=U(function(){return f.value[h.value]}),D=U(function(){return k(`mode`)===`popup`}),O=U(function(){return xp(b.value||document.body)}),k=function(t){return E.value[t]??e[t]},A=U(function(){var e=E.value.highlightContent,n=e;return q(e)?n=e(ee()):t.slots.highlightContent?n=t.slots.highlightContent(ee()):t.slots[`highlight-content`]?n=t.slots[`highlight-content`](ee()):e&&(n=V(n,null,null)),n&&(n.props||={},n.props.class=n.props.class||``),n}),j=U(function(){return!!(A.value&&D.value)}),M=I(!1),ee=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{currentStepInfo:E.value},t=Function(`return `+sa.toString())();return Object.assign({},t,e)},N=function(e){var t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=QL(b.value),r=n.top,i=n.left,a=b.value.getBoundingClientRect(),o=a.width,s=a.height,c=k(`highlightPadding`);if(D.value)o+=c*2,s+=c*2,r-=c,i-=c;else{var l=Sp(),u=l.scrollTop,d=l.scrollLeft;r+=u,i+=d}var f={top:`${r}px`,left:`${i}px`};if(j.value)if(t){var p=v.value.getBoundingClientRect(),m=p.width,h=p.height;Object.assign(f,{width:`${m}px`,height:`${h}px`})}else Object.assign(f,{width:`auto`,height:`auto`});else Object.assign(f,{width:`${o}px`,height:`${s}px`});Pm(e,f)},P=function(){dn(function(){var e;b.value=$L(E.value.element),b.value&&(ZL(b.value),N(v.value),N(y.value,!0),eR(b.value),(e=C.value)==null||e.update())})},F=function(){var e;(e=y.value)==null||e.parentNode.removeChild(y.value)},te=function(){dn(function(){b.value=S.value,ZL(b.value),N(v.value),eR(b.value)})},ne=function(){var e,t;(e=S.value)==null||e.parentNode.removeChild(S.value),(t=x.value)==null||t.parentNode.removeChild(x.value)},re=function(){D.value?(ne(),P()):(F(),te()),M.value=!0};Om(function(){M.value&&re()},!sp&&document.body);var ie=function(){var e,t;F(),ne(),(e=v.value)==null||e.parentNode.removeChild(v.value),(t=_.value)==null||t.parentNode.removeChild(_.value),fp(document.body,i.value)},ae=function(t){var n,r=T.value;w.value=!1,g(-1,{e:t,total:r}),(n=e.onSkip)==null||n.call(e,{e:t,current:h.value,total:r})},oe=function(t){var n,r=T.value;g(h.value-1,{e:t,total:r}),(n=e.onPrevStepClick)==null||n.call(e,{e:t,prev:h.value-1,current:h.value,total:r})},se=function(t){var n,r=T.value;g(h.value+1,{e:t,total:r}),(n=e.onNextStepClick)==null||n.call(e,{e:t,next:h.value+1,current:h.value,total:r})},ce=function(t){var n,r=T.value;w.value=!1,g(-1,{e:t,total:r}),(n=e.onFinish)==null||n.call(e,{e:t,current:h.value,total:r})},le=function(){h.value>=0&&h.value=0&&e-1}}},setup:function(e,t){var n=t.expose,r=Q(`notification-list`),i=e.placement,a=e.offset,o=I([]),s=I([]),c=U(function(){var e=_R({zIndex:iR},oR[i]);if(Array.isArray(a)&&a.length===2){var t=i.includes(`left`)?`left`:`right`,n=i.includes(`top`)?`top`:`bottom`;e[t]=f(a[0])??e[t],e[n]=f(a[1])??e[n]}return e}),l=function(e){return o.value.push(e),o.value.length-1},u=function(e){o.value.splice(e,1)},d=function(){o.value=[]},f=function(e){if(e)return isNaN(Number(e))?e:`${e}px`},p=function(e){var t={marginBottom:aR};return e.zIndex&&(t[`z-index`]=e.zIndex),t},m=function(e,t){return _R(_R({},t),{},{onCloseBtnClick:function(n){return t.onCloseBtnClick&&t.onCloseBtnClick(n),u(e)},onDurationEnd:function(){return t.onDurationEnd&&t.onDurationEnd(),u(e)},onClose:function(){return t.onClose&&t.onClose(),u(e)}})},h=function(e){e&&s.value.push(e)};return n({add:l,remove:u,removeAll:d,list:o,notificationList:s}),function(){if(o.value.length)return V(`div`,{class:`${r.value}__show`,style:c.value},[o.value.map(function(e,t){return V(hR,H({ref:h,key:e.id,style:p(e)},m(t,e)),null)})])}}});function yR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bR(e){for(var t=1;t1?`${m}[${t}]`:m;k[n]=e.raw}),C.length===1?k[m]=C[0].raw:k[m]=C.map(function(e){return e.raw}),k.length=C.length,y&&(k=y(k));var j=new FormData;return Object.keys(k).forEach(function(e){var t=k[e];Array.isArray(t)?t.forEach(function(t){j.append(e,t)}):j.append(e,t)}),T.open(n,r,!0),Object.keys(s).forEach(function(e){T.setRequestHeader(e,s[e])}),T.onerror=function(e){b({event:e,file:u,files:C,XMLHttpRequest:T}),clearInterval(E),clearTimeout(D)},T.ontimeout=function(e){b({event:e,file:u,files:C,XMLHttpRequest:T})},T.upload&&(T.upload.onprogress=function(e){var t=0;if(e.total>0&&(t=Math.round(e.loaded/e.total*100)),w=Math.max(t,w),w!==t&&C[0]?.percent!==w){var n=C.map(function(e){return ez(ez({},e),{},{percent:w})});x({event:e,percent:w,file:u||n[0],files:n,type:`real`,XMLHttpRequest:T})}}),T.onload=function(e){var t={};if(t.XMLHttpRequest=T,T.status<200||T.status>=300)return b({event:e,file:u,files:C,response:t,XMLHttpRequest:T});var n=T.responseText||T.response;try{t=JSON.parse(n)}catch{t=n,Vp.error(`Upload`,`response does not a valid json`)}clearInterval(E),clearTimeout(D),C.forEach(function(e){e.percent=100,e.status=`success`,e.uploadTime=t?.uploadTime||Gp()}),so(t)===`object`&&(t.XMLHttpRequest=T),S({event:e,file:u||C[0],files:W(C),XMLHttpRequest:T,response:t})},T.send(j),T.upload.requestParams=k,T.upload.requestHeaders=s,T}function nz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rz(e){for(var t=1;t=0?rz(rz({},e[a]),r):r;n.push(o)},i=0,a=t.length;i2&&arguments[2]!==void 0?arguments[2]:void 0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;return e.map(function(e){var i=e;return q(t)&&(i=t(e)),rz({raw:e,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type,percent:r,status:n},i)})}function fz(e){var t=e.files,n=e.uploadValue,r=e.max,i=e.allowUploadDuplicateFile,a=e.capture,o=a===void 0?``:a;return new Promise(function(a){var s=t.filter(function(e){return i||o?!0:!n.find(function(t){return t.name===e.name})}),c=!1;if(s.lengthr&&(u=!0)}var f=dz(s,e.format,e.autoUpload?`progress`:`waiting`),p;if(e.beforeAllFilesUpload){var m=e.beforeAllFilesUpload?.call(e,f);p=m instanceof Promise?m:new Promise(function(e){e(m)})}var h=f.map(function(t){return new Promise(function(n){iz(t,{beforeUpload:e.beforeUpload,sizeLimit:e.sizeLimit}).then(function(e){var r=Y(e,2),i=r[0],a=r[1];i?n({file:t,validateResult:{type:`FILE_OVER_SIZE_LIMIT`,extra:i}}):a===!1&&n({file:t,validateResult:{type:`CUSTOM_BEFORE_UPLOAD`}}),n({file:t})})})});Promise.all([p].concat(h)).then(function(e){var t=yF(e),n=t[0],r=t.slice(1);a(n===!1?{lengthOverLimit:u,hasSameNameFile:c,validateResult:{type:`BEFORE_ALL_FILES_UPLOAD`},files:f}:{lengthOverLimit:u,hasSameNameFile:c,fileValidateList:r,files:f})})})}function pz(e,t){var n=[],r=[],i=[];return e.forEach(function(e){if(e.validateResult?.type===`CUSTOM_BEFORE_UPLOAD`){r.push(e.file);return}if(e.validateResult?.type===`FILE_OVER_SIZE_LIMIT`){e.file.response||(e.file.response={}),e.file.response.error=e.file.response.error||t(e.validateResult.extra),n.push(e);return}i.push(e.file)}),{sizeLimitErrors:n,beforeUploadErrorFiles:r,toFiles:i}}function mz(e){return e.isBatchUpload&&e.status||e.status===`fail`?`reupload`:e.status===`progress`?`uploading`:e.status===`success`||!e.autoUpload&&e.status===`waiting`?e.multiple?`continueUpload`:`reupload`:`fileInput`}function hz(e){var t=e.multiple,n=e.uploadValue,r=e.toUploadFiles,i=e.autoUpload,a=i?r:r.filter(function(e){return e.status!==`success`});return t&&!e.isBatchUpload?i?(a.length?n.concat(a):n)||[]:n:(a.length?a:n)||[]}function gz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _z(e){for(var t=1;t{},Mz=Array.isArray;function Nz(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var Pz=Symbol(``);function Fz(e,t){return kz(Error(),{type:e,[Pz]:!0},t)}function Iz(e,t){return e instanceof Error&&Pz in e&&(t==null||!!(e.type&t))}var Lz=Symbol(``),Rz=Symbol(``),zz=Symbol(``),Bz=Symbol(``),Vz=Symbol(``);function Hz(){return wn(zz)}function Uz(e){return wn(Bz)}var Wz=/#/g,Gz=/&/g,Kz=/\//g,qz=/=/g,Jz=/\?/g,Yz=/\+/g,Xz=/%5B/g,Zz=/%5D/g,Qz=/%5E/g,$z=/%60/g,eB=/%7B/g,tB=/%7C/g,nB=/%7D/g,rB=/%20/g;function iB(e){return e==null?``:encodeURI(``+e).replace(tB,`|`).replace(Xz,`[`).replace(Zz,`]`)}function aB(e){return iB(e).replace(eB,`{`).replace(nB,`}`).replace(Qz,`^`)}function oB(e){return iB(e).replace(Yz,`%2B`).replace(rB,`+`).replace(Wz,`%23`).replace(Gz,`%26`).replace($z,"`").replace(eB,`{`).replace(nB,`}`).replace(Qz,`^`)}function sB(e){return oB(e).replace(qz,`%3D`)}function cB(e){return iB(e).replace(Wz,`%23`).replace(Jz,`%3F`)}function lB(e){return cB(e).replace(Kz,`%2F`)}function uB(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var dB=/\/$/,fB=e=>e.replace(dB,``);function pB(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=xB(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:uB(o)}}function mB(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function hB(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function gB(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&_B(t.matched[r],n.matched[i])&&vB(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function _B(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function vB(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!yB(e[n],t[n]))return!1;return!0}function yB(e,t){return Mz(e)?bB(e,t):Mz(t)?bB(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function bB(e,t){return Mz(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function xB(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var SB={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function CB(e){if(!e)if(Ez){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),fB(e)}var wB=/^[^#]+#/;function TB(e,t){return e.replace(wB,`#`)+t}function EB(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var DB=()=>({left:window.scrollX,top:window.scrollY});function OB(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=EB(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function kB(e,t){return(history.state?history.state.position-t:-1)+e}var AB=new Map;function jB(e,t){AB.set(e,t)}function MB(e){let t=AB.get(e);return AB.delete(e),t}function NB(e){return typeof e==`string`||e&&typeof e==`object`}function PB(e){return typeof e==`string`||typeof e==`symbol`}function FB(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&oB(e)):[r&&oB(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function LB(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=Mz(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function RB(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function zB(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(Fz(4,{from:n,to:t})):e instanceof Error?c(e):NB(e)?c(Fz(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function BB(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(Dz(s)){let c=(s.__vccOpts||s)[t];c&&a.push(zB(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=Oz(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&zB(c,n,r,o,e,i)()}))}}return a}function VB(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o_B(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>_B(e,s))||i.push(s))}return[n,r,i]}var HB=()=>location.protocol+`//`+location.host;function UB(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),hB(n,``)}return hB(n,e)+r+i}function WB(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=UB(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(kz({},e.state,{scroll:DB()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function GB(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?DB():null}}function KB(e){let{history:t,location:n}=window,r={value:UB(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:HB()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,kz({},t.state,GB(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=kz({},i.value,t.state,{forward:e,scroll:DB()});a(o.current,o,!0),a(e,kz({},GB(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function qB(e){e=CB(e);let t=KB(e),n=WB(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=kz({location:``,base:e,go:r,createHref:TB.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function JB(e){return e=location.host?e||location.pathname+location.search:``,e.includes(`#`)||(e+=`#`),qB(e)}var YB={type:0,value:``},XB=/[a-zA-Z0-9_]/;function ZB(e){if(!e)return[[]];if(e===`/`)return[[YB]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function rV(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var aV={strict:!1,end:!0,sensitive:!1};function oV(e,t,n){let r=kz(tV(ZB(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function sV(e,t){let n=[],r=new Map;t=Nz(aV,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=lV(e);s.aliasOf=r&&r.record;let l=Nz(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(lV(kz({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=oV(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!dV(d)&&o(e.name)),hV(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:jz}function o(e){if(PB(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=pV(e,n);n.splice(t,0,e),e.record.name&&!dV(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Fz(1,{location:e});s=i.record.name,a=kz(cV(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&cV(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Fz(1,{location:e,currentLocation:t});s=i.record.name,a=kz({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:fV(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function cV(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function lV(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:uV(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function uV(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function dV(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function fV(e){return e.reduce((e,t)=>kz(e,t.meta),{})}function pV(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;rV(e,t[i])<0?r=i:n=i+1}let i=mV(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function mV(e){let t=e;for(;t=t.parent;)if(hV(t)&&rV(e,t)===0)return t}function hV({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function gV(e){let t=wn(zz),n=wn(Bz),r=U(()=>{let n=Ht(e.to);return t.resolve(n)}),i=U(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(_B.bind(null,i));if(o>-1)return o;let s=xV(e[t-2]);return t>1&&xV(i)===s&&a[a.length-1].path!==s?a.findIndex(_B.bind(null,e[t-2])):o}),a=U(()=>i.value>-1&&bV(n.params,r.value.params)),o=U(()=>i.value>-1&&i.value===n.matched.length-1&&vB(n.params,r.value.params));function s(n={}){if(yV(n)){let n=t[Ht(e.replace)?`replace`:`push`](Ht(e.to)).catch(jz);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:U(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function _V(e){return e.length===1?e[0]:e}var vV=z({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:gV,setup(e,{slots:t}){let n=Dt(gV(e)),{options:r}=wn(zz),i=U(()=>({[SV(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[SV(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&_V(t.default(n));return e.custom?r:sa(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function yV(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function bV(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Mz(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function xV(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var SV=(e,t,n)=>e??t??n,CV=z({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=wn(Vz),i=U(()=>e.route||r.value),a=wn(Rz,0),o=U(()=>{let e=Ht(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=U(()=>i.value.matched[o.value]);Cn(Rz,U(()=>o.value+1)),Cn(Lz,s),Cn(Vz,i);let c=I();return R(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!_B(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return wV(n.default,{Component:l,route:r});let u=o.props[a],d=sa(l,kz({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return wV(n.default,{Component:d,route:r})||d}}});function wV(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var TV=CV;function EV(e){let t=sV(e.routes,e),n=e.parseQuery||FB,r=e.stringifyQuery||IB,i=e.history,a=RB(),o=RB(),s=RB(),c=Bt(SB),l=SB;Ez&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Az.bind(null,e=>``+e),d=Az.bind(null,lB),f=Az.bind(null,uB);function p(e,n){let r,i;return PB(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=kz({},a||c.value),typeof e==`string`){let r=pB(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return kz(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=kz({},e,{path:pB(n,e.path,a.path).path});else{let t=kz({},e.params);for(let e in t)t[e]??delete t[e];o=kz({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=mB(r,kz({},e,{hash:aB(l),path:s.path})),m=i.createHref(p);return kz({fullPath:p,hash:l,query:r===IB?LB(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?pB(n,e,c.value.path):kz({},e)}function y(e,t){if(l!==e)return Fz(8,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(kz(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),kz({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(kz(v(u),{state:typeof u==`object`?kz({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&gB(r,i,n)&&(f=Fz(16,{to:d,from:i}),te(i,i,!0,!1)),(f?Promise.resolve(f):E(d,i)).catch(e=>Iz(e)?Iz(e,2)?e:F(e):N(e,d,i)).then(e=>{if(e){if(Iz(e,2))return C(kz({replace:s},v(e.to),{state:typeof e.to==`object`?kz({},a,e.to.state):a,force:o}),t||d)}else e=O(d,i,!0,s,a);return D(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function T(e){let t=ie.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function E(e,t){let n,[r,i,s]=VB(e,t);n=BB(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(zB(r,e,t))});let c=w.bind(null,e,t);return n.push(c),oe(n).then(()=>{n=[];for(let r of a.list())n.push(zB(r,e,t));return n.push(c),oe(n)}).then(()=>{n=BB(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(zB(r,e,t))});return n.push(c),oe(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(Mz(r.beforeEnter))for(let i of r.beforeEnter)n.push(zB(i,e,t));else n.push(zB(r.beforeEnter,e,t));return n.push(c),oe(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=BB(s,`beforeRouteEnter`,e,t,T),n.push(c),oe(n))).then(()=>{n=[];for(let r of o.list())n.push(zB(r,e,t));return n.push(c),oe(n)}).catch(e=>Iz(e,8)?e:Promise.reject(e))}function D(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function O(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===SB,l=Ez?history.state:{};n&&(r||s?i.replace(e.fullPath,kz({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,te(e,t,n,s),F()}let k;function A(){k||=i.listen((e,t,n)=>{if(!ae.listening)return;let r=_(e),a=S(r,ae.currentRoute.value);if(a){C(kz(a,{replace:!0,force:!0}),r).catch(jz);return}l=r;let o=c.value;Ez&&jB(kB(o.fullPath,n.delta),DB()),E(r,o).catch(e=>Iz(e,12)?e:Iz(e,2)?(C(kz(v(e.to),{force:!0}),r).then(e=>{Iz(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(jz),Promise.reject()):(n.delta&&i.go(-n.delta,!1),N(e,r,o))).then(e=>{e||=O(r,o,!1),e&&(n.delta&&!Iz(e,8)?i.go(-n.delta,!1):n.type===`pop`&&Iz(e,20)&&i.go(-1,!1)),D(r,o,e)}).catch(jz)})}let j=RB(),M=RB(),ee;function N(e,t,n){F(e);let r=M.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function P(){return ee&&c.value!==SB?Promise.resolve():new Promise((e,t)=>{j.add([e,t])})}function F(e){return ee||(ee=!e,A(),j.list().forEach(([t,n])=>e?n(e):t()),j.reset()),e}function te(t,n,r,i){let{scrollBehavior:a}=e;if(!Ez||!a)return Promise.resolve();let o=!r&&MB(kB(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return dn().then(()=>a(t,n,o)).then(e=>e&&OB(e)).catch(e=>N(e,t,n))}let ne=e=>i.go(e),re,ie=new Set,ae={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:ne,back:()=>ne(-1),forward:()=>ne(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:M.add,isReady:P,install(e){e.component(`RouterLink`,vV),e.component(`RouterView`,TV),e.config.globalProperties.$router=ae,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>Ht(c)}),Ez&&!re&&c.value===SB&&(re=!0,b(i.location).catch(e=>{}));let t={};for(let e in SB)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(zz,ae),e.provide(Bz,Ot(t)),e.provide(Vz,c);let n=e.unmount;ie.add(e),e.unmount=function(){ie.delete(e),ie.size<1&&(l=SB,k&&k(),k=null,c.value=SB,re=!1,ee=!1),n()}}};function oe(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return ae}var DV=Dt({ready:!1,user:null,csrf:``,pendingToken:``}),OV=Dt({subscriptionEnabled:!1,loaded:!1,loading:!1}),kV=()=>(document.querySelector(`meta[name="plugin-base-path"]`)?.getAttribute(`content`)||``).replace(/\/$/,``),AV=class extends Error{status;constructor(e,t=0){super(e),this.name=`ApiError`,this.status=t}};async function jV(e,t={}){let n=new Headers(t.headers||{});n.set(`Accept`,`application/json`);let r=(t.method||`GET`).toUpperCase();t.body&&!(t.body instanceof FormData)&&n.set(`Content-Type`,`application/json`),DV.csrf&&r!==`GET`&&n.set(`X-CSRF-Token`,DV.csrf);let i=await fetch(`${kV()}${e}`,{...t,method:r,headers:n,credentials:`same-origin`}),a=await i.json().catch(()=>({}));if(!i.ok)throw i.status===401&&!e.startsWith(`/login`)&&(DV.user=null,DV.csrf=``),new AV(a?.error||`请求失败 (${i.status})`,i.status);return a}async function MV(){try{let e=await jV(`/api/me`);DV.user=e.user||null,DV.csrf=e.csrf_token||``}catch{DV.user=null,DV.csrf=``,OV.loaded=!1,OV.subscriptionEnabled=!1}finally{DV.ready=!0}}async function NV(){let e=await jV(`/api/captcha-config`);return{enabled:e.enabled===!0,provider:e.provider||``,turnstile_enabled:e.turnstile_enabled===!0,turnstile_site_key:String(e.turnstile_site_key||``),tencent_captcha_enabled:e.tencent_captcha_enabled===!0,tencent_captcha_app_id:String(e.tencent_captcha_app_id||``),tencent_captcha_region:String(e.tencent_captcha_region||`cn`),aliyun_captcha_enabled:e.aliyun_captcha_enabled===!0,aliyun_captcha_scene_id:String(e.aliyun_captcha_scene_id||``),aliyun_captcha_prefix:String(e.aliyun_captcha_prefix||``),aliyun_captcha_region:String(e.aliyun_captcha_region||`cn`)}}async function PV(e=!1){if(OV.loaded&&!e)return OV.subscriptionEnabled;if(OV.loading)return await new Promise(e=>{let t=window.setInterval(()=>{OV.loading||(window.clearInterval(t),e())},20)}),OV.subscriptionEnabled;OV.loading=!0;try{OV.subscriptionEnabled=(RV(await jV(`/api/subscription/status`))||{}).enabled===!0}catch{OV.subscriptionEnabled=!1}finally{OV.loaded=!0,OV.loading=!1}return OV.subscriptionEnabled}async function FV(e,t,n={}){let r=await jV(`/login`,{method:`POST`,body:JSON.stringify({email:e,password:t,...n})});return r.requires_2fa?(DV.pendingToken=r.pending_token||``,{requires2fa:!0}):(DV.pendingToken=``,DV.user=r.user||null,DV.csrf=r.csrf_token||``,OV.loaded=!1,{requires2fa:!1})}async function IV(e){let t=await jV(`/login/2fa`,{method:`POST`,body:JSON.stringify({pending_token:DV.pendingToken,totp_code:e})});DV.pendingToken=``,DV.user=t.user||null,DV.csrf=t.csrf_token||``,OV.loaded=!1}async function LV(){try{await jV(`/logout`,{method:`POST`})}finally{DV.user=null,DV.csrf=``,DV.pendingToken=``,OV.loaded=!1,OV.subscriptionEnabled=!1}}function RV(e){return e&&Object.prototype.hasOwnProperty.call(e,`data`)&&(`code`in e||`message`in e)?e.data:e}function zV(e){let t=RV(e);return Array.isArray(t)?t:Array.isArray(t?.items)?t.items:Array.isArray(t?.list)?t.list:Array.isArray(t?.rows)?t.rows:[]}function BV(e){if(!e)return`-`;let t=new Date(String(e));return Number.isNaN(t.getTime())?String(e):t.toLocaleString(`zh-CN`,{hour12:!1})}function VV(e){return{healthy:`运行中`,enabled:`运行中`,disabled:`已停用`,incompatible:`Core 不兼容`,error:`启用失败`,starting:`启动中`,draining:`停用中`,upgrading:`升级中`,rollback_pending:`等待回滚`}[String(e)]||String(e||`未知`)}function HV(e){return[`completed`,`success`,`succeeded`].includes(String(e||``).toLowerCase())}function UV(e){let t=String(e||``).toLowerCase();return HV(t)?`success`:t===`failed`||t===`error`?`danger`:`warning`}function WV(e,t=``){return`${e}-${t}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var GV={class:`brand`},KV={class:`brand-mark`},qV={class:`aside-footer`},JV={class:`header-left`},YV={class:`breadcrumbs`},XV={class:`header-right`},ZV={class:`user-name`},QV=z({__name:`Shell`,setup(e){let t=Uz(),n=Hz(),r=I(!1),i=U(()=>OV.subscriptionEnabled),a=U(()=>String(t.meta.title||(t.path.startsWith(`/modules/subscription`)?`订阅管理`:`概览`))),o=U(()=>t.path.startsWith(`/plugins`)?`/plugins`:t.path.startsWith(`/modules/subscription`)?`/modules/subscription/overview`:t.path),s=U(()=>String(DV.user?.email||DV.user?.username||`管理员`)),c=[{content:`退出登录`,value:`logout`}];async function l(){await PV(!0)}function u(e){let t=String(e);if(t===`/modules/subscription/overview`&&!i.value){eb.warning(`请先安装并启用订阅模块`);return}n.push(t),r.value=!1}async function d(e){String(e?.value||``)===`logout`&&(await LV(),n.push(`/login`))}return mr(l),(e,t)=>{let n=br(`t-menu-item`),l=br(`t-divider`),f=br(`t-menu`),p=br(`t-tag`),m=br(`t-aside`),h=br(`t-button`),g=br(`t-dropdown`),_=br(`t-header`),v=br(`router-view`),y=br(`t-content`),b=br(`t-layout`);return Ei(),ji(b,{class:`app-shell`},{default:L(()=>[r.value?(Ei(),Ai(`div`,{key:0,class:`mobile-scrim`,onClick:t[0]||=e=>r.value=!1})):Bi(``,!0),V(m,{class:de([`app-aside`,{"app-aside-mobile-open":r.value}]),width:`252px`},{default:L(()=>[B(`div`,GV,[B(`div`,KV,[V(Ht(Pg),{size:`22px`})]),t[2]||=B(`div`,null,[B(`div`,{class:`brand-title`},`Sub2API`),B(`div`,{class:`brand-subtitle`},`插件控制面`)],-1)]),t[11]||=B(`div`,{class:`nav-caption`},`控制台`,-1),V(f,{value:o.value,class:`main-menu`,onChange:u},{default:L(()=>[V(n,{value:`/overview`},{icon:L(()=>[V(Ht(pce))]),default:L(()=>[t[3]||=zi(`概览`,-1)]),_:1}),V(n,{value:`/plugins`},{icon:L(()=>[V(Ht(Oh))]),default:L(()=>[t[4]||=zi(`已安装插件`,-1)]),_:1}),V(n,{value:`/marketplace`},{icon:L(()=>[V(Ht(Sle))]),default:L(()=>[t[5]||=zi(`插件市场`,-1)]),_:1}),V(n,{value:`/operations`},{icon:L(()=>[V(Ht(x_))]),default:L(()=>[t[6]||=zi(`操作记录`,-1)]),_:1}),i.value?(Ei(),Ai(bi,{key:0},[V(l,{class:`nav-divider`}),t[7]||=B(`div`,{class:`nav-caption nav-caption-module`},`业务模块`,-1)],64)):Bi(``,!0),i.value?(Ei(),ji(n,{key:1,value:`/modules/subscription/overview`},{icon:L(()=>[V(Ht(Yh))]),default:L(()=>[t[8]||=zi(`订阅管理 `,-1)]),_:1})):Bi(``,!0)]),_:1},8,[`value`]),B(`div`,qV,[V(p,{theme:`success`,variant:`light`,class:`status-tag`},{default:L(()=>[V(Ht(tg),{size:`14px`}),t[9]||=zi(` Core 会话正常`,-1)]),_:1}),t[10]||=B(`span`,{class:`version-text`},`Plugin Admin v1.1.0`,-1)])]),_:1},8,[`class`]),V(b,{class:`main-layout`},{default:L(()=>[V(_,{class:`app-header`},{default:L(()=>[B(`div`,JV,[V(h,{class:`mobile-menu-button`,variant:`text`,shape:`square`,"aria-label":`打开导航`,onClick:t[1]||=e=>r.value=!0},{icon:L(()=>[V(Ht(Jce))]),_:1}),B(`div`,YV,[t[12]||=B(`span`,null,`插件管理`,-1),V(Ht(yg),{size:`15px`}),B(`strong`,null,ve(a.value),1)])]),B(`div`,XV,[V(p,{theme:`success`,variant:`light`,class:`secure-tag`},{default:L(()=>[V(Ht(tg),{size:`14px`}),t[13]||=zi(` 安全会话`,-1)]),_:1}),V(g,{options:c,trigger:`click`,onClick:d},{default:L(()=>[V(h,{variant:`text`,class:`user-button`},{icon:L(()=>[V(Ht(Nv))]),default:L(()=>[B(`span`,ZV,ve(s.value),1),V(Ht(sg),{size:`15px`})]),_:1})]),_:1})])]),_:1}),V(y,{class:`app-content`},{default:L(()=>[V(v)]),_:1})]),_:1})]),_:1})}}}),$V={key:0,class:`captcha-turnstile`},eH=z({__name:`TurnstileWidget`,props:{siteKey:{},theme:{default:`auto`},size:{default:`flexible`}},emits:[`verify`,`expire`,`error`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=I(null),o=null,s=null;function c(){return window.turnstile?Promise.resolve():s||(s=new Promise((e,t)=>{let n=document.querySelector(`script[src*="challenges.cloudflare.com/turnstile"]`);if(n){n.addEventListener(`load`,()=>window.turnstile?e():t(Error(`Turnstile SDK unavailable`)),{once:!0}),window.turnstile&&e();return}let r=document.createElement(`script`);r.src=`https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit`,r.async=!0,r.defer=!0,r.onload=()=>window.turnstile?e():t(Error(`Turnstile SDK unavailable`)),r.onerror=()=>t(Error(`Failed to load Turnstile SDK`)),document.head.appendChild(r)}).catch(e=>{throw s=null,e}),s)}function l(){if(!(!window.turnstile||!a.value||!r.siteKey)){if(o){try{window.turnstile.remove(o)}catch{}o=null}a.value.innerHTML=``,o=window.turnstile.render(a.value,{sitekey:r.siteKey,theme:r.theme,size:r.size,callback:e=>i(`verify`,e),"expired-callback":()=>i(`expire`),"error-callback":()=>i(`error`)})}}function u(){if(window.turnstile&&o)try{window.turnstile.reset(o)}catch{}}return t({reset:u}),mr(async()=>{if(r.siteKey)try{await c(),l()}catch(e){console.error(`Failed to initialize Turnstile:`,e),i(`error`)}}),R(()=>r.siteKey,e=>{e&&window.turnstile&&l()}),vr(()=>{if(window.turnstile&&o)try{window.turnstile.remove(o)}catch{}o=null}),(t,n)=>e.siteKey?(Ei(),Ai(`div`,$V,[B(`div`,{ref_key:`containerRef`,ref:a,class:`captcha-turnstile__container`},null,512)])):Bi(``,!0)}}),tH=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},nH=tH(eH,[[`__scopeId`,`data-v-dcfbd1a5`]]),rH={cn:`https://turing.captcha.qcloud.com/TJCaptcha.js`,intl:`https://ca.turing.captcha.qcloud.com/TJNCaptcha-global.js`},iH=null,aH=null;function oH(e){return e===`intl`?`intl`:`cn`}function sH(){return window.TCaptchaGlobal===!0?`intl`:`cn`}function cH(e=`cn`){return window.TencentCaptcha&&(aH===e||sH()===e)?Promise.resolve(window.TencentCaptcha):window.TencentCaptcha&&aH!==null&&aH!==e?Promise.reject(Error(`Tencent Captcha region changed; reload the page to apply it`)):iH&&aH===e?iH:(aH=e,iH=new Promise((t,n)=>{let r=document.querySelector(`script[src="${rH[e]}"]`);if(r){let i=()=>window.TencentCaptcha&&sH()===e?t(window.TencentCaptcha):n(Error(`Tencent Captcha SDK unavailable`));window.TencentCaptcha?i():r.addEventListener(`load`,i,{once:!0}),r.addEventListener(`error`,()=>n(Error(`Failed to load Tencent Captcha SDK`)),{once:!0});return}let i=document.createElement(`script`);i.src=rH[e],i.async=!0,i.onload=()=>{window.TencentCaptcha&&sH()===e?t(window.TencentCaptcha):n(Error(`Tencent Captcha SDK unavailable`))},i.onerror=()=>n(Error(`Failed to load Tencent Captcha SDK`)),document.head.appendChild(i)}).catch(e=>{throw iH=null,aH=null,e}),iH)}var lH={class:`captcha-action`},uH=[`disabled`],dH=tH(z({__name:`TencentCaptchaGate`,props:{appId:{},region:{default:`cn`}},emits:[`verify`,`expire`,`error`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=U(()=>oH(r.region)===`intl`),o=I(null),s=I(`idle`),c=null,l=null,u=null,d=null;function f(e){if(e.ret===2){s.value=`idle`,u?.(null),u=null,l=null;return}let t=e.ticket?.trim()||``,n=e.randstr?.trim()||``;if(!t||!n||t.startsWith(`trerror_`)||e.errorCode!==void 0){s.value=`idle`,u?.(null),u=null,l=null,i(`error`);return}let r={ticket:t,randstr:n};d=r,s.value=`verified`,i(`verify`,r),u?.(r),u=null,l=null}async function p(){let e=await cH(oH(r.region));if(!c)if(a.value){if(!o.value)throw Error(`Tencent Captcha container unavailable`);c=new e(o.value,r.appId,f,{enableAutoCheck:!1,type:`popup`})}else c=new e(r.appId,f,{userLanguage:`zh-cn`})}function m(){s.value===`verified`||s.value===`verifying`||(s.value=`verifying`,h())}async function h(){if(d){let e=d;return d=null,e}if(l)return l;let e=new Promise(e=>{u=e});l=e;try{await p(),c?.show()}catch(e){throw s.value=`idle`,u?.(null),u=null,l=null,i(`error`),e}return e}function g(){c?.destroy(),c=null,d=null,s.value=`idle`,u?.(null),u=null,l=null,i(`expire`)}return t({verify:h,reset:g}),mr(()=>{r.appId&&a.value&&p().catch(()=>i(`error`))}),_r(g),(e,t)=>(Ei(),Ai(`div`,lH,[a.value?(Ei(),Ai(`div`,{key:0,ref_key:`internationalContainerRef`,ref:o,class:`captcha-action__international`},null,512)):(Ei(),Ai(`button`,{key:1,type:`button`,class:`captcha-action__trigger`,disabled:s.value===`verified`||s.value===`verifying`,onClick:m},[B(`span`,{class:de([`captcha-action__dot`,{"is-verified":s.value===`verified`}])},null,2),zi(` `+ve(s.value===`verified`?`验证通过`:s.value===`verifying`?`验证中...`:`点击完成安全验证`),1)],8,uH))]))}}),[[`__scopeId`,`data-v-7fd83f77`]]),fH={key:0,class:`captcha-action`},pH=[`disabled`],mH=`https://o.alicdn.com/captcha-frontend/aliyunCaptcha/AliyunCaptcha.js`,hH=tH(z({__name:`AliyunCaptchaWidget`,props:{sceneId:{},prefix:{},region:{default:`cn`}},emits:[`verify`,`expire`,`error`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=Math.random().toString(36).slice(2,10),o=`plugin-aliyun-captcha-button-${a}`,s=`plugin-aliyun-captcha-element-${a}`,c=I(`idle`),l=null,u=null,d=null,f=null,p=!1;function m(){return window.initAliyunCaptcha?Promise.resolve():l||(window.AliyunCaptchaConfig={region:r.region||`cn`,prefix:r.prefix},l=new Promise((e,t)=>{let n=document.querySelector(`script[src*="aliyunCaptcha/AliyunCaptcha"]`);if(n){n.addEventListener(`load`,()=>window.initAliyunCaptcha?e():t(Error(`Aliyun Captcha SDK unavailable`)),{once:!0}),n.addEventListener(`error`,()=>t(Error(`Failed to load Aliyun Captcha SDK`)),{once:!0});return}let r=document.createElement(`script`);r.src=mH,r.async=!0,r.onload=()=>window.initAliyunCaptcha?e():t(Error(`Aliyun Captcha SDK unavailable`)),r.onerror=()=>t(Error(`Failed to load Aliyun Captcha SDK`)),document.head.appendChild(r)}).catch(e=>{throw l=null,e}),l)}function h(e){f!==null&&(window.clearTimeout(f),f=null);let t=e.trim();if(!t){c.value=`idle`,d?.resolve(null),d=null,i(`error`);return}u=t,c.value=`verified`,i(`verify`,t),d?.resolve(t),d=null}function g(){if(!p){if(!window.initAliyunCaptcha)throw Error(`Aliyun Captcha SDK unavailable`);window.initAliyunCaptcha({SceneId:r.sceneId,prefix:r.prefix,mode:`popup`,element:`#${s}`,button:`#${o}`,captchaVerifyCallback:e=>(h(e),{captchaResult:!0}),onBizResultCallback:()=>void 0,getInstance:()=>void 0,slideStyle:{width:360,height:40},language:`cn`}),p=!0}}function _(){c.value===`verified`||c.value===`verifying`||(c.value=`verifying`,v().catch(()=>{c.value=`idle`,i(`error`)}))}async function v(){if(u){let e=u;return u=null,e}if(await m(),!window.initAliyunCaptcha)throw Error(`Aliyun Captcha SDK unavailable`);return g(),new Promise(e=>{d={resolve:e},f!==null&&window.clearTimeout(f),f=window.setTimeout(()=>{f=null,c.value=`idle`,d?.resolve(null),d=null},15e3),document.getElementById(o)?.click()})}function y(){f!==null&&(window.clearTimeout(f),f=null),u=null,c.value=`idle`,d?.resolve(null),d=null,document.getElementById(`aliyunCaptcha-mask`)?.remove(),document.getElementById(`aliyunCaptcha-window-popup`)?.remove(),i(`expire`)}return t({verify:v,reset:y}),mr(()=>{!r.sceneId||!r.prefix||m().then(g).catch(()=>i(`error`))}),vr(()=>{f!==null&&(window.clearTimeout(f),f=null),d?.resolve(null),d=null,document.getElementById(`aliyunCaptcha-mask`)?.remove(),document.getElementById(`aliyunCaptcha-window-popup`)?.remove()}),(t,n)=>e.sceneId&&e.prefix?(Ei(),Ai(`div`,fH,[B(`button`,{id:o,type:`button`,class:de([`captcha-action__trigger`,{"is-verified":c.value===`verified`}]),disabled:c.value===`verified`||c.value===`verifying`,onClick:_},[B(`span`,{class:de([`captcha-action__dot`,{"is-verified":c.value===`verified`}])},null,2),zi(` `+ve(c.value===`verified`?`验证通过`:c.value===`verifying`?`验证中...`:`点击完成安全验证`),1)],10,pH),B(`div`,{id:s})])):Bi(``,!0)}}),[[`__scopeId`,`data-v-8a1336a6`]]),gH={key:0,class:`captcha-challenge`,"aria-live":`polite`},_H={key:3,class:`captcha-challenge__missing`},vH=tH(z({__name:`CaptchaChallenge`,props:{enabled:{type:Boolean},provider:{},turnstileSiteKey:{},tencentAppId:{},tencentRegion:{},aliyunSceneId:{},aliyunPrefix:{},aliyunRegion:{}},emits:[`verify`,`expire`,`error`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=I(null),o=I(null),s=I(null),c=I(``),l=I(null),u=I(``),d=U(()=>r.provider);function f(e){c.value=e,i(`verify`,{token:e,randstr:``,provider:`turnstile`})}function p(e){l.value=e,i(`verify`,{token:e.ticket,randstr:e.randstr,provider:`tencent`})}function m(e){u.value=e,i(`verify`,{token:e,randstr:``,provider:`aliyun`})}function h(){c.value=``,l.value=null,u.value=``,i(`expire`)}function g(){h(),i(`error`)}async function _(){if(!r.enabled)return null;if(d.value===`turnstile`)return c.value?{token:c.value,randstr:``,provider:`turnstile`}:null;if(d.value===`tencent`){let e=l.value||await o.value?.verify()||null;return e?{token:e.ticket,randstr:e.randstr,provider:`tencent`}:null}if(d.value===`aliyun`){let e=u.value||await s.value?.verify()||``;return e?{token:e,randstr:``,provider:`aliyun`}:null}return null}function v(){c.value=``,l.value=null,u.value=``,a.value?.reset(),o.value?.reset(),s.value?.reset()}return t({verifyAction:_,reset:v}),(t,n)=>e.enabled?(Ei(),Ai(`div`,gH,[d.value===`turnstile`&&e.turnstileSiteKey?(Ei(),ji(nH,{key:0,ref_key:`turnstileRef`,ref:a,"site-key":e.turnstileSiteKey,onVerify:f,onExpire:h,onError:g},null,8,[`site-key`])):d.value===`tencent`&&e.tencentAppId?(Ei(),ji(dH,{key:1,ref_key:`tencentRef`,ref:o,"app-id":e.tencentAppId,region:e.tencentRegion,onVerify:p,onExpire:h,onError:g},null,8,[`app-id`,`region`])):d.value===`aliyun`&&e.aliyunSceneId&&e.aliyunPrefix?(Ei(),ji(hH,{key:2,ref_key:`aliyunRef`,ref:s,"scene-id":e.aliyunSceneId,prefix:e.aliyunPrefix,region:e.aliyunRegion,onVerify:m,onExpire:h,onError:g},null,8,[`scene-id`,`prefix`,`region`])):(Ei(),Ai(`div`,_H,`验证码配置不完整,请联系管理员`))])):Bi(``,!0)}}),[[`__scopeId`,`data-v-be35acfe`]]),yH={class:`login-page`},bH={class:`login-layout`},xH={class:`login-intro`},SH={class:`brand brand-login`},CH={class:`brand-mark`},wH={class:`login-points`},TH={class:`login-card-heading`},EH={class:`login-security`},DH=z({__name:`Login`,setup(e){let t=Hz(),n=I(!1),r=I(!1),i=I(``),a=I(!1),o=I(``),s=I(null),c=I(null),l=Dt({enabled:!1,provider:``,turnstile_enabled:!1,turnstile_site_key:``,tencent_captcha_enabled:!1,tencent_captcha_app_id:``,tencent_captcha_region:`cn`,aliyun_captcha_enabled:!1,aliyun_captcha_scene_id:``,aliyun_captcha_prefix:``,aliyun_captcha_region:`cn`}),u=Dt({email:``,password:``}),d=Dt({totp_code:``}),f={email:[{required:!0,message:`请输入管理员邮箱`,type:`error`}],password:[{required:!0,message:`请输入密码`,type:`error`}]};async function p(){if(!u.email.trim()||!u.password){i.value=`请输入邮箱和密码`;return}n.value=!0,i.value=``;try{let e=l.enabled&&await s.value?.verifyAction()||null;if(l.enabled&&!e){i.value=`请先完成安全验证`;return}c.value=e;let n=e?.provider===`tencent`?{tencent_captcha_ticket:e.token,tencent_captcha_randstr:e.randstr}:e?.provider===`aliyun`||e?.provider===`turnstile`?{turnstile_token:e.token}:{};(await FV(u.email.trim(),u.password,n)).requires2fa?r.value=!0:(eb.success(`登录成功`),t.push(`/overview`))}catch(e){i.value=e instanceof Error?e.message:`登录失败,请稍后重试`}finally{s.value?.reset(),c.value=null,n.value=!1}}async function m(){if(!/^\d{6}$/.test(d.totp_code)){i.value=`请输入 6 位数字验证码`;return}n.value=!0,i.value=``;try{await IV(d.totp_code),eb.success(`登录成功`),t.push(`/overview`)}catch(e){i.value=e instanceof Error?e.message:`验证码校验失败`}finally{n.value=!1}}function h(){r.value=!1,d.totp_code=``,i.value=``}function g(e){c.value=e,i.value=``}function _(){c.value=null}function v(){c.value=null,i.value=`安全验证加载失败,请刷新页面重试`}return mr(async()=>{o.value=``;try{let e=await NV();Object.assign(l,e),[e.turnstile_enabled,e.tencent_captcha_enabled,e.aliyun_captcha_enabled].filter(Boolean).length>1?o.value=`Core 同时启用了多个验证码服务,请保留一个服务商后重试`:e.enabled&&!e.provider&&(o.value=`验证码配置不完整,请联系管理员`)}catch(e){o.value=e instanceof Error?`验证码配置加载失败:${e.message}`:`验证码配置加载失败,请刷新页面重试`}finally{a.value=!0}}),(e,t)=>{let c=br(`t-tag`),y=br(`t-alert`),b=br(`t-input`),x=br(`t-form-item`),S=br(`t-button`),C=br(`t-form`),w=br(`t-card`);return Ei(),Ai(`main`,yH,[t[18]||=B(`div`,{class:`login-accent`},null,-1),B(`section`,bH,[B(`div`,xH,[B(`div`,SH,[B(`div`,CH,[V(Ht(Pg),{size:`24px`})]),t[3]||=B(`div`,null,[B(`div`,{class:`brand-title`},`Sub2API`),B(`div`,{class:`brand-subtitle`},`插件控制面`)],-1)]),t[7]||=B(`p`,{class:`eyebrow`},`BUSINESS PLUGIN CONTROL PLANE`,-1),t[8]||=B(`h1`,null,`统一管理你的业务插件`,-1),t[9]||=B(`p`,{class:`login-lead`},`使用 Core 管理员会话进入插件市场、生命周期和业务模块。所有插件操作都在同一安全控制面完成。`,-1),B(`div`,wH,[B(`div`,null,[V(Ht(tg),{size:`18px`}),t[4]||=B(`span`,null,`一次登录,访问已启用业务模块`,-1)]),B(`div`,null,[V(Ht(tg),{size:`18px`}),t[5]||=B(`span`,null,`凭据仅保存在服务端会话`,-1)]),B(`div`,null,[V(Ht(tg),{size:`18px`}),t[6]||=B(`span`,null,`每次变更都有可追溯操作记录`,-1)])])]),V(w,{class:`login-card`,bordered:!0},{default:L(()=>[B(`div`,TH,[t[11]||=B(`div`,null,[B(`p`,{class:`eyebrow`},`ADMIN ACCESS`),B(`h2`,null,`管理员登录`)],-1),V(c,{theme:`primary`,variant:`light`},{default:L(()=>[...t[10]||=[zi(`仅管理员`,-1)]]),_:1})]),t[17]||=B(`p`,{class:`muted`},`使用 Sub2API Core 的管理员账号登录,普通账号没有访问权限。`,-1),o.value?(Ei(),ji(y,{key:0,class:`login-error`,theme:`warning`,message:o.value},null,8,[`message`])):Bi(``,!0),r.value?(Ei(),ji(C,{key:2,class:`login-form`,data:d,onSubmit:m},{default:L(()=>[V(y,{theme:`info`,title:`需要二次验证`},{default:L(()=>[...t[13]||=[zi(`请输入 Core 返回的 6 位验证码。`,-1)]]),_:1}),V(x,{label:`验证码`,name:`totp_code`},{default:L(()=>[V(b,{modelValue:d.totp_code,"onUpdate:modelValue":t[2]||=e=>d.totp_code=e,inputmode:`numeric`,maxlength:`6`,placeholder:`000000`},null,8,[`modelValue`])]),_:1}),V(S,{theme:`primary`,type:`submit`,block:``,loading:n.value},{icon:L(()=>[V(Ht(tg))]),default:L(()=>[t[14]||=zi(`验证并继续`,-1)]),_:1},8,[`loading`]),V(S,{variant:`text`,block:``,onClick:h},{default:L(()=>[...t[15]||=[zi(`返回账号登录`,-1)]]),_:1})]),_:1},8,[`data`])):(Ei(),ji(C,{key:1,ref:`loginForm`,class:`login-form`,data:u,rules:f,onSubmit:p},{default:L(()=>[V(x,{label:`邮箱`,name:`email`},{default:L(()=>[V(b,{modelValue:u.email,"onUpdate:modelValue":t[0]||=e=>u.email=e,type:`text`,"aria-label":`邮箱`,autocomplete:`username`,placeholder:`admin@example.com`},null,8,[`modelValue`])]),_:1}),V(x,{label:`密码`,name:`password`},{default:L(()=>[V(b,{modelValue:u.password,"onUpdate:modelValue":t[1]||=e=>u.password=e,type:`password`,"aria-label":`密码`,autocomplete:`current-password`,placeholder:`输入管理员密码`},null,8,[`modelValue`])]),_:1}),a.value&&l.enabled?(Ei(),ji(vH,{key:0,ref_key:`captchaRef`,ref:s,enabled:l.enabled,provider:l.provider,"turnstile-site-key":l.turnstile_site_key,"tencent-app-id":l.tencent_captcha_app_id,"tencent-region":l.tencent_captcha_region,"aliyun-scene-id":l.aliyun_captcha_scene_id,"aliyun-prefix":l.aliyun_captcha_prefix,"aliyun-region":l.aliyun_captcha_region,onVerify:g,onExpire:_,onError:v},null,8,[`enabled`,`provider`,`turnstile-site-key`,`tencent-app-id`,`tencent-region`,`aliyun-scene-id`,`aliyun-prefix`,`aliyun-region`])):Bi(``,!0),V(S,{theme:`primary`,type:`submit`,block:``,loading:n.value,disabled:!a.value||!!o.value},{icon:L(()=>[V(Ht(Nv))]),default:L(()=>[t[12]||=zi(`登录`,-1)]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`data`])),i.value?(Ei(),ji(y,{key:3,class:`login-error`,theme:`error`,message:i.value},null,8,[`message`])):Bi(``,!0),B(`div`,EH,[V(Ht(F_),{size:`15px`}),t[16]||=zi(` HttpOnly 会话 · CSRF 保护 · 8 小时绝对有效期`,-1)])]),_:1})])])}}}),OH={class:`page-header`},kH={class:`eyebrow`},AH={class:`page-subtitle`},jH={class:`page-actions`},MH=z({__name:`PageHeader`,props:{eyebrow:{},title:{},subtitle:{}},setup(e){return(t,n)=>(Ei(),Ai(`header`,OH,[B(`div`,null,[B(`p`,kH,ve(e.eyebrow),1),B(`h1`,null,ve(e.title),1),B(`p`,AH,ve(e.subtitle),1)]),B(`div`,jH,[Dee(t.$slots,`actions`)])]))}}),NH=function(e,t){return NH=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},NH(e,t)};function PH(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);NH(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var FH=`12px sans-serif`,IH=20,LH=100,RH=`007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N`;function zH(e){var t={};if(typeof JSON>`u`)return t;for(var n=0;n=0)s=o*n.length;else for(var c=0;c=eU&&($H=0),$H++}function nU(){var e=[...arguments];typeof console<`u`&&console.error.apply(console,e)}function rU(e){if(typeof e!=`object`||!e)return e;var t=e,n=WH.call(e);if(n===`[object Array]`){if(!VU(e)){t=[];for(var r=0,i=e.length;r`u`&&typeof self<`u`?eW.worker=!0:!eW.hasGlobalWindow||`Deno`in window||typeof navigator<`u`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Node.js`)>-1?(eW.node=!0,eW.svgSupported=!0):tW(navigator.userAgent,eW);function tW(e,t){var n=t.browser,r=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);if(r&&(n.firefox=!0,n.version=r[1]),i&&(n.ie=!0,n.version=i[1]),a&&(n.edge=!0,n.version=a[1],n.newEdge=+a[1].split(`.`)[0]>18),o&&(n.weChat=!0),t.svgSupported=typeof SVGRect<`u`,t.touchEventsSupported=`ontouchstart`in window&&!n.ie&&!n.edge,t.pointerEventsSupported=`onpointerdown`in window&&(n.edge||n.ie&&+n.version>=11),t.domSupported=typeof document<`u`){var s=document.documentElement.style;t.transform3dSupported=(n.ie&&`transition`in s||n.edge||`WebKitCSSMatrix`in window&&`m11`in new WebKitCSSMatrix||`MozPerspective`in s)&&!(`OTransition`in s),t.transformSupported=t.transform3dSupported||n.ie&&+n.version>=9}}var nW=`.`,rW=`___EC__COMPONENT__CONTAINER___`,iW=`___EC__EXTENDED_CLASS___`;function aW(e){var t={main:``,sub:``};if(e){var n=e.split(nW);t.main=n[0]||``,t.sub=n[1]||``}return t}function oW(e){LU(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(e),`componentType "`+e+`" illegal`)}function sW(e){return!!(e&&e[iW])}function cW(e,t){e.$constructor=e,e.extend=function(e){var t=this,n;return lW(t)?n=function(e){PH(t,e);function t(){return e.apply(this,arguments)||this}return t}(t):(n=function(){(e.$constructor||t).apply(this,arguments)},lU(n,this)),aU(n.prototype,e),n[iW]=!0,n.extend=this.extend,n.superCall=pW,n.superApply=mW,n.superClass=t,n}}function lW(e){return xU(e)&&/^class\s/.test(Function.prototype.toString.call(e))}function uW(e,t){e.extend=t.extend}var dW=Math.round(Math.random()*10);function fW(e){var t=[`__\0is_clz`,dW++].join(`_`);e.prototype[t]=!0,e.isInstance=function(e){return!!(e&&e[t])}}function pW(e,t){var n=[...arguments].slice(2);return this.superClass.prototype[t].apply(e,n)}function mW(e,t,n){return this.superClass.prototype[t].apply(e,n)}function hW(e){var t={};e.registerClass=function(e){var r=e.type||e.prototype.type;if(r){oW(r),e.prototype.type=r;var i=aW(r);if(!i.sub)t[i.main]=e;else if(i.sub!==rW){var a=n(i);a[i.sub]=e}}return e},e.getClass=function(e,n,r){var i=t[e];if(i&&i[rW]&&(i=n?i[n]:null),r&&!i)throw Error(n?`Component `+e+`.`+(n||``)+` is used but not imported.`:e+`.type should be specified.`);return i},e.getClassesByMainType=function(e){var n=aW(e),r=[],i=t[n.main];return i&&i[rW]?$(i,function(e,t){t!==rW&&r.push(e)}):r.push(i),r},e.hasClass=function(e){return!!t[aW(e).main]},e.getAllClassMainTypes=function(){var e=[];return $(t,function(t,n){e.push(n)}),e},e.hasSubTypes=function(e){var n=t[aW(e).main];return n&&n[rW]};function n(e){var n=t[e.main];return(!n||!n[rW])&&(n=t[e.main]={},n[rW]=!0),n}}function gW(e,t){for(var n=0;n=0||i&&cU(i,s)<0)){var c=n.getShallow(s,t);c!=null&&(a[e[o][0]]=c)}}return a}}var _W=gW([[`fill`,`color`],[`shadowBlur`],[`shadowOffsetX`],[`shadowOffsetY`],[`opacity`],[`shadowColor`]]),vW=function(){function e(){}return e.prototype.getAreaStyle=function(e,t){return _W(this,e,t)},e}(),yW=function(e,t){return yW=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},yW(e,t)};function bW(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);yW(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var xW=function(){function e(e){this.value=e}return e}(),SW=function(){function e(){this._len=0}return e.prototype.insert=function(e){var t=new xW(e);return this.insertEntry(t),t},e.prototype.insertEntry=function(e){this.head?(this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e):this.head=this.tail=e,this._len++},e.prototype.remove=function(e){var t=e.prev,n=e.next;t?t.next=n:this.head=n,n?n.prev=t:this.tail=t,e.next=e.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),CW=function(){function e(e){this._list=new SW,this._maxSize=10,this._map={},this._maxSize=e}return e.prototype.put=function(e,t){var n=this._list,r=this._map,i=null;if(r[e]==null){var a=n.len(),o=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=n.head;n.remove(s),delete r[s.key],i=s.value,this._lastRemovedEntry=s}o?o.value=t:o=new xW(t),o.key=e,n.insertEntry(o),r[e]=o}return i},e.prototype.get=function(e){var t=this._map[e],n=this._list;if(t!=null)return t!==n.tail&&(n.remove(t),n.insertEntry(t)),t.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}(),wW=new CW(50);function TW(e){if(typeof e==`string`){var t=wW.get(e);return t&&t.image}else return e}function EW(e,t,n,r,i){if(!e)return t;if(typeof e==`string`){if(t&&t.__zrImageSrc===e||!n)return t;var a=wW.get(e),o={hostEl:n,cb:r,cbPayload:i};return a?(t=a.image,!OW(t)&&a.pending.push(o)):(t=VH.loadImage(e,DW,DW),t.__zrImageSrc=e,wW.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e}function DW(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;tu||d>f||p>m||h>g)return!1;var _=!(u=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height},e.prototype.contain=function(t,n){return e.contain(this,t,n)},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(e){oG(this,e)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t?t.x:0,t?t.y:0,t?t.width:0,t?t.height:0)},e.copy=function(e,t){return e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height,e},e.applyTransform=function(e,t,n){if(!n){e!==t&&oG(e,t);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var r=n[0],i=n[3],a=n[4],o=n[5];e.x=t.x*r+a,e.y=t.y*i+o,e.width=t.width*r,e.height=t.height*i,e.width<0&&(e.x+=e.width,e.width=-e.width),e.height<0&&(e.y+=e.height,e.height=-e.height);return}XW.x=QW.x=t.x,XW.y=$W.y=t.y,ZW.x=$W.x=t.x+t.width,ZW.y=QW.y=t.y+t.height,XW.transform(n),$W.transform(n),ZW.transform(n),QW.transform(n),e.x=KW(XW.x,ZW.x,QW.x,$W.x),e.y=KW(XW.y,ZW.y,QW.y,$W.y);var s=qW(XW.x,ZW.x,QW.x,$W.x),c=qW(XW.y,ZW.y,QW.y,$W.y);e.width=s-e.x,e.height=c-e.y},e.calculateTransform=function(e,t,n){var r=n.width/t.width,i=n.height/t.height;return e=AW(e||[]),NW(e,e,LW(sG,-t.x,-t.y)),kye(e,e,LW(sG,r,i)),NW(e,e,LW(sG,n.x,n.y)),e},e}();iG.create;var aG=iG.set,oG=iG.copy,Rye=iG.calculateTransform;iG.applyTransform,iG.contain;var zye=new iG(0,0,0,0),Bye=new iG(0,0,0,0),sG=[];function cG(e,t,n,r,i,a,o,s){var c=JW(t-n),l=JW(r-e),u=KW(c,l),d=YW[i],f=YW[1-i],p=Lye[i];t=l||!eG.bidirectional)&&(tG[d]=-l,tG[f]=0,eG.useDir&&eG.calcDirMTV())))}function lG(){var e=0,t=new GW,n=new GW,r={minTv:new GW,maxTv:new GW,useDir:!1,dirMinTv:new GW,touchThreshold:0,bidirectional:!0,negativeSize:!1,reset:function(i,a){r.touchThreshold=0,i&&i.touchThreshold!=null&&(r.touchThreshold=qW(0,i.touchThreshold)),r.negativeSize=!1,a&&(r.minTv.set(1/0,1/0),r.maxTv.set(0,0),r.useDir=!1,i&&i.direction!=null&&(r.useDir=!0,r.dirMinTv.copy(r.minTv),n.copy(r.minTv),e=i.direction,r.bidirectional=i.bidirectional==null||!!i.bidirectional,r.bidirectional||t.set(Math.cos(e),Math.sin(e))))},calcDirMTV:function(){var a=r.minTv,o=r.dirMinTv,s=a.y*a.y+a.x*a.x,c=Math.sin(e),l=Math.cos(e),u=c*a.y+l*a.x;if(i(u)){i(a.x)&&i(a.y)&&o.set(0,0);return}if(n.x=s*l/u,n.y=s*c/u,i(n.x)&&i(n.y)){o.set(0,0);return}(r.bidirectional||t.dot(n)>0)&&n.len()=pG)){e||=`12px sans-serif`;for(var t=[],n=+new Date,r=0;r<=127;r++)t[r]=VH.measureText(String.fromCharCode(r),e).width;var i=+new Date-n;return i>16?fG=pG:i>2&&fG++,t}}var fG=0,pG=5;function mG(e,t){return e.asciiWidthMapTried||=(e.asciiWidthMap=Vye(e.font),!0),0<=t&&t<=127?e.asciiWidthMap==null?e.asciiCharWidth:e.asciiWidthMap[t]:e.stWideCharWidth}function hG(e,t){var n=e.strWidthCache,r=n.get(t);return r??(r=VH.measureText(t,e.font).width,n.put(t,r)),r}function gG(e,t,n,r){var i=hG(uG(t),e),a=bG(t);return new iG(vG(0,i,n),yG(0,a,r),i,a)}function _G(e,t,n,r){var i=((e||``)+``).split(` +`);if(i.length===1)return gG(i[0],t,n,r);for(var a=new iG(0,0,0,0),o=0;o=0?parseFloat(e)/100*t:parseFloat(e):e}function SG(e,t,n){var r=t.position||`inside`,i=t.distance==null?5:t.distance,a=n.height,o=n.width,s=a/2,c=n.x,l=n.y,u=`left`,d=`top`;if(r instanceof Array)c+=xG(r[0],n.width),l+=xG(r[1],n.height),u=null,d=null;else switch(r){case`left`:c-=i,l+=s,u=`right`,d=`middle`;break;case`right`:c+=i+o,l+=s,d=`middle`;break;case`top`:c+=o/2,l-=i,u=`center`,d=`bottom`;break;case`bottom`:c+=o/2,l+=a+i,u=`center`;break;case`inside`:c+=o/2,l+=s,u=`center`,d=`middle`;break;case`insideLeft`:c+=i,l+=s,d=`middle`;break;case`insideRight`:c+=o-i,l+=s,u=`right`,d=`middle`;break;case`insideTop`:c+=o/2,l+=i,u=`center`;break;case`insideBottom`:c+=o/2,l+=a-i,u=`center`,d=`bottom`;break;case`insideTopLeft`:c+=i,l+=i;break;case`insideTopRight`:c+=o-i,l+=i,u=`right`;break;case`insideBottomLeft`:c+=i,l+=a-i,d=`bottom`;break;case`insideBottomRight`:c+=o-i,l+=a-i,u=`right`,d=`bottom`;break}return e||={},e.x=c,e.y=l,e.align=u,e.verticalAlign=d,e}var CG=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function Hye(e,t,n,r,i,a){if(!n){e.text=``,e.isTruncated=!1;return}var o=(t+``).split(` +`);a=wG(n,r,i,a);for(var s=!1,c={},l=0,u=o.length;l=s;l++)c-=s;var u=hG(o,n);return u>c&&(n=``,u=0),c=e-u,i.ellipsis=n,i.ellipsisWidth=u,i.contentWidth=c,i.containerWidth=e,i}function TG(e,t,n){var r=n.containerWidth,i=n.contentWidth,a=n.fontMeasureInfo;if(!r){e.textLine=``,e.isTruncated=!1;return}var o=hG(a,t);if(o<=r){e.textLine=t,e.isTruncated=!1;return}for(var s=0;;s++){if(o<=i||s>=n.maxIterations){t+=n.ellipsis;break}var c=s===0?Uye(t,i,a):o>0?Math.floor(t.length*i/o):0;t=t.substr(0,c),o=hG(a,t)}t===``&&(t=n.placeholder),e.textLine=t,e.isTruncated=!0}function Uye(e,t,n){for(var r=0,i=0,a=e.length;ig&&p){var y=Math.floor(g/f);m||=_.length>y,_=_.slice(0,y),v=_.length*f}if(i&&u&&h!=null)for(var b=wG(h,l,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),x={},S=0;S<_.length;S++)TG(x,_[S],b),_[S]=x.textLine,m||=x.isTruncated;for(var C=g,w=0,T=uG(l),S=0;S<_.length;S++)w=Math.max(hG(T,_[S]),w);h??=w;var E=h;return C+=c,E+=s,{lines:_,height:g,outerWidth:E,outerHeight:C,lineHeight:f,calculatedLineHeight:d,contentWidth:w,contentHeight:v,width:h,isTruncated:m}}var Gye=function(){function e(){}return e}(),EG=function(){function e(e){this.tokens=[],e&&(this.tokens=e)}return e}(),Kye=function(){function e(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[],this.isTruncated=!1}return e}();function qye(e,t,n,r,i){var a=new Kye,o=MG(e);if(!o)return a;var s=t.padding,c=s?s[1]+s[3]:0,l=s?s[0]+s[2]:0,u=t.width;u==null&&n!=null&&(u=n-c);var d=t.height;d==null&&r!=null&&(d=r-l);for(var f=t.overflow,p=(f===`break`||f===`breakAll`)&&u!=null?{width:u,accumWidth:0,breakAll:f===`breakAll`}:null,m=CG.lastIndex=0,h;(h=CG.exec(o))!=null;){var g=h.index;g>m&&DG(a,o.substring(m,g),t,p),DG(a,h[2],t,p,h[1]),m=CG.lastIndex}md){var P=a.lines.length;O>0?(T.tokens=T.tokens.slice(0,O),C(T,D,E),a.lines=a.lines.slice(0,w+1)):a.lines=a.lines.slice(0,w),a.isTruncated=a.isTruncated||a.lines.length0&&m+r.accumWidth>r.width&&(u=t.split(` +`),l=!0),r.accumWidth=m}else{var h=OG(t,c,r.width,r.breakAll,r.accumWidth);r.accumWidth=h.accumWidth+p,d=h.linesWidths,u=h.lines}}u||=t.split(` +`);for(var g=uG(c),_=0;_=32&&t<=591||t>=880&&t<=4351||t>=4608&&t<=5119||t>=7680&&t<=8303}var Yye=pU(`,&?/;] `.split(``),function(e,t){return e[t]=!0,e},{});function Xye(e){return!Jye(e)||!!Yye[e]}function OG(e,t,n,r,i){for(var a=[],o=[],s=``,c=``,l=0,u=0,d=uG(t),f=0;fn:i+u+m>n){u?(s||c)&&(h?(s||(s=c,c=``,l=0,u=l),a.push(s),o.push(u-l),c+=p,l+=m,s=``,u=l):(c&&(s+=c,c=``,l=0),a.push(s),o.push(u),s=p,u=m)):h?(a.push(c),o.push(l),c=p,l=m):(a.push(p),o.push(m));continue}u+=m,h?(c+=p,l+=m):(c&&(s+=c,c=``,l=0),s+=p)}return c&&(s+=c),s&&(a.push(s),o.push(u)),a.length===1&&(u+=i),{accumWidth:u,lines:a,linesWidths:o}}function kG(e,t,n,r,i,a){if(e.baseX=n,e.baseY=r,e.outerWidth=e.outerHeight=null,t){var o=t.width*2,s=t.height*2;iG.set(AG,vG(n,o,i),yG(r,s,a),o,s),iG.intersect(t,AG,null,jG);var c=jG.outIntersectRect;e.outerWidth=c.width,e.outerHeight=c.height,e.baseX=vG(c.x,c.width,i,!0),e.baseY=yG(c.y,c.height,a,!0)}}var AG=new iG(0,0,0,0),jG={outIntersectRect:{},clamp:!0};function MG(e){return e==null?e=``:e+=``}function Zye(e){var t=MG(e.text),n=e.font;return NG(e,hG(uG(n),t),bG(n),null)}function NG(e,t,n,r){var i=new iG(vG(e.x||0,t,e.textAlign),yG(e.y||0,n,e.textBaseline),t,n),a=r??(PG(e)?e.lineWidth:0);return a>0&&(i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a),i}function PG(e){var t=e.stroke;return t!=null&&t!==`none`&&e.lineWidth>0}var FG=AW,IG=5e-5;function LG(e){return e>IG||e<-IG}var RG=[],zG=[],BG=kW(),VG=Math.abs,HG=function(){function e(){}return e.prototype.getLocalTransform=function(e){return Qye(this,e)},e.prototype.setPosition=function(e){this.x=e[0],this.y=e[1]},e.prototype.setScale=function(e){this.scaleX=e[0],this.scaleY=e[1]},e.prototype.setSkew=function(e){this.skewX=e[0],this.skewY=e[1]},e.prototype.setOrigin=function(e){this.originX=e[0],this.originY=e[1]},e.prototype.needLocalTransform=function(){return LG(this.rotation)||LG(this.x)||LG(this.y)||LG(this.scaleX-1)||LG(this.scaleY-1)||LG(this.skewX)||LG(this.skewY)},e.prototype.updateTransform=function(){var e=this.parent&&this.parent.transform,t=this.needLocalTransform(),n=this.transform;if(!(t||e)){n&&(FG(n),this.invTransform=null);return}n||=kW(),t?this.getLocalTransform(n):FG(n),e&&(t?MW(n,e,n):jW(n,e)),this.transform=n,this._resolveGlobalScaleRatio(n),this.invTransform=this.invTransform||kW(),FW(this.invTransform,n)},e.prototype._resolveGlobalScaleRatio=function(e){var t=this.globalScaleRatio;if(t!=null&&t!==1){this.getGlobalScale(RG);var n=RG[0]<0?-1:1,r=RG[1]<0?-1:1,i=((RG[0]-n)*t+n)/RG[0]||0,a=((RG[1]-r)*t+r)/RG[1]||0;e[0]*=i,e[1]*=i,e[2]*=a,e[3]*=a}},e.prototype.getComputedTransform=function(){for(var e=this,t=[];e;)t.push(e),e=e.parent;for(;e=t.pop();)e.updateTransform();return this.transform},e.prototype.setLocalTransform=function(e){if(e){var t=e[0]*e[0]+e[1]*e[1],n=e[2]*e[2]+e[3]*e[3],r=Math.atan2(e[1],e[0]),i=Math.PI/2+r-Math.atan2(e[3],e[2]);n=Math.sqrt(n)*Math.cos(i),t=Math.sqrt(t),this.skewX=i,this.skewY=0,this.rotation=-r,this.x=+e[4],this.y=+e[5],this.scaleX=t,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var e=this.parent,t=this.transform;e&&e.transform&&(e.invTransform=e.invTransform||kW(),MW(zG,e.invTransform,t),t=zG);var n=this.originX,r=this.originY;(n||r)&&(BG[4]=n,BG[5]=r,MW(zG,t,BG),zG[4]-=n,zG[5]-=r,t=zG),this.setLocalTransform(t)}},e.prototype.getGlobalScale=function(e){var t=this.transform;return e||=[],t?(e[0]=Math.sqrt(t[0]*t[0]+t[1]*t[1]),e[1]=Math.sqrt(t[2]*t[2]+t[3]*t[3]),t[0]<0&&(e[0]=-e[0]),t[3]<0&&(e[1]=-e[1]),e):(e[0]=1,e[1]=1,e)},e.prototype.transformCoordToLocal=function(e,t){var n=[e,t],r=this.invTransform;return r&&HW(n,n,r),n},e.prototype.transformCoordToGlobal=function(e,t){var n=[e,t],r=this.transform;return r&&HW(n,n,r),n},e.prototype.getLineScale=function(){var e=this.transform;return e&&VG(e[0]-1)>1e-10&&VG(e[3]-1)>1e-10?Math.sqrt(VG(e[0]*e[3]-e[2]*e[1])):1},e.prototype.copyTransform=function(e){WG(this,e)},e.getLocalTransform=function(e,t){t||=[];var n=e.originX||0,r=e.originY||0,i=e.scaleX,a=e.scaleY,o=e.anchorX,s=e.anchorY,c=e.rotation||0,l=e.x,u=e.y,d=e.skewX?Math.tan(e.skewX):0,f=e.skewY?Math.tan(-e.skewY):0;if(n||r||o||s){var p=n+o,m=r+s;t[4]=-p*i-d*m*a,t[5]=-m*a-f*p*i}else t[4]=t[5]=0;return t[0]=i,t[3]=a,t[1]=f*i,t[2]=d*a,c&&PW(t,t,c),t[4]+=n+l,t[5]+=r+u,t},e.initDefaultProps=(function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0})(),e}(),Qye=HG.getLocalTransform,UG=[`x`,`y`,`originX`,`originY`,`anchorX`,`anchorY`,`rotation`,`scaleX`,`scaleY`,`skewX`,`skewY`];function WG(e,t){return oU(e,t,UG)}var GG={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:1024**(e-1)},exponentialOut:function(e){return e===1?1:1-2**(-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*1024**(e-1):.5*(-(2**(-10*(e-1)))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,n=.1,r=.4;return e===0?0:e===1?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),-(n*2**(10*--e)*Math.sin((e-t)*(2*Math.PI)/r)))},elasticOut:function(e){var t,n=.1,r=.4;return e===0?0:e===1?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),n*2**(-10*e)*Math.sin((e-t)*(2*Math.PI)/r)+1)},elasticInOut:function(e){var t,n=.1,r=.4;return e===0?0:e===1?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),(e*=2)<1?-.5*(n*2**(10*--e)*Math.sin((e-t)*(2*Math.PI)/r)):n*2**(-10*--e)*Math.sin((e-t)*(2*Math.PI)/r)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=1.70158*1.525;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-GG.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?GG.bounceIn(e*2)*.5:GG.bounceOut(e*2-1)*.5+.5}},KG=Math.pow,qG=Math.sqrt,JG=1e-8,YG=1e-4,XG=qG(3),ZG=1/3,QG=IW(),$G=IW(),eK=IW();function tK(e){return e>-JG&&eJG||e<-JG}function rK(e,t,n,r,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*r+3*a*n)}function iK(e,t,n,r,i){var a=1-i;return 3*(((t-e)*a+2*(n-t)*i)*a+(r-n)*i*i)}function aK(e,t,n,r,i,a){var o=r+3*(t-n)-e,s=3*(n-t*2+e),c=3*(t-e),l=e-i,u=s*s-3*o*c,d=s*c-9*o*l,f=c*c-3*s*l,p=0;if(tK(u)&&tK(d))if(tK(s))a[0]=0;else{var m=-c/s;m>=0&&m<=1&&(a[p++]=m)}else{var h=d*d-4*u*f;if(tK(h)){var g=d/u,m=-s/o+g,_=-g/2;m>=0&&m<=1&&(a[p++]=m),_>=0&&_<=1&&(a[p++]=_)}else if(h>0){var v=qG(h),y=u*s+1.5*o*(-d+v),b=u*s+1.5*o*(-d-v);y=y<0?-KG(-y,ZG):KG(y,ZG),b=b<0?-KG(-b,ZG):KG(b,ZG);var m=(-s-(y+b))/(3*o);m>=0&&m<=1&&(a[p++]=m)}else{var x=(2*u*s-3*o*d)/(2*qG(u*u*u)),S=Math.acos(x)/3,C=qG(u),w=Math.cos(S),m=(-s-2*C*w)/(3*o),_=(-s+C*(w+XG*Math.sin(S)))/(3*o),T=(-s+C*(w-XG*Math.sin(S)))/(3*o);m>=0&&m<=1&&(a[p++]=m),_>=0&&_<=1&&(a[p++]=_),T>=0&&T<=1&&(a[p++]=T)}}return p}function oK(e,t,n,r,i){var a=6*n-12*t+6*e,o=9*t+3*r-3*e-9*n,s=3*t-3*e,c=0;if(tK(o)){if(nK(a)){var l=-s/a;l>=0&&l<=1&&(i[c++]=l)}}else{var u=a*a-4*o*s;if(tK(u))i[0]=-a/(2*o);else if(u>0){var d=qG(u),l=(-a+d)/(2*o),f=(-a-d)/(2*o);l>=0&&l<=1&&(i[c++]=l),f>=0&&f<=1&&(i[c++]=f)}}return c}function sK(e,t,n,r,i,a){var o=(t-e)*i+e,s=(n-t)*i+t,c=(r-n)*i+n,l=(s-o)*i+o,u=(c-s)*i+s,d=(u-l)*i+l;a[0]=e,a[1]=o,a[2]=l,a[3]=d,a[4]=d,a[5]=u,a[6]=c,a[7]=r}function $ye(e,t,n,r,i,a,o,s,c,l,u){var d,f=.005,p=1/0,m,h,g,_;QG[0]=c,QG[1]=l;for(var v=0;v<1;v+=.05)$G[0]=rK(e,n,i,o,v),$G[1]=rK(t,r,a,s,v),g=VW(QG,$G),g=0&&g=0&&l<=1&&(i[c++]=l)}}else{var u=o*o-4*a*s;if(tK(u)){var l=-o/(2*a);l>=0&&l<=1&&(i[c++]=l)}else if(u>0){var d=qG(u),l=(-o+d)/(2*a),f=(-o-d)/(2*a);l>=0&&l<=1&&(i[c++]=l),f>=0&&f<=1&&(i[c++]=f)}}return c}function uK(e,t,n){var r=e+n-2*t;return r===0?.5:(e-t)/r}function dK(e,t,n,r,i){var a=(t-e)*r+e,o=(n-t)*r+t,s=(o-a)*r+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=n}function nbe(e,t,n,r,i,a,o,s,c){var l,u=.005,d=1/0;QG[0]=o,QG[1]=s;for(var f=0;f<1;f+=.05){$G[0]=cK(e,n,i,f),$G[1]=cK(t,r,a,f);var p=VW(QG,$G);p=0&&p=1?1:aK(0,r,a,1,e,s)&&rK(0,i,o,1,s[0])}}}var abe=function(){function e(e){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=e.life||1e3,this._delay=e.delay||0,this.loop=e.loop||!1,this.onframe=e.onframe||ZU,this.ondestroy=e.ondestroy||ZU,this.onrestart=e.onrestart||ZU,e.easing&&this.setEasing(e.easing)}return e.prototype.step=function(e,t){if(this._inited||=(this._startTime=e+this._delay,!0),this._paused){this._pausedTime+=t;return}var n=this._life,r=e-this._startTime-this._pausedTime,i=r/n;i<0&&(i=0),i=Math.min(i,1);var a=this.easingFunc,o=a?a(i):i;if(this.onframe(o),i===1)if(this.loop){var s=r%n;this._startTime=e-s,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(e){this.easing=e,this.easingFunc=xU(e)?e:GG[e]||fK(e)},e}(),pK={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function mK(e){return e=Math.round(e),e<0?0:e>255?255:e}function obe(e){return e=Math.round(e),e<0?0:e>360?360:e}function hK(e){return e<0?0:e>1?1:e}function gK(e){var t=e;return t.length&&t.charAt(t.length-1)===`%`?mK(parseFloat(t)/100*255):mK(parseInt(t,10))}function _K(e){var t=e;return t.length&&t.charAt(t.length-1)===`%`?hK(parseFloat(t)/100):hK(parseFloat(t))}function vK(e,t,n){return n<0?n+=1:n>1&&--n,n*6<1?e+(t-e)*n*6:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function yK(e,t,n){return e+(t-e)*n}function bK(e,t,n,r,i){return e[0]=t,e[1]=n,e[2]=r,e[3]=i,e}function xK(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var SK=new CW(20),CK=null;function wK(e,t){CK&&xK(CK,t),CK=SK.put(e,CK||t.slice())}function TK(e,t){if(e){t||=[];var n=SK.get(e);if(n)return xK(t,n);e+=``;var r=e.replace(/ /g,``).toLowerCase();if(r in pK)return xK(t,pK[r]),wK(e,t),t;var i=r.length;if(r.charAt(0)===`#`){if(i===4||i===5){var a=parseInt(r.slice(1,4),16);if(!(a>=0&&a<=4095)){bK(t,0,0,0,1);return}return bK(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(r.slice(4),16)/15:1),wK(e,t),t}else if(i===7||i===9){var a=parseInt(r.slice(1,7),16);if(!(a>=0&&a<=16777215)){bK(t,0,0,0,1);return}return bK(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(r.slice(7),16)/255:1),wK(e,t),t}return}var o=r.indexOf(`(`),s=r.indexOf(`)`);if(o!==-1&&s+1===i){var c=r.substr(0,o),l=r.substr(o+1,s-(o+1)).split(`,`),u=1;switch(c){case`rgba`:if(l.length!==4)return l.length===3?bK(t,+l[0],+l[1],+l[2],1):bK(t,0,0,0,1);u=_K(l.pop());case`rgb`:if(l.length>=3)return bK(t,gK(l[0]),gK(l[1]),gK(l[2]),l.length===3?u:_K(l[3])),wK(e,t),t;bK(t,0,0,0,1);return;case`hsla`:if(l.length!==4){bK(t,0,0,0,1);return}return l[3]=_K(l[3]),EK(l,t),wK(e,t),t;case`hsl`:if(l.length!==3){bK(t,0,0,0,1);return}return EK(l,t),wK(e,t),t;default:return}}bK(t,0,0,0,1)}}function EK(e,t){var n=(parseFloat(e[0])%360+360)%360/360,r=_K(e[1]),i=_K(e[2]),a=i<=.5?i*(r+1):i+r-i*r,o=i*2-a;return t||=[],bK(t,mK(vK(o,a,n+1/3)*255),mK(vK(o,a,n)*255),mK(vK(o,a,n-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function sbe(e){if(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s=(a+i)/2,c,l;if(o===0)c=0,l=0;else{l=s<.5?o/(a+i):o/(2-a-i);var u=((a-t)/6+o/2)/o,d=((a-n)/6+o/2)/o,f=((a-r)/6+o/2)/o;t===a?c=f-d:n===a?c=1/3+u-f:r===a&&(c=2/3+d-u),c<0&&(c+=1),c>1&&--c}var p=[c*360,l,s];return e[3]!=null&&p.push(e[3]),p}}function DK(e,t){var n=TK(e);if(n){for(var r=0;r<3;r++)t<0?n[r]=n[r]*(1-t)|0:n[r]=(255-n[r])*t+n[r]|0,n[r]>255?n[r]=255:n[r]<0&&(n[r]=0);return kK(n,n.length===4?`rgba`:`rgb`)}}function cbe(e,t,n){if(!(!(t&&t.length)||!(e>=0&&e<=1))){var r=e*(t.length-1),i=Math.floor(r),a=Math.ceil(r),o=TK(t[i]),s=TK(t[a]),c=r-i,l=kK([mK(yK(o[0],s[0],c)),mK(yK(o[1],s[1],c)),mK(yK(o[2],s[2],c)),hK(yK(o[3],s[3],c))],`rgba`);return n?{color:l,leftIndex:i,rightIndex:a,value:r}:l}}function OK(e,t,n,r){var i=TK(e);if(e)return i=sbe(i),t!=null&&(i[0]=obe(xU(t)?t(i[0]):t)),n!=null&&(i[1]=_K(xU(n)?n(i[1]):n)),r!=null&&(i[2]=_K(xU(r)?r(i[2]):r)),kK(EK(i),`rgba`)}function kK(e,t){if(!(!e||!e.length)){var n=e[0]+`,`+e[1]+`,`+e[2];return(t===`rgba`||t===`hsva`||t===`hsla`)&&(n+=`,`+e[3]),t+`(`+n+`)`}}function AK(e,t){var n=TK(e);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*t:0}var jK=new CW(100);function MK(e){if(SU(e)){var t=jK.get(e);return t||(t=DK(e,-.1),jK.put(e,t)),t}else if(kU(e)){var n=aU({},e);return n.colorStops=fU(e.colorStops,function(e){return{offset:e.offset,color:DK(e.color,-.1)}}),n}return e}function lbe(e){return e.type===`linear`}function ube(e){return e.type===`radial`}(function(){return typeof Buffer<`u`&&typeof Buffer.from==`function`?function(e){return Buffer.from(e).toString(`base64`)}:typeof btoa==`function`&&typeof unescape==`function`&&typeof encodeURIComponent==`function`?function(e){return btoa(unescape(encodeURIComponent(e)))}:function(e){return null}})();var NK=Array.prototype.slice;function PK(e,t,n){return(t-e)*n+e}function FK(e,t,n,r){for(var i=t.length,a=0;ar?t:e,a=Math.min(n,r),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so)r.length=o;else for(var s=a;s=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(e,t,n){this._needsSort=!0;var r=this.keyframes,i=r.length,a=!1,o=KK,s=t;if(dU(t)){var c=mbe(t);o=c,(c===1&&!wU(t[0])||c===2&&!wU(t[0][0]))&&(a=!0)}else if(wU(t)&&!jU(t))o=BK;else if(SU(t))if(!isNaN(+t))o=BK;else{var l=TK(t);l&&(s=l,o=UK)}else if(kU(t)){var u=aU({},s);u.colorStops=fU(t.colorStops,function(e){return{offset:e.offset,color:TK(e.color)}}),lbe(t)?o=WK:ube(t)&&(o=GK),s=u}i===0?this.valType=o:(o!==this.valType||o===KK)&&(a=!0),this.discrete=this.discrete||a;var d={time:e,value:s,rawValue:t,percent:0};return n&&(d.easing=n,d.easingFunc=xU(n)?n:GG[n]||fK(n)),r.push(d),d},e.prototype.prepare=function(e,t){var n=this.keyframes;this._needsSort&&n.sort(function(e,t){return e.time-t.time});for(var r=this.valType,i=n.length,a=n[i-1],o=this.discrete,s=JK(r),c=qK(r),l=0;l=0&&!(a[l].percent<=t);l--);l=d(l,o-2)}else{for(l=u;lt);l++);l=d(l-1,o-2)}p=a[l+1],f=a[l]}if(f&&p){this._lastFr=l,this._lastFrP=t;var m=p.percent-f.percent,h=m===0?1:d((t-f.percent)/m,1);p.easingFunc&&(h=p.easingFunc(h));var g=n?this._additiveValue:c?YK:e[s];if((JK(i)||c)&&!g&&(g=this._additiveValue=[]),this.discrete)e[s]=h<1?f.rawValue:p.rawValue;else if(JK(i))i===VK?FK(g,f[r],p[r],h):dbe(g,f[r],p[r],h);else if(qK(i)){var _=f[r],v=p[r],y=i===WK;e[s]={type:y?`linear`:`radial`,x:PK(_.x,v.x,h),y:PK(_.y,v.y,h),colorStops:fU(_.colorStops,function(e,t){var n=v.colorStops[t];return{offset:PK(e.offset,n.offset,h),color:zK(FK([],e.color,n.color,h))}}),global:v.global},y?(e[s].x2=PK(_.x2,v.x2,h),e[s].y2=PK(_.y2,v.y2,h)):e[s].r=PK(_.r,v.r,h)}else if(c)FK(g,f[r],p[r],h),n||(e[s]=zK(g));else{var b=PK(f[r],p[r],h);n?this._additiveValue=b:e[s]=b}n&&this._addToTarget(e)}}},e.prototype._addToTarget=function(e){var t=this.valType,n=this.propName,r=this._additiveValue;t===BK?e[n]=e[n]+r:t===UK?(TK(e[n],YK),IK(YK,YK,r,1),e[n]=zK(YK)):t===VK?IK(e[n],e[n],r,1):t===HK&&LK(e[n],e[n],r,1)},e}(),XK=function(){function e(e,t,n,r){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=e,this._loop=t,t&&r){nU(`Can' use additive animation on looped animation.`);return}this._additiveAnimators=r,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(e){this._target=e},e.prototype.when=function(e,t,n){return this.whenWithKeys(e,t,gU(t),n)},e.prototype.whenWithKeys=function(e,t,n,r){for(var i=this._tracks,a=0;a0&&s.addKeyframe(0,RK(c),r),this._trackKeys.push(o)}s.addKeyframe(e,RK(t[o]),r)}return this._maxTime=Math.max(this._maxTime,e),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(e){return this._maxTime=e,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var e=this._doneCbs;if(e)for(var t=e.length,n=0;n0)){this._started=1;for(var t=this,n=[],r=this._maxTime||0,i=0;i1){var o=a.pop();i.addKeyframe(o.time,e[r]),i.prepare(this._maxTime,i.getAdditiveTrack())}}}},e}(),ZK=function(){function e(e){e&&(this._$eventProcessor=e)}return e.prototype.on=function(e,t,n,r){this._$handlers||={};var i=this._$handlers;if(typeof t==`function`&&(r=n,n=t,t=null),!n||!e)return this;var a=this._$eventProcessor;t!=null&&a&&a.normalizeQuery&&(t=a.normalizeQuery(t)),i[e]||(i[e]=[]);for(var o=0;o=0:n.inside,y=void 0,b=void 0,x=void 0;v&&this.canBeInsideText()?(y=n.insideFill,b=n.insideStroke,(y==null||y===`auto`)&&(y=this.getInsideTextFill()),(b==null||b===`auto`)&&(b=this.getInsideTextStroke(y),x=!0)):(y=n.outsideFill,b=n.outsideStroke,(y==null||y===`auto`)&&(y=this.getOutsideFill()),(b==null||b===`auto`)&&(b=this.getOutsideStroke(y),x=!0)),y||=`#000`,(y!==g.fill||b!==g.stroke||x!==g.autoStroke||a!==g.align||o!==g.verticalAlign)&&(s=!0,g.fill=y,g.stroke=b,g.autoStroke=x,g.align=a,g.verticalAlign=o,t.setDefaultTextStyle(g)),t.__dirty|=1,s&&t.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return`#fff`},e.prototype.getInsideTextStroke=function(e){return`#000`},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?nq:tq},e.prototype.getOutsideStroke=function(e){var t=this.__zr&&this.__zr.getBackgroundColor(),n=typeof t==`string`&&TK(t);n||=[255,255,255,1];for(var r=n[3],i=this.__zr.isDarkMode(),a=0;a<3;a++)n[a]=n[a]*r+(i?0:255)*(1-r);return n[3]=1,kK(n,`rgba`)},e.prototype.traverse=function(e,t){},e.prototype.attrKV=function(e,t){e===`textConfig`?this.setTextConfig(t):e===`textContent`?this.setTextContent(t):e===`clipPath`?this.setClipPath(t):e===`extra`?(this.extra=this.extra||{},aU(this.extra,t)):this[e]=t},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(e,t){if(typeof e==`string`)this.attrKV(e,t);else if(TU(e))for(var n=gU(e),r=0;r0},e.prototype.getState=function(e){return this.states[e]},e.prototype.ensureState=function(e){var t=this.states;return t[e]||(t[e]={}),t[e]},e.prototype.clearStates=function(e){this.useState(rq,!1,e)},e.prototype.useState=function(e,t,n,r){var i=e===rq;if(!(!this.hasState()&&i)){var a=this.currentStates,o=this.stateTransition;if(!(cU(a,e)>=0&&(t||a.length===1))){var s;if(this.stateProxy&&!i&&(s=this.stateProxy(e)),s||=this.states&&this.states[e],!s&&!i){nU(`State `+e+` not exists.`);return}i||this.saveCurrentToNormalState(s);var c=this._textContent,l=dq(this,c,s,r);l&&!this.__inHover&&(this.__inHover=l),this._applyStateObj(e,s,this._normalState,t,pq(this,n,o),o);var u=this._textGuide;return c&&c.useState(e,t,n,!!l),u&&u.useState(e,t,n,!!l),i?(this.currentStates=[],this._normalState={}):t?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this.__inHover=0,this.__dirty&=-2),s}}},e.prototype.useStates=function(e,t,n){if(!e.length)this.clearStates();else{var r=[],i=this.currentStates,a=e.length,o=a===i.length;if(o){for(var s=0;s=0){var n=this.currentStates.slice();n.splice(t,1),this.useStates(n)}},e.prototype.replaceState=function(e,t,n){var r=this.currentStates.slice(),i=cU(r,e),a=cU(r,t)>=0;i>=0?a?r.splice(i,1):r[i]=t:n&&!a&&r.push(t),this.useStates(r)},e.prototype.toggleState=function(e,t){t?this.useState(e,!0):this.removeState(e)},e.prototype._mergeStates=function(e){for(var t={},n,r=0;r=0&&t.splice(n,1)}),this.animators.push(e),n&&n.animation.addAnimator(e),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(e){this.markRedraw()},e.prototype.stopAnimation=function(e,t){for(var n=this.animators,r=n.length,i=[],a=0;a0&&n.during&&a[0].during(function(e,t){n.during(t)});for(var f=0;f0||i.force&&!o.length){var C=void 0,w=void 0,T=void 0;if(s){w={},f&&(C={});for(var b=0;b0}var mq=`__zr_style_`+Math.round(Math.random()*10),hq={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:`#000`,opacity:1,blend:`source-over`},gq={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};hq[mq]=!0;var _q=[`z`,`z2`,`invisible`],Cbe=[`invisible`],vq=function(e){bW(t,e);function t(t){return e.call(this,t)||this}return t.prototype._init=function(t){for(var n=gU(t),r=0;r1e-4){s[0]=e-n,s[1]=t-r,c[0]=e+n,c[1]=t+r;return}if(Eq[0]=wq(i)*n+e,Eq[1]=Cq(i)*r+t,Dq[0]=wq(a)*n+e,Dq[1]=Cq(a)*r+t,l(s,Eq,Dq),u(c,Eq,Dq),i%=Tq,i<0&&(i+=Tq),a%=Tq,a<0&&(a+=Tq),i>a&&!o?a+=Tq:ii&&(Oq[0]=wq(p)*n+e,Oq[1]=Cq(p)*r+t,l(s,Oq,s),u(c,Oq,c))}var Mq={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Nq=[],Pq=[],Fq=[],Iq=[],Lq=[],Rq=[],zq=Math.min,Bq=Math.max,Vq=Math.cos,Hq=Math.sin,Uq=Math.abs,Wq=Math.PI,Gq=Wq*2,Kq=typeof Float32Array<`u`,qq=[];function Jq(e){return Math.round(e/Wq*1e8)/1e8%2*Wq}function Obe(e,t){var n=Jq(e[0]);n<0&&(n+=Gq);var r=n-e[0],i=e[1];i+=r,!t&&i-n>=Gq?i=n+Gq:t&&n-i>=Gq?i=n-Gq:!t&&n>i?i=n+(Gq-Jq(n-i)):t&&n0&&(this._ux=Uq(n/$K/e)||0,this._uy=Uq(n/$K/t)||0)},e.prototype.setDPR=function(e){this.dpr=e},e.prototype.setContext=function(e){this._ctx=e},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(e,t){return this._drawPendingPt(),this.addData(Mq.M,e,t),this._ctx&&this._ctx.moveTo(e,t),this._x0=e,this._y0=t,this._xi=e,this._yi=t,this},e.prototype.lineTo=function(e,t){var n=Uq(e-this._xi),r=Uq(t-this._yi),i=n>this._ux||r>this._uy;if(this.addData(Mq.L,e,t),this._ctx&&i&&this._ctx.lineTo(e,t),i)this._xi=e,this._yi=t,this._pendingPtDist=0;else{var a=n*n+r*r;a>this._pendingPtDist&&(this._pendingPtX=e,this._pendingPtY=t,this._pendingPtDist=a)}return this},e.prototype.bezierCurveTo=function(e,t,n,r,i,a){return this._drawPendingPt(),this.addData(Mq.C,e,t,n,r,i,a),this._ctx&&this._ctx.bezierCurveTo(e,t,n,r,i,a),this._xi=i,this._yi=a,this},e.prototype.quadraticCurveTo=function(e,t,n,r){return this._drawPendingPt(),this.addData(Mq.Q,e,t,n,r),this._ctx&&this._ctx.quadraticCurveTo(e,t,n,r),this._xi=n,this._yi=r,this},e.prototype.arc=function(e,t,n,r,i,a){this._drawPendingPt(),qq[0]=r,qq[1]=i,Obe(qq,a),r=qq[0],i=qq[1];var o=i-r;return this.addData(Mq.A,e,t,n,n,r,o,0,+!a),this._ctx&&this._ctx.arc(e,t,n,r,i,a),this._xi=Vq(i)*n+e,this._yi=Hq(i)*n+t,this},e.prototype.arcTo=function(e,t,n,r,i){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(e,t,n,r,i),this},e.prototype.rect=function(e,t,n,r){return this._drawPendingPt(),this._ctx&&this._ctx.rect(e,t,n,r),this.addData(Mq.R,e,t,n,r),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(Mq.Z);var e=this._ctx,t=this._x0,n=this._y0;return e&&e.closePath(),this._xi=t,this._yi=n,this},e.prototype.fill=function(e){e&&e.fill(),this.toStatic()},e.prototype.stroke=function(e){e&&e.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(e){if(this._saveData){var t=e.length;!(this.data&&this.data.length===t)&&Kq&&(this.data=new Float32Array(t));for(var n=0;n0&&a))for(var o=0;ol.length&&(this._expandData(),l=this.data);for(var u=0;u0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var e=[],t=0;t11&&(this.data=new Float32Array(e)))}},e.prototype.getBoundingRect=function(){Fq[0]=Fq[1]=Lq[0]=Lq[1]=Number.MAX_VALUE,Iq[0]=Iq[1]=Rq[0]=Rq[1]=-Number.MAX_VALUE;var e=this.data,t=0,n=0,r=0,i=0,a;for(a=0;an||Uq(v)>r||d===t-1)&&(m=Math.sqrt(_*_+v*v),i=h,a=g);break;case Mq.C:var y=e[d++],b=e[d++],h=e[d++],g=e[d++],x=e[d++],S=e[d++];m=ebe(i,a,y,b,h,g,x,S,10),i=x,a=S;break;case Mq.Q:var y=e[d++],b=e[d++],h=e[d++],g=e[d++];m=rbe(i,a,y,b,h,g,10),i=h,a=g;break;case Mq.A:var C=e[d++],w=e[d++],T=e[d++],E=e[d++],D=e[d++],O=e[d++],k=O+D;d+=1,p&&(o=Vq(D)*T+C,s=Hq(D)*E+w),m=Bq(T,E)*zq(Gq,Math.abs(O)),i=Vq(k)*T+C,a=Hq(k)*E+w;break;case Mq.R:o=i=e[d++],s=a=e[d++];var A=e[d++],j=e[d++];m=A*2+j*2;break;case Mq.Z:var _=o-i,v=s-a;m=Math.sqrt(_*_+v*v),i=o,a=s;break}m>=0&&(c[u++]=m,l+=m)}return this._pathLen=l,l},e.prototype.rebuildPath=function(e,t){var n=this.data,r=this._ux,i=this._uy,a=this._len,o,s,c,l,u,d,f=t<1,p,m,h=0,g=0,_,v=0,y,b;if(!(f&&(this._pathSegLen||this._calculateLength(),p=this._pathSegLen,m=this._pathLen,_=t*m,!_)))lo:for(var x=0;x0&&(e.lineTo(y,b),v=0),S){case Mq.M:o=c=n[x++],s=l=n[x++],e.moveTo(c,l);break;case Mq.L:u=n[x++],d=n[x++];var w=Uq(u-c),T=Uq(d-l);if(w>r||T>i){if(f){var E=p[g++];if(h+E>_){var D=(_-h)/E;e.lineTo(c*(1-D)+u*D,l*(1-D)+d*D);break lo}h+=E}e.lineTo(u,d),c=u,l=d,v=0}else{var O=w*w+T*T;O>v&&(y=u,b=d,v=O)}break;case Mq.C:var k=n[x++],A=n[x++],j=n[x++],M=n[x++],ee=n[x++],N=n[x++];if(f){var E=p[g++];if(h+E>_){var D=(_-h)/E;sK(c,k,j,ee,D,Nq),sK(l,A,M,N,D,Pq),e.bezierCurveTo(Nq[1],Pq[1],Nq[2],Pq[2],Nq[3],Pq[3]);break lo}h+=E}e.bezierCurveTo(k,A,j,M,ee,N),c=ee,l=N;break;case Mq.Q:var k=n[x++],A=n[x++],j=n[x++],M=n[x++];if(f){var E=p[g++];if(h+E>_){var D=(_-h)/E;dK(c,k,j,D,Nq),dK(l,A,M,D,Pq),e.quadraticCurveTo(Nq[1],Pq[1],Nq[2],Pq[2]);break lo}h+=E}e.quadraticCurveTo(k,A,j,M),c=j,l=M;break;case Mq.A:var P=n[x++],F=n[x++],te=n[x++],ne=n[x++],re=n[x++],ie=n[x++],ae=n[x++],oe=!n[x++],se=te>ne?te:ne,ce=Uq(te-ne)>.001,le=re+ie,ue=!1;if(f){var E=p[g++];h+E>_&&(le=re+ie*(_-h)/E,ue=!0),h+=E}if(ce&&e.ellipse?e.ellipse(P,F,te,ne,ae,re,le,oe):e.arc(P,F,se,re,le,oe),ue)break lo;C&&(o=Vq(re)*te+P,s=Hq(re)*ne+F),c=Vq(le)*te+P,l=Hq(le)*ne+F;break;case Mq.R:o=c=n[x],s=l=n[x+1],u=n[x++],d=n[x++];var de=n[x++],fe=n[x++];if(f){var E=p[g++];if(h+E>_){var pe=_-h;e.moveTo(u,d),e.lineTo(u+zq(pe,de),d),pe-=de,pe>0&&e.lineTo(u+de,d+zq(pe,fe)),pe-=fe,pe>0&&e.lineTo(u+Bq(de-pe,0),d+fe),pe-=de,pe>0&&e.lineTo(u,d+Bq(fe-pe,0));break lo}h+=E}e.rect(u,d,de,fe);break;case Mq.Z:if(f){var E=p[g++];if(h+E>_){var D=(_-h)/E;e.lineTo(c*(1-D)+o*D,l*(1-D)+s*D);break lo}h+=E}e.closePath(),c=o,l=s}}},e.prototype.clone=function(){var t=new e,n=this.data;return t.data=n.slice?n.slice():Array.prototype.slice.call(n),t._len=this._len,t},e.prototype.canSave=function(){return!!this._saveData},e.CMD=Mq,e.initDefaultProps=(function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0})(),e}();function Xq(e,t,n,r,i,a,o){if(i===0)return!1;var s=i,c=0,l=e;if(o>t+s&&o>r+s||oe+s&&a>n+s||at+d&&u>r+d&&u>a+d&&u>s+d||ue+d&&l>n+d&&l>i+d&&l>o+d||lt+l&&c>r+l&&c>a+l||ce+l&&s>n+l&&s>i+l||sn||u+li&&(i+=$q);var f=Math.atan2(c,s);return f<0&&(f+=$q),f>=r&&f<=i||f+$q>=r&&f+$q<=i}function eJ(e,t,n,r,i,a){if(a>t&&a>r||ai?s:0}var tJ=Yq.CMD,nJ=Math.PI*2,Mbe=1e-4;function Nbe(e,t){return Math.abs(e-t)t&&l>r&&l>a&&l>s||l1&&Pbe(),p=rK(t,r,a,s,iJ[0]),f>1&&(m=rK(t,r,a,s,iJ[1]))),f===2?gt&&s>r&&s>a||s=0&&l<=1){for(var u=0,d=cK(t,r,a,l),f=0;fn||s<-n)return 0;var c=Math.sqrt(n*n-s*s);rJ[0]=-c,rJ[1]=c;var l=Math.abs(r-i);if(l<1e-4)return 0;if(l>=nJ-1e-4){r=0,i=nJ;var u=a?1:-1;return o>=rJ[0]+e&&o<=rJ[1]+e?u:0}if(r>i){var d=r;r=i,i=d}r<0&&(r+=nJ,i+=nJ);for(var f=0,p=0;p<2;p++){var m=rJ[p];if(m+e>o){var h=Math.atan2(s,m),u=a?1:-1;h<0&&(h=nJ+h),(h>=r&&h<=i||h+nJ>=r&&h+nJ<=i)&&(h>Math.PI/2&&h1&&(n||(s+=eJ(c,l,u,d,r,i))),g&&(c=a[m],l=a[m+1],u=c,d=l),h){case tJ.M:u=a[m++],d=a[m++],c=u,l=d;break;case tJ.L:if(n){if(Xq(c,l,a[m],a[m+1],t,r,i))return!0}else s+=eJ(c,l,a[m],a[m+1],r,i)||0;c=a[m++],l=a[m++];break;case tJ.C:if(n){if(kbe(c,l,a[m++],a[m++],a[m++],a[m++],a[m],a[m+1],t,r,i))return!0}else s+=Fbe(c,l,a[m++],a[m++],a[m++],a[m++],a[m],a[m+1],r,i)||0;c=a[m++],l=a[m++];break;case tJ.Q:if(n){if(Abe(c,l,a[m++],a[m++],a[m],a[m+1],t,r,i))return!0}else s+=Ibe(c,l,a[m++],a[m++],a[m],a[m+1],r,i)||0;c=a[m++],l=a[m++];break;case tJ.A:var _=a[m++],v=a[m++],y=a[m++],b=a[m++],x=a[m++],S=a[m++];m+=1;var C=!!(1-a[m++]);f=Math.cos(x)*y+_,p=Math.sin(x)*b+v,g?(u=f,d=p):s+=eJ(c,l,f,p,r,i);var w=(r-_)*b/y+_;if(n){if(jbe(_,v,b,x,x+S,C,t,w,i))return!0}else s+=Lbe(_,v,b,x,x+S,C,w,i);c=Math.cos(x+S)*y+_,l=Math.sin(x+S)*b+v;break;case tJ.R:u=c=a[m++],d=l=a[m++];var T=a[m++],E=a[m++];if(f=u+T,p=d+E,n){if(Xq(u,d,f,d,t,r,i)||Xq(f,d,f,p,t,r,i)||Xq(f,p,u,p,t,r,i)||Xq(u,p,u,d,t,r,i))return!0}else s+=eJ(f,d,f,p,r,i),s+=eJ(u,p,u,d,r,i);break;case tJ.Z:if(n){if(Xq(c,l,u,d,t,r,i))return!0}else s+=eJ(c,l,u,d,r,i);c=u,l=d;break}}return!n&&!Nbe(l,d)&&(s+=eJ(c,l,u,d,r,i)||0),s!==0}function Rbe(e,t,n){return aJ(e,0,!1,t,n)}function zbe(e,t,n,r){return aJ(e,t,!0,n,r)}var oJ=sU({fill:`#000`,stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:`butt`,miterLimit:10,strokeNoScale:!1,strokeFirst:!1},hq),Bbe={style:sU({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},gq.style)},sJ=UG.concat([`invisible`,`culling`,`z`,`z2`,`zlevel`,`parent`]),cJ=function(e){bW(t,e);function t(t){return e.call(this,t)||this}return t.prototype.update=function(){var n=this;e.prototype.update.call(this);var r=this.style;if(r.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(e){n.buildPath(e,n.shape)}),i.silent=!0;var a=i.style;for(var o in r)a[o]!==r[o]&&(a[o]=r[o]);a.fill=r.fill?r.decal:null,a.decal=null,a.shadowColor=null,r.strokeFirst&&(a.stroke=null);for(var s=0;s.5?tq:t>.2?gbe:nq}else if(e)return nq}return tq},t.prototype.getInsideTextStroke=function(e){var t=this.style.fill;if(SU(t)){var n=this.__zr;if(!!(n&&n.isDarkMode())==AK(e,0)<.4)return t}},t.prototype.buildPath=function(e,t,n){},t.prototype.pathUpdated=function(){this.__dirty&=-5},t.prototype.getUpdatedPathProxy=function(e){return!this.path&&this.createPathProxy(),this.path.beginPath(),this.buildPath(this.path,this.shape,e),this.path},t.prototype.createPathProxy=function(){this.path=new Yq(!1)},t.prototype.hasStroke=function(){var e=this.style,t=e.stroke;return!(t==null||t===`none`||!(e.lineWidth>0))},t.prototype.hasFill=function(){var e=this.style.fill;return e!=null&&e!==`none`},t.prototype.getBoundingRect=function(){var e=this._rect,t=this.style,n=!e;if(n){var r=!1;this.path||(r=!0,this.createPathProxy());var i=this.path;(r||this.__dirty&4)&&(i.beginPath(),this.buildPath(i,this.shape,!1),this.pathUpdated()),e=i.getBoundingRect()}if(this._rect=e,this.hasStroke()&&this.path&&this.path.len()>0){var a=this._rectStroke||=e.clone();if(this.__dirty||n){a.copy(e);var o=t.strokeNoScale?this.getLineScale():1,s=t.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;s=Math.max(s,c??4)}o>1e-10&&(a.width+=s/o,a.height+=s/o,a.x-=s/o/2,a.y-=s/o/2)}return a}return e},t.prototype.contain=function(e,t){var n=this.transformCoordToLocal(e,t),r=this.getBoundingRect(),i=this.style;if(e=n[0],t=n[1],r.contain(e,t)){var a=this.path;if(this.hasStroke()){var o=i.lineWidth,s=i.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(o=Math.max(o,this.strokeContainThreshold)),zbe(a,o/s,e,t)))return!0}if(this.hasFill())return Rbe(a,e,t)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=4,this._rect&&=null,this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(e){return this.animate(`shape`,e)},t.prototype.updateDuringAnimation=function(e){e===`style`?this.dirtyStyle():e===`shape`?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(t,n){t===`shape`?this.setShape(n):e.prototype.attrKV.call(this,t,n)},t.prototype.setShape=function(e,t){var n=this.shape;return n||=this.shape={},typeof e==`string`?n[e]=t:aU(n,e),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&4)},t.prototype.createStyle=function(e){return JU(oJ,e)},t.prototype._innerSaveToNormal=function(t){e.prototype._innerSaveToNormal.call(this,t);var n=this._normalState;t.shape&&!n.shape&&(n.shape=aU({},this.shape))},t.prototype._applyStateObj=function(t,n,r,i,a,o){if(e.prototype._applyStateObj.call(this,t,n,r,i,a,o),this.__inHover!==1){var s=!(n&&i),c;if(n&&n.shape?a?i?c=n.shape:(c=aU({},r.shape),aU(c,n.shape)):(c=aU({},i?this.shape:r.shape),aU(c,n.shape)):s&&(c=r.shape),c)if(a){this.shape=aU({},this.shape);for(var l={},u=gU(c),d=0;di&&(d=s+c,s*=i/d,c*=i/d),l+u>i&&(d=l+u,l*=i/d,u*=i/d),c+l>a&&(d=c+l,c*=a/d,l*=a/d),s+u>a&&(d=s+u,s*=a/d,u*=a/d),e.moveTo(n+s,r),e.lineTo(n+i-c,r),c!==0&&e.arc(n+i-c,r+c,c,-Math.PI/2,0),e.lineTo(n+i,r+a-l),l!==0&&e.arc(n+i-l,r+a-l,l,0,Math.PI/2),e.lineTo(n+u,r+a),u!==0&&e.arc(n+u,r+a-u,u,Math.PI/2,Math.PI),e.lineTo(n,r+s),s!==0&&e.arc(n+s,r+s,s,Math.PI,Math.PI*1.5),e.closePath()}var dJ=Math.round;function fJ(e,t,n){if(t){var r=t.x1,i=t.x2,a=t.y1,o=t.y2;e.x1=r,e.x2=i,e.y1=a,e.y2=o;var s=n&&n.lineWidth;return s?(dJ(r*2)===dJ(i*2)&&(e.x1=e.x2=mJ(r,s,!0)),dJ(a*2)===dJ(o*2)&&(e.y1=e.y2=mJ(a,s,!0)),e):e}}function pJ(e,t,n){if(t){var r=t.x,i=t.y,a=t.width,o=t.height;e.x=r,e.y=i,e.width=a,e.height=o;var s=n&&n.lineWidth;return s?(e.x=mJ(r,s,!0),e.y=mJ(i,s,!0),e.width=Math.max(mJ(r+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(mJ(i+o,s,!1)-e.y,o===0?0:1),e):e}}function mJ(e,t,n){if(!t)return e;var r=dJ(e*2);return(r+dJ(t))%2==0?r/2:(r+(n?1:-1))/2}var Kbe=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),qbe={},hJ=function(e){bW(t,e);function t(t){return e.call(this,t)||this}return t.prototype.getDefaultShape=function(){return new Kbe},t.prototype.buildPath=function(e,t){var n,r,i,a;if(this.subPixelOptimize){var o=pJ(qbe,t,this.style);n=o.x,r=o.y,i=o.width,a=o.height,o.r=t.r,t=o}else n=t.x,r=t.y,i=t.width,a=t.height;t.r?Gbe(e,t):e.rect(n,r,i,a)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(cJ);hJ.prototype.type=`rect`;var gJ={fill:`#000`},_J=2,vJ={},Jbe={style:sU({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},gq.style)},yJ=function(e){bW(t,e);function t(t){var n=e.call(this)||this;return n.type=`text`,n._children=[],n._defaultStyle=gJ,n.attr(t),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var t=0;t0,T=0;T=0&&(D=y[E],D.align===`right`);)this._placeToken(D,e,x,m,T,`right`,g),S-=D.width,T-=D.width,E--;for(w+=(s-(w-p)-(h-T)-S)/2;C<=E;)D=y[C],this._placeToken(D,e,x,m,w+D.width/2,`center`,g),w+=D.width,C++;m+=x}},t.prototype._placeToken=function(e,t,n,r,i,a,o){var s=t.rich[e.styleName]||{};s.text=e.text;var c=e.verticalAlign,l=r+n/2;c===`top`?l=r+e.height/2:c===`bottom`&&(l=r+n-e.height/2),!e.isLineHolder&&DJ(s)&&this._renderBackground(s,t,a===`right`?i-e.width:a===`center`?i-e.width/2:i,l-e.height/2,e.width,e.height);var u=!!s.backgroundColor,d=e.textPadding;d&&(i=TJ(i,a,d),l-=e.height/2-d[0]-e.innerHeight/2);var f=this._getOrCreateChild(lJ),p=f.createStyle();f.useStyle(p);var m=this._defaultStyle,h=!1,g=0,_=!1,v=wJ(`fill`in s?s.fill:`fill`in t?t.fill:(h=!0,m.fill)),y=CJ(`stroke`in s?s.stroke:`stroke`in t?t.stroke:!u&&!o&&(!m.autoStroke||h)?(g=_J,_=!0,m.stroke):null),b=s.textShadowBlur>0||t.textShadowBlur>0;p.text=e.text,p.x=i,p.y=l,b&&(p.shadowBlur=s.textShadowBlur||t.textShadowBlur||0,p.shadowColor=s.textShadowColor||t.textShadowColor||`transparent`,p.shadowOffsetX=s.textShadowOffsetX||t.textShadowOffsetX||0,p.shadowOffsetY=s.textShadowOffsetY||t.textShadowOffsetY||0),p.textAlign=a,p.textBaseline=`middle`,p.font=e.font||`12px sans-serif`,p.opacity=PU(s.opacity,t.opacity,1),xJ(p,s),y&&(p.lineWidth=PU(s.lineWidth,t.lineWidth,g),p.lineDash=NU(s.lineDash,t.lineDash),p.lineDashOffset=t.lineDashOffset||0,p.stroke=y),v&&(p.fill=v),f.setBoundingRect(NG(p,e.contentWidth,e.contentHeight,_?0:null))},t.prototype._renderBackground=function(e,t,n,r,i,a){var o=e.backgroundColor,s=e.borderWidth,c=e.borderColor,l=o&&o.image,u=o&&!l,d=e.borderRadius,f=this,p,m;if(u||e.lineHeight||s&&c){p=this._getOrCreateChild(hJ),p.useStyle(p.createStyle()),p.style.fill=null;var h=p.shape;h.x=n,h.y=r,h.width=i,h.height=a,h.r=d,p.dirtyShape()}if(u){var g=p.style;g.fill=o||null,g.fillOpacity=NU(e.fillOpacity,1)}else if(l){m=this._getOrCreateChild(uJ),m.onload=function(){f.dirtyStyle()};var _=m.style;_.image=o.image,_.x=n,_.y=r,_.width=i,_.height=a}if(s&&c){var g=p.style;g.lineWidth=s,g.stroke=c,g.strokeOpacity=NU(e.strokeOpacity,1),g.lineDash=e.borderDash,g.lineDashOffset=e.borderDashOffset||0,p.strokeContainThreshold=0,p.hasFill()&&p.hasStroke()&&(g.strokeFirst=!0,g.lineWidth*=2)}var v=(p||m).style;v.shadowBlur=e.shadowBlur||0,v.shadowColor=e.shadowColor||`transparent`,v.shadowOffsetX=e.shadowOffsetX||0,v.shadowOffsetY=e.shadowOffsetY||0,v.opacity=PU(e.opacity,t.opacity,1)},t.makeFont=function(e){var t=``;return Qbe(e)&&(t=[e.fontStyle,e.fontWeight,Zbe(e.fontSize),e.fontFamily||`sans-serif`].join(` `)),t&&RU(t)||e.textFont||e.font},t}(vq),Ybe={left:!0,right:1,center:1},Xbe={top:1,bottom:1,middle:1},bJ=[`fontStyle`,`fontWeight`,`fontSize`,`fontFamily`];function Zbe(e){return typeof e==`string`&&(e.indexOf(`px`)!==-1||e.indexOf(`rem`)!==-1||e.indexOf(`em`)!==-1)?e:isNaN(+e)?`12px`:e+`px`}function xJ(e,t){for(var n=0;n0){if(e<=i)return o;if(e>=a)return s}else if(e>=i)return o;else if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/c*l+o}var BJ=rxe;function rxe(e,t,n){switch(e){case`center`:case`middle`:e=`50%`;break;case`left`:case`top`:e=`0%`;break;case`right`:case`bottom`:e=`100%`;break}return VJ(e,t,n)}function VJ(e,t,n){return SU(e)?ixe(e)?parseFloat(e)/100*t+(n||0):parseFloat(e):e==null?NaN:+e}function ixe(e){return!!exe(e).match(/%$/)}function HJ(e,t,n){return isNaN(t)?n?``+e:+e:(t=AJ(jJ(0,t),kJ),e=(+e).toFixed(t),n?e:+e)}function UJ(e){return e.sort(function(e,t){return e-t}),e}function WJ(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,n=0;n<15;n++,t*=10)if(NJ(e*t)/t===e)return n}return axe(e)}function axe(e){var t=e.toString().toLowerCase(),n=t.indexOf(`e`),r=n>0?+t.slice(n+1):0,i=n>0?n:t.length,a=t.indexOf(`.`);return jJ(0,(a<0?0:i-1-a)-r)}function oxe(e,t,n){var r=MJ(e[1]-e[0]);if(!isFinite(r)||r===0)return NaN;var i=LJ(2*MJ(n||1)*MJ(r))/RJ,a=LJ(MJ(t))/RJ,o=jJ(0,FJ(-i+a));return isFinite(o)||(o=NaN),o}function sxe(e,t){var n=jJ(WJ(e),WJ(t)),r=e+t;return n>kJ?r:HJ(r,n)}var GJ=IJ(2,53)-1;function KJ(e){var t=txe*2;return(e%t+t)%t}function qJ(e){return e>-OJ&&e=10&&t++,t}function ZJ(e,t){var n=XJ(e),r=IJ(10,n),i=e/r;return e=(t===2?1:t?i<1.5?1:i<2.5?2:i<4?3:i<7?5:10:i<1?1:i<2?2:i<3?3:i<5?5:10)*r,HJ(e,-n)}function QJ(e){var t=parseFloat(e);return t==e&&(t!==0||!SU(e)||e.indexOf(`x`)<=0)?t:NaN}function lxe(e){return!isNaN(QJ(e))}function $J(){return NJ(nxe()*9)}function eY(e,t){return t===0?e:eY(t,e%t)}function tY(e,t){return e==null?t:t==null?e:e*t/eY(e,t)}function nY(e){return e!=null&&isFinite(e)}var uxe=`[ECharts] `,rY={},dxe=typeof console<`u`&&console.warn&&console.log;function fxe(e,t,n){if(dxe){if(n){if(rY[t])return;rY[t]=!0}console[e](uxe+t)}}function iY(e,t){fxe(`error`,e,t)}function aY(e){throw Error(e)}function oY(e,t,n){return(t-e)*n+e}var sY=`series\0`,pxe=`\0_ec_\0`;function cY(e){return e instanceof Array?e:e==null?[]:[e]}function lY(e,t,n){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var r=0,i=n.length;r0?e.length:0),this.item=null,this.key=NaN,this},e.prototype.next=function(){return(this._step>0?this._idx=this._end)?(this.item=this._list[this._idx],this.key=this._idx+=this._step,!0):!1},e})();function wY(){return[1/0,-1/0]}function TY(e,t){OY(t)&&(te[1]&&(e[1]=t))}function EY(e,t){OY(t)&&te[1]&&(e[1]=t)}function kxe(e,t){kY(t[0],t[1])&&(t[0]e[1]&&(e[1]=t[1]))}function OY(e){return e!=null&&isFinite(e)}function kY(e,t){return OY(e)&&OY(t)&&e<=t}function Axe(e){var t=e[1]-e[0];return isFinite(t)&&t>=0}function jxe(e){kY(e[0],e[1])&&e[0]>e[1]&&(e[0]=e[1])}function AY(){var e=`__ec_once_`+Mxe++;return function(t,n){XU(t,e)||(t[e]=1,n())}}var Mxe=$J();function jY(e,t,n){var r=KU(),i=0;$(e,function(a){var o=t(a),s=r.get(o)||0;n&&n(a,s),!s&&!n&&(e[i++]=a),r.set(o,s+1)}),n||(e.length=i)}function Nxe(e){return e.value+``}function Pxe(e){return e+``}function Fxe(e,t){return NU(t,!0)?e.seriesIndex+2:0}function MY(e,t,n){var r=e.getData().count();return{progressiveRender:n.progressiveEnabled&&t.incrementalPrepareRender&&r>=n.threshold,large:e.get(`large`)&&r>=e.get(`largeThreshold`),modDataCount:e.get(`progressiveChunkMode`)===`mod`?e.getData().count():null}}function NY(e){return{overallReset:e}}var PY=vY(),Ixe=function(e,t,n,r){if(r){var i=PY(r);i.dataIndex=n,i.dataType=t,i.seriesIndex=e,i.ssrType=`chart`,r.type===`group`&&r.traverse(function(r){var i=PY(r);i.seriesIndex=e,i.dataIndex=n,i.dataType=t,i.ssrType=`chart`})}},FY=KU([`tooltip`,`label`,`itemName`,`itemId`,`itemGroupId`,`itemChildGroupId`,`seriesName`]),IY=`original`,LY=`arrayRows`,RY=`objectRows`,zY=`keyedColumns`,BY=`typedArray`,Lxe=`unknown`,VY=`column`,Rxe=[`getDom`,`getZr`,`getWidth`,`getHeight`,`getDevicePixelRatio`,`dispatchAction`,`isSSR`,`isDisposed`,`on`,`off`,`getDataURL`,`getConnectedDataURL`,`getOption`,`getId`,`updateLabelLayout`],HY=function(){function e(e){$(Rxe,function(t){this[t]=vU(e[t],e)},this)}return e}();function zxe(e,t){return t.mainType===`series`?e.getViewOfSeriesModel(t):e.getViewOfComponentModel(t)}var UY=1,WY={},GY=vY(),KY=vY(),qY=[`emphasis`,`blur`,`select`],JY=[`normal`,`emphasis`,`blur`,`select`],YY=`highlight`,XY=`downplay`,ZY=`select`,QY=`unselect`,$Y=`toggleSelect`,eX=`selectchanged`;function tX(e){return e!=null&&e!==`none`}function nX(e,t,n){e.onHoverStateChange&&(e.hoverState||0)!==n&&e.onHoverStateChange(t),e.hoverState=n}function rX(e){nX(e,`emphasis`,2)}function iX(e){e.hoverState===2&&nX(e,`normal`,0)}function aX(e){nX(e,`blur`,1)}function oX(e){e.hoverState===1&&nX(e,`normal`,0)}function Bxe(e){e.selected=!0}function Vxe(e){e.selected=!1}function sX(e,t,n){t(e,n)}function cX(e,t,n){sX(e,t,n),e.isGroup&&e.traverse(function(e){sX(e,t,n)})}function lX(e,t){switch(t){case`emphasis`:e.hoverState=2;break;case`normal`:e.hoverState=0;break;case`blur`:e.hoverState=1;break;case`select`:e.selected=!0}}function Hxe(e,t,n,r){for(var i=e.style,a={},o=0;o=0,a=!1;if(e instanceof cJ){var o=GY(e),s=i&&o.selectFill||o.normalFill,c=i&&o.selectStroke||o.normalStroke;if(tX(s)||tX(c)){r||={};var l=r.style||{};l.fill===`inherit`?(a=!0,r=aU({},r),l=aU({},l),l.fill=s):!tX(l.fill)&&tX(s)?(a=!0,r=aU({},r),l=aU({},l),l.fill=MK(s)):!tX(l.stroke)&&tX(c)&&(a||(r=aU({},r),l=aU({},l)),l.stroke=MK(c)),r.style=l}}if(r&&r.z2==null){a||(r=aU({},r));var u=e.z2EmphasisLift;r.z2=e.z2+(u??10)}return r}function Wxe(e,t,n){if(n&&n.z2==null){n=aU({},n);var r=e.z2SelectLift;n.z2=e.z2+(r??9)}return n}function Gxe(e,t,n){var r=cU(e.currentStates,t)>=0,i=e.style.opacity,a=r?null:Hxe(e,[`opacity`],t,{opacity:1});n||={};var o=n.style||{};return o.opacity??(n=aU({},n),o=aU({opacity:r?i:a.opacity*.1},o),n.style=o),n}function uX(e,t){var n=this.states[e];if(this.style){if(e===`emphasis`)return Uxe(this,e,t,n);if(e===`blur`)return Gxe(this,e,n);if(e===`select`)return Wxe(this,e,n)}return n}function Kxe(e){e.stateProxy=uX;var t=e.getTextContent(),n=e.getTextGuideLine();t&&(t.stateProxy=uX),n&&(n.stateProxy=uX)}function dX(e,t){!vX(e,t)&&!e.__highByOuter&&cX(e,rX)}function fX(e,t){!vX(e,t)&&!e.__highByOuter&&cX(e,iX)}function pX(e,t){e.__highByOuter|=1<<(t||0),cX(e,rX)}function mX(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&cX(e,iX)}function qxe(e){cX(e,aX)}function hX(e){cX(e,oX)}function gX(e){cX(e,Bxe)}function _X(e){cX(e,Vxe)}function vX(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function yX(e){var t=e.getModel(),n=[],r=[];t.eachComponent(function(t,i){var a=KY(i),o=zxe(e,i),s=t===`series`;!s&&r.push(o),a.isBlured&&(o.group.traverse(function(e){oX(e)}),s&&n.push(i)),a.isBlured=!1}),$(r,function(e){e&&e.toggleBlurSeries&&e.toggleBlurSeries(n,!1,t)})}function bX(e,t,n,r){var i=r.getModel();n||=`coordinateSystem`;function a(e,t){for(var n=0;n0){var a={dataIndex:i,seriesIndex:e.seriesIndex};r!=null&&(a.dataType=r),t.push(a)}})}),t}function wX(e,t,n){OX(e,!0),cX(e,Kxe),eSe(e,t,n)}function $xe(e){OX(e,!1)}function TX(e,t,n,r){r?$xe(e):wX(e,t,n)}function eSe(e,t,n){var r=PY(e);t==null?r.focus&&=null:(r.focus=t,r.blurScope=n)}var EX=[`emphasis`,`blur`,`select`],tSe={itemStyle:`getItemStyle`,lineStyle:`getLineStyle`,areaStyle:`getAreaStyle`};function DX(e,t,n,r){n||=`itemStyle`;for(var i=0;i1&&(o*=PX(m),s*=PX(m));var h=(i===a?-1:1)*PX((o*o*(s*s)-o*o*(p*p)-s*s*(f*f))/(o*o*(p*p)+s*s*(f*f)))||0,g=h*o*p/s,_=h*-s*f/o,v=(e+n)/2+IX(d)*g-FX(d)*_,y=(t+r)/2+FX(d)*g+IX(d)*_,b=BX([1,0],[(f-g)/o,(p-_)/s]),x=[(f-g)/o,(p-_)/s],S=[(-1*f-g)/o,(-1*p-_)/s],C=BX(x,S);if(zX(x,S)<=-1&&(C=LX),zX(x,S)>=1&&(C=0),C<0){var w=Math.round(C/LX*1e6)/1e6;C=LX*2+w%2*LX}u.addData(l,v,y,o,s,b,C,d,a)}var sSe=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,cSe=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function lSe(e){var t=new Yq;if(!e)return t;var n=0,r=0,i=n,a=r,o,s=Yq.CMD,c=e.match(sSe);if(!c)return t;for(var l=0;l=0&&(n.splice(r,0,e),this._doAdd(e))}return this},t.prototype.replace=function(e,t){var n=cU(this._children,e);return n>=0&&this.replaceAt(t,n),this},t.prototype.replaceAt=function(e,t){var n=this._children,r=n[t];if(e&&e!==this&&e.parent!==this&&e!==r){n[t]=e,r.parent=null;var i=this.__zr;i&&r.removeSelfFromZr(i),this._doAdd(e)}return this},t.prototype._doAdd=function(e){e.parent&&e.parent.remove(e),e.parent=this;var t=this.__zr;t&&t!==e.__zr&&e.addSelfToZr(t),t&&t.refresh()},t.prototype.remove=function(e){var t=this.__zr,n=this._children,r=cU(n,e);return r<0?this:(n.splice(r,1),e.parent=null,t&&e.removeSelfFromZr(t),t&&t.refresh(),this)},t.prototype.removeAll=function(){for(var e=this._children,t=this.__zr,n=0;nA*A+j*j&&(w=E,T=D),{cx:w,cy:T,x0:-u,y0:-d,x1:w*(i/x-1),y1:T*(i/x-1)}}function _Se(e){var t;if(bU(e)){var n=e.length;if(!n)return e;t=n===1?[e[0],e[0],0,0]:n===2?[e[0],e[0],e[1],e[1]]:n===3?e.concat(e[2]):e}else t=[e,e,e,e];return t}function vSe(e,t){var n,r=tZ(t.r,0),i=tZ(t.r0||0,0),a=r>0;if(!(!a&&!(i>0))){if(a||(r=i,i=0),i>r){var o=r;r=i,i=o}var s=t.startAngle,c=t.endAngle;if(!(isNaN(s)||isNaN(c))){var l=t.cx,u=t.cy,d=!!t.clockwise,f=$X(c-s),p=f>YX&&f%YX;if(p>rZ&&(f=p),!(r>rZ))e.moveTo(l,u);else if(f>YX-rZ)e.moveTo(l+r*ZX(s),u+r*XX(s)),e.arc(l,u,r,s,c,!d),i>rZ&&(e.moveTo(l+i*ZX(c),u+i*XX(c)),e.arc(l,u,i,c,s,d));else{var m=void 0,h=void 0,g=void 0,_=void 0,v=void 0,y=void 0,b=void 0,x=void 0,S=void 0,C=void 0,w=void 0,T=void 0,E=void 0,D=void 0,O=void 0,k=void 0,A=r*ZX(s),j=r*XX(s),M=i*ZX(c),ee=i*XX(c),N=f>rZ;if(N){var P=t.cornerRadius;P&&(n=_Se(P),m=n[0],h=n[1],g=n[2],_=n[3]);var F=$X(r-i)/2;if(v=nZ(F,g),y=nZ(F,_),b=nZ(F,m),x=nZ(F,h),w=S=tZ(v,y),T=C=tZ(b,x),(S>rZ||C>rZ)&&(E=r*ZX(c),D=r*XX(c),O=i*ZX(s),k=i*XX(s),frZ){var ce=nZ(g,w),le=nZ(_,w),ue=iZ(O,k,A,j,r,ce,d),de=iZ(E,D,M,ee,r,le,d);e.moveTo(l+ue.cx+ue.x0,u+ue.cy+ue.y0),w0&&e.arc(l+ue.cx,u+ue.cy,ce,QX(ue.y0,ue.x0),QX(ue.y1,ue.x1),!d),e.arc(l,u,r,QX(ue.cy+ue.y1,ue.cx+ue.x1),QX(de.cy+de.y1,de.cx+de.x1),!d),le>0&&e.arc(l+de.cx,u+de.cy,le,QX(de.y1,de.x1),QX(de.y0,de.x0),!d))}else e.moveTo(l+A,u+j),e.arc(l,u,r,s,c,!d);if(!(i>rZ)||!N)e.lineTo(l+M,u+ee);else if(T>rZ){var ce=nZ(m,T),le=nZ(h,T),ue=iZ(M,ee,E,D,i,-le,d),de=iZ(A,j,O,k,i,-ce,d);e.lineTo(l+ue.cx+ue.x0,u+ue.cy+ue.y0),T0&&e.arc(l+ue.cx,u+ue.cy,le,QX(ue.y0,ue.x0),QX(ue.y1,ue.x1),!d),e.arc(l,u,i,QX(ue.cy+ue.y1,ue.cx+ue.x1),QX(de.cy+de.y1,de.cx+de.x1),d),ce>0&&e.arc(l+de.cx,u+de.cy,ce,QX(de.y1,de.x1),QX(de.y0,de.x0),!d))}else e.lineTo(l+M,u+ee),e.arc(l,u,i,c,s,d)}e.closePath()}}}var ySe=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),aZ=function(e){bW(t,e);function t(t){return e.call(this,t)||this}return t.prototype.getDefaultShape=function(){return new ySe},t.prototype.buildPath=function(e,t){vSe(e,t)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(cJ);aZ.prototype.type=`sector`;var bSe=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),oZ=function(e){bW(t,e);function t(t){return e.call(this,t)||this}return t.prototype.getDefaultShape=function(){return new bSe},t.prototype.buildPath=function(e,t){var n=t.cx,r=t.cy,i=Math.PI*2;e.moveTo(n+t.r,r),e.arc(n,r,t.r,0,i,!1),e.moveTo(n+t.r0,r),e.arc(n,r,t.r0,0,i,!0)},t}(cJ);oZ.prototype.type=`ring`;function xSe(e,t,n,r){var i=[],a=[],o=[],s=[],c,l,u,d;if(r){u=[1/0,1/0],d=[-1/0,-1/0];for(var f=0,p=e.length;f=2){if(r){var a=xSe(i,r,n,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var o=i.length,s=0;s<(n?o:o-1);s++){var c=a[s*2],l=a[s*2+1],u=i[(s+1)%o];e.bezierCurveTo(c[0],c[1],l[0],l[1],u[0],u[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,d=i.length;sbZ[1]){if(i=!1,xZ.negativeSize||n)return i;var s=vZ(bZ[0]-yZ[1]),c=vZ(yZ[0]-bZ[1]);_Z(s,c)>CZ.len()&&(s=c||!xZ.bidirectional)&&(GW.scale(SZ,o,-c*r),xZ.useDir&&xZ.calcDirMTV()))}}return i},e.prototype._getProjMinMaxOnAxis=function(e,t,n){for(var r=this._axes[e],i=this._origin,a=t[0].dot(r)+i[e],o=a,s=a,c=1;c0){var d=u.duration,f=u.delay,p=u.easing,m={duration:d,delay:f||0,easing:p,done:a,force:!!a||!!o,setToFinal:!l,scope:e,during:o};s?t.animateFrom(n,m):t.animateTo(n,m)}else t.stopAnimation(),!s&&t.attr(n),o&&o(1),a&&a()}function EZ(e,t,n,r,i,a){TZ(`update`,e,t,n,r,i,a)}function DZ(e,t,n,r,i,a){TZ(`enter`,e,t,n,r,i,a)}function OZ(e){if(!e.__zr)return!0;for(var t=0;tmZ,BezierCurve:()=>pZ,BoundingRect:()=>iG,Circle:()=>KX,CompoundPath:()=>OSe,Ellipse:()=>qX,Group:()=>GX,HOVER_LAYER_FOR_INCREMENTAL:()=>2,HOVER_LAYER_FROM_THRESHOLD:()=>1,HOVER_LAYER_NO:()=>0,Image:()=>uJ,IncrementalDisplayable:()=>MSe,Line:()=>uZ,LinearGradient:()=>gZ,OrientedBoundingRect:()=>wZ,Path:()=>cJ,Point:()=>GW,Polygon:()=>cZ,Polyline:()=>lZ,RadialGradient:()=>kSe,Rect:()=>hJ,Ring:()=>oZ,Sector:()=>aZ,Text:()=>yJ,WH:()=>FZ,XY:()=>PZ,applyTransform:()=>HZ,calcZ2Range:()=>XSe,clipPointsByRect:()=>KSe,clipRectByRect:()=>qSe,createIcon:()=>GZ,decomposeTransform:()=>QSe,ensureCopyRect:()=>nQ,ensureCopyTransform:()=>rQ,expandOrShrinkRect:()=>JZ,extendPath:()=>RSe,extendShape:()=>ISe,getCurrentCanvasPainter:()=>$Se,getShapeClass:()=>zSe,getTransform:()=>USe,groupTransition:()=>WZ,initProps:()=>DZ,isBoundingRectAxisAligned:()=>eQ,isElementRemoved:()=>OZ,lineLineIntersect:()=>KZ,linePolygonIntersect:()=>JSe,makeImage:()=>RZ,makePath:()=>LZ,mergePath:()=>BSe,payloadDisableAnimation:()=>ZSe,registerShape:()=>IZ,removeElement:()=>kZ,removeElementWithFadeOut:()=>jZ,resizePath:()=>BZ,retrieveZInfo:()=>iQ,setTooltipConfig:()=>ZZ,subPixelOptimize:()=>HSe,subPixelOptimizeLine:()=>VZ,subPixelOptimizeRect:()=>VSe,transformDirection:()=>WSe,traverseElements:()=>$Z,traverseUpdateZ:()=>aQ,updateProps:()=>EZ}),NZ={},PZ=[`x`,`y`],FZ=[`width`,`height`];function ISe(e){return cJ.extend(e)}var LSe=dSe;function RSe(e,t){return LSe(e,t)}function IZ(e,t){NZ[e]=t}function zSe(e){if(NZ.hasOwnProperty(e))return NZ[e]}function LZ(e,t,n,r){var i=uSe(e,t);return n&&(r===`center`&&(n=zZ(n,i.getBoundingRect())),BZ(i,n)),i}function RZ(e,t,n){var r=new uJ({style:{image:e,x:t.x,y:t.y,width:t.width,height:t.height},onload:function(e){if(n===`center`){var i={width:e.width,height:e.height};r.setStyle(zZ(t,i))}}});return r}function zZ(e,t){var n=t.width/t.height,r=e.height*n,i;r<=e.width?i=e.height:(r=e.width,i=r/n);var a=e.x+e.width/2,o=e.y+e.height/2;return{x:a-r/2,y:o-i/2,width:r,height:i}}var BSe=fSe;function BZ(e,t){if(e.applyTransform){var n=e.getBoundingRect().calculateTransform(t);e.applyTransform(n)}}function VZ(e,t){return fJ(e,e,{lineWidth:t}),e}function VSe(e,t){return pJ(e,e,t),e}var HSe=mJ;function USe(e,t){for(var n=AW([]);e&&e!==t;)MW(n,e.getLocalTransform(),n),e=e.parent;return n}function HZ(e,t,n){return t&&!dU(t)&&(t=HG.getLocalTransform(t)),n&&(t=FW([],t)),HW([],e,t)}function WSe(e,t,n){var r=t[4]===0||t[5]===0||t[0]===0?1:MJ(2*t[4]/t[0]),i=t[4]===0||t[5]===0||t[2]===0?1:MJ(2*t[4]/t[2]),a=[e===`left`?-r:e===`right`?r:0,e===`top`?-i:e===`bottom`?i:0];return a=HZ(a,t,n),MJ(a[0])>MJ(a[1])?a[0]>0?`right`:`left`:a[1]>0?`bottom`:`top`}function UZ(e){return!e.isGroup}function GSe(e){return e.shape!=null}function WZ(e,t,n){if(!e||!t)return;function r(e){var t={};return e.traverse(function(e){UZ(e)&&e.anid&&(t[e.anid]=e)}),t}function i(e){var t={x:e.x,y:e.y,rotation:e.rotation};return GSe(e)&&(t.shape=rU(e.shape)),t}var a=r(e);t.traverse(function(e){if(UZ(e)&&e.anid){var t=a[e.anid];if(t){var r=i(e);e.attr(i(t)),EZ(e,r,n,PY(e).dataIndex)}}})}function KSe(e,t){return fU(e,function(e){var n=e[0];n=jJ(n,t.x),n=AJ(n,t.x+t.width);var r=e[1];return r=jJ(r,t.y),r=AJ(r,t.y+t.height),[n,r]})}function qSe(e,t){var n=jJ(e.x,t.x),r=AJ(e.x+e.width,t.x+t.width),i=jJ(e.y,t.y),a=AJ(e.y+e.height,t.y+t.height);if(r>=n&&a>=i)return{x:n,y:i,width:r-n,height:a-i}}function GZ(e,t,n){var r=aU({rectHover:!0},t),i=r.style={strokeNoScale:!0};if(n||={x:-1,y:-1,width:2,height:2},e)return e.indexOf(`image://`)===0?(i.image=e.slice(8),sU(i,n),new uJ(r)):LZ(e.replace(`path://`,``),r,n,`center`)}function JSe(e,t,n,r,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=qZ(p,m,u,d)/f;return!(g<0||g>1)}function qZ(e,t,n,r){return e*r-n*t}function YSe(e){return e<=1e-6&&e>=-1e-6}function JZ(e,t,n,r,i){return t==null?e:(wU(t)?YZ[0]=YZ[1]=YZ[2]=YZ[3]=t:(YZ[0]=t[0],YZ[1]=t[1],YZ[2]=t[2],YZ[3]=t[3]),r&&(YZ[0]=jJ(0,YZ[0]),YZ[1]=jJ(0,YZ[1]),YZ[2]=jJ(0,YZ[2]),YZ[3]=jJ(0,YZ[3])),n&&(YZ[0]=-YZ[0],YZ[1]=-YZ[1],YZ[2]=-YZ[2],YZ[3]=-YZ[3]),XZ(e,YZ,`x`,`width`,3,1,i&&i[0]||0),XZ(e,YZ,`y`,`height`,0,2,i&&i[1]||0),e)}var YZ=[0,0,0,0];function XZ(e,t,n,r,i,a,o){var s=t[a]+t[i],c=e[r];e[r]+=s,o=jJ(0,AJ(o,c)),e[r]=0?-t[i]:t[a]>=0?c+t[a]:MJ(s)>1e-8?(c-o)*t[i]/s:0):e[n]-=t[i]}function ZZ(e){var t=e.itemTooltipOption,n=e.componentModel,r=e.itemName,i=SU(t)?{formatter:t}:t,a=n.mainType,o=n.componentIndex,s={componentType:a,name:r,$vars:[`name`]};s[a+`Index`]=o;var c=e.formatterParamsExtra;c&&$(gU(c),function(e){XU(s,e)||(s[e]=c[e],s.$vars.push(e))});var l=PY(e.el);l.componentMainType=a,l.componentIndex=o,l.tooltipConfig={name:r,option:sU({content:r,encodeHTMLContent:!0,formatterParams:s},i)}}function QZ(e,t){var n;e.isGroup&&(n=t(e)),n||e.traverse(t)}function $Z(e,t){if(e)if(bU(e))for(var n=0;nt&&(t=r),rt&&(n=t=0),{min:n,max:t}}function aQ(e,t,n){oQ(e,t,n,-1/0)}function oQ(e,t,n,r){if(e.ignoreModelZ)return r;var i=e.getTextContent(),a=e.getTextGuideLine();if(e.isGroup)for(var o=e.childrenRef(),s=0;s1){var l=s.shift();s.length===1&&(n[o]=s[0]),this._update&&this._update(l,a)}else c===1?(n[o]=null,this._update&&this._update(s,a)):this._remove&&this._remove(a)}this._performRestAdd(i,n)},e.prototype._executeMultiple=function(){var e=this._old,t=this._new,n={},r={},i=[],a=[];this._initIndexMap(e,n,i,`_oldKeyGetter`),this._initIndexMap(t,r,a,`_newKeyGetter`);for(var o=0;o1&&d===1)this._updateManyToOne&&this._updateManyToOne(l,c),r[s]=null;else if(u===1&&d>1)this._updateOneToMany&&this._updateOneToMany(l,c),r[s]=null;else if(u===1&&d===1)this._update&&this._update(l,c),r[s]=null;else if(u>1&&d>1)this._updateManyToMany&&this._updateManyToMany(l,c),r[s]=null;else if(u>1)for(var f=0;f1)for(var o=0;ol&&(l=p)}s[0]=c,s[1]=l}},r=function(){return this._data?this._data.length/this._dimSize:0};UQ=(e={},e[LY+`_`+VY]={pure:!0,appendData:i},e[LY+`_row`]={pure:!0,appendData:function(){throw Error(`Do not support appendData when set seriesLayoutBy: "row".`)}},e[RY]={pure:!0,appendData:i},e[zY]={pure:!0,appendData:function(e){var t=this._data;$(e,function(e,n){for(var r=t[n]||(t[n]=[]),i=0;i<(e||[]).length;i++)r.push(e[i])})}},e[IY]={appendData:i},e[BY]={persistent:!1,pure:!0,appendData:function(e){this._data=e},clean:function(){this._offset+=this.count(),this._data=null}},e);function i(e){for(var t=0;tt},gte:function(e,t){return e>=t}};(function(){function e(e,t){wU(t)||aY(``),this._opFn=ECe[e],this._rvalFloat=QJ(t)}return e.prototype.evaluate=function(e){return wU(e)?this._opFn(e,this._rvalFloat):this._opFn(QJ(e),this._rvalFloat)},e})();var DCe=function(){function e(e,t){var n=e===`desc`;this._resultLT=n?1:-1,t??=n?`min`:`max`,this._incomparable=t===`min`?-1/0:1/0}return e.prototype.evaluate=function(e,t){var n=wU(e)?e:QJ(e),r=wU(t)?t:QJ(t),i=isNaN(n),a=isNaN(r);if(i&&(n=this._incomparable),a&&(r=this._incomparable),i&&a){var o=SU(e),s=SU(t);o&&(n=s?e:0),s&&(r=o?t:0)}return nr?-this._resultLT:0},e}();(function(){function e(e,t){this._rval=t,this._isEQ=e,this._rvalTypeof=typeof t,this._rvalFloat=QJ(t)}return e.prototype.evaluate=function(e){var t=e===this._rval;if(!t){var n=typeof e;n!==this._rvalTypeof&&(n===`number`||this._rvalTypeof===`number`)&&(t=QJ(e)===this._rvalFloat)}return this._isEQ?t:!t},e})();function i$(e){var t=``,n=-1/0,r=-1/0,i=1/0,a=1/0;return e&&(e.g!=null&&(t+=`G`+e.g,n=e.g),e.ge!=null&&(t+=`GE`+e.ge,r=e.ge),e.l!=null&&(t+=`L`+e.l,i=e.l),e.le!=null&&(t+=`LE`+e.le,a=e.le)),{key:t,g:n,ge:r,l:i,le:a}}function a$(e,t){return t>e.g&&t>=e.ge&&t`u`?Array:Uint32Array,kCe=typeof Uint16Array>`u`?Array:Uint16Array,o$=typeof Int32Array>`u`?Array:Int32Array,s$=typeof Float64Array>`u`?Array:Float64Array,c$={float:s$,int:o$,ordinal:Array,number:Array,time:s$},l$;function u$(e){return e>65535?OCe:kCe}function ACe(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function d$(e,t,n,r,i){var a=c$[n||`float`];if(i){var o=e[t],s=o&&o.length;if(s!==r){for(var c=new a(r),l=0;lh[1]&&(h[1]=m)}return this._rawCount=this._count=s,{start:o,end:s}},e.prototype._initDataFromProvider=function(e,t,n){for(var r=this._provider,i=this._chunks,a=this._dimensions,o=a.length,s=this._rawExtent,c=fU(a,function(e){return e.property}),l=0;lg[1]&&(g[1]=h)}}!r.persistent&&r.clean&&r.clean(),this._rawCount=this._count=t,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(e,t){if(!(t>=0&&t=0&&t=this._rawCount||e<0)return-1;if(!this._indices)return e;var t=this._indices,n=t[e];if(n!=null&&ne)i=a-1;else return a}return-1},e.prototype.getIndices=function(){var e,t=this._indices;if(t){var n=t.constructor,r=this._count;if(n===Array){e=new n(r);for(var i=0;i=l&&g<=u||isNaN(g))&&(o[s++]=p),p++}f=!0}else if(i===2){for(var m=d[r[0]],_=d[r[1]],v=e[r[1]][0],y=e[r[1]][1],h=0;h=l&&g<=u||isNaN(g))&&(b>=v&&b<=y||isNaN(b))&&(o[s++]=p),p++}f=!0}}if(!f)if(i===1)for(var h=0;h=l&&g<=u||isNaN(g))&&(o[s++]=x)}else for(var h=0;he[w][1])&&(S=!1)}S&&(o[s++]=t.getRawIndex(h))}return sg[1]&&(g[1]=h)}}}},e.prototype.lttbDownSample=function(e,t){var n=this.clone([e],!0),r=n._chunks[e],i=this.count(),a=0,o=Math.floor(1/t),s=this.getRawIndex(0),c,l,u,d=new(u$(this._rawCount))(Math.min((Math.ceil(i/o)+2)*2,i));d[a++]=s;for(var f=1;fc&&(c=l,u=v)}T>0&&To&&(m=o-l);for(var h=0;hp&&(p=g,f=l+h)}var _=this.getRawIndex(u),v=this.getRawIndex(f);ul-p&&(s=l-p,o.length=s);for(var m=0;mu[1]&&(u[1]=h),d[f++]=g}return i._count=f,i._indices=d,i._updateGetRawIdx(),i},e.prototype.each=function(e,t){if(this._count)for(var n=e.length,r=this._chunks,i=0,a=this.count();id&&(d=p))}return o[c]=[u,d]},e.prototype.getRawDataItem=function(e){var t=this.getRawIndex(e);if(this._provider.persistent)return this._provider.getItem(t);for(var n=[],r=this._chunks,i=0;i=0?this._indices[e]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function e(e,t,n,r){return r$(e[r],this._dimensions[r])}l$={arrayRows:e,objectRows:function(e,t,n,r){return r$(e[t],this._dimensions[r])},keyedColumns:e,original:function(e,t,n,r){var i=e&&(e.value==null?e:e.value);return r$(i instanceof Array?i[r]:i,this._dimensions[r])},typedArray:function(e,t,n,r){return e[r]}}}(),e}(),jCe=vY(),MCe={float:`f`,int:`i`,ordinal:`o`,number:`n`,time:`t`},p$=function(){function e(e){this.dimensions=e.dimensions,this._dimOmitted=e.dimensionOmitted,this.source=e.source,this._fullDimCount=e.fullDimensionCount,this._updateDimOmitted(e.dimensionOmitted)}return e.prototype.isDimensionOmitted=function(){return this._dimOmitted},e.prototype._updateDimOmitted=function(e){this._dimOmitted=e,e&&(this._dimNameMap||=g$(this.source))},e.prototype.getSourceDimensionIndex=function(e){return NU(this._dimNameMap.get(e),-1)},e.prototype.getSourceDimension=function(e){var t=this.source.dimensionsDefine;if(t)return t[e]},e.prototype.makeStoreSchema=function(){for(var e=this._fullDimCount,t=RQ(this.source),n=!_$(e),r=``,i=[],a=0,o=0;a30}var v$=TU,y$=fU,NCe=typeof Int32Array>`u`?Array:Int32Array,PCe=`e\0\0`,b$=-1,FCe=[`hasItemOption`,`_nameList`,`_idList`,`_invertedIndicesMap`,`_dimSummary`,`userOutput`,`_rawData`,`_dimValueGetter`,`_nameDimIdx`,`_idDimIdx`,`_nameRepeatCount`],ICe=[`_approximateExtent`],x$,S$,C$,w$,T$,E$,D$,LCe=function(){function e(e,t){this.type=`list`,this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=[`cloneShallow`,`downSample`,`minmaxDownSample`,`lttbDownSample`,`map`],this.CHANGABLE_METHODS=[`filterSelf`,`selectRange`],this.DOWNSAMPLE_METHODS=[`downSample`,`minmaxDownSample`,`lttbDownSample`];var n,r=!1;m$(e)?(n=e.dimensions,this._dimOmitted=e.isDimensionOmitted(),this._schema=e):(r=!0,n=e),n||=[`x`,`y`];for(var i={},a=[],o={},s=!1,c={},l=0;l=t)){var n=this._store.getProvider();this._updateOrdinalMeta();var r=this._nameList,i=this._idList;if(n.getSource().sourceFormat===`original`&&!n.pure)for(var a=[],o=e;o0},e.prototype.ensureUniqueItemVisual=function(e,t){var n=this._itemVisuals,r=n[e];r||=n[e]={};var i=r[t];return i??(i=this.getVisual(t),bU(i)?i=i.slice():v$(i)&&(i=aU({},i)),r[t]=i),i},e.prototype.setItemVisual=function(e,t,n){var r=this._itemVisuals[e]||{};this._itemVisuals[e]=r,v$(t)?aU(r,t):r[t]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(e,t){v$(e)?aU(this._layout,e):this._layout[e]=t},e.prototype.getLayout=function(e){return this._layout[e]},e.prototype.getItemLayout=function(e){return this._itemLayouts[e]},e.prototype.setItemLayout=function(e,t,n){this._itemLayouts[e]=n?aU(this._itemLayouts[e]||{},t):t},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(e,t){Ixe(this.hostModel&&this.hostModel.seriesIndex,this.dataType,e,t),this._graphicEls[e]=t},e.prototype.getItemGraphicEl=function(e){return this._graphicEls[e]},e.prototype.eachItemGraphicEl=function(e,t){$(this._graphicEls,function(n,r){n&&e&&e.call(t,n,r)})},e.prototype.cloneShallow=function(t){return t||=new e(this._schema?this._schema:y$(this.dimensions,this._getDimInfo,this),this.hostModel),T$(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(e,t){var n=this[e];xU(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(e),this[e]=function(){var e=n.apply(this,arguments);return t.apply(this,[e].concat(FU(arguments)))})},e.internalField=function(){x$=function(e){var t=e._invertedIndicesMap;$(t,function(n,r){var i=e._dimInfos[r],a=i.ordinalMeta,o=e._store;if(a){n=t[r]=new NCe(a.categories.length);for(var s=0;s1&&(s+=`__ec__`+l),r[t]=s}}}(),e}();function RCe(e,t){MQ(e)||(e=PQ(e)),t||={};var n=t.coordDimensions||[],r=t.dimensionsDefine||e.dimensionsDefine||[],i=KU(),a=[],o=zCe(e,n,r,t.dimensionsCount),s=t.canOmitUnusedDimensions&&_$(o),c=r===e.dimensionsDefine,l=c?g$(e):h$(r),u=t.encodeDefine;!u&&t.encodeDefaulter&&(u=t.encodeDefaulter(e,o));for(var d=KU(u),f=new o$(o),p=0;p0&&(e.name+=t-1)}),new p$({source:e,dimensions:a,fullDimensionCount:o,dimensionOmitted:s})}function zCe(e,t,n,r){var i=Math.max(e.dimensionsDetectedCount||1,t.length,n.length,r||0);return $(t,function(e){var t;TU(e)&&(t=e.dimsDef)&&(i=Math.max(i,t.length))}),i}function BCe(e,t,n){if(n||t.hasKey(e)){for(var r=0;t.hasKey(e+r);)r++;e+=r}return t.set(e,!0),e}var O$={},k$={},A$=function(){function e(){this._normalMasterList=[],this._nonSeriesBoxMasterList=[]}return e.prototype.create=function(e,t){this._nonSeriesBoxMasterList=n(O$,!0),this._normalMasterList=n(k$,!1);function n(n,r){var i=[];return $(n,function(n,r){var a=n.create(e,t);i=i.concat(a||[])}),i}},e.prototype.update=function(e,t){$(this._normalMasterList,function(n){n.update&&n.update(e,t)})},e.prototype.getCoordinateSystems=function(){return this._normalMasterList.concat(this._nonSeriesBoxMasterList)},e.register=function(e,t){if(e===`matrix`||e===`calendar`){O$[e]=t;return}k$[e]=t},e.get=function(e){return k$[e]||O$[e]},e}();function VCe(e){return!!O$[e]}var HCe=KU();function j$(e){var t=e.getShallow(`coord`,!0),n=1;if(t==null){var r=HCe.get(e.type);r&&r.getCoord2&&(n=2,t=r.getCoord2(e))}return{coord:t,from:n}}function UCe(e,t){var n=e.getShallow(`coordinateSystem`),r=e.getShallow(`coordinateSystemUsage`,!0),i=0;if(n){var a=e.mainType===`series`;r??=a?`data`:`box`,r===`data`?(i=1,a||(i=0)):r===`box`&&(i=2,!a&&!VCe(n)&&(i=0))}return{coordSysType:n,kind:i}}function WCe(e){var t=e.targetModel,n=e.coordSysType,r=e.coordSysProvider,i=e.isDefaultDataCoordSys;e.allowNotFound;var a=UCe(t,!0),o=a.kind,s=a.coordSysType;if(i&&o!==1&&(o=1,s=n),o===0||s!==n)return 0;var c=r(n,t);return c?(o===1?t.coordinateSystem=c:t.boxCoordinateSystem=c,o):0}var GCe=function(){function e(e){this.coordSysDims=[],this.axisMap=KU(),this.categoryAxisMap=KU(),this.coordSysName=e}return e}();function KCe(e){var t=e.get(`coordinateSystem`),n=new GCe(t),r=qCe[t];if(r)return r(e,n,n.axisMap,n.categoryAxisMap),n}var qCe={cartesian2d:function(e,t,n,r){var i=e.getReferringComponents(`xAxis`,xY).models[0],a=e.getReferringComponents(`yAxis`,xY).models[0];t.coordSysDims=[`x`,`y`],n.set(`x`,i),n.set(`y`,a),M$(i)&&(r.set(`x`,i),t.firstCategoryDimIndex=0),M$(a)&&(r.set(`y`,a),t.firstCategoryDimIndex??=1)},singleAxis:function(e,t,n,r){var i=e.getReferringComponents(`singleAxis`,xY).models[0];t.coordSysDims=[`single`],n.set(`single`,i),M$(i)&&(r.set(`single`,i),t.firstCategoryDimIndex=0)},polar:function(e,t,n,r){var i=e.getReferringComponents(`polar`,xY).models[0],a=i.findAxisModel(`radiusAxis`),o=i.findAxisModel(`angleAxis`);t.coordSysDims=[`radius`,`angle`],n.set(`radius`,a),n.set(`angle`,o),M$(a)&&(r.set(`radius`,a),t.firstCategoryDimIndex=0),M$(o)&&(r.set(`angle`,o),t.firstCategoryDimIndex??=1)},geo:function(e,t,n,r){t.coordSysDims=[`lng`,`lat`]},parallel:function(e,t,n,r){var i=e.ecModel,a=i.getComponent(`parallel`,e.get(`parallelIndex`)),o=t.coordSysDims=a.dimensions.slice();$(a.parallelAxisIndex,function(e,a){var s=i.getComponent(`parallelAxis`,e),c=o[a];n.set(c,s),M$(s)&&(r.set(c,s),t.firstCategoryDimIndex??=a)})},matrix:function(e,t,n,r){var i=e.getReferringComponents(`matrix`,xY).models[0];t.coordSysDims=[`x`,`y`];var a=i.getDimensionModel(`x`),o=i.getDimensionModel(`y`);n.set(`x`,a),n.set(`y`,o),r.set(`x`,a),r.set(`y`,o)}};function M$(e){return e.get(`type`)===`category`}function JCe(e,t,n){n||={};var r=n.byIndex,i=n.stackedCoordDimension,a,o,s;YCe(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var c=!!(e&&e.get(`stack`)),l,u,d,f,p=!0;function m(e){return e.type!==`ordinal`&&e.type!==`time`}if($(a,function(e,t){SU(e)&&(a[t]=e={name:e}),m(e)||(p=!1)}),$(a,function(e,t){c&&!e.isExtraCoord&&(!r&&!l&&e.ordinalMeta&&(l=e),!u&&m(e)&&(!p||e.coordDim!==`x`&&e.coordDim!==`angle`)&&(!i||i===e.coordDim)&&(u=e))}),u&&!r&&!l&&(r=!0),u){d=`__\0ecstackresult_`+e.id,f=`__\0ecstackedover_`+e.id,l&&(l.createInvertedIndices=!0);var h=u.coordDim,g=u.type,_=0;$(a,function(e){e.coordDim===h&&_++});var v={name:d,coordDim:h,coordDimIndex:_,type:g,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},y={name:f,coordDim:f,coordDimIndex:_+1,type:g,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(v.storeDimIndex=s.ensureCalculationDimension(f,g),y.storeDimIndex=s.ensureCalculationDimension(d,g)),o.appendCalculationDimension(v),o.appendCalculationDimension(y)):(a.push(v),a.push(y))}return{stackedDimension:u&&u.name,stackedByDimension:l&&l.name,isStackedByIndex:r,stackedOverDimension:f,stackResultDimension:d}}function YCe(e){return!m$(e.schema)}function N$(e,t){return!!t&&t===e.getCalculationInfo(`stackedDimension`)}function XCe(e,t){return N$(e,t)?e.getCalculationInfo(`stackResultDimension`):t}function ZCe(e,t){var n=e.get(`coordinateSystem`),r=A$.get(n),i;return t&&t.coordSysDims&&(i=fU(t.coordSysDims,function(e){var n={name:e},r=t.axisMap.get(e);return r&&(n.type=wCe(r.get(`type`))),n})),i||=r&&(r.getDimensionsInfo?r.getDimensionsInfo():r.dimensions.slice())||[`x`,`y`],i}function QCe(e,t,n){var r,i;return n&&$(e,function(e,a){var o=e.coordDim,s=n.categoryAxisMap.get(o);s&&(r??=a,e.ordinalMeta=s.getOrdinalMeta(),t&&(e.createInvertedIndices=!0)),e.otherDims.itemName!=null&&(i=!0)}),!i&&r!=null&&(e[r].otherDims.itemName=0),r}function P$(e,t,n){n||={};var r=t.getSourceManager(),i,a=!1;e?(a=!0,i=PQ(e)):(i=r.getSource(),a=i.sourceFormat===IY);var o=KCe(t),s=ZCe(t,o),c=n.useEncodeDefaulter,l=xU(c)?c:c?yU(pCe,s,t):null,u={coordDimensions:s,generateCoord:n.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:l,canOmitUnusedDimensions:!a},d=RCe(i,u),f=QCe(d.dimensions,n.createInvertedIndices,o),p=a?null:r.getSharedDataStore(d),m=JCe(t,{schema:d,store:p}),h=new LCe(d,t);h.setCalculationInfo(m);var g=f!=null&&$Ce(i)?function(e,t,n,r){return r===f?n:this.defaultDimValueGetter(e,t,n,r)}:null;return h.hasItemOption=!1,h.initData(a?i:p,null,g),h}function $Ce(e){if(e.sourceFormat===`original`)return!bU(dY(ewe(e.data||[])))}function ewe(e){for(var t=0;t=0&&n.push(e)}),n}}function I$(e,t){return iU(iU({},e,!0),t,!0)}var iwe=Math.log(2);function L$(e,t,n,r,i,a){var o=r+`-`+i,s=e.length;if(a.hasOwnProperty(o))return a[o];if(t===1){var c=Math.round(Math.log((1<>1)%2;s.cssText=[`position: absolute`,`visibility: hidden`,`padding: 0`,`margin: 0`,`border-width: 0`,`user-select: none`,`width:0`,`height:0`,r[c]+`:0`,i[l]+`:0`,r[1-c]+`:auto`,i[1-l]+`:auto`,``].join(`!important;`),e.appendChild(o),n.push(o)}return t.clearMarkers=function(){$(n,function(e){e.parentNode&&e.parentNode.removeChild(e)})},n}function cwe(e,t,n){for(var r=n?`invTrans`:`trans`,i=t[r],a=t.srcCoords,o=[],s=[],c=!0,l=0;l<4;l++){var u=e[l].getBoundingClientRect(),d=2*l,f=u.left,p=u.top;o.push(f,p),c=c&&a&&f===a[d]&&p===a[d+1],s.push(e[l].offsetLeft,e[l].offsetTop)}return c&&i?i:(t.srcCoords=o,t[r]=n?R$(s,o):R$(o,s))}function H$(e){return e.nodeName.toUpperCase()===`CANVAS`}var lwe=/([&<>"'])/g,uwe={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`};function U$(e){return e==null?``:(e+``).replace(lwe,function(e,t){return uwe[t]})}var dwe={time:{month:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],monthAbbr:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],dayOfWeek:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],dayOfWeekAbbr:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`]},legend:{selector:{all:`All`,inverse:`Inv`}},toolbox:{brush:{title:{rect:`Box Select`,polygon:`Lasso Select`,lineX:`Horizontally Select`,lineY:`Vertically Select`,keep:`Keep Selections`,clear:`Clear Selections`}},dataView:{title:`Data View`,lang:[`Data View`,`Close`,`Refresh`]},dataZoom:{title:{zoom:`Zoom`,back:`Zoom Reset`}},magicType:{title:{line:`Switch to Line Chart`,bar:`Switch to Bar Chart`,stack:`Stack`,tiled:`Tile`}},restore:{title:`Restore`},saveAsImage:{title:`Save as Image`,lang:[`Right Click to Save Image`]}},series:{typeNames:{pie:`Pie chart`,bar:`Bar chart`,line:`Line chart`,scatter:`Scatter plot`,effectScatter:`Ripple scatter plot`,radar:`Radar chart`,tree:`Tree`,treemap:`Treemap`,boxplot:`Boxplot`,candlestick:`Candlestick`,k:`K line chart`,heatmap:`Heat map`,map:`Map`,parallel:`Parallel coordinate map`,lines:`Line graph`,graph:`Relationship graph`,sankey:`Sankey diagram`,funnel:`Funnel chart`,gauge:`Gauge`,pictorialBar:`Pictorial bar`,themeRiver:`Theme River Map`,sunburst:`Sunburst`,custom:`Custom chart`,chart:`Chart`}},aria:{general:{withTitle:`This is a chart about "{title}"`,withoutTitle:`This is a chart`},series:{single:{prefix:``,withName:` with type {seriesType} named {seriesName}.`,withoutName:` with type {seriesType}.`},multiple:{prefix:`. It consists of {seriesCount} series count.`,withName:` The {seriesId} series is a {seriesType} representing {seriesName}.`,withoutName:` The {seriesId} series is a {seriesType}.`,separator:{middle:``,end:``}}},data:{allData:`The data is as follows: `,partialData:`The first {displayCnt} items are: `,withName:`the data for {name} is {value}`,withoutName:`{value}`,separator:{middle:`, `,end:`. `}}}},fwe={time:{month:[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`],monthAbbr:[`1月`,`2月`,`3月`,`4月`,`5月`,`6月`,`7月`,`8月`,`9月`,`10月`,`11月`,`12月`],dayOfWeek:[`星期日`,`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`],dayOfWeekAbbr:[`日`,`一`,`二`,`三`,`四`,`五`,`六`]},legend:{selector:{all:`全选`,inverse:`反选`}},toolbox:{brush:{title:{rect:`矩形选择`,polygon:`圈选`,lineX:`横向选择`,lineY:`纵向选择`,keep:`保持选择`,clear:`清除选择`}},dataView:{title:`数据视图`,lang:[`数据视图`,`关闭`,`刷新`]},dataZoom:{title:{zoom:`区域缩放`,back:`区域缩放还原`}},magicType:{title:{line:`切换为折线图`,bar:`切换为柱状图`,stack:`切换为堆叠`,tiled:`切换为平铺`}},restore:{title:`还原`},saveAsImage:{title:`保存为图片`,lang:[`右键另存为图片`]}},series:{typeNames:{pie:`饼图`,bar:`柱状图`,line:`折线图`,scatter:`散点图`,effectScatter:`涟漪散点图`,radar:`雷达图`,tree:`树图`,treemap:`矩形树图`,boxplot:`箱型图`,candlestick:`K线图`,k:`K线图`,heatmap:`热力图`,map:`地图`,parallel:`平行坐标图`,lines:`线图`,graph:`关系图`,sankey:`桑基图`,funnel:`漏斗图`,gauge:`仪表盘图`,pictorialBar:`象形柱图`,themeRiver:`主题河流图`,sunburst:`旭日图`,custom:`自定义图表`,chart:`图表`}},aria:{general:{withTitle:`这是一个关于“{title}”的图表。`,withoutTitle:`这是一个图表,`},series:{single:{prefix:``,withName:`图表类型是{seriesType},表示{seriesName}。`,withoutName:`图表类型是{seriesType}。`},multiple:{prefix:`它由{seriesCount}个图表系列组成。`,withName:`第{seriesId}个系列是一个表示{seriesName}的{seriesType},`,withoutName:`第{seriesId}个系列是一个{seriesType},`,separator:{middle:`;`,end:`。`}}},data:{allData:`其数据是——`,partialData:`其中,前{displayCnt}项是——`,withName:`{name}的数据是{value}`,withoutName:`{value}`,separator:{middle:`,`,end:``}}}},W$=`ZH`,G$=`EN`,K$=G$,q$={},J$={},Y$=eW.domSupported?function(){return(document.documentElement.lang||navigator.language||navigator.browserLanguage||K$).toUpperCase().indexOf(W$)>-1?W$:K$}():K$;function X$(e,t){e=e.toUpperCase(),J$[e]=new wQ(t),q$[e]=t}function pwe(e){if(SU(e)){var t=q$[e.toUpperCase()]||{};return e===W$||e===G$?rU(t):iU(rU(t),rU(q$[K$]),!1)}else return iU(rU(e),rU(q$[K$]),!1)}function mwe(e){return J$[e]}function hwe(){return J$[K$]}X$(G$,dwe),X$(W$,fwe);var gwe=null;function Z$(){return gwe}function Q$(e,t){var n=Z$(),r=t.breakOption,i=t.breakParsed;return!i&&n&&(i=n.parseAxisBreakOption(r,e)),i}function $$(e){var t=e.brk;return t?t.breaks:[]}function e1(e){var t=e.brk;return t?t.hasBreaks():!1}var t1=1e3,n1=t1*60,r1=n1*60,i1=r1*24,a1=i1*365,_we={year:/({yyyy}|{yy})/,month:/({MMMM}|{MMM}|{MM}|{M})/,day:/({dd}|{d})/,hour:/({HH}|{H}|{hh}|{h})/,minute:/({mm}|{m})/,second:/({ss}|{s})/,millisecond:/({SSS}|{S})/},o1={year:`{yyyy}`,month:`{MMM}`,day:`{d}`,hour:`{HH}:{mm}`,minute:`{HH}:{mm}`,second:`{HH}:{mm}:{ss}`,millisecond:`{HH}:{mm}:{ss} {SSS}`},vwe=`{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}`,s1=`{yyyy}-{MM}-{dd}`,c1={year:`{yyyy}`,month:`{yyyy}-{MM}`,day:s1,hour:s1+` `+o1.hour,minute:s1+` `+o1.minute,second:s1+` `+o1.second,millisecond:vwe},l1=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],ywe=[`year`,`half-year`,`quarter`,`month`,`week`,`half-week`,`day`,`half-day`,`quarter-day`,`hour`,`minute`,`second`,`millisecond`];function bwe(e){return!SU(e)&&!xU(e)?xwe(e):e}function xwe(e){e||={};var t={},n=!0;return $(l1,function(t){n&&=e[t]==null}),$(l1,function(r,i){var a=e[r];t[r]={};for(var o=null,s=i;s>=0;s--){var c=l1[s],l=TU(a)&&!bU(a)?a[c]:a,u=void 0;bU(l)?(u=l.slice(),o=u[0]||``):SU(l)?(o=l,u=[o]):(o==null?o=o1[r]:_we[c].test(o)||(o=t[c][c][0]+` `+o),u=[o],n&&(u[1]=`{primary|`+o+`}`)),t[r][c]=u}}),t}function u1(e,t){return e+=``,`0000`.substr(0,t-e.length)+e}function d1(e){switch(e){case`half-year`:case`quarter`:return`month`;case`week`:case`half-week`:return`day`;case`half-day`:case`quarter-day`:return`hour`;default:return e}}function Swe(e){return e===d1(e)}function Cwe(e){switch(e){case`year`:case`month`:return`day`;case`millisecond`:return`millisecond`;default:return`second`}}function f1(e,t,n,r){var i=JJ(e),a=i[h1(n)](),o=i[g1(n)]()+1,s=Math.floor((o-1)/3)+1,c=i[_1(n)](),l=i[`get`+(n?`UTC`:``)+`Day`](),u=i[v1(n)](),d=(u-1)%12+1,f=i[y1(n)](),p=i[b1(n)](),m=i[x1(n)](),h=u>=12?`pm`:`am`,g=h.toUpperCase(),_=(r instanceof wQ?r:mwe(r||Y$)||hwe()).getModel(`time`),v=_.get(`month`),y=_.get(`monthAbbr`),b=_.get(`dayOfWeek`),x=_.get(`dayOfWeekAbbr`);return(t||``).replace(/{a}/g,h+``).replace(/{A}/g,g+``).replace(/{yyyy}/g,a+``).replace(/{yy}/g,u1(a%100+``,2)).replace(/{Q}/g,s+``).replace(/{MMMM}/g,v[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,u1(o,2)).replace(/{M}/g,o+``).replace(/{dd}/g,u1(c,2)).replace(/{d}/g,c+``).replace(/{eeee}/g,b[l]).replace(/{ee}/g,x[l]).replace(/{e}/g,l+``).replace(/{HH}/g,u1(u,2)).replace(/{H}/g,u+``).replace(/{hh}/g,u1(d+``,2)).replace(/{h}/g,d+``).replace(/{mm}/g,u1(f,2)).replace(/{m}/g,f+``).replace(/{ss}/g,u1(p,2)).replace(/{s}/g,p+``).replace(/{SSS}/g,u1(m,3)).replace(/{S}/g,m+``)}function wwe(e,t,n,r,i){var a=null;if(SU(n))a=n;else if(xU(n)){var o={time:e.time,level:e.time?e.time.level:0},s=Z$();s&&s.makeAxisLabelFormatterParamBreak(o,e.break),a=n(e.value,t,o)}else{var c=e.time;if(c){var l=n[c.lowerTimeUnit][c.upperTimeUnit];a=l[Math.min(c.level,l.length-1)]||``}else{var u=p1(e.value,i);a=n[u][u][0]}}return f1(new Date(e.value),a,i,r)}function p1(e,t){var n=JJ(e),r=n[g1(t)]()+1,i=n[_1(t)](),a=n[v1(t)](),o=n[y1(t)](),s=n[b1(t)](),c=n[x1(t)]()===0,l=c&&s===0,u=l&&o===0,d=u&&a===0,f=d&&i===1;return f&&r===1?`year`:f?`month`:d?`day`:u?`hour`:l?`minute`:c?`second`:`millisecond`}function m1(e,t,n){switch(t){case`year`:e[S1(n)](0);case`month`:e[C1(n)](1);case`day`:e[w1(n)](0);case`hour`:e[T1(n)](0);case`minute`:e[E1(n)](0);case`second`:e[D1(n)](0)}return e}function h1(e){return e?`getUTCFullYear`:`getFullYear`}function g1(e){return e?`getUTCMonth`:`getMonth`}function _1(e){return e?`getUTCDate`:`getDate`}function v1(e){return e?`getUTCHours`:`getHours`}function y1(e){return e?`getUTCMinutes`:`getMinutes`}function b1(e){return e?`getUTCSeconds`:`getSeconds`}function x1(e){return e?`getUTCMilliseconds`:`getMilliseconds`}function Twe(e){return e?`setUTCFullYear`:`setFullYear`}function S1(e){return e?`setUTCMonth`:`setMonth`}function C1(e){return e?`setUTCDate`:`setDate`}function w1(e){return e?`setUTCHours`:`setHours`}function T1(e){return e?`setUTCMinutes`:`setMinutes`}function E1(e){return e?`setUTCSeconds`:`setSeconds`}function D1(e){return e?`setUTCMilliseconds`:`setMilliseconds`}function O1(e){if(!lxe(e))return SU(e)?e:`-`;var t=(e+``).split(`.`);return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,`$1,`)+(t.length>1?`.`+t[1]:``)}function k1(e,t){return e=(e||``).toLowerCase().replace(/-(.)/g,function(e,t){return t.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var A1=IU;function j1(e,t,n){var r=`{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}`;function i(e){return e&&RU(e)?e:`-`}function a(e){return nY(e)}var o=t===`time`,s=e instanceof Date;if(o||s){var c=o?JJ(e):e;if(!isNaN(+c))return f1(c,r,n);if(s)return`-`}if(t===`ordinal`)return CU(e)?i(e):wU(e)&&a(e)?e+``:`-`;var l=QJ(e);return a(l)?O1(l):CU(e)?i(e):typeof e==`boolean`?e+``:`-`}var M1=[`a`,`b`,`c`,`d`,`e`,`f`,`g`],N1=function(e,t){return`{`+e+(t??``)+`}`};function P1(e,t,n){bU(t)||(t=[t]);var r=t.length;if(!r)return``;for(var i=t[0].$vars||[],a=0;a`:``:{renderMode:a,content:`{`+(n.markerId||`markerX`)+`|} `,style:i===`subItem`?{width:4,height:4,borderRadius:2,backgroundColor:r}:{width:10,height:10,borderRadius:5,backgroundColor:r}}:``}function F1(e,t){return t||=`transparent`,SU(e)?e:TU(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}var I1=$,Dwe=[`left`,`right`,`top`,`bottom`,`width`,`height`],L1=[[`width`,`left`,`right`],[`height`,`top`,`bottom`]];function R1(e,t,n,r,i){var a=0,o=0;r??=1/0,i??=1/0;var s=0;t.eachChild(function(c,l){var u=c.getBoundingRect(),d=t.childAt(l+1),f=d&&d.getBoundingRect(),p,m;if(e===`horizontal`){var h=u.width+(f?-f.x+u.x:0);p=a+h,p>r||c.newline?(a=0,p=h,o+=s+n,s=u.height):s=Math.max(s,u.height)}else{var g=u.height+(f?-f.y+u.y:0);m=o+g,m>i||c.newline?(a+=s+n,o=0,m=g,s=u.width):s=Math.max(s,u.width)}c.newline||(c.x=a,c.y=o,c.markRedraw(),e===`horizontal`?a=p+n:o=m+n)})}var z1=R1;yU(R1,`vertical`),yU(R1,`horizontal`);function Owe(e,t){return{left:e.getShallow(`left`,t),top:e.getShallow(`top`,t),right:e.getShallow(`right`,t),bottom:e.getShallow(`bottom`,t),width:e.getShallow(`width`,t),height:e.getShallow(`height`,t)}}function B1(e,t,n){n=A1(n||0);var r=t.width,i=t.height,a=BJ(e.left,r),o=BJ(e.top,i),s=BJ(e.right,r),c=BJ(e.bottom,i),l=BJ(e.width,r),u=BJ(e.height,i),d=n[2]+n[0],f=n[1]+n[3],p=e.aspect;switch(isNaN(l)&&(l=r-s-f-a),isNaN(u)&&(u=i-c-d-o),p!=null&&(isNaN(l)&&isNaN(u)&&(p>r/i?l=r*.8:u=i*.8),isNaN(l)&&(l=p*u),isNaN(u)&&(u=l/p)),isNaN(a)&&(a=r-s-l-f),isNaN(o)&&(o=i-c-u-d),e.left||e.right){case`center`:a=r/2-l/2-n[3];break;case`right`:a=r-l-f;break}switch(e.top||e.bottom){case`middle`:case`center`:o=i/2-u/2-n[0];break;case`bottom`:o=i-u-d;break}a||=0,o||=0,isNaN(l)&&(l=r-f-a-(s||0)),isNaN(u)&&(u=i-d-o-(c||0));var m=new iG((t.x||0)+a+n[3],(t.y||0)+o+n[0],l,u);return m.margin=n,m}var V1={rect:1,point:2};function H1(e,t,n){var r,i,a,o=e.boxCoordinateSystem,s;if(o){var c=j$(e),l=c.coord,u=c.from;if(o.dataToLayout){a=V1.rect,s=u;var d=o.dataToLayout(l);r=d.contentRect||d.rect}else n&&n.enableLayoutOnlyByCenter&&o.dataToPoint&&(a=V1.point,s=u,i=o.dataToPoint(l))}return a??=V1.rect,a===V1.rect&&(r||={x:0,y:0,width:t.getWidth(),height:t.getHeight()},i=[r.x+r.width/2,r.y+r.height/2]),{type:a,refContainer:r,refPoint:i,boxCoordFrom:s}}function U1(e){var t=e.layoutMode||e.constructor.layoutMode;return TU(t)?t:t?{type:t}:null}function W1(e,t,n){var r=n&&n.ignoreSize;!bU(r)&&(r=[r,r]);var i=o(L1[0],0),a=o(L1[1],1);c(L1[0],e,i),c(L1[1],e,a);function o(n,i){var a={},o=0,c={},l=0,u=2;if(I1(n,function(t){c[t]=e[t]}),I1(n,function(e){XU(t,e)&&(a[e]=c[e]=t[e]),s(a,e)&&o++,s(c,e)&&l++}),r[i])return s(t,n[1])?c[n[2]]=null:s(t,n[2])&&(c[n[1]]=null),c;if(l===u||!o)return c;if(o>=u)return a;for(var d=0;d=0;o--)a=iU(a,n[o],!0);t.defaultOption=a}return t.defaultOption},t.prototype.getReferringComponents=function(e,t){var n=e+`Index`,r=e+`Id`;return SY(this.ecModel,e,{index:this.get(n,!0),id:this.get(r,!0)},t)},t.prototype.getBoxLayoutParams=function(){return Owe(this,!1)},t.prototype.getZLevelKey=function(){return``},t.prototype.setZLevel=function(e){this.option.zlevel=e},t.protoInitialize=function(){var e=t.prototype;e.type=`component`,e.id=``,e.name=``,e.mainType=``,e.subType=``,e.componentIndex=0}(),t}(wQ);uW(K1,wQ),hW(K1),nwe(K1),rwe(K1,jwe);function jwe(e){var t=[];return $(K1.getClassesByMainType(e),function(e){t=t.concat(e.dependencies||e.prototype.dependencies||[])}),t=fU(t,function(e){return aW(e).main}),e!==`dataset`&&cU(t,`dataset`)<=0&&t.unshift(`dataset`),t}var q1=vY();vY();var J1=function(){function e(){}return e.prototype.getColorFromPalette=function(e,t,n){var r=cY(this.get(`color`,!0)),i=this.get(`colorLayer`,!0);return Nwe(this,q1,r,i,e,t,n)},e.prototype.clearColorPalette=function(){Pwe(this,q1)},e}();function Mwe(e,t){for(var n=e.length,r=0;rt)return e[r];return e[n-1]}function Nwe(e,t,n,r,i,a,o){a||=e;var s=t(a),c=s.paletteIdx||0,l=s.paletteNameMap=s.paletteNameMap||{};if(l.hasOwnProperty(i))return l[i];var u=o==null||!r?n:Mwe(r,o);if(u||=n,!(!u||!u.length)){var d=u[c];return i&&(l[i]=d),s.paletteIdx=(c+1)%u.length,d}}function Pwe(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Fwe=/\{@(.+?)\}/g,Iwe=function(){function e(){}return e.prototype.getDataParams=function(e,t){var n=this.getData(t),r=this.getRawValue(e,t),i=n.getRawIndex(e),a=n.getName(e),o=n.getRawDataItem(e),s=n.getItemVisual(e,`style`),c=s&&s[n.getItemVisual(e,`drawType`)||`fill`],l=s&&s.stroke,u=this.mainType,d=u===`series`,f=n.userOutput&&n.userOutput.get();return{componentType:u,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:d?this.subType:null,seriesIndex:this.seriesIndex,seriesId:d?this.id:null,seriesName:d?this.name:null,name:a,dataIndex:i,data:o,dataType:t,value:r,color:c,borderColor:l,dimensionNames:f?f.fullDimensions:null,encode:f?f.encode:null,$vars:[`seriesName`,`name`,`value`]}},e.prototype.getFormattedLabel=function(e,t,n,r,i,a){t||=`normal`;var o=this.getData(n),s=this.getDataParams(e,n);if(a&&(s.value=a.interpolatedValue),r!=null&&bU(s.value)&&(s.value=s.value[r]),i||=o.getItemModel(e).get(t===`normal`?[`label`,`formatter`]:[t,`label`,`formatter`]),xU(i))return s.status=t,s.dimensionIndex=r,i(s);if(SU(i))return P1(i,s).replace(Fwe,function(t,n){var r=n.length,i=n;i.charAt(0)===`[`&&i.charAt(r-1)===`]`&&(i=+i.slice(1,r-1));var s=e$(o,e,i);if(a&&bU(a.interpolatedValue)){var c=o.getDimensionIndex(i);c>=0&&(s=a.interpolatedValue[c])}return s==null?``:s+``})},e.prototype.getRawValue=function(e,t){return e$(this.getData(t),e)},e.prototype.formatTooltip=function(e,t,n){},e}();function Y1(e){var t,n;return TU(e)?e.type&&(n=e):t=e,{text:t,frag:n}}function X1(e){return new Lwe(e)}var Lwe=function(){function e(e){e||={},this._reset=e.reset,this._plan=e.plan,this._count=e.count,this._onDirty=e.onDirty,this._dirty=!0}return e.prototype.perform=function(e){var t=this._upstream,n=e&&e.skip;if(this._dirty&&t){var r=this.context;r.data=r.outputData=t.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var i;this._plan&&!n&&(i=this._plan(this.context));var a=l(this._modBy),o=this._modDataCount||0,s=l(e&&e.modBy),c=e&&e.modDataCount||0;(a!==s||o!==c)&&(i=`reset`);function l(e){return!(e>=1)&&(e=1),e}var u;(this._dirty||i===`reset`)&&(this._dirty=!1,u=this._doReset(n)),this._modBy=s,this._modDataCount=c;var d=e&&e.step;if(t?this._dueEnd=t._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var f=this._dueIndex,p=Math.min(d==null?1/0:this._dueIndex+d,this._dueEnd);if(!n&&(u||f1&&r>0?s:o}};return a;function o(){return t=e?null:a9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+`_`+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var e=this._sourceHost,t=this._getUpstreamSourceManagers(),n=!!t.length,r,i;if(e0(e)){var a=e,o=void 0,s=void 0,c=void 0;if(n){var l=t[0];l.prepareSource(),c=l.getSource(),o=c.data,s=c.sourceFormat,i=[l._getVersionSign()]}else o=a.get(`data`,!0),s=DU(o)?BY:IY,i=[];var u=this._getSourceMetaRawOption()||{},d=c&&c.metaRawOption||{},f=NU(u.seriesLayoutBy,d.seriesLayoutBy)||null,p=NU(u.sourceHeader,d.sourceHeader),m=NU(u.dimensions,d.dimensions);r=f!==d.seriesLayoutBy||!!p!=!!d.sourceHeader||m?[NQ(o,{seriesLayoutBy:f,sourceHeader:p,dimensions:m},s)]:[]}else{var h=e;if(n){var g=this._applyTransform(t);r=g.sourceList,i=g.upstreamSignList}else r=[NQ(h.get(`source`,!0),this._getSourceMetaRawOption(),null)],i=[]}this._setLocalSource(r,i)},e.prototype._applyTransform=function(e){var t=this._sourceHost,n=t.get(`transform`,!0),r=t.get(`fromTransformResult`,!0);r!=null&&e.length!==1&&t0(``);var i,a=[],o=[];return $(e,function(e){e.prepareSource();var t=e.getSource(r||0);r!=null&&!t&&t0(``),a.push(t),o.push(e._getVersionSign())}),n?i=Gwe(n,a,{datasetIndex:t.componentIndex}):r!=null&&(i=[gCe(a[0])]),{sourceList:i,upstreamSignList:o}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var e=this._getUpstreamSourceManagers(),t=0;t1||n>0&&!e.noHeader;return $(e.blocks,function(e){var n=d0(e);n>=t&&(t=n+ +(r&&(!n||l0(e)&&!e.noHeader)))}),t}return 0}function Zwe(e,t,n,r){var i=t.noHeader,a=$we(d0(t)),o=[],s=t.blocks||[];LU(!s||bU(s)),s||=[];var c=e.orderMode;if(t.sortBlocks&&c){s=s.slice();var l={valueAsc:`asc`,valueDesc:`desc`};if(XU(l,c)){var u=new DCe(l[c],null);s.sort(function(e,t){return u.evaluate(e.sortParam,t.sortParam)})}else c===`seriesDesc`&&s.reverse()}$(s,function(n,i){var s=t.valueFormatter,c=u0(n)(s?aU(aU({},e),{valueFormatter:s}):e,n,i>0?a.html:0,r);c!=null&&o.push(c)});var d=e.renderMode===`richText`?o.join(a.richText):p0(r,o.join(``),i?n:a.html);if(i)return d;var f=j1(t.header,`ordinal`,e.useUTC),p=s0(r,e.renderMode).nameStyle,m=o0(r);return e.renderMode===`richText`?m0(e,f,p)+a.richText+d:p0(r,`
`+U$(f)+`
`+d,n)}function Qwe(e,t,n,r){var i=e.renderMode,a=t.noName,o=t.noValue,s=!t.markerType,c=t.name,l=e.useUTC,u=t.valueFormatter||e.valueFormatter||function(e){return e=bU(e)?e:[e],fU(e,function(e,t){return j1(e,bU(p)?p[t]:p,l)})};if(!(a&&o)){var d=s?``:e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||n0.color.secondary,i),f=a?``:j1(c,`ordinal`,l),p=t.valueType,m=o?[]:u(t.value,t.rawDataIndex),h=!s||!a,g=!s&&a,_=s0(r,i),v=_.nameStyle,y=_.valueStyle;return i===`richText`?(s?``:d)+(a?``:m0(e,f,v))+(o?``:nTe(e,m,h,g,y)):p0(r,(s?``:d)+(a?``:eTe(f,!s,v))+(o?``:tTe(m,h,g,y)),n)}}function f0(e,t,n,r,i,a){if(e)return u0(e)({useUTC:i,renderMode:n,orderMode:r,markupStyleCreator:t,valueFormatter:e.valueFormatter},e,0,a)}function $we(e){return{html:Ywe[e],richText:Xwe[e]}}function p0(e,t,n){var r=`
`,i=`margin: `+n+`px 0 0`,a=o0(e);return`
`+t+r+`
`}function eTe(e,t,n){var r=t?`margin-left:2px`:``;return``+U$(e)+``}function tTe(e,t,n,r){var i=t?`float:right;margin-left:`+(n?`10px`:`20px`):``;return e=bU(e)?e:[e],``+fU(e,function(e){return U$(e)}).join(`  `)+``}function m0(e,t,n){return e.markupStyleCreator.wrapRichTextStyle(t,n)}function nTe(e,t,n,r,i){var a=[i],o=r?10:20;return n&&a.push({padding:[0,0,0,o],align:`right`}),e.markupStyleCreator.wrapRichTextStyle(bU(t)?t.join(` `):t,a)}function rTe(e,t){var n=e.getData().getItemVisual(t,`style`)[e.visualDrawType];return F1(n)}function h0(e,t){return e.get(`padding`)??(t===`richText`?[8,10]:10)}var g0=function(){function e(){this.richTextStyles={},this._nextStyleNameId=$J()}return e.prototype._generateStyleName=function(){return`__EC_aUTo_`+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(e,t,n){var r=n===`richText`?this._generateStyleName():null,i=Ewe({color:t,type:e,renderMode:n,markerId:r});return SU(i)?i:(this.richTextStyles[r]=i.style,i.content)},e.prototype.wrapRichTextStyle=function(e,t){var n={};bU(t)?$(t,function(e){return aU(n,e)}):aU(n,t);var r=this._generateStyleName();return this.richTextStyles[r]=n,`{`+r+`|`+e+`}`},e}();function iTe(e){var t=e.series,n=e.dataIndex,r=e.multipleSeries,i=t.getData(),a=i.mapDimensionsAll(`defaultedTooltip`),o=a.length,s=t.getRawValue(n),c=bU(s),l=rTe(t,n),u,d,f,p;if(o>1||c&&!o){var m=aTe(s,t,n,a,l);u=m.inlineValues,d=m.inlineValueTypes,f=m.blocks,p=m.inlineValues[0]}else if(o){var h=i.getDimensionInfo(a[0]);p=u=e$(i,n,a[0]),d=h.type}else p=u=c?s[0]:s;var g=hY(t),_=g&&t.name||``,v=i.getName(n),y=r?_:v;return c0(`section`,{header:_,noHeader:r||!g,sortParam:p,blocks:[c0(`nameValue`,{markerType:`item`,markerColor:l,name:y,noName:!RU(y),value:u,valueType:d,rawDataIndex:i.getRawIndex(n)})].concat(f||[])})}function aTe(e,t,n,r,i){var a=t.getData(),o=pU(e,function(e,t,n){var r=a.getDimensionInfo(n);return e||=r&&r.tooltip!==!1&&r.displayName!=null},!1),s=[],c=[],l=[];r.length?$(r,function(e){u(e$(a,n,e),e)}):$(e,u);function u(e,t){var n=a.getDimensionInfo(t);!n||n.otherDims.tooltip===!1||(o?l.push(c0(`nameValue`,{markerType:`subItem`,markerColor:i,name:n.displayName,value:e,valueType:n.type})):(s.push(e),c.push(n.type)))}return{inlineValues:s,inlineValueTypes:c,blocks:l}}var _0=vY();function v0(e,t){return e.getName(t)||e.getId(t)}var y0=function(e){PH(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t._selectedDataIndicesMap={},t}return t.prototype.init=function(e,t,n){this.seriesIndex=this.componentIndex,this.dataTask=X1({count:sTe,reset:cTe}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(e,n),(_0(this).sourceManager=new qwe(this)).prepareSource();var r=this.getInitialData(e,n);x0(r,this),this.dataTask.context.data=r,_0(this).dataBeforeProcessed=r,b0(this),this._initSelectedMapFromData(r)},t.prototype.mergeDefaultAndTheme=function(e,t){var n=U1(this),r=n?G1(e):{},i=this.subType;K1.hasClass(i)&&(i+=`Series`),iU(e,t.getTheme().get(this.subType)),iU(e,this.getDefaultOption()),lY(e,`label`,[`show`]),this.fillDataTextStyle(e.data),n&&W1(e,r,n)},t.prototype.mergeOption=function(e,t){e=iU(this.option,e,!0),this.fillDataTextStyle(e.data);var n=U1(this);n&&W1(this.option,e,n);var r=_0(this).sourceManager;r.dirty(),r.prepareSource();var i=this.getInitialData(e,t);x0(i,this),this.dataTask.dirty(),this.dataTask.context.data=i,_0(this).dataBeforeProcessed=i,b0(this),this._initSelectedMapFromData(i)},t.prototype.fillDataTextStyle=function(e){if(e&&!DU(e))for(var t=[`show`],n=0;n=0&&u<0)&&(l=v,u=_,d=0),_===u&&(c[d++]=m))}return c.length=d,c},t.prototype.formatTooltip=function(e,t,n){return iTe({series:this,dataIndex:e,multipleSeries:t})},t.prototype.isAnimationEnabled=function(){var e=this.ecModel;if(eW.node&&!(e&&e.ssr))return!1;var t=this.getShallow(`animation`);return t&&this.getData().count()>this.getShallow(`animationThreshold`)&&(t=!1),!!t},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(e,t,n){var r=this.ecModel,i=J1.prototype.getColorFromPalette.call(this,e,t,n);return i||=r.getColorFromPalette(e,t,n),i},t.prototype.coordDimToDataDim=function(e){return this.getRawData().mapDimensionsAll(e)},t.prototype.getProgressive=function(){return this.get(`progressive`)},t.prototype.getProgressiveThreshold=function(){return this.get(`progressiveThreshold`)},t.prototype.select=function(e,t){this._innerSelect(this.getData(t),e)},t.prototype.unselect=function(e,t){var n=this.option.selectedMap;if(n){var r=this.option.selectedMode,i=this.getData(t);if(r===`series`||n===`all`){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var a=0;a=0&&n.push(i)}return n},t.prototype.isSelected=function(e,t){var n=this.option.selectedMap;if(!n)return!1;var r=this.getData(t);return(n===`all`||n[v0(r,e)])&&!r.getItemModel(e).get([`select`,`disabled`])},t.prototype.isUniversalTransitionEnabled=function(){if(this.__universalTransitionEnabled)return!0;var e=this.option.universalTransition;return e?e===!0||e&&e.enabled:!1},t.prototype._innerSelect=function(e,t){var n,r,i=this.option,a=i.selectedMode,o=t.length;if(!(!a||!o)){if(a===`series`)i.selectedMap=`all`;else if(a===`multiple`){TU(i.selectedMap)||(i.selectedMap={});for(var s=i.selectedMap,c=0;c0&&this._innerSelect(e,t)}},t.registerClass=function(e){return K1.registerClass(e)},t.protoInitialize=function(){var e=t.prototype;e.type=`series.__base__`,e.seriesIndex=0,e.ignoreStyleOnData=!1,e.hasSymbolVisual=!1,e.defaultSymbol=`circle`,e.visualStyleAccessPath=`itemStyle`,e.visualDrawType=`fill`}(),t}(K1);uU(y0,Iwe),uU(y0,J1),uW(y0,K1);function b0(e){var t=e.name;hY(e)||(e.name=oTe(e)||t)}function oTe(e){var t=e.getRawData(),n=t.mapDimensionsAll(`seriesName`),r=[];return $(n,function(e){var n=t.getDimensionInfo(e);n.displayName&&r.push(n.displayName)}),r.join(` `)}function sTe(e){return e.model.getRawData().count()}function cTe(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),lTe}function lTe(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function x0(e,t){$(qU(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(n){e.wrapMethod(n,yU(uTe,t))})}function uTe(e,t){var n=S0(e);return n&&n.setOutputEnd((t||this).count()),t}function S0(e){var t=(e.ecModel||{}).scheduler,n=t&&t.getPipeline(e.uid);if(n){var r=n.currentTask;if(r){var i=r.agentStubMap;i&&(r=i.get(e.uid))}return r}}var dTe=cJ.extend({type:`triangle`,shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var n=t.cx,r=t.cy,i=t.width/2,a=t.height/2;e.moveTo(n,r-a),e.lineTo(n+i,r+a),e.lineTo(n-i,r+a),e.closePath()}}),fTe={line:uZ,rect:hJ,roundRect:hJ,square:hJ,circle:KX,diamond:cJ.extend({type:`diamond`,shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var n=t.cx,r=t.cy,i=t.width/2,a=t.height/2;e.moveTo(n,r-a),e.lineTo(n+i,r),e.lineTo(n,r+a),e.lineTo(n-i,r),e.closePath()}}),pin:cJ.extend({type:`pin`,shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.x,r=t.y,i=t.width/5*3,a=Math.max(i,t.height),o=i/2,s=o*o/(a-o),c=r-a+o+s,l=Math.asin(s/o),u=Math.cos(l)*o,d=Math.sin(l),f=Math.cos(l),p=o*.6,m=o*.7;e.moveTo(n-u,c+s),e.arc(n,c,o,Math.PI-l,Math.PI*2+l),e.bezierCurveTo(n+u-d*p,c+s+f*p,n,r-m,n,r),e.bezierCurveTo(n,r-m,n-u+d*p,c+s+f*p,n-u,c+s),e.closePath()}}),arrow:cJ.extend({type:`arrow`,shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.height,r=t.width,i=t.x,a=t.y,o=r/3*2;e.moveTo(i,a),e.lineTo(i+o,a+n),e.lineTo(i,a+n/4*3),e.lineTo(i-o,a+n),e.lineTo(i,a),e.closePath()}}),triangle:dTe},pTe={line:function(e,t,n,r,i){i.x1=e,i.y1=t+r/2,i.x2=e+n,i.y2=t+r/2},rect:function(e,t,n,r,i){i.x=e,i.y=t,i.width=n,i.height=r},roundRect:function(e,t,n,r,i){i.x=e,i.y=t,i.width=n,i.height=r,i.r=Math.min(n,r)/4},square:function(e,t,n,r,i){var a=Math.min(n,r);i.x=e,i.y=t,i.width=a,i.height=a},circle:function(e,t,n,r,i){i.cx=e+n/2,i.cy=t+r/2,i.r=Math.min(n,r)/2},diamond:function(e,t,n,r,i){i.cx=e+n/2,i.cy=t+r/2,i.width=n,i.height=r},pin:function(e,t,n,r,i){i.x=e+n/2,i.y=t+r/2,i.width=n,i.height=r},arrow:function(e,t,n,r,i){i.x=e+n/2,i.y=t+r/2,i.width=n,i.height=r},triangle:function(e,t,n,r,i){i.cx=e+n/2,i.cy=t+r/2,i.width=n,i.height=r}},C0={};$(fTe,function(e,t){C0[t]=new e});var mTe=cJ.extend({type:`symbol`,shape:{symbolType:``,x:0,y:0,width:0,height:0},calculateTextPosition:function(e,t,n){var r=SG(e,t,n),i=this.shape;return i&&i.symbolType===`pin`&&t.position===`inside`&&(r.y=n.y+n.height*.4),r},buildPath:function(e,t,n){var r=t.symbolType;if(r!==`none`){var i=C0[r];i||=(r=`rect`,C0[r]),pTe[r](t.x,t.y,t.width,t.height,i.shape),i.buildPath(e,i.shape,n)}}});function hTe(e,t){if(this.type!==`image`){var n=this.style;this.__isEmptyBrush?(n.stroke=e,n.fill=t||n0.color.neutral00,n.lineWidth=2):this.shape.symbolType===`line`?n.stroke=e:n.fill=e,this.markRedraw()}}function w0(e,t,n,r,i,a,o){var s=e.indexOf(`empty`)===0;s&&(e=e.substr(5,1).toLowerCase()+e.substr(6));var c=e.indexOf(`image://`)===0?RZ(e.slice(8),new iG(t,n,r,i),o?`center`:`cover`):e.indexOf(`path://`)===0?LZ(e.slice(7),{},new iG(t,n,r,i),o?`center`:`cover`):new mTe({shape:{symbolType:e,x:t,y:n,width:r,height:i}});return c.__isEmptyBrush=s,c.setColor=hTe,a&&c.setColor(a),c}function gTe(e){return bU(e)||(e=[+e,+e]),[e[0]||0,e[1]||0]}function T0(e,t){if(e!=null)return bU(e)||(e=[e,e]),[BJ(e[0],t[0])||0,BJ(NU(e[1],e[0]),t[1])||0]}var _Te=function(e){PH(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.hasSymbolVisual=!0,n}return t.prototype.getInitialData=function(e){return P$(null,this,{useEncodeDefaulter:!0})},t.prototype.getLegendIcon=function(e){var t=new GX,n=w0(`line`,0,e.itemHeight/2,e.itemWidth,0,e.lineStyle.stroke,!1);t.add(n),n.setStyle(e.lineStyle);var r=this.getData().getVisual(`symbol`),i=this.getData().getVisual(`symbolRotate`),a=r===`none`?`circle`:r,o=e.itemHeight*.8,s=w0(a,(e.itemWidth-o)/2,(e.itemHeight-o)/2,o,o,e.itemStyle.fill);return t.add(s),s.setStyle(e.itemStyle),s.rotation=(e.iconRotate===`inherit`?i:e.iconRotate||0)*Math.PI/180,s.setOrigin([e.itemWidth/2,e.itemHeight/2]),a.indexOf(`empty`)>-1&&(s.style.stroke=s.style.fill,s.style.fill=n0.color.neutral00,s.style.lineWidth=2),t},t.type=`series.line`,t.dependencies=[`grid`,`polar`],t.defaultOption={z:3,coordinateSystem:`cartesian2d`,legendHoverLink:!0,clip:!0,label:{position:`top`},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:`solid`},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:`emptyCircle`,symbolSize:6,symbolRotate:null,showSymbol:!0,showAllSymbol:`auto`,connectNulls:!1,sampling:`none`,animationEasing:`linear`,progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:`clone`},triggerLineEvent:!1,triggerEvent:!1},t}(y0);function E0(e,t){var n=e.mapDimensionsAll(`defaultedLabel`),r=n.length;if(r===1){var i=e$(e,t,n[0]);return i==null?null:i+``}else if(r){for(var a=[],o=0;o=0&&r.push(t[a])}return r.join(` `)}var O0=function(e){PH(t,e);function t(t,n,r,i){var a=e.call(this)||this;return a.updateData(t,n,r,i),a}return t.prototype._createSymbol=function(e,t,n,r,i,a){this.removeAll();var o=w0(e,-1,-1,2,2,null,a);o.attr({z2:NU(i,100),culling:!0,scaleX:r[0]/2,scaleY:r[1]/2}),o.drift=vTe,this._symbolType=e,this.add(o)},t.prototype.stopSymbolAnimation=function(e){this.childAt(0).stopAnimation(null,e)},t.prototype.getSymbolType=function(){return this._symbolType},t.prototype.getSymbolPath=function(){return this.childAt(0)},t.prototype.highlight=function(){pX(this.childAt(0))},t.prototype.downplay=function(){mX(this.childAt(0))},t.prototype.setZ=function(e,t){var n=this.childAt(0);n.zlevel=e,n.z=t},t.prototype.setDraggable=function(e,t){var n=this.childAt(0);n.draggable=e,n.cursor=!t&&e?`move`:n.cursor},t.prototype.updateData=function(e,n,r,i){this.silent=!1;var a=e.getItemVisual(n,`symbol`)||`circle`,o=e.hostModel,s=t.getSymbolSize(e,n),c=t.getSymbolZ2(e,n),l=a!==this._symbolType,u=i&&i.disableAnimation;if(l){var d=e.getItemVisual(n,`symbolKeepAspect`);this._createSymbol(a,e,n,s,c,d)}else{var f=this.childAt(0);f.silent=!1;var p={scaleX:s[0]/2,scaleY:s[1]/2};u?f.attr(p):EZ(f,p,o,n),MZ(f)}if(this._updateCommon(e,n,s,r,i),l){var f=this.childAt(0);if(!u){var p={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:f.style.opacity}};f.scaleX=f.scaleY=0,f.style.opacity=0,DZ(f,p,o,n)}}u&&this.childAt(0).stopAnimation(`leave`)},t.prototype._updateCommon=function(e,t,n,r,i){var a=this.childAt(0),o=e.hostModel,s,c,l,u,d,f,p,m,h;if(r&&(s=r.emphasisItemStyle,c=r.blurItemStyle,l=r.selectItemStyle,u=r.focus,d=r.blurScope,p=r.labelStatesModels,m=r.hoverScale,h=r.cursorStyle,f=r.emphasisDisabled),!r||e.hasItemOption){var g=r&&r.itemModel?r.itemModel:e.getItemModel(t),_=g.getModel(`emphasis`);s=_.getModel(`itemStyle`).getItemStyle(),l=g.getModel([`select`,`itemStyle`]).getItemStyle(),c=g.getModel([`blur`,`itemStyle`]).getItemStyle(),u=_.get(`focus`),d=_.get(`blurScope`),f=_.get(`disabled`),p=dQ(g),m=_.getShallow(`scale`),h=g.getShallow(`cursor`)}var v=e.getItemVisual(t,`symbolRotate`);a.attr(`rotation`,(v||0)*Math.PI/180||0);var y=T0(e.getItemVisual(t,`symbolOffset`),n);y&&(a.x=y[0],a.y=y[1]),h&&a.attr(`cursor`,h);var b=e.getItemVisual(t,`style`),x=b.fill;if(a instanceof uJ){var S=a.style;a.useStyle(aU({image:S.image,x:S.x,y:S.y,width:S.width,height:S.height},b))}else a.__isEmptyBrush?a.useStyle(aU({},b)):a.useStyle(b),a.style.decal=null,a.setColor(x,i&&i.symbolInnerColor),a.style.strokeNoScale=!0;var C=e.getItemVisual(t,`liftZ`),w=this._z2;C==null?w!=null&&(a.z2=w,this._z2=null):w??(this._z2=a.z2,a.z2+=C);var T=i&&i.useNameLabel;uQ(a,p,{labelFetcher:o,labelDataIndex:t,defaultText:E,inheritColor:x,defaultOpacity:b.opacity});function E(t){return T?e.getName(t):E0(e,t)}this._sizeX=n[0]/2,this._sizeY=n[1]/2;var D=a.ensureState(`emphasis`);D.style=s,a.ensureState(`select`).style=l,a.ensureState(`blur`).style=c;var O=m==null||m===!0?Math.max(1.1,3/this._sizeY):isFinite(m)&&m>0?+m:1;D.scaleX=this._sizeX*O,D.scaleY=this._sizeY*O,this.setSymbolScale(1),TX(this,u,d,f)},t.prototype.setSymbolScale=function(e){this.scaleX=this.scaleY=e},t.prototype.fadeOut=function(e,t,n){var r=this.childAt(0),i=PY(this).dataIndex,a=n&&n.animation;if(this.silent=r.silent=!0,n&&n.fadeLabel){var o=r.getTextContent();o&&kZ(o,{style:{opacity:0}},t,{dataIndex:i,removeOpt:a,cb:function(){r.removeTextContent()}})}else r.removeTextContent();kZ(r,{style:{opacity:0},scaleX:0,scaleY:0},t,{dataIndex:i,cb:e,removeOpt:a})},t.getSymbolSize=function(e,t){return gTe(e.getItemVisual(t,`symbolSize`))},t.getSymbolZ2=function(e,t){return e.getItemVisual(t,`z2`)},t}(GX);function vTe(e,t){this.parent.drift(e,t)}function k0(e,t,n,r){return t&&!isNaN(t[0])&&!isNaN(t[1])&&!(r&&r.isIgnore&&r.isIgnore(n))&&!(r&&r.clipShape&&!r.clipShape.contain(t[0],t[1]))&&e.getItemVisual(n,`symbol`)!==`none`}function A0(e){return e!=null&&!TU(e)&&(e={isIgnore:e}),e||{}}function j0(e){var t=e.hostModel,n=t.getModel(`emphasis`);return{emphasisItemStyle:n.getModel(`itemStyle`).getItemStyle(),blurItemStyle:t.getModel([`blur`,`itemStyle`]).getItemStyle(),selectItemStyle:t.getModel([`select`,`itemStyle`]).getItemStyle(),focus:n.get(`focus`),blurScope:n.get(`blurScope`),emphasisDisabled:n.get(`disabled`),hoverScale:n.get(`scale`),labelStatesModels:dQ(t),cursorStyle:t.get(`cursor`)}}function M0(e,t,n,r,i,a,o){var s=new e(t,n,r,i);return s.setPosition(a),t.setItemGraphicEl(n,s),o.add(s),s}var yTe=function(){function e(e){this.group=new GX,this._SymbolCtor=e||O0}return e.prototype.updateData=function(e,t){this._progressiveEls=null,t=A0(t);var n=this.group,r=e.hostModel,i=this._data,a=this._SymbolCtor,o=t.disableAnimation,s=this._seriesScope=j0(e),c={disableAnimation:o},l=t.getSymbolPoint||function(t){return e.getItemLayout(t)};i||n.removeAll(),e.diff(i).add(function(r){var i=l(r);k0(e,i,r,t)&&M0(a,e,r,s,c,i,n)}).update(function(u,d){var f=i.getItemGraphicEl(d),p=l(u);if(!k0(e,p,u,t)){n.remove(f);return}var m=e.getItemVisual(u,`symbol`)||`circle`,h=f&&f.getSymbolType&&f.getSymbolType();if(!f||h&&h!==m)n.remove(f),f=new a(e,u,s,c),f.setPosition(p);else{f.updateData(e,u,s,c);var g={x:p[0],y:p[1]};o?f.attr(g):EZ(f,g,r)}n.add(f),e.setItemGraphicEl(u,f)}).remove(function(e){var t=i.getItemGraphicEl(e);t&&t.fadeOut(function(){n.remove(t)},r)}).execute(),this._getSymbolPoint=l,this._data=e},e.prototype.updateLayout=function(e){var t=this._data;if(t)for(var n=this,r=t.getStore(),i=0,a=r.count();i0?n=r[0]:r[1]<0&&(n=r[1]),n}function P0(e,t,n,r){var i=NaN;e.stacked&&(i=n.get(n.getCalculationInfo(`stackedOverDimension`),r)),isNaN(i)&&(i=e.valueStart);var a=e.baseDataOffset,o=[];return o[a]=n.get(e.baseDim,r),o[1-a]=i,t.dataToPoint(o)}function F0(e,t){return!isFinite(e)||!isFinite(t)}var xTe=typeof Float32Array<`u`?Float32Array:void 0,STe=typeof Float64Array<`u`?Float64Array:void 0;function I0(e){return L0({ctor:xTe},e).arr}function L0(e,t){var n=e.arr,r=e.ctor;if(t>GJ&&(t=GJ),!n||e.typed&&n.length=i||h<0)break;if(F0(_,v)){if(c){h+=a;continue}break}if(h===n)e[a>0?`moveTo`:`lineTo`](_,v),d=_,f=v;else{var y=_-l,b=v-u;if(y*y+b*b<.5){h+=a;continue}if(o>0){for(var x=h+a,S=t[x*2],C=t[x*2+1];S===_&&C===v&&g=r||F0(S,C))p=_,m=v;else{E=S-l,D=C-u;var A=_-l,j=S-_,M=v-u,ee=C-v,N=void 0,P=void 0;if(s===`x`){N=Math.abs(A),P=Math.abs(j);var F=E>0?1:-1;p=_-F*N*o,m=v,O=_+F*P*o,k=v}else if(s===`y`){N=Math.abs(M),P=Math.abs(ee);var te=D>0?1:-1;p=_,m=v-te*N*o,O=_,k=v+te*P*o}else N=Math.sqrt(A*A+M*M),P=Math.sqrt(j*j+ee*ee),T=P/(P+N),p=_-E*o*(1-T),m=v-D*o*(1-T),O=_+E*o*T,k=v+D*o*T,O=R0(O,z0(S,_)),k=R0(k,z0(C,v)),O=z0(O,R0(S,_)),k=z0(k,R0(C,v)),E=O-_,D=k-v,p=_-E*N/P,m=v-D*N/P,p=R0(p,z0(l,_)),m=R0(m,z0(u,v)),p=z0(p,R0(l,_)),m=z0(m,R0(u,v)),E=_-p,D=v-m,O=_+E*P/N,k=v+D*P/N}e.bezierCurveTo(d,f,p,m,_,v),d=O,f=k}else e.lineTo(_,v)}l=_,u=v,h+=a}return g}var V0=function(){function e(){this.smooth=0,this.smoothConstraint=!0}return e}(),TTe=function(e){PH(t,e);function t(t){var n=e.call(this,t)||this;return n.type=`ec-polyline`,n}return t.prototype.getDefaultStyle=function(){return{stroke:n0.color.neutral99,fill:null}},t.prototype.getDefaultShape=function(){return new V0},t.prototype.buildPath=function(e,t){var n=t.points,r=0,i=n.length/2;if(t.connectNulls){for(;i>0&&F0(n[i*2-2],n[i*2-1]);i--);for(;r=0){var _=o?(d-a)*g+a:(u-i)*g+i;return o?[e,_]:[_,e]}i=u,a=d;break;case r.C:u=n[c++],d=n[c++],f=n[c++],p=n[c++],m=n[c++],h=n[c++];var v=o?aK(i,u,f,m,e,s):aK(a,d,p,h,e,s);if(v>0)for(var y=0;y=0){var _=o?rK(a,d,p,h,b):rK(i,u,f,m,b);return o?[e,_]:[_,e]}}i=m,a=h;break}}},t}(cJ),ETe=function(e){PH(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(V0),DTe=function(e){PH(t,e);function t(t){var n=e.call(this,t)||this;return n.type=`ec-polygon`,n}return t.prototype.getDefaultShape=function(){return new ETe},t.prototype.buildPath=function(e,t){var n=t.points,r=t.stackedOnPoints,i=0,a=n.length/2,o=t.smoothMonotone;if(t.connectNulls){for(;a>0&&F0(n[a*2-2],n[a*2-1]);a--);for(;i=t[0]&&e<=t[1]},getExtent:function(){return this._extents[0].slice()},getExtentUnsafe:function(e){return this._extents[e]},setExtent:function(e,t){a2(this._extents,0,e,t)},setExtent2:function(e,t,n){var r=this._extents;r[e]||(r[e]=r[0].slice()),a2(r,e,t,n)},freeze:function(){}};function a2(e,t,n,r){kY(n,r)&&(e[t][0]=n,e[t][1]=r)}function o2(e){return s2(e)||l2(e)}function s2(e){return e.type===`interval`}function c2(e){return e.type===`time`}function l2(e){return e.type===`log`}function u2(e){return e.type===`ordinal`}function RTe(e){var t=XJ(e),n=IJ(10,t),r=NJ(e/n);return r?r===2?r=3:r===3?r=5:r*=2:r=1,HJ(r*n,-t)}function d2(e){return WJ(e)+2}function f2(e,t){return LJ(e)/LJ(t)}function p2(e,t,n){var r=n&&n.lookup;if(r){for(var i=0;i1&&a/o>2&&(i=Math.round(Math.ceil(i/o)*o)),i!==r[0]&&c(r[0],!0,!0);for(var s=i;s<=r[1];s+=o)c(s,!1,s===r[0]||s===r[1]);s-o!==r[1]&&c(r[1],!0,!0);function c(e,t,r){n({value:e,offInterval:t},r)}}var _2=function(e){PH(t,e);function t(n){var r=e.call(this)||this;r.type=`ordinal`,r.parse=t.parse,e2(r,t.decoratedMethods);var i=n.ordinalMeta;i||=new Z0({}),bU(i)&&(i=new Z0({categories:fU(i,function(e){return TU(e)?e.value:e})})),r._ordinalMeta=i;var a=$0(null,null,n.extent||[0,i.categories.length-1]);return r._mapper=a.mapper,t2(r,a.mapper),r}return t.parse=function(e){return e==null?e=NaN:SU(e)?(e=this._ordinalMeta.getOrdinal(e),e??=NaN):e=NJ(e),e},t.prototype.getTicks=function(){var e=[];return g2(this,0,function(t){e.push(t)}),e},t.prototype.getMinorTicks=function(e){},t.prototype.setSortInfo=function(e){if(e==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var t=e.ordinalNumbers,n=this._ordinalNumbersByTick=[],r=this._ticksByOrdinalNumber=[],i=0,a=this._ordinalMeta.categories.length,o=AJ(a,t.length);i=0&&e=0&&e=0&&eo[0]&&mi[1]||!isFinite(p)||!isFinite(i[1]))break}else{if(m>f)break;p=AJ(p,i[1]),m===f&&(p=i[1])}if(l.push({value:p}),p=HJ(p+n,a),s){var h=s.calcNiceTickMultiple(p,d);h>=0&&(p=HJ(p+h*n,a))}if(l.length>0&&p===l[l.length-1].value)break;if(l.length>u)return[]}var g=l.length?l[l.length-1].value:i[1];return r[1]>g&&l.push({value:e.expandToNicedExtent?HJ(g+n,a):r[1]}),c&&o.pruneTicksByBreak(e.pruneByBreak,l,s.breaks,function(e){return e.value},t.interval,r),c&&e.breakTicks!==`none`&&o.addBreaksToTicks(l,s.breaks,r),l},t.prototype.getMinorTicks=function(e){return v2(this,e,$$(this),this._cfg.interval)},t.prototype.getLabel=function(e,t){if(e==null)return``;var n=t&&t.precision;return n==null?n=WJ(e.value)||0:n===`auto`&&(n=this._cfg.intervalPrecision),O1(HJ(e.value,n,!0))},t.type=`interval`,t}(X0);X0.registerClass(y2);var BTe=function(e,t,n,r){for(;n>>1;e[i][1]16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function HTe(e){var t=30*i1;return e/=t,e>6?6:e>3?3:e>2?2:1}function UTe(e){return e/=r1,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function C2(e,t){return e/=t?n1:t1,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function WTe(e){return jJ(ZJ(e,!0),1)}function GTe(e,t,n){var r=Math.max(0,cU(l1,t)-1);return m1(new Date(e),l1[r],n).getTime()}function KTe(e,t){var n=new Date(0);n[e](1);var r=n.getTime();n[e](1+t);var i=n.getTime()-r;return function(e,t){return Math.max(0,Math.round((t-e)/i))}}function qTe(e,t,n,r,i,a){var o=ywe,s=0;function c(e,t,n,i,o,c,l){for(var u=KTe(o,e),d=t,f=new Date(d);d3e3));)if(f[o](f[i]()+e),d=f.getTime(),a){var p=a.calcNiceTickMultiple(d,u);p>0&&(f[o](f[i]()+p*e),d=f.getTime())}l.push({value:d,notAdd:d>r[1]})}function l(e,i,a){var o=[],s=!i.length;if(!S2(d1(e),r[0],r[1],n)){s&&(i=[{value:GTe(r[0],e,n)},{value:r[1]}]);for(var l=0;l=r[0]&&u<=r[1]&&c(f,u,d,p,m,h,o),e===`year`&&a.length>1&&l===0&&a.unshift({value:a[0].value-f})}}for(var l=0;l=r[0]&&v<=r[1]&&f++)}var y=i/t;if(f>y*1.5&&p>y/1.5||(u.push(g),f>y||e===o[m]))break}d=[]}}for(var b=mU(fU(u,function(e){return mU(e,function(e){return e.value>=r[0]&&e.value<=r[1]&&!e.notAdd})}),function(e){return e.length>0}),x=b.length-1,S=[],m=0;mr[0])&&S.unshift({value:r[0],time:{level:0,upperTimeUnit:O,lowerTimeUnit:O},notNice:!0}),(!D||D.values&&(a=s);var c=x2.length,l=Math.min(BTe(x2,a,0,c),c-1),u=x2[l][1],d=x2[Math.max(l-1,0)][0];e.setTimeInterval({approxInterval:a,interval:u,minLevelUnit:d})};X0.registerClass(b2);var w2=0,T2=1,YTe=2,E2=function(e){PH(t,e);function t(n){var r=e.call(this)||this;r.type=`log`,r.parse=y2.parse,r.base=n.logBase||10;var i=[],a=[],o=r._lookup={from:i,to:a};i[w2]=i[T2]=a[w2]=a[T2]=NaN,e2(r,t.mapperMethods);var s=Z$(),c=n.breakOption,l={lookup:o};return s&&s.parseAxisBreakOptionInwardTransform(c,r,{noNegative:!0},YTe,l),r.powStub=new y2({breakParsed:l.original}),r.intervalStub=new y2({breakParsed:l.transformed}),t2(r,r.intervalStub),r}return t.prototype.getTicks=function(e){var t=this.base,n=this.powStub,r=Z$(),i=this.intervalStub,a={lookup:{from:i.getExtent(),to:n.getExtent()}};return fU(i.getTicks(e||{}),function(e){var i=e.value,o=p2(i,t,a),s;if(r){var c=r.getTicksBreakOutwardTransform(this,e,$$(n),this._lookup);c&&(s=c.vBreak,o=c.tickVal)}return{value:o,break:s}},this)},t.prototype.getMinorTicks=function(e){return v2(this,e,$$(this.powStub),this.intervalStub.getConfig().interval)},t.prototype.getLabel=function(e,t){return this.intervalStub.getLabel(e,t)},t.type=`log`,t.mapperMethods={needTransform:function(){return!0},normalize:function(e){return this.intervalStub.normalize(f2(e,this.base))},scale:function(e){return p2(this.intervalStub.scale(e),this.base,null)},transformIn:function(e,t){return e=f2(e,this.base),t&&t.depth===2?e:this.intervalStub.transformIn(e,t)},transformOut:function(e,t){var n=t?t.depth:null;return D2.depth=n,O2.lookup=this._lookup,p2(n===2?e:this.intervalStub.transformOut(e,D2),this.base,O2)},contain:function(e){return this.powStub.contain(e)},setExtent:function(e,t){this.setExtent2(0,e,t)},setExtent2:function(e,t,n){if(!(!kY(t,n)||t<=0||n<=0)){var r=k2,i=k2;if(e===0){var a=this._lookup;r=a.to,i=a.from}this.powStub.setExtent2(e,r[w2]=t,r[T2]=n);var o=this.base;this.intervalStub.setExtent2(e,i[w2]=f2(t,o),i[T2]=f2(n,o))}},getFilter:function(){return{g:0}},sanitize:function(e,t){return kY(t[0],t[1])&&nY(e)&&e<=0&&(e=t[0]),e},getDefaultStartValue:function(){return 1},getExtent:function(){return this.powStub.getExtent()},getExtentUnsafe:function(e,t){return t===null?this.powStub.getExtentUnsafe(e,null):this.intervalStub.getExtentUnsafe(e,t)}},t}(X0);X0.registerClass(E2);var D2={},O2={},k2=[],A2={value:1,category:1,time:1,log:1},j2=vY();function XTe(e){var t=e.get(`type`);return(t==null||!XU(A2,t)&&!X0.getClass(t))&&(t=`value`),t}function ZTe(e,t,n){var r=Z$(),i;switch(r&&(i=L2(e,t,n)),t){case`category`:return new _2({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:wY()});case`time`:return new b2({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get(`useUTC`),breakOption:i});case`log`:return new E2({logBase:e.get(`logBase`),breakOption:i});case`value`:return new y2({breakOption:i});default:return new((X0.getClass(t))||y2)({})}}function QTe(e,t,n){var r=n?r2(e,null):e.getExtentUnsafe(0,null),i=r[0],a=r[1];return kY(i,a)?i===t||a===t?2:it?1:3:3}function $Te(e){j2(e).noOnMyZero=!0}function eEe(e){return j2(e).noOnMyZero}function M2(e){var t=e.getLabelModel().get(`formatter`);if(e.type===`time`){var n=bwe(t);return function(t,r){return e.scale.getFormattedLabel(t,r,n)}}else if(SU(t))return function(n){var r=e.scale.getLabel(n);return t.replace(`{value}`,r??``)};else if(xU(t)){if(e.type===`category`)return function(n,r){return t(N2(e,n),n.value-e.scale.getExtent()[0],null)};var r=Z$();return function(n,i){var a=null;return r&&(a=r.makeAxisLabelFormatterParamBreak(a,n.break)),t(N2(e,n),i,a)}}else return function(t){return e.scale.getLabel(t)}}function N2(e,t){var n=e.scale;return u2(n)?n.getLabel(t):t.value}function P2(e){return e.get(`interval`)??`auto`}function tEe(e){return e.type===`category`&&P2(e.getLabelModel())===0}function nEe(e,t){var n={};return $(e.mapDimensionsAll(t),function(t){n[XCe(e,t)]=!0}),gU(n)}function F2(e){return e===`middle`||e===`center`}function I2(e){return e.getShallow(`show`)}function L2(e,t,n){var r=e.get(`breaks`,!0);if(r!=null)return!Z$()||!n||!rEe(t)?void 0:r}function rEe(e){return e!==`category`}function R2(e,t,n,r,i,a){var o=l2(e),s=o?e.intervalStub:e;if(s.setExtent(r[0],r[1]),o){var c=e.powStub,l={depth:2},u=e.transformOut(r[0],l),d=e.transformOut(r[1],l),f=zTe(n,r);t[0]&&!f[0]&&(u=i[0]),t[1]&&!f[1]&&(d=i[1]),c.setExtent(u,d)}s.setConfig(a)}function z2(e,t){return u2(e)?e.getRawOrdinalNumber(t.value):t.value}function B2(e,t){return u2(e)&&!!t.get(`boundaryGap`)}function V2(e,t){if(e.length===t.length){for(var n=0;nt){a?n.push(o(a,c,t)):i&&n.push(o(i,c,0),o(i,c,t));break}else i&&=(n.push(o(i,c,0)),null),n.push(c),a=c}return n}function oEe(e,t,n){var r=e.getVisual(`visualMeta`);if(!(!r||!r.length||!e.count())&&t.type===`cartesian2d`){for(var i,a,o=r.length-1;o>=0;o--){var s=e.getDimensionInfo(r[o].dimension);if(i=s&&s.coordDim,i===`x`||i===`y`){a=r[o];break}}if(a){var c=t.getAxis(i),l=fU(a.stops,function(e){return{coord:c.toGlobalCoord(c.dataToCoord(e.value)),color:e.color}}),u=l.length,d=a.outerColors.slice();u&&l[0].coord>l[u-1].coord&&(l.reverse(),d.reverse());var f=aEe(l,i===`x`?n.getWidth():n.getHeight()),p=f.length;if(!p&&u)return l[0].coord<0?d[1]?d[1]:l[u-1].color:d[0]?d[0]:l[0].color;var m=10,h=f[0].coord-m,g=f[p-1].coord+m,_=g-h;if(_<.001)return`transparent`;$(f,function(e){e.offset=(e.coord-h)/_}),f.push({offset:p?f[p-1].offset:.5,color:d[1]||`transparent`}),f.unshift({offset:p?f[0].offset:.5,color:d[0]||`transparent`});var v=new gZ(0,0,0,0,f,!0);return v[i]=h,v[i+`2`]=g,v}}}function sEe(e,t,n){var r=e.get(`showAllSymbol`),i=r===`auto`;if(!(r&&!i)){var a=n.getAxesByScale(`ordinal`)[0];if(a&&!(i&&cEe(a,t))){var o=t.mapDimension(a.dim),s={};return $(a.getViewLabels(),function(e){e.tick.offInterval||(s[z2(a.scale,e.tick)]=1)}),function(e){return!s.hasOwnProperty(t.get(o,e))}}}}function cEe(e,t){var n=e.getExtent(),r=Math.abs(n[1]-n[0])/e.scale.count();isNaN(r)&&(r=0);for(var i=t.count(),a=Math.max(1,Math.round(i/5)),o=0;or)return!1;return!0}function lEe(e){for(var t=e.length/2;t>0&&F0(e[t*2-2],e[t*2-1]);t--);return t-1}function K2(e,t){return[e[t*2],e[t*2+1]]}function uEe(e,t,n){for(var r=e.length/2,i=n===`x`?0:1,a,o,s=0,c=-1,l=0;l=t||a>=t&&o<=t){c=l;break}s=l,a=o}return{range:[s,c],t:(t-a)/(o-a)}}function q2(e){if(e.get([`endLabel`,`show`]))return!0;for(var t=0;t0&&e.get([`emphasis`,`lineStyle`,`width`])===`bolder`){var M=f.getState(`emphasis`).style;M.lineWidth=+f.style.lineWidth+1}PY(f).seriesIndex=e.seriesIndex,TX(f,k,A,j);var ee=W2(e.get(`smooth`)),N=e.get(`smoothMonotone`);if(f.setShape({smooth:ee,smoothMonotone:N,connectNulls:x}),p){var P=a.getCalculationInfo(`stackedOnSeries`),F=0;p.useStyle(sU(s.getAreaStyle(),{fill:E,opacity:.7,lineJoin:`bevel`,decal:a.getVisual(`style`).decal})),P&&(F=W2(P.get(`smooth`))),p.setShape({smooth:ee,stackedOnSmooth:F,smoothMonotone:N,connectNulls:x}),DX(p,e,`areaStyle`),PY(p).seriesIndex=e.seriesIndex,TX(p,k,A,j)}var te=this._changePolyState;a.eachItemGraphicEl(function(e){e&&(e.onHoverStateChange=te)}),this._polyline.onHoverStateChange=te,this._data=a,this._coordSys=r,this._stackedOnPoints=y,this._points=c,this._step=w,this._valueOrigin=_;var ne=e.get(`triggerEvent`),re=e.get(`triggerLineEvent`),ie=re===!0||ne===!0||ne===`line`,ae=re===!0||ne===!0||ne===`area`;this.packEventData(e,f,ie),p&&this.packEventData(e,p,ae)},t.prototype.packEventData=function(e,t,n){PY(t).eventData=n?{componentType:`series`,componentSubType:`line`,componentIndex:e.componentIndex,seriesIndex:e.seriesIndex,seriesName:e.name,seriesType:`line`,selfType:t===this._polygon?`area`:`line`}:null},t.prototype.highlight=function(e,t,n,r){var i=e.getData(),a=_Y(i,r);if(this._changePolyState(`emphasis`),!(a instanceof Array)&&a!=null&&a>=0){var o=i.getLayout(`points`),s=i.getItemGraphicEl(a);if(!s){var c=o[a*2],l=o[a*2+1];if(F0(c,l)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(c,l))return;var u=e.get(`zlevel`)||0,d=e.get(`z`)||0;s=new O0(i,a),s.x=c,s.y=l,s.setZ(u,d);var f=s.getSymbolPath().getTextContent();f&&(f.zlevel=u,f.z=d,f.z2=this._polyline.z2+1),s.__temp=!0,i.setItemGraphicEl(a,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else W0.prototype.highlight.call(this,e,t,n,r)},t.prototype.downplay=function(e,t,n,r){var i=e.getData(),a=_Y(i,r);if(this._changePolyState(`normal`),a!=null&&a>=0){var o=i.getItemGraphicEl(a);o&&(o.__temp?(i.setItemGraphicEl(a,null),this.group.remove(o)):o.downplay())}else W0.prototype.downplay.call(this,e,t,n,r)},t.prototype._changePolyState=function(e){var t=this._polygon;lX(this._polyline,e),t&&lX(t,e)},t.prototype._newPolyline=function(e){var t=this._polyline;return t&&this._lineGroup.remove(t),t=new TTe({shape:{points:e},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(t),this._polyline=t,t},t.prototype._newPolygon=function(e,t){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new DTe({shape:{points:e,stackedOnPoints:t},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},t.prototype._initSymbolLabelAnimation=function(e,t,n){var r,i,a=t.getBaseAxis(),o=a.inverse;t.type===`cartesian2d`?(r=a.isHorizontal(),i=!1):t.type===`polar`&&(r=a.dim===`angle`,i=!0);var s=e.hostModel,c=s.get(`animationDuration`);xU(c)&&(c=c(null));var l=s.get(`animationDelay`)||0,u=xU(l)?l(null):l;e.eachItemGraphicEl(function(e,a){var s=e;if(s){var d=[e.x,e.y],f=void 0,p=void 0,m=void 0;if(n)if(i){var h=n,g=t.pointToCoord(d);r?(f=h.startAngle,p=h.endAngle,m=-g[1]/180*Math.PI):(f=h.r0,p=h.r,m=g[0])}else{var _=n;r?(f=_.x,p=_.x+_.width,m=e.x):(f=_.y+_.height,p=_.y,m=e.y)}var v=p===f?0:(m-f)/(p-f);o&&(v=1-v);var y=xU(l)?l(a):c*v+u,b=s.getSymbolPath(),x=b.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:y}),x&&x.animateFrom({style:{opacity:0}},{duration:300,delay:y}),b.disableLabelAnimation=!0}})},t.prototype._initOrUpdateEndLabel=function(e,t,n){var r=e.getModel(`endLabel`);if(q2(e)){var i=e.getData(),a=this._polyline,o=i.getLayout(`points`);if(!o){a.removeTextContent(),this._endLabel=null;return}var s=this._endLabel;s||(s=this._endLabel=new yJ({z2:200}),s.ignoreClip=!0,a.setTextContent(this._endLabel),a.disableLabelAnimation=!0);var c=lEe(o);c>=0&&(uQ(a,dQ(e,`endLabel`),{inheritColor:n,labelFetcher:e,labelDataIndex:c,defaultText:function(e,t,n){return n==null?E0(i,e):D0(i,n)},enableTextSetter:!0},dEe(r,t)),a.textConfig.position=null)}else this._endLabel&&=(this._polyline.removeTextContent(),null)},t.prototype._endLabelOnDuring=function(e,t,n,r,i,a,o){var s=this._endLabel,c=this._polyline;if(s){e<1&&r.originalX==null&&(r.originalX=s.x,r.originalY=s.y);var l=n.getLayout(`points`),u=n.hostModel,d=u.get(`connectNulls`),f=a.get(`precision`),p=a.get(`distance`)||0,m=o.getBaseAxis(),h=m.isHorizontal(),g=m.inverse,_=t.shape,v=g?h?_.x:_.y+_.height:h?_.x+_.width:_.y,y=(h?p:0)*(g?-1:1),b=(h?0:-p)*(g?-1:1),x=h?`x`:`y`,S=uEe(l,v,x),C=S.range,w=C[1]-C[0],T=void 0;if(w>=1){if(w>1&&!d){var E=K2(l,C[0]);s.attr({x:E[0]+y,y:E[1]+b}),i&&(T=u.getRawValue(C[0]))}else{var E=c.getPointOn(v,x);E&&s.attr({x:E[0]+y,y:E[1]+b});var D=u.getRawValue(C[0]),O=u.getRawValue(C[1]);i&&(T=Oxe(n,f,D,O,S.t))}r.lastFrameIndex=C[0]}else{var k=e===1||r.lastFrameIndex>0?C[0]:0,E=K2(l,k);i&&(T=u.getRawValue(k)),s.attr({x:E[0]+y,y:E[1]+b})}if(i){var A=vQ(s);typeof A.setLabelText==`function`&&A.setLabelText(T)}}},t.prototype._doUpdateAnimation=function(e,t,n,r,i,a,o){var s=this._polyline,c=this._polygon,l=e.hostModel,u=wTe(this._data,e,this._stackedOnPoints,t,this._coordSys,n,this._valueOrigin,a),d=u.current,f=u.stackedOnCurrent,p=u.next,m=u.stackedOnNext;if(i&&(f=G2(u.stackedOnCurrent,u.current,n,i,o),d=G2(u.current,null,n,i,o),m=G2(u.stackedOnNext,u.next,n,i,o),p=G2(u.next,null,n,i,o)),U2(d,p)>3e3||c&&U2(f,m)>3e3){s.stopAnimation(),s.setShape({points:p}),c&&(c.stopAnimation(),c.setShape({points:p,stackedOnPoints:m}));return}s.shape.__points=u.current,s.shape.points=d;var h={shape:{points:p}};u.current!==d&&(h.shape.__points=u.next),s.stopAnimation(),EZ(s,h,l),c&&(c.setShape({points:d,stackedOnPoints:f}),c.stopAnimation(),EZ(c,{shape:{stackedOnPoints:m}},l),s.shape.points!==c.shape.points&&(c.shape.points=s.shape.points));for(var g=[],_=u.status,v=0;v<_.length;v++)if(_[v].cmd===`=`){var y=e.getItemGraphicEl(_[v].idx1);y&&g.push({el:y,ptIdx:v})}s.animators&&s.animators.length&&s.animators[0].during(function(){c&&c.dirtyShape();for(var e=s.shape.__points,t=0;tt&&(t=e[n]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,n=0;n10&&a.type===`cartesian2d`&&i){var s=a.getBaseAxis(),c=a.getOtherAxis(s),l=s.getExtent(),u=n.getDevicePixelRatio(),d=Math.abs(l[1]-l[0])*(u||1),f=Math.round(o/d);if(isFinite(f)&&f>1){i===`lttb`?e.setData(r.lttbDownSample(r.mapDimension(c.dim),1/f)):i===`minmax`&&e.setData(r.minmaxDownSample(r.mapDimension(c.dim),1/f));var p=void 0;SU(i)?p=mEe[i]:xU(i)&&(p=i),p&&e.setData(r.downSample(r.mapDimension(c.dim),1/f,p,hEe))}}}}}function gEe(e){e.registerChartView(fEe),e.registerSeriesModel(_Te),e.registerLayout(pEe(`line`,!0)),e.registerVisual({seriesType:`line`,reset:function(e){var t=e.getData(),n=e.getModel(`lineStyle`).getLineStyle();n&&!n.stroke&&(n.stroke=t.getVisual(`style`).fill),t.setVisual(`legendLineStyle`,n)}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,Y2(`line`))}var _Ee=vY(),X2=vY(),Z2={estimate:1,determine:2};function Q2(e){return{out:{noPxChangeTryDetermine:[]},kind:e}}function vEe(e,t){var n=e.getLabelModel().get(`customValues`);if(n){var r=e.scale;return{labels:fU($2(n,r),function(t,n){return{formattedLabel:M2(e)(t,n),rawLabel:r.getLabel(t),tick:t}})}}return e.type===`category`?bEe(e,t):SEe(e)}function yEe(e,t,n){var r=e.scale,i=e.getTickModel().get(`customValues`);return i?{ticks:$2(i,r)}:e.type===`category`?xEe(e,t):{ticks:r.getTicks(n)}}function $2(e,t){var n=t.getExtent(),r=[];return $(e,function(e){e=t.parse(e),e>=n[0]&&e<=n[1]&&r.push(e)}),jY(r,Pxe,null),UJ(r),fU(r,function(e){return{value:e}})}function bEe(e,t){var n=e.getLabelModel(),r=e4(e,n,t);return!n.get(`show`)||e.scale.isBlank()?{labels:[]}:r}function e4(e,t,n){var r=wEe(e),i=P2(t),a=n.kind===Z2.estimate;if(!a){var o=n4(r,i);if(o)return o}var s,c;xU(i)?s=a4(e,i,!1):(c=i===`auto`?TEe(e,n):i,s=a4(e,c,!1));var l={labels:s,labelCategoryInterval:c};return a?n.out.noPxChangeTryDetermine.push(function(){return r4(r,i,l),!0}):r4(r,i,l),l}function xEe(e,t){var n=CEe(e),r=P2(t),i=n4(n,r);if(i)return i;var a,o;if((!t.get(`show`)||e.scale.isBlank())&&(a=[]),xU(r))a=a4(e,r,!0);else if(r===`auto`){var s=e4(e,e.getLabelModel(),Q2(Z2.determine));o=s.labelCategoryInterval,a=fU(s.labels,function(e){return e.tick})}else o=r,a=a4(e,o,!0);return r4(n,r,{ticks:a,tickCategoryInterval:o})}function SEe(e){var t=e.scale.getTicks(),n=M2(e);return{labels:fU(t,function(t,r){return{formattedLabel:n(t,r),rawLabel:e.scale.getLabel(t),tick:t}})}}var CEe=t4(`axisTick`),wEe=t4(`axisLabel`);function t4(e){return function(t){return X2(t)[e]||(X2(t)[e]={list:[]})}}function n4(e,t){for(var n=0;nu&&(l=Math.max(1,Math.floor(c/u)));for(var d=s[0],f=e.dataToCoord(d+1)-e.dataToCoord(d),p=Math.abs(f*Math.cos(a)),m=Math.abs(f*Math.sin(a)),h=0,g=0;d<=s[1];d+=l){var _=0,v=0,y=_G(i({value:d}),r.font,`center`,`top`);_=y.width*1.3,v=y.height*1.3,h=Math.max(h,_,7),g=Math.max(g,v,7)}var b=h/p,x=g/m;isNaN(b)&&(b=1/0),isNaN(x)&&(x=1/0);var S=Math.max(0,Math.floor(Math.min(b,x)));return n===Z2.estimate?(t.out.noPxChangeTryDetermine.push(vU(DEe,null,e,S,c)),S):i4(e,S,c)??S}function DEe(e,t,n){return i4(e,t,n)==null}function i4(e,t,n){var r=_Ee(e.model),i=e.getExtent(),a=r.lastAutoInterval,o=r.lastTickCount;if(a!=null&&o!=null&&Math.abs(a-t)<=1&&Math.abs(o-n)<=1&&a>t&&r.axisExtent0===i[0]&&r.axisExtent1===i[1])return a;r.lastTickCount=n,r.lastAutoInterval=t,r.axisExtent0=i[0],r.axisExtent1=i[1]}function OEe(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get(`rotate`)||0,font:t.getFont()}}function a4(e,t,n){var r=M2(e),i=e.scale,a=[],o=xU(t);return g2(i,o?0:t,function(e,s){var c=i.getLabel(e);if(o){var l=!!t(e.value,c);if(e.offInterval=!l,!l&&!s)return}a.push(n?e:{formattedLabel:r(e),rawLabel:c,tick:e})}),a}var o4=vY();function kEe(e){o4(e).prepare={}}function AEe(e){o4(e).fullUpdate={}}function jEe(e){return o4(e).prepare}function s4(e){return o4(e).fullUpdate}var MEe=AY(),c4=vY(),NEe=vY();function l4(e,t){var n=e.model,r=c4(s4(n.ecModel)).keyed,i=r&&r.get(t);return i&&i.get(n.uid)}function PEe(e,t){return d4(l4(e,t))}function FEe(e,t){var n=[];return u4(e.model.ecModel,function(e){for(var r=0;r0?(t>o&&(o=t),a=!1):t===-2&&(a=!0))}),nY(n)&&n>0&&nY(o)?(e.w=r/n*o,e.w2=o):a&&(e.w=r*VEe,e.w2=e.w*n/r)}var b4=[0,1],WEe=function(){function e(e,t,n){this.onBand=!1,this.inverse=!1,this.dim=e,this.scale=t,this._extent=n||[0,0]}return e.prototype.contain=function(e){var t=this._extent,n=Math.min(t[0],t[1]),r=Math.max(t[0],t[1]);return e>=n&&e<=r},e.prototype.containData=function(e){return this.scale.contain(this.scale.parse(e))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(e,t){var n=this._extent;n[0]=e,n[1]=t},e.prototype.dataToCoord=function(e,t){var n=this.scale;return e=n.normalize(n.parse(e)),zJ(e,b4,x4(this),t)},e.prototype.coordToData=function(e,t){var n=zJ(e,x4(this),b4,t);return this.scale.scale(n)},e.prototype.pointToData=function(e,t){},e.prototype.getTicksCoords=function(e){e||={};var t=e.tickModel||this.getTickModel(),n=fU(yEe(this,t,{breakTicks:e.breakTicks,pruneByBreak:e.pruneByBreak}).ticks,function(e){return{coord:this.dataToCoord(z2(this.scale,e)),tick:e}},this),r=t.get(`alignWithLabel`),i=GEe(this,n,r);return fU(n,function(e){return{coord:e.coord,tickValue:e.tick.value,onBand:i}})},e.prototype.getMinorTicksCoords=function(){if(u2(this.scale))return[];var e=this.model.getModel(`minorTick`).get(`splitNumber`);return e>0&&e<100||(e=5),fU(this.scale.getMinorTicks(e),function(e){return fU(e,function(e){return{coord:this.dataToCoord(e),tickValue:e}},this)},this)},e.prototype.getViewLabels=function(e){return e||=Q2(Z2.determine),vEe(this,e).labels},e.prototype.getLabelModel=function(){return this.model.getModel(`axisLabel`)},e.prototype.getTickModel=function(){return this.model.getModel(`axisTick`)},e.prototype.getBandWidth=function(){return y4(this,{min:1}).w},e.prototype.calculateCategoryInterval=function(e){return e||=Q2(Z2.determine),EEe(this,e)},e}();function x4(e){var t=e.getExtent();if(e.onBand){var n=(t[1]-t[0])/e.scale.count()/2;t[0]+=n,t[1]-=n}return t}function GEe(e,t,n){var r=t.length;if(!e.onBand||n||!r)return!1;var i=y4(e).w;if(!i)return!1;$(t,function(e){e.coord-=i/2});var a=e.scale.getExtent(),o=t[r-1];return o.tick.offInterval&&t.pop(),t.push({coord:o.coord+i,tick:{value:a[1]+1}}),!0}var KEe=function(e){PH(t,e);function t(t,n,r,i,a){var o=e.call(this,t,n,r)||this;return o.index=0,o.type=i||`value`,o.position=a||`bottom`,o}return t.prototype.isHorizontal=function(){var e=this.position;return e===`top`||e===`bottom`},t.prototype.getGlobalExtent=function(e){var t=this.getExtent();return t[0]=this.toGlobalCoord(t[0]),t[1]=this.toGlobalCoord(t[1]),e&&t[0]>t[1]&&t.reverse(),t},t.prototype.pointToData=function(e,t){return this.coordToData(this.toLocalCoord(e[this.dim===`x`?0:1]),t)},t.prototype.setCategorySortInfo=function(e){if(this.type!==`category`)return!1;this.model.option.categorySortInfo=e,this.scale.setSortInfo(e)},t}(WEe),S4=[`label`,`labelLine`,`layoutOption`,`priority`,`defaultAttr`,`marginForce`,`minMarginForce`,`marginDefault`,`suggestIgnore`],qEe=1,C4=2,w4=qEe|C4;function T4(e,t,n){n||=w4,t?e.dirty|=n:e.dirty&=~n}function E4(e,t){return t||=w4,e.dirty==null||!!(e.dirty&t)}function D4(e){if(e)return E4(e)&&JEe(e,e.label,e),e}function JEe(e,t,n){var r=t.getComputedTransform();e.transform=rQ(e.transform,r);var i=e.localRect=nQ(e.localRect,t.getBoundingRect()),a=t.style,o=a.margin,s=n&&n.marginForce,c=n&&n.minMarginForce,l=n&&n.marginDefault,u=a.__marginType;u==null&&l&&(o=l,u=yQ.textMargin);for(var d=0;d<4;d++)O4[d]=u===yQ.minMargin&&c&&c[d]!=null?c[d]:s&&s[d]!=null?s[d]:o?o[d]:0;u===yQ.textMargin&&JZ(i,O4,!1,!1);var f=e.rect=nQ(e.rect,i);return r&&f.applyTransform(r),u===yQ.minMargin&&JZ(f,O4,!1,!1),e.axisAligned=eQ(r),(e.label=e.label||{}).ignore=t.ignore,T4(e,!1),T4(e,!0,C4),e}var O4=[0,0,0,0];function YEe(e,t,n){return e.transform=rQ(e.transform,n),e.localRect=nQ(e.localRect,t),e.rect=nQ(e.rect,t),n&&e.rect.applyTransform(n),e.axisAligned=eQ(n),e.obb=void 0,(e.label=e.label||{}).ignore=!1,e}function XEe(e,t){if(e){e.label.x+=t.x,e.label.y+=t.y,e.label.markRedraw();var n=e.transform;n&&(n[4]+=t.x,n[5]+=t.y);var r=e.rect;r&&(r.x+=t.x,r.y+=t.y);var i=e.obb;i&&i.fromBoundingRect(e.localRect,n)}}function k4(e,t){for(var n=0;n.1?`x`:`y`,u=a.transGroup[l];if(o.sort(function(e,t){return Math.abs(e.label[l]-u)-Math.abs(t.label[l]-u)}),c&&s){var d=i.getExtent(),f=Math.min(d[0],d[1]),p=Math.max(d[0],d[1])-f;s.union(new iG(f,0,p,1))}a.stOccupiedRect=s,a.labelInfoList=o}var L4=kW(),R4=new iG(0,0,0,0),z4=function(e,t,n,r,i,a){if(F2(e.nameLocation)){var o=a.stOccupiedRect;o&&B4(YEe({},o,a.transGroup.transform),r,i)}else V4(a.labelInfoList,a.dirVec,r,i)};function B4(e,t,n){var r=new GW;j4(e,t,r,{direction:Math.atan2(n.y,n.x),bidirectional:!1,touchThreshold:.05})&&XEe(t,r)}function V4(e,t,n,r){for(var i=GW.dot(r,t)>=0,a=0,o=e.length;a0?`top`:`bottom`,i=`center`):qJ(r-N4)?(a=n>0?`bottom`:`top`,i=`center`):(a=`middle`,i=r>0&&r0?`right`:`left`:n>0?`left`:`right`),{rotation:r,textAlign:i,textVerticalAlign:a}},e.makeAxisEventDataBase=function(e){var t={componentType:e.mainType,componentIndex:e.componentIndex};return t[e.mainType+`Index`]=e.componentIndex,t},e.isLabelSilent=function(e){var t=e.get(`tooltip`);return e.get(`silent`)||!(e.get(`triggerEvent`)||t&&t.show)},e}(),rDe=[`axisLine`,`axisTickLabelEstimate`,`axisTickLabelDetermine`,`axisName`],iDe={axisLine:function(e,t,n,r,i,a,o){var s=r.get([`axisLine`,`show`]);if(s===`auto`&&(s=!0,e.raw.axisLineAutoShow!=null&&(s=!!e.raw.axisLineAutoShow)),s){var c=r.axis.getExtent(),l=a.transform,u=[c[0],0],d=[c[1],0],f=u[0]>d[0];l&&(HW(u,u,l),HW(d,d,l));var p=aU({lineCap:`round`},r.getModel([`axisLine`,`lineStyle`]).getLineStyle()),m={strokeContainThreshold:e.raw.strokeContainThreshold||5,silent:!0,z2:1,style:p};if(r.get([`axisLine`,`breakLine`])&&e1(r.axis.scale))M4().buildAxisBreakLine(r,i,a,m);else{var h=new uZ(aU({shape:{x1:u[0],y1:u[1],x2:d[0],y2:d[1]}},m));VZ(h.shape,h.style.lineWidth),h.anid=`line`,i.add(h)}var g=r.get([`axisLine`,`symbol`]);if(g!=null){var _=r.get([`axisLine`,`symbolSize`]);SU(g)&&(g=[g,g]),(SU(_)||wU(_))&&(_=[_,_]);var v=T0(r.get([`axisLine`,`symbolOffset`])||0,_),y=_[0],b=_[1];$([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((u[0]-d[0])*(u[0]-d[0])+(u[1]-d[1])*(u[1]-d[1]))}],function(t,n){if(g[n]!==`none`&&g[n]!=null){var r=w0(g[n],-y/2,-b/2,y,b,p.stroke,!0),a=t.r+t.offset,o=f?d:u;r.attr({rotation:t.rotate,x:o[0]+a*Math.cos(e.rotation),y:o[1]-a*Math.sin(e.rotation),silent:!0,z2:11}),i.add(r)}})}}},axisTickLabelEstimate:function(e,t,n,r,i,a,o,s){K4(t,i,s)&&U4(e,t,n,r,i,a,o,Z2.estimate)},axisTickLabelDetermine:function(e,t,n,r,i,a,o,s){K4(t,i,s)&&U4(e,t,n,r,i,a,o,Z2.determine);var c=cDe(e,i,a,r);sDe(e,t.labelLayoutList,c),lDe(e,i,a,r,e.tickDirection)},axisName:function(e,t,n,r,i,a,o,s){var c=n.ensureRecord(r);t.nameEl&&=(i.remove(t.nameEl),c.nameLayout=c.nameLocation=null);var l=e.axisName;if(X4(l)){var u=e.nameLocation,d=e.nameDirection,f=r.getModel(`nameTextStyle`),p=r.get(`nameGap`)||0,m=r.axis.getExtent(),h=r.axis.inverse?-1:1,g=new GW(0,0),_=new GW(0,0);u===`start`?(g.x=m[0]-h*p,_.x=-h):u===`end`?(g.x=m[1]+h*p,_.x=h):(g.x=(m[0]+m[1])/2,g.y=e.labelOffset+d*p,_.y=d);var v=kW();_.transform(PW(v,v,e.rotation));var y=r.get(`nameRotate`);y!=null&&(y=y*N4/180);var b,x;F2(u)?b=H4.innerTextLayout(e.rotation,y??e.rotation,d):(b=aDe(e.rotation,u,y||0,m),x=e.raw.axisNameAvailableWidth,x!=null&&(x=Math.abs(x/Math.sin(b.rotation)),!isFinite(x)&&(x=null)));var S=f.getFont(),C=r.get(`nameTruncate`,!0)||{},w=C.ellipsis,T=MU(e.raw.nameTruncateMaxWidth,C.maxWidth,x),E=s.nameMarginLevel||0,D=new yJ({x:g.x,y:g.y,rotation:b.rotation,silent:H4.isLabelSilent(r),style:fQ(f,{text:l,font:S,overflow:`truncate`,width:T,ellipsis:w,fill:f.getTextColor()||r.get([`axisLine`,`lineStyle`,`color`]),align:f.get(`align`)||b.textAlign,verticalAlign:f.get(`verticalAlign`)||b.textVerticalAlign}),z2:1});if(ZZ({el:D,componentModel:r,itemName:l}),D.__fullText=l,D.anid=`name`,r.get(`triggerEvent`)){var O=H4.makeAxisEventDataBase(r);O.targetType=`axisName`,O.name=l,PY(D).eventData=O}a.add(D),D.updateTransform(),t.nameEl=D;var k=c.nameLayout=D4({label:D,priority:D.z2,defaultAttr:{ignore:D.ignore},marginDefault:F2(u)?eDe[E]:tDe[E]});if(c.nameLocation=u,i.add(D),D.decomposeTransform(),e.shouldNameMoveOverlap&&k){var A=n.ensureRecord(r);n.resolveAxisNameOverlap(e,n,r,k,_,A)}}}};function U4(e,t,n,r,i,a,o,s){q4(t)||uDe(e,t,i,s,r,o);var c=t.labelLayoutList;dDe(e,r,c,a),mDe(r,e.rotation,c);var l=e.optionHideOverlap;oDe(r,c,l),l&&ZEe(mU(c,function(e){return e&&!e.label.ignore})),nDe(e,n,r,c)}function aDe(e,t,n,r){var i=KJ(n-e),a,o,s=r[0]>r[1],c=t===`start`&&!s||t!==`start`&&s;return qJ(i-N4/2)?(o=c?`bottom`:`top`,a=`center`):qJ(i-N4*1.5)?(o=c?`top`:`bottom`,a=`center`):(o=`middle`,a=iN4/2?c?`left`:`right`:c?`right`:`left`),{rotation:i,textAlign:a,textVerticalAlign:o}}function oDe(e,t,n){var r=e.axis,i=e.get([`axisLabel`,`customValues`]);if(tEe(r))return;function a(e,a,o){var s=D4(t[a]),c=D4(t[o]),l=r.scale;if(!(!s||!c)){if(e==null){if(!n&&i)return;var u=P4(s.label).labelInfo.tick;if(c2(l)&&u.notNice||u2(l)&&u.offInterval){W4(s.label);return}}if(e===!1||s.suggestIgnore){W4(s.label);return}if(c.suggestIgnore){W4(c.label);return}var d=.1;if(!n){var f=[0,0,0,0];s=k4({marginForce:f},s),c=k4({marginForce:f},c)}j4(s,c,null,{touchThreshold:d})&&W4(e?c.label:s.label)}}var o=e.get([`axisLabel`,`showMinLabel`]),s=e.get([`axisLabel`,`showMaxLabel`]),c=t.length;a(o,0,1),a(s,c-1,c-2)}function sDe(e,t,n){e.showMinorTicks||$(t,function(e){if(e&&e.label.ignore)for(var t=0;t0&&u[1]>0&&!d[0]&&(u[0]=0),u[0]<0&&u[1]<0&&!d[1]&&(u[1]=0));var y=!1;u[0]>u[1]&&(u.reverse(),y=!0);var b=e3(e,t.get(`startValue`,!0)),x=b!=null;!nY(b)&&r&&(b=e.getDefaultStartValue?e.getDefaultStartValue():0),nY(b)&&(x||!_||v)&&(bu[1]&&!d[1]&&(u[1]=b,d[1]=!0)),$4(this._i={scale:e,dataMM:l,noZoomEffMM:u,zoomMM:[],fixMM:d,zoomFixMM:[!1,!1],startValue:b,isBlank:g,incl0:v,tggAxInv:y,ctnShp:i},u)}return e.prototype.makeNoZoom=function(){return this._i.noZoomEffMM.slice()},e.prototype.makeFinal=function(){var e=this._i,t=e.zoomMM,n=e.noZoomEffMM,r=e.zoomFixMM,i=e.fixMM,a={fixMM:i,zoomFixMM:r,isBlank:e.isBlank,incl0:e.incl0,tggAxInv:e.tggAxInv,ctnShp:e.ctnShp,effMM:n.slice()},o=a.effMM;return t[0]!=null&&(o[0]=t[0],i[0]=r[0]=!0),t[1]!=null&&(o[1]=t[1],i[1]=r[1]=!0),$4(e,o),a},e.prototype.makeRenderInfo=function(){return{startValue:this._i.startValue}},e.prototype.setZoomMM=function(e,t){this._i.zoomMM[e]=t},e}();function $4(e,t){var n=e.scale,r=e.dataMM;n.sanitize&&(t[0]=n.sanitize(t[0],r),t[1]=n.sanitize(t[1],r),jxe(t))}function e3(e,t){return t==null?null:jU(t)?NaN:e.parse(t)}function xDe(e,t){var n;if(u2(e))n=[0,0];else{var r=t.get(`boundaryGap`);typeof r==`boolean`&&(r=null),n=bU(r)?r:[r,r]}return[t3(n[0]),t3(n[1])]}function t3(e){return xG(typeof e==`boolean`?0:e,1)||0}function n3(e){var t=yDe(e.scale);return t.extent||=wY(),t}function SDe(e,t){n3(e).dimIdxInCoord=t.get(e.dim)}function CDe(e,t){var n=e.scale,r=e.model,i=e.dim;n.rawExtentInfo||wDe(n,e,i,r,t)}function wDe(e,t,n,r,i){var a=n3(t),o=a.extent,s=!1;IEe(t,function(r){if(r.boxCoordinateSystem){var i=j$(r).coord,c=a.dimIdxInCoord;if(c>=0&&bU(i)){var l=i[c];l!=null&&!bU(l)&&TY(o,e.parse(l))}}else if(r.coordinateSystem){var u=r.getData();if(u){var d=e.getFilter?e.getFilter():null;$(nEe(u,n),function(e){kxe(o,u.getApproximateExtent(e,d))})}r.__requireStartValue&&r.__requireStartValue(t)&&(s=!0)}});var c=DDe(e,t,r);r3(e,new Q4(e,r,o,s,c),i),a.extent=null}function TDe(e,t){var n=e.scale;r3(n,new Q4(n,e.model,t,!1,!1),bDe)}function r3(e,t,n){e.rawExtentInfo=t,t.from=n}function EDe(e,t){i3.set(e,t)}var i3=KU();function a3(e,t,n,r,i){e.rawExtentInfo||TDe({scale:e,model:t},i||wY());var a=e.rawExtentInfo.makeFinal(),o=a.effMM;return e.setExtent(o[0],o[1]),e.setBlank(a.isBlank),r&&a.tggAxInv&&n&&!n.get(`legacyMinMaxDontInverseAxis`)&&(r.inverse=!r.inverse),a}function DDe(e,t,n){var r=B2(e,n),i=n.get(`containShape`,!0);if(i==null&&!r&&(i=!0),!i)return!1;var a=!1;return m4(t,function(e){a=!!i3.get(e)||a}),a}function ODe(e,t,n,r){if(n.ctnShp){var i;if(m4(e,function(t){var n=i3.get(t);if(n){var a=n(e,r);a&&(i||=[0,0],EY(i,a[0]),DY(i,a[1]),$Te(e))}}),i){var a=t.getExtent();if(u2(t))e.onBand||t.setExtent2(1,AJ(a[0],a[0]+i[0]),jJ(a[1],a[1]+i[1]));else{var o=a.slice();n.zoomFixMM[0]||(o[0]=AJ(o[0],t.transformOut(t.transformIn(o[0],null)+i[0],null))),n.zoomFixMM[1]||(o[1]=jJ(o[1],t.transformOut(t.transformIn(o[1],null)+i[1],null))),(o[0]a[1])&&t.setExtent2(1,o[0],o[1])}}}}function kDe(){zEe(`liPosMinGap`,ADe)}function ADe(e,t,n){var r=KU(),i=n.serUids,a=n.liPosMinGap,o,s=t.axis,c=s.scale,l=c.needTransform(),u=c.getFilter?c.getFilter():null,d=i$(u);function f(n){p4(e,t.sers,function(e){var t=e.getRawData(),r=t.getDimensionIndex(t.mapDimension(s.dim));r>=0&&n(r,e,t.getStore())})}var p=0;if(f(function(e,t,n){r.set(t.uid,1),(!i||!i.hasKey(t.uid))&&(o=!0),p+=n.count()}),(!i||i.keys().length!==r.keys().length)&&(o=!0),!o&&a!=null){t.liPosMinGap=a;return}L0(o3,p);var m=0;f(function(e,t,n){for(var r=0,i=n.count();r0&&v0?-2:-1,n.serUids=r}var o3=L0({ctor:STe},50);function jDe(e){return function(t,n){var r=y4(t,{fromStat:{key:e}});if(nY(r.w2))return[-r.w2/2,r.w2/2]}}function s3(e,t){return e+`|&`+t}function MDe(e){return kDe(),{liPosMinGap:!u2(e.scale)}}function NDe(e,t,n,r){BEe(e,{key:t,seriesType:n,coordSysType:r,getMetrics:MDe})}function PDe(e){return e.scale.rawExtentInfo.makeRenderInfo().startValue}var c3={left:0,right:0,top:0,bottom:0},l3=[`25%`,`25%`],u3=`cartesian2d`,FDe=function(e){PH(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.mergeDefaultAndTheme=function(t,n){var r=G1(t.outerBounds);e.prototype.mergeDefaultAndTheme.apply(this,arguments),r&&t.outerBounds&&W1(t.outerBounds,r)},t.prototype.mergeOption=function(t,n){e.prototype.mergeOption.apply(this,arguments),this.option.outerBounds&&t.outerBounds&&W1(this.option.outerBounds,t.outerBounds)},t.type=`grid`,t.dependencies=[`xAxis`,`yAxis`],t.layoutMode=`box`,t.defaultOption={show:!1,z:0,left:`15%`,top:65,right:`10%`,bottom:80,containLabel:!1,outerBoundsMode:`auto`,outerBounds:c3,outerBoundsContain:`all`,outerBoundsClampWidth:l3[0],outerBoundsClampHeight:l3[1],backgroundColor:n0.color.transparent,borderWidth:1,borderColor:n0.color.neutral30},t}(K1),IDe=AY(),LDe=`__ec_stack_`;function d3(e){return e.get(`stack`)||LDe+e.seriesIndex}function RDe(e,t){var n=zDe(e,t);return n.columnMap=BDe(n),n}function zDe(e,t){var n=s3(t,u3),r=[],i=y4(e,{fromStat:{key:n},min:1});return f4(e,n,function(e){r.push({barWidth:BJ(e.get(`barWidth`),i.w),barMaxWidth:BJ(e.get(`barMaxWidth`),i.w),barMinWidth:BJ(e.get(`barMinWidth`)||(f3(e)?.5:1),i.w),barGap:e.get(`barGap`),barCategoryGap:e.get(`barCategoryGap`),defaultBarGap:e.get(`defaultBarGap`),stackId:d3(e)})}),{bandWidthResult:i,seriesInfo:r}}function BDe(e){var t=e.bandWidthResult.w,n=t,r=0,i,a,o=[],s={};$(e.seriesInfo,function(e,t){t||(a=e.defaultBarGap||0);var c=e.stackId;XU(s,c)||r++;var l=s[c];l||(l=s[c]={width:0,maxWidth:0},o.push(c));var u=e.barWidth;u&&!l.width&&(l.width=u,u=AJ(n,u),n-=u);var d=e.barMaxWidth;d&&(l.maxWidth=d);var f=e.barMinWidth;f&&(l.minWidth=f);var p=e.barGap;p!=null&&(a=p);var m=e.barCategoryGap;m!=null&&(i=m)}),i??=jJ(35-o.length*4,15)+`%`;var c=BJ(i,t),l=BJ(a,1),u=(n-c)/(r+(r-1)*l);u=jJ(u,0),$(o,function(e){var t=s[e],i=t.maxWidth,a=t.minWidth;if(t.width){var o=t.width;i&&(o=AJ(o,i)),a&&(o=jJ(o,a)),t.width=o,n-=o+l*o,r--}else{var o=u;i&&io&&(o=a),o!==u&&(t.width=o,n-=o+l*o,r--)}}),u=(n-c)/(r+(r-1)*l),u=jJ(u,0);var d=0,f;$(o,function(e){var t=s[e];t.width||=u,f=t,d+=t.width*(1+l)}),f&&(d-=f.width*l);var p={},m=-d/2;return $(o,function(e){var n=s[e];p[e]=p[e]||{bandWidth:t,offset:m,width:n.width},m+=n.width*(1+l)}),p}function VDe(e){return{seriesType:e,overallReset:function(t){var n=s3(e,u3);LEe(t,n,function(t){var r=RDe(t,e);f4(t,n,function(e){var t=r.columnMap[d3(e)];e.getData().setLayout({bandWidth:t.bandWidth,offset:t.offset,size:t.width})})})}}}function HDe(e){return{seriesType:e,plan:H0(),reset:function(e){if(hDe(e)){var t=e.getData(),n=e.coordinateSystem,r=n.getBaseAxis(),i=n.getOtherAxis(r),a=t.getDimensionIndex(t.mapDimension(i.dim)),o=t.getDimensionIndex(t.mapDimension(r.dim)),s=e.get(`showBackground`,!0),c=t.mapDimension(i.dim),l=t.getCalculationInfo(`stackResultDimension`),u=N$(t,c)&&!!t.getCalculationInfo(`stackedOnSeries`),d=i.isHorizontal(),f=i.toGlobalCoord(i.dataToCoord(PDe(i))),p=f3(e),m=e.get(`barMinHeight`)||0,h=l&&t.getDimensionIndex(l),g=t.getLayout(`size`),_=t.getLayout(`offset`);return{progress:function(e,t){for(var r=e.count,i=p&&I0(r*3),c=p&&s&&I0(r*3),l=p&&I0(r),v=n.master.getRect(),y=d?v.width:v.height,b,x=t.getStore(),S=0;(b=e.next())!=null;){var C=x.get(u?h:a,b),w=x.get(o,b),T=f,E=void 0;u&&(E=+C-x.get(a,b));var D=void 0,O=void 0,k=void 0,A=void 0;if(d){var j=n.dataToPoint([C,w]);u&&(T=n.dataToPoint([E,w])[0]),D=T,O=j[1]+_,k=j[0]-T,A=g,MJ(k)s){u=(p+l)/2;break}f===1&&(d=m-r[0].tickValue)}u??(l?l&&(u=r[r.length-1].coord):u=r[0].coord),a[n]=e.toGlobalCoord(u)}});else{var o=this.getData(),s=o.getLayout(`offset`),c=o.getLayout(`size`),l=+!r.getBaseAxis().isHorizontal();a[l]+=s+c/2}return a}return[NaN,NaN]},t.prototype.__requireStartValue=function(e){return this.getBaseAxis()!==e},t.type=`series.__base_bar__`,t.defaultOption={z:2,coordinateSystem:`cartesian2d`,legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:`mod`,defaultBarGap:`10%`},t}(y0);y0.registerClass(p3);var GDe=function(e){PH(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.getInitialData=function(){return P$(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get(`realtimeSort`,!0)||null})},t.prototype.getProgressive=function(){return this.get(`large`)?this.get(`progressive`):!1},t.prototype.__preparePipelineContext=function(e,t){var n=MY(this,e,t);return n.progressiveRender&&(n.large=!0),n},t.prototype.brushSelector=function(e,t,n){return n.rect(t.getItemLayout(e))},t.type=`series.bar`,t.dependencies=[`grid`,`polar`],t.defaultOption=I$(p3.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:`rgba(180, 180, 180, 0.2)`,borderColor:null,borderWidth:0,borderType:`solid`,borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:n0.color.primary,borderWidth:2}},realtimeSort:!1}),t}(p3),m3=`\0__throttleOriginMethod`,h3=`\0__throttleRate`,g3=`\0__throttleType`;function _3(e,t,n){var r,i=0,a=0,o=null,s,c,l,u;t||=0;function d(){a=new Date().getTime(),o=null,e.apply(c,l||[])}var f=function(){var e=[...arguments];r=new Date().getTime(),c=this,l=e;var f=u||t,p=u||n;u=null,s=r-(p?i:a)-f,clearTimeout(o),p?o=setTimeout(d,f):s>=0?d():o=setTimeout(d,-s),i=r};return f.clear=function(){o&&=(clearTimeout(o),null)},f.debounceNextCall=function(e){u=e},f}function v3(e,t,n,r){var i=e[t];if(i){var a=i[m3]||i,o=i[g3];if(i[h3]!==n||o!==r){if(n==null||!r)return e[t]=a;i=e[t]=_3(a,n,r===`debounce`),i[m3]=a,i[g3]=r,i[h3]=n}return i}}function y3(e,t){var n=e[t];n&&n[m3]&&(n.clear&&n.clear(),e[t]=n[m3])}var KDe=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),b3=function(e){PH(t,e);function t(t){var n=e.call(this,t)||this;return n.type=`sausage`,n}return t.prototype.getDefaultShape=function(){return new KDe},t.prototype.buildPath=function(e,t){var n=t.cx,r=t.cy,i=Math.max(t.r0||0,0),a=Math.max(t.r,0),o=(a-i)*.5,s=i+o,c=t.startAngle,l=t.endAngle,u=t.clockwise,d=Math.PI*2,f=u?l-cMath.PI/2&&ua)return!0;a=l}return!1},t.prototype._isOrderDifferentInView=function(e,t){for(var n=t.scale,r=n.getExtent(),i=Math.max(0,r[0]),a=Math.min(r[1],n.getOrdinalMeta().categories.length-1);i<=a;++i)if(e.ordinalNumbers[i]!==n.getRawOrdinalNumber(i))return!0},t.prototype._updateSortWithinSameData=function(e,t,n,r){if(this._isOrderChangedWithinSameData(e,t,n)){var i=this._dataSort(e,n,t);this._isOrderDifferentInView(i,n)&&(this._removeOnRenderedListener(r),r.dispatchAction({type:`changeAxisOrder`,componentType:n.dim+`Axis`,axisId:n.index,sortInfo:i}))}},t.prototype._dispatchInitSort=function(e,t,n){var r=t.baseAxis,i=this._dataSort(e,r,function(n){return e.get(e.mapDimension(t.otherAxis.dim),n)});n.dispatchAction({type:`changeAxisOrder`,componentType:r.dim+`Axis`,isInitSort:!0,axisId:r.index,sortInfo:i})},t.prototype.remove=function(e,t){this._clear(this._model),this._removeOnRenderedListener(t)},t.prototype.dispose=function(e,t){this._removeOnRenderedListener(t)},t.prototype._removeOnRenderedListener=function(e){this._onRendered&&=(e.getZr().off(`rendered`,this._onRendered),null)},t.prototype._clear=function(e){var t=this.group,n=this._data;e&&e.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl(function(t){jZ(t,e,PY(t).dataIndex)})):t.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type=`bar`,t}(W0),T3={cartesian2d:function(e,t){var n=t.width<0?-1:1,r=t.height<0?-1:1;n<0&&(t.x+=t.width,t.width=-t.width),r<0&&(t.y+=t.height,t.height=-t.height);var i=e.x+e.width,a=e.y+e.height,o=C3(t.x,e.x),s=w3(t.x+t.width,i),c=C3(t.y,e.y),l=w3(t.y+t.height,a),u=si?s:o,t.y=d&&c>a?l:c,t.width=u?0:s-o,t.height=d?0:l-c,n<0&&(t.x+=t.width,t.width=-t.width),r<0&&(t.y+=t.height,t.height=-t.height),u||d},polar:function(e,t){var n=t.r0<=t.r?1:-1;if(n<0){var r=t.r;t.r=t.r0,t.r0=r}var i=w3(t.r,e.r),a=C3(t.r0,e.r0);t.r=i,t.r0=a;var o=i-a<0;if(n<0){var r=t.r;t.r=t.r0,t.r0=r}return o}},E3={cartesian2d:function(e,t,n,r,i,a,o,s,c){var l=new hJ({shape:aU({},r),z2:1});if(l.__dataIndex=n,l.name=`item`,a){var u=l.shape,d=i?`height`:`width`;u[d]=0}return l},polar:function(e,t,n,r,i,a,o,s,c){var l=!i&&c?b3:aZ,u=new l({shape:r,z2:1});if(u.name=`item`,u.calculateTextPosition=qDe(j3(i),{isRoundCap:l===b3}),a){var d=u.shape,f=i?`r`:`endAngle`,p={};d[f]=i?r.r0:r.startAngle,p[f]=r[f],(s?EZ:DZ)(u,{shape:p},a)}return u}};function ZDe(e,t){var n=e.get(`realtimeSort`,!0),r=t.getBaseAxis();if(n&&r.type===`category`&&t.type===`cartesian2d`)return{baseAxis:r,otherAxis:t.getOtherAxis(r)}}function D3(e,t,n,r,i,a,o,s){var c,l;a?(l={x:r.x,width:r.width},c={y:r.y,height:r.height}):(l={y:r.y,height:r.height},c={x:r.x,width:r.width}),s||(o?EZ:DZ)(n,{shape:c},t,i,null);var u=t?e.baseAxis.model:null;(o?EZ:DZ)(n,{shape:l},u,i)}function O3(e,t){for(var n=0;n0?1:-1,o=r.height>0?1:-1;return{x:r.x+a*i/2,y:r.y+o*i/2,width:r.width-a*i,height:r.height-o*i}},polar:function(e,t,n){var r=e.getItemLayout(t);return{cx:r.cx,cy:r.cy,r0:r.r0,r:r.r,startAngle:r.startAngle,endAngle:r.endAngle,clockwise:r.clockwise}}};function eOe(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function j3(e){return function(e){var t=e?`Arc`:`Angle`;return function(e){switch(e){case`start`:case`insideStart`:case`end`:case`insideEnd`:return e+t;default:return e}}}(e)}function M3(e,t,n,r,i,a,o,s){var c=t.getItemVisual(n,`style`);if(!s){var l=r.get([`itemStyle`,`borderRadius`])||0;e.setShape(`r`,l)}else if(!a.get(`roundCap`)){var u=e.shape;aU(u,YDe(r.getModel(`itemStyle`),u,!0)),e.setShape(u)}e.useStyle(c);var d=r.getShallow(`cursor`);d&&e.attr(`cursor`,d);var f=s?o?i.r>=i.r0?`endArc`:`startArc`:i.endAngle>=i.startAngle?`endAngle`:`startAngle`:o?aOe(i,a.coordinateSystem):oOe(i,a.coordinateSystem),p=dQ(r);uQ(e,p,{labelFetcher:a,labelDataIndex:n,defaultText:E0(a.getData(),n),inheritColor:c.fill,defaultOpacity:c.opacity,defaultOutsidePosition:f});var m=e.getTextContent();if(s&&m){var h=r.get([`label`,`position`]);e.textConfig.inside=h===`middle`||null,JDe(e,h===`outside`?f:h,j3(o),r.get([`label`,`rotate`]))}iCe(m,p,a.getRawValue(n),function(e){return D0(t,e)});var g=r.getModel([`emphasis`]);TX(e,g.get(`focus`),g.get(`blurScope`),g.get(`disabled`)),DX(e,r),eOe(i)&&(e.style.fill=`none`,e.style.stroke=`none`,$(e.states,function(e){e.style&&(e.style.fill=e.style.stroke=`none`)}))}function tOe(e,t){var n=e.get([`itemStyle`,`borderColor`]);if(!n||n===`none`)return 0;var r=e.get([`itemStyle`,`borderWidth`])||0,i=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),a=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(r,i,a)}var nOe=function(){function e(){}return e}(),N3=function(e){PH(t,e);function t(t){var n=e.call(this,t)||this;return n.type=`largeBar`,n}return t.prototype.getDefaultShape=function(){return new nOe},t.prototype.buildPath=function(e,t){for(var n=t.points,r=this.baseDimIdx,i=1-this.baseDimIdx,a=[],o=[],s=this.barWidth,c=0;c=0?n:null},30,!1);function rOe(e,t,n){for(var r=e.baseDimIdx,i=1-r,a=e.shape.points,o=e.largeDataIndices,s=[],c=[],l=e.barWidth,u=0,d=a.length/3;u=s[0]&&t<=s[0]+c[0]&&n>=s[1]&&n<=s[1]+c[1])return o[u]}return-1}function I3(e,t,n){if(Y0(n,`cartesian2d`)){var r=t,i=n.getArea();return{x:e?r.x:i.x,y:e?i.y:r.y,width:e?r.width:i.width,height:e?i.height:r.height}}else{var i=n.getArea(),a=t;return{cx:i.cx,cy:i.cy,r0:e?i.r0:a.r0,r:e?i.r:a.r,startAngle:e?a.startAngle:0,endAngle:e?a.endAngle:Math.PI*2}}}function iOe(e,t,n){return new(e.type===`polar`?aZ:hJ)({shape:I3(t,n,e),silent:!0,z2:0})}function aOe(e,t){return e.height===0?t.getOtherAxis(t.getBaseAxis()).inverse?`bottom`:`top`:e.height>0?`bottom`:`top`}function oOe(e,t){return e.width===0?t.getOtherAxis(t.getBaseAxis()).inverse?`left`:`right`:e.width>=0?`right`:`left`}function sOe(e){e.registerChartView(XDe),e.registerSeriesModel(GDe),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,VDe(`bar`)),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,HDe(`bar`)),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,Y2(`bar`)),e.registerAction({type:`changeAxisOrder`,event:`changeAxisOrder`,update:`update`},function(e,t){var n=e.componentType||`series`;t.eachComponent({mainType:n,query:e},function(t){e.sortInfo&&t.axis.setCategorySortInfo(e.sortInfo)})}),WDe(e)}function L3(e,t,n,r,i){var a=e+t;n.isSilent(a)||r.eachComponent({mainType:`series`,subType:`pie`},function(e){for(var t=e.seriesIndex,r=e.option.selectedMap,o=i.selected,s=0;s=0){var i=r===`touchend`?t.changedTouches[0]:t.targetTouches[0];i&&B3(e,i,t,n)}else{B3(e,t,t,n);var a=fOe(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var o=t.button;return t.which==null&&o!==void 0&&uOe.test(t.type)&&(t.which=o&1?1:o&2?3:o&4?2:0),t}function fOe(e){var t=e.wheelDelta;if(t)return t;var n=e.deltaX,r=e.deltaY;if(n==null||r==null)return t;var i=Math.abs(r===0?n:r),a=r>0?-1:r<0?1:n>0?-1:1;return 3*i*a}function pOe(e,t,n,r){e.addEventListener(t,n,r)}function mOe(e,t,n,r){e.removeEventListener(t,n,r)}var W3=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},hOe=function(){function e(){this._track=[]}return e.prototype.recognize=function(e,t,n){return this._doTrack(e,t,n),this._recognize(e)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(e,t,n){var r=e.touches;if(r){for(var i={points:[],touches:[],target:t,event:e},a=0,o=r.length;a1&&r&&r.length>1){var a=G3(r)/G3(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=gOe(r);return t.pinchX=o[0],t.pinchY=o[1],{type:`pinch`,target:e[0].target,event:t}}}}},q3=`silent`;function _Oe(e,t,n){return{type:e,event:n,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:vOe}}function vOe(){W3(this.event)}var yOe=function(e){bW(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.handler=null,t}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ZK),J3=function(){function e(e,t){this.x=e,this.y=t}return e}(),bOe=[`click`,`dblclick`,`mousewheel`,`mouseout`,`mouseup`,`mousedown`,`mousemove`,`contextmenu`],Y3=new iG(0,0,0,0),X3=function(e){bW(t,e);function t(t,n,r,i,a){var o=e.call(this)||this;return o._hovered=new J3(0,0),o.storage=t,o.painter=n,o.painterRoot=i,o._pointerSize=a,r||=new yOe,o.proxy=null,o.setHandlerProxy(r),o._draggingMgr=new lOe(o),o}return t.prototype.setHandlerProxy=function(e){this.proxy&&this.proxy.dispose(),e&&($(bOe,function(t){e.on&&e.on(t,this[t],this)},this),e.handler=this),this.proxy=e},t.prototype.mousemove=function(e){var t=e.zrX,n=e.zrY,r=Q3(this,t,n),i=this._hovered,a=i.target;a&&!a.__zr&&(i=this.findHover(i.x,i.y),a=i.target);var o=this._hovered=r?new J3(t,n):this.findHover(t,n),s=o.target,c=this.proxy;c.setCursor&&c.setCursor(s?s.cursor:`default`),a&&s!==a&&this.dispatchToElement(i,`mouseout`,e),this.dispatchToElement(o,`mousemove`,e),s&&s!==a&&this.dispatchToElement(o,`mouseover`,e)},t.prototype.mouseout=function(e){var t=e.zrEventControl;t!==`only_globalout`&&this.dispatchToElement(this._hovered,`mouseout`,e),t!==`no_globalout`&&this.trigger(`globalout`,{type:`globalout`,event:e})},t.prototype.resize=function(){this._hovered=new J3(0,0)},t.prototype.dispatch=function(e,t){var n=this[e];n&&n.call(this,t)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(e){var t=this.proxy;t.setCursor&&t.setCursor(e)},t.prototype.dispatchToElement=function(e,t,n){e||={};var r=e.target;if(!(r&&r.silent)){for(var i=`on`+t,a=_Oe(t,e,n);r&&(r[i]&&(a.cancelBubble=!!r[i].call(r,a)),r.trigger(t,a),r=r.__hostTarget?r.__hostTarget:r.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(t,a),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(e){typeof e[i]==`function`&&e[i].call(e,a),e.trigger&&e.trigger(t,a)}))}},t.prototype.findHover=function(e,t,n){var r=this.storage.getDisplayList(),i=new J3(e,t);if(Z3(r,i,e,t,n),this._pointerSize&&!i.target){for(var a=[],o=this._pointerSize,s=o/2,c=new iG(e-s,t-s,o,o),l=r.length-1;l>=0;l--){var u=r[l];u!==n&&!u.ignore&&!u.ignoreCoarsePointer&&(!u.parent||!u.parent.ignoreCoarsePointer)&&(Y3.copy(u.getBoundingRect()),u.transform&&Y3.applyTransform(u.transform),Y3.intersect(c)&&a.push(u))}if(a.length){for(var d=4,f=Math.PI/12,p=Math.PI*2,m=0;m4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function xOe(e,t,n){if(e[e.rectHover?`rectContain`:`contain`](t,n)){for(var r=e,i=void 0,a=!1;r;){if(r.ignoreClip&&(a=!0),!a){var o=r.getClipPath();if(o&&!o.contain(t,n))return!1}r.silent&&(i=!0);var s=r.__hostTarget;r=s?r.ignoreHostSilent?null:s:r.parent}return!i||q3}return!1}function Z3(e,t,n,r,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=xOe(o,n,r))&&(!t.topTarget&&(t.topTarget=o),s!==q3)){t.target=o;break}}}function Q3(e,t,n){var r=e.painter;return t<0||t>r.getWidth()||n<0||n>r.getHeight()}var $3=32,e6=7;function SOe(e){for(var t=0;e>=$3;)t|=e&1,e>>=1;return e+t}function t6(e,t,n,r){var i=t+1;if(i===n)return 1;if(r(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function COe(e,t,n){for(n--;t>>1,i(a,e[c])<0?s=c:o=c+1;var l=r-o;switch(l){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;l>0;)e[o+l]=e[o+l-1],l--}e[o]=a}}function r6(e,t,n,r,i,a){var o=0,s=0,c=1;if(a(e,t[n+i])>0){for(s=r-i;c0;)o=c,c=(c<<1)+1,c<=0&&(c=s);c>s&&(c=s),o+=i,c+=i}else{for(s=i+1;cs&&(c=s);var l=o;o=i-c,c=i-l}for(o++;o>>1);a(e,t[n+u])>0?o=u+1:c=u}return c}function i6(e,t,n,r,i,a){var o=0,s=0,c=1;if(a(e,t[n+i])<0){for(s=i+1;cs&&(c=s);var l=o;o=i-c,c=i-l}else{for(s=r-i;c=0;)o=c,c=(c<<1)+1,c<=0&&(c=s);c>s&&(c=s),o+=i,c+=i}for(o++;o>>1);a(e,t[n+u])<0?c=u:o=u+1}return c}function wOe(e,t){var n=e6,r,i,a=0,o=[];r=[],i=[];function s(e,t){r[a]=e,i[a]=t,a+=1}function c(){for(;a>1;){var e=a-2;if(e>=1&&i[e-1]<=i[e]+i[e+1]||e>=2&&i[e-2]<=i[e]+i[e-1])i[e-1]i[e+1])break;u(e)}}function l(){for(;a>1;){var e=a-2;e>0&&i[e-1]=e6||m>=e6);if(h)break;f<0&&(f=0),f+=2}if(n=f,n<1&&(n=1),i===1){for(c=0;c=0;c--)e[p+c]=e[f+c];e[d]=o[u];return}for(var m=n;;){var h=0,g=0,_=!1;do if(t(o[u],e[l])<0){if(e[d--]=e[l--],h++,g=0,--i===0){_=!0;break}}else if(e[d--]=o[u--],g++,h=0,--s===1){_=!0;break}while((h|g)=0;c--)e[p+c]=e[f+c];if(i===0){_=!0;break}}if(e[d--]=o[u--],--s===1){_=!0;break}if(g=s-r6(e[l],o,0,s,s-1,t),g!==0){for(d-=g,u-=g,s-=g,p=d+1,f=u+1,c=0;c=e6||g>=e6);if(_)break;m<0&&(m=0),m+=2}if(n=m,n<1&&(n=1),s===1){for(d-=i,l-=i,p=d+1,f=l+1,c=i-1;c>=0;c--)e[p+c]=e[f+c];e[d]=o[u]}else if(s===0)throw Error();else for(f=d-(s-1),c=0;cs&&(c=s),n6(e,n,n+c,n+a,t),a=c}o.pushRun(n,a),o.mergeRuns(),i-=a,n+=a}while(i!==0);o.forceMergeRuns()}}var o6=!1;function s6(){o6||(o6=!0,console.warn(`z / z2 / zlevel of displayable is invalid, which may cause unexpected errors`))}function c6(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var TOe=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=c6}return e.prototype.traverse=function(e,t){for(var n=0;n=0&&this._roots.splice(r,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),l6=eW.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};function u6(){return new Date().getTime()}var EOe=function(e){bW(t,e);function t(t){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,t||={},n.stage=t.stage||{},n}return t.prototype.addClip=function(e){e.animation&&this.removeClip(e),this._head?(this._tail.next=e,e.prev=this._tail,e.next=null,this._tail=e):this._head=this._tail=e,e.animation=this},t.prototype.addAnimator=function(e){e.animation=this;var t=e.getClip();t&&this.addClip(t)},t.prototype.removeClip=function(e){if(e.animation){var t=e.prev,n=e.next;t?t.next=n:this._head=n,n?n.prev=t:this._tail=t,e.next=e.prev=e.animation=null}},t.prototype.removeAnimator=function(e){var t=e.getClip();t&&this.removeClip(t),e.animation=null},t.prototype.update=function(e){for(var t=u6()-this._pausedTime,n=t-this._time,r=this._head;r;){var i=r.next;r.step(t,n)?(r.ondestroy(),this.removeClip(r),r=i):r=i}this._time=t,e||(this.trigger(`frame`,n),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var e=this;this._running=!0;function t(){e._running&&(l6(t),!e._paused&&e.update())}l6(t)},t.prototype.start=function(){this._running||(this._time=u6(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||=(this._pauseStart=u6(),!0)},t.prototype.resume=function(){this._paused&&=(this._pausedTime+=u6()-this._pauseStart,!1)},t.prototype.clear=function(){for(var e=this._head;e;){var t=e.next;e.prev=e.next=e.animation=null,e=t}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(e,t){t||={},this.start();var n=new XK(e,t.loop);return this.addAnimator(n),n},t}(ZK),DOe=300,d6=eW.domSupported,f6=(function(){var e=[`click`,`dblclick`,`mousewheel`,`wheel`,`mouseout`,`mouseup`,`mousedown`,`mousemove`,`contextmenu`],t=[`touchstart`,`touchend`,`touchmove`],n={pointerdown:1,pointerup:1,pointermove:1,pointerout:1};return{mouse:e,touch:t,pointer:fU(e,function(e){var t=e.replace(`mouse`,`pointer`);return n.hasOwnProperty(t)?t:e})}})(),p6={mouse:[`mousemove`,`mouseup`],pointer:[`pointermove`,`pointerup`]},m6=!1;function h6(e){var t=e.pointerType;return t===`pen`||t===`touch`}function OOe(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function g6(e){e&&(e.zrByTouch=!0)}function kOe(e,t){return U3(e.dom,new AOe(e,t),!0)}function _6(e,t){for(var n=t,r=!1;n&&n.nodeType!==9&&!(r=n.domBelongToZr||n!==t&&n===e.painterRoot);)n=n.parentNode;return r}var AOe=function(){function e(e,t){this.stopPropagation=ZU,this.stopImmediatePropagation=ZU,this.preventDefault=ZU,this.type=t.type,this.target=this.currentTarget=e.dom,this.pointerType=t.pointerType,this.clientX=t.clientX,this.clientY=t.clientY}return e}(),v6={mousedown:function(e){e=U3(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger(`mousedown`,e)},mousemove:function(e){e=U3(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger(`mousemove`,e)},mouseup:function(e){e=U3(this.dom,e),this.__togglePointerCapture(!1),this.trigger(`mouseup`,e)},mouseout:function(e){e=U3(this.dom,e);var t=e.toElement||e.relatedTarget;_6(this,t)||(this.__pointerCapturing&&(e.zrEventControl=`no_globalout`),this.trigger(`mouseout`,e))},wheel:function(e){m6=!0,e=U3(this.dom,e),this.trigger(`mousewheel`,e)},mousewheel:function(e){m6||(e=U3(this.dom,e),this.trigger(`mousewheel`,e))},touchstart:function(e){e=U3(this.dom,e),g6(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,`start`),v6.mousemove.call(this,e),v6.mousedown.call(this,e)},touchmove:function(e){e=U3(this.dom,e),g6(e),this.handler.processGesture(e,`change`),v6.mousemove.call(this,e)},touchend:function(e){e=U3(this.dom,e),g6(e),this.handler.processGesture(e,`end`),v6.mouseup.call(this,e),new Date-+this.__lastTouchMoment0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(e){this._sleepAfterStill=e},e.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._disposed||this._refresh({animUpdate:!1,refresh:!1,refreshHover:!0})},e.prototype.resize=function(e){this._disposed||(e||={},this.painter.resize(e.width,e.height),this.handler.resize())},e.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},e.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},e.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},e.prototype.setCursorStyle=function(e){this._disposed||this.handler.setCursorStyle(e)},e.prototype.findHover=function(e,t){if(!this._disposed)return this.handler.findHover(e,t)},e.prototype.on=function(e,t,n){return this._disposed||this.handler.on(e,t,n),this},e.prototype.off=function(e,t){this._disposed||this.handler.off(e,t)},e.prototype.trigger=function(e,t){this._disposed||this.handler.trigger(e,t)},e.prototype.clear=function(){if(!this._disposed){for(var e=this.storage.getRoots(),t=0;t=0;o--)r[o]&&!gY(r[o])?a=!0:(r[o]=null,!a&&i--);r.length=i,e[n]=r}}),delete e[N6],e},t.prototype.setTheme=function(e){this._theme=new wQ(e),this._resetOption(`recreate`,null)},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(e){this._payload=e},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(e,t){var n=this._componentsMap.get(e);if(n){var r=n[t||0];if(r)return r;if(t==null){for(var i=0;i=t:n===`max`?e<=t:e===t}function YOe(e,t){return e.join(`,`)===t.join(`,`)}var R6=$,z6=TU,B6=[`areaStyle`,`lineStyle`,`nodeStyle`,`linkStyle`,`chordStyle`,`label`,`labelLine`];function V6(e){var t=e&&e.itemStyle;if(t)for(var n=0,r=B6.length;n0?e[n-1].seriesModel:null)}),ake(e))})}function ake(e){$(e,function(t,n){var r=[],i=[NaN,NaN],a=[t.stackResultDimension,t.stackedOverDimension],o=t.data,s=t.isStackedByIndex,c=t.seriesModel.get(`stackStrategy`)||`samesign`;o.modify(a,function(a,l,u){var d=o.get(t.stackedDimension,u);if(isNaN(d))return i;var f,p;s?p=o.getRawIndex(u):f=o.get(t.stackedByDimension,u);for(var m=NaN,h=n-1;h>=0;h--){var g=e[h];if(s||(p=g.data.rawIndexOf(g.stackedByDimension,f)),p>=0){var _=g.data.getByRawIndex(g.stackResultDimension,p);if(c===`all`||c===`positive`&&_>0||c===`negative`&&_<0||c===`samesign`&&d>=0&&_>0||c===`samesign`&&d<=0&&_<0){d=sxe(d,_),m=_;break}}}return r[0]=d,r[1]=m,r})})}var t8=function(){function e(){this.group=new GX,this.uid=F$(`viewComponent`)}return e.prototype.init=function(e,t){},e.prototype.render=function(e,t,n,r){},e.prototype.dispose=function(e,t){},e.prototype.updateView=function(e,t,n,r){},e.prototype.updateLayout=function(e,t,n,r){},e.prototype.updateVisual=function(e,t,n,r){},e.prototype.toggleBlurSeries=function(e,t,n){},e.prototype.eachRendered=function(e){var t=this.group;t&&t.traverse(e)},e}();cW(t8),hW(t8);var n8=vY(),r8={itemStyle:gW(CQ,!0),lineStyle:gW(SQ,!0)},oke={lineStyle:`stroke`,itemStyle:`fill`};function i8(e,t){return e.visualStyleMapper||r8[t]||(console.warn(`Unknown style type '`+t+`'.`),r8.itemStyle)}function a8(e,t){return e.visualDrawType||oke[t]||(console.warn(`Unknown style type '`+t+`'.`),`fill`)}var ske={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var n=e.getData(),r=e.visualStyleAccessPath||`itemStyle`,i=e.getModel(r),a=i8(e,r)(i),o=i.getShallow(`decal`);o&&(n.setVisual(`decal`,o),o.dirty=!0);var s=a8(e,r),c=a[s],l=xU(c)?c:null,u=a.fill===`auto`||a.stroke===`auto`;if(!a[s]||l||u){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());a[s]||(a[s]=d,n.setVisual(`colorFromPalette`,!0)),a.fill=a.fill===`auto`||xU(a.fill)?d:a.fill,a.stroke=a.stroke===`auto`||xU(a.stroke)?d:a.stroke}if(n.setVisual(`style`,a),n.setVisual(`drawType`,s),!t.isSeriesFiltered(e)&&l)return n.setVisual(`colorFromPalette`,!1),{dataEach:function(t,n){var r=e.getDataParams(n),i=aU({},a);i[s]=l(r),t.setItemVisual(n,`style`,i)}}}},o8=new wQ,cke={createOnAllSeries:!0,reset:function(e,t){if(!e.ignoreStyleOnData){var n=e.getData(),r=e.visualStyleAccessPath||`itemStyle`,i=i8(e,r),a=n.getVisual(`drawType`);return{dataEach:n.hasItemOption?function(e,t){var n=e.getRawDataItem(t);if(n&&n[r]){o8.option=n[r];var o=i(o8);aU(e.ensureUniqueItemVisual(t,`style`),o),o8.option.decal&&(e.setItemVisual(t,`decal`,o8.option.decal),o8.option.decal.dirty=!0),a in o&&e.setItemVisual(t,`colorFromPalette`,!1)}}:null}}}},lke={performRawSeries:!0,overallReset:function(e){var t=KU();e.eachSeries(function(e){if(!e.isColorBySeries()){var n=e.type+`-`+e.getColorBy();n8(e).scope=t.get(n)||t.set(n,{})}}),e.eachSeries(function(e){if(!e.isColorBySeries()){var t=e.getRawData(),n={},r=e.getData(),i=n8(e).scope,a=a8(e,e.visualStyleAccessPath||`itemStyle`);r.each(function(e){var t=r.getRawIndex(e);n[t]=e}),t.each(function(o){var s=n[o];if(r.getItemVisual(s,`colorFromPalette`)){var c=r.ensureUniqueItemVisual(s,`style`),l=t.getName(o)||o+``,u=t.count();c[a]=e.getColorFromPalette(l,i,u)}})}})}},s8=Math.PI;function uke(e,t){t||={},sU(t,{text:`loading`,textColor:n0.color.primary,fontSize:12,fontWeight:`normal`,fontStyle:`normal`,fontFamily:`sans-serif`,maskColor:`rgba(255,255,255,0.8)`,showSpinner:!0,color:n0.color.theme[0],spinnerRadius:10,lineWidth:5,zlevel:0});var n=new GX,r=new hJ({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});n.add(r);var i=new yJ({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),a=new hJ({style:{fill:`none`},textContent:i,textConfig:{position:`right`,distance:10},zlevel:t.zlevel,z:10001});n.add(a);var o;return t.showSpinner&&(o=new mZ({shape:{startAngle:-s8/2,endAngle:-s8/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:`round`,lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:s8*3/2}).start(`circularInOut`),o.animateShape(!0).when(1e3,{startAngle:s8*3/2}).delay(300).start(`circularInOut`),n.add(o)),n.resize=function(){var n=i.getBoundingRect().width,s=t.showSpinner?t.spinnerRadius:0,c=(e.getWidth()-s*2-(t.showSpinner&&n?10:0)-n)/2-(t.showSpinner&&n?0:5+n/2)+(t.showSpinner?0:n/2)+(n?0:s),l=e.getHeight()/2;t.showSpinner&&o.setShape({cx:c,cy:l}),a.setShape({x:c-s,y:l-s,width:s*2,height:s*2}),r.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},n.resize(),n}var c8=function(){function e(e,t,n,r){this._stageTaskMap=KU(),this.ecInstance=e,this.api=t,n=this._dataProcessorHandlers=n.slice(),r=this._visualHandlers=r.slice(),this._allHandlers=n.concat(r)}return e.prototype.restoreData=function(e,t){e.restoreData(t),this._stageTaskMap.each(function(e){var t=e.overallTask;t&&t.dirty()})},e.prototype.getPerformArgs=function(e,t){if(e.__pipeline){var n=this._pipelineMap.get(e.__pipeline.id),r=n.context,i=!t&&n.progressiveEnabled&&(!r||r.progressiveRender)&&e.__idxInPipeline>n.blockIndex?n.step:null,a=r&&r.modDataCount;return{step:i,modBy:a==null?null:Math.ceil(a/i),modDataCount:a}}},e.prototype.getPipeline=function(e){return this._pipelineMap.get(e)},e.prototype.updateStreamModes=function(e,t){var n=this._pipelineMap.get(e.uid);e.pipelineContext=n.context=e.__preparePipelineContext?e.__preparePipelineContext(t,n):MY(e,t,n)},e.prototype.restorePipelines=function(e,t){var n=this,r=n._pipelineMap=KU();t.eachSeries(function(t){var i=e.painter.type===`canvas`&&t.getProgressive(),a=t.uid;r.set(a,{id:a,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),n._pipe(t,t.dataTask)})},e.prototype.prepareStageTasks=function(){var e=this._stageTaskMap,t=this.api.getModel(),n=this.api;$(this._allHandlers,function(r){var i=e.get(r.uid)||e.set(r.uid,{});LU(!(r.reset&&r.overallReset),``),r.reset&&this._createSeriesStageTask(r,i,t,n),r.overallReset&&this._createOverallStageTask(r,i,t,n)},this)},e.prototype.prepareView=function(e,t,n,r){var i=e.renderTask,a=i.context;a.model=t,a.ecModel=n,a.api=r,i.__block=!e.incrementalPrepareRender,this._pipe(t,i)},e.prototype.performDataProcessorTasks=function(e,t){this._performStageTasks(this._dataProcessorHandlers,e,t,{block:!0})},e.prototype.performVisualTasks=function(e,t,n){this._performStageTasks(this._visualHandlers,e,t,n)},e.prototype._performStageTasks=function(e,t,n,r){r||={};var i=!1,a=this;$(e,function(e,s){if(!(r.visualType&&r.visualType!==e.visualType)){var c=a._stageTaskMap.get(e.uid),l=c.seriesTaskMap,u=c.overallTask;if(u){var d,f=u.agentStubMap;f.each(function(e){o(r,e)&&(e.dirty(),d=!0)}),d&&u.dirty(),a.updatePayload(u,n);var p=a.getPerformArgs(u,r.block);f.each(function(e){e.perform(p)}),u.perform(p)&&(i=!0)}else l&&l.each(function(s,c){o(r,s)&&s.dirty();var l=a.getPerformArgs(s,r.block);l.skip=!e.performRawSeries&&t.isSeriesFiltered(s.context.model),a.updatePayload(s,n),s.perform(l)&&(i=!0)})}});function o(e,t){return e.setDirty&&(!e.dirtyMap||e.dirtyMap.get(t.__pipeline.id))}this.unfinished=i||this.unfinished},e.prototype.performSeriesTasks=function(e){var t;e.eachSeries(function(e){t=e.dataTask.perform()||t}),this.unfinished=t||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(e){var t=e.tail;do{if(t.__block){e.blockIndex=t.__idxInPipeline;break}t=t.getUpstream()}while(t)})},e.prototype.updatePayload=function(e,t){t!==`remain`&&(e.context.payload=t)},e.prototype._createSeriesStageTask=function(e,t,n,r){var i=this,a=t.seriesTaskMap,o=t.seriesTaskMap=KU(),s=e.seriesType,c=e.getTargetSeries;e.createOnAllSeries?n.eachRawSeries(l):s?n.eachRawSeriesByType(s,l):c&&c(n,r).each(l);function l(t){var s=t.uid,c=o.set(s,a&&a.get(s)||X1({plan:hke,reset:gke,count:vke}));c.context={model:t,ecModel:n,api:r,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:i},i._pipe(t,c)}},e.prototype._createOverallStageTask=function(e,t,n,r){var i=this,a=t.overallTask=t.overallTask||X1({reset:dke});a.context={ecModel:n,api:r,overallReset:e.overallReset,scheduler:i};var o=a.agentStubMap,s=a.agentStubMap=KU(),c=e.seriesType,l=e.getTargetSeries,u=e.dirtyOnOverallProgress,d=!1;LU(!e.createOnAllSeries,``),c?n.eachRawSeriesByType(c,f):l?l(n,r).each(f):$(n.getSeries(),f);function f(e){var t=e.uid,n=s.set(t,o&&o.get(t)||(d=!0,X1({reset:fke,onDirty:mke})));n.context={model:e,dirtyOnOverallProgress:u},n.agent=a,n.__block=u,i._pipe(e,n)}d&&a.dirty()},e.prototype._pipe=function(e,t){var n=e.uid,r=this._pipelineMap.get(n);!r.head&&(r.head=t),r.tail&&r.tail.pipe(t),r.tail=t,t.__idxInPipeline=r.count++,t.__pipeline=r},e.wrapStageHandler=function(e,t){return xU(e)&&(e={overallReset:e,seriesType:yke(e)}),e.uid=F$(`stageHandler`),t&&(e.visualType=t),e},e}();function dke(e){e.overallReset(e.ecModel,e.api,e.payload)}function fke(e){return e.dirtyOnOverallProgress&&pke}function pke(){this.agent.dirty(),this.getDownstream().dirty()}function mke(){this.agent&&this.agent.dirty()}function hke(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function gke(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=cY(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?fU(t,function(e,t){return l8(t)}):_ke}var _ke=l8(0);function l8(e){return function(t,n){var r=n.data,i=n.resetDefines[e];if(i&&i.dataEach)for(var a=t.start;a0&&u===i.length-l.length){var d=i.slice(0,u);d!==`data`&&(t.mainType=d,t[l.toLowerCase()]=e,s=!0)}}o.hasOwnProperty(i)&&(n[i]=e,s=!0),s||(r[i]=e)})}return{cptQuery:t,dataQuery:n,otherQuery:r}},e.prototype.filter=function(e,t){var n=this.eventInfo;if(!n)return!0;var r=n.targetEl,i=n.packedEvent,a=n.model,o=n.view;if(!a||!o)return!0;var s=t.cptQuery,c=t.dataQuery;return l(s,a,`mainType`)&&l(s,a,`subType`)&&l(s,a,`index`,`componentIndex`)&&l(s,a,`name`)&&l(s,a,`id`)&&l(c,i,`name`)&&l(c,i,`dataIndex`)&&l(c,i,`dataType`)&&(!o.filterForExposedEvent||o.filterForExposedEvent(e,t.otherQuery,r,i));function l(e,t,n,r){return e[n]==null||t[r||n]===e[n]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),y8=[`symbol`,`symbolSize`,`symbolRotate`,`symbolOffset`],b8=y8.concat([`symbolKeepAspect`]),xke={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var n=e.getData();if(e.legendIcon&&n.setVisual(`legendIcon`,e.legendIcon),!e.hasSymbolVisual)return;for(var r={},i={},a=!1,o=0;o=0&&w8(c)?c:.5,e.createRadialGradient(o,s,0,o,s,c)}function T8(e,t,n){for(var r=t.type===`radial`?Nke(e,t,n):Mke(e,t,n),i=t.colorStops,a=0;a0)?null:e===`dashed`?[4*t,2*t]:e===`dotted`?[t]:wU(e)?[e]:bU(e)?e:null}function O8(e){var t=e.style,n=t.lineDash&&t.lineWidth>0&&Fke(t.lineDash,t.lineWidth),r=t.lineDashOffset;if(n){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(n=fU(n,function(e){return e/i}),r/=i)}return[n,r]}var Ike=new Yq(!0);function k8(e){var t=e.stroke;return!(t==null||t===`none`||!(e.lineWidth>0))}function A8(e){return typeof e==`string`&&e!==`none`}function j8(e){var t=e.fill;return t!=null&&t!==`none`}function M8(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var n=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=n}else e.fill()}function N8(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var n=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=n}else e.stroke()}function P8(e,t,n){var r=EW(t.image,t.__image,n);if(OW(r)){var i=e.createPattern(r,t.repeat||`repeat`);if(typeof DOMMatrix==`function`&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(t.x||0,t.y||0),a.rotateSelf(0,0,(t.rotation||0)*QU),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function Lke(e,t,n,r,i){var a,o=k8(n),s=j8(n),c=n.strokePercent,l=c<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var d=t.path||Ike,f=t.__dirty;if(!r){var p=n.fill,m=n.stroke,h=s&&!!p.colorStops,g=o&&!!m.colorStops,_=s&&!!p.image,v=o&&!!m.image,y=void 0,b=void 0,x=void 0,S=void 0,C=void 0;(h||g)&&(C=t.getBoundingRect()),h&&(y=f?T8(e,p,C):t.__canvasFillGradient,t.__canvasFillGradient=y),g&&(b=f?T8(e,m,C):t.__canvasStrokeGradient,t.__canvasStrokeGradient=b),_&&(x=f||!t.__canvasFillPattern?P8(e,p,t):t.__canvasFillPattern,t.__canvasFillPattern=x),v&&(S=f||!t.__canvasStrokePattern?P8(e,m,t):t.__canvasStrokePattern,t.__canvasStrokePattern=S),h?e.fillStyle=y:_&&(x?e.fillStyle=x:s=!1),g?e.strokeStyle=b:v&&(S?e.strokeStyle=S:o=!1)}var w=t.getGlobalScale();d.setScale(w[0],w[1],t.segmentIgnoreThreshold);var T,E;e.setLineDash&&n.lineDash&&(a=O8(t),T=a[0],E=a[1]);var D=!0;(u||f&4)&&(d.setDPR(e.dpr),l?d.setContext(null):(d.setContext(e),D=!1),d.reset(),t.buildPath(d,t.shape,r),d.toStatic(),t.pathUpdated()),D&&d.rebuildPath(e,l?c:1),T&&(e.setLineDash(T),e.lineDashOffset=E),r?(i.batchFill=s,i.batchStroke=o):n.strokeFirst?(o&&N8(e,n),s&&M8(e,n)):(s&&M8(e,n),o&&N8(e,n)),T&&e.setLineDash([])}function Rke(e,t,n){var r=t.__image=EW(n.image,t.__image,t,t.onload);if(!(!r||!OW(r))){var i=n.x||0,a=n.y||0,o=t.getWidth(),s=t.getHeight(),c=r.width/r.height;if(o==null&&s!=null?o=s*c:s==null&&o!=null?s=o/c:o==null&&s==null&&(o=r.width,s=r.height),n.sWidth&&n.sHeight){var l=n.sx||0,u=n.sy||0;e.drawImage(r,l,u,n.sWidth,n.sHeight,i,a,o,s)}else if(n.sx&&n.sy){var l=n.sx,u=n.sy,d=o-l,f=s-u;e.drawImage(r,l,u,d,f,i,a,o,s)}else e.drawImage(r,i,a,o,s)}}function zke(e,t,n){var r,i=n.text;if(i!=null&&(i+=``),i){e.font=n.font||`12px sans-serif`,e.textAlign=n.textAlign,e.textBaseline=n.textBaseline;var a=void 0,o=void 0;e.setLineDash&&n.lineDash&&(r=O8(t),a=r[0],o=r[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),n.strokeFirst?(k8(n)&&e.strokeText(i,n.x,n.y),j8(n)&&e.fillText(i,n.x,n.y)):(j8(n)&&e.fillText(i,n.x,n.y),k8(n)&&e.strokeText(i,n.x,n.y)),a&&e.setLineDash([])}}var F8=[`shadowBlur`,`shadowOffsetX`,`shadowOffsetY`],I8=[[`lineCap`,`butt`],[`lineJoin`,`miter`],[`miterLimit`,10]];function L8(e,t,n,r,i){var a=!1;if(!r&&(n||={},t===n))return!1;if(r||t.opacity!==n.opacity){W8(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?hq.opacity:o}(r||t.blend!==n.blend)&&(a||=(W8(e,i),!0),e.globalCompositeOperation=t.blend||hq.blend);for(var s=0;s0&&e.unfinished);e.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(e,t,n){if(!this[s5]){if(this._disposed){this.id;return}var r,i,a;if(TU(t)&&(n=t.lazyUpdate,r=t.silent,i=t.replaceMerge,a=t.transition,t=t.notMerge),this[s5]=!0,L5(this),!this._model||t){var o=new GOe(this._api),s=this._theme,c=this._model=new P6;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,s,this._locale,o)}this._model.setOption(e,{replaceMerge:i},W5);var l={seriesTransition:a,optionChanged:!0};if(n)this[l5]={silent:r,updateParams:l},this[s5]=!1,this.getZr().wakeUp();else{try{y5(this),S5.update.call(this,null,l)}catch(e){throw this[l5]=null,this[s5]=!1,e}this._ssr||this._zr.flush(),this[l5]=null,this[s5]=!1,E5.call(this,r),D5.call(this,r)}}},t.prototype.setTheme=function(e,t){if(!this[s5]){if(this._disposed){this.id;return}var n=this._model;if(n){var r=t&&t.silent,i=null;this[l5]&&(r??=this[l5].silent,i=this[l5].updateParams,this[l5]=null),this[s5]=!0,L5(this);try{this._updateTheme(e),n.setTheme(this._theme),y5(this),S5.update.call(this,{type:`setTheme`},i)}catch(e){throw this[s5]=!1,e}this[s5]=!1,E5.call(this,r),D5.call(this,r)}}},t.prototype._updateTheme=function(e){SU(e)&&(e=K5[e]),e&&(e=rU(e),e&&e8(e,!0),this._theme=e)},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||eW.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(e){return this.renderToCanvas(e)},t.prototype.renderToCanvas=function(e){return e||={},this._zr.painter.getRenderedCanvas({backgroundColor:e.backgroundColor||this._model.get(`backgroundColor`),pixelRatio:e.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(e){return e||={},this._zr.painter.renderToString({useViewBox:e.useViewBox})},t.prototype.getSvgDataURL=function(){var e=this._zr;return $(e.storage.getDisplayList(),function(e){e.stopAnimation(null,!0)}),e.painter.toDataURL()},t.prototype.getDataURL=function(e){if(this._disposed){this.id;return}e||={};var t=e.excludeComponents,n=this._model,r=[],i=this;$(t,function(e){n.eachComponent({mainType:e},function(e){var t=i._componentsMap[e.__viewId];t.group.ignore||(r.push(t),t.group.ignore=!0)})});var a=this._zr.painter.getType()===`svg`?this.getSvgDataURL():this.renderToCanvas(e).toDataURL(`image/`+(e&&e.type||`png`));return $(r,function(e){e.group.ignore=!1}),a},t.prototype.getConnectedDataURL=function(e){if(this._disposed){this.id;return}var t=e.type===`svg`,n=this.group,r=Math.min,i=Math.max,a=1/0;if(Y5[n]){var o=a,s=a,c=-a,l=-a,u=[],d=e&&e.pixelRatio||this.getDevicePixelRatio();$(J5,function(a,d){if(a.group===n){var f=t?a.getZr().painter.getSvgDom().innerHTML:a.renderToCanvas(rU(e)),p=a.getDom().getBoundingClientRect();o=r(p.left,o),s=r(p.top,s),c=i(p.right,c),l=i(p.bottom,l),u.push({dom:f,left:p.left,top:p.top})}}),o*=d,s*=d,c*=d,l*=d;var f=c-o,p=l-s,m=VH.createCanvas(),h=T6(m,{renderer:t?`svg`:`canvas`});if(h.resize({width:f,height:p}),t){var g=``;return $(u,function(e){var t=e.left-o,n=e.top-s;g+=``+e.dom+``}),h.painter.getSvgRoot().innerHTML=g,e.connectedBackgroundColor&&h.painter.setBackgroundColor(e.connectedBackgroundColor),h.refreshImmediately(),h.painter.toDataURL()}else return e.connectedBackgroundColor&&h.add(new hJ({shape:{x:0,y:0,width:f,height:p},style:{fill:e.connectedBackgroundColor}})),$(u,function(e){var t=new uJ({style:{x:e.left*d-o,y:e.top*d-s,image:e.dom}});h.add(t)}),h.refreshImmediately(),m.toDataURL(`image/`+(e&&e.type||`png`))}else return this.getDataURL(e)},t.prototype.convertToPixel=function(e,t,n){return C5(this,`convertToPixel`,e,t,n)},t.prototype.convertToLayout=function(e,t,n){return C5(this,`convertToLayout`,e,t,n)},t.prototype.convertFromPixel=function(e,t,n){return C5(this,`convertFromPixel`,e,t,n)},t.prototype.containPixel=function(e,t){if(this._disposed){this.id;return}var n=this._model,r;return $(yY(n,e),function(e,n){n.indexOf(`Models`)>=0&&$(e,function(e){var i=e.coordinateSystem;if(i&&i.containPoint)r||=!!i.containPoint(t);else if(n===`seriesModels`){var a=this._chartsMap[e.__viewId];a&&a.containPoint&&(r||=a.containPoint(t,e))}},this)},this),!!r},t.prototype.getVisual=function(e,t){var n=this._model,r=yY(n,e,{defaultMainType:`series`}),i=r.seriesModel.getData(),a=r.hasOwnProperty(`dataIndexInside`)?r.dataIndexInside:r.hasOwnProperty(`dataIndex`)?i.indexOfRawIndex(r.dataIndex):null;return a==null?wke(i,t):Cke(i,a,t)},t.prototype.getViewOfComponentModel=function(e){return this._componentsMap[e.__viewId]},t.prototype.getViewOfSeriesModel=function(e){return this._chartsMap[e.__viewId]},t.prototype._initEvents=function(){var e=this;$(lAe,function(t){var n=function(n){var r=e.getModel(),i=n.target,a;if(t===`globalout`?a={}:i&&x8(i,function(e){var t=PY(e);if(t&&t.dataIndex!=null){var n=t.dataModel||r.getSeriesByIndex(t.seriesIndex);return a=n&&n.getDataParams(t.dataIndex,t.dataType,i)||{},!0}else if(t.eventData)return a=aU({},t.eventData),!0},!0),a){var o=a.componentType,s=a.componentIndex;(o===`markLine`||o===`markPoint`||o===`markArea`)&&(o=`series`,s=a.seriesIndex);var c=o&&s!=null&&r.getComponent(o,s),l=c&&e[c.mainType===`series`?`_chartsMap`:`_componentsMap`][c.__viewId];a.event=n,a.type=t,e._$eventProcessor.eventInfo={targetEl:i,packedEvent:a,model:c,view:l},e.trigger(t,a)}};n.zrEventfulCallAtLast=!0,e._zr.on(t,n,e)});var t=this._messageCenter;$(H5,function(n,r){t.on(r,function(t){e.trigger(r,t)})}),cOe(t,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0,this.getDom()&&CY(this.getDom(),X5,``);var e=this,t=e._api,n=e._model;$(e._componentsViews,function(e){e.dispose(n,t)}),$(e._chartsViews,function(e){e.dispose(n,t)}),e._zr.dispose(),e._dom=e._model=e._chartsMap=e._componentsMap=e._chartsViews=e._componentsViews=e._scheduler=e._api=e._zr=e._throttledZrFlush=e._theme=e._coordSysMgr=e._messageCenter=null,delete J5[e.id]},t.prototype.resize=function(e){if(!this[s5]){if(this._disposed){this.id;return}this._zr.resize(e);var t=this._model;if(this._loadingFX&&this._loadingFX.resize(),t){var n=t.resetOption(`media`),r=e&&e.silent;this[l5]&&(r??=this[l5].silent,n=!0,this[l5]=null),this[s5]=!0,L5(this);try{n&&y5(this),S5.update.call(this,{type:`resize`,animation:aU({duration:0},e&&e.animation)})}catch(e){throw this[s5]=!1,e}this[s5]=!1,E5.call(this,r),D5.call(this,r)}}},t.prototype.showLoading=function(e,t){if(this._disposed){this.id;return}if(TU(e)&&(t=e,e=``),e||=`default`,this.hideLoading(),q5[e]){var n=q5[e](this._api,t),r=this._zr;this._loadingFX=n,r.add(n)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(e){var t=aU({},e);return t.type=V5[e.type],t},t.prototype.dispatchAction=function(e,t){if(this._disposed){this.id;return}if(TU(t)||(t={silent:!!t}),B5[e.type]&&this._model){if(this[s5]){this._pendingActions.push(e);return}var n=t.silent;T5.call(this,e,n);var r=t.flush;r?this._zr.flush():r!==!1&&eW.browser.weChat&&this._throttledZrFlush(),E5.call(this,n),D5.call(this,n)}},t.prototype.updateLabelLayout=function(){S8.trigger(`series:layoutlabels`,this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(e){if(this._disposed){this.id;return}var t=e.seriesIndex;this.getModel().getSeriesByIndex(t).appendData(e),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){y5=function(e){kEe(e._model);var t=e._scheduler;t.restorePipelines(e._zr,e._model),t.prepareStageTasks(),b5(e,!0),b5(e,!1),t.plan()},b5=function(e,t){for(var n=e._model,r=e._scheduler,i=t?e._componentsViews:e._chartsViews,a=t?e._componentsMap:e._chartsMap,o=e._zr,s=e._api,c=0;cNU(t.get(`hoverLayerThreshold`),k6.hoverLayerThreshold)&&!eW.node&&!eW.worker;(e._usingTHL||a)&&(t.eachSeries(function(t){if(!t.preventUsingHoverLayer){var n=e._chartsMap[t.__viewId];n.__alive&&n.eachRendered(function(e){var t=e.states.emphasis;t&&t.hoverLayer!==2&&(t.hoverLayer=+!!a)})}}),e._usingTHL=a)}}function a(e,t){var n=e.get(`blendMode`)||null;t.eachRendered(function(e){e.isGroup||(e.style.blend=n)})}function o(e,t){if(!e.preventAutoZ){var n=iQ(e);t.eachRendered(function(e){return aQ(e,n.z,n.zlevel),!0})}}function s(e,t){t.eachRendered(function(e){if(!OZ(e)){var t=e.getTextContent(),n=e.getTextGuideLine();e.stateTransition&&=null,t&&t.stateTransition&&(t.stateTransition=null),n&&n.stateTransition&&(n.stateTransition=null),e.hasState()?(e.prevStates=e.currentStates,e.clearStates()):e.prevStates&&=null}})}function c(e,t){var n=e.getModel(`stateAnimation`),i=e.isAnimationEnabled(),a=n.get(`duration`),o=a>0?{duration:a,delay:n.get(`delay`),easing:n.get(`easing`)}:null;t.eachRendered(function(e){if(e.states&&e.states.emphasis){if(OZ(e))return;if(e instanceof cJ&&rSe(e),e.__dirty){var t=e.prevStates;t&&e.useStates(t)}if(i){e.stateTransition=o;var n=e.getTextContent(),a=e.getTextGuideLine();n&&(n.stateTransition=o),a&&(a.stateTransition=o)}e.__dirty&&r(e)}})}N5=function(e){return new(function(t){PH(n,t);function n(){return t!==null&&t.apply(this,arguments)||this}return n.prototype.getCoordinateSystems=function(){return e._coordSysMgr.getCoordinateSystems()},n.prototype.getComponentByElement=function(t){for(;t;){var n=t.__ecComponentInfo;if(n!=null)return e._model.getComponent(n.mainType,n.index);t=t.parent}},n.prototype.enterEmphasis=function(t,n){pX(t,n),F5(e)},n.prototype.leaveEmphasis=function(t,n){mX(t,n),F5(e)},n.prototype.enterBlur=function(t){qxe(t),F5(e)},n.prototype.leaveBlur=function(t){hX(t),F5(e)},n.prototype.enterSelect=function(t){gX(t),F5(e)},n.prototype.leaveSelect=function(t){_X(t),F5(e)},n.prototype.getModel=function(){return e.getModel()},n.prototype.getViewOfComponentModel=function(t){return e.getViewOfComponentModel(t)},n.prototype.getViewOfSeriesModel=function(t){return e.getViewOfSeriesModel(t)},n.prototype.getECUpdateCycleVersion=function(){return e[c5]},n.prototype.usingTHL=function(){return e._usingTHL},n}(HY))(e)},P5=function(e){function t(e,t){for(var n=0;n=0)){r7.push(n);var o=c8.wrapStageHandler(n,i);o.__prio=t,o.__raw=n,e.push(o)}}function a7(e,t){q5[e]=t}function _Ae(e,t,n){var r=Eke(`registerMap`);r&&r(e,t,n)}var vAe=Wwe;n7(r5,ske),n7(a5,cke),n7(a5,lke),n7(r5,xke),n7(a5,Ske),n7(o5,qke),Q5(e8),$5(Zke,rke),a7(`default`,uke),t7({type:YY,event:YY,update:YY},ZU),t7({type:XY,event:XY,update:XY},ZU),t7({type:ZY,event:eX,update:ZY,action:ZU,refineEvent:o7,publishNonRefinedEvent:!0}),t7({type:QY,event:eX,update:QY,action:ZU,refineEvent:o7,publishNonRefinedEvent:!0}),t7({type:$Y,event:eX,update:$Y,action:ZU,refineEvent:o7,publishNonRefinedEvent:!0});function o7(e,t,n,r){return{eventContent:{selected:Qxe(n),isFromClick:t.isFromClick||!1}}}Z5(`default`,{}),Z5(`dark`,v8);var s7=[],yAe={registerPreprocessor:Q5,registerProcessor:$5,registerPostInit:pAe,registerPostUpdate:mAe,registerUpdateLifecycle:e7,registerAction:t7,registerCoordinateSystem:hAe,registerLayout:gAe,registerVisual:n7,registerTransform:vAe,registerLoading:a7,registerMap:_Ae,registerImpl:Tke,PRIORITY:oAe,ComponentModel:K1,ComponentView:t8,SeriesModel:y0,ChartView:W0,registerComponentModel:function(e){K1.registerClass(e)},registerComponentView:function(e){t8.registerClass(e)},registerSeriesModel:function(e){y0.registerClass(e)},registerChartView:function(e){W0.registerClass(e)},registerCustomSeries:function(e,t){Oke(e,t)},registerSubTypeDefaulter:function(e,t){K1.registerSubTypeDefaulter(e,t)},registerPainter:function(e,t){LOe(e,t)}};function c7(e){if(bU(e)){$(e,function(e){c7(e)});return}cU(s7,e)>=0||(s7.push(e),xU(e)&&(e={install:e}),e.install(yAe))}var bAe=function(){function e(){}return e.prototype.needIncludeZero=function(){return!this.option.scale},e.prototype.getCoordSysModel=function(){},e}(),l7=function(e){PH(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents(`grid`,xY).models[0]},t.type=`cartesian2dAxis`,t}(K1);uU(l7,bAe);var u7={show:!0,z:0,inverse:!1,name:``,nameLocation:`end`,nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:`...`,placeholder:`.`},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:`auto`,onZeroAxisIndex:null,lineStyle:{color:n0.color.axisLine,width:1,type:`solid`},symbol:[`none`,`none`],symbolSize:[10,15],breakLine:!0},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12,color:n0.color.axisLabel,textMargin:[0,3]},splitLine:{show:!0,showMinLine:!0,showMaxLine:!0,lineStyle:{color:n0.color.axisSplitLine,width:1,type:`solid`}},splitArea:{show:!1,areaStyle:{color:[n0.color.backgroundTint,n0.color.backgroundTransparent]}},breakArea:{show:!0,itemStyle:{color:n0.color.neutral00,borderColor:n0.color.border,borderWidth:1,borderType:[3,3],opacity:.6},zigzagAmplitude:4,zigzagMinSpan:4,zigzagMaxSpan:20,zigzagZ:100,expandOnClick:!0},breakLabelLayout:{moveOverlap:`auto`}},xAe=iU({boundaryGap:!0,deduplication:null,jitter:0,jitterOverlap:!0,jitterMargin:2,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:`auto`,show:`auto`},axisLabel:{interval:`auto`}},u7),d7=iU({boundaryGap:[0,0],axisLine:{show:`auto`},axisTick:{show:`auto`},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:n0.color.axisMinorSplitLine,width:1}}},u7),SAe={category:xAe,value:d7,time:iU({splitNumber:6,axisLabel:{rich:{primary:{fontWeight:`bold`}}},splitLine:{show:!1}},d7),log:sU({logBase:10},d7)};function f7(e,t,n,r){$(A2,function(i,a){var o=iU(iU({},SAe[a],!0),r,!0),s=function(e){PH(n,e);function n(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t+`Axis.`+a,n}return n.prototype.mergeDefaultAndTheme=function(e,t){var n=U1(this),r=n?G1(e):{};iU(e,t.getTheme().get(a+`Axis`)),iU(e,this.getDefaultOption()),e.type=p7(e),n&&W1(e,r,n)},n.prototype.optionUpdated=function(){this.option.type===`category`&&(this.__ordinalMeta=Z0.createByAxisModel(this))},n.prototype.getCategories=function(e){var t=this.option;if(t.type===`category`)return e?t.data:this.__ordinalMeta.categories},n.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},n.prototype.updateAxisBreaks=function(e){var t=M4();return t?t.updateModelAxisBreak(this,e):{breaks:[]}},n.type=t+`Axis.`+a,n.defaultOption=o,n}(n);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+`Axis`,p7)}function p7(e){return e.type||(e.data?`category`:`value`)}var CAe=function(){function e(e){this.type=`cartesian`,this._dimList=[],this._axes={},this.name=e||``}return e.prototype.getAxis=function(e){return this._axes[e]},e.prototype.getAxes=function(){return fU(this._dimList,function(e){return this._axes[e]},this)},e.prototype.getAxesByScale=function(e){return e=e.toLowerCase(),mU(this.getAxes(),function(t){return t.scale.type===e})},e.prototype.addAxis=function(e){var t=e.dim;this._axes[t]=e,this._dimList.push(t)},e}(),m7=[`x`,`y`];function h7(e){return(e.type===`interval`||e.type===`time`)&&!e1(e)}var wAe=function(e){PH(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=u3,t.dimensions=m7,t}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var e=this.getAxis(`x`).scale,t=this.getAxis(`y`).scale;if(!(!h7(e)||!h7(t))){var n=r2(e,null),r=r2(t,null),i=this.dataToPoint([n[0],r[0]]),a=this.dataToPoint([n[1],r[1]]),o=n[1]-n[0],s=r[1]-r[0];if(!(!o||!s)){var c=(a[0]-i[0])/o,l=(a[1]-i[1])/s,u=i[0]-n[0]*c,d=i[1]-r[0]*l,f=this._transform=[c,0,0,l,u,d];this._invTransform=FW([],f)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale(`ordinal`)[0]||this.getAxesByScale(`time`)[0]||this.getAxis(`x`)},t.prototype.containPoint=function(e){var t=this.getAxis(`x`),n=this.getAxis(`y`);return t.contain(t.toLocalCoord(e[0]))&&n.contain(n.toLocalCoord(e[1]))},t.prototype.containData=function(e){return this.getAxis(`x`).containData(e[0])&&this.getAxis(`y`).containData(e[1])},t.prototype.containZone=function(e,t){var n=this.dataToPoint(e),r=this.dataToPoint(t),i=this.getArea(),a=new iG(n[0],n[1],r[0]-n[0],r[1]-n[1]);return i.intersect(a)},t.prototype.dataToPoint=function(e,t,n){n||=[];var r=e[0],i=e[1];if(this._transform&&r!=null&&isFinite(r)&&i!=null&&isFinite(i))return HW(n,e,this._transform);var a=this.getAxis(`x`),o=this.getAxis(`y`);return n[0]=a.toGlobalCoord(a.dataToCoord(r,t)),n[1]=o.toGlobalCoord(o.dataToCoord(i,t)),n},t.prototype.clampData=function(e,t){var n=this.getAxis(`x`).scale,r=this.getAxis(`y`).scale,i=n.getExtent(),a=r.getExtent(),o=n.parse(e[0]),s=r.parse(e[1]);return t||=[],t[0]=Math.min(Math.max(Math.min(i[0],i[1]),o),Math.max(i[0],i[1])),t[1]=Math.min(Math.max(Math.min(a[0],a[1]),s),Math.max(a[0],a[1])),t},t.prototype.pointToData=function(e,t,n){if(n||=[],this._invTransform)return HW(n,e,this._invTransform);var r=this.getAxis(`x`),i=this.getAxis(`y`);return n[0]=r.coordToData(r.toLocalCoord(e[0]),t),n[1]=i.coordToData(i.toLocalCoord(e[1]),t),n},t.prototype.getOtherAxis=function(e){return this.getAxis(e.dim===`x`?`y`:`x`)},t.prototype.getArea=function(e){e||=0;var t=this.getAxis(`x`).getGlobalExtent(),n=this.getAxis(`y`).getGlobalExtent(),r=Math.min(t[0],t[1])-e,i=Math.min(n[0],n[1])-e;return new iG(r,i,Math.max(t[0],t[1])-r+e,Math.max(n[0],n[1])-i+e)},t}(CAe);function TAe(e,t){var n=e.scale,r=e.model,i=a3(n,r,r.ecModel,e,null),a=l2(n),o=l2(t)?t.intervalStub:t,s=a?n.intervalStub:n,c=n.base,l=o.getTicks(),u=o.getTicks({expandToNicedExtent:!0}),d=l.length-1,f,p,m;if(d===1)f=p=0,m=1;else if(d===2){var h=MJ(l[0].value-l[1].value),g=MJ(l[1].value-l[2].value);f=p=0,h===g?m=2:(m=1,h=C[1])return!0})):b[1]?(T=C[1],A(function(){if(N(),k=HJ(O-E*m,D),j(),w<=C[0])return!0})):A(function(){k=HJ(FJ(C[0]/E)*E,D),O=HJ(PJ(C[1]/E)*E,D);var e=NJ((O-k)/E);if(e<=m){var t=m-e,n=void 0,r=i.incl0||a;if(r&&C[0]===0)n=[0,t];else if(r&&C[1]===0)n=[t,0];else{var o=PJ(t/2);n=t%2==0?[o,o]:w+T=C[1])return!0}})}R2(n,b,S,[w,T],x,{interval:E,intervalCount:m,intervalPrecision:D,niceExtent:[k,O]})}function g7(e,t){var n=l2(e),r=n?e.intervalStub:e,i=t.fixMinMax||[],a=n?e.getExtent():null,o=r.getExtent(),s=m2(o,i,t.rawExtentResult);r.setExtent(s[0],s[1]),s=r.getExtent();var c=n?DAe(r,t):EAe(r,t),l=c.intervalPrecision,u=c.interval,d=t.userInterval;d!=null&&(c.interval=d,c.intervalPrecision=d2(d)),i[0]||(s[0]=HJ(PJ(s[0]/u)*u,l)),i[1]||(s[1]=HJ(FJ(s[1]/u)*u,l)),d!=null&&(c.niceExtent=s.slice()),R2(e,i,o,s,a,c)}function EAe(e,t){var n=h2(t.splitNumber,5),r=i2(e),i=t.minInterval,a=t.maxInterval,o=ZJ(r/n,!0);i!=null&&oa&&(o=a);var s=d2(o),c=e.getExtent(),l=[HJ(FJ(c[0]/o)*o,s),HJ(PJ(c[1]/o)*o,s)];return{interval:o,intervalPrecision:s,niceExtent:l}}function DAe(e,t){var n=h2(t.splitNumber,10),r=e.getExtent(),i=i2(e),a=jJ(YJ(i),1);n/i*a<=.5&&(a*=10);var o=d2(a),s=[HJ(FJ(r[0]/a)*a,o),HJ(PJ(r[1]/a)*a,o)];return{intervalPrecision:o,interval:a,niceExtent:s}}function _7(e){var t=e.scale,n=e.model,r=n.axis,i=n.ecModel;OAe(t,n,r,i,null)}function OAe(e,t,n,r,i){var a=a3(e,t,r,n,i),o=s2(e)||c2(e);kAe(e,{splitNumber:t.get(`splitNumber`),fixMinMax:a.fixMM,userInterval:t.get(`interval`),minInterval:o?t.get(`minInterval`):null,maxInterval:o?t.get(`maxInterval`):null,rawExtentResult:a}),n&&r&&ODe(n,e,a,r)}function kAe(e,t){AAe[e.type](e,t)}var AAe={interval:g7,log:g7,time:JTe,ordinal:ZU},v7=[[3,1],[0,2]],jAe=function(){function e(e,t,n){this.type=`grid`,this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=m7,this._initCartesian(e,t,n),this.model=e}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(e,t){var n=this._axesMap;$(this._axesList,function(e){CDe(e,1);var t=e.scale;u2(t)&&t.setSortInfo(e.model.get(`categorySortInfo`))});function r(e){for(var t=gU(e),n=[],r=t.length-1;r>=0;r--){var i=e[+t[r]];i.__alignTo?n.push(i):_7(i)}$(n,function(e){NAe(e,e.__alignTo)?_7(e):TAe(e,e.__alignTo.scale)})}r(n.x),r(n.y);var i={};$(n.x,function(e){y7(n,`y`,e,i)}),$(n.y,function(e){y7(n,`x`,e,i)}),this.resize(this.model,t)},e.prototype.resize=function(e,t,n){var r=H1(e,t),i=this._rect=B1(e.getBoxLayoutParams(),r.refContainer),a=this._axesMap,o=this._coordsList,s=e.get(`containLabel`);if(S7(a,i),!n){var c=FAe(i,o,a,s,t),l=void 0;if(s)w7?(w7(this._axesList,i),S7(a,i)):l=T7(i.clone(),`axisLabel`,null,i,a,c,r);else{var u=IAe(e,i,r),d=u.outerBoundsRect,f=u.parsedOuterBoundsContain,p=u.outerBoundsClamp;d&&(l=T7(d,f,p,i,a,c,r))}E7(i,a,Z2.determine,null,l,r),$(this._coordsList,function(e){e.calcAffineTransform()})}},e.prototype.getAxis=function(e,t){var n=this._axesMap[e];if(n!=null)return n[t||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(e,t){if(e!=null&&t!=null){var n=`x`+e+`y`+t;return this._coordsMap[n]}TU(e)&&(t=e.yAxisIndex,e=e.xAxisIndex);for(var r=0,i=this._coordsList;r=0;i--){var a=e[+t[i]];o2(a.scale)&&L2(a.model,a.type,!0)==null&&(a.model.get(`alignTicks`)&&a.model.get(`interval`)==null?r.push(a):n=a)}n||=r.pop(),n&&$(r,function(e){e.__alignTo=n})}function NAe(e,t){return e1(e.scale)||e1(t.scale)||t.scale.getTicks().length<2}function PAe(e,t){var n=e.getExtent(),r=n[0]+n[1];e.toGlobalCoord=e.dim===`x`?function(e){return e+t}:function(e){return r-e+t},e.toLocalCoord=e.dim===`x`?function(e){return e-t}:function(e){return r-e+t}}function S7(e,t){$(e.x,function(e){return C7(e,t.x,t.width)}),$(e.y,function(e){return C7(e,t.y,t.height)})}function C7(e,t,n){var r=[0,n],i=+!!e.inverse;e.setExtent(r[i],r[1-i]),PAe(e,t)}var w7;function T7(e,t,n,r,i,a,o){E7(r,i,Z2.estimate,t,!1,o);var s=[0,0,0,0];l(0),l(1),u(r,0,NaN),u(r,1,NaN);var c=hU(s,function(e){return e>0})==null;return JZ(r,s,!0,!0,n),S7(i,r),c;function l(e){$(i[PZ[e]],function(t){if(I2(t.model)){var n=a.ensureRecord(t.model),r=n.labelInfoList;if(r)for(var i=0;i0&&!jU(t)&&t>1e-4&&(e/=t),e}}function FAe(e,t,n,r,i){var a=new I4(LAe);return $(n,function(n){return $(n,function(n){if(I2(n.model)){var o=!r;n.axisBuilder=_De(e,t,n.model,i,a,o)}})}),a}function E7(e,t,n,r,i,a){var o=n===Z2.determine;$(t,function(t){return $(t,function(t){I2(t.model)&&(vDe(t.axisBuilder,e,t.model),t.axisBuilder.build(o?{axisTickLabelDetermine:!0}:{axisTickLabelEstimate:!0},{noPxChange:i}))})});var s={x:0,y:0};c(0),c(1);function c(t){s[PZ[1-t]]=e[FZ[t]]<=a.refContainer[FZ[t]]*.5?0:1-t==1?2:1}$(t,function(e,t){return $(e,function(e){I2(e.model)&&((r===`all`||o)&&e.axisBuilder.build({axisName:!0},{nameMarginLevel:s[t]}),o&&e.axisBuilder.build({axisLine:!0}))})})}function IAe(e,t,n){var r,i=e.get(`outerBoundsMode`,!0);i===`same`?r=t.clone():(i==null||i===`auto`)&&(r=B1(e.get(`outerBounds`,!0)||c3,n.refContainer));var a=e.get(`outerBoundsContain`,!0),o=a==null||a===`auto`||cU([`all`,`axisLabel`],a)<0?`all`:a,s=[VJ(NU(e.get(`outerBoundsClampWidth`,!0),l3[0]),t.width),VJ(NU(e.get(`outerBoundsClampHeight`,!0),l3[1]),t.height)];return{outerBoundsRect:r,parsedOuterBoundsContain:o,outerBoundsClamp:s}}var LAe=function(e,t,n,r,i,a){var o=n.axis.dim===`x`?`y`:`x`;z4(e,t,n,r,i,a),F2(e.nameLocation)||$(t.recordMap[o],function(e){e&&e.labelInfoList&&e.dirVec&&V4(e.labelInfoList,e.dirVec,r,i)})};function RAe(e,t){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return zAe(n,e,t),n.seriesInvolved&&VAe(n,e),n}function zAe(e,t,n){var r=t.getComponent(`tooltip`),i=t.getComponent(`axisPointer`),a=i.get(`link`,!0)||[],o=[];$(n.getCoordinateSystems(),function(n){if(!n.axisPointerEnabled)return;var s=A7(n.model),c=e.coordSysAxesInfo[s]={};e.coordSysMap[s]=n;var l=n.model.getModel(`tooltip`,r);if($(n.getAxes(),yU(p,!1,null)),n.getTooltipAxes&&r&&l.get(`show`)){var u=l.get(`trigger`)===`axis`,d=l.get([`axisPointer`,`type`])===`cross`,f=n.getTooltipAxes(l.get([`axisPointer`,`axis`]));(u||d)&&$(f.baseAxes,yU(p,!d||`cross`,u)),d&&$(f.otherAxes,yU(p,`cross`,!1))}function p(r,s,u){var d=u.model.getModel(`axisPointer`,i),f=d.get(`show`);if(!(!f||f===`auto`&&!r&&!k7(d))){s??=d.get(`triggerTooltip`),d=r?BAe(u,l,i,t,r,s):d;var p=d.get(`snap`),m=d.get(`triggerEmphasis`),h=A7(u.model),g=s||p||u.type===`category`,_=e.axesInfo[h]={key:h,axis:u,coordSys:n,axisPointerModel:d,triggerTooltip:s,triggerEmphasis:m,involveSeries:g,snap:p,useHandle:k7(d),seriesModels:[],linkGroup:null};c[h]=_,e.seriesInvolved=e.seriesInvolved||g;var v=HAe(a,u);if(v!=null){var y=o[v]||(o[v]={axesInfo:{}});y.axesInfo[h]=_,y.mapper=a[v].mapper,_.linkGroup=y}}}})}function BAe(e,t,n,r,i,a){var o=t.getModel(`axisPointer`),s=[`type`,`snap`,`lineStyle`,`shadowStyle`,`label`,`animation`,`animationDurationUpdate`,`animationEasingUpdate`,`z`],c={};$(s,function(e){c[e]=rU(o.get(e))}),c.snap=e.type!==`category`&&!!a,o.get(`type`)===`cross`&&(c.type=`line`);var l=c.label||={};if(l.show??=!1,i===`cross`&&(l.show=o.get([`label`,`show`])??!0,!a)){var u=c.lineStyle=o.get(`crossStyle`);u&&sU(l,u.textStyle)}return e.model.getModel(`axisPointer`,new wQ(c,n,r))}function VAe(e,t){t.eachSeries(function(t){var n=t.coordinateSystem,r=t.get([`tooltip`,`trigger`],!0),i=t.get([`tooltip`,`show`],!0);!n||!n.model||r===`none`||r===!1||r===`item`||i===!1||t.get([`axisPointer`,`show`],!0)===!1||$(e.coordSysAxesInfo[A7(n.model)],function(e){var r=e.axis;n.getAxis(r.dim)===r&&(e.seriesModels.push(t),e.seriesDataCount??=0,e.seriesDataCount+=t.getData().count())})})}function HAe(e,t){for(var n=t.model,r=t.dim,i=0;i=0||e===t}function UAe(e){var t=O7(e);if(t){var n=t.axisPointerModel,r=t.axis.scale,i=n.option,a=n.get(`status`),o=n.get(`value`);o!=null&&(o=r.parse(o));var s=k7(n);a??(i.status=s?`show`:`hide`);var c=r.getExtent();(o==null||o>c[1])&&(o=c[1]),oo)return!0;if(a){var s=O7(e).seriesDataCount,c=r.getExtent();return Math.abs(c[0]-c[1])/s>o}return!1}return n===!0},e.prototype.makeElOption=function(e,t,n,r,i){},e.prototype.createPointerEl=function(e,t,n,r){var i=t.pointer;if(i){var a=L7(e).pointerEl=new FSe[i.type](R7(t.pointer));e.add(a)}},e.prototype.createLabelEl=function(e,t,n,r){if(t.label){var i=L7(e).labelEl=new yJ(R7(t.label));e.add(i),H7(i,r)}},e.prototype.updatePointerEl=function(e,t,n){var r=L7(e).pointerEl;r&&t.pointer&&(r.setStyle(t.pointer.style),n(r,{shape:t.pointer.shape}))},e.prototype.updateLabelEl=function(e,t,n,r){var i=L7(e).labelEl;i&&(i.setStyle(t.label.style),n(i,{x:t.label.x,y:t.label.y}),H7(i,r))},e.prototype._renderHandle=function(e){if(!(this._dragging||!this.updateHandleTransform)){var t=this._axisPointerModel,n=this._api.getZr(),r=this._handle,i=t.getModel(`handle`),a=t.get(`status`);if(!i.get(`show`)||!a||a===`hide`){r&&n.remove(r),this._handle=null;return}var o;this._handle||(o=!0,r=this._handle=GZ(i.get(`icon`),{cursor:`move`,draggable:!0,onmousemove:function(e){W3(e.event)},onmousedown:z7(this._onHandleDragMove,this,0,0),drift:z7(this._onHandleDragMove,this),ondragend:z7(this._onHandleDragEnd,this)}),n.add(r)),W7(r,t,!1),r.setStyle(i.getItemStyle(null,[`color`,`borderColor`,`borderWidth`,`opacity`,`shadowColor`,`shadowBlur`,`shadowOffsetX`,`shadowOffsetY`]));var s=i.get(`size`);bU(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,v3(this,`_doDispatchAxisPointer`,i.get(`throttle`)||0,`fixRate`),this._moveHandleToValue(e,o)}},e.prototype._moveHandleToValue=function(e,t){B7(this._axisPointerModel,!t&&this._moveAnimation,this._handle,U7(this.getHandleTransform(e,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(e,t){var n=this._handle;if(n){this._dragging=!0;var r=this.updateHandleTransform(U7(n),[e,t],this._axisModel,this._axisPointerModel);this._payloadInfo=r,n.stopAnimation(),n.attr(U7(r)),L7(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){if(this._handle){var e=this._payloadInfo,t=this._axisModel;this._api.dispatchAction({type:`updateAxisPointer`,x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:t.axis.dim,axisIndex:t.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var e=this._axisPointerModel.get(`value`);this._moveHandleToValue(e),this._api.dispatchAction({type:`hideTip`})}},e.prototype.clear=function(e){this._lastValue=null,this._lastStatus=null;var t=e.getZr(),n=this._group,r=this._handle;t&&n&&(this._lastGraphicKey=null,n&&t.remove(n),r&&t.remove(r),this._group=null,this._handle=null,this._payloadInfo=null),y3(this,`_doDispatchAxisPointer`)},e.prototype.doClear=function(){},e.prototype.buildLabel=function(e,t,n){return n||=0,{x:e[n],y:e[1-n],width:t[n],height:t[1-n]}},e}();function B7(e,t,n,r){V7(L7(n).lastProp,r)||(L7(n).lastProp=r,t?EZ(n,r,e):(n.stopAnimation(),n.attr(r)))}function V7(e,t){if(TU(e)&&TU(t)){var n=!0;return $(t,function(t,r){n&&=V7(e[r],t)}),!!n}else return e===t}function H7(e,t){e[t.get([`label`,`show`])?`show`:`hide`]()}function U7(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function W7(e,t,n){var r=t.get(`z`),i=t.get(`zlevel`);e&&e.traverse(function(e){e.type!==`group`&&(r!=null&&(e.z=r),i!=null&&(e.zlevel=i),e.silent=n)})}function $Ae(e){var t=e.get(`type`),n=e.getModel(t+`Style`),r;return t===`line`?(r=n.getLineStyle(),r.fill=null):t===`shadow`&&(r=n.getAreaStyle(),r.stroke=null),r}function eje(e,t,n,r,i){var a=G7(n.get(`value`),t.axis,t.ecModel,n.get(`seriesDataIndices`),{precision:n.get([`label`,`precision`]),formatter:n.get([`label`,`formatter`])}),o=n.getModel(`label`),s=A1(o.get(`padding`)||0),c=o.getFont(),l=_G(a,c),u=i.position,d=l.width+s[1]+s[3],f=l.height+s[0]+s[2],p=i.align;p===`right`&&(u[0]-=d),p===`center`&&(u[0]-=d/2);var m=i.verticalAlign;m===`bottom`&&(u[1]-=f),m===`middle`&&(u[1]-=f/2),tje(u,d,f,r);var h=o.get(`backgroundColor`);(!h||h===`auto`)&&(h=t.get([`axisLine`,`lineStyle`,`color`])),e.label={x:u[0],y:u[1],style:fQ(o,{text:a,font:c,fill:o.getTextColor(),padding:s,backgroundColor:h}),z2:10}}function tje(e,t,n,r){var i=r.getWidth(),a=r.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+n,a)-n,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function G7(e,t,n,r,i){e=t.scale.parse(e);var a=t.scale.getLabel({value:e},{precision:i.precision}),o=i.formatter;if(o){var s={value:N2(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};$(r,function(e){var t=n.getSeriesByIndex(e.seriesIndex),r=e.dataIndexInside,i=t&&t.getDataParams(r);i&&s.seriesData.push(i)}),SU(o)?a=o.replace(`{value}`,a):xU(o)&&(a=o(s))}return a}function K7(e,t,n){var r=kW();return PW(r,r,n.rotation),NW(r,r,n.position),HZ([e.dataToCoord(t),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],r)}function nje(e,t,n,r,i,a){var o=H4.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=i.get([`label`,`margin`]),eje(t,r,i,a,{position:K7(r.axis,e,n),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function rje(e,t,n){return n||=0,{x1:e[n],y1:e[1-n],x2:t[n],y2:t[1-n]}}function ije(e,t,n){return n||=0,{x:e[n],y:e[1-n],width:t[n],height:t[1-n]}}function aje(e,t,n){return y4(e,{fromStat:{sers:fU(t,function(e){return n.getSeriesByIndex(e.seriesIndex)})},min:1}).w}function oje(e,t,n){return[jJ(AJ(t[0],t[1]),e-n/2),AJ(e+n/2,jJ(t[0],t[1]))]}var sje=function(e){PH(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(e,t,n,r,i){var a=n.axis,o=a.grid,s=r.get(`type`),c=a.getGlobalExtent(),l=q7(o,a).getOtherAxis(a).getGlobalExtent(),u=a.toGlobalCoord(a.dataToCoord(t,!0));if(s&&s!==`none`){var d=$Ae(r),f=cje[s](a,u,c,l,r.get(`seriesDataIndices`),r.ecModel);f.style=d,e.graphicKey=f.type,e.pointer=f}nje(t,e,Z4(o.getRect(),n),n,r,i)},t.prototype.getHandleTransform=function(e,t,n){var r=Z4(t.axis.grid.getRect(),t,{labelInside:!1});r.labelMargin=n.get([`handle`,`margin`]);var i=K7(t.axis,e,r);return{x:i[0],y:i[1],rotation:r.rotation+(r.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(e,t,n,r){var i=n.axis,a=i.grid,o=i.getGlobalExtent(!0),s=q7(a,i).getOtherAxis(i).getGlobalExtent(),c=i.dim===`x`?0:1,l=[e.x,e.y];l[c]+=t[c],l[c]=AJ(o[1],l[c]),l[c]=jJ(o[0],l[c]);var u=(s[1]+s[0])/2,d=[u,u];return d[c]=l[c],{x:l[0],y:l[1],rotation:e.rotation,cursorPoint:d,tooltipOption:[{verticalAlign:`middle`},{align:`center`}][c]}},t}(QAe);function q7(e,t){var n={};return n[t.dim+`AxisIndex`]=t.index,e.getCartesian(n)}var cje={line:function(e,t,n,r){return{type:`Line`,subPixelOptimize:!0,shape:rje([t,r[0]],[t,r[1]],J7(e))}},shadow:function(e,t,n,r,i,a){var o=aje(e,i,a),s=r[1]-r[0],c=oje(t,n,o),l=c[0],u=c[1];return{type:`Rect`,shape:ije([l,r[0]],[u-l,s],J7(e))}}};function J7(e){return e.dim===`x`?0:1}var lje=function(e){PH(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`axisPointer`,t.defaultOption={show:`auto`,z:50,type:`line`,snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:n0.color.border,width:1,type:`dashed`},shadowStyle:{color:n0.color.shadowTint},label:{show:!0,formatter:null,precision:`auto`,margin:3,color:n0.color.neutral00,padding:[5,7,5,7],backgroundColor:n0.color.accent60,borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:`M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z`,size:45,margin:50,color:n0.color.accent40,throttle:40}},t}(K1),Y7=vY(),uje=$;function X7(e,t,n){if(!eW.node){var r=t.getZr();Y7(r).records||(Y7(r).records={}),dje(r,t);var i=Y7(r).records[e]||(Y7(r).records[e]={});i.handler=n}}function dje(e,t){if(Y7(e).initialized)return;Y7(e).initialized=!0,n(`click`,yU(Z7,`click`)),n(`mousemove`,yU(Z7,`mousemove`)),n(`mousewheel`,yU(Z7,`mousewheel`)),n(`globalout`,pje);function n(n,r){e.on(n,function(n){var i=mje(t);uje(Y7(e).records,function(e){e&&r(e,n,i.dispatchAction)}),fje(i.pendings,t)})}}function fje(e,t){var n=e.showTip.length,r=e.hideTip.length,i;n?i=e.showTip[n-1]:r&&(i=e.hideTip[r-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function pje(e,t,n){e.handler(`leave`,null,n)}function Z7(e,t,n,r){t.handler(e,n,r)}function mje(e){var t={showTip:[],hideTip:[]},n=function(r){var i=t[r.type];i?i.push(r):(r.dispatchAction=n,e.dispatchAction(r))};return{dispatchAction:n,pendings:t}}function Q7(e,t){if(!eW.node){var n=t.getZr();(Y7(n).records||{})[e]&&(Y7(n).records[e]=null)}}var hje=function(e){PH(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.render=function(e,t,n){var r=t.getComponent(`tooltip`),i=e.get(`triggerOn`)||r&&r.get(`triggerOn`)||`mousemove|click|mousewheel`;X7(`axisPointer`,n,function(e,t,n){i!==`none`&&(e===`leave`||i.indexOf(e)>=0)&&n({type:`updateAxisPointer`,currTrigger:e,x:t&&t.offsetX,y:t&&t.offsetY})})},t.prototype.remove=function(e,t){Q7(`axisPointer`,t)},t.prototype.dispose=function(e,t){Q7(`axisPointer`,t)},t.type=`axisPointer`,t}(t8);function $7(e,t){var n=[],r=e.seriesIndex,i;if(r==null||!(i=t.getSeriesByIndex(r)))return{point:[]};var a=i.getData(),o=_Y(a,e);if(o==null||o<0||bU(o))return{point:[]};var s=a.getItemGraphicEl(o),c=i.coordinateSystem;if(i.getTooltipPosition)n=i.getTooltipPosition(o)||[];else if(c&&c.dataToPoint)if(e.isStacked){var l=c.getBaseAxis(),u=c.getOtherAxis(l).dim,d=l.dim,f=+(u===`x`||u===`radius`),p=a.mapDimension(d),m=[];m[f]=a.get(p,o),m[1-f]=a.get(a.getCalculationInfo(`stackResultDimension`),o),n=c.dataToPoint(m)||[]}else n=c.dataToPoint(a.getValues(fU(c.dimensions,function(e){return a.mapDimension(e)}),o))||[];else if(s){var h=s.getBoundingRect().clone();h.applyTransform(s.transform),n=[h.x+h.width/2,h.y+h.height/2]}return{point:n,el:s}}var e9=vY();function gje(e,t,n){var r=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||vU(n.dispatchAction,n),s=t.getComponent(`axisPointer`).coordSysAxesInfo;if(s){r9(i)&&(i=$7({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var c=r9(i),l=a.axesInfo,u=s.axesInfo,d=r===`leave`||r9(i),f={},p={},m={list:[],map:{}},h={showPointer:yU(vje,p),showTooltip:yU(yje,m)};$(s.coordSysMap,function(e,t){var n=c||e.containPoint(i);$(s.coordSysAxesInfo[t],function(e,t){var r=e.axis,a=Cje(l,e);if(!d&&n&&(!l||a)){var o=a&&a.value;o==null&&!c&&(o=r.pointToData(i)),o!=null&&t9(e,o,h,!1,f)}})});var g={};return $(u,function(e,t){var n=e.linkGroup;n&&!p[t]&&$(n.axesInfo,function(t,r){var i=p[r];if(t!==e&&i){var a=i.value;n.mapper&&(a=e.axis.scale.parse(n.mapper(a,n9(t),n9(e)))),g[e.key]=a}})}),$(g,function(e,t){t9(u[t],e,h,!0,f)}),bje(p,u,f),xje(m,i,e,o),Sje(u,o,n),f}}function t9(e,t,n,r,i){var a=e.axis;if(!(a.scale.isBlank()||!a.containData(t))){if(!e.involveSeries){n.showPointer(e,t);return}var o=_je(t,e),s=o.payloadBatch,c=o.snapToValue;s[0]&&i.seriesIndex==null&&aU(i,s[0]),!r&&e.snap&&a.containData(c)&&c!=null&&(t=c),n.showPointer(e,t,s),n.showTooltip(e,o,c)}}function _je(e,t){var n=t.axis,r=n.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return $(t.seriesModels,function(t,c){var l=t.getData().mapDimensionsAll(r),u,d;if(t.getAxisTooltipData){var f=t.getAxisTooltipData(l,e,n);d=f.dataIndices,u=f.nestestValue}else{if(d=t.indicesOfNearest(r,l[0],e,n.type===`category`?.5:null),!d.length)return;u=t.getData().get(l[0],d[0])}if(nY(u)){var p=e-u,m=Math.abs(p);m<=o&&((m=0&&s<0)&&(o=m,s=p,i=u,a.length=0),$(d,function(e){a.push({seriesIndex:t.seriesIndex,dataIndexInside:e,dataIndex:t.getData().getRawIndex(e)})}))}}),{payloadBatch:a,snapToValue:i}}function vje(e,t,n,r){e[t.key]={value:n,payloadBatch:r}}function yje(e,t,n,r){var i=n.payloadBatch,a=t.axis,o=a.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var c=t.coordSys.model,l=A7(c),u=e.map[l];u||(u=e.map[l]={coordSysId:c.id,coordSysIndex:c.componentIndex,coordSysType:c.type,coordSysMainType:c.mainType,dataByAxis:[]},e.list.push(u)),u.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:r,valueLabelOpt:{precision:s.get([`label`,`precision`]),formatter:s.get([`label`,`formatter`])},seriesDataIndices:i.slice()})}}function bje(e,t,n){var r=n.axesInfo=[];$(t,function(t,n){var i=t.axisPointerModel.option,a=e[n];a?(!t.useHandle&&(i.status=`show`),i.value=a.value,i.seriesDataIndices=(a.payloadBatch||[]).slice()):!t.useHandle&&(i.status=`hide`),i.status===`show`&&r.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:i.value})})}function xje(e,t,n,r){if(r9(t)||!e.list.length){r({type:`hideTip`});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};r({type:`showTip`,escapeConnect:!0,x:t[0],y:t[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function Sje(e,t,n){var r=n.getZr(),i=`axisPointerLastHighlights`,a=e9(r)[i]||{},o=e9(r)[i]={};$(e,function(e,t){var n=e.axisPointerModel.option;n.status===`show`&&e.triggerEmphasis&&$(n.seriesDataIndices,function(e){o[e.seriesIndex+`|`+e.dataIndex]=e})});var s=[],c=[];function l(e){return{seriesIndex:e.seriesIndex,dataIndex:e.dataIndex}}$(a,function(e,t){!o[t]&&c.push(l(e))}),$(o,function(e,t){!a[t]&&s.push(l(e))}),c.length&&n.dispatchAction({type:`downplay`,escapeConnect:!0,notBlur:!0,batch:c}),s.length&&n.dispatchAction({type:`highlight`,escapeConnect:!0,notBlur:!0,batch:s})}function Cje(e,t){for(var n=0;n<(e||[]).length;n++){var r=e[n];if(t.axis.dim===r.axisDim&&t.axis.model.componentIndex===r.axisIndex)return r}}function n9(e){var t=e.axis.model,n={},r=n.axisDim=e.axis.dim;return n.axisIndex=n[r+`AxisIndex`]=t.componentIndex,n.axisName=n[r+`AxisName`]=t.name,n.axisId=n[r+`AxisId`]=t.id,n}function r9(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function i9(e){M7.registerAxisPointerClass(`CartesianAxisPointer`,sje),e.registerComponentModel(lje),e.registerComponentView(hje),e.registerPreprocessor(function(e){if(e){(!e.axisPointer||e.axisPointer.length===0)&&(e.axisPointer={});var t=e.axisPointer.link;t&&!bU(t)&&(e.axisPointer.link=[t])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,{overallReset:function(e,t){e.getComponent(`axisPointer`).coordSysAxesInfo=RAe(e,t)}}),e.registerAction({type:`updateAxisPointer`,event:`updateAxisPointer`,update:`:updateAxisPointer`},gje)}function wje(e){c7(ZAe),c7(i9)}function Tje(e,t){var n=A1(t.get(`padding`)),r=t.getItemStyle([`color`,`opacity`]);return r.fill=t.get(`backgroundColor`),new hJ({shape:{x:e.x-n[3],y:e.y-n[0],width:e.width+n[1]+n[3],height:e.height+n[0]+n[2],r:t.get(`borderRadius`)},style:r,silent:!0,z2:-1})}var Eje=function(e){PH(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`tooltip`,t.dependencies=[`axisPointer`],t.defaultOption={z:60,show:!0,showContent:!0,trigger:`item`,triggerOn:`mousemove|click|mousewheel`,alwaysShowContent:!1,renderMode:`auto`,confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,displayTransition:!0,enterable:!1,backgroundColor:n0.color.neutral00,shadowBlur:10,shadowColor:`rgba(0, 0, 0, .2)`,shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,defaultBorderColor:n0.color.border,padding:null,extraCssText:``,axisPointer:{type:`line`,axis:`auto`,animation:`auto`,animationDurationUpdate:200,animationEasingUpdate:`exponentialOut`,crossStyle:{color:n0.color.borderShade,width:1,type:`dashed`,textStyle:{}}},textStyle:{color:n0.color.tertiary,fontSize:14}},t}(K1);function a9(e){var t=e.get(`confine`);return t==null?e.get(`renderMode`)===`richText`:!!t}function o9(e){if(eW.domSupported){for(var t=document.documentElement.style,n=0,r=e.length;n-1?(s+=`top:50%`,c+=`translateY(-50%) rotate(`+(l=a===`left`?-225:-45)+`deg)`):(s+=`left:50%`,c+=`translateX(-50%) rotate(`+(l=a===`top`?225:45)+`deg)`);var u=l*Math.PI/180,d=o+i,f=d*Math.abs(Math.cos(u))+d*Math.abs(Math.sin(u)),p=Math.round(((f-Math.SQRT2*i)/2+Math.SQRT2*i-(f-d)/2)*100)/100;s+=`;`+a+`:-`+p+`px`;var m=t+` solid `+i+`px;`;return`
`}function Nje(e,t,n){var r=`cubic-bezier(0.23,1,0.32,1)`,i=``,a=``;return n&&(i=` `+e/2+`s `+r,a=`opacity`+i+`,visibility`+i),t||(i=` `+e+`s `+r,a+=(a.length?`,`:``)+(eW.transformSupported?``+l9+i:`,left`+i+`,top`+i)),kje+`:`+a}function u9(e,t,n){var r=e.toFixed(0)+`px`,i=t.toFixed(0)+`px`;if(!eW.transformSupported)return n?`top:`+i+`;left:`+r+`;`:[[`top`,i],[`left`,r]];var a=eW.transform3dSupported,o=`translate`+(a?`3d`:``)+`(`+r+`,`+i+(a?`,0`:``)+`)`;return n?`top:0;left:0;`+l9+`:`+o+`;`:[[`top`,0],[`left`,0],[s9,o]]}function Pje(e){var t=[],n=e.get(`fontSize`),r=e.getTextColor();r&&t.push(`color:`+r),t.push(`font:`+e.getFont());var i=NU(e.get(`lineHeight`),Math.round(n*3/2));n&&t.push(`line-height:`+i+`px`);var a=e.get(`textShadowColor`),o=e.get(`textShadowBlur`)||0,s=e.get(`textShadowOffsetX`)||0,c=e.get(`textShadowOffsetY`)||0;return a&&o&&t.push(`text-shadow:`+s+`px `+c+`px `+o+`px `+a),$([`decoration`,`align`],function(n){var r=e.get(n);r&&t.push(`text-`+n+`:`+r)}),t.join(`;`)}function Fje(e,t,n,r){var i=[],a=e.get(`transitionDuration`),o=e.get(`backgroundColor`),s=e.get(`shadowBlur`),c=e.get(`shadowColor`),l=e.get(`shadowOffsetX`),u=e.get(`shadowOffsetY`),d=e.getModel(`textStyle`),f=h0(e,`html`),p=l+`px `+u+`px `+s+`px `+c;return i.push(`box-shadow:`+p),t&&a>0&&i.push(Nje(a,n,r)),o&&i.push(`background-color:`+o),$([`width`,`color`,`radius`],function(t){var n=`border-`+t,r=k1(n),a=e.get(r);a!=null&&i.push(n+`:`+a+(t===`color`?``:`px`))}),i.push(Pje(d)),f!=null&&i.push(`padding:`+A1(f).join(`px `)+`px`),i.join(`;`)+`;`}function d9(e,t,n,r,i){var a=t&&t.painter;if(n){var o=a&&a.getViewportRoot();o&&awe(e,o,n,r,i)}else{e[0]=r,e[1]=i;var s=a&&a.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var Ije=function(){function e(e,t){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,eW.wxa)return null;var n=document.createElement(`div`);n.domBelongToZr=!0,this.el=n;var r=this._zr=e.getZr(),i=t.appendTo,a=i&&(SU(i)?document.querySelector(i):OU(i)?i:xU(i)&&i(e.getDom()));d9(this._styleCoord,r,a,e.getWidth()/2,e.getHeight()/2),(a||e.getDom()).appendChild(n),this._api=e,this._container=a;var o=this;n.onmouseenter=function(){o._enterable&&(clearTimeout(o._hideTimeout),o._show=!0),o._inContent=!0},n.onmousemove=function(e){if(e||=window.event,!o._enterable){var t=r.handler;U3(r.painter.getViewportRoot(),e,!0),t.dispatch(`mousemove`,e)}},n.onmouseleave=function(){o._inContent=!1,o._enterable&&o._show&&o.hideLater(o._hideDelay)}}return e.prototype.update=function(e){if(!this._container){var t=this._api.getDom(),n=Oje(t,`position`),r=t.style;r.position!==`absolute`&&n!==`absolute`&&(r.position=`relative`)}var i=e.get(`alwaysShowContent`);i&&this._moveIfResized(),this._alwaysShowContent=i,this._enableDisplayTransition=e.get(`displayTransition`)&&e.get(`transitionDuration`)>0,this.el.className=e.get(`className`)||``},e.prototype.show=function(e,t){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,r=n.style,i=this._styleCoord;n.innerHTML?r.cssText=Aje+Fje(e,!this._firstShow,this._longHide,this._enableDisplayTransition)+u9(i[0],i[1],!0)+(`border-color:`+F1(t)+`;`)+(e.get(`extraCssText`)||``)+(`;pointer-events:`+(this._enterable?`auto`:`none`)):r.display=`none`,this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(e,t,n,r,i){var a=this.el;if(e==null){a.innerHTML=``;return}var o=``;if(SU(i)&&n.get(`trigger`)===`item`&&!a9(n)&&(o=Mje(n,r,i)),SU(e))a.innerHTML=e+o;else if(e){a.innerHTML=``,bU(e)||(e=[e]);for(var s=0;s=0?this._tryShow(n,r):t===`leave`&&this._hide(r))},this))},t.prototype._keepShow=function(){var e=this._tooltipModel,t=this._ecModel,n=this._api,r=e.get(`triggerOn`);if(e.get(`trigger`)!==`axis`&&(this._lastDataByCoordSys=null,this._cbParamsList=null),this._lastX!=null&&this._lastY!=null&&r!==`none`&&r!==`click`){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!n.isDisposed()&&i.manuallyShowTip(e,t,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(e,t,n,r){if(!(r.from===this.uid||eW.node||!n.getDom())){var i=g9(r,n);this._ticket=``;var a=r.dataByCoordSys,o=Uje(r,t,n);if(o){var s=o.el.getBoundingRect().clone();s.applyTransform(o.el.transform),this._tryShow({offsetX:s.x+s.width/2,offsetY:s.y+s.height/2,target:o.el,position:r.position,positionDefault:`bottom`},i)}else if(r.tooltip&&r.x!=null&&r.y!=null){var c=Rje;c.x=r.x,c.y=r.y,c.update(),PY(c).tooltipConfig={name:null,option:r.tooltip},this._tryShow({offsetX:r.x,offsetY:r.y,target:c},i)}else if(a)this._tryShow({offsetX:r.x,offsetY:r.y,position:r.position,dataByCoordSys:a,tooltipOption:r.tooltipOption},i);else if(r.seriesIndex!=null){if(this._manuallyAxisShowTip(e,t,n,r))return;var l=$7(r,t),u=l.point[0],d=l.point[1];u!=null&&d!=null&&this._tryShow({offsetX:u,offsetY:d,target:l.el,position:r.position,positionDefault:`bottom`},i)}else r.x!=null&&r.y!=null&&(n.dispatchAction({type:`updateAxisPointer`,x:r.x,y:r.y}),this._tryShow({offsetX:r.x,offsetY:r.y,position:r.position,target:n.getZr().findHover(r.x,r.y).target},i))}},t.prototype.manuallyHideTip=function(e,t,n,r){var i=this._tooltipContent;this._tooltipModel&&i.hideLater(this._tooltipModel.get(`hideDelay`)),this._lastX=this._lastY=this._lastDataByCoordSys=null,this._cbParamsList=null,r.from!==this.uid&&this._hide(g9(r,n))},t.prototype._manuallyAxisShowTip=function(e,t,n,r){var i=r.seriesIndex,a=r.dataIndex,o=t.getComponent(`axisPointer`).coordSysAxesInfo;if(!(i==null||a==null||o==null)){var s=t.getSeriesByIndex(i);if(s&&h9([s.getData().getItemModel(a),s,(s.coordinateSystem||{}).model],this._tooltipModel).get(`trigger`)===`axis`)return n.dispatchAction({type:`updateAxisPointer`,seriesIndex:i,dataIndex:a,position:r.position}),!0}},t.prototype._tryShow=function(e,t){var n=e.target;if(this._tooltipModel){this._lastX=e.offsetX,this._lastY=e.offsetY;var r=e.dataByCoordSys;if(r&&r.length)this._showAxisTooltip(r,e);else if(n){if(PY(n).ssrType===`legend`)return;this._lastDataByCoordSys=null,this._cbParamsList=null;var i,a;x8(n,function(e){if(e.tooltipDisabled)return i=a=null,!0;i||a||(PY(e).dataIndex==null?PY(e).tooltipConfig!=null&&(a=e):i=e)},!0),i?this._showSeriesItemTooltip(e,i,t):a?this._showComponentItemTooltip(e,a,t):this._hide(t)}else this._lastDataByCoordSys=null,this._cbParamsList=null,this._hide(t)}},t.prototype._showOrMove=function(e,t){var n=e.get(`showDelay`);t=vU(t,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(t,n):t()},t.prototype._showAxisTooltip=function(e,t){var n=this._ecModel,r=this._tooltipModel,i=[t.offsetX,t.offsetY],a=h9([t.tooltipOption],r),o=this._renderMode,s=[],c=c0(`section`,{blocks:[],noHeader:!0}),l=[],u=new g0;$(e,function(e){$(e.dataByAxis,function(e){var t=n.getComponent(e.axisDim+`Axis`,e.axisIndex),i=e.value,a=t.axis,d=a.scale.parse(i);if(!(!t||i==null)){var f=G7(i,a,n,e.seriesDataIndices,e.valueLabelOpt),p=c0(`section`,{header:f,noHeader:!RU(f),sortBlocks:!0,blocks:[]});c.blocks.push(p),$(e.seriesDataIndices,function(i){var a=n.getSeriesByIndex(i.seriesIndex),c=i.dataIndexInside,m=a.getDataParams(c);if(!(m.dataIndex<0)){m.axisDim=e.axisDim,m.axisIndex=e.axisIndex,m.axisType=e.axisType,m.axisId=e.axisId,m.axisValue=N2(t.axis,{value:d}),m.axisValueLabel=f,m.marker=u.makeTooltipMarker(`item`,F1(m.color),o);var h=Y1(a.formatTooltip(c,!0,null)),g=h.frag;if(g){var _=h9([a],r).get(`valueFormatter`);p.blocks.push(_?aU({valueFormatter:_},g):g)}h.text&&l.push(h.text),s.push(m)}})}})}),c.blocks.reverse(),l.reverse();var d=t.position,f=f0(c,u,o,a.get(`order`),n.get(`useUTC`),a.get(`textStyle`));f&&l.unshift(f);var p=o===`richText`?` + +`:`
`,m=l.join(p);this._showOrMove(a,function(){this._updateContentNotChangedOnAxis(e,s)?this._updatePosition(a,d,i[0],i[1],this._tooltipContent,s):this._showTooltipContent(a,m,s,Math.random()+``,i[0],i[1],d,null,u)})},t.prototype._showSeriesItemTooltip=function(e,t,n){var r=this._ecModel,i=PY(t),a=i.seriesIndex,o=r.getSeriesByIndex(a),s=i.dataModel||o,c=i.dataIndex,l=i.dataType,u=s.getData(l),d=this._renderMode,f=e.positionDefault,p=h9([u.getItemModel(c),s,o&&(o.coordinateSystem||{}).model],this._tooltipModel,f?{position:f}:null),m=p.get(`trigger`);if(!(m!=null&&m!==`item`)){var h=s.getDataParams(c,l),g=new g0;h.marker=g.makeTooltipMarker(`item`,F1(h.color),d);var _=Y1(s.formatTooltip(c,!1,l)),v=p.get(`order`),y=p.get(`valueFormatter`),b=_.frag,x=b?f0(y?aU({valueFormatter:y},b):b,g,d,v,r.get(`useUTC`),p.get(`textStyle`)):_.text,S=`item_`+s.name+`_`+c;this._showOrMove(p,function(){this._showTooltipContent(p,x,h,S,e.offsetX,e.offsetY,e.position,e.target,g)}),n({type:`showTip`,dataIndexInside:c,dataIndex:u.getRawIndex(c),seriesIndex:a,from:this.uid})}},t.prototype._showComponentItemTooltip=function(e,t,n){var r=this._renderMode===`html`,i=PY(t),a=i.tooltipConfig.option||{},o=a.encodeHTMLContent;if(SU(a)){var s=a;a={content:s,formatter:s},o=!0}o&&r&&a.content&&(a=rU(a),a.content=U$(a.content));var c=[a],l=this._ecModel.getComponent(i.componentMainType,i.componentIndex);l&&c.push(l),c.push({formatter:a.content});var u=e.positionDefault,d=h9(c,this._tooltipModel,u?{position:u}:null),f=d.get(`content`),p=Math.random()+``,m=new g0;this._showOrMove(d,function(){var n=rU(d.get(`formatterParams`)||{});this._showTooltipContent(d,f,n,p,e.offsetX,e.offsetY,e.position,t,m)}),n({type:`showTip`,from:this.uid})},t.prototype._showTooltipContent=function(e,t,n,r,i,a,o,s,c){if(this._ticket=``,!(!e.get(`showContent`)||!e.get(`show`))){var l=this._tooltipContent;l.setEnterable(e.get(`enterable`));var u=e.get(`formatter`);o||=e.get(`position`);var d=t,f=this._getNearestPoint([i,a],n,e.get(`trigger`),e.get(`borderColor`),e.get(`defaultBorderColor`,!0)).color;if(u)if(SU(u)){var p=e.ecModel.get(`useUTC`),m=bU(n)?n[0]:n,h=m&&m.axisType&&m.axisType.indexOf(`time`)>=0;d=u,h&&(d=f1(m.axisValue,d,p)),d=P1(d,n,!0)}else if(xU(u)){var g=vU(function(t,r){t===this._ticket&&(l.setContent(r,c,e,f,o),this._updatePosition(e,o,i,a,l,n,s))},this);this._ticket=r,d=u(n,r,g)}else d=u;l.setContent(d,c,e,f,o),l.show(e,f),this._updatePosition(e,o,i,a,l,n,s)}},t.prototype._getNearestPoint=function(e,t,n,r,i){if(n===`axis`||bU(t))return{color:r||i};if(!bU(t))return{color:r||t.color||t.borderColor}},t.prototype._updatePosition=function(e,t,n,r,i,a,o){var s=this._api.getWidth(),c=this._api.getHeight();t||=e.get(`position`);var l=i.getSize(),u=e.get(`align`),d=e.get(`verticalAlign`),f=o&&o.getBoundingRect().clone();if(o&&f.applyTransform(o.transform),xU(t)&&(t=t([n,r],a,i.el,f,{viewSize:[s,c],contentSize:l.slice()})),bU(t))n=BJ(t[0],s),r=BJ(t[1],c);else if(TU(t)){var p=t;p.width=l[0],p.height=l[1];var m=B1(p,{width:s,height:c});n=m.x,r=m.y,u=null,d=null}else if(SU(t)&&o){var h=Hje(t,f,l,e.get(`borderWidth`));n=h[0],r=h[1]}else{var h=Bje(n,r,i,s,c,u?null:20,d?null:20);n=h[0],r=h[1]}if(u&&(n-=_9(u)?l[0]/2:u===`right`?l[0]:0),d&&(r-=_9(d)?l[1]/2:d===`bottom`?l[1]:0),a9(e)){var h=Vje(n,r,i,s,c);n=h[0],r=h[1]}i.moveTo(n,r)},t.prototype._updateContentNotChangedOnAxis=function(e,t){var n=this._lastDataByCoordSys,r=this._cbParamsList,i=!!n&&n.length===e.length;return i&&$(n,function(n,a){var o=n.dataByAxis||[],s=(e[a]||{}).dataByAxis||[];i&&=o.length===s.length,i&&$(o,function(e,n){var a=s[n]||{},o=e.seriesDataIndices||[],c=a.seriesDataIndices||[];i=i&&e.value===a.value&&e.axisType===a.axisType&&e.axisId===a.axisId&&o.length===c.length,i&&$(o,function(e,t){var n=c[t];i=i&&e.seriesIndex===n.seriesIndex&&e.dataIndex===n.dataIndex}),r&&$(e.seriesDataIndices,function(e){var n=e.seriesIndex,a=t[n],o=r[n];a&&o&&o.data!==a.data&&(i=!1)})})}),this._lastDataByCoordSys=e,this._cbParamsList=t,!!i},t.prototype._hide=function(e){this._lastDataByCoordSys=null,this._cbParamsList=null,e({type:`hideTip`,from:this.uid})},t.prototype.dispose=function(e,t){eW.node||!t.getDom()||(y3(this,`_updatePosition`),this._tooltipContent.dispose(),Q7(`itemTooltip`,t),this._tooltipContent=null,this._tooltipModel=null,this._lastDataByCoordSys=null,this._cbParamsList=null)},t.type=`tooltip`,t}(t8);function h9(e,t,n){var r=t.ecModel,i;n?(i=new wQ(n,r,r),i=new wQ(t.option,i,r)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof wQ&&(o=o.get(`tooltip`,!0)),SU(o)&&(o={formatter:o}),o&&(i=new wQ(o,i,r)))}return i}function g9(e,t){return e.dispatchAction||vU(t.dispatchAction,t)}function Bje(e,t,n,r,i,a,o){var s=n.getSize(),c=s[0],l=s[1];return a!=null&&(e+c+a+2>r?e-=c+a:e+=a),o!=null&&(t+l+o>i?t-=l+o:t+=o),[e,t]}function Vje(e,t,n,r,i){var a=n.getSize(),o=a[0],s=a[1];return e=Math.min(e+o,r)-o,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function Hje(e,t,n,r){var i=n[0],a=n[1],o=Math.ceil(Math.SQRT2*r)+8,s=0,c=0,l=t.width,u=t.height;switch(e){case`inside`:s=t.x+l/2-i/2,c=t.y+u/2-a/2;break;case`top`:s=t.x+l/2-i/2,c=t.y-a-o;break;case`bottom`:s=t.x+l/2-i/2,c=t.y+u+o;break;case`left`:s=t.x-i-o,c=t.y+u/2-a/2;break;case`right`:s=t.x+l+o,c=t.y+u/2-a/2}return[s,c]}function _9(e){return e===`center`||e===`middle`}function Uje(e,t,n){var r=bY(e).queryOptionMap,i=r.keys()[0];if(!(!i||i===`series`)){var a=SY(t,i,r.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}).models[0];if(a){var o=n.getViewOfComponentModel(a),s;if(o.group.traverse(function(t){var n=PY(t).tooltipConfig;if(n&&n.name===e.name)return s=t,!0}),s)return{componentMainType:i,componentIndex:a.componentIndex,el:s}}}}function Wje(e){c7(i9),e.registerComponentModel(Eje),e.registerComponentView(zje),e.registerAction({type:`showTip`,event:`showTip`,update:`tooltip:manuallyShowTip`},ZU),e.registerAction({type:`hideTip`,event:`hideTip`,update:`tooltip:manuallyHideTip`},ZU)}var Gje=function(e,t){if(t===`all`)return{type:`all`,title:e.getLocaleModel().get([`legend`,`selector`,`all`])};if(t===`inverse`)return{type:`inverse`,title:e.getLocaleModel().get([`legend`,`selector`,`inverse`])}},v9=function(e){PH(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.layoutMode={type:`box`,ignoreSize:!0},n}return t.prototype.init=function(e,t,n){this.mergeDefaultAndTheme(e,n),e.selected=e.selected||{},this._updateSelector(e)},t.prototype.mergeOption=function(t,n){e.prototype.mergeOption.call(this,t,n),this._updateSelector(t)},t.prototype._updateSelector=function(e){var t=e.selector,n=this.ecModel;t===!0&&(t=e.selector=[`all`,`inverse`]),bU(t)&&$(t,function(e,r){SU(e)&&(e={type:e}),t[r]=iU(e,Gje(n,e.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var e=this._data;if(e[0]&&this.get(`selectedMode`)===`single`){for(var t=!1,n=0;n=0},t.prototype.getOrient=function(){return this.get(`orient`)===`vertical`?{index:1,name:`vertical`}:{index:0,name:`horizontal`}},t.type=`legend.plain`,t.dependencies=[`series`],t.defaultOption={z:4,show:!0,orient:`horizontal`,left:`center`,bottom:n0.size.m,align:`auto`,backgroundColor:n0.color.transparent,borderColor:n0.color.border,borderRadius:0,borderWidth:0,padding:5,itemGap:8,itemWidth:25,itemHeight:14,symbolRotate:`inherit`,symbolKeepAspect:!0,inactiveColor:n0.color.disabled,inactiveBorderColor:n0.color.disabled,inactiveBorderWidth:`auto`,itemStyle:{color:`inherit`,opacity:`inherit`,borderColor:`inherit`,borderWidth:`auto`,borderCap:`inherit`,borderJoin:`inherit`,borderDashOffset:`inherit`,borderMiterLimit:`inherit`},lineStyle:{width:`auto`,color:`inherit`,inactiveColor:n0.color.disabled,inactiveWidth:2,opacity:`inherit`,type:`inherit`,cap:`inherit`,join:`inherit`,dashOffset:`inherit`,miterLimit:`inherit`},textStyle:{color:n0.color.secondary},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:`sans-serif`,color:n0.color.tertiary,borderWidth:1,borderColor:n0.color.border},emphasis:{selectorLabel:{show:!0,color:n0.color.quaternary}},selectorPosition:`auto`,selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1},triggerEvent:!1},t}(K1),y9=yU,b9=$,x9=GX,S9=function(e){PH(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.newlineDisabled=!1,n}return t.prototype.init=function(){this.group.add(this._contentGroup=new x9),this.group.add(this._selectorGroup=new x9),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(e,t,n){var r=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),e.get(`show`,!0)){var i=e.get(`align`),a=e.get(`orient`);(!i||i===`auto`)&&(i=e.get(`left`)===`right`&&a===`vertical`?`right`:`left`);var o=e.get(`selector`,!0),s=e.get(`selectorPosition`,!0);o&&(!s||s===`auto`)&&(s=a===`horizontal`?`end`:`start`),this.renderInner(i,e,t,n,o,a,s);var c=H1(e,n).refContainer,l=e.getBoxLayoutParams(),u=e.get(`padding`),d=B1(l,c,u),f=this.layoutInner(e,i,d,r,o,s),p=B1(sU({width:f.width,height:f.height},l),c,u);this.group.x=p.x-f.x,this.group.y=p.y-f.y,this.group.markRedraw(),this.group.add(this._backgroundEl=Tje(f,e))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(e,t,n,r,i,a,o){var s=this.getContentGroup(),c=KU(),l=t.get(`selectedMode`),u=t.get(`triggerEvent`),d=[];n.eachRawSeries(function(e){!e.get(`legendHoverLink`)&&d.push(e.id)}),b9(t.getData(),function(i,a){var o=this,f=i.get(`name`);if(!this.newlineDisabled&&(f===``||f===` +`)){var p=new x9;p.newline=!0,s.add(p);return}var m=n.getSeriesByName(f)[0];if(!c.get(f))if(m){var h=m.getData(),g=h.getVisual(`legendLineStyle`)||{},_=h.getVisual(`legendIcon`),v=h.getVisual(`style`),y=this._createItem(m,f,a,i,t,e,g,v,_,l,r);y.on(`click`,y9(C9,f,null,r,d)).on(`mouseover`,y9(w9,m.name,null,r,d)).on(`mouseout`,y9(T9,m.name,null,r,d)),n.ssr&&y.eachChild(function(e){var t=PY(e);t.seriesIndex=m.seriesIndex,t.dataIndex=a,t.ssrType=`legend`}),u&&y.eachChild(function(e){o.packEventData(e,t,m,a,f)}),c.set(f,!0)}else n.eachRawSeries(function(o){var s=this;if(!c.get(f)&&o.legendVisualProvider){var p=o.legendVisualProvider;if(!p.containName(f))return;var m=p.indexOfName(f),h=p.getItemVisual(m,`style`),g=p.getItemVisual(m,`legendIcon`),_=TK(h.fill);_&&_[3]===0&&(_[3]=.2,h=aU(aU({},h),{fill:kK(_,`rgba`)}));var v=this._createItem(o,f,a,i,t,e,{},h,g,l,r);v.on(`click`,y9(C9,null,f,r,d)).on(`mouseover`,y9(w9,null,f,r,d)).on(`mouseout`,y9(T9,null,f,r,d)),n.ssr&&v.eachChild(function(e){var t=PY(e);t.seriesIndex=o.seriesIndex,t.dataIndex=a,t.ssrType=`legend`}),u&&v.eachChild(function(e){s.packEventData(e,t,o,a,f)}),c.set(f,!0)}},this)},this),i&&this._createSelector(i,t,r,a,o)},t.prototype.packEventData=function(e,t,n,r,i){var a={componentType:`legend`,componentIndex:t.componentIndex,dataIndex:r,value:i,seriesIndex:n.seriesIndex};PY(e).eventData=a},t.prototype._createSelector=function(e,t,n,r,i){var a=this.getSelectorGroup();b9(e,function(e){var r=e.type,i=new yJ({style:{x:0,y:0,align:`center`,verticalAlign:`middle`},onclick:function(){n.dispatchAction({type:r===`all`?`legendAllSelect`:`legendInverseSelect`,legendId:t.id})}});a.add(i),uQ(i,{normal:t.getModel(`selectorLabel`),emphasis:t.getModel([`emphasis`,`selectorLabel`])},{defaultText:e.title}),wX(i)})},t.prototype._createItem=function(e,t,n,r,i,a,o,s,c,l,u){var d=e.visualDrawType,f=i.get(`itemWidth`),p=i.get(`itemHeight`),m=i.isSelected(t),h=r.get(`symbolRotate`),g=r.get(`symbolKeepAspect`),_=r.get(`icon`);c=_||c||`roundRect`;var v=Kje(c,r,o,s,d,m,u),y=new x9,b=r.getModel(`textStyle`);if(xU(e.getLegendIcon)&&(!_||_===`inherit`))y.add(e.getLegendIcon({itemWidth:f,itemHeight:p,icon:c,iconRotate:h,itemStyle:v.itemStyle,lineStyle:v.lineStyle,symbolKeepAspect:g}));else{var x=_===`inherit`&&e.getData().getVisual(`symbol`)?h===`inherit`?e.getData().getVisual(`symbolRotate`):h:0;y.add(qje({itemWidth:f,itemHeight:p,icon:c,iconRotate:x,itemStyle:v.itemStyle,lineStyle:v.lineStyle,symbolKeepAspect:g}))}var S=a===`left`?f+5:-5,C=a,w=i.get(`formatter`),T=t;SU(w)&&w?T=w.replace(`{name}`,t??``):xU(w)&&(T=w(t));var E=m?b.getTextColor():r.get(`inactiveColor`);y.add(new yJ({style:fQ(b,{text:T,x:S,y:p/2,fill:E,align:C,verticalAlign:`middle`},{inheritColor:E})}));var D=new hJ({shape:y.getBoundingRect(),style:{fill:`transparent`}}),O=r.getModel(`tooltip`);return O.get(`show`)&&ZZ({el:D,componentModel:i,itemName:t,itemTooltipOption:O.option}),y.add(D),y.eachChild(function(e){e.silent=!0}),D.silent=!l,this.getContentGroup().add(y),wX(y),y.__legendDataIndex=n,y},t.prototype.layoutInner=function(e,t,n,r,i,a){var o=this.getContentGroup(),s=this.getSelectorGroup();z1(e.get(`orient`),o,e.get(`itemGap`),n.width,n.height);var c=o.getBoundingRect(),l=[-c.x,-c.y];if(s.markRedraw(),o.markRedraw(),i){z1(`horizontal`,s,e.get(`selectorItemGap`,!0));var u=s.getBoundingRect(),d=[-u.x,-u.y],f=e.get(`selectorButtonGap`,!0),p=e.getOrient().index,m=p===0?`width`:`height`,h=p===0?`height`:`width`,g=p===0?`y`:`x`;a===`end`?d[p]+=c[m]+f:l[p]+=u[m]+f,d[1-p]+=c[h]/2-u[h]/2,s.x=d[0],s.y=d[1],o.x=l[0],o.y=l[1];var _={x:0,y:0};return _[m]=c[m]+f+u[m],_[h]=Math.max(c[h],u[h]),_[g]=Math.min(0,u[g]+d[1-p]),_}else return o.x=l[0],o.y=l[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type=`legend.plain`,t}(t8);function Kje(e,t,n,r,i,a,o){function s(e,t){e.lineWidth===`auto`&&(e.lineWidth=t.lineWidth>0?2:0),b9(e,function(n,r){e[r]===`inherit`&&(e[r]=t[r])})}var c=t.getModel(`itemStyle`),l=c.getItemStyle(),u=e.lastIndexOf(`empty`,0)===0?`fill`:`stroke`,d=c.getShallow(`decal`);l.decal=!d||d===`inherit`?r.decal:Z8(d,o),l.fill===`inherit`&&(l.fill=r[i]),l.stroke===`inherit`&&(l.stroke=r[u]),l.opacity===`inherit`&&(l.opacity=(i===`fill`?r:n).opacity),s(l,r);var f=t.getModel(`lineStyle`),p=f.getLineStyle();if(s(p,n),l.fill===`auto`&&(l.fill=r.fill),l.stroke===`auto`&&(l.stroke=r.fill),p.stroke===`auto`&&(p.stroke=r.fill),!a){var m=t.get(`inactiveBorderWidth`),h=l[u];l.lineWidth=m===`auto`?r.lineWidth>0&&h?2:0:l.lineWidth,l.fill=t.get(`inactiveColor`),l.stroke=t.get(`inactiveBorderColor`),p.stroke=f.get(`inactiveColor`),p.lineWidth=f.get(`inactiveWidth`)}return{itemStyle:l,lineStyle:p}}function qje(e){var t=e.icon||`roundRect`,n=w0(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return n.setStyle(e.itemStyle),n.rotation=(e.iconRotate||0)*Math.PI/180,n.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf(`empty`)>-1&&(n.style.stroke=n.style.fill,n.style.fill=n0.color.neutral00,n.style.lineWidth=2),n}function C9(e,t,n,r){T9(e,t,n,r),n.dispatchAction({type:`legendToggleSelect`,name:e??t}),w9(e,t,n,r)}function w9(e,t,n,r){n.usingTHL()||n.dispatchAction({type:`highlight`,seriesName:e,name:t,excludeSeriesId:r})}function T9(e,t,n,r){n.usingTHL()||n.dispatchAction({type:`downplay`,seriesName:e,name:t,excludeSeriesId:r})}function E9(e,t,n){var r=e===`allSelect`||e===`inverseSelect`,i={},a=[];n.eachComponent({mainType:`legend`,query:t},function(n){r?n[e]():n[e](t.name),D9(n,i),a.push(n.componentIndex)});var o={};return n.eachComponent(`legend`,function(e){$(i,function(t,n){e[t?`select`:`unSelect`](n)}),D9(e,o)}),r?{selected:o,legendIndex:a}:{name:t.name,selected:o}}function D9(e,t){var n=t||{};return $(e.getData(),function(t){var r=t.get(`name`);if(!(r===` +`||r===``)){var i=e.isSelected(r);XU(n,r)?n[r]=n[r]&&i:n[r]=i}}),n}function Jje(e){e.registerAction(`legendToggleSelect`,`legendselectchanged`,yU(E9,`toggleSelected`)),e.registerAction(`legendAllSelect`,`legendselectall`,yU(E9,`allSelect`)),e.registerAction(`legendInverseSelect`,`legendinverseselect`,yU(E9,`inverseSelect`)),e.registerAction(`legendSelect`,`legendselected`,yU(E9,`select`)),e.registerAction(`legendUnSelect`,`legendunselected`,yU(E9,`unSelect`))}var Yje=NY(Xje);function Xje(e){var t=e.findComponents({mainType:`legend`});t&&t.length&&e.filterSeries(function(e){for(var n=0;nn[i],m=[-d.x,-d.y];t||(m[r]=c[s]);var h=[0,0],g=[-f.x,-f.y],_=NU(e.get(`pageButtonGap`,!0),e.get(`itemGap`,!0));p&&(e.get(`pageButtonPosition`,!0)===`end`?g[r]+=n[i]-f[i]:h[r]+=f[i]+_),g[1-r]+=d[a]/2-f[a]/2,c.setPosition(m),l.setPosition(h),u.setPosition(g);var v={x:0,y:0};if(v[i]=p?n[i]:d[i],v[a]=Math.max(d[a],f[a]),v[o]=Math.min(0,f[o]+g[1-r]),l.__rectSize=n[i],p){var y={x:0,y:0};y[i]=Math.max(n[i]-f[i]-_,0),y[a]=v[a],l.setClipPath(new hJ({shape:y})),l.__rectSize=y[i]}else u.eachChild(function(e){e.attr({invisible:!0,silent:!0})});var b=this._getPageInfo(e);return b.pageIndex!=null&&EZ(c,{x:b.contentPosition[0],y:b.contentPosition[1]},p?e:null),this._updatePageInfoView(e,b),v},t.prototype._pageGo=function(e,t,n){var r=this._getPageInfo(t)[e];r!=null&&n.dispatchAction({type:`legendScroll`,scrollDataIndex:r,legendId:t.id})},t.prototype._updatePageInfoView=function(e,t){var n=this._controllerGroup;$([`pagePrev`,`pageNext`],function(r){var i=t[r+`DataIndex`]!=null,a=n.childOfName(r);a&&(a.setStyle(`fill`,i?e.get(`pageIconColor`,!0):e.get(`pageIconInactiveColor`,!0)),a.cursor=i?`pointer`:`default`)});var r=n.childOfName(`pageText`),i=e.get(`pageFormatter`),a=t.pageIndex,o=a==null?0:a+1,s=t.pageCount;r&&i&&r.setStyle(`text`,SU(i)?i.replace(`{current}`,o==null?``:o+``).replace(`{total}`,s==null?``:s+``):i({current:o,total:s}))},t.prototype._getPageInfo=function(e){var t=e.get(`scrollDataIndex`,!0),n=this.getContentGroup(),r=this._containerGroup.__rectSize,i=e.getOrient().index,a=j9[i],o=M9[i],s=this._findTargetItemIndex(t),c=n.children(),l=c[s],u=c.length,d=+!!u,f={contentPosition:[n.x,n.y],pageCount:d,pageIndex:d-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!l)return f;var p=v(l);f.contentPosition[i]=-p.s;for(var m=s+1,h=p,g=p,_=null;m<=u;++m)_=v(c[m]),(!_&&g.e>h.s+r||_&&!y(_,h.s))&&(h=g.i>h.i?g:_,h&&(f.pageNextDataIndex??=h.i,++f.pageCount)),g=_;for(var m=s-1,h=p,g=p,_=null;m>=-1;--m)_=v(c[m]),(!_||!y(g,_.s))&&h.i=t&&e.s<=t+r}},t.prototype._findTargetItemIndex=function(e){if(!this._showController)return 0;var t,n=this.getContentGroup(),r;return n.eachChild(function(n,i){var a=n.__legendDataIndex;r==null&&a!=null&&(r=i),a===e&&(t=i)}),t??r},t.type=`legend.scroll`,t}(S9);function $je(e){e.registerAction(`legendScroll`,`legendscroll`,function(e,t){var n=e.scrollDataIndex;n!=null&&t.eachComponent({mainType:`legend`,subType:`scroll`,query:e},function(e){e.setScrollDataIndex(n)})})}function eMe(e){c7(O9),e.registerComponentModel(Zje),e.registerComponentView(Qje),$je(e)}function tMe(e){c7(O9),c7(eMe)}function N9(e,t,n){var r=VH.createCanvas(),i=t.getWidth(),a=t.getHeight(),o=r.style;return o&&(o.position=`absolute`,o.left=`0`,o.top=`0`,o.width=i+`px`,o.height=a+`px`,r.setAttribute(`data-zr-dom-id`,e)),r.width=i*n,r.height=a*n,r}function P9(e){return!e.__cursors.get(0)}function F9(e){var t=e.__cursors.get(0);return{startIdx:t?t.startIdx:0,endIdx:t?t.endIdx:0}}var I9=function(e){bW(t,e);function t(t,n,r){var i=e.call(this)||this;i.motionBlur=!1,i.lastFrameAlpha=.7,i.dpr=1,i.virtual=!1,i.config={},i.zlevel=0,i.zlevel2=0,i.maxRepaintRectCount=5,i.__dirty=!0,i.__firstTimePaint=!0,i.__prevIdx={startIdx:0,endIdx:0};var a;r||=$K,typeof t==`string`?a=N9(t,n,r):TU(t)&&(a=t,t=a.id),i.id=t,i.dom=a;var o=a.style;return o&&(YU(a),a.onselectstart=function(){return!1},o.padding=`0`,o.margin=`0`,o.borderWidth=`0`),i.painter=n,i.dpr=r,i}return t.prototype.afterBrush=function(){this.__prevIdx=F9(this)},t.prototype.initContext=function(){this.ctx=this.dom.getContext(`2d`),this.ctx.dpr=this.dpr},t.prototype.setUnpainted=function(){this.__firstTimePaint=!0},t.prototype.createBackBuffer=function(){var e=this.dpr;this.domBack=N9(`back-`+this.id,this.painter,e),this.ctxBack=this.domBack.getContext(`2d`),e!==1&&this.ctxBack.scale(e,e)},t.prototype.createRepaintRects=function(e,t,n,r){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var i=[],a=this.maxRepaintRectCount,o=!1,s=new iG(0,0,0,0);function c(e){if(!(!e.isFinite()||e.isZero()))if(i.length===0){var t=new iG(0,0,0,0);t.copy(e),i.push(t)}else{for(var n=!1,r=1/0,c=0,l=0;l=a}}for(var l=F9(this),u=l.startIdx;u=0)&&(a=!0)}),!(!a&&!i.__dirty)){var o=n._opts.useDirtyRect&&!P9(i)?i.createRepaintRects(e,t,n._width,n._height):null,s=n._i.layerStack[0],c=!0;if(i.__dirty){c=!1,i.__dirty=!1;var l=i.zlevel===s.zl&&i.zlevel2===s.zl2?n._backgroundColor:null;i.clear(!1,l,o)}U9(i,function(t){var a=n._paintPerCursor(i,t,e,o,c);r&&=a})}},Y9),eW.wxa&&G9(this._i,function(e){e&&e.ctx&&e.ctx.draw&&e.ctx.draw()}),r},e.prototype._paintPerCursor=function(e,t,n,r,i){var a=e.ctx;if(r)if(!r.length)t.drawIdx=t.endIdx;else for(var o=this.dpr,s=0;s=t.endIdx},e.prototype._paintPerCursorInRect=function(e,t,n,r,i){for(var a={inHover:!1,allClipped:!1,prevEl:null,viewWidth:this._width,viewHeight:this._height,beforeBrushParam:{contentRetained:i}},o=e.ctx,s=P9(e),c=s&&VH.getTime(),l=t.drawIdx,u=t.notClearIdx,d=u>=0?Math.min(u,l):l;d15){d++;break}}}q8(o,a),t.drawIdx=Math.max(d,l)},e.prototype.getLayer=function(e,t){return this._ensureLayer(e,0,t)},e.prototype._ensureLayer=function(e,t,n){t||=0;var r=this._singleCanvas;r&&!this._needsManuallyCompositing&&(e=R9,t=0);var i=W9(this._i,e)[t];return i||(i=V9(`zr_`+e+`.`+t,this,e,t),this._layerConfig[e]&&iU(i,this._layerConfig[e],!0),(n||r&&e!==R9)&&(i.virtual=!0),this._insertLayer(i,e,t,!1),i.initContext()),i},e.prototype.insertLayer=function(e,t){this._insertLayer(t,e,0,!1)},e.prototype._insertLayer=function(e,t,n,r){var i=this._i,a=i.layers,o=i.layerStack,s=this._domRoot,c=null;if(!(a[t]&&a[t][n])&&rMe(e)){for(var l=o.length,u=0;u0&&(c=W9(i,o[u-1].zl)[o[u-1].zl2]),o.splice(u,0,{zl:t,zl2:n}),W9(i,t)[n]=e,!r&&!e.virtual)if(c){var d=c.dom;d.nextSibling?s.insertBefore(e.dom,d.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom);e.painter||=this}},e.prototype.eachLayer=function(e,t){return G9(this._i,function(n,r){e.call(t,n,r)})},e.prototype.eachBuiltinLayer=function(e,t){return G9(this._i,function(n,r){e.call(t,n,r)},K9)},e.prototype.eachOtherLayer=function(e,t){return G9(this._i,function(n,r){e.call(t,n,r)},q9)},e.prototype.getLayers=function(){var e={};return G9(this._i,function(t,n,r){e[t.id]=t}),e},e.prototype._updateLayerStatus=function(e,t){var n=this;if(n._singleCanvas)for(var r=1;r=0;a--){var o=i.get(r[a]);if(!o.used)t.__dirty=!0,i.removeKey(r[a]),r.splice(a,1);else{var s=o.endIdxNew;(P9(t)?s=0;r--){var i=t[r];if(i.zl===e){var a=n[e][i.zl2];if(a.__builtin__)continue;if(t.splice(r,1),n[e][i.zl2]=void 0,!a.virtual){var o=a.dom.parentNode;o&&o.removeChild(a.dom)}}}},e.prototype.resize=function(e,t){if(this._domRoot.style){var n=this._domRoot;n.style.display=`none`;var r=this._opts,i=this.root;e!=null&&(r.width=e),t!=null&&(r.height=t),e=D8(i,0,r),t=D8(i,1,r),n.style.display=``,(this._width!==e||t!==this._height)&&(n.style.width=e+`px`,n.style.height=t+`px`,G9(this._i,function(n){n.resize(e,t)}),this.refresh({paintAll:!0})),this._width=e,this._height=t}else{if(e==null||t==null)return;this._width=e,this._height=t,this._ensureLayer(R9).resize(e,t)}return this},e.prototype.clearLayer=function(e){$(this._i.layers[e],function(e){e&&!e.__builtin__&&e.clear()})},e.prototype.dispose=function(){this.root.innerHTML=``,this.root=this.storage=this._domRoot=this._i=null},e.prototype.getRenderedCanvas=function(e){if(e||={},this._singleCanvas&&!this._compositeManually)return this._i.layers[R9][0].dom;var t=new I9(`image`,this,e.pixelRatio||this.dpr);t.initContext(),t.clear(!1,e.backgroundColor||this._backgroundColor);var n=t.ctx;if(e.pixelRatio<=this.dpr){this.refresh();var r=t.dom.width,i=t.dom.height;G9(this._i,function(e){e.__builtin__?n.drawImage(e.dom,0,0,r,i):e.renderToCanvas&&(n.save(),e.renderToCanvas(n),n.restore())})}else{for(var a={inHover:!1,viewWidth:this._width,viewHeight:this._height,beforeBrushParam:{}},o=this.storage.getDisplayList(!0),s=0,c=o.length;s{a(),n.value&&(i=new ResizeObserver(()=>r?.resize()),i.observe(n.value))}),R(()=>[t.labels,t.values],a,{deep:!0}),_r(()=>{i?.disconnect(),r?.dispose(),r=null}),(e,t)=>(Ei(),Ai(`div`,{ref_key:`element`,ref:n,class:`trend-chart`,"aria-label":`近期操作趋势`},null,512))}}),uMe={install:`入库`,marketplace_install:`市场入库`,enable:`启用`,disable:`停用`,upgrade:`升级`,rollback:`回滚`,uninstall:`卸载`,menu_preview:`菜单预览`,menu_apply:`应用菜单`,config:`保存配置`};function X9(e){return uMe[String(e)]||String(e||`操作`)}function Z9(e){return{install:jg,marketplace_install:jg,enable:tg,disable:_v,upgrade:Av,rollback:av,uninstall:Vg,menu_preview:Oh,menu_apply:Oh,config:_v}[String(e)]||x_}var dMe={class:`page-view`},fMe={class:`stat-grid`,"aria-label":`插件统计`},pMe={class:`stat-card-top`},mMe={class:`overview-grid`},hMe={class:`table-action`},gMe={class:`secondary-text`},_Me={class:`guidance-grid`},vMe={class:`guidance-number`},yMe=z({__name:`Overview`,setup(e){let t=Hz(),n=I([]),r=I([]),i=I(``),a=[{colKey:`action`,title:`操作`,width:150},{colKey:`plugin_id`,title:`插件`,ellipsis:!0},{colKey:`result`,title:`结果`,width:90},{colKey:`time`,title:`时间`,width:170}],o=e=>HV(e)?`已完成`:String(e||`未知`),s=U(()=>{let e=n.value.filter(e=>[`healthy`,`enabled`].includes(e.state)).length,t=n.value.filter(e=>[`disabled`,`incompatible`].includes(e.state)||e.installation_status===`staged`).length,r=n.value.filter(e=>[`error`,`starting`,`upgrading`,`rollback_pending`].includes(e.state)).length;return[{label:`已登记插件`,value:n.value.length,caption:`全部已校验版本`,theme:`neutral`,icon:Oh},{label:`运行中`,value:e,caption:`健康检查通过`,theme:`success`,icon:tg},{label:`待启用`,value:t,caption:`已入库,等待启动`,theme:`warning`,icon:Dv},{label:`需要关注`,value:r,caption:`失败或迁移中`,theme:`danger`,icon:Sce}]}),c=[{title:`入库不等于启用`,body:`上传或市场下载只完成验签、哈希和兼容性校验。`},{title:`启用前先配置`,body:`服务地址和菜单地址在插件详情的配置页维护。`},{title:`高风险操作可追溯`,body:`升级、回滚和卸载均保留操作 ID 与审计结果。`}],l=U(()=>[`-6 天`,`-5 天`,`-4 天`,`-3 天`,`-2 天`,`昨天`,`今天`]),u=U(()=>{let e=Array(7).fill(0);return r.value.forEach(t=>{let n=new Date(t.time);if(!Number.isNaN(n.getTime())){let t=Math.floor((Date.now()-n.getTime())/864e5);t>=0&&t<7&&(e[6-t]+=1)}}),e});async function d(){try{let[e,t]=await Promise.all([jV(`/api/plugins`),jV(`/api/audit`)]);n.value=zV(e),r.value=zV(t).sort((e,t)=>new Date(String(t.time)).getTime()-new Date(String(e.time)).getTime()).slice(0,8)}catch(e){i.value=e instanceof Error?e.message:`概览数据加载失败`}}return mr(d),(e,n)=>{let d=br(`t-button`),f=br(`t-alert`),p=br(`t-card`),m=br(`t-link`),h=br(`t-tag`),g=br(`t-table`),_=br(`t-empty`);return Ei(),Ai(`div`,dMe,[V(MH,{eyebrow:`OVERVIEW`,title:`概览`,subtitle:`查看插件控制面的总体状态、运行健康和最近活动。`},{actions:L(()=>[V(d,{theme:`primary`,onClick:n[0]||=e=>Ht(t).push(`/plugins`)},{icon:L(()=>[V(Ht(Oh))]),default:L(()=>[n[2]||=zi(`管理插件`,-1)]),_:1})]),_:1}),i.value?(Ei(),ji(f,{key:0,theme:`warning`,message:i.value,class:`page-alert`},null,8,[`message`])):Bi(``,!0),B(`section`,fMe,[(Ei(!0),Ai(bi,null,Tr(s.value,e=>(Ei(),ji(p,{key:e.label,class:de([`stat-card`,`stat-${e.theme}`]),bordered:!0},{default:L(()=>[B(`div`,pMe,[B(`span`,null,ve(e.label),1),(Ei(),ji(Sr(e.icon),{size:`18px`}))]),B(`strong`,null,ve(e.value),1),B(`small`,null,ve(e.caption),1)]),_:2},1032,[`class`]))),128))]),B(`section`,mMe,[V(p,{class:`panel-card`,title:`近期操作`,bordered:!0},{actions:L(()=>[V(m,{theme:`primary`,onClick:n[1]||=e=>Ht(t).push(`/operations`)},{default:L(()=>[...n[3]||=[zi(`查看全部`,-1)]]),_:1})]),default:L(()=>[r.value.length?(Ei(),ji(g,{key:0,data:r.value,columns:a,"row-key":`id`,size:`small`,hover:!0},{action:L(({row:e})=>[B(`span`,hMe,[(Ei(),ji(Sr(Ht(Z9)(e.action)),{size:`15px`})),zi(ve(Ht(X9)(e.action)),1)])]),result:L(({row:e})=>[V(h,{theme:Ht(UV)(e.result),variant:`light`},{default:L(()=>[zi(ve(o(e.result)),1)]),_:2},1032,[`theme`])]),time:L(({row:e})=>[B(`span`,gMe,ve(Ht(BV)(e.time)),1)]),_:1},8,[`data`])):(Ei(),ji(_,{key:1,description:`还没有操作记录`}))]),_:1}),V(p,{class:`panel-card`,title:`操作趋势`,bordered:!0},{actions:L(()=>[V(h,{theme:`primary`,variant:`light`},{default:L(()=>[...n[4]||=[zi(`最近 7 天`,-1)]]),_:1})]),default:L(()=>[V(lMe,{labels:l.value,values:u.value},null,8,[`labels`,`values`])]),_:1})]),V(p,{class:`panel-card guidance-card`,title:`生命周期提示`,bordered:!0},{default:L(()=>[B(`div`,_Me,[(Ei(),Ai(bi,null,Tr(c,(e,t)=>B(`div`,{key:e.title,class:`guidance-item`},[B(`span`,vMe,ve(String(t+1).padStart(2,`0`)),1),B(`div`,null,[B(`strong`,null,ve(e.title),1),B(`p`,null,ve(e.body),1)])])),64))])]),_:1})])}}}),bMe={class:`page-view`},xMe={class:`page-toolbar`},SMe={class:`secondary-text`},CMe={class:`plugin-cell`},wMe={class:`plugin-avatar`},TMe={class:`secondary-text mono`},EMe={class:`mono`},DMe={class:`cell-note`},OMe={class:`secondary-text`},kMe={class:`table-actions`},AMe=z({__name:`Plugins`,setup(e){let t=Hz(),n=I([]),r=I(!1),i=I(``),a=I(``),o=I(null),s=[{colKey:`plugin`,title:`插件`,minWidth:230},{colKey:`version`,title:`版本`,width:110},{colKey:`state`,title:`状态`,width:150},{colKey:`compatibility`,title:`Core 兼容性`,width:145},{colKey:`updated`,title:`最近更新`,width:180},{colKey:`actions`,title:`操作`,width:250,fixed:`right`}],c=[`healthy`,`enabled`],l=e=>c.includes(e.state),u=e=>[`starting`,`draining`,`upgrading`,`rollback_pending`].includes(e.state),d=e=>c.includes(e)?`success`:[`error`,`incompatible`].includes(e)?`danger`:[`starting`,`draining`,`upgrading`,`rollback_pending`].includes(e)?`warning`:`default`;async function f(){r.value=!0,i.value=``;try{n.value=zV(await jV(`/api/plugins`)).sort((e,t)=>String(e.name||e.plugin_id).localeCompare(String(t.name||t.plugin_id)))}catch(e){i.value=e instanceof Error?e.message:`插件列表加载失败`}finally{r.value=!1}}async function p(e){if(!e)return null;for(let t=0;t<8;t+=1){let t=await jV(`/api/operations/${encodeURIComponent(e)}`).catch(()=>null);if(t&&t.state&&t.state!==`running`)return t;await new Promise(e=>window.setTimeout(e,150))}return null}async function m(e,t){a.value=t,i.value=``;try{let n=await p((await jV(`/api/plugins/${encodeURIComponent(t)}/${e}`,{method:`POST`,headers:{"Idempotency-Key":WV(e,t)}})).operation_id);eb.success(`${e===`enable`?`启用`:e===`disable`?`停用`:e}操作已完成${n?.state?`:${n.state}`:``}`),await f()}catch(e){i.value=e instanceof Error?e.message:`操作失败`}finally{a.value=``}}function h(e){return[{content:`配置`,value:`config`},{content:`版本与升级`,value:`revisions`},{content:`菜单接入`,value:`menu`},{content:`卸载插件`,value:`uninstall`,disabled:l(e)}]}function g(e,n){if((e===`config`||e===`revisions`||e===`menu`)&&t.push(`/plugins/${encodeURIComponent(n.plugin_id)}/${e}`),e===`uninstall`){let e=Pj.confirm({header:`确认卸载插件`,body:`卸载会移除插件文件,但不会删除 Core 数据。`,confirmBtn:`卸载`,cancelBtn:`取消`,onConfirm:()=>{e.hide(),m(`uninstall`,n.plugin_id)}})}}async function _(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){a.value=`upload`,i.value=``;try{let e=new FormData;e.append(`package`,n);let t=await jV(`/api/plugins/install`,{method:`POST`,headers:{"Idempotency-Key":WV(`install`)},body:e});eb.success(`插件已入库,待手动启用:${t.operation_id||t.state}`),await f()}catch(e){i.value=e instanceof Error?e.message:`上传失败`}finally{a.value=``}}}return mr(f),(e,c)=>{let p=br(`t-button`),v=br(`t-alert`),y=br(`t-tag`),b=br(`t-dropdown`),x=br(`t-table`),S=br(`t-card`),C=br(`t-empty`);return Ei(),Ai(`div`,bMe,[V(MH,{eyebrow:`INSTALLED PLUGINS`,title:`已安装插件`,subtitle:`查看插件状态、版本和生命周期。高风险操作进入插件详情页。`},{actions:L(()=>[B(`input`,{ref_key:`packageInput`,ref:o,class:`visually-hidden`,type:`file`,accept:`.zip,.s2plugin,application/zip`,onChange:_},null,544),V(p,{theme:`primary`,loading:a.value===`upload`,onClick:c[0]||=e=>o.value?.click()},{icon:L(()=>[V(Ht(Av))]),default:L(()=>[c[1]||=zi(`上传并入库`,-1)]),_:1},8,[`loading`]),V(p,{variant:`outline`,loading:r.value,onClick:f},{icon:L(()=>[V(Ht(ev))]),default:L(()=>[c[2]||=zi(`刷新`,-1)]),_:1},8,[`loading`])]),_:1}),i.value?(Ei(),ji(v,{key:0,theme:`error`,message:i.value,class:`page-alert`},null,8,[`message`])):Bi(``,!0),B(`div`,xMe,[B(`span`,SMe,`共 `+ve(n.value.length)+` 个插件`,1),c[3]||=B(`span`,{class:`toolbar-hint`},`下载包仅入库,不会自动启动`,-1)]),n.value.length?(Ei(),ji(S,{key:1,class:`table-card`,bordered:!0},{default:L(()=>[V(x,{data:n.value,columns:s,"row-key":`plugin_id`,loading:r.value,hover:!0,stripe:``},{plugin:L(({row:e})=>[B(`div`,CMe,[B(`div`,wMe,[V(Ht(Oh),{size:`19px`})]),B(`div`,null,[B(`strong`,null,ve(e.name||e.plugin_id),1),B(`span`,TMe,ve(e.plugin_id),1)])])]),version:L(({row:e})=>[B(`span`,EMe,`v`+ve(e.version||`-`),1)]),state:L(({row:e})=>[V(y,{theme:d(e.state),variant:`light`},{default:L(()=>[zi(ve(Ht(VV)(e.state)),1)]),_:2},1032,[`theme`]),B(`span`,DMe,ve(e.installation_status===`staged`?`待启用`:``),1)]),compatibility:L(({row:e})=>[V(y,{theme:e.compatibility?.compatible?`success`:`warning`,variant:`light`},{default:L(()=>[zi(ve(e.compatibility?.status||`unknown`),1)]),_:2},1032,[`theme`])]),updated:L(({row:e})=>[B(`span`,OMe,ve(Ht(BV)(e.updated_at)),1)]),actions:L(({row:e})=>[B(`div`,kMe,[V(p,{size:`medium`,variant:`outline`,onClick:n=>Ht(t).push(`/plugins/${encodeURIComponent(e.plugin_id)}/overview`)},{default:L(()=>[...c[4]||=[zi(`查看详情`,-1)]]),_:1},8,[`onClick`]),V(p,{size:`medium`,theme:l(e)?`default`:`primary`,variant:l(e)?`outline`:`base`,loading:a.value===e.plugin_id,disabled:u(e)||e.state===`incompatible`,onClick:t=>m(l(e)?`disable`:`enable`,e.plugin_id)},{default:L(()=>[zi(ve(l(e)?`停用`:`启用`),1)]),_:2},1032,[`theme`,`variant`,`loading`,`disabled`,`onClick`]),V(b,{options:h(e),trigger:`click`,onClick:t=>g(String(t?.value||``),e)},{default:L(()=>[V(p,{size:`medium`,variant:`text`,shape:`square`,"aria-label":`更多操作`},{icon:L(()=>[V(Ht(ele))]),_:1})]),_:1},8,[`options`,`onClick`])])]),_:1},8,[`data`,`loading`])]),_:1})):(Ei(),ji(S,{key:2,class:`empty-card`,bordered:!0},{default:L(()=>[V(C,{description:`还没有登记业务插件`})]),_:1}))])}}}),jMe={class:`page-view`},MMe={class:`detail-back`},NMe={key:1,class:`loading-panel`},PMe={key:0,class:`detail-content`},FMe={class:`detail-actions`},IMe={class:`detail-grid`},LMe={class:`description-grid`},RMe={class:`mono wrap-anywhere`},zMe={class:`mono`},BMe={class:`mono`},VMe={class:`description-grid`},HMe={class:`wrap-anywhere`},UMe={class:`mono wrap-anywhere`},WMe={key:1,class:`detail-content`},GMe={class:`section-toolbar`},KMe={class:`secondary-text mono wrap-anywhere`},qMe={class:`mono wrap-anywhere`},JMe={class:`secondary-text`},YMe={key:2,class:`detail-content narrow-content`},XMe={key:3,class:`detail-content narrow-content`},ZMe={class:`section-toolbar`},QMe={class:`toolbar-actions`},$Me={class:`description-grid`},eNe={class:`mono wrap-anywhere`},tNe={key:4,class:`detail-content`},nNe={class:`section-toolbar`},rNe={class:`secondary-text`},iNe={class:`preview-grid`},aNe=z({__name:`PluginDetail`,setup(e){let t=Uz(),n=Hz(),r=I(null),i=I([]),a=I(!1),o=I(``),s=I(``),c=[{value:`overview`,label:`运行概况`},{value:`revisions`,label:`版本与升级`},{value:`config`,label:`配置`},{value:`menu`,label:`菜单接入`},{value:`operations`,label:`操作历史`}],l=I(String(t.params.tab||`overview`)),u=I(null),d=Dt({service_url:``,public_url:``}),f={service_url:[{required:!0,message:`请输入服务地址`,type:`error`}]},p=I(!1),m=I([]),h=I([]),g=[{colKey:`version`,title:`版本`,minWidth:250},{colKey:`hash`,title:`SHA-256`,minWidth:300},{colKey:`verified`,title:`验证时间`,width:180},{colKey:`actions`,title:`操作`,width:160}],_=[{colKey:`action`,title:`操作`,width:180},{colKey:`result`,title:`结果`,width:100},{colKey:`request_id`,title:`请求 ID`,minWidth:250},{colKey:`time`,title:`时间`,width:180}],v=e=>[`healthy`,`enabled`].includes(e.state),y=e=>v({state:e})?`success`:[`error`,`incompatible`].includes(e)?`danger`:[`starting`,`draining`,`upgrading`,`rollback_pending`].includes(e)?`warning`:`default`,b=U(()=>r.value?.plugin_id===`qiu.subscription-admin`),x=U(()=>(r.value?.revisions||[]).filter(e=>!e.retired)),S=e=>HV(e)?`已完成`:String(e||`未知`);function C(e){l.value=String(e),n.replace(`/plugins/${encodeURIComponent(String(t.params.id))}/${String(e)}`)}async function w(){a.value=!0,o.value=``;try{let e=encodeURIComponent(String(t.params.id));r.value=await jV(`/api/plugins/${e}`);let n=await jV(`/api/audit`);if(i.value=(Array.isArray(n.items)?n.items:[]).filter(e=>e.plugin_id===r.value.plugin_id).sort((e,t)=>new Date(String(t.time)).getTime()-new Date(String(e.time)).getTime()),[`config`,`menu`].includes(l.value)){let t=await jV(`/api/plugins/${e}/config`);d.service_url=t.endpoint||``,d.public_url=typeof t.config?.public_url==`string`?t.config.public_url:``}}catch(e){o.value=e instanceof Error?e.message:`插件详情加载失败`}finally{a.value=!1}}async function T(e){for(let t=0;t<20&&e;t+=1){let t=await jV(`/api/operations/${encodeURIComponent(e)}`).catch(()=>null);if(t?.state&&t.state!==`running`)return t;await new Promise(e=>window.setTimeout(e,200))}return null}async function E(e,n=``){let r=encodeURIComponent(String(t.params.id)),i=e===`rollback`?`/api/plugins/${r}/rollback`:`/api/plugins/${r}/${e}`;if([`disable`,`uninstall`].includes(e)){let t=Pj.confirm({header:e===`uninstall`?`确认卸载插件`:`确认停用插件`,body:e===`uninstall`?`卸载会移除插件文件,但不会删除 Core 数据。`:`停用后 Core 管理员菜单会被移除。`,confirmBtn:e===`uninstall`?`卸载`:`停用`,cancelBtn:`取消`,onConfirm:()=>{t.hide(),D(i,e,n)}});return}await D(i,e,n)}async function D(e,t,n=``){s.value=t===`rollback`?n:t;try{let r=t===`rollback`&&n?JSON.stringify({revision:n}):void 0,i=await jV(e,{method:`POST`,headers:{"Idempotency-Key":WV(t,n)},body:r}),a=await T(i.operation_id),o=a?.state||i.state;if(o===`failed`)throw Error(a?.error||i.error||`${X9(t)}失败`);o&&!HV(o)?eb.warning(`${X9(t)}操作仍在处理中`):eb.success(`${X9(t)}已完成`),await w()}catch(e){o.value=e instanceof Error?e.message:`操作失败`}finally{s.value=``}}async function O(){if(!d.service_url.trim()){o.value=`请输入服务地址`;return}s.value=`config`;try{let e=b.value?{service_url:d.service_url}:d,n=await jV(`/api/plugins/${encodeURIComponent(String(t.params.id))}/config`,{method:`PUT`,headers:{"Idempotency-Key":WV(`config`,String(t.params.id))},body:JSON.stringify(e)}),r=await T(n.operation_id);if((r?.state||n.state)===`failed`)throw Error(r?.error||n.error||`配置保存失败`);eb.success(`配置已保存`),await w()}catch(e){o.value=e instanceof Error?e.message:`配置保存失败`}finally{s.value=``}}async function k(){s.value=`menu-preview`;try{let e=await jV(`/api/plugins/${encodeURIComponent(String(t.params.id))}/menu-preview`,{method:`POST`,headers:{"Idempotency-Key":WV(`menu-preview`,String(t.params.id))}});m.value=e.current||[],h.value=e.next||[],p.value=!0}catch(e){o.value=e instanceof Error?e.message:`菜单预览失败`}finally{s.value=``}}async function A(e){let n=e.target,r=n.files?.[0];if(n.value=``,r){s.value=`upgrade`;try{let e=new FormData;e.append(`package`,r);let n=await jV(`/api/plugins/${encodeURIComponent(String(t.params.id))}/upgrade`,{method:`POST`,headers:{"Idempotency-Key":WV(`upgrade`,String(t.params.id))},body:e}),i=await T(n.operation_id);if((i?.state||n.state)===`failed`)throw Error(i?.error||n.error||`升级失败`);eb.success(`升级已完成`),await w()}catch(e){o.value=e instanceof Error?e.message:`升级上传失败`}finally{s.value=``}}}return R(()=>t.params.tab,e=>{l.value=String(e||`overview`),w()}),mr(w),(e,T)=>{let D=br(`t-link`),j=br(`t-tag`),M=br(`t-alert`),ee=br(`t-tab-panel`),N=br(`t-tabs`),P=br(`t-loading`),F=br(`t-button`),te=br(`t-card`),ne=br(`t-table`),re=br(`t-empty`),ie=br(`t-input`),ae=br(`t-form-item`),oe=br(`t-form`),se=br(`t-dialog`);return Ei(),Ai(`div`,jMe,[B(`div`,MMe,[V(D,{theme:`primary`,onClick:T[0]||=e=>Ht(n).push(`/plugins`)},{"prefix-icon":L(()=>[V(Ht(fg))]),default:L(()=>[T[10]||=zi(`返回已安装插件`,-1)]),_:1})]),V(MH,{eyebrow:`PLUGIN DETAIL`,title:r.value?.name||String(Ht(t).params.id),subtitle:`${String(Ht(t).params.id)} · v${r.value?.version||`-`}`},{actions:L(()=>[r.value?(Ei(),ji(j,{key:0,theme:y(r.value.state),variant:`light`},{default:L(()=>[zi(ve(Ht(VV)(r.value.state)),1)]),_:1},8,[`theme`])):Bi(``,!0)]),_:1},8,[`title`,`subtitle`]),o.value?(Ei(),ji(M,{key:0,theme:`error`,message:o.value,class:`page-alert`},null,8,[`message`])):Bi(``,!0),V(N,{modelValue:l.value,"onUpdate:modelValue":T[1]||=e=>l.value=e,class:`detail-tabs`,onChange:C},{default:L(()=>[(Ei(),Ai(bi,null,Tr(c,e=>V(ee,{key:e.value,value:e.value,label:e.label},null,8,[`value`,`label`])),64))]),_:1},8,[`modelValue`]),a.value?(Ei(),Ai(`div`,NMe,[V(P,{text:`加载中`})])):r.value?(Ei(),Ai(bi,{key:2},[l.value===`overview`?(Ei(),Ai(`section`,PMe,[B(`div`,FMe,[v(r.value)?(Ei(),ji(F,{key:0,variant:`outline`,loading:s.value===`disable`,onClick:T[2]||=e=>E(`disable`)},{icon:L(()=>[V(Ht(ole))]),default:L(()=>[T[11]||=zi(`停用插件`,-1)]),_:1},8,[`loading`])):(Ei(),ji(F,{key:1,theme:`primary`,disabled:r.value.state===`incompatible`,loading:s.value===`enable`,onClick:T[3]||=e=>E(`enable`)},{icon:L(()=>[V(Ht(cle))]),default:L(()=>[T[12]||=zi(`启用插件`,-1)]),_:1},8,[`disabled`,`loading`])),V(F,{theme:`danger`,variant:`outline`,disabled:v(r.value),loading:s.value===`uninstall`,onClick:T[4]||=e=>E(`uninstall`)},{icon:L(()=>[V(Ht(Vg))]),default:L(()=>[T[13]||=zi(`卸载插件`,-1)]),_:1},8,[`disabled`,`loading`])]),B(`div`,IMe,[V(te,{title:`健康状态`,class:`panel-card`,bordered:!0},{actions:L(()=>[V(j,{theme:y(r.value.state),variant:`light`},{default:L(()=>[zi(ve(Ht(VV)(r.value.state)),1)]),_:1},8,[`theme`])]),default:L(()=>[B(`dl`,LMe,[B(`div`,null,[T[14]||=B(`dt`,null,`安装状态`,-1),B(`dd`,null,ve(r.value.installation_status||`-`),1)]),B(`div`,null,[T[15]||=B(`dt`,null,`服务地址`,-1),B(`dd`,RMe,ve(r.value.endpoint||`未配置`),1)]),B(`div`,null,[T[16]||=B(`dt`,null,`活动 revision`,-1),B(`dd`,zMe,ve(r.value.active_revision||`-`),1)]),B(`div`,null,[T[17]||=B(`dt`,null,`待切换 revision`,-1),B(`dd`,BMe,ve(r.value.pending_revision||`-`),1)])]),r.value.last_error?(Ei(),ji(M,{key:0,theme:`error`,message:r.value.last_error,class:`inline-alert`},null,8,[`message`])):(Ei(),ji(M,{key:1,theme:`success`,message:`最近一次检查未发现错误。`,class:`inline-alert`}))]),_:1}),V(te,{title:`插件信息`,class:`panel-card`,bordered:!0},{default:L(()=>[B(`dl`,VMe,[B(`div`,null,[T[18]||=B(`dt`,null,`能力`,-1),B(`dd`,HMe,ve((r.value.capabilities||[]).join(`, `)||`未声明`),1)]),B(`div`,null,[T[19]||=B(`dt`,null,`Core 兼容性`,-1),B(`dd`,null,ve(r.value.compatibility?.status||`unknown`),1)]),B(`div`,null,[T[20]||=B(`dt`,null,`更新时间`,-1),B(`dd`,null,ve(Ht(BV)(r.value.updated_at)),1)]),B(`div`,null,[T[21]||=B(`dt`,null,`菜单标识`,-1),B(`dd`,UMe,ve(r.value.menu?.id||`未声明`),1)])])]),_:1})])])):l.value===`revisions`?(Ei(),Ai(`section`,WMe,[B(`div`,GMe,[T[23]||=B(`div`,null,[B(`h2`,null,`版本与升级`),B(`p`,{class:`secondary-text`},`新版本先校验并进入候选 revision,健康检查通过后才会切换。`)],-1),B(`input`,{ref_key:`upgradeInput`,ref:u,class:`visually-hidden`,type:`file`,accept:`.zip,.s2plugin,application/zip`,onChange:A},null,544),V(F,{theme:`primary`,loading:s.value===`upgrade`,onClick:T[5]||=e=>u.value?.click()},{icon:L(()=>[V(Ht(Av))]),default:L(()=>[T[22]||=zi(`上传升级`,-1)]),_:1},8,[`loading`])]),V(te,{class:`table-card`,bordered:!0},{default:L(()=>[x.value.length?(Ei(),ji(ne,{key:0,data:x.value,columns:g,"row-key":`id`,hover:!0},{version:L(({row:e})=>[B(`div`,null,[B(`strong`,null,`v`+ve(e.version||`-`),1),e.id===r.value.active_revision?(Ei(),ji(j,{key:0,theme:`success`,variant:`light`,class:`tag-gap`},{default:L(()=>[...T[24]||=[zi(`当前活动`,-1)]]),_:1})):Bi(``,!0),B(`div`,KMe,ve(e.id),1)])]),hash:L(({row:e})=>[B(`span`,qMe,ve(e.archive_sha256||`-`),1)]),verified:L(({row:e})=>[B(`span`,JMe,ve(Ht(BV)(e.verified_at)),1)]),actions:L(({row:e})=>[e.id!==r.value.active_revision&&!e.retired?(Ei(),ji(F,{key:0,size:`medium`,variant:`outline`,loading:s.value===e.id,onClick:t=>E(`rollback`,e.id)},{icon:L(()=>[V(Ht(av))]),default:L(()=>[T[25]||=zi(`回滚到此版本`,-1)]),_:1},8,[`loading`,`onClick`])):Bi(``,!0)]),_:1},8,[`data`])):(Ei(),ji(re,{key:1,description:`暂无可用版本记录`}))]),_:1})])):l.value===`config`?(Ei(),Ai(`section`,YMe,[T[27]||=B(`div`,{class:`section-toolbar`},[B(`div`,null,[B(`h2`,null,`配置`),B(`p`,{class:`secondary-text`},`服务地址和菜单地址由控制面保存,密钥不会回显到浏览器。`)])],-1),V(te,{class:`panel-card`,bordered:!0},{default:L(()=>[V(oe,{data:d,rules:f,onSubmit:O},{default:L(()=>[V(ae,{label:`服务地址`,name:`service_url`},{default:L(()=>[V(ie,{modelValue:d.service_url,"onUpdate:modelValue":T[6]||=e=>d.service_url=e,placeholder:`http://127.0.0.1:18090`},null,8,[`modelValue`])]),_:1}),b.value?Bi(``,!0):(Ei(),ji(ae,{key:0,label:`菜单地址`,name:`public_url`},{default:L(()=>[V(ie,{modelValue:d.public_url,"onUpdate:modelValue":T[7]||=e=>d.public_url=e,placeholder:`https://CORE_ORIGIN/extensions/PLUGIN_ID/`},null,8,[`modelValue`])]),_:1})),b.value?(Ei(),ji(M,{key:1,theme:`info`,message:`订阅模块的菜单固定进入 Plugin Admin 统一 Shell;这里只需配置服务地址用于健康检查。`,class:`inline-alert`})):(Ei(),ji(M,{key:2,theme:`info`,message:`敏感配置只在服务端加密保存,页面不会回显原值。`,class:`inline-alert`})),V(F,{theme:`primary`,type:`submit`,loading:s.value===`config`},{icon:L(()=>[V(Ht(vle))]),default:L(()=>[T[26]||=zi(`保存配置`,-1)]),_:1},8,[`loading`])]),_:1},8,[`data`])]),_:1})])):l.value===`menu`?(Ei(),Ai(`section`,XMe,[B(`div`,ZMe,[T[30]||=B(`div`,null,[B(`h2`,null,`菜单接入`),B(`p`,{class:`secondary-text`},`先预览菜单变更,再应用到 Core 管理员导航。`)],-1),B(`div`,QMe,[V(F,{variant:`outline`,loading:s.value===`menu-preview`,onClick:k},{icon:L(()=>[V(Ht(Mle))]),default:L(()=>[T[28]||=zi(`预览菜单`,-1)]),_:1},8,[`loading`]),V(F,{theme:`primary`,loading:s.value===`menu-apply`,onClick:T[8]||=e=>E(`menu-apply`)},{icon:L(()=>[V(Ht(ig))]),default:L(()=>[T[29]||=zi(`应用菜单`,-1)]),_:1},8,[`loading`])])]),V(te,{class:`panel-card`,bordered:!0},{default:L(()=>[B(`dl`,$Me,[B(`div`,null,[T[31]||=B(`dt`,null,`菜单标识`,-1),B(`dd`,eNe,ve(r.value.menu?.id||`-`),1)]),B(`div`,null,[T[32]||=B(`dt`,null,`菜单名称`,-1),B(`dd`,null,ve(r.value.menu?.label||`-`),1)]),B(`div`,null,[T[33]||=B(`dt`,null,`可见性`,-1),B(`dd`,null,ve(r.value.menu?.visibility||`admin`),1)]),B(`div`,null,[T[34]||=B(`dt`,null,`排序`,-1),B(`dd`,null,ve(r.value.menu?.sort_order??`-`),1)])]),V(M,{theme:`info`,message:`应用菜单只会更新 Core 的 custom_menu_items,不会修改 Core 源码。`,class:`inline-alert`})]),_:1})])):(Ei(),Ai(`section`,tNe,[B(`div`,nNe,[T[36]||=B(`div`,null,[B(`h2`,null,`操作历史`),B(`p`,{class:`secondary-text`},`只显示当前插件的生命周期和菜单操作。`)],-1),V(F,{variant:`outline`,onClick:w},{icon:L(()=>[V(Ht(ev))]),default:L(()=>[T[35]||=zi(`刷新`,-1)]),_:1})]),V(te,{class:`table-card`,bordered:!0},{default:L(()=>[V(ne,{data:i.value,columns:_,"row-key":`operation_id`,hover:!0},{action:L(({row:e})=>[zi(ve(Ht(X9)(e.action)),1)]),result:L(({row:e})=>[V(j,{theme:Ht(UV)(e.result),variant:`light`},{default:L(()=>[zi(ve(S(e.result)),1)]),_:2},1032,[`theme`])]),time:L(({row:e})=>[B(`span`,rNe,ve(Ht(BV)(e.time)),1)]),_:1},8,[`data`]),i.value.length?Bi(``,!0):(Ei(),ji(re,{key:0,description:`还没有操作记录`}))]),_:1})]))],64)):(Ei(),ji(te,{key:3,class:`empty-card`,bordered:!0},{default:L(()=>[V(re,{description:`插件不存在或已卸载`})]),_:1})),V(se,{visible:p.value,"onUpdate:visible":T[9]||=e=>p.value=e,header:`菜单变更预览`,width:`min(880px, calc(100vw - 32px))`,footer:!1},{default:L(()=>[B(`div`,iNe,[B(`div`,null,[T[37]||=B(`h3`,null,`当前菜单`,-1),B(`pre`,null,ve(JSON.stringify(m.value,null,2)),1)]),B(`div`,null,[T[38]||=B(`h3`,null,`应用后菜单`,-1),B(`pre`,null,ve(JSON.stringify(h.value,null,2)),1)])])]),_:1},8,[`visible`])])}}}),oNe={class:`page-view`},sNe={key:1,class:`market-grid`},cNe={class:`market-heading`},lNe={class:`market-icon`},uNe={class:`market-title`},dNe={class:`secondary-text mono`},fNe={class:`market-description`},pNe={class:`description-grid market-meta`},mNe={class:`market-hash`},hNe=z({__name:`Marketplace`,setup(e){let t=Hz(),n=I([]),r=I(!1),i=I(``),a=I(``);function o(e){return e.installed?String(e.installed_version).replace(/^v/,``)===String(e.version).replace(/^v/,``)?{label:`已入库`,theme:`success`}:{label:`已有版本`,theme:`warning`}:{label:`可入库`,theme:`primary`}}function s(e){let t=Number(e);return!Number.isFinite(t)||t<=0?`-`:t>1024*1024?`${(t/1024/1024).toFixed(1)} MB`:`${Math.ceil(t/1024)} KB`}async function c(){r.value=!0,i.value=``;try{let[e,t]=await Promise.all([jV(`/api/marketplace`),jV(`/api/plugins`)]),r=new Map(zV(t).map(e=>[e.plugin_id,e]));n.value=zV(e).map(e=>({...e,installed:e.installed||r.has(e.plugin_id),installed_version:e.installed_version||r.get(e.plugin_id)?.version}))}catch(e){i.value=e instanceof Error?e.message:`市场加载失败`}finally{r.value=!1}}async function l(e){a.value=e.plugin_id;try{let t=await jV(`/api/marketplace/install`,{method:`POST`,headers:{"Idempotency-Key":WV(`marketplace-install`,`${e.plugin_id}-${e.version}`)},body:JSON.stringify({plugin_id:e.plugin_id,version:e.version})});eb.success(`插件已入库,待手动启用:${t.operation_id||t.state}`),await c()}catch(e){i.value=e instanceof Error?e.message:`插件入库失败`}finally{a.value=``}}return mr(c),(e,u)=>{let d=br(`t-button`),f=br(`t-alert`),p=br(`t-tag`),m=br(`t-card`),h=br(`t-empty`);return Ei(),Ai(`div`,oNe,[V(MH,{eyebrow:`MARKETPLACE`,title:`插件市场`,subtitle:`从受控目录查看可用版本,下载后先入库,再由管理员手动启用。`},{actions:L(()=>[V(d,{variant:`outline`,loading:r.value,onClick:c},{icon:L(()=>[V(Ht(ev))]),default:L(()=>[u[0]||=zi(`刷新市场`,-1)]),_:1},8,[`loading`])]),_:1}),V(f,{theme:`info`,class:`page-alert`,message:`归档地址只在控制面服务端访问,浏览器不会接触下载 URL。`}),i.value?(Ei(),ji(f,{key:0,theme:`error`,class:`page-alert`,message:i.value},null,8,[`message`])):Bi(``,!0),n.value.length?(Ei(),Ai(`section`,sNe,[(Ei(!0),Ai(bi,null,Tr(n.value,e=>(Ei(),ji(m,{key:`${e.plugin_id}-${e.version}`,class:`market-card`,bordered:!0},{header:L(()=>[B(`div`,cNe,[B(`div`,lNe,[V(Ht(jg),{size:`20px`})]),B(`div`,uNe,[B(`h2`,null,ve(e.name||e.plugin_id),1),B(`span`,dNe,ve(e.plugin_id)+` · v`+ve(e.version||`-`),1)]),V(p,{theme:o(e).theme,variant:`light`},{default:L(()=>[zi(ve(o(e).label),1)]),_:2},1032,[`theme`])])]),footer:L(()=>[e.installed?(Ei(),ji(d,{key:1,variant:`outline`,block:``,onClick:n=>Ht(t).push(`/plugins/${encodeURIComponent(e.plugin_id)}/revisions`)},{default:L(()=>[...u[7]||=[zi(`查看已安装版本`,-1)]]),_:1},8,[`onClick`])):(Ei(),ji(d,{key:0,theme:`primary`,block:``,loading:a.value===e.plugin_id,onClick:t=>l(e)},{icon:L(()=>[V(Ht(jg))]),default:L(()=>[u[6]||=zi(`下载并入库`,-1)]),_:1},8,[`loading`,`onClick`]))]),default:L(()=>[B(`p`,fNe,ve(e.description||`由受控插件目录提供的 Business Plugin`),1),B(`dl`,pNe,[B(`div`,null,[u[1]||=B(`dt`,null,`发布者`,-1),B(`dd`,null,ve(e.publisher||e.publisher_key_id||`-`),1)]),B(`div`,null,[u[2]||=B(`dt`,null,`兼容性`,-1),B(`dd`,null,ve(e.compatibility?.status||`unknown`),1)]),B(`div`,null,[u[3]||=B(`dt`,null,`发布时间`,-1),B(`dd`,null,ve(Ht(BV)(e.published_at)),1)]),B(`div`,null,[u[4]||=B(`dt`,null,`包大小`,-1),B(`dd`,null,ve(s(e.archive_size)),1)])]),B(`div`,mNe,[u[5]||=B(`span`,null,`SHA-256`,-1),B(`code`,null,ve(e.archive_sha256||`-`),1)])]),_:2},1024))),128))])):(Ei(),ji(m,{key:2,class:`empty-card`,bordered:!0},{default:L(()=>[V(h,{description:`暂无可用插件`})]),_:1}))])}}}),gNe={class:`page-view`},_Ne={class:`filter-grid`},vNe={class:`table-action`},yNe={class:`mono wrap-anywhere`},bNe={class:`secondary-text mono wrap-anywhere`},xNe={class:`secondary-text`},SNe={key:0,class:`description-grid drawer-description`},CNe={class:`mono wrap-anywhere`},wNe={class:`mono wrap-anywhere`},TNe={class:`mono wrap-anywhere`},ENe=z({__name:`Operations`,setup(e){Hz();let t=I([]),n=I([]),r=I(!1),i=I(``),a=I({plugin:``,action:``}),o=I(!1),s=I(null),c=[{colKey:`action`,title:`操作`,width:170},{colKey:`plugin_id`,title:`插件`,minWidth:220},{colKey:`result`,title:`结果`,width:100},{colKey:`request_id`,title:`请求 ID`,minWidth:220},{colKey:`time`,title:`时间`,width:180},{colKey:`operation_id`,title:``,width:100,fixed:`right`}],l=e=>HV(e)?`已完成`:String(e||`未知`),u=U(()=>[...new Set(n.value.map(e=>e.action).filter(Boolean))].sort()),d=U(()=>n.value.filter(e=>(!a.value.plugin||e.plugin_id===a.value.plugin)&&(!a.value.action||e.action===a.value.action)).sort((e,t)=>new Date(String(t.time)).getTime()-new Date(String(e.time)).getTime()));function f(){a.value={plugin:``,action:``}}async function p(){r.value=!0,i.value=``;try{let[e,r]=await Promise.all([jV(`/api/audit`),jV(`/api/plugins`)]);n.value=zV(e),t.value=zV(r)}catch(e){i.value=e instanceof Error?e.message:`操作记录加载失败`}finally{r.value=!1}}async function m(e){o.value=!0,s.value=await jV(`/api/operations/${encodeURIComponent(e)}`).catch(()=>null)}return mr(p),(e,n)=>{let h=br(`t-button`),g=br(`t-option`),_=br(`t-select`),v=br(`t-card`),y=br(`t-alert`),b=br(`t-tag`),x=br(`t-link`),S=br(`t-table`),C=br(`t-empty`),w=br(`t-drawer`);return Ei(),Ai(`div`,gNe,[V(MH,{eyebrow:`OPERATIONS`,title:`操作记录`,subtitle:`按插件和操作类型筛选控制面审计结果。`},{actions:L(()=>[V(h,{variant:`outline`,loading:r.value,onClick:p},{icon:L(()=>[V(Ht(ev))]),default:L(()=>[n[3]||=zi(`刷新`,-1)]),_:1},8,[`loading`])]),_:1}),V(v,{class:`filter-card`,bordered:!0},{default:L(()=>[B(`div`,_Ne,[V(_,{modelValue:a.value.plugin,"onUpdate:modelValue":n[0]||=e=>a.value.plugin=e,label:`插件`,placeholder:`全部插件`,clearable:``},{default:L(()=>[V(g,{value:``,label:`全部插件`}),n[4]||=zi(),(Ei(!0),Ai(bi,null,Tr(t.value,e=>(Ei(),ji(g,{key:e.plugin_id,value:e.plugin_id,label:e.name||e.plugin_id},null,8,[`value`,`label`]))),128))]),_:1},8,[`modelValue`]),V(_,{modelValue:a.value.action,"onUpdate:modelValue":n[1]||=e=>a.value.action=e,label:`操作类型`,placeholder:`全部操作`,clearable:``},{default:L(()=>[V(g,{value:``,label:`全部操作`}),(Ei(!0),Ai(bi,null,Tr(u.value,e=>(Ei(),ji(g,{key:e,value:e,label:Ht(X9)(e)},null,8,[`value`,`label`]))),128))]),_:1},8,[`modelValue`]),V(h,{variant:`text`,onClick:f},{default:L(()=>[...n[5]||=[zi(`清除筛选`,-1)]]),_:1})])]),_:1}),i.value?(Ei(),ji(y,{key:0,theme:`error`,message:i.value,class:`page-alert`},null,8,[`message`])):Bi(``,!0),V(v,{class:`table-card`,bordered:!0},{default:L(()=>[V(S,{data:d.value,columns:c,"row-key":`operation_id`,loading:r.value,hover:!0},{action:L(({row:e})=>[B(`span`,vNe,[(Ei(),ji(Sr(Ht(Z9)(e.action)),{size:`15px`})),zi(ve(Ht(X9)(e.action)),1)])]),plugin_id:L(({row:e})=>[B(`span`,yNe,ve(e.plugin_id||`-`),1)]),result:L(({row:e})=>[V(b,{theme:Ht(UV)(e.result),variant:`light`},{default:L(()=>[zi(ve(l(e.result)),1)]),_:2},1032,[`theme`])]),request_id:L(({row:e})=>[B(`span`,bNe,ve(e.request_id||`-`),1)]),time:L(({row:e})=>[B(`span`,xNe,ve(Ht(BV)(e.time)),1)]),operation_id:L(({row:e})=>[e.operation_id?(Ei(),ji(x,{key:0,theme:`primary`,onClick:t=>m(e.operation_id)},{default:L(()=>[...n[6]||=[zi(`查看详情`,-1)]]),_:1},8,[`onClick`])):Bi(``,!0)]),_:1},8,[`data`,`loading`]),d.value.length?Bi(``,!0):(Ei(),ji(C,{key:0,description:`还没有操作记录`}))]),_:1}),V(w,{visible:o.value,"onUpdate:visible":n[2]||=e=>o.value=e,header:`操作详情`,size:`min(520px, 100vw)`},{default:L(()=>[s.value?(Ei(),Ai(`dl`,SNe,[B(`div`,null,[n[7]||=B(`dt`,null,`操作 ID`,-1),B(`dd`,CNe,ve(s.value.id),1)]),B(`div`,null,[n[8]||=B(`dt`,null,`操作类型`,-1),B(`dd`,null,ve(Ht(X9)(s.value.kind)),1)]),B(`div`,null,[n[9]||=B(`dt`,null,`插件`,-1),B(`dd`,wNe,ve(s.value.plugin_id||`-`),1)]),B(`div`,null,[n[10]||=B(`dt`,null,`状态`,-1),B(`dd`,null,ve(s.value.state||`-`),1)]),B(`div`,null,[n[11]||=B(`dt`,null,`请求 ID`,-1),B(`dd`,TNe,ve(s.value.request_id||`-`),1)]),B(`div`,null,[n[12]||=B(`dt`,null,`更新时间`,-1),B(`dd`,null,ve(Ht(BV)(s.value.updated_at)),1)])])):Bi(``,!0),s.value?.error?(Ei(),ji(y,{key:1,theme:`error`,message:s.value.error},null,8,[`message`])):Bi(``,!0),s.value?.warning?(Ei(),ji(y,{key:2,theme:`warning`,message:s.value.warning},null,8,[`message`])):Bi(``,!0)]),_:1},8,[`visible`])])}}}),DNe={class:`page-view`},ONe={key:1,class:`detail-content`},kNe={class:`stat-grid module-stats`},ANe={class:`stat-card-top`},jNe={class:`stat-card-top`},MNe={class:`stat-card-top`},NNe={class:`stat-card-top`},PNe={class:`module-flow`},FNe={key:2,class:`detail-content`},INe={class:`section-toolbar`},LNe={class:`secondary-text`},RNe={class:`numeric`},zNe={key:3,class:`detail-content`},BNe={class:`section-toolbar`},VNe={class:`filter-grid subscription-filter`},HNe={class:`secondary-text`},UNe={class:`secondary-text`},WNe={class:`pagination-row`},GNe={key:4,class:`detail-content`},KNe={class:`section-toolbar`},qNe={class:`secondary-text`},JNe=z({__name:`Subscription`,setup(e){let t=Uz(),n=Hz(),r=I(String(t.params.tab||`overview`)),i=I(!1),a=I(``),o=I(null),s=I([]),c=I([]),l=I([]),u=Dt({current:1,pageSize:20,total:0}),d=Dt({user_id:``,group_id:``,status:``}),f=[{colKey:`name`,title:`套餐`,minWidth:260},{colKey:`price`,title:`价格`,width:150},{colKey:`status`,title:`状态`,width:120}],p=[{colKey:`user`,title:`用户`,minWidth:220},{colKey:`plan`,title:`套餐/分组`,minWidth:200},{colKey:`status`,title:`状态`,width:120},{colKey:`period`,title:`有效期`,minWidth:270}],m=[{colKey:`action`,title:`操作`,minWidth:240},{colKey:`result`,title:`结果`,width:110},{colKey:`request`,title:`请求 ID`,minWidth:220},{colKey:`time`,title:`时间`,width:180}],h=e=>HV(e)?`已完成`:String(e||`未知`),g=U(()=>u.total||c.value.length);function _(e){let t=Number(e);return Number.isFinite(t)?`¥${t.toFixed(2)}`:`-`}function v(e){return e===`active`||e===`enabled`?`success`:e===`revoked`?`danger`:`warning`}function y(e){return{active:`有效`,enabled:`有效`,expired:`已过期`,revoked:`已撤销`}[String(e)]||String(e||`未知`)}function b(e){r.value=String(e),n.replace(`/modules/subscription/${String(e)}`),O()}function x(e){let t=RV(e)||{},n=zV(e);return{rows:n,total:Number(t.total??t.pagination?.total??n.length)||n.length}}async function S(){o.value=await jV(`/api/subscription/status`).then(RV).catch(()=>null)}async function C(){i.value=!0,a.value=``;try{s.value=zV(await jV(`/api/subscription/plans`))}catch(e){a.value=e instanceof Error?e.message:`套餐加载失败`}finally{i.value=!1}}async function w(){i.value=!0,a.value=``;try{let e=new URLSearchParams({page:String(u.current),page_size:String(u.pageSize)});Object.entries(d).forEach(([t,n])=>{n&&e.set(t,n)});let t=x(await jV(`/api/subscription/subscriptions?${e.toString()}`));c.value=t.rows,u.total=t.total}catch(e){a.value=e instanceof Error?e.message:`订阅加载失败`}finally{i.value=!1}}async function T(){i.value=!0,a.value=``;try{l.value=zV(await jV(`/api/subscription/audit`))}catch(e){a.value=e instanceof Error?e.message:`审计加载失败`}finally{i.value=!1}}function E(){u.current=1,w()}function D(e){u.current=Number(e?.current||e?.page||e||1),u.pageSize=Number(e?.pageSize||u.pageSize),w()}function O(){r.value===`plans`?C():r.value===`subscriptions`?w():r.value===`audit`?T():S()}return R(()=>t.params.tab,async e=>{r.value=String(e||`overview`),await PV()&&O()}),mr(async()=>{if(!await PV()){await n.replace(`/overview`);return}await S(),O()}),(e,t)=>{let n=br(`t-tag`),x=br(`t-alert`),S=br(`t-tab-panel`),O=br(`t-tabs`),k=br(`t-card`),A=br(`t-button`),j=br(`t-table`),M=br(`t-empty`),ee=br(`t-input`),N=br(`t-option`),P=br(`t-select`),F=br(`t-pagination`);return Ei(),Ai(`div`,DNe,[V(MH,{eyebrow:`BUSINESS MODULE · SUBSCRIPTION`,title:`订阅管理`,subtitle:`订阅是插件控制面中的业务模块,沿用当前管理员会话,不需要再次登录。`},{actions:L(()=>[V(n,{theme:`success`,variant:`light`},{default:L(()=>[V(Ht(tg),{size:`14px`}),t[6]||=zi(` 共享控制面会话`,-1)]),_:1})]),_:1}),a.value?(Ei(),ji(x,{key:0,theme:`warning`,message:a.value,class:`page-alert`},null,8,[`message`])):Bi(``,!0),V(O,{modelValue:r.value,"onUpdate:modelValue":t[0]||=e=>r.value=e,class:`detail-tabs`,onChange:b},{default:L(()=>[V(S,{value:`overview`,label:`概览`}),V(S,{value:`plans`,label:`套餐`}),V(S,{value:`subscriptions`,label:`用户订阅`}),V(S,{value:`audit`,label:`操作记录`})]),_:1},8,[`modelValue`]),r.value===`overview`?(Ei(),Ai(`section`,ONe,[B(`div`,kNe,[V(k,{class:`stat-card stat-neutral`,bordered:!0},{default:L(()=>[B(`div`,ANe,[t[7]||=B(`span`,null,`Core 连接`,-1),V(Ht(Gce),{size:`18px`})]),B(`strong`,null,ve(o.value?.core_base_configured?`正常`:`未配置`),1),t[8]||=B(`small`,null,`服务端 allowlist`,-1)]),_:1}),V(k,{class:`stat-card stat-primary`,bordered:!0},{default:L(()=>[B(`div`,jNe,[t[9]||=B(`span`,null,`套餐数量`,-1),V(Ht(Gse),{size:`18px`})]),B(`strong`,null,ve(s.value.length),1),t[10]||=B(`small`,null,`来自 Core 套餐目录`,-1)]),_:1}),V(k,{class:`stat-card stat-success`,bordered:!0},{default:L(()=>[B(`div`,MNe,[t[11]||=B(`span`,null,`订阅记录`,-1),V(Ht(Yh),{size:`18px`})]),B(`strong`,null,ve(g.value),1),t[12]||=B(`small`,null,`当前筛选范围`,-1)]),_:1}),V(k,{class:`stat-card stat-warning`,bordered:!0},{default:L(()=>[B(`div`,NNe,[t[13]||=B(`span`,null,`会话模式`,-1),V(Ht(F_),{size:`18px`})]),t[14]||=B(`strong`,null,`共享`,-1),t[15]||=B(`small`,null,`不创建模块 Cookie`,-1)]),_:1})]),V(k,{class:`panel-card module-note`,title:`模块边界`,bordered:!0},{default:L(()=>[V(x,{theme:`info`,message:`浏览器只请求 Plugin Admin 的同源 BFF。Core access token、refresh token 和服务密钥始终保存在服务端会话。`}),B(`div`,PNe,[t[16]||=B(`span`,null,`统一登录`,-1),V(Ht(yg)),t[17]||=B(`span`,null,`订阅模块`,-1),V(Ht(yg)),t[18]||=B(`span`,null,`Core 只读接口`,-1)])]),_:1})])):r.value===`plans`?(Ei(),Ai(`section`,FNe,[B(`div`,INe,[t[20]||=B(`div`,null,[B(`h2`,null,`套餐目录`),B(`p`,{class:`secondary-text`},`套餐数据由 Core 返回,订阅模块只负责展示和查询。`)],-1),V(A,{variant:`outline`,loading:i.value,onClick:C},{icon:L(()=>[V(Ht(ev))]),default:L(()=>[t[19]||=zi(`刷新`,-1)]),_:1},8,[`loading`])]),V(k,{class:`table-card`,bordered:!0},{default:L(()=>[V(j,{data:s.value,columns:f,"row-key":`id`,loading:i.value,hover:!0},{name:L(({row:e})=>[B(`div`,null,[B(`strong`,null,ve(e.name||e.title||`套餐 ${e.id||`-`}`),1),B(`span`,LNe,ve(e.description||`Core 套餐`),1)])]),price:L(({row:e})=>[B(`span`,RNe,ve(_(e.price??e.amount)),1)]),status:L(({row:e})=>[V(n,{theme:e.enabled===!1?`default`:`success`,variant:`light`},{default:L(()=>[zi(ve(e.enabled===!1?`已停用`:`可用`),1)]),_:2},1032,[`theme`])]),_:1},8,[`data`,`loading`]),s.value.length?Bi(``,!0):(Ei(),ji(M,{key:0,description:`暂无套餐数据`}))]),_:1})])):r.value===`subscriptions`?(Ei(),Ai(`section`,zNe,[B(`div`,BNe,[t[22]||=B(`div`,null,[B(`h2`,null,`用户订阅`),B(`p`,{class:`secondary-text`},`服务端分页和筛选参数沿用订阅模块 API。`)],-1),V(A,{variant:`outline`,loading:i.value,onClick:w},{icon:L(()=>[V(Ht(ev))]),default:L(()=>[t[21]||=zi(`刷新`,-1)]),_:1},8,[`loading`])]),V(k,{class:`filter-card`,bordered:!0},{default:L(()=>[B(`div`,VNe,[V(ee,{modelValue:d.user_id,"onUpdate:modelValue":t[1]||=e=>d.user_id=e,label:`用户 ID`,placeholder:`输入用户 ID`,clearable:``},null,8,[`modelValue`]),V(ee,{modelValue:d.group_id,"onUpdate:modelValue":t[2]||=e=>d.group_id=e,label:`分组 ID`,placeholder:`输入分组 ID`,clearable:``},null,8,[`modelValue`]),V(P,{modelValue:d.status,"onUpdate:modelValue":t[3]||=e=>d.status=e,label:`状态`,placeholder:`全部状态`,clearable:``},{default:L(()=>[V(N,{value:`active`,label:`有效`}),V(N,{value:`expired`,label:`已过期`}),V(N,{value:`revoked`,label:`已撤销`})]),_:1},8,[`modelValue`]),V(A,{theme:`primary`,onClick:E},{icon:L(()=>[V(Ht(mv))]),default:L(()=>[t[23]||=zi(`查询`,-1)]),_:1})])]),_:1}),V(k,{class:`table-card`,bordered:!0},{default:L(()=>[V(j,{data:c.value,columns:p,"row-key":`id`,loading:i.value,hover:!0},{user:L(({row:e})=>[B(`div`,null,[B(`strong`,null,ve(e.user?.username||e.user?.email||e.user_id||`-`),1),B(`span`,HNe,`用户 ID `+ve(e.user_id||`-`),1)])]),plan:L(({row:e})=>[zi(ve(e.plan?.name||e.plan_name||e.group?.name||e.group_id||`-`),1)]),status:L(({row:e})=>[V(n,{theme:v(e.status),variant:`light`},{default:L(()=>[zi(ve(y(e.status)),1)]),_:2},1032,[`theme`])]),period:L(({row:e})=>[B(`span`,UNe,ve(Ht(BV)(e.start_at||e.started_at))+` 至 `+ve(Ht(BV)(e.expire_at||e.expires_at)),1)]),_:1},8,[`data`,`loading`]),c.value.length?Bi(``,!0):(Ei(),ji(M,{key:0,description:`暂无订阅记录`})),B(`div`,WNe,[V(F,{modelValue:u.current,"onUpdate:modelValue":t[4]||=e=>u.current=e,"page-size":u.pageSize,"onUpdate:pageSize":t[5]||=e=>u.pageSize=e,total:u.total,"show-jumper":!0,onChange:D},null,8,[`modelValue`,`page-size`,`total`])])]),_:1})])):(Ei(),Ai(`section`,GNe,[B(`div`,KNe,[t[25]||=B(`div`,null,[B(`h2`,null,`模块操作记录`),B(`p`,{class:`secondary-text`},`只记录通过统一控制面发起的订阅查询。`)],-1),V(A,{variant:`outline`,loading:i.value,onClick:T},{icon:L(()=>[V(Ht(ev))]),default:L(()=>[t[24]||=zi(`刷新`,-1)]),_:1},8,[`loading`])]),V(k,{class:`table-card`,bordered:!0},{default:L(()=>[V(j,{data:l.value,columns:m,"row-key":`request`},{action:L(({row:e})=>[zi(ve(e.action||`-`),1)]),result:L(({row:e})=>[V(n,{theme:Ht(UV)(e.result),variant:`light`},{default:L(()=>[zi(ve(h(e.result)),1)]),_:2},1032,[`theme`])]),time:L(({row:e})=>[B(`span`,qNe,ve(Ht(BV)(e.time)),1)]),_:1},8,[`data`]),l.value.length?Bi(``,!0):(Ei(),ji(M,{key:0,description:`还没有模块操作记录`}))]),_:1})]))])}}}),Q9=EV({history:JB(),routes:[{path:`/login`,component:DH,meta:{public:!0}},{path:`/`,component:QV,children:[{path:``,redirect:`/overview`},{path:`overview`,component:yMe,meta:{title:`概览`}},{path:`plugins`,component:AMe,meta:{title:`已安装插件`}},{path:`plugins/:id/:tab?`,component:aNe,meta:{title:`插件详情`}},{path:`marketplace`,component:hNe,meta:{title:`插件市场`}},{path:`operations`,component:ENe,meta:{title:`操作记录`}},{path:`modules/subscription/:tab?`,component:JNe,meta:{title:`订阅管理`}}]},{path:`/:pathMatch(.*)*`,redirect:`/overview`}]});Q9.beforeEach(async e=>DV.ready?!DV.user&&!e.meta.public?`/login`:DV.user&&e.path===`/login`||DV.user&&e.path.startsWith(`/modules/subscription`)&&!await PV()?`/overview`:!0:!0);var YNe={key:0,class:`boot-screen`},$9=Mte(z({__name:`App`,setup(e){return mr(async()=>{await MV();let e=Q9.currentRoute.value;!DV.user&&e.path!==`/login`?await Q9.replace(`/login`):DV.user&&e.path.startsWith(`/modules/subscription`)&&(await PV(!0)||await Q9.replace(`/overview`))}),(e,t)=>{let n=br(`t-loading`),r=br(`router-view`),i=br(`t-config-provider`);return Ei(),ji(i,null,{default:L(()=>[Ht(DV).ready?Ht(DV).user?(Ei(),ji(r,{key:1})):(Ei(),ji(DH,{key:2})):(Ei(),Ai(`div`,YNe,[V(n,{size:`32px`,text:`正在连接控制面`})]))]),_:1})}}}));$9.use(Tz),$9.use(Wte()),$9.use(Q9),$9.mount(`#app`); \ No newline at end of file diff --git a/plugins/plugin-admin/ui/index.html b/plugins/plugin-admin/ui/index.html index f2f9b13..704f519 100644 --- a/plugins/plugin-admin/ui/index.html +++ b/plugins/plugin-admin/ui/index.html @@ -1,89 +1,14 @@ - - - - 插件管理 - - - -
-
-
-

SUB2API EXTENSIONS

-

插件管理

-

独立业务插件控制面

-
-
- - -
-
- -
-

管理员登录

-

使用 Sub2API Core 管理员账号登录。普通账号没有访问权限。

-
- - - -
- - -
- - -
- -
-

插件配置

-

- - -

密钥只在服务端加密保存,页面不会回显原值。

-
- -
-
- - - + + + + + 插件管理控制面 + + + + +
+ diff --git a/plugins/plugin-admin/ui/styles.css b/plugins/plugin-admin/ui/styles.css index 3fdc0f4..007c71e 100644 --- a/plugins/plugin-admin/ui/styles.css +++ b/plugins/plugin-admin/ui/styles.css @@ -1,40 +1,2 @@ -:root { color-scheme: light; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #17202a; background: #f4f6f8; } -* { box-sizing: border-box; } -[hidden] { display: none !important; } -body { margin: 0; min-width: 320px; } -.shell { width: min(1120px, calc(100% - 32px)); margin: 0 auto; padding: 32px 0 56px; } -.topbar, .toolbar, .section-heading, .plugin-title, .card-actions, .top-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; } -.topbar { padding-bottom: 24px; border-bottom: 1px solid #d9dee5; } -.eyebrow { color: #5a6877; font-size: 11px; letter-spacing: .12em; margin: 0 0 6px; } -h1, h2, h3, p { margin-top: 0; } h1 { font-size: 28px; margin-bottom: 4px; } h2 { font-size: 18px; margin-bottom: 8px; } h3 { margin-bottom: 4px; font-size: 17px; } -.muted { color: #687585; font-size: 13px; } .operator { color: #475569; font-size: 13px; } -.panel { background: #fff; border: 1px solid #d9dee5; border-radius: 6px; box-shadow: 0 2px 8px rgb(15 23 42 / 4%); } -.auth-panel { max-width: 480px; margin: 48px auto 0; padding: 24px; } -.form-grid { display: grid; gap: 14px; margin-top: 20px; } label { display: grid; gap: 6px; color: #334155; font-size: 13px; } -input { width: 100%; height: 36px; padding: 0 10px; border: 1px solid #c7d0da; border-radius: 4px; background: #fff; color: inherit; font: inherit; } input:focus { outline: 2px solid #a7c7ff; outline-offset: 1px; } -.button, .file-button { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 14px; border: 1px solid #2563eb; border-radius: 4px; background: #2563eb; color: #fff; cursor: pointer; font: inherit; font-size: 13px; white-space: nowrap; } -.button:hover { background: #1d4ed8; } .button:disabled { opacity: .45; cursor: not-allowed; } .button-secondary { background: #fff; color: #1e40af; border-color: #b9c8dc; } .button-secondary:hover, .button-quiet:hover { background: #f3f6fa; } .button-quiet { background: transparent; color: #334155; border-color: transparent; } .button-danger { background: #fff; color: #b42318; border-color: #e1aaa4; } -.file-button input { display: none; } -#app-panel { margin-top: 32px; } .toolbar { margin-bottom: 18px; } .toolbar-actions { display: flex; gap: 8px; flex-wrap: wrap; } -.notice { min-height: 20px; margin: 8px 0 14px; font-size: 13px; color: #17603a; } .error { color: #b42318; } -.marketplace-section { margin: 8px 0 24px; padding: 18px 0 22px; border-bottom: 1px solid #d9dee5; } -.marketplace-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; } -.market-card { min-width: 0; padding: 16px; background: #fff; border: 1px solid #d9dee5; border-radius: 6px; } -.market-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } -.market-title h3 { overflow-wrap: anywhere; } -.market-description { min-height: 36px; margin: 12px 0; color: #475569; font-size: 13px; line-height: 1.5; } -.market-meta { display: grid; gap: 8px; margin: 0 0 14px; } -.market-meta div { min-width: 0; } -.market-meta dd { overflow-wrap: anywhere; } -.market-status { display: inline-flex; flex: 0 0 auto; padding: 4px 8px; border-radius: 999px; color: #146c43; background: #d9f6e5; font-size: 12px; white-space: nowrap; } -.market-status-available { color: #1e40af; background: #e5edff; } -.market-actions { display: flex; justify-content: flex-end; } -.market-actions .button { width: 100%; } -.plugin-list { display: grid; gap: 12px; } -.plugin-card { background: #fff; border: 1px solid #d9dee5; border-radius: 6px; padding: 18px; } .plugin-title { align-items: flex-start; } .state-stack { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; } .pending-label { color: #5a6877; font-size: 11px; white-space: nowrap; } .mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; } -.badge { display: inline-flex; padding: 4px 8px; border-radius: 999px; color: #334155; background: #e8edf2; font-size: 12px; } .badge-healthy { background: #d9f6e5; color: #146c43; } .badge-error, .badge-incompatible { background: #fde1df; color: #9b1c16; } .badge-starting, .badge-draining { background: #fff0c2; color: #7a4d00; } -.meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 18px 0 12px; } .meta div { min-width: 0; } dt { color: #687585; font-size: 12px; margin-bottom: 4px; } dd { margin: 0; overflow-wrap: anywhere; font-size: 13px; } .plugin-error { min-height: 18px; margin-bottom: 12px; font-size: 12px; color: #b42318; } -.card-actions { justify-content: flex-start; flex-wrap: wrap; } .empty { padding: 32px; text-align: center; color: #687585; border: 1px dashed #c7d0da; border-radius: 6px; background: #fff; } -.audit-panel { margin-top: 24px; padding: 18px; } .audit-list { display: grid; gap: 1px; } .audit-row { display: grid; grid-template-columns: 1.2fr 1.3fr .8fr 1.7fr; gap: 10px; padding: 9px 0; border-top: 1px solid #edf0f3; font-size: 12px; overflow-wrap: anywhere; } -.config-dialog { width: min(460px, calc(100% - 24px)); padding: 0; border: 0; border-radius: 6px; box-shadow: 0 18px 60px rgb(15 23 42 / 24%); } .config-dialog::backdrop { background: rgb(15 23 42 / 42%); } .config-form { display: grid; gap: 14px; padding: 22px; } .config-form .section-heading { margin-bottom: 4px; } .dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; } -@media (max-width: 640px) { .shell { width: min(100% - 20px, 560px); padding-top: 20px; } .topbar, .toolbar, .marketplace-section > .section-heading { align-items: flex-start; flex-direction: column; } .top-actions { width: 100%; justify-content: space-between; } .meta { grid-template-columns: 1fr; gap: 9px; } .card-actions .button, .toolbar-actions .button, .file-button { flex: 1 1 130px; } .audit-row { grid-template-columns: 1fr 1fr; } .marketplace-section .button { width: 100%; } } +@keyframes t-fade-in{0%{opacity:0}to{opacity:1}}@keyframes t-fade-out{0%{opacity:1}to{opacity:0}}@keyframes t-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes t-zoom-out{0%{transform:scale(.2)}to{transform:scale(1)}}.t-loading{font:var(--td-font-body-medium);color:var(--td-brand-color);box-sizing:border-box;font-size:var(--td-comp-size-l);margin:0;padding:0;list-style:none;position:relative}.t-loading--lock{overflow:hidden}.t-loading.t-size-s{font-size:var(--td-comp-size-xxxs)}.t-loading.t-size-l{font-size:var(--td-comp-size-xxxl)}.t-loading__parent--relative{position:relative!important}.t-loading__fullscreen{z-index:3500;width:100%;height:100%;position:fixed;top:0;left:0}.t-loading--center{vertical-align:middle;justify-content:center;align-items:center;display:inline-flex}.t-loading__content{position:absolute;top:20%;left:48%}.t-loading--inherit-color{color:inherit}.t-loading__parent{position:relative}.t-loading__overlay{background-color:var(--td-mask-disabled)}.t-loading--full{z-index:3500;width:100%;height:100%;position:absolute;top:0;left:0}.t-loading--hidden{visibility:hidden}.t-loading--visible{visibility:visible}.t-loading__text{vertical-align:middle;width:auto;font:var(--td-font-body-medium);margin-left:var(--td-comp-margin-xs);display:inline-block}.t-loading__gradient{vertical-align:middle;justify-content:center;align-items:center;display:inline-flex}.t-loading__gradient-conic{border-radius:var(--td-radius-circle);background:conic-gradient(from 90deg,#fff 0deg,currentColor 360deg);width:100%;height:100%;-webkit-mask:radial-gradient(#0000 calc(50% - .5px),#fff 50%);mask:radial-gradient(#0000 calc(50% - .5px),#fff 50%)}.t-button{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;z-index:0;font-size:var(--td-font-body-medium);cursor:pointer;vertical-align:middle;white-space:nowrap;border-radius:var(--td-radius-default);touch-action:manipulation;background-color:#0000;border:1px solid #0000;outline:none;justify-content:center;align-items:center;margin:0;padding:0;text-decoration:none;list-style:none;transition:all .2s linear;display:inline-flex;position:relative;overflow:hidden}.t-button .t-button__text,.t-button .t-icon{z-index:1;display:inline-flex;position:relative}.t-button .t-icon,.t-button .t-loading{font-size:var(--td-font-size-body-large)}.t-button .t-icon+.t-button__text:not(:empty),.t-button .t-loading+.t-button__text:not(:empty){margin-left:8px}.t-button .t-button__suffix:not(:empty){margin-left:8px;display:inline-flex}.t-button--variant-base{color:var(--td-text-color-primary);height:var(--td-comp-size-m);font:var(--td-font-body-medium);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px);background-color:var(--td-bg-color-component);border-color:var(--td-bg-color-component)}.t-button--variant-base .t-icon,.t-button--variant-base .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-base:hover,.t-button--variant-base:focus-visible{background-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-loading,.t-button--variant-base.t-is-disabled{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:hover,.t-button--variant-base:focus-visible{border-color:var(--td-bg-color-component-hover)}.t-button--variant-base.t-is-loading,.t-button--variant-base.t-is-disabled{border-color:var(--td-bg-color-component-disabled)}.t-button--variant-base:hover,.t-button--variant-base:focus-visible{color:var(--td-text-color-primary)}.t-button--variant-base.t-is-loading,.t-button--variant-base.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-base.t-button--theme-primary{color:var(--td-text-color-anti);background-color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-button--variant-base.t-button--theme-primary:hover,.t-button--variant-base.t-button--theme-primary:focus-visible{background-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-loading,.t-button--variant-base.t-button--theme-primary.t-is-disabled{background-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-primary:hover,.t-button--variant-base.t-button--theme-primary:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--theme-primary.t-is-loading,.t-button--variant-base.t-button--theme-primary.t-is-disabled{border-color:var(--td-brand-color-disabled)}.t-button--variant-base.t-button--theme-success{color:var(--td-text-color-anti);background-color:var(--td-success-color);border-color:var(--td-success-color)}.t-button--variant-base.t-button--theme-success:hover,.t-button--variant-base.t-button--theme-success:focus-visible{background-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-loading,.t-button--variant-base.t-button--theme-success.t-is-disabled{background-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-success:hover,.t-button--variant-base.t-button--theme-success:focus-visible{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--theme-success.t-is-loading,.t-button--variant-base.t-button--theme-success.t-is-disabled{border-color:var(--td-success-color-disabled)}.t-button--variant-base.t-button--theme-warning{color:var(--td-text-color-anti);background-color:var(--td-warning-color);border-color:var(--td-warning-color)}.t-button--variant-base.t-button--theme-warning:hover,.t-button--variant-base.t-button--theme-warning:focus-visible{background-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-loading,.t-button--variant-base.t-button--theme-warning.t-is-disabled{background-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-warning:hover,.t-button--variant-base.t-button--theme-warning:focus-visible{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--theme-warning.t-is-loading,.t-button--variant-base.t-button--theme-warning.t-is-disabled{border-color:var(--td-warning-color-disabled)}.t-button--variant-base.t-button--theme-danger{color:var(--td-text-color-anti);background-color:var(--td-error-color);border-color:var(--td-error-color)}.t-button--variant-base.t-button--theme-danger:hover,.t-button--variant-base.t-button--theme-danger:focus-visible{background-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-loading,.t-button--variant-base.t-button--theme-danger.t-is-disabled{background-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--theme-danger:hover,.t-button--variant-base.t-button--theme-danger:focus-visible{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--theme-danger.t-is-loading,.t-button--variant-base.t-button--theme-danger.t-is-disabled{border-color:var(--td-error-color-disabled)}.t-button--variant-base.t-button--ghost{color:var(--td-text-color-anti);border-color:var(--td-text-color-anti);background-color:#0000}.t-button--variant-base.t-button--ghost:hover,.t-button--variant-base.t-button--ghost:focus-visible,.t-button--variant-base.t-button--ghost:active,.t-button--variant-base.t-button--ghost.t-is-loading,.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:#0000}.t-button--variant-base.t-button--ghost:hover,.t-button--variant-base.t-button--ghost:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-base.t-button--ghost:hover,.t-button--variant-base.t-button--ghost:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-base.t-button--ghost.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-base.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover,.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-base.t-button--ghost.t-button--theme-primary:hover,.t-button--variant-base.t-button--ghost.t-button--theme-primary:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-base.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-base.t-button--ghost.t-button--theme-success{color:var(--td-success-color);border-color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success:hover,.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible{color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-base.t-button--ghost.t-button--theme-success:hover,.t-button--variant-base.t-button--ghost.t-button--theme-success:focus-visible{border-color:var(--td-success-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-base.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-base.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color);border-color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover,.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible{color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-base.t-button--ghost.t-button--theme-warning:hover,.t-button--variant-base.t-button--ghost.t-button--theme-warning:focus-visible{border-color:var(--td-warning-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-base.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-base.t-button--ghost.t-button--theme-danger{color:var(--td-error-color);border-color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover,.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible{color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-base.t-button--ghost.t-button--theme-danger:hover,.t-button--variant-base.t-button--ghost.t-button--theme-danger:focus-visible{border-color:var(--td-error-color-hover)}.t-button--variant-base.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-base.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-base.t-is-loading:not(.t-button--variant-base.t-button--ghost).t-button--theme-default{color:var(--td-text-color-primary)}.t-button--variant-outline{height:var(--td-comp-size-m);font:var(--td-font-body-medium);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px);color:var(--td-text-color-primary);background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color)}.t-button--variant-outline .t-icon,.t-button--variant-outline .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-outline:hover,.t-button--variant-outline:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-loading,.t-button--variant-outline.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-outline:hover,.t-button--variant-outline:focus-visible{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-outline.t-is-loading,.t-button--variant-outline.t-is-disabled{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-outline:hover,.t-button--variant-outline:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-is-loading,.t-button--variant-outline.t-is-disabled{border-color:var(--td-border-level-2-color)}.t-button--variant-outline.t-button--theme-primary{color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--theme-primary:hover,.t-button--variant-outline.t-button--theme-primary:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-loading,.t-button--variant-outline.t-button--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-primary:hover,.t-button--variant-outline.t-button--theme-primary:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--theme-primary.t-is-loading,.t-button--variant-outline.t-button--theme-primary.t-is-disabled{border-color:var(--td-brand-color-disabled)}.t-button--variant-outline.t-button--theme-success{color:var(--td-success-color);border-color:var(--td-success-color)}.t-button--variant-outline.t-button--theme-success:hover,.t-button--variant-outline.t-button--theme-success:focus-visible{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-loading,.t-button--variant-outline.t-button--theme-success.t-is-disabled{color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-success:hover,.t-button--variant-outline.t-button--theme-success:focus-visible{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--theme-success.t-is-loading,.t-button--variant-outline.t-button--theme-success.t-is-disabled{border-color:var(--td-success-color-disabled)}.t-button--variant-outline.t-button--theme-warning{color:var(--td-warning-color);border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--theme-warning:hover,.t-button--variant-outline.t-button--theme-warning:focus-visible{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-loading,.t-button--variant-outline.t-button--theme-warning.t-is-disabled{color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-warning:hover,.t-button--variant-outline.t-button--theme-warning:focus-visible{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--theme-warning.t-is-loading,.t-button--variant-outline.t-button--theme-warning.t-is-disabled{border-color:var(--td-warning-color-disabled)}.t-button--variant-outline.t-button--theme-danger{color:var(--td-error-color);border-color:var(--td-error-color)}.t-button--variant-outline.t-button--theme-danger:hover,.t-button--variant-outline.t-button--theme-danger:focus-visible{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-loading,.t-button--variant-outline.t-button--theme-danger.t-is-disabled{color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--theme-danger:hover,.t-button--variant-outline.t-button--theme-danger:focus-visible{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--theme-danger.t-is-loading,.t-button--variant-outline.t-button--theme-danger.t-is-disabled{border-color:var(--td-error-color-disabled)}.t-button--variant-outline.t-button--ghost{color:var(--td-text-color-anti);border-color:var(--td-text-color-anti);background-color:#0000}.t-button--variant-outline.t-button--ghost:hover,.t-button--variant-outline.t-button--ghost:focus-visible,.t-button--variant-outline.t-button--ghost:active,.t-button--variant-outline.t-button--ghost.t-is-loading,.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:#0000}.t-button--variant-outline.t-button--ghost:hover,.t-button--variant-outline.t-button--ghost:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-outline.t-button--ghost:hover,.t-button--variant-outline.t-button--ghost:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-outline.t-button--ghost.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-outline.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:hover,.t-button--variant-outline.t-button--ghost.t-button--theme-primary:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-outline.t-button--ghost.t-button--theme-success{color:var(--td-success-color);border-color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover,.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible{color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-outline.t-button--ghost.t-button--theme-success:hover,.t-button--variant-outline.t-button--ghost.t-button--theme-success:focus-visible{border-color:var(--td-success-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-outline.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color);border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible{color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:hover,.t-button--variant-outline.t-button--ghost.t-button--theme-warning:focus-visible{border-color:var(--td-warning-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-outline.t-button--ghost.t-button--theme-danger{color:var(--td-error-color);border-color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible{color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:hover,.t-button--variant-outline.t-button--ghost.t-button--theme-danger:focus-visible{border-color:var(--td-error-color-hover)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-outline.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-primary{color:var(--td-brand-color);background-color:#0000}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-success{color:var(--td-success-color);background-color:#0000}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-warning{color:var(--td-warning-color);background-color:#0000}.t-button--variant-outline.t-is-loading:not(.t-button--variant-outline.t-button--ghost).t-button--theme-danger{color:var(--td-error-color);background-color:#0000}.t-button--variant-dashed{height:var(--td-comp-size-m);font:var(--td-font-body-medium);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px);color:var(--td-text-color-primary);background-color:var(--td-bg-color-specialcomponent);border-color:var(--td-border-level-2-color);border-style:dashed}.t-button--variant-dashed .t-icon,.t-button--variant-dashed .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-dashed:hover,.t-button--variant-dashed:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-loading,.t-button--variant-dashed.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-dashed:hover,.t-button--variant-dashed:focus-visible{background-color:var(--td-bg-color-specialcomponent)}.t-button--variant-dashed.t-is-loading,.t-button--variant-dashed.t-is-disabled{background-color:var(--td-bg-color-component-disabled)}.t-button--variant-dashed:hover,.t-button--variant-dashed:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-is-loading,.t-button--variant-dashed.t-is-disabled{border-color:var(--td-border-level-2-color)}.t-button--variant-dashed.t-button--theme-primary{color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--theme-primary:hover,.t-button--variant-dashed.t-button--theme-primary:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-loading,.t-button--variant-dashed.t-button--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-primary:hover,.t-button--variant-dashed.t-button--theme-primary:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--theme-primary.t-is-loading,.t-button--variant-dashed.t-button--theme-primary.t-is-disabled{border-color:var(--td-brand-color-disabled)}.t-button--variant-dashed.t-button--theme-success{color:var(--td-success-color);border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--theme-success:hover,.t-button--variant-dashed.t-button--theme-success:focus-visible{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-loading,.t-button--variant-dashed.t-button--theme-success.t-is-disabled{color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-success:hover,.t-button--variant-dashed.t-button--theme-success:focus-visible{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--theme-success.t-is-loading,.t-button--variant-dashed.t-button--theme-success.t-is-disabled{border-color:var(--td-success-color-disabled)}.t-button--variant-dashed.t-button--theme-warning{color:var(--td-warning-color);border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--theme-warning:hover,.t-button--variant-dashed.t-button--theme-warning:focus-visible{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-loading,.t-button--variant-dashed.t-button--theme-warning.t-is-disabled{color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-warning:hover,.t-button--variant-dashed.t-button--theme-warning:focus-visible{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--theme-warning.t-is-loading,.t-button--variant-dashed.t-button--theme-warning.t-is-disabled{border-color:var(--td-warning-color-disabled)}.t-button--variant-dashed.t-button--theme-danger{color:var(--td-error-color);border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--theme-danger:hover,.t-button--variant-dashed.t-button--theme-danger:focus-visible{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-loading,.t-button--variant-dashed.t-button--theme-danger.t-is-disabled{color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--theme-danger:hover,.t-button--variant-dashed.t-button--theme-danger:focus-visible{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--theme-danger.t-is-loading,.t-button--variant-dashed.t-button--theme-danger.t-is-disabled{border-color:var(--td-error-color-disabled)}.t-button--variant-dashed.t-button--ghost{color:var(--td-text-color-anti);border-color:var(--td-text-color-anti);background-color:#0000}.t-button--variant-dashed.t-button--ghost:hover,.t-button--variant-dashed.t-button--ghost:focus-visible,.t-button--variant-dashed.t-button--ghost:active,.t-button--variant-dashed.t-button--ghost.t-is-loading,.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:#0000}.t-button--variant-dashed.t-button--ghost:hover,.t-button--variant-dashed.t-button--ghost:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-dashed.t-button--ghost:hover,.t-button--variant-dashed.t-button--ghost:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-is-loading{border-color:var(--td-text-color-anti)}.t-button--variant-dashed.t-button--ghost.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:hover,.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:focus-visible{border-color:var(--td-brand-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary:active{border-color:var(--td-brand-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-loading{border-color:var(--td-brand-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-primary.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-dashed.t-button--ghost.t-button--theme-success{color:var(--td-success-color);border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible{color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:hover,.t-button--variant-dashed.t-button--ghost.t-button--theme-success:focus-visible{border-color:var(--td-success-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success:active{border-color:var(--td-success-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-loading{border-color:var(--td-success-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-success.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color);border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible{color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:hover,.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:focus-visible{border-color:var(--td-warning-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning:active{border-color:var(--td-warning-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-loading{border-color:var(--td-warning-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-warning.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger{color:var(--td-error-color);border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible{color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:hover,.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:focus-visible{border-color:var(--td-error-color-hover)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger:active{border-color:var(--td-error-color-active)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-loading{border-color:var(--td-error-color)}.t-button--variant-dashed.t-button--ghost.t-button--theme-danger.t-is-disabled{background-color:#0000;border-color:#ffffff38}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-primary{color:var(--td-brand-color);background-color:#0000}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-success{color:var(--td-success-color);background-color:#0000}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-warning{color:var(--td-warning-color);background-color:#0000}.t-button--variant-dashed.t-is-loading:not(.t-button--variant-dashed.t-button--ghost).t-button--theme-danger{color:var(--td-error-color);background-color:#0000}.t-button--variant-text{height:var(--td-comp-size-m);font:var(--td-font-body-medium);padding-left:calc(var(--td-comp-paddingLR-l) - 1px);padding-right:calc(var(--td-comp-paddingLR-l) - 1px);color:var(--td-text-color-primary);background-color:#0000;border-color:#0000}.t-button--variant-text .t-icon,.t-button--variant-text .t-loading{font-size:var(--td-font-size-body-large)}.t-button--variant-text:hover,.t-button--variant-text:focus-visible{color:var(--td-text-color-primary)}.t-button--variant-text.t-is-loading,.t-button--variant-text.t-is-disabled{color:var(--td-text-color-disabled)}.t-button--variant-text:hover,.t-button--variant-text:focus-visible{background-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-loading,.t-button--variant-text.t-is-disabled{background-color:#0000}.t-button--variant-text:hover,.t-button--variant-text:focus-visible{border-color:var(--td-bg-color-container-hover)}.t-button--variant-text.t-is-loading,.t-button--variant-text.t-is-disabled{border-color:#0000}.t-button--variant-text.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--theme-primary:hover,.t-button--variant-text.t-button--theme-primary:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--theme-primary.t-is-loading,.t-button--variant-text.t-button--theme-primary.t-is-disabled{color:var(--td-brand-color-disabled)}.t-button--variant-text.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--theme-success:hover,.t-button--variant-text.t-button--theme-success:focus-visible{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--theme-success.t-is-loading,.t-button--variant-text.t-button--theme-success.t-is-disabled{color:var(--td-success-color-disabled)}.t-button--variant-text.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--theme-warning:hover,.t-button--variant-text.t-button--theme-warning:focus-visible{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--theme-warning.t-is-loading,.t-button--variant-text.t-button--theme-warning.t-is-disabled{color:var(--td-warning-color-disabled)}.t-button--variant-text.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--theme-danger:hover,.t-button--variant-text.t-button--theme-danger:focus-visible{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--theme-danger.t-is-loading,.t-button--variant-text.t-button--theme-danger.t-is-disabled{color:var(--td-error-color-disabled)}.t-button--variant-text.t-button--ghost{color:var(--td-text-color-anti);background:0 0}.t-button--variant-text.t-button--ghost:hover,.t-button--variant-text.t-button--ghost:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-is-loading{color:var(--td-text-color-anti)}.t-button--variant-text.t-button--ghost.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-text.t-button--ghost.t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:hover,.t-button--variant-text.t-button--ghost.t-button--theme-primary:focus-visible{color:var(--td-brand-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-primary:active{color:var(--td-brand-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-loading{color:var(--td-brand-color)}.t-button--variant-text.t-button--ghost.t-button--theme-primary.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-text.t-button--ghost.t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success:hover,.t-button--variant-text.t-button--ghost.t-button--theme-success:focus-visible{color:var(--td-success-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-success:active{color:var(--td-success-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-loading{color:var(--td-success-color)}.t-button--variant-text.t-button--ghost.t-button--theme-success.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-text.t-button--ghost.t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:hover,.t-button--variant-text.t-button--ghost.t-button--theme-warning:focus-visible{color:var(--td-warning-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-warning:active{color:var(--td-warning-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-loading{color:var(--td-warning-color)}.t-button--variant-text.t-button--ghost.t-button--theme-warning.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-text.t-button--ghost.t-button--theme-danger{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:hover,.t-button--variant-text.t-button--ghost.t-button--theme-danger:focus-visible{color:var(--td-error-color-hover)}.t-button--variant-text.t-button--ghost.t-button--theme-danger:active{color:var(--td-error-color-active)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-loading{color:var(--td-error-color)}.t-button--variant-text.t-button--ghost.t-button--theme-danger.t-is-disabled{color:#ffffff38;background-color:#0000}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost){color:var(--td-text-color-primary)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-primary{color:var(--td-brand-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-success{color:var(--td-success-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-warning{color:var(--td-warning-color)}.t-button--variant-text.t-is-loading:not(.t-button--variant-text.t-button--ghost).t-button--theme-danger{color:var(--td-error-color)}.t-button.t-is-loading,.t-button.t-is-disabled{cursor:not-allowed}.t-button.t-size-s{height:var(--td-comp-size-xs);font:var(--td-font-body-small);padding-left:calc(var(--td-comp-paddingLR-s) - 1px);padding-right:calc(var(--td-comp-paddingLR-s) - 1px)}.t-button.t-size-s .t-icon,.t-button.t-size-s .t-loading{font-size:var(--td-font-size-body-medium)}.t-button.t-size-l{height:var(--td-comp-size-xl);font:var(--td-font-body-large);padding-left:calc(var(--td-comp-paddingLR-xl) - 1px);padding-right:calc(var(--td-comp-paddingLR-xl) - 1px)}.t-button.t-size-l .t-icon,.t-button.t-size-l .t-loading{font-size:var(--td-font-size-title-large)}.t-button--shape-square{width:var(--td-comp-size-m);padding:0}.t-button--shape-square.t-size-s{width:var(--td-comp-size-xs);padding:0}.t-button--shape-square.t-size-l{width:var(--td-comp-size-xl);padding:0}.t-button--shape-round{border-radius:var(--td-radius-round)}.t-button--shape-round.t-size-s{border-radius:calc(var(--td-comp-size-xs) / 2)}.t-button--shape-round.t-size-l{border-radius:calc(var(--td-comp-size-xl) / 2)}.t-button--shape-circle{width:var(--td-comp-size-m);text-align:center;border-radius:calc(var(--td-comp-size-m) / 2);padding:0}.t-button--shape-circle .t-icon,.t-button--shape-circle .t-loading{font-size:var(--td-font-size-body-large)}.t-button--shape-circle.t-size-s{width:var(--td-comp-size-xs);border-radius:calc(var(--td-comp-size-xs) / 2)}.t-button--shape-circle.t-size-l{width:var(--td-comp-size-xl);border-radius:calc(var(--td-comp-size-xl) / 2);padding:0}.t-button.t-size-full-width{width:100%;display:flex}.t-button--ghost{--ripple-color:var(--td-gray-color-10)}.t-button:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-container-active)}.t-button--variant-base:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-bg-color-component-active)}.t-button--variant-base.t-button--theme-primary:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-brand-color-active)}.t-button--variant-base.t-button--theme-success:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-success-color-active)}.t-button--variant-base.t-button--theme-warning:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-warning-color-active)}.t-button--variant-base.t-button--theme-danger:not(.t-is-disabled):not(.t-button--ghost){--ripple-color:var(--td-error-color-active)}.t-icon{vertical-align:middle;width:1em;height:1em;display:inline-block}.t-icon:before{font-family:unset}.t-icon.t-size-s,i.t-size-s{font-size:14px}.t-icon.t-size-m,i.t-size-m{font-size:16px}.t-icon.t-size-l,i.t-size-l{font-size:18px}.t-link{cursor:pointer;font:var(--td-font-link-medium);outline:none;align-items:center;padding:0;text-decoration:none;transition:all .2s linear;display:inline-flex;position:relative}.t-link .t-link__prefix-icon{margin-right:var(--td-comp-margin-s);display:flex}.t-link .t-link__suffix-icon{margin-left:var(--td-comp-margin-s);display:flex}.t-link.t-size-s{font:var(--td-font-link-small)}.t-link.t-size-s .t-link__prefix-icon{margin-right:var(--td-comp-margin-xs);display:flex}.t-link.t-size-s .t-link__suffix-icon{margin-left:var(--td-comp-margin-xs);display:flex}.t-link.t-size-l{font:var(--td-font-link-large)}.t-link.t-size-l .t-link__prefix-icon{margin-right:var(--td-comp-margin-m);display:flex}.t-link.t-size-l .t-link__suffix-icon{margin-left:var(--td-comp-margin-m);display:flex}.t-link--theme-default{color:var(--td-text-color-primary)}.t-link--theme-default:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-underline:after{content:"";border-bottom:1px solid var(--td-text-color-primary);opacity:0;height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-default.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-default.t-link--hover-underline:active:after{opacity:1;border-color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-default.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-default.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-default.t-is-underline:after{content:"";opacity:1;border-bottom:1px solid var(--td-text-color-primary);height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-default.t-is-disabled{cursor:not-allowed;color:var(--td-text-color-disabled)}.t-link--theme-default.t-is-disabled:hover,.t-link--theme-default.t-is-disabled:active{color:var(--td-text-color-disabled)}.t-link--theme-default.t-is-disabled.t-is-underline:after{border-color:var(--td-text-color-disabled)}.t-link--theme-primary{color:var(--td-brand-color)}.t-link--theme-primary:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-underline:after{content:"";border-bottom:1px solid var(--td-brand-color);opacity:0;height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-primary.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-primary.t-link--hover-underline:active:after{opacity:1;border-color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-color:hover{color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-brand-color-hover)}.t-link--theme-primary.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-brand-color-active)}.t-link--theme-primary.t-link--hover-color:active{color:var(--td-brand-color-active)}.t-link--theme-primary.t-is-underline:after{content:"";opacity:1;border-bottom:1px solid var(--td-brand-color);height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-primary.t-is-disabled{cursor:not-allowed;color:var(--td-brand-color-disabled)}.t-link--theme-primary.t-is-disabled:hover,.t-link--theme-primary.t-is-disabled:active{color:var(--td-brand-color-disabled)}.t-link--theme-primary.t-is-disabled.t-is-underline:after{border-color:var(--td-brand-color-disabled)}.t-link--theme-success{color:var(--td-success-color)}.t-link--theme-success:active{color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-underline:after{content:"";border-bottom:1px solid var(--td-success-color);opacity:0;height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-success.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-success.t-link--hover-underline:active:after{opacity:1;border-color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-color:hover{color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-success-color-hover)}.t-link--theme-success.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-success-color-active)}.t-link--theme-success.t-link--hover-color:active{color:var(--td-success-color-active)}.t-link--theme-success.t-is-underline:after{content:"";opacity:1;border-bottom:1px solid var(--td-success-color);height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-success.t-is-disabled{cursor:not-allowed;color:var(--td-success-color-disabled)}.t-link--theme-success.t-is-disabled:hover,.t-link--theme-success.t-is-disabled:active{color:var(--td-success-color-disabled)}.t-link--theme-success.t-is-disabled.t-is-underline:after{border-color:var(--td-success-color-disabled)}.t-link--theme-danger{color:var(--td-error-color)}.t-link--theme-danger:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-underline:after{content:"";border-bottom:1px solid var(--td-error-color);opacity:0;height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-danger.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-danger.t-link--hover-underline:active:after{opacity:1;border-color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-color:hover{color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-error-color-hover)}.t-link--theme-danger.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-error-color-active)}.t-link--theme-danger.t-link--hover-color:active{color:var(--td-error-color-active)}.t-link--theme-danger.t-is-underline:after{content:"";opacity:1;border-bottom:1px solid var(--td-error-color);height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-danger.t-is-disabled{cursor:not-allowed;color:var(--td-error-color-disabled)}.t-link--theme-danger.t-is-disabled:hover,.t-link--theme-danger.t-is-disabled:active{color:var(--td-error-color-disabled)}.t-link--theme-danger.t-is-disabled.t-is-underline:after{border-color:var(--td-error-color-disabled)}.t-link--theme-warning{color:var(--td-warning-color)}.t-link--theme-warning:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-underline:after{content:"";border-bottom:1px solid var(--td-warning-color);opacity:0;height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-warning.t-link--hover-underline:hover:after{opacity:1}.t-link--theme-warning.t-link--hover-underline:active:after{opacity:1;border-color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-color:hover{color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:hover:after{border-color:var(--td-warning-color-hover)}.t-link--theme-warning.t-link--hover-color.t-is-underline:active:after{border-color:var(--td-warning-color-active)}.t-link--theme-warning.t-link--hover-color:active{color:var(--td-warning-color-active)}.t-link--theme-warning.t-is-underline:after{content:"";opacity:1;border-bottom:1px solid var(--td-warning-color);height:0;transition:all .2s linear;position:absolute;bottom:0;left:0;right:0}.t-link--theme-warning.t-is-disabled{cursor:not-allowed;color:var(--td-warning-color-disabled)}.t-link--theme-warning.t-is-disabled:hover,.t-link--theme-warning.t-is-disabled:active{color:var(--td-warning-color-disabled)}.t-link--theme-warning.t-is-disabled.t-is-underline:after{border-color:var(--td-warning-color-disabled)}.t-row{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;flex-flow:wrap;margin:0;padding:0;list-style:none;display:flex}.t-row--start{justify-content:flex-start}.t-row--center{justify-content:center}.t-row--end{justify-content:flex-end}.t-row--space-between{justify-content:space-between}.t-row--space-around{justify-content:space-around}.t-row--top{align-items:flex-start}.t-row--middle{align-items:center}.t-row--bottom{align-items:flex-end}.t-row--align-top,.t-row--align-start{align-items:flex-start}.t-row--align-middle,.t-row--align-center{align-items:center}.t-row--align-bottom,.t-row--align-end{align-items:flex-end}.t-row--align-stretch{align-items:stretch}.t-row--align-baseline{align-items:baseline}.t-col{box-sizing:border-box;max-width:100%;min-height:1px;position:relative}.t-col-12{flex:0 0 100%;max-width:100%;display:block}.t-col-push-12{left:100%}.t-col-pull-12{right:100%}.t-col-offset-12{margin-left:100%}.t-col-order-12{order:12}.t-col-11{flex:0 0 91.6667%;max-width:91.6667%;display:block}.t-col-push-11{left:91.6667%}.t-col-pull-11{right:91.6667%}.t-col-offset-11{margin-left:91.6667%}.t-col-order-11{order:11}.t-col-10{flex:0 0 83.3333%;max-width:83.3333%;display:block}.t-col-push-10{left:83.3333%}.t-col-pull-10{right:83.3333%}.t-col-offset-10{margin-left:83.3333%}.t-col-order-10{order:10}.t-col-9{flex:0 0 75%;max-width:75%;display:block}.t-col-push-9{left:75%}.t-col-pull-9{right:75%}.t-col-offset-9{margin-left:75%}.t-col-order-9{order:9}.t-col-8{flex:0 0 66.6667%;max-width:66.6667%;display:block}.t-col-push-8{left:66.6667%}.t-col-pull-8{right:66.6667%}.t-col-offset-8{margin-left:66.6667%}.t-col-order-8{order:8}.t-col-7{flex:0 0 58.3333%;max-width:58.3333%;display:block}.t-col-push-7{left:58.3333%}.t-col-pull-7{right:58.3333%}.t-col-offset-7{margin-left:58.3333%}.t-col-order-7{order:7}.t-col-6{flex:0 0 50%;max-width:50%;display:block}.t-col-push-6{left:50%}.t-col-pull-6{right:50%}.t-col-offset-6{margin-left:50%}.t-col-order-6{order:6}.t-col-5{flex:0 0 41.6667%;max-width:41.6667%;display:block}.t-col-push-5{left:41.6667%}.t-col-pull-5{right:41.6667%}.t-col-offset-5{margin-left:41.6667%}.t-col-order-5{order:5}.t-col-4{flex:0 0 33.3333%;max-width:33.3333%;display:block}.t-col-push-4{left:33.3333%}.t-col-pull-4{right:33.3333%}.t-col-offset-4{margin-left:33.3333%}.t-col-order-4{order:4}.t-col-3{flex:0 0 25%;max-width:25%;display:block}.t-col-push-3{left:25%}.t-col-pull-3{right:25%}.t-col-offset-3{margin-left:25%}.t-col-order-3{order:3}.t-col-2{flex:0 0 16.6667%;max-width:16.6667%;display:block}.t-col-push-2{left:16.6667%}.t-col-pull-2{right:16.6667%}.t-col-offset-2{margin-left:16.6667%}.t-col-order-2{order:2}.t-col-1{flex:0 0 8.33333%;max-width:8.33333%;display:block}.t-col-push-1{left:8.33333%}.t-col-pull-1{right:8.33333%}.t-col-offset-1{margin-left:8.33333%}.t-col-order-1{order:1}.t-col-0{display:none}.t-col-offset-0{margin-left:0}.t-col-order-0{order:0}.t-col-xs-12{flex:0 0 100%;max-width:100%;display:block}.t-col-xs-push-12{left:100%}.t-col-xs-pull-12{right:100%}.t-col-xs-offset-12{margin-left:100%}.t-col-xs-order-12{order:12}.t-col-xs-11{flex:0 0 91.6667%;max-width:91.6667%;display:block}.t-col-xs-push-11{left:91.6667%}.t-col-xs-pull-11{right:91.6667%}.t-col-xs-offset-11{margin-left:91.6667%}.t-col-xs-order-11{order:11}.t-col-xs-10{flex:0 0 83.3333%;max-width:83.3333%;display:block}.t-col-xs-push-10{left:83.3333%}.t-col-xs-pull-10{right:83.3333%}.t-col-xs-offset-10{margin-left:83.3333%}.t-col-xs-order-10{order:10}.t-col-xs-9{flex:0 0 75%;max-width:75%;display:block}.t-col-xs-push-9{left:75%}.t-col-xs-pull-9{right:75%}.t-col-xs-offset-9{margin-left:75%}.t-col-xs-order-9{order:9}.t-col-xs-8{flex:0 0 66.6667%;max-width:66.6667%;display:block}.t-col-xs-push-8{left:66.6667%}.t-col-xs-pull-8{right:66.6667%}.t-col-xs-offset-8{margin-left:66.6667%}.t-col-xs-order-8{order:8}.t-col-xs-7{flex:0 0 58.3333%;max-width:58.3333%;display:block}.t-col-xs-push-7{left:58.3333%}.t-col-xs-pull-7{right:58.3333%}.t-col-xs-offset-7{margin-left:58.3333%}.t-col-xs-order-7{order:7}.t-col-xs-6{flex:0 0 50%;max-width:50%;display:block}.t-col-xs-push-6{left:50%}.t-col-xs-pull-6{right:50%}.t-col-xs-offset-6{margin-left:50%}.t-col-xs-order-6{order:6}.t-col-xs-5{flex:0 0 41.6667%;max-width:41.6667%;display:block}.t-col-xs-push-5{left:41.6667%}.t-col-xs-pull-5{right:41.6667%}.t-col-xs-offset-5{margin-left:41.6667%}.t-col-xs-order-5{order:5}.t-col-xs-4{flex:0 0 33.3333%;max-width:33.3333%;display:block}.t-col-xs-push-4{left:33.3333%}.t-col-xs-pull-4{right:33.3333%}.t-col-xs-offset-4{margin-left:33.3333%}.t-col-xs-order-4{order:4}.t-col-xs-3{flex:0 0 25%;max-width:25%;display:block}.t-col-xs-push-3{left:25%}.t-col-xs-pull-3{right:25%}.t-col-xs-offset-3{margin-left:25%}.t-col-xs-order-3{order:3}.t-col-xs-2{flex:0 0 16.6667%;max-width:16.6667%;display:block}.t-col-xs-push-2{left:16.6667%}.t-col-xs-pull-2{right:16.6667%}.t-col-xs-offset-2{margin-left:16.6667%}.t-col-xs-order-2{order:2}.t-col-xs-1{flex:0 0 8.33333%;max-width:8.33333%;display:block}.t-col-xs-push-1{left:8.33333%}.t-col-xs-pull-1{right:8.33333%}.t-col-xs-offset-1{margin-left:8.33333%}.t-col-xs-order-1{order:1}.t-col-xs-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xs-push-0{left:auto}.t-col-xs-pull-0{right:auto}.t-col-xs-offset-0{margin-left:0}.t-col-xs-order-0{order:0}@media (width>=768px){.t-col-sm-12{flex:0 0 100%;max-width:100%;display:block}.t-col-sm-push-12{left:100%}.t-col-sm-pull-12{right:100%}.t-col-sm-offset-12{margin-left:100%}.t-col-sm-order-12{order:12}.t-col-sm-11{flex:0 0 91.6667%;max-width:91.6667%;display:block}.t-col-sm-push-11{left:91.6667%}.t-col-sm-pull-11{right:91.6667%}.t-col-sm-offset-11{margin-left:91.6667%}.t-col-sm-order-11{order:11}.t-col-sm-10{flex:0 0 83.3333%;max-width:83.3333%;display:block}.t-col-sm-push-10{left:83.3333%}.t-col-sm-pull-10{right:83.3333%}.t-col-sm-offset-10{margin-left:83.3333%}.t-col-sm-order-10{order:10}.t-col-sm-9{flex:0 0 75%;max-width:75%;display:block}.t-col-sm-push-9{left:75%}.t-col-sm-pull-9{right:75%}.t-col-sm-offset-9{margin-left:75%}.t-col-sm-order-9{order:9}.t-col-sm-8{flex:0 0 66.6667%;max-width:66.6667%;display:block}.t-col-sm-push-8{left:66.6667%}.t-col-sm-pull-8{right:66.6667%}.t-col-sm-offset-8{margin-left:66.6667%}.t-col-sm-order-8{order:8}.t-col-sm-7{flex:0 0 58.3333%;max-width:58.3333%;display:block}.t-col-sm-push-7{left:58.3333%}.t-col-sm-pull-7{right:58.3333%}.t-col-sm-offset-7{margin-left:58.3333%}.t-col-sm-order-7{order:7}.t-col-sm-6{flex:0 0 50%;max-width:50%;display:block}.t-col-sm-push-6{left:50%}.t-col-sm-pull-6{right:50%}.t-col-sm-offset-6{margin-left:50%}.t-col-sm-order-6{order:6}.t-col-sm-5{flex:0 0 41.6667%;max-width:41.6667%;display:block}.t-col-sm-push-5{left:41.6667%}.t-col-sm-pull-5{right:41.6667%}.t-col-sm-offset-5{margin-left:41.6667%}.t-col-sm-order-5{order:5}.t-col-sm-4{flex:0 0 33.3333%;max-width:33.3333%;display:block}.t-col-sm-push-4{left:33.3333%}.t-col-sm-pull-4{right:33.3333%}.t-col-sm-offset-4{margin-left:33.3333%}.t-col-sm-order-4{order:4}.t-col-sm-3{flex:0 0 25%;max-width:25%;display:block}.t-col-sm-push-3{left:25%}.t-col-sm-pull-3{right:25%}.t-col-sm-offset-3{margin-left:25%}.t-col-sm-order-3{order:3}.t-col-sm-2{flex:0 0 16.6667%;max-width:16.6667%;display:block}.t-col-sm-push-2{left:16.6667%}.t-col-sm-pull-2{right:16.6667%}.t-col-sm-offset-2{margin-left:16.6667%}.t-col-sm-order-2{order:2}.t-col-sm-1{flex:0 0 8.33333%;max-width:8.33333%;display:block}.t-col-sm-push-1{left:8.33333%}.t-col-sm-pull-1{right:8.33333%}.t-col-sm-offset-1{margin-left:8.33333%}.t-col-sm-order-1{order:1}.t-col-sm-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-sm-push-0{left:auto}.t-col-sm-pull-0{right:auto}.t-col-sm-offset-0{margin-left:0}.t-col-sm-order-0{order:0}}@media (width>=992px){.t-col-md-12{flex:0 0 100%;max-width:100%;display:block}.t-col-md-push-12{left:100%}.t-col-md-pull-12{right:100%}.t-col-md-offset-12{margin-left:100%}.t-col-md-order-12{order:12}.t-col-md-11{flex:0 0 91.6667%;max-width:91.6667%;display:block}.t-col-md-push-11{left:91.6667%}.t-col-md-pull-11{right:91.6667%}.t-col-md-offset-11{margin-left:91.6667%}.t-col-md-order-11{order:11}.t-col-md-10{flex:0 0 83.3333%;max-width:83.3333%;display:block}.t-col-md-push-10{left:83.3333%}.t-col-md-pull-10{right:83.3333%}.t-col-md-offset-10{margin-left:83.3333%}.t-col-md-order-10{order:10}.t-col-md-9{flex:0 0 75%;max-width:75%;display:block}.t-col-md-push-9{left:75%}.t-col-md-pull-9{right:75%}.t-col-md-offset-9{margin-left:75%}.t-col-md-order-9{order:9}.t-col-md-8{flex:0 0 66.6667%;max-width:66.6667%;display:block}.t-col-md-push-8{left:66.6667%}.t-col-md-pull-8{right:66.6667%}.t-col-md-offset-8{margin-left:66.6667%}.t-col-md-order-8{order:8}.t-col-md-7{flex:0 0 58.3333%;max-width:58.3333%;display:block}.t-col-md-push-7{left:58.3333%}.t-col-md-pull-7{right:58.3333%}.t-col-md-offset-7{margin-left:58.3333%}.t-col-md-order-7{order:7}.t-col-md-6{flex:0 0 50%;max-width:50%;display:block}.t-col-md-push-6{left:50%}.t-col-md-pull-6{right:50%}.t-col-md-offset-6{margin-left:50%}.t-col-md-order-6{order:6}.t-col-md-5{flex:0 0 41.6667%;max-width:41.6667%;display:block}.t-col-md-push-5{left:41.6667%}.t-col-md-pull-5{right:41.6667%}.t-col-md-offset-5{margin-left:41.6667%}.t-col-md-order-5{order:5}.t-col-md-4{flex:0 0 33.3333%;max-width:33.3333%;display:block}.t-col-md-push-4{left:33.3333%}.t-col-md-pull-4{right:33.3333%}.t-col-md-offset-4{margin-left:33.3333%}.t-col-md-order-4{order:4}.t-col-md-3{flex:0 0 25%;max-width:25%;display:block}.t-col-md-push-3{left:25%}.t-col-md-pull-3{right:25%}.t-col-md-offset-3{margin-left:25%}.t-col-md-order-3{order:3}.t-col-md-2{flex:0 0 16.6667%;max-width:16.6667%;display:block}.t-col-md-push-2{left:16.6667%}.t-col-md-pull-2{right:16.6667%}.t-col-md-offset-2{margin-left:16.6667%}.t-col-md-order-2{order:2}.t-col-md-1{flex:0 0 8.33333%;max-width:8.33333%;display:block}.t-col-md-push-1{left:8.33333%}.t-col-md-pull-1{right:8.33333%}.t-col-md-offset-1{margin-left:8.33333%}.t-col-md-order-1{order:1}.t-col-md-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-md-push-0{left:auto}.t-col-md-pull-0{right:auto}.t-col-md-offset-0{margin-left:0}.t-col-md-order-0{order:0}}@media (width>=1200px){.t-col-lg-12{flex:0 0 100%;max-width:100%;display:block}.t-col-lg-push-12{left:100%}.t-col-lg-pull-12{right:100%}.t-col-lg-offset-12{margin-left:100%}.t-col-lg-order-12{order:12}.t-col-lg-11{flex:0 0 91.6667%;max-width:91.6667%;display:block}.t-col-lg-push-11{left:91.6667%}.t-col-lg-pull-11{right:91.6667%}.t-col-lg-offset-11{margin-left:91.6667%}.t-col-lg-order-11{order:11}.t-col-lg-10{flex:0 0 83.3333%;max-width:83.3333%;display:block}.t-col-lg-push-10{left:83.3333%}.t-col-lg-pull-10{right:83.3333%}.t-col-lg-offset-10{margin-left:83.3333%}.t-col-lg-order-10{order:10}.t-col-lg-9{flex:0 0 75%;max-width:75%;display:block}.t-col-lg-push-9{left:75%}.t-col-lg-pull-9{right:75%}.t-col-lg-offset-9{margin-left:75%}.t-col-lg-order-9{order:9}.t-col-lg-8{flex:0 0 66.6667%;max-width:66.6667%;display:block}.t-col-lg-push-8{left:66.6667%}.t-col-lg-pull-8{right:66.6667%}.t-col-lg-offset-8{margin-left:66.6667%}.t-col-lg-order-8{order:8}.t-col-lg-7{flex:0 0 58.3333%;max-width:58.3333%;display:block}.t-col-lg-push-7{left:58.3333%}.t-col-lg-pull-7{right:58.3333%}.t-col-lg-offset-7{margin-left:58.3333%}.t-col-lg-order-7{order:7}.t-col-lg-6{flex:0 0 50%;max-width:50%;display:block}.t-col-lg-push-6{left:50%}.t-col-lg-pull-6{right:50%}.t-col-lg-offset-6{margin-left:50%}.t-col-lg-order-6{order:6}.t-col-lg-5{flex:0 0 41.6667%;max-width:41.6667%;display:block}.t-col-lg-push-5{left:41.6667%}.t-col-lg-pull-5{right:41.6667%}.t-col-lg-offset-5{margin-left:41.6667%}.t-col-lg-order-5{order:5}.t-col-lg-4{flex:0 0 33.3333%;max-width:33.3333%;display:block}.t-col-lg-push-4{left:33.3333%}.t-col-lg-pull-4{right:33.3333%}.t-col-lg-offset-4{margin-left:33.3333%}.t-col-lg-order-4{order:4}.t-col-lg-3{flex:0 0 25%;max-width:25%;display:block}.t-col-lg-push-3{left:25%}.t-col-lg-pull-3{right:25%}.t-col-lg-offset-3{margin-left:25%}.t-col-lg-order-3{order:3}.t-col-lg-2{flex:0 0 16.6667%;max-width:16.6667%;display:block}.t-col-lg-push-2{left:16.6667%}.t-col-lg-pull-2{right:16.6667%}.t-col-lg-offset-2{margin-left:16.6667%}.t-col-lg-order-2{order:2}.t-col-lg-1{flex:0 0 8.33333%;max-width:8.33333%;display:block}.t-col-lg-push-1{left:8.33333%}.t-col-lg-pull-1{right:8.33333%}.t-col-lg-offset-1{margin-left:8.33333%}.t-col-lg-order-1{order:1}.t-col-lg-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-lg-push-0{left:auto}.t-col-lg-pull-0{right:auto}.t-col-lg-offset-0{margin-left:0}.t-col-lg-order-0{order:0}}@media (width>=1400px){.t-col-xl-12{flex:0 0 100%;max-width:100%;display:block}.t-col-xl-push-12{left:100%}.t-col-xl-pull-12{right:100%}.t-col-xl-offset-12{margin-left:100%}.t-col-xl-order-12{order:12}.t-col-xl-11{flex:0 0 91.6667%;max-width:91.6667%;display:block}.t-col-xl-push-11{left:91.6667%}.t-col-xl-pull-11{right:91.6667%}.t-col-xl-offset-11{margin-left:91.6667%}.t-col-xl-order-11{order:11}.t-col-xl-10{flex:0 0 83.3333%;max-width:83.3333%;display:block}.t-col-xl-push-10{left:83.3333%}.t-col-xl-pull-10{right:83.3333%}.t-col-xl-offset-10{margin-left:83.3333%}.t-col-xl-order-10{order:10}.t-col-xl-9{flex:0 0 75%;max-width:75%;display:block}.t-col-xl-push-9{left:75%}.t-col-xl-pull-9{right:75%}.t-col-xl-offset-9{margin-left:75%}.t-col-xl-order-9{order:9}.t-col-xl-8{flex:0 0 66.6667%;max-width:66.6667%;display:block}.t-col-xl-push-8{left:66.6667%}.t-col-xl-pull-8{right:66.6667%}.t-col-xl-offset-8{margin-left:66.6667%}.t-col-xl-order-8{order:8}.t-col-xl-7{flex:0 0 58.3333%;max-width:58.3333%;display:block}.t-col-xl-push-7{left:58.3333%}.t-col-xl-pull-7{right:58.3333%}.t-col-xl-offset-7{margin-left:58.3333%}.t-col-xl-order-7{order:7}.t-col-xl-6{flex:0 0 50%;max-width:50%;display:block}.t-col-xl-push-6{left:50%}.t-col-xl-pull-6{right:50%}.t-col-xl-offset-6{margin-left:50%}.t-col-xl-order-6{order:6}.t-col-xl-5{flex:0 0 41.6667%;max-width:41.6667%;display:block}.t-col-xl-push-5{left:41.6667%}.t-col-xl-pull-5{right:41.6667%}.t-col-xl-offset-5{margin-left:41.6667%}.t-col-xl-order-5{order:5}.t-col-xl-4{flex:0 0 33.3333%;max-width:33.3333%;display:block}.t-col-xl-push-4{left:33.3333%}.t-col-xl-pull-4{right:33.3333%}.t-col-xl-offset-4{margin-left:33.3333%}.t-col-xl-order-4{order:4}.t-col-xl-3{flex:0 0 25%;max-width:25%;display:block}.t-col-xl-push-3{left:25%}.t-col-xl-pull-3{right:25%}.t-col-xl-offset-3{margin-left:25%}.t-col-xl-order-3{order:3}.t-col-xl-2{flex:0 0 16.6667%;max-width:16.6667%;display:block}.t-col-xl-push-2{left:16.6667%}.t-col-xl-pull-2{right:16.6667%}.t-col-xl-offset-2{margin-left:16.6667%}.t-col-xl-order-2{order:2}.t-col-xl-1{flex:0 0 8.33333%;max-width:8.33333%;display:block}.t-col-xl-push-1{left:8.33333%}.t-col-xl-pull-1{right:8.33333%}.t-col-xl-offset-1{margin-left:8.33333%}.t-col-xl-order-1{order:1}.t-col-xl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xl-push-0{left:auto}.t-col-xl-pull-0{right:auto}.t-col-xl-offset-0{margin-left:0}.t-col-xl-order-0{order:0}}@media (width>=1880px){.t-col-xxl-12{flex:0 0 100%;max-width:100%;display:block}.t-col-xxl-push-12{left:100%}.t-col-xxl-pull-12{right:100%}.t-col-xxl-offset-12{margin-left:100%}.t-col-xxl-order-12{order:12}.t-col-xxl-11{flex:0 0 91.6667%;max-width:91.6667%;display:block}.t-col-xxl-push-11{left:91.6667%}.t-col-xxl-pull-11{right:91.6667%}.t-col-xxl-offset-11{margin-left:91.6667%}.t-col-xxl-order-11{order:11}.t-col-xxl-10{flex:0 0 83.3333%;max-width:83.3333%;display:block}.t-col-xxl-push-10{left:83.3333%}.t-col-xxl-pull-10{right:83.3333%}.t-col-xxl-offset-10{margin-left:83.3333%}.t-col-xxl-order-10{order:10}.t-col-xxl-9{flex:0 0 75%;max-width:75%;display:block}.t-col-xxl-push-9{left:75%}.t-col-xxl-pull-9{right:75%}.t-col-xxl-offset-9{margin-left:75%}.t-col-xxl-order-9{order:9}.t-col-xxl-8{flex:0 0 66.6667%;max-width:66.6667%;display:block}.t-col-xxl-push-8{left:66.6667%}.t-col-xxl-pull-8{right:66.6667%}.t-col-xxl-offset-8{margin-left:66.6667%}.t-col-xxl-order-8{order:8}.t-col-xxl-7{flex:0 0 58.3333%;max-width:58.3333%;display:block}.t-col-xxl-push-7{left:58.3333%}.t-col-xxl-pull-7{right:58.3333%}.t-col-xxl-offset-7{margin-left:58.3333%}.t-col-xxl-order-7{order:7}.t-col-xxl-6{flex:0 0 50%;max-width:50%;display:block}.t-col-xxl-push-6{left:50%}.t-col-xxl-pull-6{right:50%}.t-col-xxl-offset-6{margin-left:50%}.t-col-xxl-order-6{order:6}.t-col-xxl-5{flex:0 0 41.6667%;max-width:41.6667%;display:block}.t-col-xxl-push-5{left:41.6667%}.t-col-xxl-pull-5{right:41.6667%}.t-col-xxl-offset-5{margin-left:41.6667%}.t-col-xxl-order-5{order:5}.t-col-xxl-4{flex:0 0 33.3333%;max-width:33.3333%;display:block}.t-col-xxl-push-4{left:33.3333%}.t-col-xxl-pull-4{right:33.3333%}.t-col-xxl-offset-4{margin-left:33.3333%}.t-col-xxl-order-4{order:4}.t-col-xxl-3{flex:0 0 25%;max-width:25%;display:block}.t-col-xxl-push-3{left:25%}.t-col-xxl-pull-3{right:25%}.t-col-xxl-offset-3{margin-left:25%}.t-col-xxl-order-3{order:3}.t-col-xxl-2{flex:0 0 16.6667%;max-width:16.6667%;display:block}.t-col-xxl-push-2{left:16.6667%}.t-col-xxl-pull-2{right:16.6667%}.t-col-xxl-offset-2{margin-left:16.6667%}.t-col-xxl-order-2{order:2}.t-col-xxl-1{flex:0 0 8.33333%;max-width:8.33333%;display:block}.t-col-xxl-push-1{left:8.33333%}.t-col-xxl-pull-1{right:8.33333%}.t-col-xxl-offset-1{margin-left:8.33333%}.t-col-xxl-order-1{order:1}.t-col-xxl-0{display:none}.t-col-push-0{left:auto}.t-col-pull-0{right:auto}.t-col-xxl-push-0{left:auto}.t-col-xxl-pull-0{right:auto}.t-col-xxl-offset-0{margin-left:0}.t-col-xxl-order-0{order:0}}.t-layout{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-layout,.t-layout__direction-vertical{background:var(--td-bg-color-page);flex-direction:column;flex:auto;display:flex}.t-layout--with-sider,.t-layout__direction-horizontal{flex-direction:row}.t-layout__header{height:var(--td-comp-size-xxxl);background-color:var(--td-bg-color-container)}.t-layout__content{flex:auto}.t-layout__sider{background:var(--td-bg-color-container);width:232px;transition:all .2s;position:relative}.t-layout__footer{color:var(--td-text-color-placeholder);padding:24px}.t-divider{font:var(--td-font-body-medium);margin:0;margin:var(--td-comp-margin-xxl) 0;border-top:1px solid var(--td-border-level-1-color);color:var(--td-text-color-primary);box-sizing:border-box;padding:0;list-style:none}.t-divider--dashed{border-top-style:dashed}.t-divider--horizontal{width:100%;display:flex}.t-divider--vertical{margin:0 var(--td-comp-margin-m);border-top:0;border-left:1px solid var(--td-border-level-1-color);vertical-align:middle;height:.9em;display:inline-block}.t-divider--with-text{white-space:nowrap;border-top:0;align-items:center;display:flex}.t-divider--with-text .t-divider__inner-text:not(:empty){padding:0 1em;display:inline-block}.t-divider--with-text:before,.t-divider--with-text:after{content:"";border-top:1px solid var(--td-border-level-1-color);width:50%}.t-divider--with-text-left:before{width:5%}.t-divider--with-text-left:after,.t-divider--with-text-right:before{width:95%}.t-divider--with-text-right:after{width:5%}.t-divider--dashed:before,.t-divider--dashed:after{border-top:1px dashed var(--td-border-level-1-color)}.t-divider--vertical.t-divider--dashed{border-left:1px dashed var(--td-border-level-1-color)}.t-space{display:inline-flex}.t-space .t-space-item{width:inherit}.t-space-align-start{align-items:flex-start}.t-space-align-end{align-items:flex-end}.t-space-align-baseline{align-items:baseline}.t-space-align-center{align-items:center}.t-space-vertical{flex-direction:column}.t-space-vertical>.t-space-item-separator{width:100%}.t-space.t-space--break-line{flex-wrap:wrap}.t-space.t-space--polyfill{display:flex}.t-space.t-space--polyfill.t-space-horizontal,.t-space.t-space--polyfill.t-space--break-line{margin-left:calc(-1 * var(--td-space-column-gap,0))}.t-space.t-space--polyfill.t-space-vertical,.t-space.t-space--polyfill.t-space--break-line{margin-top:calc(-1 * var(--td-space-row-gap,0))}.t-space.t-space--polyfill.t-space-horizontal>*,.t-space.t-space--polyfill.t-space--break-line>*{margin-left:var(--td-space-column-gap)}.t-space.t-space--polyfill.t-space-vertical>*,.t-space.t-space--polyfill.t-space--break-line>*{margin-top:var(--td-space-row-gap)}.t-descriptions{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-descriptions__header{color:var(--td-text-color-primary);font:var(--td-font-title-medium);margin-bottom:var(--td-comp-margin-m);font-weight:600}.t-descriptions__body{border-collapse:collapse;font:var(--td-font-body-medium);width:100%}.t-descriptions__body.t-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l) 0}.t-descriptions__body.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingTB-m) 0}.t-descriptions__body.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingTB-s) 0}.t-descriptions__body .t-descriptions__label{color:var(--td-text-color-placeholder)}.t-descriptions__body--fixed{table-layout:fixed}.t-descriptions__body--border>tbody>tr>td{border:1px solid var(--td-component-border)}.t-descriptions__body--border.t-size-l>tbody>tr>td{padding:var(--td-comp-paddingTB-l)}.t-descriptions__body--border.t-size-m>tbody>tr>td{padding:var(--td-comp-paddingLR-m) var(--td-comp-paddingLR-l)}.t-descriptions__body--border.t-size-s>tbody>tr>td{padding:var(--td-comp-paddingLR-s) var(--td-comp-paddingLR-l)}.t-descriptions__body--border .t-descriptions__label{background-color:var(--td-bg-color-secondarycontainer)}.t-descriptions__body--border .t-descriptions__label:hover{background-color:var(--td-bg-color-container-hover)}:not(.t-descriptions__body--fixed):not(.t-descriptions__body--border) .t-descriptions__label{padding-right:var(--td-comp-paddingLR-l)}.t-affix{z-index:500;position:fixed}.t-anchor{box-sizing:border-box;--td-anchor-space-base:var(--td-size-6);background:var(--td-bg-color-container);width:200px;color:var(--td-text-color-primary);font:var(--td-font-body-medium);margin:0;padding:0;list-style:none;position:relative}.t-anchor .t-is-active>a{color:var(--td-brand-color)}.t-anchor__line{background-color:var(--td-component-stroke);cursor:pointer;width:1px;height:100%;position:absolute;top:0;left:0}.t-anchor__line-cursor-wrapper{opacity:0;height:0;transition:all .2s cubic-bezier(.24,.41,.51,.9);display:block;position:absolute}.t-anchor__line-cursor-wrapper .t-anchor__line-cursor{background-color:var(--td-brand-color);width:1px;height:100%}.t-anchor__item{padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingTB-l);--level:1;padding-left:calc(var(--level) * var(--td-anchor-space-base));flex-direction:column;display:flex}.t-anchor__item.t-is-active{font-weight:500}.t-anchor__item-link{word-break:break-all;color:var(--td-text-color-primary);text-align:justify;text-decoration:none;display:inline-block;position:relative;overflow:hidden}.t-anchor a{transition:color .2s linear}.t-anchor a:hover{color:var(--td-brand-color);cursor:pointer}.t-anchor a:active{color:var(--td-brand-color-active)}.t-anchor.t-size-s{width:120px}.t-anchor.t-size-l{width:320px}.t-anchor__target{cursor:pointer;font:var(--td-font-body-medium);color:var(--td-text-color-primary)}@keyframes fadeOut{0%{opacity:1}to{opacity:0;display:none}}.t-anchor__target .t-anchor__copy{margin:0 0 0 var(--td-comp-margin-xs);display:none}.t-anchor__target:hover .t-anchor__copy{display:inline-block}.t-anchor__target:target:after{content:"";border-radius:var(--td-radius-circle);background-color:var(--td-brand-color);vertical-align:middle;width:6px;height:6px;animation:2s linear 2s forwards fadeOut;display:inline-block}.t-message{border-radius:var(--td-radius-medium);background-color:var(--td-bg-color-container);width:fit-content;box-shadow:var(--td-shadow-3), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);box-sizing:border-box;color:var(--td-text-color-primary);font:var(--td-font-body-medium);padding:0;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);outline:0;align-items:center;margin:0;list-style:none;display:flex}.t-message>.t-icon,.t-message>[data-t-icon]>.t-icon,.t-message .t-loading{color:var(--td-brand-color);margin-right:var(--td-comp-margin-s);font-size:calc(var(--td-font-size-body-medium) + 6px);flex-shrink:0}.t-message.t-is-success>.t-icon,.t-message.t-is-success>[data-t-icon]>.t-icon,.t-message.t-is-success .t-loading{color:var(--td-success-color)}.t-message.t-is-warning>.t-icon,.t-message.t-is-warning>[data-t-icon]>.t-icon,.t-message.t-is-warning .t-loading{color:var(--td-warning-color)}.t-message.t-is-error>.t-icon,.t-message.t-is-error>[data-t-icon]>.t-icon,.t-message.t-is-error .t-loading{color:var(--td-error-color)}.t-message.t-is-closable .t-message__close{margin-right:0;margin-left:var(--td-comp-margin-xxl);cursor:pointer;color:var(--td-text-color-secondary);display:inline-flex}.t-message.t-is-closable .t-message__close .t-icon-close{font-size:calc(var(--td-font-size-body-medium) + 2px);border-radius:var(--td-radius-default);transition:all .2s linear}.t-message.t-is-closable .t-message__close .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-message.t-is-closable .t-message__close .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-message__list{z-index:6000;pointer-events:none;position:fixed}.t-message__list .t-message{margin-bottom:var(--td-comp-margin-s);word-break:break-all;pointer-events:auto}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.content-placement-top .t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.content-placement-bottom .t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.content-placement-left .t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.content-placement-right .t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup{font:var(--td-font-body-medium);box-sizing:border-box;color:var(--td-text-color-primary);z-index:5500;margin:0;padding:0;list-style:none;display:inline-block}.t-popup__content{background:var(--td-bg-color-container);box-shadow:var(--td-shadow-2), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);box-sizing:border-box;word-break:break-all;position:relative}.t-popup__arrow{z-index:1;width:8px;height:8px;position:absolute}.t-popup__arrow:before{content:"";background:var(--td-bg-color-container);width:8px;height:8px;position:absolute;transform:rotate(45deg)}.t-popup[data-popper-placement^=top] .t-popup__content{margin-bottom:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=top] .t-popup__content--arrow{margin-bottom:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=bottom] .t-popup__content{margin-top:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=bottom] .t-popup__content--arrow{margin-top:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content{margin-right:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=left] .t-popup__content--arrow{margin-right:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=left] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=right] .t-popup__content{margin-left:var(--td-comp-margin-s)}.t-popup[data-popper-placement^=right] .t-popup__content--arrow{margin-left:var(--td-comp-margin-l)}.t-popup[data-popper-placement^=right] .t-popup__content--text{max-width:480px}.t-popup[data-popper-placement^=top] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-left), var(--td-shadow-inset-bottom);border-top-left-radius:100%}.t-popup[data-popper-placement=top-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=top] .t-popup__arrow{margin-left:-4px;left:50%}.t-popup[data-popper-placement=top-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=bottom] .t-popup__arrow{top:-4px}.t-popup[data-popper-placement^=bottom] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-top), var(--td-shadow-inset-right);border-bottom-right-radius:100%}.t-popup[data-popper-placement=bottom-start] .t-popup__arrow{left:8px}.t-popup[data-popper-placement=bottom] .t-popup__arrow{margin-left:-4px;left:50%}.t-popup[data-popper-placement=bottom-end] .t-popup__arrow{left:calc(100% - 16px)}.t-popup[data-popper-placement^=left] .t-popup__arrow{right:-4px}.t-popup[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-left), var(--td-shadow-inset-top)}.t-popup[data-popper-placement=left-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=left] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=left-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup[data-popper-placement^=right] .t-popup__arrow{left:-4px}.t-popup[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:var(--td-shadow-inset-right), var(--td-shadow-inset-bottom)}.t-popup[data-popper-placement=right-start] .t-popup__arrow{top:8px}.t-popup[data-popper-placement=right] .t-popup__arrow{margin-top:-4px;top:50%}.t-popup[data-popper-placement=right-end] .t-popup__arrow{top:calc(100% - 16px)}.t-popup--animation-enter,.t-popup--animation-enter-from,.t-popup--animation-exiting,.t-popup--animation-leave-to{opacity:0;visibility:hidden}.t-popup--animation-enter-to,.t-popup--animation-entering,.t-popup--animation-leave-from,.t-popup--animation-leave{opacity:1;visibility:visible;transform:none}.t-popup--animation-enter-active{transition:opacity .2s linear}.t-popup--animation-leave-active{transition:opacity .2s cubic-bezier(0,0,.15,1),visibility .2s cubic-bezier(.82,0,1,.9)}.t-popup--animation-expand-enter-active[data-popper-placement^=top]{animation:.2s cubic-bezier(.38,0,.24,1) t-popup-animation-expand-in-top,.2s linear t-fade-in}.t-popup--animation-expand-leave-active[data-popper-placement^=top]{animation:.2s cubic-bezier(.38,0,.24,1) t-popup-animation-expand-out-top,.2s cubic-bezier(0,0,.15,1) t-fade-out}@keyframes t-popup-animation-expand-in-top{0%{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-top{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 120%,120% 120%,120% 120%,-20% 120%)}}.t-popup--animation-expand-enter-active[data-popper-placement^=bottom]{animation:.2s cubic-bezier(.38,0,.24,1) t-popup-animation-expand-in-bottom,.2s linear t-fade-in}.t-popup--animation-expand-leave-active[data-popper-placement^=bottom]{animation:.2s cubic-bezier(.38,0,.24,1) t-popup-animation-expand-out-bottom,.2s cubic-bezier(0,0,.15,1) t-fade-out}@keyframes t-popup-animation-expand-in-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}to{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}}@keyframes t-popup-animation-expand-out-bottom{0%{clip-path:polygon(-20% 0,120% 0,120% 120%,-20% 120%)}to{clip-path:polygon(-20% 0,120% 0,120% 0,-20% 0)}}.t-tooltip .t-popup__content{z-index:5600;word-break:break-word;box-sizing:border-box;border-radius:var(--td-radius-medium);max-width:480px;color:var(--td-text-color-primary);border:0;margin-bottom:1px;display:inline-block}.t-tooltip--default .t-popup__content{color:var(--td-text-color-anti);background:var(--td-gray-color-13);box-shadow:inset 0 .5px 0 var(--td-gray-color-9), inset .5px 0 0 var(--td-gray-color-9), inset 0 -.5px 0 var(--td-gray-color-9), inset -.5px 0 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=left] .t-popup__arrow:before{box-shadow:inset -.5px 0 0 var(--td-gray-color-9), inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=right] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9), inset 0 -.5px 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=top] .t-popup__arrow:before{box-shadow:inset 0 -.5px 0 var(--td-gray-color-9), inset -.5px 0 0 var(--td-gray-color-9)}.t-tooltip--default[data-popper-placement^=bottom] .t-popup__arrow:before{box-shadow:inset .5px 0 0 var(--td-gray-color-9), inset 0 .5px 0 var(--td-gray-color-9)}.t-tooltip--primary .t-popup__content{color:var(--td-brand-color);background:var(--td-brand-color-light)}.t-tooltip--success .t-popup__content{color:var(--td-success-color);background:var(--td-success-color-light)}.t-tooltip--danger .t-popup__content{color:var(--td-error-color);background:var(--td-error-color-light)}.t-tooltip--warning .t-popup__content{color:var(--td-warning-color);background:var(--td-warning-color-light)}.t-tooltip .t-popup__arrow{background:inherit;height:auto}.t-tooltip .t-popup__arrow:before{background:inherit}.t-tooltip--noshadow .t-popup__content,.t-tooltip--noshadow[data-popper-placement] .t-popup__arrow:before{box-shadow:none}@keyframes changeColor{0%{color:var(--td-brand-color-hover)}to{color:var(--td-brand-color-active)}}.t-breadcrumb{color:var(--td-text-color-primary);box-sizing:border-box;font:var(--td-font-body-medium);align-items:center;margin:0;padding:0;list-style:none;display:flex}.t-breadcrumb__separator{margin:0 var(--td-comp-margin-xs);align-items:center;display:flex}.t-breadcrumb__separator .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item{color:var(--td-text-color-placeholder);align-items:center;text-decoration:none;display:flex}.t-breadcrumb__item.t-is-current{color:var(--td-text-color-primary)}.t-breadcrumb__item.t-is-current .t-icon{color:var(--td-text-color-placeholder)}.t-breadcrumb__item:last-child{color:var(--td-text-color-primary)}.t-breadcrumb__item:last-child .t-breadcrumb__separator{display:none}.t-breadcrumb__item .t-icon{font-size:var(--td-font-size-body-large)}.t-breadcrumb__item .t-link{color:inherit;text-decoration:none}.t-breadcrumb__item .t-link:hover{color:var(--td-brand-color)}.t-breadcrumb__item .t-is-disabled{cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner{color:var(--td-text-color-disabled)}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:hover{color:var(--td-text-color-disabled);cursor:not-allowed}.t-breadcrumb__item .t-is-disabled .t-breadcrumb__inner:active{animation:none}.t-breadcrumb__item--arrow,.t-breadcrumb__item--slash{margin:0 var(--td-comp-margin-xs);color:var(--td-text-color-placeholder);vertical-align:middle;line-height:0;display:inline-block}.t-breadcrumb__inner{font:var(--td-font-body-medium);word-break:break-all;vertical-align:middle;display:inline-block}.t-breadcrumb__inner .t-icon{margin:0 var(--td-comp-margin-xs)}.t-breadcrumb__select{position:relative}.t-breadcrumb__select:hover .t-breadcrumb__option{display:block}.t-breadcrumb__select-item:hover .t-icon{color:var(--td-brand-color)}.t-breadcrumb__option{background:var(--td-bg-color-container);max-width:120px;box-shadow:var(--td-shadow-2);z-index:20;display:none;position:absolute;top:28px;left:50%;transform:translate(-50%)}.t-breadcrumb__option-item{font:var(--td-font-body-medium);color:var(--td-text-color-primary);text-overflow:ellipsis;white-space:nowrap;padding:8px;overflow:hidden}.t-breadcrumb__option-item:hover,.t-breadcrumb__option-item.t-is-active{color:var(--td-brand-color)}.t-breadcrumb__inner-msg{width:300px;color:var(--td-text-color-primary);background:var(--td-bg-color-container);border-radius:calc(var(--td-radius-default) * .5);box-shadow:var(--td-shadow-2);z-index:20;padding:8px;display:none;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.t-breadcrumb__inner-msg:before{content:"";border-style:solid;border-width:8px 6px 0;border-color:var(--td-bg-color-container) transparent transparent transparent;z-index:20;width:0;height:0;margin-left:-4px;position:absolute;bottom:-8px;left:50%}.t-breadcrumb--text-overflow{align-items:center;display:flex;position:relative}.t-breadcrumb--text-overflow:hover .t-breadcrumb__inner-msg{display:block}.t-breadcrumb--text-overflow .t-breadcrumb__inner{align-items:center;max-width:120px;transition:color .2s linear;display:flex}.t-breadcrumb--text-overflow .t-breadcrumb__inner-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.t-breadcrumb--text-overflow .t-breadcrumb__inner:hover{color:var(--td-brand-color);cursor:pointer}.t-breadcrumb--text-overflow .t-breadcrumb__inner:active{animation:.2s linear changeColor}.t-dropdown{font:var(--td-font-body-medium);box-sizing:border-box;background-color:var(--td-bg-color-container);font-size:var(--td-font-size-body-medium);color:var(--td-text-color-primary);box-shadow:var(--td-shadow-2);border:.5px solid var(--td-component-border);border-radius:var(--td-radius-medium);margin:0;padding:0;list-style:none;position:relative}.t-dropdown__menu{border-radius:var(--td-radius-medium);padding:var(--td-pop-padding-m);flex-direction:column;justify-content:flex-start;gap:2px;display:flex;overflow:hidden auto}@-moz-document url-prefix(){.t-dropdown__menu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__menu::-webkit-scrollbar{width:8px;height:8px}.t-dropdown__menu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid #0000;border-radius:15px}.t-dropdown__menu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__menu::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__menu .t-divider{margin:var(--td-comp-margin-xs) var(--td-comp-margin-s) var(--td-comp-margin-xxs) var(--td-comp-margin-s);color:var(--td-brand-color-light);width:calc(100% - var(--td-comp-margin-s) * 2)}.t-dropdown__menu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--right{left:calc(100% - 14px)}.t-dropdown__menu--overflow .t-dropdown__submenu-wrapper--left{right:calc(100% - 14px)}.t-dropdown__submenu{background-color:var(--td-bg-color-container);box-shadow:var(--td-shadow-2);border-radius:var(--td-radius-medium);border:.5px solid var(--td-component-border);z-index:1100;padding:var(--td-pop-padding-m);display:none;position:absolute;overflow:visible auto}@-moz-document url-prefix(){.t-dropdown__submenu{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dropdown__submenu::-webkit-scrollbar{width:8px;height:8px}.t-dropdown__submenu::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid #0000;border-radius:15px}.t-dropdown__submenu::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__submenu::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-dropdown__submenu ul{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;gap:2px;margin:0;padding:0;list-style:none;display:grid}.t-dropdown__submenu--disabled{visibility:hidden}.t-dropdown__submenu .t-dropdown__item-direction{margin:0 0 0 var(--td-comp-margin-s)}.t-dropdown__submenu-wrapper--right{left:calc(100% - 6px)}.t-dropdown__submenu-wrapper--left{right:calc(100% - 6px)}.t-dropdown__item{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;border-radius:var(--td-radius-default);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;padding:0;padding:calc(var(--td-comp-paddingTB-xs) - 1px) var(--td-comp-paddingLR-s);--ripple-color:var(--td-bg-color-container-active);outline:none;align-items:center;margin:0;list-style:none;transition:background-color .2s cubic-bezier(.82,0,1,.9);display:flex}.t-dropdown__item-icon{color:currentColor;margin-right:var(--td-comp-margin-s);font-size:var(--td-font-size-body-large);display:flex}.t-dropdown__item:hover>div>div{display:flex}.t-dropdown__item--disabled{cursor:not-allowed}.t-dropdown__item-content{flex:1;justify-content:space-between;align-items:center;max-width:100%;display:flex}.t-dropdown__item-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.t-dropdown__item.t-dropdown__item--suffix .t-dropdown__item-sub-icon{color:currentColor;font-size:var(--td-font-size-body-large);flex-shrink:0}.t-dropdown__item--theme-default{color:var(--td-text-color-primary)}.t-dropdown__item--theme-default:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--active{color:var(--td-brand-color);background-color:var(--td-brand-color-light)}.t-dropdown__item--theme-default.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-default.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-default.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-default.t-dropdown__item--suffix:hover{background-color:var(--td-brand-color-light);color:var(--td-brand-color)}.t-dropdown__item--theme-success{color:var(--td-success-color)}.t-dropdown__item--theme-success:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item--active{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-success.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-success.t-dropdown__item-disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-success.t-dropdown__item-disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-success.t-dropdown__item--suffix:hover{background-color:var(--td-success-color-light)}.t-dropdown__item--theme-error{color:var(--td-error-color)}.t-dropdown__item--theme-error:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--active{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-error.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-error.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-error.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-error.t-dropdown__item--suffix:hover{background-color:var(--td-error-color-light)}.t-dropdown__item--theme-warning{color:var(--td-warning-color)}.t-dropdown__item--theme-warning:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--active{background-color:var(--td-warning-color-light)}.t-dropdown__item--theme-warning.t-dropdown__item--active:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--active:active{background-color:var(--td-bg-color-container-active)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled{color:var(--td-text-color-disabled)}.t-dropdown__item--theme-warning.t-dropdown__item--disabled:hover{background-color:var(--td-bg-color-container-hover)}.t-dropdown__item--theme-warning.t-dropdown__item--suffix:hover{background-color:var(--td-warning-color-light)}.t-tabs{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;background-color:var(--td-bg-color-container);margin:0;padding:0;list-style:none;overflow:hidden}.t-tabs__header.t-is-left{float:left}.t-tabs__header.t-is-right{float:right}.t-tabs__header .t-icon{font-size:var(--td-font-size-body-large)}.t-tabs__nav{-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.t-tabs__operations{border-bottom:1px solid var(--td-component-stroke);background-color:var(--td-bg-color-container);flex-direction:row;display:flex;position:absolute}.t-tabs__operations--left{z-index:2;left:0}.t-tabs__operations--right{z-index:2;right:0}.t-tabs__operations--right .t-tabs__btn:first-child{box-shadow:-10px 0 20px 5px #0000000d}.t-tabs__operations--right .t-tabs__nav-action{flex:1;align-items:center;width:100%;display:flex}.t-tabs__btn{background-color:var(--td-bg-color-secondarycontainer);border-left:1px solid var(--td-component-stroke);cursor:pointer;width:40px;height:100%;color:var(--td-text-color-secondary);font:var(--td-font-body-large);z-index:1;opacity:1;justify-content:center;align-items:center;transition:all .24s cubic-bezier(.38,0,.24,1);display:flex}.t-tabs__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__btn--left{border-right:1px solid var(--td-component-stroke);box-shadow:10px 0 20px 5px #0000000d}.t-tabs__btn--left.fade-enter,.t-tabs__btn--left.fade-enter-from,.t-tabs__btn--left.fade-leave-to{transform:translate(-50px)}.t-tabs__btn--right.fade-enter,.t-tabs__btn--right.fade-enter-from,.t-tabs__btn--right.fade-leave-to{transform:translate(50px)}.t-tabs__nav-container{position:relative}.t-tabs__nav-container.t-is-top:after{content:"";background-color:var(--td-component-stroke);width:100%;height:1px;position:absolute;inset:auto auto 0 0}.t-tabs__nav-container.t-is-bottom:after{content:"";background-color:var(--td-component-stroke);width:100%;height:1px;position:absolute;inset:0 auto auto 0}.t-tabs__nav-container.t-is-left:after{content:"";background-color:var(--td-component-stroke);width:1px;height:100%;position:absolute;inset:0 0 auto auto}.t-tabs__nav-container.t-is-right:after{content:"";background-color:var(--td-component-stroke);width:1px;height:100%;position:absolute;inset:0 auto auto 0}.t-tabs__nav-container.t-is-addable{margin-right:40px}.t-tabs__nav-container.t-tabs__nav--card:after{content:"";background-color:#0000}.t-tabs__scroll-btn{z-index:1;background-color:var(--td-bg-color-secondarycontainer);text-align:center;border-bottom:1px solid var(--td-component-stroke);cursor:pointer;width:40px;height:100%;color:var(--td-text-color-secondary);font:var(--td-font-body-large);display:block;position:absolute}.t-tabs__scroll-btn.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__scroll-btn.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-scroll{white-space:nowrap;z-index:1;flex:auto;align-self:stretch;display:flex;position:relative;overflow:hidden;transform:translate(0)}.t-tabs__nav-wrap{font-size:0;display:flex;position:relative}.t-tabs__nav-wrap.t-is-smooth{transition:transform .24s cubic-bezier(0,0,.15,1)}.t-tabs__nav-wrap.t-is-vertical{flex-direction:column}.t-tabs__bar{background-color:var(--td-brand-color);z-index:1;border-radius:var(--td-radius-small);transition:all .24s cubic-bezier(.38,0,.24,1);position:absolute}.t-tabs__bar.t-is-top{height:3px;bottom:0;left:0}.t-tabs__bar.t-is-bottom{height:3px;top:0;left:0}.t-tabs__bar.t-is-left{width:3px;top:0;right:0}.t-tabs__bar.t-is-right{width:3px;top:0;left:0}.t-tabs__nav-item{font:var(--td-font-body-medium);color:var(--td-text-color-secondary);z-index:0;cursor:pointer;--ripple-color:var(--td-bg-color-container-active);flex-shrink:0;align-items:center;transition:background-color .2s cubic-bezier(.38,0,.24,1);display:inline-flex;position:relative;overflow:hidden}.t-tabs__nav-item-wrapper{height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-s);margin-left:var(--td-comp-margin-s);margin-right:var(--td-comp-margin-s);border-radius:var(--td-radius-default);--ripple-color:var(--td-bg-color-container-active);align-items:center;transition:background-color .2s cubic-bezier(.38,0,.24,1);display:flex}.t-tabs__nav-item.t-size-l{font:var(--td-font-body-large)}.t-tabs__nav-item.t-size-l .t-tabs__nav-item-wrapper{height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m)}.t-tabs__nav-item-text-wrapper{align-items:center;display:flex;position:relative}.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover .t-tabs__nav-item-wrapper{background-color:var(--td-bg-color-container-hover)}.t-tabs__nav-item.t-is-left,.t-tabs__nav-item.t-is-right{align-items:center;display:flex}.t-tabs__nav-item.t-size-m{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl)}.t-tabs__nav-item.t-size-l{height:var(--td-comp-size-xxxxl);line-height:var(--td-comp-size-xxxxl)}.t-tabs__nav-item.t-is-active{color:var(--td-brand-color);text-shadow:0 0 .3px}.t-tabs__nav-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-tabs__nav-item>.remove-btn{margin-left:var(--td-comp-margin-s);transition:all .3s cubic-bezier(.645,.045,.355,1);display:flex}.t-tabs__nav--card{background-color:var(--td-bg-color-secondarycontainer)}.t-tabs__nav--card.t-tabs__nav-item{padding-right:var(--td-comp-paddingLR-l);padding-left:var(--td-comp-paddingLR-l);border-bottom:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item:after{display:none}.t-tabs__nav--card.t-tabs__nav-item:not(.t-is-disabled):not(.t-is-active):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-tabs__nav--card.t-tabs__nav-item:not(:first-of-type){border-left:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item:last-of-type{border-right:1px solid var(--td-component-stroke)}.t-tabs__nav--card.t-tabs__nav-item.t-is-active{color:var(--td-brand-color);background-color:var(--td-bg-color-container);border-bottom-color:var(--td-bg-color-container)}.t-tabs__nav--card.t-tabs__nav-item.t-size-l{padding-left:var(--td-comp-paddingLR-xl);padding-right:var(--td-comp-paddingLR-xl)}.t-tabs__nav--card .t-icon-close{color:var(--td-text-color-secondary);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tabs__nav--card .t-icon-close:hover{color:var(--td-text-color-primary)}.t-tabs__content{position:relative;overflow:hidden}.t-tab-panel.t-is-hidden{display:none}a.t-menu__item{color:unset;text-decoration:none}a.t-menu__item:hover,a.t-menu__item:active{color:inherit}.t-menu__logo>*{margin-left:var(--td-comp-margin-xxl)}.t-head-menu{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;background-color:var(--td-bg-color-container);white-space:nowrap;width:100%;margin:0;padding:0;list-style:none;position:relative;overflow:hidden}.t-head-menu__inner{height:var(--td-comp-size-xxxl);display:flex}.t-head-menu__inner li+li{margin-left:var(--td-comp-margin-s)}.t-head-menu__inner .t-menu:first-child{margin-left:var(--td-comp-margin-xxl)}.t-head-menu .t-menu__logo:not(:empty){height:100%;margin-right:var(--td-comp-margin-xxxl)}.t-head-menu .t-menu{flex:1;align-items:center;display:flex}.t-head-menu .t-menu__operations:not(:empty){height:var(--td-comp-size-xxxl);text-align:right;margin-right:var(--td-comp-margin-s);flex-shrink:0;align-items:center;line-height:64px;display:flex;position:relative;overflow:hidden}.t-head-menu .t-menu__operations-icon{width:var(--td-comp-size-m);height:var(--td-comp-size-m);padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);line-height:var(--td-comp-size-m);box-sizing:border-box}.t-head-menu .t-menu__item{height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-m);justify-content:center;gap:var(--td-comp-margin-s);transition:all .28s cubic-bezier(.645,.045,.355,1)}.t-head-menu .t-menu__item .t-icon{font-size:var(--td-font-size-body-large)}.t-head-menu__submenu{border-top:1px solid var(--td-component-stroke);padding-left:0}.t-default-menu{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;background:var(--td-bg-color-container);white-space:nowrap;width:232px;margin:0;padding:0;list-style:none;transition:width .28s cubic-bezier(.645,.045,.355,1);display:inline-block;position:relative}.t-default-menu .t-menu__item{color:var(--td-text-color-secondary)}.t-default-menu.t-is-collapsed{width:64px}.t-default-menu.t-is-collapsed .t-menu__logo>*{margin-left:var(--td-comp-margin-l)}.t-default-menu.t-is-collapsed .t-menu .t-menu__item{justify-content:center;padding:0 14px}.t-default-menu.t-is-collapsed .t-menu .t-menu__item .t-menu__item-link{opacity:0;content:"";margin-left:0;position:absolute;inset:0}.t-default-menu.t-is-collapsed .t-fake-arrow{display:none}.t-default-menu.t-is-collapsed .t-menu__item{text-overflow:initial}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{color:var(--td-brand-color);background-color:var(--td-brand-color-light)}.t-default-menu.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-brand-color)}.t-default-menu.t-is-collapsed .t-menu__item.t-menu__item--plain:after{content:""}.t-default-menu.t-is-collapsed .t-menu__item>.t-menu__content{display:none}.t-default-menu.t-is-collapsed .t-menu__item .t-icon{margin-right:initial}.t-default-menu.t-is-collapsed .t-submenu-icon{display:none}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item{min-width:initial}.t-default-menu.t-is-collapsed .t-submenu>.t-menu__item:after{content:"";width:20px;display:block;position:absolute;top:0;bottom:0;right:-20px}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title{display:none}.t-default-menu.t-is-collapsed .t-menu-group:first-child .t-menu-group__title+*{margin-top:0}.t-default-menu.t-is-collapsed .t-menu-group__title{padding:0;font-size:0}.t-default-menu.t-is-collapsed .t-menu-group__title:after{content:"";background:var(--td-component-stroke);width:20px;height:1px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.t-default-menu.t-is-collapsed .t-menu__operations{text-align:center}.t-default-menu.t-is-collapsed .t-menu__operations-icon{display:block}.t-default-menu.t-is-collapsed .t-menu__log>*{margin:0 auto}.t-default-menu__inner{flex-direction:column;height:100%;display:flex}.t-default-menu__inner .t-menu__logo:not(:empty){box-sizing:border-box;width:100%;height:var(--td-comp-size-xxxl);border-bottom:1px solid var(--td-component-stroke)}.t-default-menu__inner .t-menu{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-s);flex:1;position:relative}.t-default-menu__inner .t-menu--scroll{overflow:hidden auto}@-moz-document url-prefix(){.t-default-menu__inner .t-menu--scroll{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar{width:6px;height:6px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-default-menu__inner .t-menu--scroll::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-default-menu__inner .t-menu>:not(.t-menu-group):not(:first-child),.t-default-menu__inner .t-menu .t-menu-group>:not(:first-child),.t-default-menu__inner .t-menu .t-menu__sub>:not(:first-child),.t-default-menu__inner .t-menu .t-submenu>:not(:first-child){margin-top:var(--td-comp-margin-xs)}.t-default-menu__inner .t-menu-group__title{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);color:var(--td-text-color-placeholder);font-size:var(--td-font-body-small);box-sizing:border-box;position:relative}.t-default-menu .t-submenu{position:relative}.t-default-menu .t-menu__operations:not(:empty){width:100%;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l);text-align:left;border-top:solid 1px var(--td-component-stroke);box-sizing:border-box;position:relative;top:0;left:0}.t-default-menu .t-menu__operations-icon{width:32px;height:32px;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);cursor:pointer;color:var(--td-text-color-primary);box-sizing:border-box}.t-default-menu .t-menu__item.t-is-opened{color:var(--td-text-color-primary);background-color:unset}.t-default-menu .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-primary)}.t-default-menu .t-menu__sub{padding:0;overflow:hidden}.t-default-menu .t-menu__sub .t-menu__item{padding-left:var(--padding-left,32px)}.t-default-menu .t-slide-down-enter-active .t-menu__sub{height:100%}.t-default-menu .t-menu__item{height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);text-align:left;border-radius:var(--td-radius-default);box-sizing:border-box;border-bottom:0;padding:0 10px 0 16px;transition:background-color .28s cubic-bezier(.38,0,.24,1),padding .28s cubic-bezier(.38,0,.24,1);position:relative}.t-default-menu .t-menu__item .t-icon{width:20px;height:20px;margin-right:var(--td-comp-margin-s);flex-shrink:0}.t-default-menu .t-menu__item .t-fake-arrow{min-width:16px;margin-left:auto}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened){color:var(--td-brand-color);background-color:var(--td-brand-color-light)}.t-default-menu .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-brand-color)}.t-default-menu .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background:var(--td-bg-color-secondarycontainer-hover)}.t-default-menu.t-menu--dark{background:var(--td-gray-color-13)}.t-default-menu.t-menu--dark .t-menu__item{color:var(--td-font-white-2)}.t-default-menu.t-menu--dark .t-menu__logo:not(:empty){border-bottom-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__operations:not(:empty){border-top-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened){color:var(--td-text-color-anti);background-color:var(--td-brand-color)}.t-default-menu.t-menu--dark .t-menu__item.t-is-active:not(.t-is-opened) .t-icon{color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark .t-menu__item.t-is-opened.t-is-active{background-color:#0000}.t-default-menu.t-menu--dark .t-menu-group__title{color:var(--td-font-white-3)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu-group__title:after{background-color:var(--td-gray-color-10)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened{background-color:var(--td-brand-color);color:var(--td-text-color-anti)}.t-default-menu.t-menu--dark.t-is-collapsed .t-menu__item.t-is-active.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu{color:var(--td-text-color-primary);font:var(--td-font-body-medium);margin:0;padding:0;list-style:none}.t-menu--dark{color:var(--td-font-white-2)}.t-menu__logo:not(:empty){align-items:center;display:flex}.t-menu .t-submenu{position:relative}.t-menu .t-submenu.t-is-active>.t-menu__item,.t-menu .t-submenu.t-is-active>.t-menu__item .t-icon{color:var(--td-gray-color-13)}.t-menu .t-submenu .t-submenu-icon{width:16px;height:16px}.t-menu .t-submenu.t-is-opened .t-submenu-icon{transform:scaleY(-1)}.t-menu__spacer:before{content:"";z-index:1;display:block;position:absolute}.t-menu__spacer--left:before{width:16px;top:0;bottom:0;left:-16px}.t-menu__spacer--top:before{height:20px;bottom:-20px;left:0;right:0}.t-menu__spacer--bottom:before{height:20px;top:-20px;left:0;right:0}.t-menu__item{text-align:center;height:40px;color:var(--td-text-color-primary);cursor:pointer;text-overflow:ellipsis;border-radius:var(--td-radius-default);--ripple-color:var(--td-bg-color-container-active);align-items:center;line-height:40px;display:flex;position:relative}.t-menu__item ::selection{background:0 0}.t-menu__item-spacer{overflow:unset}.t-menu__item-spacer:before{content:"";z-index:1;display:block;position:absolute}.t-menu__item-spacer--right:before{width:16px;top:0;bottom:0;right:-16px}.t-menu__item a{color:unset;text-decoration:none}.t-menu__item a.t-menu__item-link{color:unset;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.t-menu__item a.t-menu__item-link:before{content:"";position:absolute;inset:0}.t-menu__item.t-is-active{color:var(--td-brand-color);background-color:var(--td-brand-color-light)}.t-menu__item.t-is-opened{color:var(--td-brand-color)}.t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-bg-color-container-hover)}.t-menu__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-menu__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.t-menu--dark.t-head-menu{background-color:var(--td-gray-color-13)}.t-menu--dark .t-menu__item{color:var(--td-text-color-anti);--ripple-color:var(--td-gray-color-11)}.t-menu--dark .t-menu__item.t-is-active{color:var(--td-text-color-anti);background-color:var(--td-brand-color)}.t-menu--dark .t-menu__item.t-is-opened,.t-menu--dark .t-menu__item.t-is-opened .t-icon{color:var(--td-text-color-anti)}.t-menu--dark .t-menu__item.t-is-disabled{color:var(--td-font-white-4)}.t-menu--dark .t-menu__item:hover:not(.t-is-active):not(.t-is-opened):not(.t-is-disabled){background-color:var(--td-gray-color-10)}.t-menu--dark .t-menu__popup{background:var(--td-gray-color-13);border:solid .5px var(--td-gray-color-10)}.t-menu--dark .t-menu__popup .t-menu__item{color:var(--td-text-color-anti);border-radius:var(--td-radius-default)}.t-menu--dark .t-menu__popup .t-menu__item.t-is-active{color:var(--td-text-color-anti);background-color:var(--td-brand-color)}.t-menu--dark .t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-gray-color-10)}.t-menu--dark .t-head-menu__submenu{border-top:1px solid #0000}.t-menu--dark .t-menu__operations-icon{color:var(--td-bg-color-container)}.t-menu--dark .t-menu__operations-icon:hover{background-color:var(--td-brand-color)}.t-menu__popup{background:var(--td-bg-color-container);z-index:1000;border-radius:var(--td-radius-medium);opacity:0;margin:0;padding:0;list-style:none;overflow:hidden}.t-menu__popup-wrapper{padding:var(--td-pop-padding-m);height:100%;margin:0;list-style:none}@-moz-document url-prefix(){.t-menu__popup-wrapper{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-menu__popup-wrapper::-webkit-scrollbar{width:8px;height:8px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid #0000;border-radius:15px}.t-menu__popup-wrapper::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-menu__popup-wrapper::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-menu__popup .t-fake-arrow{margin-left:auto}.t-menu__popup .t-menu__item{padding-left:var(--td-comp-paddingLR-l);padding-right:var(--td-comp-paddingLR-l)}.t-menu__popup.t-is-vertical{min-width:var(--popup-width,160px)}.t-menu__popup.t-is-horizontal .t-menu__item{white-space:nowrap}.t-menu__popup.t-is-horizontal li+li{margin-top:var(--td-comp-margin-xs)}.t-menu__popup.t-is-opened{opacity:1;overflow:visible;box-shadow:0 5px 5px -3px #0000001a,0 8px 10px 1px #0000000f,0 3px 14px 6px #0000000d}.t-menu__popup .t-menu__item{color:var(--td-text-color-primary);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);gap:var(--td-comp-margin-s)}.t-menu__popup .t-menu__item .t-icon{font-size:var(--td-font-size-body-large)}.t-menu__popup .t-menu__item+.t-menu__item{margin-left:0}.t-menu__popup .t-menu__item:hover:not(.t-is-active){background-color:var(--td-bg-color-container-hover)}.t-menu__popup .t-is-disabled{color:var(--td-text-color-disabled)}.t-menu__operations-icon{margin-right:var(--td-comp-margin-l);border-radius:var(--td-radius-default);color:var(--td-text-color-primary);transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-menu__operations-icon:hover{background-color:var(--td-brand-color-light)}.t-opacity-transition{transition:opacity .28s cubic-bezier(.55,0,.1,1)}.horizontal-collapse-transition .t-submenu__title .t-submenu__icon-arrow{opacity:0;transition:all .2s}.t-menu__popup{top:0;left:calc(0px - var(--td-pop-padding-m))}.t-menu__popup .t-menu__item:not(:first-child),.t-menu__popup .t-submenu:not(:first-child){margin-top:var(--td-comp-margin-xxs)}.t-is-head-menu .t-menu__popup{margin-top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-m)) / 2)!important}.t-is-head-menu .t-menu__popup-overflow{max-height:300px;overflow:hidden auto}.t-menu-is-nested .t-menu__popup{margin-top:calc(0px - var(--td-pop-padding-m))!important}.input-readonly.t-is-readonly{color:var(--td-text-color-primary);background-color:var(--td-bg-color-specialcomponent)}.input-readonly.t-is-readonly .t-input__inner{cursor:pointer}.input-disabled.t-is-disabled{color:var(--td-text-color-disabled);background-color:var(--td-bg-color-component-disabled)}.input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.input-disabled.t-is-disabled .t-input__inner{cursor:not-allowed;color:var(--td-text-color-disabled);text-overflow:initial}.input-disabled.t-is-disabled .t-input__inner::placeholder,.input-disabled.t-is-disabled>.t-input__prefix .t-icon,.input-disabled.t-is-disabled>.t-input__suffix .t-icon,.input-disabled.t-is-disabled>.t-input__prefix .t-icon:hover,.input-disabled.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-tips{font-size:var(--td-font-size-body-small)}.t-tips.t-is-default{color:var(--td-text-color-placeholder)}.t-tips.t-is-error{color:var(--td-error-color)}.t-tips.t-is-warning{color:var(--td-warning-color)}.t-tips.t-is-success{color:var(--td-success-color)}.t-input{height:var(--td-comp-size-m);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;border-color:var(--td-border-level-2-color);padding:0;padding:0 var(--td-comp-paddingLR-s);background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary);font:var(--td-font-body-medium);box-sizing:border-box;outline:none;align-items:center;width:100%;margin:0;list-style:none;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1);display:flex;position:relative;overflow:hidden}.t-input:hover{border-color:var(--td-brand-color)}.t-input:focus{z-index:1;border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-input--borderless:not(.t-input--focused){border-color:#0000;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1)}.t-input--borderless:not(.t-input--focused):hover{border-color:var(--td-component-border);background-color:var(--td-bg-color-container-hover);cursor:pointer}.t-input--borderless:not(.t-input--focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-input--focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);z-index:1}.t-input :focus-visible{outline:none}.t-input__inner{min-width:0;max-width:100%;color:var(--td-text-color-primary);font:inherit;box-sizing:border-box;white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;background-color:#0000;border:none;outline:none;flex:1;padding:0;overflow:hidden}.t-input__inner::placeholder{color:var(--td-text-color-placeholder)}.t-input__inner:placeholder-shown{text-overflow:ellipsis;width:100%}.t-input__inner[type=password]::-ms-reveal{display:none}.t-input__inner[type=search]::-webkit-search-decoration{appearance:none}.t-input__inner[type=search]::-webkit-search-cancel-button{appearance:none}.t-input__inner[type=search]::-webkit-search-results-button{appearance:none}.t-input__inner[type=search]::-webkit-search-results-decoration{appearance:none}.t-input__inner.t-input--soft-hidden{width:0}.t-input__extra{font:var(--td-font-body-small);color:var(--td-text-color-placeholder)}.t-input__status{position:absolute;top:0;right:-24px}.t-input.t-input--suffix>span.t-input__clear{opacity:0;visibility:hidden;transition:border .2s cubic-bezier(.38,0,.24,1),box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s cubic-bezier(.38,0,.24,1)}.t-input.t-input--suffix:hover>span.t-input__clear{opacity:1;visibility:visible}.t-input.t-is-success{border-color:var(--td-success-color)}.t-input.t-is-success:focus,.t-input.t-is-success.t-input--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-input.t-is-success>.t-input__extra{color:var(--td-success-color)}.t-input.t-is-warning{border-color:var(--td-warning-color)}.t-input.t-is-warning:focus,.t-input.t-is-warning.t-input--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-input.t-is-warning>.t-input__extra{color:var(--td-warning-color)}.t-input.t-is-error{border-color:var(--td-error-color)}.t-input.t-is-error:focus,.t-input.t-is-error.t-input--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-input.t-is-error>.t-input__extra{color:var(--td-error-color)}.t-input.t-is-readonly{color:var(--td-text-color-primary);background-color:var(--td-bg-color-specialcomponent)}.t-input.t-is-readonly .t-input__inner{cursor:pointer}.t-input.t-is-disabled{color:var(--td-text-color-disabled);background-color:var(--td-bg-color-component-disabled)}.t-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input.t-is-disabled .t-input__inner{cursor:not-allowed;color:var(--td-text-color-disabled);text-overflow:initial}.t-input.t-is-disabled .t-input__inner::placeholder,.t-input.t-is-disabled>.t-input__prefix .t-icon,.t-input.t-is-disabled>.t-input__suffix .t-icon,.t-input.t-is-disabled>.t-input__prefix .t-icon:hover,.t-input.t-is-disabled>.t-input__suffix .t-icon:hover{color:var(--td-text-color-disabled)}.t-input.t-input--prefix>.t-input__prefix{z-index:2;text-align:center;align-items:center;height:100%;display:flex}.t-input.t-input--prefix>.t-input__prefix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--prefix.t-size-s .t-input__prefix-icon{font-size:var(--td-font-size-body-medium)}.t-input.t-input--prefix.t-size-l .t-input__prefix-icon{font-size:var(--td-font-size-title-large)}.t-input.t-input--suffix>.t-input__suffix{z-index:2;text-align:center;align-items:center;height:100%;display:flex}.t-input.t-input--suffix>.t-input__suffix-icon{font-size:var(--td-font-size-body-large)}.t-input.t-input--suffix.t-size-s .t-input__suffix-icon{font-size:var(--td-font-size-body-medium)}.t-input.t-input--suffix.t-size-l .t-input__suffix-icon{font-size:var(--td-font-size-title-large)}.t-input .t-input__suffix-clear{cursor:pointer}.t-input.t-size-l{height:var(--td-comp-size-xl);font:var(--td-font-body-large);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m)}.t-input.t-size-s{height:var(--td-comp-size-xs);font:var(--td-font-body-small)}.t-input .t-input__prefix>.t-icon,.t-input .t-input__suffix>.t-icon{font-size:inherit}.t-input .t-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-input .t-input__prefix:not(:empty){margin-right:var(--td-comp-margin-s)}.t-input .t-input__suffix>.t-icon{color:var(--td-text-color-placeholder);transition:all .2s linear}.t-input .t-input__suffix>.t-icon:hover{color:var(--td-text-color-secondary);transition:all .2s linear}.t-input .t-input__suffix:not(:empty){margin-left:var(--td-comp-margin-s)}.t-input.t-is-focused .t-input__prefix>.t-icon,.t-input.t-is-focused .t-input__suffix>.t-icon-time,.t-input.t-is-focused .t-input__suffix .t-icon-calendar{color:var(--td-brand-color)}.t-input-group{align-items:stretch;display:inline-flex;position:relative}.t-input-group .t-input__wrap{border-radius:0}.t-input-group .t-input__wrap:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button,.t-input-group .t-select{border-radius:0}.t-input-group .t-button:not(:first-child),.t-input-group .t-select:not(:first-child),.t-input-group .t-input__wrap:not(:first-child) .t-input{margin-left:-1px}.t-input-group .t-input__wrap:first-child .t-input{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-input__wrap:last-child .t-input{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group .t-button:first-child,.t-input-group .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group .t-button:last-child,.t-input-group .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap+.t-input__wrap{margin-left:var(--td-comp-margin-xxxl)}.t-input-group--separate .t-button,.t-input-group--separate .t-select{border-radius:var(--td-radius-default)}.t-input-group--separate .t-button:first-child,.t-input-group--separate .t-select:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-group--separate .t-button:last-child,.t-input-group--separate .t-select:last-child{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-group--separate .t-input__wrap .t-input,.t-input-group--separate .t-input__wrap .t-input:first-child,.t-input-group--separate .t-input__wrap .t-input:last-child{border-radius:var(--td-radius-default)}.t-input-group .t-input__inner,.t-input-group .t-button,.t-input-group .t-select{z-index:0;position:relative}.t-input-group .t-input__inner:hover,.t-input-group .t-button:hover,.t-input-group .t-select:hover,.t-input-group .t-input__inner:focus,.t-input-group .t-button:focus,.t-input-group .t-select:focus,.t-input-group .t-input__inner:active,.t-input-group .t-button:active,.t-input-group .t-select:active{z-index:1}.t-input__wrap{width:100%}.t-input__tips{height:auto;min-height:var(--td-line-height-body-small);font:var(--td-font-body-small);position:absolute}.t-input__tips--default{color:var(--td-text-color-placeholder)}.t-input__tips--success{color:var(--td-success-color)}.t-input__tips--warning{color:var(--td-warning-color)}.t-input__tips--error{color:var(--td-error-color)}.t-align-center>.t-input__inner{text-align:center}.t-align-right>.t-input__inner{text-align:right}.t-input__input-pre{visibility:hidden;white-space:pre;display:block;position:absolute}.t-input--auto-width{width:fit-content;min-width:60px}.t-input--auto-width .t-input{width:fit-content}.t-input__limit-number{font:var(--td-font-body-medium);color:var(--td-text-color-placeholder);background:var(--td-bg-color-specialcomponent)}.t-input__limit-number.t-is-disabled{background:var(--td-bg-color-component-disabled)}.t-input-number{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;padding:0;padding:0 var(--td-comp-size-m);-webkit-user-select:none;user-select:none;width:144px;margin:0;list-style:none;display:inline-block;position:relative}.t-input-number:not(.t-input-number--column)>.t-input-number__decrease+.t-input__wrap{margin-left:var(--td-comp-margin-xs)}.t-input-number input::-webkit-outer-spin-button{appearance:none}.t-input-number input::-webkit-inner-spin-button{appearance:none}.t-input-number input[type=number]{appearance:textfield}.t-input-number>.t-input__tips{position:absolute;left:0}.t-input-number input+.t-input__suffix{margin-left:var(--td-comp-paddingLR-s)}.t-input-number .t-input__prefix{margin-right:var(--td-comp-paddingLR-s)}.t-input-number .t-input{color:var(--td-text-color-primary)}.t-input-number.t-input-number--auto-width{width:auto}.t-input-number.t-input-number--auto-width.t-is-controls-right{width:auto;min-width:auto}.t-input-number.t-input-number--auto-width .t-input__inner{min-width:42px}.t-input-number .t-input-number__decrease,.t-input-number .t-input-number__increase{width:var(--td-comp-size-m);height:var(--td-comp-size-m);border:1px solid var(--td-border-level-2-color);box-sizing:border-box;border-radius:var(--td-radius-default);z-index:1;cursor:pointer;background-color:#0000;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.38,0,.24,1);display:flex;position:absolute;top:0}.t-input-number .t-input-number__decrease:hover:not(.t-is-disabled),.t-input-number .t-input-number__increase:hover:not(.t-is-disabled){color:var(--td-brand-color);border-color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:hover:not(.t-is-disabled) .t-icon,.t-input-number .t-input-number__increase:hover:not(.t-is-disabled) .t-icon{color:var(--td-brand-color)}.t-input-number .t-input-number__decrease:active:not(.t-is-disabled),.t-input-number .t-input-number__increase:active:not(.t-is-disabled){color:var(--td-brand-color);background-color:var(--td-bg-color-container-hover)}.t-input-number .t-input-number__decrease .t-icon,.t-input-number .t-input-number__increase .t-icon{z-index:1;font-size:var(--td-font-size-body-large);color:var(--td-text-color-secondary);position:relative}.t-input-number .t-input-number__decrease.t-is-disabled,.t-input-number .t-input-number__increase.t-is-disabled{color:var(--td-text-color-disabled);cursor:no-drop;background-color:var(--td-bg-color-component-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease.t-is-disabled:hover,.t-input-number .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number .t-input-number__increase.t-is-disabled:hover .t-icon,.t-input-number .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number .t-input-number__decrease{left:0}.t-input-number .t-input-number__increase{right:-8px}.t-input-number.t-is-disabled .t-input{cursor:no-drop;background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-input-number.t-is-disabled .t-input:hover,.t-input-number.t-is-disabled .t-input:focus,.t-input-number.t-is-disabled .t-input:active{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-disabled .t-input-number__decrease,.t-input-number.t-is-disabled .t-input-number__increase{color:var(--td-text-color-disabled);cursor:no-drop;background-color:var(--td-bg-color-component-disabled)}.t-input-number.t-is-disabled .t-input-number__decrease .t-icon,.t-input-number.t-is-disabled .t-input-number__increase .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-size-s{width:120px;padding:0 var(--td-comp-size-xs)}.t-input-number.t-size-s .t-input{font-size:var(--td-font-size-body-small);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-input-number.t-size-s .t-input-number__decrease,.t-input-number.t-size-s .t-input-number__increase{font-size:var(--td-font-size-body-medium);width:var(--td-comp-size-xs);height:var(--td-comp-size-xs)}.t-input-number.t-size-l{width:168px;padding:0 var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl)}.t-input-number.t-size-l .t-input-number__decrease,.t-input-number.t-size-l .t-input-number__increase{width:var(--td-comp-size-xl);height:var(--td-comp-size-xl);font-size:18px}.t-input-number.t-size-l.t-is-controls-right .t-input{height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl);padding-right:calc(var(--td-comp-size-xl) + var(--td-comp-paddingLR-s))}.t-input-number.t-size-l.t-is-controls-right .t-input-number__decrease,.t-input-number.t-size-l.t-is-controls-right .t-input-number__increase{width:var(--td-comp-size-xl);font-size:var(--td-font-size-body-large)}.t-input-number.t-size-l .t-input--prefix{font:var(--td-font-body-large);padding:0 var(--td-comp-paddingLR-m)}.t-input-number.t-input-number--normal{border-radius:var(--td-radius-default);padding:0}.t-input-number.t-input-number--normal.t-is-disabled{cursor:no-drop;color:var(--td-text-color-disabled)}.t-input-number.t-input-number--normal.t-is-disabled:hover .t-input{border-color:var(--td-border-level-2-color)}.t-input-number.t-input-number--normal.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-input-number--normal.t-is-disabled .t-input:focus{box-shadow:none}.t-input-number.t-is-controls-right{width:96px;padding:0}.t-input-number.t-is-controls-right:hover .t-input-number__decrease,.t-input-number.t-is-controls-right:hover .t-input-number__increase{opacity:1;visibility:visible}.t-input-number.t-is-controls-right .t-input{box-sizing:border-box;width:100%;padding-right:calc(var(--td-comp-size-m) + var(--td-comp-paddingLR-s));border-radius:var(--td-radius-default);margin:0}.t-input-number.t-is-controls-right .t-input-number__decrease,.t-input-number.t-is-controls-right .t-input-number__increase{width:var(--td-comp-size-m);height:calc(calc(var(--td-comp-size-m) / 2) - 2px);left:initial;top:initial;background:var(--td-bg-color-secondarycontainer);opacity:0;visibility:hidden;z-index:2;border:0;border-radius:0;right:1px}.t-input-number.t-is-controls-right .t-input-number__decrease .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase .t-icon{font-size:var(--td-font-size-body-small)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover:not(.t-is-disabled),.t-input-number.t-is-controls-right .t-input-number__increase:hover:not(.t-is-disabled){background:var(--td-bg-color-component-hover)}.t-input-number.t-is-controls-right .t-input-number__decrease:hover:not(.t-is-disabled) .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase:hover:not(.t-is-disabled) .t-icon{color:var(--td-text-color-primary)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled{color:var(--td-text-color-disabled);cursor:no-drop;background-color:var(--td-bg-color-component-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled:hover .t-icon,.t-input-number.t-is-controls-right .t-input-number__decrease.t-is-disabled::placeholder,.t-input-number.t-is-controls-right .t-input-number__increase.t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-input-number.t-is-controls-right .t-input-number__increase{border-top-right-radius:calc(var(--td-radius-default) - 1px);top:1px}.t-input-number.t-is-controls-right .t-input-number__decrease{top:calc(calc(calc(var(--td-comp-size-m) / 2) - 2px) + 3px);border-bottom-right-radius:calc(var(--td-radius-default) - 1px)}.t-input-number.t-is-controls-right.t-size-l{width:120px}.t-input-number.t-is-controls-right.t-size-l .t-input-number__increase,.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease{height:calc(calc(var(--td-comp-size-xl) / 2) - 2px)}.t-input-number.t-is-controls-right.t-size-l .t-input-number__decrease{top:calc(calc(calc(var(--td-comp-size-xl) / 2) - 2px) + 3px)}.t-input-number.t-is-controls-right.t-size-s{width:88px}.t-input-number.t-is-controls-right.t-size-s .t-input-number__increase,.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease{height:calc(calc(var(--td-comp-size-xs) / 2) - 2px)}.t-input-number.t-is-controls-right.t-size-s .t-input-number__decrease{top:calc(calc(calc(var(--td-comp-size-xs) / 2) - 2px) + 3px)}.t-input-number--row .t-input__wrap{width:initial;margin-right:var(--td-comp-margin-xs)}.t-input-number--row .t-input-number__increase{right:0}.t-tag{font:var(--td-font-body-medium);color:var(--td-text-color-anti);box-sizing:border-box;padding:0;padding:0px var(--td-comp-paddingLR-s);height:var(--td-comp-size-xs);font:var(--td-font-body-small);border-radius:var(--td-radius-default);white-space:nowrap;border:1px solid #0000;flex-direction:row;align-items:center;margin:0;list-style:none;display:inline-flex}.t-tag .t-icon{margin-right:var(--td-comp-margin-xs);font-size:var(--td-font-size-body-medium);flex-shrink:0}.t-tag .t-tag__icon-close{margin-right:0;margin-left:var(--td-comp-margin-s);font:var(--td-font-body-medium);cursor:pointer;transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tag--default{color:var(--td-text-color-primary);background-color:var(--td-bg-color-component)}.t-tag--default .t-tag__icon-close{color:var(--td-text-color-placeholder)}.t-tag--default .t-tag__icon-close:hover{color:var(--td-text-color-primary)}.t-tag--default:active{cursor:default}.t-tag--default.t-tag--disabled{color:var(--td-text-color-disabled);background-color:var(--td-bg-color-component-disabled);border-color:var(--td-component-border);cursor:not-allowed}.t-tag--default.t-tag--disabled:hover{cursor:not-allowed}.t-tag--default.t-tag--disabled .t-icon:hover{cursor:pointer}.t-tag--default.t-tag--outline{border-color:var(--td-component-border)}.t-tag--default.t-tag--light{background-color:var(--td-bg-color-secondarycontainer)}.t-tag--default.t-tag--light-outline{border-color:var(--td-component-border);background-color:var(--td-bg-color-secondarycontainer)}.t-tag--primary{background-color:var(--td-brand-color)}.t-tag--primary.t-tag--outline{border-color:var(--td-brand-color)}.t-tag--primary.t-tag--light{background-color:var(--td-brand-color-light)}.t-tag--primary.t-tag--light-outline{border-color:var(--td-brand-color);background-color:var(--td-brand-color-light)}.t-tag--primary.t-tag--light,.t-tag--primary.t-tag--outline,.t-tag--primary.t-tag--light-outline{color:var(--td-brand-color)}.t-tag--primary.t-tag--light .t-tag__icon-close:hover,.t-tag--primary.t-tag--outline .t-tag__icon-close:hover,.t-tag--primary.t-tag--light-outline .t-tag__icon-close:hover{color:var(--td-brand-color-hover)}.t-tag--success{background-color:var(--td-success-color)}.t-tag--success.t-tag--outline{border-color:var(--td-success-color)}.t-tag--success.t-tag--light{background-color:var(--td-success-color-light)}.t-tag--success.t-tag--light-outline{border-color:var(--td-success-color);background-color:var(--td-success-color-light)}.t-tag--success.t-tag--light,.t-tag--success.t-tag--outline,.t-tag--success.t-tag--light-outline{color:var(--td-success-color)}.t-tag--success.t-tag--light .t-tag__icon-close:hover,.t-tag--success.t-tag--outline .t-tag__icon-close:hover,.t-tag--success.t-tag--light-outline .t-tag__icon-close:hover{color:var(--td-success-color-hover)}.t-tag--warning{background-color:var(--td-warning-color)}.t-tag--warning.t-tag--outline{border-color:var(--td-warning-color)}.t-tag--warning.t-tag--light{background-color:var(--td-warning-color-light)}.t-tag--warning.t-tag--light-outline{border-color:var(--td-warning-color);background-color:var(--td-warning-color-light)}.t-tag--warning.t-tag--light,.t-tag--warning.t-tag--outline,.t-tag--warning.t-tag--light-outline{color:var(--td-warning-color)}.t-tag--warning.t-tag--light .t-tag__icon-close:hover,.t-tag--warning.t-tag--outline .t-tag__icon-close:hover,.t-tag--warning.t-tag--light-outline .t-tag__icon-close:hover{color:var(--td-warning-color-hover)}.t-tag--danger{background-color:var(--td-error-color)}.t-tag--danger.t-tag--outline{border-color:var(--td-error-color)}.t-tag--danger.t-tag--light{background-color:var(--td-error-color-light)}.t-tag--danger.t-tag--light-outline{border-color:var(--td-error-color);background-color:var(--td-error-color-light)}.t-tag--danger .t-tag__icon-close{fill:var(--td-error-color)}.t-tag--danger .t-tag__icon-close:hover{fill:var(--td-error-color-hover)}.t-tag--danger.t-tag--light,.t-tag--danger.t-tag--outline,.t-tag--danger.t-tag--light-outline{color:var(--td-error-color)}.t-tag--danger.t-tag--light .t-tag__icon-close:hover,.t-tag--danger.t-tag--outline .t-tag__icon-close:hover,.t-tag--danger.t-tag--light-outline .t-tag__icon-close:hover{color:var(--td-error-color-hover)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close{color:var(--td-font-white-2)}.t-tag--dark.t-tag:not(.t-tag--default) .t-tag__icon-close:hover{color:var(--td-font-white-1)}.t-tag.t-tag--outline{background:0 0}.t-tag.t-size-s{padding:0px var(--td-comp-paddingLR-xs);height:var(--td-comp-size-xxs);font:var(--td-font-body-small)}.t-tag.t-size-l{padding:0px var(--td-comp-paddingLR-m);height:var(--td-comp-size-m);font:var(--td-font-body-medium)}.t-tag.t-size-l .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-tag.t-tag--round{border-radius:var(--td-radius-extraLarge)}.t-tag.t-tag--mark{border-radius:0 var(--td-radius-extraLarge) var(--td-radius-extraLarge) 0}.t-tag.t-tag--ellipsis .t-tag--text{white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;display:inline-block;overflow:hidden}.t-tag.t-tag--check:not(.t-tag--disabled){cursor:pointer;transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--dark:not(.t-tag--checked):hover{background-color:var(--td-bg-color-component-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--primary.t-tag--dark.t-tag--checked:hover{background-color:var(--td-brand-color-hover)}.t-tag.t-tag--check:not(.t-tag--disabled).t-tag--default.t-tag--outline:not(.t-tag--checked):hover{color:var(--td-brand-color-hover)}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--dark{background-color:var(--td-brand-color-disabled);cursor:not-allowed}.t-tag--check.t-tag--disabled.t-tag--primary.t-tag--outline{color:var(--td-text-color-disabled);background-color:var(--td-bg-color-component-disabled);border-color:var(--td-text-color-disabled);cursor:not-allowed}.t-check-tag-group .t-tag:not(:last-child){margin-right:var(--td-comp-margin-s)}a .t-tag{cursor:pointer;transition:all .2s linear}a .t-tag:hover{color:var(--td-brand-color);background-color:var(--td-bg-color-component-hover)}a .t-tag:active{color:var(--td-brand-color-active);background-color:var(--td-bg-color-component-active)}.t-icon-loading{animation:1s linear infinite t-spin}.t-tag-input{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-tag-input .t-tag{vertical-align:middle;margin:3px var(--td-comp-margin-xs) 3px 0;animation:.2s ease-in-out t-fade-in}.t-tag-input .t-tag-input__drag_wrapper+.t-tag-input__drag_wrapper{margin-left:var(--td-comp-margin-xs)}.t-tag-input .t-input{min-height:var(--td-comp-size-m);height:fit-content;padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs);overflow:hidden}.t-tag-input .t-input .t-input__suffix-icon{right:var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-s{padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-margin-xs);min-height:var(--td-comp-size-xs)}.t-tag-input .t-input.t-size-s .t-tag{margin:1px var(--td-comp-margin-xs) 1px 0}.t-tag-input .t-input.t-size-l{min-height:var(--td-comp-size-xl);padding:0 var(--td-comp-paddingLR-m) 0 var(--td-comp-margin-s)}.t-tag-input .t-input.t-size-l .t-input__suffix-icon{right:var(--td-comp-margin-m)}.t-tag-input.t-is-empty .t-input__inner{margin-left:var(--td-comp-margin-xs)}.t-tag-input:hover .t-input__inner:not(.t-input--soft-hidden),.t-tag-input .t-input--focused .t-input__inner:not(.t-input--soft-hidden){min-width:20px}.t-tag-input .t-tag-input__prefix{margin-left:var(--td-comp-margin-xs);line-height:1}.t-tag-input .t-tag-input__prefix>.t-icon{color:var(--td-text-color-placeholder)}.t-tag-input .t-input .t-input__prefix:not(:empty){margin-right:0}.t-tag-input.t-input--auto-width .t-input.t-input--focused{padding-right:calc(var(--td-comp-paddingLR-xxl) + var(--td-comp-paddingLR-xxs))}.t-tag-input.t-input--auto-width .t-input__prefix{white-space:nowrap}.t-tag-input .t-input__prefix--scrollable{overflow:auto hidden}@-moz-document url-prefix(){.t-tag-input .t-input__prefix--scrollable{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar{width:6px;height:6px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-tag-input .t-input__prefix--scrollable::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-tag-input__suffix-clear{cursor:pointer}.t-tag-input--drag-sort .t-input__prefix .t-tag{cursor:move}.t-tag-input--break-line:not(.t-is-empty) .t-input{display:block}.t-tag-input--break-line:not(.t-is-empty) .t-input.t-input--prefix>.t-input__prefix{text-align:left;display:inline}.t-tag-input--break-line:not(.t-is-empty) .t-input .t-input__suffix-icon{position:absolute;bottom:0}.t-tag-input--break-line:not(.t-is-empty) .t-input .t-input__suffix:not(.t-input__suffix-icon){bottom:0;right:calc(var(--td-comp-paddingLR-s) + var(--t-tag-input-suffix-icon-width,0px));position:absolute}.t-tag-input--break-line:not(.t-is-empty) .t-input.t-size-l .t-input__suffix:not(.t-input__suffix-icon){right:calc(var(--td-comp-paddingLR-m) + var(--t-tag-input-suffix-icon-width,0px))}.t-tag-input--break-line:not(.t-is-empty) .t-tag-input__prefix{vertical-align:middle}.t-tag-input__prefix{width:max-content;margin-right:var(--td-comp-margin-s);display:inline-block}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-input,.t-tag-input.t-input--auto-width:hover .t-input{padding-right:calc(var(--td-comp-paddingLR-s) + var(--t-tag-input-suffix-width,0px) + var(--t-tag-input-suffix-icon-width,0px))}.t-tag-input--break-line.t-tag-input--with-tag:not(.t-input--auto-width) .t-input.t-size-l,.t-tag-input.t-input--auto-width:hover .t-input.t-size-l{padding-right:calc(var(--td-comp-paddingLR-m) + var(--t-tag-input-suffix-width,0px) + var(--t-tag-input-suffix-icon-width,0px))}.t-tag-input.t-input--auto-width .t-input{padding-right:0}.t-tag-input--max-rows .t-input{max-height:calc(var(--max-rows,1) * (var(--td-comp-size-m) - 2px));overflow-y:scroll}.t-tag-input--max-rows .t-input.t-size-s{max-height:calc(var(--max-rows,1) * var(--td-comp-size-xs))}.t-tag-input--max-rows .t-input.t-size-l{max-height:calc(var(--max-rows,1) * (var(--td-comp-size-xl) - 2px))}.t-select-input{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;vertical-align:middle;width:100%;margin:0;padding:0;list-style:none;display:inline-block}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input{padding-right:var(--td-comp-paddingLR-xl)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-tag-input--with-tag .t-input.t-size-l{padding-right:calc(var(--td-comp-paddingLR-xl) + var(--td-comp-paddingLR-s))}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input{padding-right:var(--td-comp-paddingLR-s)}.t-select-input--multiple .t-input--auto-width.t-tag-input__with-suffix-icon.t-is-empty .t-input.t-size-l{padding-right:var(--td-comp-paddingLR-m)}.t-select-input--borderless .t-input{box-shadow:none;background:0 0;border:1px solid #0000;transition:all .2s linear}.t-select-input--borderless .t-input:hover:not(.t-input--focused){border-color:var(--td-component-border);background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-default)}.t-select-input--borderless .t-input--focused{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus);background-color:var(--td-bg-color-specialcomponent)}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible input{display:inline-block}.t-select-input--borderless.t-select-input--multiple:not(.t-select-input--empty).t-select-input--popup-visible .t-input{background-color:var(--td-bg-color-container-hover)}.t-select-input--borderless.t-tag-input{box-shadow:none;background:0 0;border:0;transition:background-color .2s linear}.t-select-input--borderless.t-tag-input:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-default)}.t-checkbox-group{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;flex-wrap:wrap;gap:16px;margin:0;padding:0;list-style:none;display:inline-flex}.t-checkbox{font:var(--td-font-body-medium);box-sizing:border-box;cursor:pointer;color:var(--td-text-color-primary);align-items:center;margin:0;padding:0;list-style:none;display:inline-flex;position:relative}.t-checkbox+.t-checkbox{margin-left:inherit}.t-checkbox__former{clip:rect(0 0 0 0);appearance:none;border:0;outline:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.t-checkbox__input{vertical-align:middle;border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);background-color:var(--td-bg-color-container);box-sizing:border-box;flex-shrink:0;width:16px;height:16px;display:inline-block;position:relative}.t-checkbox__input:after{content:"";opacity:0;box-sizing:border-box;position:absolute}.t-checkbox__label{vertical-align:middle;font:var(--td-font-body-medium);margin-left:8px;display:inline-block}.t-checkbox:hover .t-checkbox__input{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-checkbox.t-is-checked .t-checkbox__input{border-color:var(--td-brand-color);background-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-checked .t-checkbox__input:after{opacity:1;border:2px solid var(--td-text-color-anti);background:0 0;border-top:0;border-left:0;border-radius:0 0 1px;width:5px;height:9px;top:6px;left:3px;transform:rotate(45deg)scale(1)translate(-50%,-50%)}.t-checkbox.t-is-indeterminate .t-checkbox__input{border-color:var(--td-brand-color);background-color:var(--td-brand-color);transition:background-color .2s cubic-bezier(.82,0,1,.9)}.t-checkbox.t-is-indeterminate .t-checkbox__input:after{opacity:1;border:unset;background-color:var(--td-font-white-1);width:16px;height:4px;top:5px;left:-1px;right:0;transform:scale(.5)}.t-checkbox.t-is-disabled{cursor:not-allowed}.t-checkbox.t-is-disabled .t-checkbox__label{color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled .t-checkbox__input{background-color:var(--td-bg-color-component-disabled)}.t-checkbox.t-is-disabled:hover .t-checkbox__input,.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-checked .t-checkbox__input:after{border-color:var(--td-text-color-disabled)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input{border-color:var(--td-border-level-2-color)}.t-checkbox.t-is-disabled.t-is-indeterminate .t-checkbox__input:after{background-color:var(--td-text-color-disabled)}.t-checkbox:focus-visible:focus-visible{outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs);border-radius:0}@-moz-document url-prefix(){.t-select__dropdown .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-input-adornment{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none;display:flex}.t-input-adornment__prepend .t-input,.t-input-adornment__append .t-input,.t-input-adornment__prepend .t-textarea__inner,.t-input-adornment__append .t-textarea__inner{background-color:#0000}.t-input-adornment__prepend{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-primary);word-break:keep-all;margin-right:-1px}.t-input-adornment__append{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-primary);word-break:keep-all;margin-left:-1px}.t-input-adornment__text{box-sizing:border-box;white-space:nowrap;height:100%;padding:0 var(--td-comp-paddingLR-s);border:1px solid var(--td-border-level-2-color);align-items:center;display:inline-flex}.t-input-adornment>:first-child,.t-input-adornment>:first-child .t-input,.t-input-adornment>:first-child .t-input-adornment__text,.t-input-adornment>:first-child .t-textarea__inner{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-input-adornment>:last-child,.t-input-adornment>:last-child .t-input,.t-input-adornment>:last-child .t-input-adornment__text,.t-input-adornment>:last-child .t-textarea__inner{border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-input-adornment>:not(:last-child):hover{z-index:2}.t-input-adornment>:not(:first-child):not(:last-child) .t-input,.t-input-adornment>:not(:first-child):not(:last-child) .t-textarea__inner{border-radius:0}.t-pagination-mini{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-pagination-mini--outline .t-pagination-mini__prev{z-index:1;border-top-right-radius:0;border-bottom-right-radius:0;position:relative}.t-pagination-mini--outline .t-pagination-mini__current{border-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__current:hover{z-index:1}.t-pagination-mini--outline .t-pagination-mini__next{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;position:relative}.t-pagination-mini--outline .t-pagination-mini__next:hover{z-index:1}.t-pagination{font:var(--td-font-body-medium);color:var(--td-text-color-secondary);box-sizing:border-box;white-space:nowrap;width:100%;-webkit-user-select:none;user-select:none;justify-content:flex-end;align-items:center;margin:0;padding:0;list-style:none;display:flex}.t-pagination.t-is-disabled{color:var(--td-text-color-disabled)}.t-pagination__total{font:var(--td-font-body-medium);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.t-pagination .t-select__wrap{width:auto}.t-pagination__select{margin-right:var(--td-comp-margin-l);height:var(--td-comp-size-m);font-size:var(--td-font-size-body-medium);color:var(--td-text-color-secondary);flex-shrink:0}.t-pagination__btn{cursor:pointer;color:var(--td-text-color-secondary);border-radius:var(--td-radius-default);font:var(--td-font-body-large);width:var(--td-comp-size-m);height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination__btn.t-is-disabled,.t-pagination__btn.t-is-disabled:hover,.t-pagination__btn.t-is-disabled:active{color:var(--td-text-color-disabled);background:0 0}.t-pagination__btn.t-is-disabled{cursor:not-allowed}.t-pagination__btn-prev{margin-right:var(--td-comp-margin-s)}.t-pagination__btn-next{margin-left:var(--td-comp-margin-s)}.t-pagination__btn+.t-pagination__select{margin-right:0}.t-pagination__pager{vertical-align:middle;flex-shrink:0;margin:0;padding:0;list-style:none;display:inline-flex}.t-pagination__pager li:not(:last-child){margin-right:var(--td-comp-margin-s)}.t-pagination__number{border:1px solid var(--td-component-border);text-align:center;border-radius:var(--td-radius-default);cursor:pointer;background-color:var(--td-bg-color-container);box-sizing:border-box;height:var(--td-comp-size-m);min-width:var(--td-comp-size-m);line-height:calc(var(--td-comp-size-m) - 2px);font-size:var(--td-font-body-medium);padding-left:var(--td-comp-paddingLR-xs);padding-right:var(--td-comp-paddingLR-xs);display:inline-block}.t-pagination__number:hover{color:var(--td-brand-color-hover);border-color:var(--td-brand-color-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number:active,.t-pagination__number.t-is-current{background-color:var(--td-brand-color);color:var(--td-text-color-anti);border-color:var(--td-brand-color)}.t-pagination__number.t-is-current.t-is-disabled,.t-pagination__number.t-is-current.t-is-disabled:hover,.t-pagination__number.t-is-current.t-is-disabled:active{background-color:var(--td-brand-color-focus);color:var(--td-text-color-anti);border-color:var(--td-brand-color-focus)}.t-pagination__number.t-is-disabled{cursor:auto;background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled)}.t-pagination__number.t-is-disabled:hover,.t-pagination__number.t-is-disabled:active{background-color:var(--td-bg-color-component-disabled);color:var(--td-text-color-disabled);border-color:var(--td-component-border)}.t-pagination__number--more{border:0;padding:0}.t-pagination__number--more:hover{color:var(--td-text-color-primary);background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination__number--more:active{color:var(--td-text-color-primary);background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination__number--more.t-is-disabled,.t-pagination__number--more.t-is-disabled:hover,.t-pagination__number--more.t-is-disabled:active{background:0 0}.t-pagination__number--more .t-icon-more{color:var(--td-text-color-disabled);transform:rotate(90deg)}.t-pagination__jump{margin-left:var(--td-comp-margin-s);font-size:var(--td-font-body-medium);align-items:center;gap:var(--td-comp-margin-s);background-color:var(--td-bg-color-secondarycontainer);height:var(--td-comp-size-m);padding-left:var(--td-comp-margin-s);border-radius:var(--td-radius-default);flex-shrink:0;display:inline-flex}.t-pagination .t-input-adornment__append{height:calc(var(--td-comp-size-m) - 4px);color:var(--td-text-color-secondary);background-color:#0000;border:none}.t-pagination .t-input-adornment__append .t-input-adornment__text{border:none}.t-pagination .t-input-number{width:56px}.t-pagination .t-input-number .t-input{height:calc(var(--td-comp-size-m) - 4px);border-radius:var(--td-radius-default)}.t-pagination .t-input-number .t-input__inner{text-align:center}.t-pagination.t-size-s{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__jump{height:var(--td-comp-size-xs)}.t-pagination.t-size-s .t-input-adornment__append{height:calc(var(--td-comp-size-xs) - 4px);font:var(--td-font-body-small)}.t-pagination.t-size-s .t-input-number{width:48px}.t-pagination.t-size-s .t-input-number .t-input{height:calc(var(--td-comp-size-xs) - 4px)}.t-pagination.t-size-s .t-pagination__total{font:var(--td-font-body-small)}.t-pagination.t-size-s .t-pagination__select{height:var(--td-comp-size-xs);font-size:var(--td-font-size-body-small)}.t-pagination.t-size-s .t-pagination__number{height:var(--td-comp-size-xs);min-width:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);font-size:var(--td-font-body-small);padding-left:var(--td-comp-paddingLR-xxs);padding-right:var(--td-comp-paddingLR-xxs);border:0}.t-pagination.t-size-s .t-pagination__number:hover:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){color:var(--td-text-color-primary);background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__number:active:not(.t-pagination.t-size-s .t-pagination__number.t-is-current){color:var(--td-text-color-primary);background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination.t-size-s .t-pagination__number.t-is-disabled{color:var(--td-text-color-disabled);background:0 0}.t-pagination.t-size-s .t-pagination__number.t-is-current.t-is-disabled{background-color:var(--td-brand-color-focus);color:var(--td-text-color-anti);border-color:var(--td-brand-color-focus)}.t-pagination.t-size-s .t-pagination__btn{width:var(--td-comp-size-xs);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);background:0 0;border:0}.t-pagination.t-size-s .t-pagination__btn:hover{background-color:var(--td-bg-color-secondarycontainer-hover);transition:all .2s cubic-bezier(.82,0,1,.9)}.t-pagination.t-size-s .t-pagination__btn:active{background-color:var(--td-bg-color-secondarycontainer-active)}.t-pagination.t-size-s .t-pagination__btn.t-is-disabled,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:hover,.t-pagination.t-size-s .t-pagination__btn.t-is-disabled:active{color:var(--td-text-color-disabled);background:0 0}.t-pagination-ie .t-select .t-input__inner{min-width:54px}.default-step-icon{text-align:center;border-radius:var(--td-radius-circle);width:22px;height:22px;font-size:var(--td-font-size-body-large);justify-content:center;align-items:center;display:flex}.t-steps{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;width:100%;margin:0;padding:0;list-style:none;display:flex}.t-steps .t-steps-item{vertical-align:top;margin-right:var(--td-comp-margin-s);flex:1;display:flex;position:relative;overflow:hidden}.t-steps .t-steps-item:last-child{flex:none}.t-steps .t-steps-item__inner{width:fit-content;display:flex;position:relative}.t-steps .t-steps-item__inner.t-steps-item--clickable{cursor:pointer}.t-steps .t-steps-item--finish .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__icon--number{border-color:var(--td-brand-color)}.t-steps .t-steps-item--finish .t-steps-item__title{color:var(--td-text-color-primary);font-weight:400}.t-steps .t-steps-item--finish .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--process .t-steps-item__icon .t-icon{color:var(--td-brand-color)}.t-steps .t-steps-item--process .t-steps-item__icon--number{border-color:var(--td-brand-color);background-color:var(--td-brand-color);color:var(--td-text-color-anti);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__title{color:var(--td-brand-color);font-weight:700}.t-steps .t-steps-item--process .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item--error .t-steps-item__icon .t-icon{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__icon--number{color:var(--td-error-color);border-color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__title{color:var(--td-error-color)}.t-steps .t-steps-item--error .t-steps-item__description{color:var(--td-text-color-secondary)}.t-steps .t-steps-item__icon{vertical-align:top;font-size:var(--td-font-size-body-medium);margin-right:var(--td-comp-margin-s);color:var(--td-text-color-placeholder)}.t-steps .t-steps-item__icon--number{color:var(--td-text-color-placeholder);border:1px solid var(--td-text-color-placeholder);text-align:center;border-radius:var(--td-radius-circle);width:22px;height:22px;font-size:var(--td-font-size-body-large);justify-content:center;align-items:center;display:flex}.t-steps .t-steps-item__icon--finish{border:1px solid var(--td-brand-color);text-align:center;border-radius:var(--td-radius-circle);width:22px;height:22px;font-size:var(--td-font-size-body-large);justify-content:center;align-items:center;display:flex}.t-steps .t-steps-item__icon--error{border:1px solid var(--td-error-color);color:#000;text-align:center;border-radius:var(--td-radius-circle);width:22px;height:22px;font-size:var(--td-font-size-body-large);justify-content:center;align-items:center;display:flex}.t-steps .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps .t-steps-item__title{padding-right:var(--td-comp-margin-s);color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-large);line-height:24px;position:relative}.t-steps .t-steps-item__description{color:var(--td-text-color-placeholder);font-size:var(--td-font-size-body-medium);margin-bottom:var(--td-comp-margin-xs);line-height:22px}.t-steps--line-separator .t-steps-item:before,.t-steps--line-separator .t-steps-item:after,.t-steps--line-separator .t-steps-item__title:after{border-style:solid}.t-steps--dashed-separator .t-steps-item:before,.t-steps--dashed-separator .t-steps-item:after,.t-steps--dashed-separator .t-steps-item__title:after{border-style:dashed}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__title{width:fit-content;margin-bottom:var(--td-comp-margin-xs)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon__number{width:22px;height:22px}.t-steps--horizontal.t-steps--default-anchor .t-steps-item__icon>.t-icon{font-size:calc(var(--td-font-size-body-medium) + 10px)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item:not(:last-child) .t-steps-item__title:after{content:"";border-top:0;border-bottom-width:1px;border-left:0;border-bottom-color:var(--td-text-color-placeholder);width:9999px;display:block;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{content:"^";height:24px;font-size:var(--td-font-size-body-large);color:var(--td-text-color-placeholder);border:0;flex:1;justify-content:center;align-items:flex-end;display:inline-flex;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor .t-steps-item--finish:not(:last-child) .t-steps-item__title:after{border-bottom-width:2px;border-bottom-color:var(--td-brand-color);color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item:not(:last-child) .t-steps-item__title:after{content:"";border-top:0;border-bottom-width:1px;border-left:0;border-bottom-color:var(--td-text-color-placeholder);width:9999px;display:block;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{content:"^";height:24px;font-size:var(--td-font-size-body-large);color:var(--td-text-color-placeholder);border:0;flex:1;justify-content:center;align-items:flex-end;display:inline-flex;transform:rotate(90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child) .t-steps-item__title:after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--process:not(:last-child) .t-steps-item__title:after,.t-steps--horizontal.t-steps--default-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child) .t-steps-item__title:after{border-bottom-width:2px;border-bottom-color:var(--td-brand-color);color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item{overflow:visible}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs);padding-right:0}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__inner{flex-direction:column;align-items:center;display:flex}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);width:8px;height:8px;margin-bottom:var(--td-comp-margin-xs);box-sizing:border-box;flex-shrink:0;display:block;position:relative}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item__content{text-align:center;width:140px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):after{content:"^";font-size:var(--td-font-size-body-large);color:var(--td-text-color-placeholder);border:0;flex:1;justify-content:center;align-items:flex-start;display:inline-flex;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):after{content:"";border-top:0;border-bottom-width:1px;border-left:0;border-bottom-color:var(--td-text-color-placeholder);width:calc(100% - 16px);display:block;position:absolute;top:2.5px;left:78px}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color);border-bottom-color:var(--td-brand-color);border-bottom-width:2px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{content:"^";font-size:var(--td-font-size-body-large);color:var(--td-text-color-placeholder);border:0;flex:1;justify-content:center;align-items:flex-start;display:inline-flex;transform:rotate(90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):after{transform:rotate(-90deg)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):after{content:"";border-top:0;border-bottom-width:1px;border-left:0;border-bottom-color:var(--td-text-color-placeholder);width:calc(100% - 16px);display:block;position:absolute;top:2.5px;left:78px}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item:not(:last-child):not(.t-steps-item--finish):after{border-color:var(--td-text-color-placeholder)}.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--process:not(:last-child):after,.t-steps--horizontal.t-steps--dot-anchor.t-steps--reverse .t-steps-item--finish:not(:last-child):after{color:var(--td-brand-color);border-bottom-color:var(--td-brand-color);border-bottom-width:2px}.t-steps--vertical{flex-direction:column;width:fit-content}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{content:"^";height:calc(100% - 24px);font-size:var(--td-font-size-body-large);color:var(--td-text-color-placeholder);border:0;align-items:center;display:flex;position:absolute;top:24px;left:6px;transform:rotate(180deg)}.t-steps--vertical.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--positive .t-steps-item{padding-bottom:var(--td-comp-margin-xxl);margin-bottom:5px}.t-steps--vertical.t-steps--positive .t-steps-item:not(:last-child):before{content:"";border-top:0;border-left:0;border-right-width:1px;border-right-color:var(--td-text-color-placeholder);height:100%;display:block;position:absolute;top:35px;left:11px}.t-steps--vertical.t-steps--positive .t-steps-item--finish:not(:last-child):before{border-right-width:2px;border-right-color:var(--td-brand-color);color:var(--td-brand-color)}.t-steps--vertical.t-steps--default-anchor .t-steps-item__content{margin-left:0}.t-steps--vertical.t-steps--default-anchor .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item:not(:last-child):before{content:"^";height:calc(100% - 4px);font-size:var(--td-font-size-body-medium);color:var(--td-text-color-placeholder);border:0;align-items:center;display:flex;position:absolute;top:8px;left:0}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child):before{content:"";border-bottom:0;border-left:0;border-right-width:1px;border-right-color:var(--td-text-color-placeholder);height:100%;display:block;position:absolute;top:17px;left:3.5px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color);border-right-color:var(--td-brand-color);border-right-width:2px}.t-steps--vertical.t-steps--dot-anchor.t-steps--positive .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--dot-anchor .t-steps-item .t-steps-item__title{margin-bottom:var(--td-comp-margin-xs)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--finish .t-steps-item__icon{border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--process .t-steps-item__icon{background:var(--td-brand-color);border-color:var(--td-brand-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item--error .t-steps-item__icon{background:var(--td-error-color);border-color:var(--td-error-color)}.t-steps--vertical.t-steps--dot-anchor .t-steps-item__icon{border:2px solid var(--td-text-color-placeholder);border-radius:var(--td-radius-circle);width:8px;height:8px;margin-bottom:var(--td-comp-margin-xs);box-sizing:border-box;flex-shrink:0;display:block;position:relative;top:8px}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{content:"^";height:calc(100% - 24px);font-size:var(--td-font-size-body-large);color:var(--td-text-color-placeholder);border:0;align-items:center;display:flex;position:absolute;top:24px;left:6px;transform:rotate(180deg)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item:not(:last-child):before{margin-top:var(--td-comp-margin-xs);transform:rotate(0)}.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse .t-steps-item{padding-bottom:var(--td-comp-margin-xxl);margin-bottom:5px}.t-steps--vertical.t-steps--reverse .t-steps-item:not(:last-child):before{content:"";border-bottom:0;border-left:0;border-right-width:1px;border-right-color:var(--td-text-color-placeholder);height:100%;display:block;position:absolute;top:35px;left:11px}.t-steps--vertical.t-steps--reverse .t-steps-item--process:not(:last-child):before,.t-steps--vertical.t-steps--reverse .t-steps-item--finish:not(:last-child):before{border-right-width:2px;border-right-color:var(--td-brand-color);color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item:not(:last-child):before{content:"^";height:calc(100% - 4px);font-size:var(--td-font-size-body-medium);color:var(--td-text-color-placeholder);border:0;align-items:center;display:flex;position:absolute;top:8px;left:0}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--process:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor.t-steps--arrow-separator .t-steps-item--finish:not(:last-child):before{color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item{margin-bottom:0}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child):before{content:"";border-bottom:0;border-left:0;border-right-width:1px;border-right-color:var(--td-text-color-placeholder);height:100%;display:block;position:absolute;top:17px;left:3.5px}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:last-child:before{display:none}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--process:not(:last-child):before,.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item--finish:not(:last-child):before{border-right-width:2px;border-right-color:var(--td-brand-color);color:var(--td-brand-color)}.t-steps--vertical.t-steps--reverse.t-steps--dot-anchor .t-steps-item:not(:last-child).t-steps-item--default:before{border-color:var(--td-text-color-placeholder)}.t-sticky-tool{opacity:1;box-sizing:border-box;background-color:var(--td-bg-color-container);border:.5px solid var(--td-component-border);box-shadow:var(--td-shadow-3);position:fixed}.t-sticky-tool-popup-content{box-shadow:var(--td-shadow-3);font-size:var(--td-font-size-body-small);color:var(--td-text-color-secondary)}.t-sticky-tool .t-sticky-item{opacity:1;margin:var(--td-comp-margin-xs);text-align:center;font-size:var(--td-font-size-body-small);color:var(--td-text-color-secondary);transition:background-color .2s linear;position:relative}.t-sticky-tool .t-sticky-item:hover{cursor:pointer;background-color:var(--td-bg-color-container-hover)}.t-sticky-tool .t-sticky-item--normal{width:var(--td-comp-size-xxxl);height:var(--td-comp-size-xxxl)}.t-sticky-tool .t-sticky-item--normal .t-icon{width:24px;height:24px;margin:var(--td-comp-margin-s) var(--td-comp-margin-l) 0 var(--td-comp-margin-l);color:var(--td-text-color-primary)}.t-sticky-tool .t-sticky-item--compact{width:var(--td-comp-size-xl);height:var(--td-comp-size-xl)}.t-sticky-tool .t-sticky-item--compact .t-icon{width:24px;height:24px;margin:var(--td-comp-margin-s);color:var(--td-text-color-primary)}.t-sticky-tool .t-sticky-item--square{border-radius:var(--td-radius-default)}.t-sticky-tool .t-sticky-item--round{border-radius:var(--td-radius-circle)}.t-sticky-tool .t-sticky-item .t-sticky-item__label{width:100%;height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);margin-top:var(--td-comp-margin-xxs);text-align:center}.t-sticky-tool--square{border-radius:var(--td-radius-medium)}.t-sticky-tool--round{border-radius:var(--td-radius-round)}.t-back-top{z-index:300;cursor:pointer;vertical-align:middle;white-space:nowrap;touch-action:manipulation;box-shadow:var(--td-shadow-3);visibility:hidden;opacity:0;color:var(--td-text-color-primary);background-color:#0000;border:.5px solid #0000;outline:none;flex-direction:column;justify-content:center;align-items:center;transition:background .2s linear,border .2s linear,color .2s linear,opacity .2s linear,visibility .2s linear;display:inline-flex;position:fixed;overflow:hidden}.t-back-top__text{font:var(--td-font-body-small);text-align:center;margin-top:var(--td-comp-margin-xxs)}.t-back-top__icon{font-size:var(--td-font-headline-small)}.t-back-top.t-size-m .t-back-top__icon{margin-top:2px}.t-back-top--show{visibility:visible;opacity:1}.t-back-top--theme-light{border-color:var(--td-component-border);background-color:var(--td-bg-color-container)}.t-back-top--theme-light:hover{border-color:var(--td-bg-color-container-hover);background-color:var(--td-bg-color-container-hover)}.t-back-top--theme-light .t-back-top__text{color:var(--td-text-color-secondary)}.t-back-top--theme-light .t-back-top__icon{color:var(--td-text-color-primary)}.t-back-top--theme-primary{border-color:var(--td-brand-color);background-color:var(--td-brand-color)}.t-back-top--theme-primary:hover{border-color:var(--td-brand-color-hover);background-color:var(--td-brand-color-hover)}.t-back-top--theme-primary .t-back-top__text,.t-back-top--theme-primary .t-back-top__icon{color:var(--td-text-color-anti)}.t-back-top--theme-dark{background-color:#000000e6;border-color:#000000e6}.t-back-top--theme-dark:hover{background-color:#0009;border-color:#0009}.t-back-top--theme-dark .t-back-top__text,.t-back-top--theme-dark .t-back-top__icon{color:var(--td-text-color-anti)}.t-back-top.t-size-s{width:var(--td-comp-size-xxl);height:var(--td-comp-size-xxl)}.t-back-top.t-size-s .t-back-top__text{display:none}.t-back-top.t-size-m{width:var(--td-comp-size-xxxxl);height:var(--td-comp-size-xxxxl)}.t-back-top.t-size-m .t-back-top__text{display:block}.t-back-top--circle{border-radius:var(--td-radius-circle)}.t-back-top--square{border-radius:var(--td-radius-medium)}.t-select__wrap{width:100%}.t-select__dropdown .t-popup__content{margin:var(--td-comp-paddingTB-s) 0;overscroll-behavior:contain;max-height:300px;box-shadow:var(--td-shadow-2);padding:0;overflow-y:auto}@-moz-document url-prefix(){.t-select__dropdown .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-select__dropdown .t-popup__content::-webkit-scrollbar{width:8px;height:8px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid #0000;border-radius:15px}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-select__dropdown-inner{min-height:var(--td-comp-size-m)}.t-select__dropdown-inner .t-select__list .t-select__list{padding:0}.t-select__dropdown-inner .t-select__list,.t-select__dropdown-inner .t-tree{padding:var(--td-pop-padding-m)}.t-select__dropdown-inner--size-s{min-height:var(--td-comp-size-xs)}.t-select__dropdown-inner--size-s .t-select__list,.t-select__dropdown-inner--size-s .t-tree{padding:var(--td-pop-padding-s)}.t-select__dropdown-inner--size-l{min-height:var(--td-comp-size-xl)}.t-select__dropdown-inner--size-l .t-select__list,.t-select__dropdown-inner--size-l .t-tree{padding:var(--td-pop-padding-l)}.t-select__list{margin:0;padding:0;list-style:none}.t-select__dropdown.t-popup{padding:0}.t-select__empty.t-size-s{line-height:var(--td-comp-size-xs)}.t-select__empty{text-align:center;color:var(--td-text-color-disabled);line-height:var(--td-comp-size-m);padding:0 var(--td-comp-paddingLR-s)}.t-select__empty.t-size-l{line-height:var(--td-comp-size-xl)}.t-select__loading-tips.t-size-s{min-height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-select__loading-tips{top:var(--td-comp-paddingTB-s);left:0;bottom:var(--td-comp-paddingTB-s);background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);min-height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);color:var(--td-text-color-disabled);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;right:0}.t-select__loading-tips.t-size-l{min-height:var(--td-comp-size-xl);line-height:var(--td-comp-size-xl)}.t-select-option-group+.t-select-option-group{padding-top:var(--td-comp-margin-xs);margin-top:var(--td-comp-margin-xs)}.t-select-option-group__divider+.t-select-option-group__divider{position:relative}.t-select-option-group__divider+.t-select-option-group__divider:before{content:"";width:100%;height:1px;padding:0 var(--td-comp-paddingLR-s);box-sizing:border-box;background-color:var(--td-border-level-1-color);background-clip:content-box;position:absolute;top:0;left:0}ul.t-select-option-group__header,.t-select-option-group__header{color:var(--td-text-color-placeholder);height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);padding:0 var(--td-comp-paddingLR-s);box-sizing:border-box;white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;display:block;overflow:hidden}.t-select-option-group__header.t-size-l{height:var(--td-comp-size-l);line-height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m)}.t-select-option-group__header.t-size-s{height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s)}.t-select-option{border-radius:var(--td-radius-default);height:var(--td-comp-size-s);font:var(--td-font-body-medium);cursor:pointer;padding:0 var(--td-comp-paddingLR-s);color:var(--td-text-color-primary);box-sizing:border-box;--ripple-color:var(--td-bg-color-container-active);align-items:center;transition:background-color .2s cubic-bezier(.38,0,.24,1);display:flex}.t-select-option>span{white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;display:block;position:relative;overflow:hidden}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover{background-color:var(--td-bg-color-container-hover)}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__label{color:inherit}.t-select-option:not(.t-is-disabled):not(.t-is-selected):hover .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option .t-checkbox__label{color:var(--td-text-color-primary);white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;flex:1;overflow:hidden}.t-select-option .t-checkbox{width:100%}.t-select-option.t-is-disabled{cursor:not-allowed;color:var(--td-text-color-disabled);background:var(--td-bg-color-specialcomponent)}.t-select-option.t-is-disabled:hover,.t-select-option.t-is-disabled :active{background:var(--td-bg-color-specialcomponent)}.t-select-option.t-size-l{height:var(--td-comp-size-l);padding:0 var(--td-comp-paddingLR-m);font:var(--td-font-body-large)}.t-select-option.t-size-m{font:var(--td-font-body-medium)}.t-select-option.t-size-s{height:var(--td-comp-size-xxs);padding:0 var(--td-comp-paddingLR-s);font:var(--td-font-body-small)}.t-select-option.t-is-selected:not(.t-is-disabled){color:var(--td-brand-color);background-color:var(--td-brand-color-light);transition:all .2s linear}.t-select-option.t-is-selected:not(.t-is-disabled) .t-checkbox__label{color:var(--td-brand-color)}.t-select-option.t-is-selected:not(.t-is-disabled):hover{background-color:var(--td-brand-color-light)}.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected),.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected),.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected),.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected){background-color:var(--td-bg-color-container-hover)}.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option__hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option__hover:not(.t-is-selected) .t-checkbox__input,.t-select-option.t-select-option--hover:not(.t-is-disabled).t-select-option.t-select-option--hover:not(.t-is-selected) .t-checkbox__input{border-color:var(--td-brand-color)}.t-select-option.t-select-option__hover .t-checkbox__label,.t-select-option.t-select-option--hover .t-checkbox__label{color:inherit}.t-select-option+.t-select-option{margin-top:var(--td-comp-paddingTB-xxs)}.t-select.t-select-input--borderless .t-select__right-icon{margin:0;position:relative}.t-select .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-select .t-fake-arrow--active{color:var(--td-brand-color)}.t-is-selected.t-select-option__hover{background-color:var(--td-brand-color-light-hover)}.t-is-selected.t-select-option__hover .t-checkbox__label,.t-select-option__highlight-item .t-is-highlight{color:var(--td-brand-color)}.t-auto-complete{width:100%}.t-auto-complete .t-input__suffix-clear{display:none}.t-auto-complete:hover .t-input__suffix-clear{display:inline-block}.t-auto-complete__panel--empty{height:var(--td-comp-size-m);line-height:var(--td-comp-size-m);color:var(--td-text-color-disabled);text-align:center}.t-cascader .t-fake-arrow{color:var(--td-text-color-placeholder)}.t-cascader .t-fake-arrow--active{color:var(--td-brand-color)}.t-cascader__popup .t-popup__content{box-shadow:var(--td-shadow-2);border-radius:var(--td-radius-medium);border:.5px solid var(--td-component-border);padding:0;overflow:hidden}.t-cascader__panel{height:100%;display:flex}.t-cascader__panel.t-cascader--normal{height:200px}.t-cascader__panel.t-cascader--multiple{height:280px}.t-cascader__panel--empty{width:100%;height:var(--td-comp-size-s);line-height:var(--td-comp-size-s);color:var(--td-text-color-disabled);margin:var(--td-pop-padding-m);text-align:center;padding-left:0}.t-cascader__panel--empty:hover{cursor:default;background:0 0}.t-cascader__menu{box-sizing:content-box;width:148px;padding:var(--td-pop-padding-m);background:var(--td-bg-color-container);margin:0;overflow:auto}.t-cascader__menu.t-size-l{padding:var(--td-pop-padding-l)}.t-cascader__menu.t-size-s{padding:var(--td-pop-padding-s)}.t-cascader__menu--segment{border-right:1px solid var(--td-component-stroke)}.t-cascader__menu--filter{width:auto;min-width:148px}.t-cascader__item{height:var(--td-comp-size-s);font:var(--td-font-body-medium);color:var(--td-text-color-primary);padding:0 var(--td-comp-paddingLR-s);border-radius:var(--td-radius-default);margin-top:var(--td-comp-margin-xxs);--ripple-color:var(--td-bg-color-container-active);align-items:center;list-style:none;transition:background-color .2s cubic-bezier(.82,0,1,.9);display:flex;position:relative}.t-cascader__item.t-size-s{height:var(--td-comp-size-xs);font:var(--td-font-body-small);padding:0px var(--td-comp-paddingLR-s)}.t-cascader__item.t-size-l{height:var(--td-comp-size-m);font:var(--td-font-body-large);padding:0 var(--td-comp-paddingLR-m)}.t-cascader__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed;background-color:#0000}.t-cascader__item-icon.t-icon{height:100%;color:var(--td-text-color-placeholder);background:0 0;margin:0 8px;font-size:16px;position:absolute;top:0;right:0}.t-cascader__item-icon.t-loading{color:var(--td-text-color-brand);display:flex}.t-cascader__item.t-is-expanded{background:var(--td-brand-color-light);color:var(--td-text-color-brand)}.t-cascader__item.t-is-expanded .t-icon-chevron-right{color:var(--td-text-color-brand)}.t-cascader__item.t-is-expanded:hover{cursor:pointer}.t-cascader__item:first-child{margin-top:0}.t-cascader__item .t-checkbox{max-width:100%}.t-cascader__item .t-checkbox .t-checkbox__input{flex-shrink:0}.t-cascader__item .t-checkbox .t-checkbox__label{white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;display:block;overflow:hidden}.t-cascader__item .t-checkbox .t-checkbox__label .t-cascader__item__label--filter{color:var(--td-text-color-brand)}.t-cascader__item--with-icon .t-checkbox__label,.t-cascader__item--with-icon .t-cascader__item-label{margin-right:16px}.t-cascader__item--leaf .t-checkbox{width:100%}.t-cascader__item-label{white-space:nowrap;padding:0;display:block;position:relative}.t-cascader__item-label--ellipsis{white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;overflow:hidden}.t-cascader__item-label--filter{color:var(--td-text-color-brand)}.t-cascader__item:hover:not(.t-is-expanded):not(.t-is-disabled){background:var(--td-bg-color-container-hover);cursor:pointer}.t-cascader__item.t-is-selected{color:var(--td-brand-color);background:var(--td-brand-color-light)}.t-cascader__item.t-is-selected .t-checkbox__label{color:var(--td-brand-color)}.t-date-picker,.t-date-range-picker{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none;display:inline-flex}.t-date-picker__header-controller-month-popup>.t-popup__content,.t-date-picker__header-controller-year-popup>.t-popup__content{max-height:160px}.t-date-picker__panel-container>.t-popup__content,.t-date-range-picker__panel-container>.t-popup__content{min-width:280px;padding:0}.t-date-picker__panel,.t-date-range-picker__panel{flex-direction:column;display:flex}.t-date-picker__panel--direction-row,.t-date-range-picker__panel--direction-row{flex-direction:row}.t-date-picker__panel .t-time-picker__panel,.t-date-range-picker__panel .t-time-picker__panel{width:216px}.t-date-picker__panel .t-time-picker__panel-section-body,.t-date-range-picker__panel .t-time-picker__panel-section-body{padding:0}.t-date-picker__panel .t-time-picker__panel-body,.t-date-range-picker__panel .t-time-picker__panel-body{margin:0}.t-date-range-picker__panel--switch-mode .t-time-picker__panel{width:280px}.t-date-range-picker__panel--switch-mode .t-time-picker__panel-section-body{padding:calc(var(--td-pop-padding-xxl) - 1px) var(--td-pop-padding-xl)}.t-date-range-picker__panel--switch-mode .t-time-picker__panel-body{height:248px}.t-date-picker__panel-content,.t-date-range-picker__panel-content,.t-date-range-picker__panel-content-wrapper{display:flex}.t-date-picker__header{justify-content:space-between;align-items:center;gap:var(--td-comp-margin-m);width:100%;display:flex}.t-date-picker__header-controller{gap:var(--td-comp-margin-s);display:inline-flex}.t-date-picker__header-controller .t-date-picker__header-controller-month{width:80px;display:flex}.t-date-picker__header-controller .t-date-picker__header-controller-year{width:78px;display:flex}.t-date-picker__table table{border-collapse:collapse;width:100%}.t-date-picker__table table th{text-align:center;color:var(--td-text-color-secondary);font-weight:400}.t-date-picker__table table td.t-date-picker__cell{text-align:center;font-weight:500}.t-date-picker__table table th,.t-date-picker__table table th.t-date-picker__table-header-cell,.t-date-picker__table table td.t-date-picker__cell{line-height:var(--td-line-height-body-medium);border:0;padding:0}.t-date-picker__table table thead:after,.t-date-picker__table table thead:before{content:"-";line-height:var(--td-comp-margin-xs);color:#0000;display:block}.t-date-picker__table-week-row{cursor:pointer;position:sticky}.t-date-picker__table-week-row .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__table-week-row .t-date-picker__cell:hover .t-date-picker__cell-inner{box-shadow:none;background:0 0}.t-date-picker__table-week-row:after{content:"";left:var(--td-comp-margin-xxxl);right:0;top:calc(var(--td-comp-margin-xs) - 1px);z-index:10;height:var(--td-comp-size-xs);border-radius:var(--td-radius-default);pointer-events:none;transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;position:absolute}.t-date-picker__table-week-row:hover .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row:hover:after{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__table-week-row--active:after{opacity:1;z-index:0;background-color:var(--td-brand-color)}.t-date-picker__table-week-row--active .t-date-picker__cell:first-child .t-date-picker__cell-inner{color:var(--td-brand-color)}.t-date-picker__table-week-row--active .t-date-picker__cell .t-date-picker__cell-inner{color:var(--td-text-color-anti);background:0 0}.t-date-picker__table-week-row--range:after{opacity:1;z-index:0;background-color:var(--td-brand-color-light)}.t-date-picker__table-week-row--range .t-date-picker__cell .t-date-picker__cell-inner{background:0 0}.t-date-picker__footer{padding:var(--td-pop-padding-xl);justify-content:space-between;align-items:flex-start;gap:var(--td-comp-margin-s);display:flex}.t-date-picker__footer--bottom{border-top:1px solid var(--td-component-stroke)}.t-date-picker__footer--top{border-bottom:1px solid var(--td-component-stroke)}.t-date-picker__footer--left{border-right:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--left .t-date-picker__presets{flex-direction:column}.t-date-picker__footer--right{border-left:1px solid var(--td-component-stroke);flex-direction:column}.t-date-picker__footer--right .t-date-picker__presets{flex-direction:column}.t-date-picker__presets{gap:var(--td-comp-margin-s);white-space:nowrap;min-width:var(--td-comp-size-xl);display:flex}.t-date-picker__presets .t-button{cursor:pointer}.t-date-picker__presets a{color:var(--td-brand-color)}.t-date-picker__presets a:hover{color:var(--td-brand-color-hover)}.t-date-picker__panel-time,.t-date-range-picker__panel-time{gap:calc(var(--td-comp-margin-m) / 2);padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs));border-left:1px solid var(--td-component-stroke);flex-direction:column;display:flex}.t-date-picker__panel-time-viewer,.t-date-range-picker__panel-time-viewer{height:var(--td-comp-size-m);line-height:var(--td-line-height-body-medium);color:var(--td-text-color-primary);justify-content:center;align-items:center;display:flex}.t-date-picker__panel-time .t-time-picker__panel-body,.t-date-range-picker__panel-time .t-time-picker__panel-body{margin:0}.t-date-picker__panel-year,.t-date-picker__panel-month,.t-date-picker__panel-quarter,.t-date-picker__panel-week,.t-date-picker__panel-date{padding:var(--td-pop-padding-xl);gap:var(--td-comp-margin-m);box-sizing:border-box;flex-direction:column;min-width:280px;display:flex}.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:before,.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--hover-highlight:after{opacity:1;left:calc(0px - calc(var(--td-comp-size-xs) + var(--td-comp-margin-xxl)))}.t-date-picker__panel-year .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after,.t-date-picker__panel-month .t-date-picker__cell--hover-highlight+.t-date-picker__cell--active:after{opacity:1;left:calc(0px - calc(var(--td-comp-size-xs) + var(--td-comp-margin-xxl)));z-index:5}.t-date-picker__panel-year .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before,.t-date-picker__panel-month .t-date-picker__cell--highlight+.t-date-picker__cell--highlight:before{left:calc(0px - calc(var(--td-comp-size-xs) + var(--td-comp-margin-xxl)))}.t-date-picker__panel-year .t-date-picker__header-controller-year,.t-date-picker__panel-month .t-date-picker__header-controller-year,.t-date-picker__panel-quarter .t-date-picker__header-controller-year{width:130px;display:flex}.t-date-picker__panel-year .t-date-picker__table table tbody,.t-date-picker__panel-month .t-date-picker__table table tbody,.t-date-picker__panel-quarter .t-date-picker__table table tbody{gap:var(--td-comp-margin-m);flex-direction:column;width:100%;display:flex}.t-date-picker__panel-year .t-date-picker__table table tbody tr,.t-date-picker__panel-month .t-date-picker__table table tbody tr,.t-date-picker__panel-quarter .t-date-picker__table table tbody tr{justify-content:space-between;display:flex}.t-date-picker__panel-year .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-month .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before,.t-date-picker__panel-quarter .t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{left:calc(0px - var(--td-comp-size-xxxl))}.t-date-picker__panel-year .t-date-picker__cell:first-child,.t-date-picker__panel-month .t-date-picker__cell:first-child,.t-date-picker__panel-quarter .t-date-picker__cell:first-child{text-align:left}.t-date-picker__panel-year .t-date-picker__cell:nth-child(3),.t-date-picker__panel-month .t-date-picker__cell:nth-child(3),.t-date-picker__panel-quarter .t-date-picker__cell:nth-child(3){text-align:right}.t-date-picker__panel-year .t-date-picker__cell-inner,.t-date-picker__panel-month .t-date-picker__cell-inner,.t-date-picker__panel-quarter .t-date-picker__cell-inner{width:var(--td-comp-size-xxl)}.t-date-picker__cell{cursor:pointer;padding:0;position:relative}.t-date-picker__cell:before,.t-date-picker__cell:after{content:"";z-index:1;opacity:0;border-radius:var(--td-radius-default);height:var(--td-comp-size-xs);transition:opacity .2s cubic-bezier(0,0,.15,1);position:absolute;top:50%;left:-5%;right:-5%;transform:translateY(-50%)}.t-date-picker__cell:hover .t-date-picker__cell-inner{box-shadow:inset 0 0 0 1px var(--td-brand-color)}.t-date-picker__cell-inner{z-index:5;width:var(--td-comp-size-xs);height:var(--td-comp-size-xs);margin:calc(var(--td-comp-margin-xs) - 1px);border-radius:var(--td-radius-default);justify-content:center;align-items:center;transition:box-shadow .2s cubic-bezier(.38,0,.24,1),background-color .2s linear,border-color .2s linear,color .2s linear;display:inline-flex;position:relative}.t-date-picker__cell--now .t-date-picker__cell-inner{color:var(--td-brand-color);background:var(--td-brand-color-light)}.t-date-picker__cell--hover-highlight:after,.t-date-picker__cell--highlight:before{opacity:1;background-color:var(--td-brand-color-light)}.t-date-picker__cell--highlight.t-date-picker__cell--hover-highlight:after{opacity:1;background-color:#0000000f}.t-date-picker__cell--additional:hover .t-date-picker__cell-inner{box-shadow:none;border-color:var(--td-bg-color-container-hover);background-color:var(--td-bg-color-container-hover)}.t-date-picker__cell--additional .t-date-picker__cell-inner{color:var(--td-text-color-disabled)}.t-date-picker__cell--active .t-date-picker__cell-inner{color:var(--td-text-color-anti);background-color:var(--td-brand-color)}.t-date-picker__cell--active-start:before{opacity:1;left:calc(calc(var(--td-comp-margin-xs) - 1px) * 2);border-top-left-radius:var(--td-radius-default);border-bottom-left-radius:var(--td-radius-default)}.t-date-picker__cell--active-start:hover:before{left:-5%}.t-date-picker__cell--active-end:before{opacity:1;right:calc(calc(var(--td-comp-margin-xs) - 1px) * 2);border-top-right-radius:var(--td-radius-default);border-bottom-right-radius:var(--td-radius-default)}.t-date-picker__cell--active-end:hover:before{right:-5%}.t-date-picker__cell--disabled:hover .t-date-picker__cell-inner{box-shadow:none;background-color:var(--td-bg-color-component-disabled)}.t-date-picker__cell--disabled .t-date-picker__cell-inner{cursor:not-allowed;color:var(--td-text-color-disabled);background-color:var(--td-bg-color-component-disabled)}.t-date-picker__cell--disabled+.t-date-picker__cell--disabled:before{opacity:1;left:calc(0px - var(--td-comp-size-l));background-color:var(--td-bg-color-component-disabled);border-radius:var(--td-radius-default)}.t-date-picker__input--placeholder input{color:var(--td-text-color-placeholder)}.flex-center{justify-content:center;align-items:center;display:flex}.t-time-picker,.t-time-range-picker{width:240px;font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;background:0 0;margin:0;padding:0;list-style:none;display:inline-block;position:relative}.t-time-picker.t-is-disabled,.t-time-range-picker.t-is-disabled{cursor:not-allowed}.t-time-picker>:focus,.t-time-range-picker>:focus,.t-time-picker>:active,.t-time-range-picker>:active{outline:0}.t-time-picker__group,.t-time-range-picker__group{position:relative}.t-time-picker__group.active,.t-time-range-picker__group.active{border:1px solid var(--td-brand-color);box-shadow:0 0 2px 2px var(--td-brand-color-focus)}.t-time-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear,.t-time-range-picker__group.active+.t-time-picker__icon-wrap>.t-time-picker__icon-clear{display:block}.t-time-picker__group-text,.t-time-range-picker__group-text{color:var(--td-text-color-primary)}.t-time-picker__group input,.t-time-range-picker__group input{cursor:pointer}.t-time-range-picker{width:auto}.t-time-picker__panel{border-radius:var(--td-radius-default);width:280px;font:var(--td-font-body-medium);--timePickerPanelOffsetTop:15;--timePickerPanelOffsetBottom:21;background:0 0;display:inline-block;position:relative}.t-time-picker__panel-body{width:100%;height:calc(calc(var(--td-comp-size-xs) + var(--td-size-3)) * 7 + var(--td-size-3));-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex;position:relative}.t-time-picker__panel-body-active-mask{height:var(--td-comp-size-xs);width:100%;display:flex;position:absolute;top:50%}.t-time-picker__panel-body-active-mask>div{transform:translateY(calc(0px - (calc(var(--td-comp-size-xs) + var(--td-size-3)) / 2)));height:var(--td-comp-size-xs);background-color:var(--td-brand-color-light);margin:var(--td-size-3) var(--td-comp-margin-xs);border-radius:var(--td-radius-default);flex:1}.t-time-picker__panel-body-scroll{text-align:center;flex:1;height:100%;margin:0;padding:0;list-style:none;position:relative;overflow-y:scroll}.t-time-picker__panel-body-scroll::-webkit-scrollbar{width:0}.t-time-picker__panel-body-scroll:after,.t-time-picker__panel-body-scroll:before{content:"";height:50%;display:block}.t-time-picker__panel-body-scroll:before{height:calc(50% - var(--timePickerPanelOffsetTop,0) * 1px)}.t-time-picker__panel-body-scroll:after{height:calc(50% - var(--timePickerPanelOffsetBottom,0) * 1px)}.t-time-picker__panel-body-scroll:last-child{border-right:0}.t-time-picker__panel-body-scroll-item{height:var(--td-comp-size-xs);font:var(--td-font-body-medium);line-height:var(--td-comp-size-xs);color:var(--td-text-color-secondary);margin:var(--td-size-3) var(--td-comp-margin-xs);border-radius:var(--td-radius-default);text-align:center;cursor:pointer;transition:all .2s linear}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):hover{color:var(--td-text-color-primary)}.t-time-picker__panel-body-scroll-item:not(.t-time-picker__panel-body-scroll-item.t-is-current):not(.t-time-picker__panel-body-scroll-item.t-is-disabled):active{background-color:var(--td-bg-color-container-hover)}.t-time-picker__panel-body-scroll-item.t-is-disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-time-picker__panel-body-scroll-item.t-is-hidden{cursor:not-allowed;display:none}.t-time-picker__panel-body-scroll-item.t-is-current{color:var(--td-brand-color)}.t-time-picker__panel-section-body{padding:var(--td-pop-padding-xl) calc(var(--td-pop-padding-xl) - var(--td-comp-margin-xs))}.t-time-picker__panel-section-footer{border-top:1px solid var(--td-border-level-1-color);box-sizing:border-box;width:100%;padding:var(--td-pop-padding-xl);background-color:#0000;flex-direction:row-reverse;justify-content:space-between;align-items:center;display:flex;position:relative}.range-input-disabled.t-is-disabled{color:var(--td-text-color-disabled);background-color:var(--td-bg-color-component-disabled)}.range-input-disabled.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.range-input-disabled.t-is-disabled .t-range-input__inner{cursor:not-allowed;color:var(--td-text-color-disabled)}.range-input-disabled.t-is-disabled .t-range-input__inner::placeholder,.range-input-disabled.t-is-disabled>.t-range-input__prefix .t-icon,.range-input-disabled.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input{width:100%;font:var(--td-font-body-medium);height:var(--td-comp-size-m);border-radius:var(--td-radius-default);border-style:solid;border-width:1px;border-color:var(--td-border-level-2-color);padding:0;padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s) var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);background-color:var(--td-bg-color-specialcomponent);color:var(--td-text-color-primary);font-size:var(--td-font-body-medium);box-sizing:border-box;flex-direction:column;gap:4px;margin:0;list-style:none;transition:all .2s cubic-bezier(.38,0,.24,1);display:inline-flex;position:relative}.t-range-input:hover{border-color:var(--td-brand-color)}.t-range-input--borderless:not(.t-is-focused){border-color:#0000;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-range-input--borderless:not(.t-is-focused):hover{border-color:var(--td-component-border);cursor:pointer}.t-range-input--borderless:not(.t-is-focused).t-is-disabled{background-color:var(--td-bg-color-component-disabled);border:none}.t-range-input.t-is-focused{z-index:1;border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-range-input.t-is-success{border-color:var(--td-success-color)}.t-range-input.t-is-success:focus,.t-range-input.t-is-success.t-range-input--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-range-input.t-is-success>.t-range-input__extra{color:var(--td-success-color)}.t-range-input.t-is-success>.t-range-input__tips{color:var(--td-success-color);font-size:var(--td-font-size-body-small);margin-left:calc(-1 * var(--td-comp-paddingLR-xs))}.t-range-input.t-is-warning{border-color:var(--td-warning-color)}.t-range-input.t-is-warning:focus,.t-range-input.t-is-warning.t-range-input--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-range-input.t-is-warning>.t-range-input__extra{color:var(--td-warning-color)}.t-range-input.t-is-warning>.t-range-input__tips{color:var(--td-warning-color);font-size:var(--td-font-size-body-small);margin-left:calc(-1 * var(--td-comp-paddingLR-xs))}.t-range-input.t-is-error{border-color:var(--td-error-color)}.t-range-input.t-is-error:focus,.t-range-input.t-is-error.t-range-input--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-range-input.t-is-error>.t-range-input__extra{color:var(--td-error-color)}.t-range-input.t-is-error>.t-range-input__tips{color:var(--td-error-color);font-size:var(--td-font-size-body-small);margin-left:calc(-1 * var(--td-comp-paddingLR-xs))}.t-range-input.t-is-disabled{color:var(--td-text-color-disabled);background-color:var(--td-bg-color-component-disabled)}.t-range-input.t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-range-input.t-is-disabled .t-range-input__inner{cursor:not-allowed;color:var(--td-text-color-disabled)}.t-range-input.t-is-disabled .t-range-input__inner::placeholder,.t-range-input.t-is-disabled>.t-range-input__prefix .t-icon,.t-range-input.t-is-disabled>.t-range-input__suffix .t-icon{color:var(--td-text-color-disabled)}.t-range-input.t-range-input--prefix .t-range-input__prefix,.t-range-input.t-range-input--suffix .t-range-input__suffix{text-align:center;height:100%;font-size:var(--td-font-size-body-medium);align-items:center;display:flex}.t-range-input.t-size-l{height:var(--td-comp-size-xl);font:var(--td-font-body-large);padding-top:var(--td-comp-paddingTB-xs);padding-bottom:var(--td-comp-paddingTB-xs)}.t-range-input.t-size-l .t-input{padding:0 var(--td-comp-margin-s)}.t-range-input.t-size-s{padding:var(--td-comp-paddingTB-xxs) var(--td-comp-margin-xs);height:var(--td-comp-size-xs);font:var(--td-font-body-small)}.t-range-input__inner{align-items:center;gap:var(--td-comp-margin-s);height:100%;display:flex}.t-range-input__inner .t-input__wrap{border-radius:var(--td-radius-small);height:100%}.t-range-input__inner>.t-range-input__prefix{flex-shrink:0}.t-range-input__inner .t-input{padding:0 var(--td-comp-paddingLR-xs);height:100%;box-shadow:none;font-size:inherit;border-radius:var(--td-radius-small);border:0}.t-range-input__inner .t-input:hover{background-color:var(--td-bg-color-container-hover)}.t-range-input__inner .t-input__inner{width:100%;height:100%;line-height:1}.t-range-input__inner .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-range-input__inner .t-input.t-is-disabled:hover{background-color:var(--td-bg-color-component-disabled)}.t-range-input__extra{font:var(--td-font-body-small);color:var(--td-text-color-placeholder)}.t-range-input__status{right:calc(0px - var(--td-comp-margin-xxxl));position:absolute;top:0}.t-range-input.t-range-input--suffix .t-input__clear{opacity:0;visibility:hidden;transition:all .2s cubic-bezier(.38,0,.24,1)}.t-range-input.t-range-input--suffix:hover .t-input__clear{opacity:1;visibility:visible}.t-range-input .t-range-input__suffix-clear{cursor:pointer}.t-range-input__prefix>.t-icon,.t-range-input__suffix>.t-icon{color:var(--td-text-color-placeholder);flex-shrink:0;font-size:16px;transition:color .2s linear}.t-range-input-popup{width:100%}.t-range-input-popup--visible .t-range-input{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-range-input-popup--visible .t-range-input .t-icon-time,.t-range-input-popup--visible .t-range-input .t-icon-calendar{color:var(--td-brand-color)}.t-range-input-popup--visible .t-range-input .t-input.t-is-focused{background-color:var(--td-bg-color-component)}.t-form{color:var(--td-text-color-primary);box-sizing:border-box;font:var(--td-font-body-medium);margin:0;padding:0;list-style:none}.t-form:not(.t-form-inline)>.t-form__item:last-of-type{margin:0}.t-form__item{margin-bottom:var(--td-comp-margin-xxl)}.t-form__item.t-form__item-with-help{margin-bottom:var(--td-comp-margin-xs)}.t-form__item.t-form__item-with-extra{margin-bottom:var(--td-comp-margin-xxl)}.t-form__label{float:left;padding-right:var(--td-comp-paddingLR-xl);vertical-align:middle;line-height:var(--td-comp-margin-xxxl);color:var(--td-text-color-primary);box-sizing:border-box;white-space:nowrap}.t-form__label--top{float:none;min-height:var(--td-comp-margin-xxxl)}.t-form__label--left{text-align:left}.t-form__label--right{text-align:right}.t-form__label--required:not(.t-form__label--required-right) label:before{margin-right:var(--td-comp-margin-xs);color:var(--td-error-color);line-height:var(--td-line-height-body-medium);content:"*";display:inline-block}.t-form__label--required-right label:after{margin-left:var(--td-comp-margin-xs);color:var(--td-error-color);line-height:var(--td-line-height-body-medium);content:"*";display:inline-block}.t-form__label--colon label:after{content:":";margin:0 var(--td-comp-margin-xxs);position:relative}.t-form__controls{min-height:var(--td-comp-margin-xxxl);display:flow-root;position:relative}.t-form__controls-content{min-height:var(--td-comp-margin-xxxl);align-items:center;display:flex}.t-form__controls .t-form__item{margin-bottom:0;margin-right:var(--td-comp-margin-xxl)}.t-form__controls.t-is-success .t-form__status .t-icon,.t-form__controls.t-is-success .t-input__extra,.t-form__controls.t-form--success-border.t-is-success .t-input__extra{color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner{border-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input--focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-icon,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-range-input .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear){color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-success-color)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-textarea__inner.t-is-focused,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-cascader.t-is-active,.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-select.t-is-active{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-form__controls.t-form--success-border.t-is-success .t-form__controls-content .t-form__status .t-icon{color:var(--td-success-color)}.t-form__status{margin:0 var(--td-comp-margin-s);display:flex}.t-form__status>.t-icon{font-size:var(--td-comp-size-xxxs)}.t-form__status-without-icon{width:25px;height:25px}.t-form__status button{width:var(--td-comp-size-m)}.t-form__status button+button{margin-left:var(--td-comp-margin-s)}.t-form-inline{row-gap:var(--td-comp-margin-l);flex-wrap:wrap;display:flex}.t-form-inline .t-form__item{min-width:200px;margin:0;margin-right:var(--td-comp-margin-xxl);display:inline-block}.t-input__extra,.t-input__help{width:100%;height:auto;min-height:var(--td-line-height-body-small);font:var(--td-font-body-small);color:var(--td-text-color-placeholder);margin:0}.t-input__extra{bottom:calc(0px - var(--td-line-height-body-small));text-overflow:ellipsis;white-space:nowrap;max-width:100%;position:absolute;overflow:hidden}.t-is-warning .t-input__extra{color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-input,.t-is-warning .t-form__controls-content .t-select,.t-is-warning .t-form__controls-content .t-radio-button,.t-is-warning .t-form__controls-content .t-cascader,.t-is-warning .t-form__controls-content .t-range-input,.t-is-warning .t-form__controls-content .t-textarea__inner{border-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-input--focused,.t-is-warning .t-form__controls-content .t-select--focused,.t-is-warning .t-form__controls-content .t-radio-button--focused,.t-is-warning .t-form__controls-content .t-cascader--focused,.t-is-warning .t-form__controls-content .t-range-input--focused,.t-is-warning .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-input .t-icon,.t-is-warning .t-form__controls-content .t-select .t-icon,.t-is-warning .t-form__controls-content .t-radio-button .t-icon,.t-is-warning .t-form__controls-content .t-cascader .t-icon,.t-is-warning .t-form__controls-content .t-range-input .t-icon,.t-is-warning .t-form__controls-content .t-textarea__inner .t-icon,.t-is-warning .t-form__controls-content .t-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-select .t-fake-arrow,.t-is-warning .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-warning .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-warning .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-warning .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-warning .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear){color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-warning-color)}.t-is-warning .t-form__controls-content .t-textarea__inner.t-is-focused,.t-is-warning .t-form__controls-content .t-cascader.t-is-active,.t-is-warning .t-form__controls-content .t-select.t-is-active{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-is-warning .t-form__controls-content .t-form__status .t-icon{color:var(--td-warning-color)}.t-is-error .t-input__extra{color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-input,.t-is-error .t-form__controls-content .t-select,.t-is-error .t-form__controls-content .t-radio-button,.t-is-error .t-form__controls-content .t-cascader,.t-is-error .t-form__controls-content .t-range-input,.t-is-error .t-form__controls-content .t-textarea__inner{border-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-input--focused,.t-is-error .t-form__controls-content .t-select--focused,.t-is-error .t-form__controls-content .t-radio-button--focused,.t-is-error .t-form__controls-content .t-cascader--focused,.t-is-error .t-form__controls-content .t-range-input--focused,.t-is-error .t-form__controls-content .t-textarea__inner--focused{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-input .t-icon,.t-is-error .t-form__controls-content .t-select .t-icon,.t-is-error .t-form__controls-content .t-radio-button .t-icon,.t-is-error .t-form__controls-content .t-cascader .t-icon,.t-is-error .t-form__controls-content .t-range-input .t-icon,.t-is-error .t-form__controls-content .t-textarea__inner .t-icon,.t-is-error .t-form__controls-content .t-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-select .t-fake-arrow,.t-is-error .t-form__controls-content .t-radio-button .t-fake-arrow,.t-is-error .t-form__controls-content .t-cascader .t-fake-arrow,.t-is-error .t-form__controls-content .t-range-input .t-fake-arrow,.t-is-error .t-form__controls-content .t-textarea__inner .t-fake-arrow,.t-is-error .t-form__controls-content .t-select>.t-select__right-icon:not(.t-select__right-icon-clear){color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-radio-button:last-child{border-right-color:var(--td-error-color)}.t-is-error .t-form__controls-content .t-textarea__inner.t-is-focused,.t-is-error .t-form__controls-content .t-cascader.t-is-active,.t-is-error .t-form__controls-content .t-select.t-is-active{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-is-error .t-form__controls-content .t-form__status .t-icon{color:var(--td-error-color)}.t-radio-group{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;border-radius:var(--td-radius-default);flex-wrap:wrap;align-items:center;width:fit-content;max-width:100%;margin:0;padding:0;list-style:none;display:inline-flex}@-moz-document url-prefix(){.t-radio-group{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-radio-group::-webkit-scrollbar{width:4px;height:4px}.t-radio-group::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:7px}.t-radio-group::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-radio-group::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-radio-group .t-radio{margin-right:var(--td-comp-margin-xxl)}.t-radio-group.t-radio-group__outline{row-gap:var(--td-comp-margin-xs);flex-wrap:wrap}.t-radio-group.t-radio-group__outline.t-size-s .t-radio-button{height:var(--td-comp-size-xs)}.t-radio-group.t-radio-group__outline.t-size-m .t-radio-button{height:var(--td-comp-size-m)}.t-radio-group.t-radio-group__outline.t-size-l .t-radio-button{height:var(--td-comp-size-xl)}.t-radio-group.t-radio-group__outline .t-radio-button:first-child{border-radius:var(--td-radius-default) 0 0 var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button:last-child{border-right:1px solid;border-right-color:var(--td-border-level-2-color);border-radius:0 var(--td-radius-default) var(--td-radius-default) 0}.t-radio-group.t-radio-group__outline .t-radio-button:only-child{border-radius:var(--td-radius-default)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-checked{color:var(--td-brand-color);border-color:var(--td-brand-color);border-right-color:var(--td-brand-color)}.t-radio-group.t-radio-group__outline .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-brand-color-disabled);border-color:var(--td-brand-color-disabled);background-color:var(--td-bg-color-specialcomponent)}.t-radio-group.t-radio-group--vertical{align-items:flex-start;row-gap:var(--td-comp-margin-xs);flex-direction:column}.t-radio-group.t-radio-group--vertical .t-radio{margin-right:0}.t-radio-group.t-radio-group--vertical.t-radio-group--filled .t-radio-button{width:100%}.t-radio-group.t-radio-group--vertical.t-radio-group--filled .t-radio-button:before{opacity:0}.t-radio-group.t-radio-group--vertical.t-radio-group--filled .t-radio-button:last-child{border:0}.t-radio-group.t-radio-group--vertical.t-radio-group__outline{row-gap:0}.t-radio-group.t-radio-group--vertical.t-radio-group__outline .t-radio-button{border-right:1px solid;border-right-color:var(--td-border-level-2-color);width:100%;margin-top:-1px}.t-radio-group.t-radio-group--vertical.t-radio-group__outline .t-radio-button:first-child{border-radius:var(--td-radius-small) var(--td-radius-small) 0 0;margin-top:0}.t-radio-group.t-radio-group--vertical.t-radio-group__outline .t-radio-button:last-child{border-radius:0 0 var(--td-radius-small) var(--td-radius-small)}.t-radio-group.t-radio-group--vertical.t-radio-group__outline .t-radio-button.t-is-checked{border-color:var(--td-brand-color);border-right-color:var(--td-brand-color);z-index:1}.t-radio-group.t-radio-group--vertical.t-radio-group__outline .t-radio-button.t-is-checked+.t-radio-button{border-left:1px solid;border-left-color:var(--td-border-level-2-color)}.t-radio-group.t-radio-group--filled{border-color:var(--td-bg-color-component);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);border-radius:var(--td-radius-default);background-color:var(--td-bg-color-component);position:relative}.t-radio-group.t-radio-group--filled .t-radio-group__bg-block{background-color:var(--td-bg-color-container-select);border-radius:var(--td-radius-small);width:0;height:calc(100% - 4px);transition:all .2s cubic-bezier(.38,0,.24,1);position:absolute;top:2px;left:2px}.t-radio-group.t-radio-group--filled .t-radio-button{color:var(--td-text-color-secondary);background-color:#0000;border:0}.t-radio-group.t-radio-group--filled .t-radio-button:hover{color:var(--td-text-color-primary)}.t-radio-group.t-radio-group--filled .t-radio-button:before{content:"";background-color:var(--td-component-border);width:1px;height:calc(100% - 16px);transition:opacity .2s cubic-bezier(0,0,.15,1);position:absolute;top:50%;left:0;transform:translateY(-50%)}.t-radio-group.t-radio-group--filled .t-radio-button:first-child:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked{color:var(--td-text-color-primary);z-index:1;border:0;transition:color .2s linear;position:relative}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked:before,.t-radio-group.t-radio-group--filled .t-radio-button.t-is-checked+label:before{opacity:0}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled{background-color:#0000}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group.t-radio-group--filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-bg-color-component-disabled)}.t-radio-group.t-radio-group--primary-filled .t-radio-group__bg-block{background-color:var(--td-brand-color)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-checked,.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-anti)}.t-radio-group.t-radio-group--primary-filled .t-radio-button.t-is-disabled.t-is-checked~.t-radio-group__bg-block{background-color:var(--td-brand-color-disabled)}.t-radio-group.t-size-s .t-radio-button{height:calc(var(--td-comp-size-xs) - (var(--td-comp-paddingTB-xxs) * 2));padding:0px var(--td-comp-paddingLR-s);font:var(--td-font-body-small)}.t-radio-group.t-size-s .t-radio-button:before{height:calc(100% - 16px)}.t-radio-group.t-size-m .t-radio-button{height:calc(var(--td-comp-size-m) - (var(--td-comp-paddingTB-xxs) * 2));padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-l);font:var(--td-font-body-medium)}.t-radio-group.t-size-m .t-radio-button:before{height:calc(100% - 20px)}.t-radio-group.t-size-l .t-radio-button{height:calc(var(--td-comp-size-xl) - (var(--td-comp-paddingTB-xxs) * 2));padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xl);font:var(--td-font-body-large)}.t-radio-group.t-size-l .t-radio-button:before{height:calc(100% - 24px)}.t-radio-group .t-radio-button{cursor:pointer;border:1px solid;border-color:var(--td-border-level-2-color);color:var(--td-text-color-primary);white-space:nowrap;box-sizing:border-box;border-right:0;align-items:center;transition:color .2s cubic-bezier(0,0,.15,1);display:inline-flex;position:relative}.t-radio-group .t-radio-button:first-child{border-radius:var(--td-radius-small) 0 0 var(--td-radius-small)}.t-radio-group .t-radio-button:last-child{border-radius:0 var(--td-radius-small) var(--td-radius-small) 0}.t-radio-group .t-radio-button__former{opacity:0;width:0;height:0;font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-radio-group .t-radio-button:hover{color:var(--td-brand-color)}.t-radio-group .t-radio-button.t-is-checked{border-right:1px solid;border-color:var(--td-brand-color);transition:border-color .2s cubic-bezier(0,0,.15,1)}.t-radio-group .t-radio-button.t-is-checked+.t-radio-button{border-left:0}.t-radio-group .t-radio-button.t-is-disabled{cursor:not-allowed;color:var(--td-text-color-disabled);background-color:var(--td-bg-color-component-disabled)}.t-radio-group .t-radio-button.t-is-disabled:hover{border-color:var(--td-border-level-2-color);color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled:hover:after{width:0}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked{color:var(--td-text-color-disabled)}.t-radio-group .t-radio-button.t-is-disabled.t-is-checked:after{width:0}.t-radio{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;cursor:pointer;margin:0;padding:0;list-style:none;display:inline-block;position:relative}.t-radio__former{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;opacity:0;margin:0;padding:0;list-style:none;position:absolute}.t-radio__input{vertical-align:middle;border-radius:var(--td-radius-circle);border:1px solid var(--td-border-level-2-color);background-color:var(--td-bg-color-container);width:16px;height:16px;transition:border .2s cubic-bezier(0,0,.15,1);display:inline-block;position:relative}.t-radio__input:after{content:"";opacity:0;border-radius:var(--td-radius-circle);background-color:var(--td-brand-color);width:16px;height:16px;margin-top:-8px;margin-left:-8px;transition:all .2s cubic-bezier(0,0,.15,1);position:absolute;top:50%;left:50%;transform:scale(.5)}.t-radio__label{margin-left:var(--td-comp-margin-s);color:var(--td-text-color-primary);vertical-align:middle;font:var(--td-font-body-medium);white-space:nowrap;display:inline-block}.t-radio:hover .t-radio__input,.t-radio.t-is-checked .t-radio__input{border-color:var(--td-brand-color)}.t-radio.t-is-checked .t-radio__input:after{opacity:1}.t-radio.t-is-disabled{cursor:not-allowed}.t-radio.t-is-disabled .t-radio__label{color:var(--td-text-color-disabled)}.t-radio.t-is-disabled .t-radio__input{background-color:var(--td-bg-color-component-disabled)}.t-radio.t-is-disabled:hover .t-radio__input,.t-radio.t-is-disabled.t-is-checked .t-radio__input{border-color:var(--td-border-level-2-color)}.t-radio.t-is-disabled.t-is-checked .t-radio__input:after{background-color:var(--td-text-color-disabled)}.t-radio:focus-visible:focus-visible{outline:2px solid var(--td-brand-color);outline-offset:var(--td-comp-paddingTB-xs);border-radius:0}.t-slider__input-container{margin-left:var(--td-comp-margin-xxl);align-items:center;display:flex}.t-slider__input-container.is-vertical{padding-top:var(--td-comp-paddingTB-l);margin-left:0}.t-slider__input-container .t-slider__center-line{width:var(--td-size-4);height:1px;margin:0 var(--td-comp-margin-s);background:#000000e6}.t-slider{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;height:calc(var(--td-comp-paddingTB-xs) * 2 + var(--td-size-2));width:100%;padding:0;padding:var(--td-comp-paddingTB-xs) 0;margin:0;list-style:none;position:relative}.t-slider__container{justify-content:center;align-items:center;width:100%;display:flex}.t-slider__container.is-vertical{flex-direction:column;height:100%}.t-slider__rail{width:100%;height:var(--td-size-2);background-color:var(--td-bg-color-secondarycomponent);border-radius:var(--td-radius-round);transition:all .2s linear;position:absolute}.t-slider__rail:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-slider__track{height:var(--td-size-2);background-color:var(--td-brand-color);border-radius:var(--td-radius-round);position:absolute;right:auto}.t-slider__step{width:100%;height:var(--td-size-2);cursor:pointer;position:absolute}.t-slider__button{width:var(--td-comp-size-xxxs);height:var(--td-comp-size-xxxs);border:2px solid var(--td-brand-color);border-radius:var(--td-radius-circle);-webkit-user-select:none;user-select:none;box-sizing:border-box;box-shadow:var(--td-shadow-1);background-color:#fff;transition:all .2s}.t-slider__button--dragging{box-shadow:0 0 0px 2px var(--td-brand-color-focus)}.t-slider__button:hover{background-color:var(--td-gray-color-1)}.t-slider__button-wrapper{z-index:2;text-align:center;-webkit-user-select:none;user-select:none;cursor:pointer;background-color:#0000;outline:none;align-items:center;line-height:normal;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.t-slider__stop{width:1px;height:var(--td-size-2);background-color:var(--td-bg-color-secondarycomponent);position:absolute;top:4px}.t-slider__mark{width:100%;position:absolute;top:2px;left:0}.t-slider__mark-text{font:var(--td-font-body-small);color:var(--td-text-color-primary);top:calc(var(--td-size-2) + var(--td-comp-paddingTB-xs) + 2px);cursor:pointer;white-space:nowrap;display:inline-block;position:absolute;transform:translate(-50%)}.t-slider__mark-text:first-child{transform:translate(0%)}.t-slider__mark-text:last-child{transform:translate(-100%)}.t-slider--vertical{justify-content:center;height:100%;padding:0;display:flex;position:relative}.t-slider--vertical .t-slider__rail{width:var(--td-size-2);height:100%}.t-slider--vertical .t-slider__track{width:var(--td-size-2);top:auto}.t-slider--vertical .t-slider__step{width:var(--td-size-2);height:100%}.t-slider--vertical .t-slider__handle{margin-top:-6px;margin-left:-5px;top:auto;transform:translateY(50%)}.t-slider--vertical .t-slider__mark{width:18px;height:100%;top:0;left:12px}.t-slider--vertical .t-slider__stop{width:var(--td-size-2);background-color:var(--td-bg-color-secondarycomponent);height:1px;left:4px}.t-slider--vertical .t-slider__mark-text{margin-top:0;margin-left:var(--td-comp-margin-xxs);transform:translateY(-50%)}.t-slider--vertical .t-slider__button-wrapper{z-index:2;text-align:center;-webkit-user-select:none;user-select:none;cursor:pointer;background-color:#0000;outline:none;align-items:center;line-height:normal;display:flex;position:absolute;top:auto;left:50%;transform:translate(-50%,50%)}.t-is-disabled{cursor:not-allowed}.t-is-disabled .t-slider__track{background-color:var(--td-brand-color-disabled)}.t-is-disabled .t-slider__rail{background-color:var(--td-bg-color-component-disabled)}.t-is-disabled .t-slider__handle{border:2px solid var(--td-brand-color-disabled)}.t-is-disabled .t-slider__button{border-color:var(--td-brand-color-disabled);outline:none}.t-is-disabled .t-slider__mark-text{color:var(--td-text-color-disabled);cursor:not-allowed}.t-is-disabled .t-slider__button-wrapper{cursor:not-allowed}.t-switch{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;vertical-align:middle;height:var(--td-comp-size-xxs);line-height:var(--td-comp-size-xxs);border-radius:var(--td-radius-round);min-width:calc(var(--td-comp-size-xxs) / .618);background-color:var(--td-bg-color-secondarycomponent);cursor:pointer;-webkit-user-select:none;user-select:none;border:0;outline:none;align-items:center;margin:0;padding:0;list-style:none;transition:all .2s cubic-bezier(.38,0,.24,1);display:inline-flex;position:relative}.t-switch:hover{background-color:var(--td-bg-color-secondarycomponent-hover)}.t-switch__handle{width:calc(var(--td-comp-size-xxs) - 2 * 4px);height:calc(var(--td-comp-size-xxs) - 2 * 4px);border-radius:var(--td-radius-round);box-shadow:var(--td-shadow-1);justify-content:center;align-items:center;transition:all .2s cubic-bezier(.38,0,.24,1);display:flex;position:absolute;top:4px;left:4px}.t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xxs) - 4px);color:#0000}.t-switch__handle:before{content:"";border-radius:var(--td-radius-round);background-color:#fff;transition:all .2s cubic-bezier(.38,0,.24,1);position:absolute;inset:0}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-6px}.t-switch:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-6px;right:0}.t-switch:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__content{opacity:0}.t-switch__content{box-sizing:border-box;color:var(--td-text-color-anti);padding:0 var(--td-comp-margin-xs) 0 calc(calc(var(--td-comp-size-xxs) / .618) / 2 + 2px);font-size:var(--td-font-size-body-small);min-width:calc(var(--td-comp-size-xxs) / .618);align-items:center;transition:padding .2s cubic-bezier(.38,0,.24,1),opacity .2s linear;display:inline-flex}.t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-is-checked{background-color:var(--td-brand-color)}.t-switch.t-is-checked:hover{background-color:var(--td-brand-color-hover)}.t-switch.t-is-checked .t-switch__handle{width:calc(var(--td-comp-size-xxs) - 2 * 2.5px);height:calc(var(--td-comp-size-xxs) - 2 * 2.5px);top:2.5px;left:calc(100% - 2.5px);transform:translate(-100%)}.t-switch.t-is-checked .t-switch__content{padding:0 calc(calc(var(--td-comp-size-xxs) / .618) / 2 + 2px) 0 var(--td-comp-margin-xs);color:var(--td-text-color-anti)}.t-switch.t-is-loading{cursor:not-allowed;background-color:var(--td-bg-color-component-disabled)}.t-switch.t-is-loading .t-loading{display:inline-flex}.t-switch.t-is-loading .t-switch__handle .t-icon{color:var(--td-bg-color-component-disabled)}.t-switch.t-is-loading.t-is-checked{background-color:var(--td-brand-color-focus)}.t-switch.t-is-loading.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-focus)}.t-switch.t-is-disabled{cursor:not-allowed;background-color:var(--td-bg-color-component-disabled)}.t-switch.t-is-disabled .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked{background-color:var(--td-brand-color-disabled)}.t-switch.t-is-disabled.t-is-checked .t-switch__handle{box-shadow:none}.t-switch.t-is-disabled.t-is-checked .t-switch__handle .t-icon{color:var(--td-brand-color-disabled)}.t-switch.t-size-l{min-width:calc(var(--td-comp-size-xs) / .618);height:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs);border-radius:var(--td-radius-round)}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-8px}.t-switch.t-size-l:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-8px;right:0}.t-switch.t-size-l .t-switch__handle{width:calc(var(--td-comp-size-xs) - 2 * 5px);height:calc(var(--td-comp-size-xs) - 2 * 5px);top:5px;left:5px}.t-switch.t-size-l .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xs) - 4px)}.t-switch.t-size-l .t-switch__content{padding:0 var(--td-comp-margin-s) 0 calc(calc(var(--td-comp-size-xs) / .618) / 2 + 4px);min-width:calc(var(--td-comp-size-xs) / .618);font-size:var(--td-font-size-body-large)}.t-switch.t-size-l .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-l.t-is-checked .t-switch__handle{width:calc(var(--td-comp-size-xs) - 2 * 3px);height:calc(var(--td-comp-size-xs) - 2 * 3px);top:3px;left:calc(100% - 3px)}.t-switch.t-size-l.t-is-checked .t-switch__content{padding:0 calc(calc(var(--td-comp-size-xs) / .618) / 2 + 4px) 0 var(--td-comp-margin-s)}.t-switch.t-size-s{min-width:calc(var(--td-comp-size-xxxs) / .618);height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs);border-radius:var(--td-radius-round)}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading) .t-switch__handle:before{left:0;right:-4px}.t-switch.t-size-s:active:not(.t-is-disabled):not(.t-is-loading).t-is-checked .t-switch__handle:before{left:-4px;right:0}.t-switch.t-size-s .t-switch__handle{width:calc(var(--td-comp-size-xxxs) - 2 * 3px);height:calc(var(--td-comp-size-xxxs) - 2 * 3px);top:3px;left:3px}.t-switch.t-size-s .t-switch__handle .t-icon{font-size:calc(var(--td-comp-size-xxxs) - 4px)}.t-switch.t-size-s .t-switch__content{padding:0 var(--td-comp-margin-xxs) 0 calc(calc(var(--td-comp-size-xxxs) / .618) / 2 + 2px);min-width:calc(var(--td-comp-size-xxxs) / .618);font-size:9px}.t-switch.t-size-s .t-switch__content .t-icon{font-size:var(--td-font-size-body-large)}.t-switch.t-size-s.t-is-checked .t-switch__handle{width:calc(var(--td-comp-size-xxxs) - 2 * 2px);height:calc(var(--td-comp-size-xxxs) - 2 * 2px);top:2px;left:calc(100% - 2px)}.t-switch.t-size-s.t-is-checked .t-switch__content{padding:0 calc(calc(var(--td-comp-size-xxxs) / .618) / 2 + 2px) 0 var(--td-comp-margin-xxs)}.t-textarea{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;width:100%;margin:0;padding:0;list-style:none;position:relative}.t-textarea__inner{width:100%;height:var(--td-comp-size-xxxl);border:1px solid var(--td-border-level-2-color);border-radius:var(--td-radius-default);padding:calc(calc(var(--td-comp-size-m) - var(--td-line-height-body-medium)) / 2) var(--td-comp-paddingLR-s);background-color:var(--td-bg-color-specialcomponent);font:var(--td-font-body-medium);color:var(--td-text-color-primary);resize:vertical;box-sizing:border-box;outline:none;transition:all .2s cubic-bezier(.38,0,.24,1),height;display:flex}@-moz-document url-prefix(){.t-textarea__inner{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-textarea__inner::-webkit-scrollbar{width:6px;height:6px}.t-textarea__inner::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.t-textarea__inner::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-textarea__inner::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-textarea__inner:hover{border-color:var(--td-brand-color)}.t-textarea__inner:focus{border-color:var(--td-brand-color);box-shadow:0 0 0 2px var(--td-brand-color-focus)}.t-textarea__inner::placeholder{color:var(--td-text-color-placeholder)}.t-textarea__inner.t-is-success{border-color:var(--td-success-color)}.t-textarea__inner.t-is-success:focus{box-shadow:0 0 0 2px var(--td-success-color-focus)}.t-textarea__inner.t-is-warning{border-color:var(--td-warning-color)}.t-textarea__inner.t-is-warning:focus{box-shadow:0 0 0 2px var(--td-warning-color-focus)}.t-textarea__inner.t-is-error{border-color:var(--td-error-color)}.t-textarea__inner.t-is-error:focus{box-shadow:0 0 0 2px var(--td-error-color-focus)}.t-textarea__info_wrapper{column-gap:var(--td-comp-margin-s);justify-content:space-between;display:flex}.t-textarea__info_wrapper_align{justify-content:end}.t-textarea__limit{font:var(--td-font-body-small);color:var(--td-text-color-placeholder)}.t-textarea .t-is-disabled{color:var(--td-text-color-disabled);background-color:var(--td-bg-color-component-disabled);cursor:not-allowed}.t-textarea .t-is-disabled:hover{border-color:var(--td-border-level-2-color)}.t-textarea .t-is-disabled::placeholder{color:var(--td-text-color-disabled)}.t-textarea .t-resize-none{resize:none}.t-textarea .t-hide-scrollbar{-ms-overflow-style:none}@-moz-document url-prefix(){.t-textarea .t-hide-scrollbar{scrollbar-width:none;overflow:-moz-scrollbars-none}}.t-textarea .t-hide-scrollbar::-webkit-scrollbar{display:none;width:0!important}.t-textarea__tips{height:auto;min-height:var(--td-comp-size-xs);font:var(--td-font-body-small);display:inline-block}.t-textarea__tips--default{color:var(--td-text-color-placeholder)}.t-textarea__tips--success{color:var(--td-success-color)}.t-textarea__tips--warning{color:var(--td-warning-color)}.t-textarea__tips--error{color:var(--td-error-color)}.t-transfer{box-sizing:border-box;font:var(--td-font-body-medium);color:var(--td-text-color-primary);background:0 0;flex-direction:row;align-items:stretch;max-height:100%;margin:0;padding:0;list-style:none;display:flex;position:relative}.t-transfer__list{min-width:200px;height:200px;padding-top:var(--td-comp-size-xxl);word-break:break-word;vertical-align:middle;border:0;display:inline-block;position:relative}.t-transfer__list-source,.t-transfer__list-target{border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-medium)}.t-transfer__list-header{height:var(--td-comp-size-xxl);line-height:var(--td-comp-size-xxl);width:calc(200px - var(--td-comp-margin-s) * 2);padding:0 var(--td-comp-paddingLR-s);margin:0 var(--td-comp-margin-s);box-sizing:border-box;justify-content:space-between;display:flex;position:absolute;top:0}.t-transfer__list-header+:not(.t-transfer__list--with-search){border-top:1px solid var(--td-border-level-1-color)}.t-transfer__list-header .t-checkbox{margin-right:0}.t-transfer__list-header .t-checkbox__label{margin:0}.t-transfer__list-header div{display:flex}.t-transfer__list-header div>span{margin-left:var(--td-comp-margin-s)}.t-transfer__list-header>span{color:var(--td-text-color-placeholder)}.t-transfer__list-body{box-sizing:border-box;height:100%;position:relative}.t-transfer__list--with-search{padding-top:var(--td-comp-size-m);border-top:0}.t-transfer__list-content{width:100%;height:100%;overflow:auto}.t-transfer__list-content .t-checkbox-group{gap:var(--td-comp-margin-xs);width:100%;margin:var(--td-comp-margin-s) 0;flex-direction:column}.t-transfer__list-content .t-checkbox-group .t-checkbox{margin-right:var(--td-comp-margin-s);--ripple-color:var(--td-bg-color-container-active)}.t-transfer__list-content .t-checkbox-group .t-checkbox+.t-checkbox{margin-left:var(--td-comp-margin-s)}.t-transfer__list-content .t-checkbox-group .t-checkbox__label{flex:1;margin:0}.t-transfer__list-content .t-checkbox-group .t-checkbox__label>span{margin-left:var(--td-comp-margin-s);display:inline-block}.t-transfer__list .t-transfer__list-item{padding:var(--td-comp-paddingLR-xs) var(--td-comp-paddingLR-s);cursor:pointer;margin:0 var(--td-comp-margin-s);border-radius:var(--td-radius-default);transition:background-color .2s cubic-bezier(.38,0,.24,1);display:flex}.t-transfer__list .t-transfer__list-item:first-child{margin-top:0}.t-transfer__list .t-transfer__list-item.t-is-disabled:hover{background:0 0}.t-transfer__list-item:hover{background:var(--td-bg-color-container-hover);transition:background-color .2s cubic-bezier(.38,0,.24,1)}.t-transfer__list-item.t-is-checked{background:var(--td-brand-color-light)}.t-transfer__list-wrapper{width:100%;height:100%;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);position:relative;overflow:auto}.t-transfer__list-pagination{height:var(--td-comp-size-xs);vertical-align:middle;padding:var(--td-comp-paddingTB-m)}.t-transfer__list-footer{border-top:1px solid var(--td-border-level-1-color);width:100%;position:absolute;bottom:0;left:0}.t-transfer__operations{margin:auto var(--td-comp-margin-s);vertical-align:middle;gap:var(--td-comp-margin-l);flex-direction:column;display:inline-flex;overflow:hidden}.t-transfer__operations .t-icon{font-size:var(--td-comp-size-xxxs)}.t-transfer__operations .t-icon+.t-button__text{margin-left:0}.t-transfer__empty{text-align:center;color:var(--td-text-color-placeholder);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.t-transfer__search-wrapper{width:100%;padding:0 var(--td-comp-margin-s);box-sizing:border-box;position:absolute;top:0}.t-transfer__search .t-transfer__list{height:240px}.t-transfer--with-tree .t-transfer__list{height:auto}.t-transfer--with-tree .t-transfer__list .t-tree{padding:0 var(--td-comp-paddingLR-m);margin:var(--td-comp-margin-s) 0}.t-transfer__pagination .t-transfer__list{height:240px;padding-bottom:calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m) * 2)}.t-transfer__footer .t-transfer__list{height:248px;padding-bottom:48px}.t-transfer__pagination.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:calc(calc(var(--td-comp-size-xs) + var(--td-comp-paddingTB-m) * 2) + 48px)}.t-transfer__search.t-transfer__footer .t-transfer__list{height:288px;padding-bottom:48px}.t-transfer__search.t-transfer__pagination .t-transfer__list{height:280px;padding-bottom:48px}.t-transfer__search.t-transfer__footer.t-transfer__pagination .t-transfer__list{height:328px;padding-bottom:88px}.t-transfer__wrapper .t-transfer__list{width:206px;height:320px;overflow:scroll}.t-tree{box-sizing:border-box;font:var(--td-font-body-medium);color:var(--td-text-color-primary);margin:0;padding:0;list-style:none;position:relative}.t-tree.t-is-disabled,.t-tree.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item.t-is-active{background-color:var(--td-bg-color-container-hover);color:var(--td-text-color-disabled)}.t-tree.t-is-disabled .t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__empty{color:var(--td-text-color-disabled)}.t-tree__branch{display:block}.t-tree__item{--level:0;--hscale:2;will-change:opacity, max-height;padding:0 0 0 calc(var(--td-comp-margin-xxl) * var(--level));cursor:default;backface-visibility:hidden;perspective:1000px;flex-wrap:nowrap;align-items:center;display:flex;position:relative;transform:translateZ(0)}.t-tree__item .t-icon,.t-tree__item .t-loading{z-index:2;font-size:calc(var(--td-font-size-body-medium) + 2px);display:inline-block;position:relative}.t-tree__item .t-icon{color:var(--td-text-color-secondary)}.t-tree__item .t-checkbox{align-items:center;font-size:0}.t-tree__item .t-checkbox__input{flex-shrink:0}.t-tree__item .t-checkbox__label{text-overflow:ellipsis;overflow:hidden}.t-tree__item .t-tree__icon--default .t-icon{transform:rotate(0)}.t-tree__item--open .t-icon{color:var(--td-text-color-brand)}.t-tree__item--open .t-tree__icon--default .t-icon{transform:rotate(90deg)}.t-tree__item--clickable{cursor:pointer}.t-tree__item--locked{color:var(--td-text-color-disabled)}.t-tree__item--matched{color:inherit}.t-tree__item--draggable{cursor:pointer}.t-tree__item--draggable:hover{background-color:var(--td-bg-color-container-hover);background-clip:content-box}.t-tree__item--draggable:after{content:"";height:2px;padding:inherit;background-clip:content-box;border-radius:1px;display:block;position:absolute;top:-1px;left:0;right:0}.t-tree__item--tip-top:after{background-color:var(--td-brand-color)}.t-tree__item--tip-bottom:after{top:unset;background-color:var(--td-brand-color);bottom:-1px}.t-tree__item--tip-highlight{background-color:var(--td-brand-color-light);background-clip:content-box}.t-tree__item:before{content:"";width:0;height:calc(var(--td-comp-size-m) + 2px);flex:none;display:block}.t-tree--block-node .t-tree__label{flex:1}.t-tree--hoverable .t-tree__label:not(.t-is-active):not(.t-is-checked):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__line{--level:0;--color:var(--td-border-level-1-color);--space:var(--td-comp-margin-xxl);--iconSize:16px;left:calc(var(--td-comp-margin-xxl) * var(--level) - var(--td-comp-margin-l));bottom:var(--td-comp-margin-l);width:1px;height:calc(var(--td-comp-size-m) + 2px);pointer-events:none;position:absolute}.t-tree__line:before{content:"";height:calc(var(--td-comp-size-m) + 2px);width:var(--td-comp-margin-m);border-left:1px solid var(--color);border-bottom:1px solid var(--color);display:block;position:absolute;bottom:0;left:0}.t-tree__line--first:before{height:var(--td-line-height-body-medium)}.t-tree__line--leaf:before{width:var(--td-comp-margin-m)}.t-tree__icon{text-align:center;width:calc(var(--td-font-size-body-medium) + 2px);-webkit-user-select:none;user-select:none;cursor:pointer;flex:none;align-items:center;font-size:0;display:inline-flex;position:relative}.t-tree__icon:after{content:"";width:calc(calc(var(--td-font-size-body-medium) + 2px) + 4px);height:calc(calc(var(--td-font-size-body-medium) + 2px) + 4px);border-radius:var(--td-radius-default);display:block;position:absolute;top:-2px;left:-2px}.t-tree__icon:not(:empty):hover{background-color:var(--td-bg-color-container-hover)}.t-tree__icon:empty{cursor:initial}.t-tree__label{--ripple-color:var(--td-bg-color-container-active);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xs);margin-left:var(--td-comp-margin-xs);border-radius:var(--td-radius-default);cursor:pointer;white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;flex-wrap:nowrap;flex:1;overflow:hidden}.t-tree__label.t-is-checked,.t-is-active .t-tree__label{color:var(--td-text-color-primary);background-color:var(--td-brand-color-light);font-weight:500}.t-tree__space{flex:1 0 auto;display:block}.t-tree__operations{flex:none;justify-content:flex-end;align-items:center;margin-left:auto;display:flex}.t-tree__operations .t-icon{cursor:pointer}.t-tree__item.t-is-disabled{color:var(--td-text-color-disabled);cursor:default}.t-tree__item.t-is-disabled .t-checkbox{cursor:default}.t-tree__item--hidden{display:none}.t-tree--transition .t-tree__label{transition:background-color .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon{transition:color,transform .24s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__icon:after,.t-tree--transition .t-tree__icon:not(:empty):hover{transition:all .2s linear}.t-tree--transition .t-tree__icon--default .t-icon{transition:color,transform .2s cubic-bezier(.38,0,.24,1)}.t-tree--transition .t-tree__item--visible{max-height:calc(calc(var(--td-comp-size-m) + 2px) * var(--hscale) + 0px);opacity:1;transition:opacity .15s linear .15s,max-height .15s linear;display:flex}.t-tree--transition .t-tree__item--hidden{opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;max-height:0;animation:initial;transition:opacity .15s linear,max-height .15s linear .15s;display:flex;overflow:hidden}.t-tree--transition .t-tree__item--enter-active{animation:.3s linear t-tree-toggle}.t-tree--transition .t-tree__item--leave-active{animation:.3s linear reverse forwards t-tree-toggle}.t-tree__vscroll,.t-tree__lazyload{overflow-y:auto}.t-tree__vscroll-cursor{width:1px;height:1px;transition:transform .2s;position:absolute}.t-tree--scrolling .t-tree__item{will-change:initial}.t-tree--scrolling .v-enter,.t-tree--scrolling .v-leave,.t-tree--scrolling .t-tree__item--visible,.t-tree--scrolling .t-tree__item--hidden,.t-tree--scrolling .t-tree__item--enter,.t-tree--scrolling .t-tree__item--enter-active,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--leave,.t-tree--scrolling .t-tree__item--leave-active .t-tree__item--leave-to{transition:none;animation:none}.t-tree--scrolling .t-tree__item--visible,.t-tree--scrolling .t-tree__item--enter-to,.t-tree--scrolling .t-tree__item--enter-active{max-height:initial}.t-tree--scrolling .t-tree__item--leave-to,.t-tree--scrolling .t-tree__item--leave-active{max-height:0}@keyframes t-tree-toggle{0%{opacity:0;max-height:0}50%{opacity:0;max-height:calc(calc(var(--td-comp-size-m) + 2px) * var(--hscale) + 0px)}to{opacity:1;max-height:calc(calc(var(--td-comp-size-m) + 2px) * var(--hscale) + 0px)}}.t-tree-select{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-tree-select--without-input input{display:none}.t-tree-select--without-input .t-input__suffix-icon{margin-left:auto}.t-tree-select .t-fake-arrow{color:var(--td-text-color-placeholder);transition:color .2s cubic-bezier(.38,0,.24,1)}.t-tree-select .t-fake-arrow--highlight{color:var(--td-text-color-brand)}.t-tree-select .t-fake-arrow--disable{color:var(--td-text-color-disabled)}.t-tree-select--placeholder{color:var(--td-text-color-placeholder)}.t-tree-select.t-single-suffix{padding-right:20px}.t-tree-select.t-tag-prefix{padding-left:4px}.t-tree-select-popup .t-popup__content{padding:var(--td-pop-padding-m);max-height:300px;overflow-y:auto}@-moz-document url-prefix(){.t-tree-select-popup .t-popup__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-tree-select-popup .t-popup__content::-webkit-scrollbar{width:8px;height:8px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid #0000;border-radius:15px}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-tree-select-popup .t-popup__content::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-color-picker__panel{background:var(--td-bg-color-container);width:256px;box-shadow:var(--td-shadow-2), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);border-radius:var(--td-radius-medium);-webkit-user-select:none;user-select:none;padding:0}.t-popup__content .t-color-picker__panel{box-shadow:unset;background:0 0}.t-color-picker{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-color-picker.t-popup__content{box-shadow:var(--td-shadow-2), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left)}.t-color-picker__icon{font-size:var(--td-comp-size-xxxs);color:var(--td-text-color-secondary);border-radius:var(--td-radius-default);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:all .2s linear;display:flex}.t-color-picker__icon:hover{background:var(--td-bg-color-container-hover);transition:all .2s linear}.t-color-picker__icon.t-is-disabled{color:var(--td-text-color-disabled);pointer-events:none}.t-color-picker__head{padding:var(--td-pop-padding-xl);z-index:2;justify-content:space-between;align-items:center;display:flex;position:relative}.t-color-picker__head .t-color-picker__close{flex-shrink:0}.t-color-picker__head+.t-color-picker__body{padding-top:0}.t-color-picker__body{padding:var(--td-pop-padding-xl);padding-bottom:calc(var(--td-pop-padding-xl) - 4px)}.t-color-picker__thumb{z-index:1;width:calc(var(--td-comp-size-xxxs) + var(--td-size-1));height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));border-radius:var(--td-radius-circle);box-shadow:var(--td-shadow-1);background:var(--td-text-color-anti);color:var(--td-text-color-brand);box-sizing:border-box;border-color:currentColor;outline:none;padding:2px;position:absolute}.t-color-picker__thumb:before{content:"";border-radius:var(--td-radius-circle);background:currentColor;width:100%;height:100%;display:block}.t-color-picker__saturation{border-radius:var(--td-radius-default);background:0 0;height:160px;position:relative;overflow:hidden}.t-color-picker__saturation:before,.t-color-picker__saturation:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0}.t-color-picker__saturation:before{background:linear-gradient(90deg,#fff,#0000)}.t-color-picker__saturation:after{background:linear-gradient(#0000,#000)}.t-color-picker__saturation .t-color-picker__thumb{width:calc(var(--td-comp-size-xxxs) + var(--td-size-1));height:calc(var(--td-comp-size-xxxs) + var(--td-size-1));border-radius:var(--td-radius-circle);transform:translate(-50%,-50%)}.t-color-picker__slider-wrapper{padding:0 calc(calc(var(--td-comp-size-xxxs) + var(--td-size-1)) / 2);border-radius:4px;position:relative}.t-color-picker__slider-wrapper--hue-type{background:red}.t-color-picker__slider-wrapper--alpha-type{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,#0000 0 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,#0000 0 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__slider-padding{border-radius:4px;width:100%;height:8px;position:absolute;top:0;left:0}.t-color-picker__slider{cursor:pointer;color:#0000;z-index:1;border-radius:4px;outline:none;height:8px;position:relative}.t-color-picker__slider .t-color-picker__thumb{transform:translate(calc(calc(var(--td-comp-size-xxxs) + var(--td-size-1)) * -.5), -50%);top:50%}.t-color-picker__slider .t-color-picker__rail{border-radius:inherit;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.t-color-picker__alpha,.t-color-picker__format{margin:var(--td-comp-margin-m) 0 0 0}.t-color-picker__hue{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.t-color-picker__alpha .t-color-picker__rail{background:linear-gradient(90deg,#0000,currentColor)}.t-color-picker__sliders-wrapper{margin:var(--td-comp-margin-m) 0;align-items:center;display:flex}.t-color-picker__sliders{width:100%}.t-color-picker__sliders-preview{margin-left:var(--td-comp-margin-m);width:var(--td-comp-size-s);height:var(--td-comp-size-s);border-radius:var(--td-radius-default);background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,#0000 0 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,#0000 0 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px;flex-shrink:0;overflow:hidden}.t-color-picker__sliders-preview-inner{width:100%;height:100%;display:block}.t-color-picker__gradient{margin-bottom:var(--td-comp-margin-m);align-items:center;padding:0;display:flex}.t-color-picker__gradient-slider{flex:1}.t-color-picker__gradient-degree{margin-left:var(--td-comp-margin-m);width:var(--td-comp-size-xxl);flex-shrink:0;position:relative}.t-color-picker__gradient-degree .t-input{font:var(--td-font-body-small);margin:0}.t-color-picker__gradient-degree .t-input-number{width:100%;padding:0}.t-color-picker__gradient .gradient-thumbs{border-radius:inherit;cursor:pointer;width:100%;height:100%;margin:0;padding:0;list-style:none;position:absolute;top:0;left:0}.t-color-picker__gradient .gradient-thumbs__item{z-index:0;cursor:pointer;top:50%;left:0;transform:translate(-50%,-50%)}.t-color-picker__gradient .gradient-thumbs__item:before{display:none}.t-color-picker__gradient .gradient-thumbs__item.t-is-active{z-index:1;outline:2px solid var(--td-component-border)}.t-color-picker__gradient .gradient-thumbs__item-inner{border-radius:var(--td-radius-circle);width:100%;height:100%;display:block;overflow:hidden}.t-color-picker__gradient .gradient-thumbs__item-inner:before{content:"";background-color:currentColor;width:100%;height:100%;display:block}.t-color-picker__format{justify-content:space-between;align-items:center;display:flex}.t-color-picker__format--item:first-child{flex-shrink:0}.t-color-picker__format--item:last-child{flex:1}.t-color-picker__format--item .t-size-m,.t-color-picker__format--item .t-input.t-size-m{font:var(--td-font-body-small)}.t-color-picker__format--item .t-input-number .t-input{margin:0}.t-color-picker__format--item .input-group{margin-left:var(--td-comp-margin-s);justify-content:space-around;align-items:center;display:flex}.t-color-picker__format--item .input-group__item{flex:1;width:0;margin-left:-1px}.t-color-picker__format--item .input-group__item .t-input{padding:0 1px}.t-color-picker__format--item .input-group__item .t-input:focus,.t-color-picker__format--item .input-group__item .t-input:focus-within,.t-color-picker__format--item .input-group__item .t-input:hover{z-index:1}.t-color-picker__format--item .input-group__item:not(:first-child):not(:last-child) .t-input{border-radius:0}.t-color-picker__format--item .input-group__item:first-child:not(:last-child) .t-input{border-top-right-radius:0;border-bottom-right-radius:0}.t-color-picker__format--item .input-group__item:last-child:not(:first-child) .t-input{border-top-left-radius:0;border-bottom-left-radius:0}.t-color-picker__format--item .input-group .t-input-number{width:100%;max-width:100%;padding:0}.t-color-picker__format-mode-select{width:72px;display:flex}.t-color-picker__format-mode-select .t-select,.t-color-picker__format-mode-select .t-input{padding-right:0}.t-color-picker__format-mode-select .t-input--prefix>.t-input__suffix{padding-left:0}.t-color-picker__format-mode-select .t-select__right-icon{margin-right:var(--td-comp-margin-xs)}.t-color-picker__swatches-wrap{margin-top:var(--td-comp-margin-m);position:relative}.t-color-picker__swatches-wrap .t-color-picker__swatches+.t-color-picker__swatches{margin-top:var(--td-comp-margin-m)}.t-color-picker__swatches-wrap .t-color-picker__swatches--title{font:var(--td-font-body-small);color:var(--td-text-color-primary);justify-content:space-between;align-items:center;padding:0;display:flex}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions{align-items:center;margin-left:auto;font-size:0;display:flex}.t-color-picker__swatches-wrap .t-color-picker__swatches--actions .t-color-picker__icon{width:var(--td-comp-size-xxxs);height:var(--td-comp-size-xxxs);margin-left:var(--td-comp-margin-s)}.t-color-picker__swatches-wrap .t-color-picker__swatches--items{grid-template-columns:repeat(10, var(--td-comp-size-xxxs));gap:calc((256px - (calc(var(--td-pop-padding-xl) * 2) + calc(var(--td-comp-size-xxxs) * 10))) / 9) calc((256px - (calc(var(--td-pop-padding-xl) * 2) + calc(var(--td-comp-size-xxxs) * 10))) / 9);width:100%;max-height:calc(4 * calc(var(--td-comp-size-xxxs) + calc((256px - (calc(var(--td-pop-padding-xl) * 2) + calc(var(--td-comp-size-xxxs) * 10))) / 9)));padding:calc(var(--td-pop-padding-xl) - 8px);left:calc(0px - calc(var(--td-pop-padding-xl) - 8px));box-sizing:content-box;list-style:none;display:grid;position:relative;overflow:hidden auto}.t-color-picker__swatches-wrap .t-color-picker__swatches--item{width:var(--td-comp-size-xxxs);height:var(--td-comp-size-xxxs);border-radius:var(--td-radius-default);cursor:pointer;transform-origin:50%;box-sizing:border-box;justify-content:center;align-items:center;padding:0;transition:all .2s cubic-bezier(.38,0,.24,1);display:flex;position:relative;overflow:hidden}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:hover{transform-origin:50%;transform:scale(1.25)}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__color{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);flex-shrink:0;width:100%;height:100%;position:relative;overflow:hidden}.t-color-picker__swatches-wrap .t-color-picker__swatches--item__inner{width:100%;height:100%;display:block}.t-color-picker__swatches-wrap .t-color-picker__swatches--item:not(.t-is-active):hover{padding:0}.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--item__color,.t-color-picker__swatches-wrap .t-color-picker__swatches--item.t-is-active .t-color-picker__swatches--color{border-color:var(--td-text-color-brand)}.t-color-picker__swatches-wrap .t-color-picker__swatches--color{border-radius:var(--td-radius-default);box-sizing:border-box;width:100%;height:100%;position:relative;overflow:hidden}.t-color-picker__swatches-wrap .t-color-picker__swatches--inner{border-radius:var(--td-radius-default);width:100%;height:100%;box-shadow:var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);display:block}.t-color-picker__trigger--default{align-items:center;display:inline-flex}.t-color-picker__trigger--default>.t-input{width:fit-content}.t-color-picker__trigger--default .t-input{padding:0 var(--td-comp-paddingLR-s) 0 var(--td-comp-paddingLR-xs)}.t-color-picker__trigger--default__color{box-sizing:border-box;align-items:center;width:100%;height:100%;display:flex}.t-color-picker__trigger--default__color .color-inner{border:1px solid var(--td-scrollbar-color);width:calc(var(--td-comp-size-xs) - 2px);height:calc(var(--td-comp-size-xs) - 2px);color:#0000;border-radius:var(--td-radius-small);display:block;position:relative}.t-color-picker__trigger--default__color .color-inner.t-size-s{width:calc(var(--td-comp-size-xxs) - 2px);height:calc(var(--td-comp-size-xxs) - 2px)}.t-color-picker__trigger--default__color .color-inner.t-size-l{width:calc(var(--td-comp-size-s) - 2px);height:calc(var(--td-comp-size-s) - 2px)}.t-color-picker__gradient-slider{padding:0 calc(calc(var(--td-comp-size-xxxs) + var(--td-size-1)) / 2);border-radius:4px}.t-color-picker__gradient-slider .t-color-picker--bg-alpha{background:var(--td-text-color-anti);background-image:linear-gradient(45deg,#c5c5c5 25%,#0000 0 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,#0000 0 75%,#c5c5c5 0,#c5c5c5);background-position:0 0,3px 3px;background-size:6px 6px}.t-color-picker__panel.t-is-disabled .t-color-picker__saturation,.t-color-picker__panel.t-is-disabled .t-color-picker__slider,.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item{opacity:.8;cursor:not-allowed}.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs,.t-color-picker__panel.t-is-disabled .t-color-picker__gradient-slider .gradient-thumbs__item{cursor:not-allowed}.t-color-picker__panel.t-is-disabled .t-color-picker__swatches--item:hover{padding:0}.t-color-picker__select-options>.t-popup__content{box-shadow:var(--td-shadow-1), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left)}.t-image__wrapper{background:var(--td-bg-color-secondarycontainer);z-index:1;position:relative}.t-image__wrapper--shape-square{border-radius:0}.t-image__wrapper--shape-round{border-radius:var(--td-radius-medium)}.t-image__wrapper--shape-circle{border-radius:50%}.t-image__wrapper--gallery{border-radius:var(--td-radius-medium)}.t-image__wrapper--gallery .t-image{z-index:5;position:relative}.t-image__wrapper--need-hover{cursor:pointer}.t-image{border-radius:inherit;width:100%;height:100%;z-index:inherit;position:relative}.t-image--fit-fill{object-fit:fill}.t-image--fit-contain{object-fit:contain}.t-image--fit-cover{object-fit:cover}.t-image--fit-scale-down{object-fit:scale-down}.t-image--fit-none{object-fit:none}.t-image--position-center{object-position:center}.t-image--position-bottom{object-position:bottom}.t-image--position-top{object-position:top}.t-image--position-left{object-position:left}.t-image--position-right{object-position:right}.t-image__gallery-shadow{border-radius:var(--td-radius-medium);z-index:calc(5 - 2);background:#eeeeee42;position:absolute;inset:24px -24px 24px 0}.t-image__gallery-shadow:before,.t-image__gallery-shadow:after{content:"";border-radius:var(--td-radius-medium);position:absolute;left:0}.t-image__gallery-shadow:after{z-index:calc(5 - 1);background:#eeec;top:-16px;bottom:-16px;right:16px}.t-image__gallery-shadow:before{z-index:calc(5 - 3);background:#eeeeee80;top:-8px;bottom:-8px;right:8px}.t-image__placeholder{z-index:0;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.t-image__overlay-content{width:100%;height:100%;z-index:calc(5 + 1);opacity:1;visibility:visible;transition:visibility,opacity .2s linear;position:absolute;top:0;left:0}.t-image__overlay-content--hidden{visibility:hidden;opacity:0}.t-image__loading,.t-image__error{width:100%;height:100%;font:var(--td-font-body-medium);z-index:calc(0 + 1);justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.t-image__loading .t-icon,.t-image__error .t-icon{font-size:32px}.t-image__loading{color:var(--td-text-color-secondary)}.t-image__error{color:var(--td-text-color-disabled)}.t-avatar{font:var(--td-font-body-medium);color:var(--td-text-color-brand);box-sizing:content-box;background:var(--td-brand-color-focus);white-space:nowrap;vertical-align:middle;width:var(--td-comp-size-m);height:var(--td-comp-size-m);font-size:var(--td-font-size-body-large);line-height:var(--td-comp-size-m);justify-content:center;align-items:center;margin:0;padding:0;list-style:none;display:inline-flex;position:relative;overflow:hidden}.t-avatar.t-avatar__icon{font-size:var(--td-comp-size-xxs)}.t-avatar--circle{border-radius:var(--td-radius-circle)}.t-avatar--round{border-radius:var(--td-radius-default)}.t-avatar.t-size-s{width:var(--td-comp-size-xs);height:var(--td-comp-size-xs);font-size:var(--td-font-size-body-medium);line-height:var(--td-comp-size-xs)}.t-avatar.t-size-s.t-avatar__icon{font-size:var(--td-comp-size-xxxs)}.t-avatar.t-size-l{width:var(--td-comp-size-xl);height:var(--td-comp-size-xl);font-size:var(--td-font-size-title-large);line-height:var(--td-comp-size-xl)}.t-avatar.t-size-l.t-avatar__icon{font-size:var(--td-comp-size-xs)}.t-avatar>.t-image__wrapper{max-width:100%;max-height:100%;z-index:inherit}.t-avatar .t-image__error,.t-avatar .t-image__loading{font-size:1em}.t-avatar .t-image__error .t-icon,.t-avatar .t-image__loading .t-icon{font-size:inherit}.t-avatar-group{align-items:center;display:inline-flex}.t-avatar-group .t-avatar{border:1px solid var(--td-bg-color-container)}.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child),.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-s,.t-avatar-group.t-avatar--offset-right .t-avatar:not(:last-child).t-size-l{margin-right:calc(0px - var(--td-size-4))}.t-avatar-group.t-avatar--offset-left .t-avatar:first-child{z-index:49}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(2){z-index:48}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(3){z-index:47}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(4){z-index:46}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(5){z-index:45}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(6){z-index:44}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(7){z-index:43}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(8){z-index:42}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(9){z-index:41}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(10){z-index:40}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(11){z-index:39}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(12){z-index:38}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(13){z-index:37}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(14){z-index:36}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(15){z-index:35}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(16){z-index:34}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(17){z-index:33}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(18){z-index:32}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(19){z-index:31}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(20){z-index:30}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(21){z-index:29}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(22){z-index:28}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(23){z-index:27}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(24){z-index:26}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(25){z-index:25}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(26){z-index:24}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(27){z-index:23}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(28){z-index:22}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(29){z-index:21}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(30){z-index:20}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(31){z-index:19}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(32){z-index:18}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(33){z-index:17}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(34){z-index:16}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(35){z-index:15}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(36){z-index:14}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(37){z-index:13}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(38){z-index:12}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(39){z-index:11}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(40){z-index:10}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(41){z-index:9}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(42){z-index:8}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(43){z-index:7}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(44){z-index:6}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(45){z-index:5}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(46){z-index:4}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(47){z-index:3}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(48){z-index:2}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(49){z-index:1}.t-avatar-group.t-avatar--offset-left .t-avatar:nth-child(50){z-index:0}.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child),.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-s,.t-avatar-group.t-avatar--offset-left .t-avatar:not(:first-child).t-size-l{margin-left:calc(0px - var(--td-size-4))}.t-badge{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none;display:inline-block;position:relative}.t-badge--dot,.t-badge--circle,.t-badge--round{color:var(--td-text-color-anti);text-align:center;font:var(--td-font-body-small);transform-origin:100% 0;box-sizing:content-box;position:absolute;top:0;right:0;transform:translate(50%,-50%)}.t-badge--static{display:inline-block;position:static;transform:none}.t-badge--dot{border-radius:var(--td-radius-circle);background-color:var(--td-error-color);width:6px;height:6px;margin-top:1px;right:1px}.t-badge--circle,.t-badge--round{padding-right:calc((var(--td-comp-size-xxs) - 8px) / 2);padding-left:calc((var(--td-comp-size-xxs) - 8px) / 2);min-width:8px;height:var(--td-comp-size-xxs);background-color:var(--td-error-color);line-height:var(--td-comp-size-xxs)}.t-badge--circle.t-size-s,.t-badge--round.t-size-s{padding-right:calc((var(--td-comp-size-xxxs) - 8px) / 2);padding-left:calc((var(--td-comp-size-xxxs) - 8px) / 2);min-width:8px;height:var(--td-comp-size-xxxs);line-height:var(--td-comp-size-xxxs)}.t-badge--circle{border-radius:calc(var(--td-comp-size-xxs) / 2)}.t-badge--round{border-radius:var(--td-radius-default)}.t-calendar{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;border:1px solid var(--td-border-level-1-color);background-color:var(--td-bg-color-container);border-radius:var(--td-radius-large);margin:0;padding:0;list-style:none}.t-calendar .t-is-disabled.t-calendar__table-body-cell:hover{cursor:not-allowed}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display{color:var(--td-text-color-disabled)}.t-calendar .t-is-disabled .t-calendar__table-body-cell-display:hover{box-shadow:none}.t-calendar--full{min-width:560px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-calendar--full .t-calendar__control{padding:0}.t-calendar--full .t-calendar__title{font:var(--td-font-title-large);flex:1}.t-calendar--full .t-calendar__panel{margin-top:var(--td-comp-margin-xxxl);position:relative}.t-calendar--full .t-calendar__panel-title{font:var(--td-font-title-large);color:var(--td-text-color-primary);position:absolute}.t-calendar--full .t-calendar__table-head-cell,.t-calendar--full .t-calendar__table-body-cell{margin-right:var(--td-comp-margin-s);position:relative}.t-calendar--full .t-calendar__table-body-cell{border-top:2px solid var(--td-border-level-1-color);height:104px;line-height:var(--td-line-height-body-medium);flex-direction:column;justify-content:flex-start;align-items:flex-end;margin-left:0;padding:0;transition-property:border-top,background;transition-duration:.2s;transition-timing-function:linear;display:flex}.t-calendar--full .t-calendar__table-body-cell-content{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-xs);box-sizing:border-box;width:100%}.t-calendar--full .t-calendar__table-body-cell.t-is-checked,.t-calendar--full .t-calendar__table-body-cell.t-is-checked:hover{background-color:var(--td-brand-color-light)}.t-calendar--full .t-calendar__table-body-cell--now{border-top:2px solid var(--td-brand-color)}.t-calendar--full .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{color:var(--td-text-color-primary)}.t-calendar--full .t-calendar__footer{height:90px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl);border-top:1px solid var(--td-border-level-1-color)}.t-calendar--card{border-radius:var(--td-radius-medium);width:280px;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m)}.t-calendar--card .t-calendar__control{padding:0}.t-calendar--card .t-calendar__control-section{justify-content:flex-start;width:100%}.t-calendar--card .t-calendar__control-section-cell:last-child{text-align:right;flex:1;display:block}.t-calendar--card .t-calendar__panel.t-calendar__panel--month{height:200px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year{height:168px;margin-top:var(--td-comp-margin-m)}.t-calendar--card .t-calendar__panel.t-calendar__panel--year .t-calendar__table-body-cell-display{min-width:var(--td-comp-size-xxl)}.t-calendar--card .t-calendar__table{flex-direction:column;justify-self:start;align-items:flex-start;width:100%;height:100%;display:flex}.t-calendar--card .t-calendar__table-head-row,.t-calendar--card .t-calendar__table-body-row{background:var(--td-bg-color-container);flex:1}.t-calendar--card .t-calendar__table-head-cell,.t-calendar--card .t-calendar__table-body-cell{width:100%;height:100%;font:var(--td-font-body-medium);box-sizing:border-box;justify-content:center}.t-calendar--card .t-calendar__table-head-cell-display,.t-calendar--card .t-calendar__table-body-cell-display{width:var(--td-comp-size-xs);line-height:var(--td-comp-size-xs)}.t-calendar--card .t-calendar__table-body{flex-direction:column;flex:1;justify-self:center;align-items:center;display:flex}.t-calendar--card .t-calendar__table-body-cell{justify-content:center;align-items:center}.t-calendar--card .t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container)}.t-calendar--card .t-calendar__table-body-cell-display{font:var(--td-font-body-medium);padding-top:calc(var(--td-comp-paddingTB-xxs) / 2);padding-bottom:calc(var(--td-comp-paddingTB-xxs) / 2);text-align:center;border-radius:var(--td-radius-default);transition:all .2s linear}.t-calendar--card .t-calendar__table-body-cell-display:hover{box-shadow:inset 0 0 0 1px var(--td-brand-color);transition:box-shadow .2s linear}.t-calendar--card .t-calendar__table-body-cell--now .t-calendar__table-body-cell-display{color:var(--td-brand-color);background-color:var(--td-brand-color-light);position:relative}.t-calendar--card .t-is-checked .t-calendar__table-body-cell-display{background:var(--td-brand-color);border-radius:var(--td-radius-default);color:var(--td-text-color-anti)}.t-calendar--card .t-calendar__footer{height:var(--td-comp-size-xxl);padding:0 var(--td-comp-paddingLR-m);border-top:1px solid var(--td-border-level-1-color)}.t-calendar__control{justify-content:flex-end;align-items:center;display:flex}.t-calendar__control-section{justify-content:flex-end;align-items:center;height:100%;display:flex}.t-calendar__control-section:last-child{margin-right:0}.t-calendar__control-section-cell{height:100%;margin-right:var(--td-comp-margin-s);display:flex}.t-calendar__control-section-cell .t-radio-group{vertical-align:bottom}.t-calendar__control-section-cell .t-select{display:inline}.t-calendar__control-section-cell:last-child{margin-right:0}.t-calendar__panel{box-sizing:border-box;width:100%}.t-calendar__table{border-collapse:collapse;border-spacing:0;width:100%;height:100%}.t-calendar__table-head,.t-calendar__table-body{width:100%}.t-calendar__table-head-row,.t-calendar__table-body-row{width:100%;display:flex}.t-calendar__table-head-cell,.t-calendar__table-body-cell{font:var(--td-font-title-small);color:var(--td-text-color-primary);cursor:default;flex:1;justify-content:flex-end;padding:0;display:flex}.t-calendar__table-head-cell:last-child,.t-calendar__table-body-cell:last-child{margin-right:0}.t-calendar__table-head{margin-bottom:var(--td-comp-margin-s);display:block}.t-calendar__table-head-row{background:var(--td-bg-color-container);padding-bottom:0}.t-calendar__table-head-cell{height:100%;font:var(--td-font-title-small);color:var(--td-text-color-secondary)}.t-calendar__table-body-cell{cursor:pointer}.t-calendar__table-body-cell:hover{background-color:var(--td-bg-color-container-hover);transition:background-color .2s linear}.t-calendar__table-body-cell-display{font:var(--td-font-title-small);color:var(--td-text-color-primary)}.t-card{font:var(--td-font-body-medium);box-sizing:border-box;border-radius:var(--td-radius-medium);background-color:var(--td-bg-color-container);color:var(--td-text-color-primary);margin:0;padding:0;list-style:none;transition:box-shadow .2s cubic-bezier(.38,0,.24,1);position:relative}.t-card--bordered{border:1px solid var(--td-component-border)}.t-card--shadow-hover:hover,.t-card--shadow{box-shadow:var(--td-shadow-1)}.t-card__cover{display:flow-root}.t-card__cover img{border-top-left-radius:calc(var(--td-radius-medium) - 1px);border-top-right-radius:calc(var(--td-radius-medium) - 1px);width:100%;max-height:100%;display:flow-root}.t-card__body{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);display:flow-root}.t-card__header{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);justify-content:space-between;align-items:center;display:flex;position:relative}.t-card__header-wrapper{flex:1;align-items:center;display:flex}.t-card__header+.t-card__cover img{border-radius:0}.t-card__footer{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);justify-content:space-between;align-items:center;display:flex}.t-card__footer-wrapper{flex:1}.t-size-s .t-card__body,.t-size-s .t-card__header,.t-size-s .t-card__footer{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-l)}.t-card__avatar{margin-right:var(--td-comp-margin-l);width:var(--td-comp-size-xxxl);height:var(--td-comp-size-xxxl)}.t-card__title{font:var(--td-font-title-medium);color:var(--td-text-color-primary);margin-right:var(--td-comp-margin-l);word-break:break-all}.t-card__subtitle{font:var(--td-font-body-medium);color:var(--td-text-color-secondary);word-break:break-all}.t-card__description{font:var(--td-font-body-medium);color:var(--td-text-color-secondary);margin-top:var(--td-comp-margin-xs);word-break:break-all}.t-card__actions{float:right;color:var(--td-brand-color)}.t-card__title--bordered{border-bottom:1px solid var(--td-component-border)}.t-loading__parent .t-card~.t-loading__overlay{border-radius:var(--td-radius-medium)}.t-comment{font:var(--td-font-body-medium);box-sizing:border-box;width:100%;color:var(--td-text-color-primary);margin:0;padding:0;list-style:none}.t-comment__inner{display:flex}.t-comment__avatar{margin-right:var(--td-comp-margin-xxl);cursor:pointer;flex-shrink:0;display:flex}.t-comment__avatar-image{width:var(--td-comp-size-xxxl);height:var(--td-comp-size-xxxl);border-radius:var(--td-radius-circle)}.t-comment__content{font:var(--td-font-body-medium);flex:auto}.t-comment__author{margin-bottom:var(--td-comp-margin-s);flex-wrap:wrap;justify-content:flex-start;align-items:baseline;display:flex}.t-comment__name{font:var(--td-font-title-medium);padding-right:var(--td-comp-paddingLR-s);cursor:pointer;align-items:center;display:inline-flex}.t-comment__time{font:var(--td-font-body-small);padding-right:var(--td-comp-paddingLR-s);color:var(--td-text-color-placeholder)}.t-comment__detail{word-break:break-all;font:var(--td-font-body-medium)}.t-comment__quote{margin-top:var(--td-comp-margin-l);border-left:4px solid var(--td-component-stroke);padding-left:var(--td-comp-margin-l)}.t-comment__quote .t-comment__name,.t-comment__quote .t-comment__detail{color:var(--td-text-color-secondary)}.t-comment__actions{margin-top:var(--td-comp-margin-s);justify-content:flex-end;gap:var(--td-comp-margin-s);padding:0;list-style:none;display:flex}.t-comment__actions .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__actions .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-comment__reply{margin-top:var(--td-comp-margin-l);margin-left:calc(var(--td-comp-size-xxxl) + var(--td-comp-margin-xxl));background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-medium);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-comment__reply .t-button--variant-text{color:var(--td-text-color-placeholder)}.t-comment__reply .t-button--variant-text:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-comment__reply .t-button--variant-text .t-button__text{gap:var(--td-comp-margin-s)}.t-empty{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;text-align:center;margin:0;padding:0;list-style:none}.t-empty__image{justify-content:center;font-size:48px;display:flex}.t-empty__title{font:var(--td-font-body-medium);color:var(--td-text-color-secondary);margin-top:var(--td-comp-margin-s);margin-bottom:0}.t-empty__description{font:var(--td-font-body-medium);color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xs);margin-bottom:0}.t-empty__action{margin-top:var(--td-comp-margin-xxl);margin-bottom:0}.t-empty.t-size-s .t-empty__image{font-size:20px}.t-empty.t-size-s .t-empty__title,.t-empty.t-size-s .t-empty__description{font:var(--td-font-body-small);margin-top:var(--td-comp-margin-xxs)}.t-empty.t-size-l .t-empty__image{font-size:64px}@keyframes tDialogZoomIn{0%{opacity:0;transform:scale(.01)}to{opacity:1}}@keyframes tDialogZoomOut{0%{opacity:1}to{opacity:0;transform:scale(.01)}}@keyframes tDialogMaskIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogMaskOut{0%{opacity:1}to{opacity:0}}.t-dialog-zoom .animation-enter{animation-duration:.2s;animation-timing-function:cubic-bezier(0,0,.15,1);animation-play-state:paused;animation-fill-mode:both}.t-dialog-zoom .animation-exit{animation-duration:.2s;animation-timing-function:cubic-bezier(.38,0,.24,1);animation-play-state:paused;animation-fill-mode:both}.t-dialog-zoom .animation-active{animation-play-state:running;animation-fill-mode:both}.t-dialog-zoom-enter,.t-dialog-zoom-enter-from,.t-dialog-zoom-appear{animation-duration:.2s;animation-timing-function:cubic-bezier(0,0,.15,1);animation-play-state:paused;animation-fill-mode:both}.t-dialog-zoom-exit{animation-duration:.2s;animation-timing-function:cubic-bezier(.38,0,.24,1);animation-play-state:paused;animation-fill-mode:both}.t-dialog-zoom-enter-active,.t-dialog-zoom-appear-active{animation-name:tDialogZoomIn;animation-play-state:running;animation-fill-mode:both}.t-dialog-zoom-exit-active{animation-name:tDialogZoomOut;animation-play-state:running;animation-fill-mode:both}.t-dialog-zoom__vue-enter-active .t-dialog{animation-name:tDialogZoomIn;animation-duration:.2s;animation-timing-function:cubic-bezier(0,0,.15,1);animation-play-state:paused;animation-fill-mode:both}.t-dialog-zoom__vue-enter-active .t-dialog__mask{animation-name:tDialogMaskIn;animation-duration:.2s;animation-timing-function:linear;animation-play-state:running;animation-fill-mode:both}.t-dialog-zoom__vue-leave-active .t-dialog{animation-name:tDialogZoomOut;animation-duration:.2s;animation-timing-function:cubic-bezier(.38,0,.24,1);animation-play-state:paused;animation-fill-mode:both}.t-dialog-zoom__vue-leave-active .t-dialog__mask{animation-name:tDialogMaskOut;animation-duration:.2s;animation-timing-function:linear;animation-play-state:running;animation-fill-mode:both}.t-dialog-zoom__vue-enter-to .t-dialog,.t-dialog-zoom__vue-leave-to .t-dialog{animation-play-state:running;animation-fill-mode:both}.t-dialog-fade-enter,.t-dialog-fade-appear{opacity:0;animation-duration:.2s;animation-timing-function:cubic-bezier(0,0,.15,1);animation-play-state:paused;animation-fill-mode:both}.t-dialog-fade-exit{animation-duration:.2s;animation-timing-function:cubic-bezier(0,0,.15,1);animation-play-state:paused;animation-fill-mode:both}.t-dialog-fade-enter.t-dialog-fade-enter-active,.t-dialog-fade-appear.t-dialog-fade-appear-active{animation-name:tDialogFadeIn;animation-play-state:running}.t-dialog-fade-exit.t-dialog-fade-exit-active{animation-name:tDialogFadeOut;animation-play-state:running}@keyframes tDialogFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDialogFadeOut{0%{opacity:1}to{opacity:0}}.t-dialog{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;background-color:var(--td-bg-color-container);border:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-large);width:480px;margin:0;padding:0;list-style:none;position:relative}.t-dialog .t-icon.t-is-info{color:var(--td-brand-color)}.t-dialog .t-icon.t-is-success{color:var(--td-success-color)}.t-dialog .t-icon.t-is-warning{color:var(--td-warning-color)}.t-dialog .t-icon.t-is-error{color:var(--td-error-color)}.t-dialog--lock{overflow:hidden}.t-dialog__header{color:var(--td-text-color-primary);font:var(--td-font-title-medium);word-break:break-word;align-items:center;gap:var(--td-comp-margin-s);box-sizing:border-box;font-weight:600;display:flex}.t-dialog__header .t-dialog__header-content{align-items:flex-start;width:100%;display:flex}.t-dialog__header .t-icon:not(.t-icon-close){font-size:calc(var(--td-font-size-body-large) + 8px);margin-right:var(--td-comp-margin-s);flex-shrink:0;align-items:center;display:inline-flex}.t-dialog__header--fullscreen{background-color:var(--td-bg-color-secondarycontainer);min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-xxl);flex-direction:row;justify-content:flex-end;align-items:center;display:flex}.t-dialog__header--fullscreen .t-dialog__header-content{box-sizing:border-box;justify-content:center;align-items:center;display:flex}.t-dialog__body{color:var(--td-text-color-secondary);font:var(--td-font-body-medium);padding:var(--td-comp-paddingTB-l) 0;word-break:break-word;overflow:auto}@-moz-document url-prefix(){.t-dialog__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body::-webkit-scrollbar{width:6px;height:6px}.t-dialog__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.t-dialog__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body__icon,.t-dialog__body--icon{padding:var(--td-comp-paddingTB-l) 0}.t-dialog__body--fullscreen{box-sizing:border-box;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl);height:calc(100% - var(--td-comp-size-xxxl) - var(--td-comp-size-xxxxl));overflow:auto}@-moz-document url-prefix(){.t-dialog__body--fullscreen{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__body--fullscreen::-webkit-scrollbar{width:6px;height:6px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--fullscreen::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__body--fullscreen--without-footer{box-sizing:border-box;padding:var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xxl);height:calc(100% - var(--td-comp-size-xxxl));overflow:auto}.t-dialog__footer{text-align:right;width:100%;padding:var(--td-comp-paddingTB-l) 0 0}.t-dialog__footer .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-dialog__footer--fullscreen{min-height:var(--td-comp-size-xxxxl);padding:0 var(--td-comp-paddingLR-xxl) var(--td-comp-paddingTB-xxl);box-sizing:border-box}.t-dialog--default{padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl)}.t-dialog__close{font-size:calc(var(--td-font-size-body-large) + 4px);color:var(--td-text-color-secondary);width:calc(var(--td-font-size-body-large) + 4px);height:calc(var(--td-font-size-body-large) + 4px);border-radius:var(--td-radius-default);padding:var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);align-items:center;transition:all .2s linear;display:flex}.t-dialog__close:hover{cursor:pointer;background:var(--td-bg-color-container-hover)}.t-dialog__close:active{background:var(--td-bg-color-container-active)}.t-dialog__close--fullscreen{background:0 0;display:flex}.t-dialog__close--fullscreen:hover{cursor:pointer;background:var(--td-bg-color-secondarycontainer-hover)}.t-dialog__close--fullscreen:active{background:var(--td-bg-color-secondarycontainer-active)}.t-dialog.t-dialog--draggable:hover{cursor:move}.t-dialog.t-dialog--draggable .t-dialog__header:hover,.t-dialog.t-dialog--draggable .t-dialog__body:hover,.t-dialog.t-dialog--draggable .t-dialog__footer:hover{cursor:auto}.t-dialog__fullscreen{border-radius:0;width:100%}.t-dialog__ctx{pointer-events:auto;outline:none;width:100%;height:100%;top:0;left:0}.t-dialog__ctx.t-dialog__ctx--modeless{pointer-events:none}.t-dialog__ctx.t-dialog__ctx--fixed{z-index:2500;position:fixed}.t-dialog__ctx.t-dialog__ctx--absolute,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__mask,.t-dialog__ctx.t-dialog__ctx--absolute .t-dialog__wrap{position:absolute}.t-dialog__ctx.t-is-visible{visibility:visible}.t-dialog__ctx.t-is-hidden{visibility:hidden}.t-dialog__ctx.t-is-display{display:block}.t-dialog__ctx.t-not-display{display:none}.t-dialog__ctx .t-dialog__mask{z-index:1;background:var(--td-mask-active);pointer-events:auto;width:100%;height:100%;position:fixed;top:0;left:0}.t-dialog__ctx .t-dialog__wrap{z-index:1;width:100%;height:100%;position:fixed;top:0;left:0;overflow:auto}@-moz-document url-prefix(){.t-dialog__ctx .t-dialog__wrap{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar{width:8px;height:8px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid #0000;border-radius:15px}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__ctx .t-dialog__wrap::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-dialog__ctx .t-dialog__position{box-sizing:border-box;justify-content:center;width:100%;min-height:100%;padding:48px 0;display:flex;position:relative}.t-dialog__ctx .t-dialog__position.t-dialog--top{align-items:flex-start;padding-top:20vh}.t-dialog__ctx .t-dialog__position.t-dialog--center{align-items:center}.t-dialog__ctx .t-dialog__position_fullscreen{box-sizing:border-box;justify-content:center;width:100%;min-height:100%;display:flex;position:relative}.t-dialog__ctx .t-is-hidden{background:0 0}.t-dialog__ctx .t-dialog{pointer-events:auto;z-index:2500}.t-dialog__ctx.t-dialog__ctx--modeless .t-dialog{box-shadow:var(--td-shadow-3)}.t-image-viewer__img-error{background-color:var(--td-bg-color-component-disabled);color:#000;width:440px;height:440px;cursor:inherit;border-radius:4px}.t-image-viewer__img-error .t-image-viewer__img-error-content{width:100%;height:100%;font:var(--td-font-body-medium);flex-flow:column wrap;place-content:center;align-items:center;display:flex}.t-image-viewer__img-error .t-image-viewer__img-error-content .t-image-viewer__img-error-text{margin-top:var(--td-comp-margin-s)}@keyframes modal-image-show{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes modal-image-hide{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes modal-mask-show{0%{opacity:0}to{opacity:1}}@keyframes modal-mask-hide{0%{opacity:1}to{opacity:0}}.t-image-viewer-preview-image{z-index:3000;animation:.2s cubic-bezier(.82,0,1,.9) modal-mask-show;position:fixed;inset:0;overflow:hidden}.t-image-viewer-preview-image.t-is-hide{animation:.2s cubic-bezier(0,0,.15,1) forwards modal-mask-hide}.t-image-viewer-preview-image.t-is-hide .t-image-viewer__modal-pic .t-image-viewer__modal-box{animation:.2s cubic-bezier(0,0,.15,1) forwards modal-image-hide}.t-image-viewer-preview-image .t-image-viewer__modal-index{text-align:center;font-size:var(--td-font-size-body-medium);color:var(--td-text-color-anti);border-radius:var(--td-radius-default);padding:var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);z-index:1;background:#0006;position:absolute;top:92px;left:50%;transform:translate(-50%)}.t-image-viewer-preview-image .t-image-viewer__modal-mask{background-color:var(--td-mask-active);opacity:1;width:100%;height:100%;transition:all .2s;position:fixed;inset:0}.t-image-viewer-preview-image .t-image-viewer__modal-pic{pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box{pointer-events:auto;justify-content:center;align-items:center;width:100%;height:100%;animation:.2s cubic-bezier(.38,0,.24,1) modal-image-show;display:flex}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box--transitioning{transition:transform .2s ease-out}.t-image-viewer-preview-image .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{object-fit:contain;max-width:min(90vw,1000px);max-height:min(90vh,800px);transition:all .2s cubic-bezier(.38,0,.24,1);display:block;transform:rotate(0)}.t-image-viewer-preview-image .t-image-viewer__modal-header{z-index:1;background-color:var(--td-bg-color-container);justify-content:center;align-items:center;width:100%;height:auto;padding:0 0 12px;display:flex;position:absolute;top:0}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show{padding:12px 0}@keyframes preview-icon-range{0%{transform:translate(-50%,50%)rotate(0)}to{transform:translate(-50%,50%)rotate(-180deg)}}@keyframes preview-icon-unrange{0%{transform:translate(-50%,50%)rotate(-180deg)}to{transform:translate(-50%,50%)rotate(0)}}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt{width:var(--td-comp-size-xxs);height:var(--td-comp-size-xxs);background-color:var(--td-bg-color-container);color:var(--td-text-color-primary);box-shadow:var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);border-radius:50%;justify-content:center;align-items:center;animation:.2s cubic-bezier(.38,0,.24,1) forwards preview-icon-unrange;display:inline-flex;position:absolute;bottom:0;left:50%;transform:translate(-50%,50%)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt .t-icon{font-size:var(--td-font-size-body-large)}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-pre-bt:hover{background-color:inherit}@keyframes preview-image-show{0%{height:0}to{height:40px}}@keyframes preview-image-hide{0%{height:40px}to{height:0}}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-prev{animation:.2s cubic-bezier(.38,0,.24,1) forwards preview-image-show}.t-image-viewer-preview-image .t-image-viewer__modal-header.t-is-show .t-image-viewer__header-pre-bt{animation:.2s cubic-bezier(.38,0,.24,1) forwards preview-icon-range}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev{width:521.778px;animation:.2s cubic-bezier(.38,0,.24,1) forwards preview-image-hide;display:flex;position:relative;overflow:hidden}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before,.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after{content:"";z-index:1;pointer-events:none;width:71.1111px;height:100%;position:absolute}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:before{background-image:linear-gradient(to right, var(--td-bg-color-container), #fff0);left:0}.t-image-viewer-preview-image .t-image-viewer__modal-header .t-image-viewer__header-prev:after{background-image:linear-gradient(to right, #fff0, var(--td-bg-color-container));right:0}.t-image-viewer-preview-image .t-image-viewer__header-trans{justify-content:center;align-items:center;gap:4px;height:100%;margin-left:225.333px;transition:transform .2s;display:flex}.t-image-viewer-preview-image .t-image-viewer__header-box{box-sizing:border-box;border-radius:var(--td-radius-default);background-color:var(--td-bg-color-secondarycontainer);border:1px solid #0000;justify-content:center;align-items:center;width:71.1111px;height:40px;transition:all .2s;display:flex;position:relative;overflow:hidden}.t-image-viewer-preview-image .t-image-viewer__header-box .t-image-viewer__header-img{width:auto;height:100%}.t-image-viewer-preview-image .t-image-viewer__header-box:hover,.t-image-viewer-preview-image .t-image-viewer__header-box.t-is-active{border-color:var(--td-brand-color)}.t-image-viewer-preview-image .t-image-viewer__modal-icon{cursor:pointer;color:var(--td-text-color-primary);border-radius:var(--td-radius-default);transition:all .2s}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt{top:100px;right:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{top:50%;transform:translateY(-50%)}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt{left:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt{right:40px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-close-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-prev-bt,.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-image-viewer__modal-next-bt{z-index:10;color:var(--td-text-color-anti);width:var(--td-comp-size-xl);height:var(--td-comp-size-xl);background-color:#0006;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}.t-image-viewer-preview-image .t-image-viewer__modal-icon .t-image-viewer__modal-icon-label{margin-left:2px}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled{color:#ffffff38}.t-image-viewer-preview-image .t-image-viewer__modal-icon.t-is-disabled:hover{background-color:#0006}.t-image-viewer-preview-image .t-image-viewer__modal-icon:hover{background-color:#0003}.t-image-viewer__mask{z-index:99;background-color:#0000;width:100vh;height:100vh;position:fixed;top:0;left:0}.t-image-viewer__utils{z-index:1;width:100%;height:auto;color:var(--td-text-color-primary);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex;position:absolute;bottom:32px}.t-image-viewer__utils .t-image-viewer__utils-content{background:var(--td-bg-color-container);border-radius:var(--td-radius-medium);height:50px;padding:0 var(--td-comp-paddingLR-xs);justify-content:center;align-items:center;line-height:100%;display:inline-flex}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon{cursor:pointer;margin:0 var(--td-comp-margin-xs);width:var(--td-comp-size-m);height:var(--td-comp-size-m);border-radius:var(--td-radius-default);justify-content:center;align-items:center;transition:all .2s;display:flex}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__modal-icon:hover{background-color:var(--td-bg-color-container-hover)}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale{width:var(--td-comp-size-xl);text-align:center;cursor:inherit}.t-image-viewer__utils .t-image-viewer__utils-content .t-image-viewer__utils-scale:hover{background-color:var(--td-bg-color-container)}.t-image-viewer-mini__footer .t-image-viewer__utils{position:inherit}.t-image-viewer-mini__content{max-width:min(90vw,1000px);max-height:min(90vh,800px)}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.t-image-viewer-mini__content .t-image-viewer__modal-pic .t-image-viewer__modal-box .t-image-viewer__modal-image{object-fit:contain;max-width:min(80vw,800px);max-height:min(80vh,600px);transition:all .2s;display:block;transform:rotate(0)}.t-image-viewer__dialog.t-dialog__ctx--fixed{z-index:3000}.t-image-viewer__dialog .t-dialog__header{padding:0 var(--td-comp-paddingLR-s);pointer-events:none}.t-image-viewer__dialog .t-dialog__header .t-image-viewer__dialog-title{pointer-events:all}.t-image-viewer__dialog .t-dialog__header .t-dialog__close{pointer-events:auto}.t-image-viewer__dialog .t-dialog{border-color:var(--td-component-border);box-shadow:var(--td-shadow-3);padding:0;overflow:hidden}.t-image-viewer__dialog .t-dialog__header{width:100%;height:40px;font-size:var(--td-font-size-body-medium);background-color:var(--td-bg-color-secondarycontainer)}.t-image-viewer__dialog .t-dialog__header-content{justify-content:center;margin-left:32px}.t-image-viewer__dialog .t-dialog__close:hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-image-viewer__trigger{justify-content:center;align-items:center;width:100%;height:100%;display:inline-flex;position:relative;overflow:hidden}.t-image-viewer__trigger:hover .t-image-viewer__trigger--hover{opacity:1;cursor:pointer}.t-image-viewer__trigger--hover{opacity:0;background-color:var(--td-mask-active);width:100%;height:100%;color:var(--td-text-color-anti);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:0;left:0}.t-image-viewer__trigger-img{cursor:pointer;z-index:0;width:100%;height:100%;position:absolute}.t-image-viewer__trigger .t-image__wrapper{background:0 0}.t-image-viewer__trigger-icon{margin-right:4px}.t-list{font:var(--td-font-body-medium);box-sizing:border-box;color:var(--td-text-color-primary);background:var(--td-bg-color-container);margin:0;padding:0;list-style:none;overflow:auto}@-moz-document url-prefix(){.t-list{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-list::-webkit-scrollbar{width:6px;height:6px}.t-list::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.t-list::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-list::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-list__inner{margin:0;padding:0;list-style:none}.t-list-item{font:var(--td-font-body-medium);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);justify-content:space-between;align-items:center;display:flex;position:relative}.t-list-item:after{content:"";width:100%;height:1px;position:absolute;bottom:0;left:0}.t-list-item-main{flex:1;justify-content:space-between;align-items:center;width:100%;display:flex}.t-list-item__meta{display:flex}.t-list-item__meta-avatar{width:var(--td-comp-size-xxxl);height:var(--td-comp-size-xxxl);border-radius:calc(var(--td-comp-size-xxxl) / 2);background:var(--td-bg-color-page);margin-right:var(--td-comp-margin-l);flex-shrink:0;overflow:hidden}.t-list-item__meta-avatar img{width:100%;max-width:100%;height:100%}.t-list-item__meta-title{font:var(--td-font-title-medium);margin:0 0 var(--td-comp-margin-s);color:var(--td-text-color-primary);padding:0}.t-list-item__meta-description{margin:0 var(--td-comp-margin-xxl) 0 0;color:var(--td-text-color-primary)}.t-list-item__action{flex-shrink:0;padding:0;list-style:none}.t-list-item__action>li{display:inline-block}.t-list-item__action>li:not(:last-child){margin-right:var(--td-comp-margin-l)}.t-list-item__action>li .t-icon{color:var(--td-text-color-secondary);font-size:var(--td-comp-size-xxxs)}.t-list-item__action>li .t-icon:hover{color:var(--td-text-color-link);cursor:pointer}.t-list-item__action>li>a{color:var(--td-brand-color);text-decoration:none}.t-list--split .t-list-item:not(:last-child):after{background:var(--td-border-level-1-color)}.t-list--split .t-list__header{border-bottom:1px solid;border-bottom-color:var(--td-border-level-1-color)}.t-list--split .t-list__load:not(:empty),.t-list--split .t-list__footer{border-top:1px solid;border-top-color:var(--td-border-level-1-color)}.t-list--stripe .t-list-item:nth-child(2n){background:var(--td-bg-color-secondarycontainer)}.t-list--vertical-action .t-list-item{flex-direction:column}.t-list.t-size-s .t-list-item{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-m)}.t-list.t-size-l .t-list-item{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-list__header,.t-list__footer{background:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load{background:var(--td-bg-color-container);text-align:center;line-height:var(--td-line-height-body-medium)}.t-list__load>div{justify-content:center;align-items:center;display:flex}.t-list__load:not(:empty){padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-list__load .t-loading{font-size:var(--td-comp-size-xxxs);margin-right:var(--td-comp-margin-s)}.t-list__load .t-loading.t-is-load-more{cursor:pointer}.t-progress{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-progress__inner{background:var(--td-brand-color);border-radius:var(--td-radius-round);height:100%;transition:all .2s cubic-bezier(.38,0,.24,1);position:relative}.t-progress__info{margin-left:var(--td-comp-margin-s);color:var(--td-text-color-primary);white-space:nowrap;display:inline-flex}.t-progress__icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-progress__bar{width:100%;height:var(--td-size-3);background:var(--td-bg-color-component);border-radius:var(--td-radius-round);overflow:hidden}.t-progress--thin{justify-content:space-between;align-items:center;display:flex}.t-progress--plump{height:var(--td-comp-size-xxs);border-radius:calc(var(--td-comp-size-xxs) / 2);align-items:center;display:flex}.t-progress--plump .t-progress__info{font-size:var(--td-font-size-body-small)}.t-progress--over-ten .t-progress__info{z-index:10;top:50%;right:var(--td-comp-margin-s);color:var(--td-text-color-anti);position:absolute;transform:translateY(-50%)}.t-progress--under-ten .t-progress__info,.t-progress--under-ten .t-progress__inner{display:inline-block}.t-progress--under-ten .t-progress__info{vertical-align:top}.t-size-s.t-progress--thin .t-progress__bar{height:var(--td-size-2)}.t-size-s.t-progress--thin .t-progress__info{font-size:10px}.t-size-s.t-progress--plump{height:var(--td-comp-size-xxxs)}.t-size-s.t-progress--plump .t-progress__info{font-size:10px}.t-progress--circle{position:relative}.t-progress--circle .t-progress__info{width:100%;font-size:inherit;text-align:center;margin:0;font-weight:600;line-height:1;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.t-progress--circle .t-progress__circle-outer{stroke:var(--td-bg-color-component)}.t-progress--circle .t-progress__circle-inner{stroke:var(--td-brand-color);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress--circle .t-progress__icon{font-size:2.4em}.t-progress--status--active .t-progress__inner:before{z-index:1;content:"";background:var(--td-text-color-anti);opacity:.2;animation:2s cubic-bezier(.23,.99,.86,.2) infinite progress-active-animation;position:absolute;inset:0}.t-progress--status--success .t-progress__inner{background:var(--td-success-color)}.t-progress--status--success .t-progress__circle-inner{stroke:var(--td-success-color)}.t-progress--status--success .t-progress__icon{color:var(--td-success-color)}.t-progress--status--warning .t-progress__inner{background:var(--td-warning-color)}.t-progress--status--warning .t-progress__circle-inner{stroke:var(--td-warning-color)}.t-progress--status--warning .t-progress__icon{color:var(--td-warning-color)}.t-progress--status--error .t-progress__inner{background:var(--td-error-color)}.t-progress--status--error .t-progress__circle-inner{stroke:var(--td-error-color)}.t-progress--status--error .t-progress__icon{color:var(--td-error-color)}@keyframes progress-active-animation{0%{opacity:.1;width:0}35%{opacity:.4;width:50%}to{opacity:0;width:100%}}:root,:root[theme-mode=light]{--skeleton-animation-gradient:#0000000a}:root[theme-mode=dark]{--skeleton-animation-gradient:#ffffff0f}.t-skeleton{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-skeleton__row{margin-bottom:var(--td-comp-margin-l);align-items:center;display:flex}.t-skeleton__row:only-child,.t-skeleton__row:last-child{margin-bottom:0}.t-skeleton__col{background-color:var(--td-bg-color-secondarycontainer);color:var(--td-text-color-disabled);margin-right:var(--td-comp-margin-l);justify-content:center;align-items:center;display:flex}.t-skeleton__col:first-child:last-child,.t-skeleton__col:last-child{margin-right:0}.t-skeleton--type-text{width:100%;height:var(--td-font-size-body-large);border-radius:var(--td-radius-default)}.t-skeleton--type-rect{border-radius:var(--td-radius-default);width:120px;height:88px}.t-skeleton--type-circle{border-radius:var(--td-radius-circle);flex-shrink:0;width:32px;height:32px}.t-skeleton--animation-gradient{position:relative;overflow-x:hidden}.t-skeleton--animation-gradient:after{content:" ";background:linear-gradient(90deg, #fff0, var(--skeleton-animation-gradient), #fff0);animation:1.5s linear infinite t-skeleton--gradient;position:absolute;inset:0}.t-skeleton--animation-flashed{animation:2s linear infinite t-skeleton--flashed}@keyframes t-skeleton--gradient{0%{transform:translate(-100%)skew(-15deg)}to{transform:translate(100%)skew(-15deg)}}@keyframes t-skeleton--flashed{0%{opacity:1}50%{opacity:.3;background-color:#e6e6e64d}to{opacity:1}}.t-statistic{font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);color:var(--td-text-color-secondary);display:inline-block}.t-statistic-title{font-size:var(--td-font-body-medium);margin-bottom:var(--td-comp-margin-s)}.t-statistic-content{color:var(--td-text-color-primary);text-align:left;white-space:nowrap;display:inline-block}.t-statistic-content-value{font-size:var(--td-font-size-headline-medium);line-height:var(--td-line-height-headline-medium);font-family:TCloudNumber,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.t-statistic-content-unit{font-size:var(--td-font-size-body-medium);margin-left:var(--td-comp-margin-xs);font-family:TCloudNumber,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.t-statistic-content-suffix{font-size:var(--td-font-size-title-large);margin-left:var(--td-comp-margin-s);align-items:center;display:inline-flex}.t-statistic-content-prefix{font-size:var(--td-font-size-title-large);margin-right:var(--td-comp-margin-s);align-items:center;display:inline-flex}.t-statistic-content-prefix .t-icon{font-size:var(--td-font-size-title-large)}.t-statistic-extra{margin-top:8px}.t-statistic-extra .t-space .t-space-item{display:flex}.t-swiper{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;height:fit-content;margin:0;padding:0;list-style:none;position:relative}.t-swiper__wrap{height:100%;display:block;position:relative}.t-swiper__content{z-index:1;position:relative;overflow:hidden}.t-swiper__container{z-index:1;flex-direction:row;height:100%;display:flex;position:relative}.t-swiper__container__item{flex:none;width:100%;height:100%;display:inline-block}.t-swiper__arrow{align-items:center;display:flex}.t-swiper__arrow svg.t-icon{width:20px;height:20px}.t-swiper__arrow svg.t-icon:before{font-size:24px}.t-swiper__arrow--default .t-swiper__arrow-left{z-index:2;width:24px;height:24px;color:var(--td-font-white-2);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;transition:all .2s linear;display:flex;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.t-swiper__arrow--default .t-swiper__arrow-left:hover{color:var(--td-bg-color-container);background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);transition:all .2s linear}.t-swiper__arrow--default .t-swiper__arrow-left:active{background-color:var(--td-font-white-3);transition:all .2s linear}.t-swiper__arrow--default .t-swiper__arrow-right{z-index:2;width:24px;height:24px;color:var(--td-font-white-2);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;transition:all .2s linear;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.t-swiper__arrow--default .t-swiper__arrow-right:hover{color:var(--td-bg-color-container);background-color:var(--td-font-white-4);border-radius:var(--td-radius-default);transition:all .2s linear}.t-swiper__arrow--default .t-swiper__arrow-right:active{background-color:var(--td-font-white-3);transition:all .2s linear}.t-swiper-card .t-swiper__container{display:block}.t-swiper-card .t-swiper__container .t-is-active{z-index:2}.t-swiper-card .t-swiper__card{z-index:0;width:41.5%;height:100%;position:absolute;top:0;left:0}.t-swiper-fade .t-swiper__container{display:block}.t-swiper-fade .t-swiper__fade{position:absolute;top:0;left:0}.t-swiper__navigation{z-index:2;flex-direction:row;margin:0;padding:0;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.t-swiper__navigation>li{flex:1 0 auto;list-style-type:none;display:flex}.t-swiper__navigation .t-swiper__arrow svg.t-icon{width:16px;height:16px}.t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;width:14px;height:auto;margin:0 0 0 6px;padding:18px 0}.t-swiper__navigation-bars .t-swiper__navigation-item span{width:100%;height:3px}.t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;width:14px;height:auto;margin:0 0 0 6px;padding:18px 0}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;width:100%;height:3px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{width:24px}.t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;width:var(--td-size-2);height:auto;margin:0 0 0 6px;padding:18px 0}.t-swiper__navigation-dots .t-swiper__navigation-item span{width:100%;height:var(--td-size-2);border-radius:50%}.t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper__navigation--fraction{top:auto;left:50%;right:auto;bottom:calc(0px - calc(var(--td-line-height-body-medium) + 12px));height:var(--td-line-height-body-medium);line-height:var(--td-line-height-body-medium);position:absolute;transform:translate(-50%)}.t-swiper__navigation--fraction .t-swiper__arrow-left{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-medium);height:var(--td-line-height-body-medium);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__arrow-right{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-medium);height:var(--td-line-height-body-medium);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{font-size:var(--td-font-size-body-medium);color:var(--td-text-color-secondary);margin:0;display:inline-block}.t-swiper--vertical .t-swiper__container{flex-direction:column}.t-swiper--vertical .t-swiper__navigation{flex-direction:column;justify-content:center;display:flex;position:absolute;inset:50% 0 auto auto;transform:translateY(-50%)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;width:auto;height:14px;margin:6px 0 0;padding:0 18px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{width:3px;height:100%}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;width:auto;height:14px;margin:6px 0 0;padding:0 18px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1.5px;width:3px;height:100%}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{height:24px}.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;width:auto;max-height:var(--td-size-2);margin:6px 0 0;padding:0 18px}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{width:var(--td-size-2);border-radius:50%;height:100%}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--outside .t-swiper__navigation{bottom:-36px}.t-swiper--outside .t-swiper__navigation--fraction{top:auto;left:50%;right:auto;bottom:calc(0px - calc(var(--td-line-height-body-medium) + 12px));height:var(--td-line-height-body-medium);line-height:var(--td-line-height-body-medium);position:absolute;transform:translate(-50%)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-medium);height:var(--td-line-height-body-medium);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-medium);height:var(--td-line-height-body-medium);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{font-size:var(--td-font-size-body-medium);color:var(--td-text-color-secondary);margin:0;display:inline-block}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active,.t-swiper--outside .t-swiper__navigation-bars .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--outside .t-swiper__navigation-dots .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active,.t-swiper--outside .t-swiper__navigation-dots-bar .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation{bottom:auto;right:-36px}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction{top:auto;left:50%;right:auto;bottom:calc(0px - calc(var(--td-line-height-body-medium) + 12px));height:var(--td-line-height-body-medium);line-height:var(--td-line-height-body-medium);position:absolute;transform:translate(-50%)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-medium);height:var(--td-line-height-body-medium);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-medium);height:var(--td-line-height-body-medium);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{font-size:var(--td-font-size-body-medium);color:var(--td-text-color-secondary);margin:0;display:inline-block}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active,.t-swiper--outside.t-swiper--vertical .t-swiper__navigation-bars .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation{bottom:0}.t-swiper--inside .t-swiper__navigation--fraction{top:auto;left:50%;right:auto;bottom:calc(0px - calc(var(--td-line-height-body-medium) + 12px));height:var(--td-line-height-body-medium);line-height:var(--td-line-height-body-medium);position:absolute;transform:translate(-50%)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-medium);height:var(--td-line-height-body-medium);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-medium);height:var(--td-line-height-body-medium);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--inside .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{font-size:var(--td-font-size-body-medium);color:var(--td-text-color-secondary);margin:0;display:inline-block}.t-swiper--large .t-swiper__arrow i.t-icon:before{font-size:32px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-left{width:32px;height:32px;left:24px}.t-swiper--large .t-swiper__arrow--default .t-swiper__arrow-right{width:32px;height:32px;right:24px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;width:21px;height:auto;margin:0 0 0 8px;padding:24px 0}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{width:100%;height:4px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:36px}.t-swiper--large .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;width:21px;height:auto;margin:0 0 0 8px;padding:24px 0}.t-swiper--large .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:2px;width:100%;height:4px}.t-swiper--large .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--large .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{width:36px}.t-swiper--large .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;width:var(--td-size-3);height:auto;margin:0 0 0 8px;padding:24px 0}.t-swiper--large .t-swiper__navigation-dots .t-swiper__navigation-item span{width:100%;height:var(--td-size-3);border-radius:50%}.t-swiper--large .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--large .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--large .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large .t-swiper__navigation--fraction{top:auto;left:50%;right:auto;bottom:calc(0px - calc(var(--td-line-height-body-large) + 12px));height:var(--td-line-height-body-large);line-height:var(--td-line-height-body-large);position:absolute;transform:translate(-50%)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-large);height:var(--td-line-height-body-large);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-large);height:var(--td-line-height-body-large);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--large .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{font-size:var(--td-font-size-body-large);color:var(--td-text-color-secondary);margin:0;display:inline-block}.t-swiper--large.t-swiper--outside .t-swiper__navigation{bottom:-48px}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active,.t-swiper--large.t-swiper--outside .t-swiper__navigation-bars .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active,.t-swiper--large.t-swiper--outside .t-swiper__navigation-dots-bar .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--large.t-swiper--outside .t-swiper__navigation-dots .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;width:auto;height:21px;margin:8px 0 0;padding:0 24px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{width:4px;height:100%}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:36px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;width:auto;height:21px;margin:8px 0 0;padding:0 24px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:2px;width:4px;height:100%}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{height:36px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;width:auto;max-height:var(--td-size-3);margin:8px 0 0;padding:0 24px}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{width:var(--td-size-3);border-radius:50%;height:100%}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--large.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-48px}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active,.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active,.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots-bar .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--large.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__arrow i.t-icon:before{font-size:16px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-left{width:16px;height:16px;left:8px}.t-swiper--small .t-swiper__arrow--default .t-swiper__arrow-right{width:16px;height:16px;right:8px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;width:10px;height:auto;margin:0 0 0 4px;padding:12px 0}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{width:100%;height:2px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{width:16px}.t-swiper--small .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;width:10px;height:auto;margin:0 0 0 4px;padding:12px 0}.t-swiper--small .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1px;width:100%;height:2px}.t-swiper--small .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--small .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{width:16px}.t-swiper--small .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;width:var(--td-size-1);height:auto;margin:0 0 0 4px;padding:12px 0}.t-swiper--small .t-swiper__navigation-dots .t-swiper__navigation-item span{width:100%;height:var(--td-size-1);border-radius:50%}.t-swiper--small .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-left:0}.t-swiper--small .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--small .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small .t-swiper__navigation--fraction{top:auto;left:50%;right:auto;bottom:calc(0px - calc(var(--td-line-height-body-small) + 12px));height:var(--td-line-height-body-small);line-height:var(--td-line-height-body-small);position:absolute;transform:translate(-50%)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-small);height:var(--td-line-height-body-small);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-left:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right{z-index:2;color:var(--td-text-color-secondary);width:var(--td-line-height-body-small);height:var(--td-line-height-body-small);cursor:pointer;background-color:#0000;justify-content:center;align-items:center;display:flex}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:hover{color:var(--td-text-color-primary)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__arrow-right:active{color:var(--td-brand-color-active)}.t-swiper--small .t-swiper__navigation--fraction .t-swiper__navigation-text-fraction{font-size:var(--td-font-size-body-small);color:var(--td-text-color-secondary);margin:0;display:inline-block}.t-swiper--small.t-swiper--outside .t-swiper__navigation{bottom:-24px}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active,.t-swiper--small.t-swiper--outside .t-swiper__navigation-bars .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active,.t-swiper--small.t-swiper--outside .t-swiper__navigation-dots-bar .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--small.t-swiper--outside .t-swiper__navigation-dots .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item{cursor:pointer;width:auto;height:10px;margin:4px 0 0;padding:0 12px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{width:2px;height:100%}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active{height:16px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-bars .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item{cursor:pointer;width:auto;height:10px;margin:4px 0 0;padding:0 12px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{border-radius:1px;width:2px;height:100%}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active{height:16px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots-bar .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item{cursor:pointer;width:auto;max-height:var(--td-size-1);margin:4px 0 0;padding:0 12px}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{width:var(--td-size-1);border-radius:50%;height:100%}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item:first-child{margin-top:0}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span{background:var(--td-font-white-4)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-font-white-2)}.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--small.t-swiper--vertical .t-swiper__navigation-dots .t-swiper__navigation-item.t-is-active span{background-color:var(--td-bg-color-container)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation{right:-24px}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-swiper__navigation-item span:active,.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-bars .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots-bar .t-swiper__navigation-item span:active,.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots-bar .t-is-active span{background-color:var(--td-brand-color-active)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span{background-color:var(--td-text-color-disabled)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:hover{background-color:var(--td-text-color-primary)}.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots .t-swiper__navigation-item span:active,.t-swiper--small.t-swiper--vertical.t-swiper--outside .t-swiper__navigation-dots .t-is-active span{background-color:var(--td-brand-color-active)}@-moz-document url-prefix(){.scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.scrollbar::-webkit-scrollbar{width:6px;height:6px}.scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.scrollbar::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-track{background:var(--td-scroll-track-color)}.scrollbar.t-table__scrollbar--obvious::-webkit-scrollbar-track{background:var(--td-scroll-track-color)}.t-table__affixed-footer-wrap>.scrollbar.t-table__affixed-footer-elm::-webkit-scrollbar-thumb{background:0 0}.t-table--width-overflow.t-table--footer-affixed .t-table__content::-webkit-scrollbar-thumb{background:0 0}.t-table--width-overflow.t-table--horizontal-bar-affixed .t-table__content::-webkit-scrollbar-thumb{background:0 0}.t-table.t-table--overflow-visible{overflow:initial}.t-table{box-sizing:border-box;width:100%;font:var(--td-font-body-medium);color:var(--td-text-color-primary);background-color:var(--td-bg-color-container);margin:0;padding:0;list-style:none;position:relative}.t-table .t-popup:not(.t-tooltip)[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-table:focus-visible{outline:none}.t-table .t-loading--full{z-index:72}.t-table.t-vertical-align-top th:not(.t-table__cell-check),.t-table.t-vertical-align-top td:not(.t-table__cell-check){vertical-align:top}.t-table.t-vertical-align-middle th:not(.t-table__cell-check),.t-table.t-vertical-align-middle td:not(.t-table__cell-check){vertical-align:middle}.t-table.t-vertical-align-bottom th:not(.t-table__cell-check),.t-table.t-vertical-align-bottom td:not(.t-table__cell-check){vertical-align:bottom}.t-table .t-table__resize-line{border-left:1px solid var(--td-component-border);z-index:1001;width:0;display:none;position:absolute;left:10px}.t-table__column-controller-trigger.t-align-top-right,.t-table__column-controller-trigger.t-align-bottom-right{text-align:right}.t-table__column-controller-trigger{padding:var(--td-comp-paddingTB-l) 0}.t-table__column-controller-item:not(:last-child){margin-bottom:var(--td-comp-margin-l)}.t-table__content{position:relative}@-moz-document url-prefix(){.t-table__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__content::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}@-moz-document url-prefix(){.t-table__content{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__content::-webkit-scrollbar{width:6px;height:6px}.t-table__content::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.t-table__content::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__content::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__pagination{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);box-sizing:border-box}.t-table .t-icon{font-size:var(--td-font-size-body-large)}.t-table table{border-spacing:0;width:100%}.t-table .t-text-ellipsis{line-height:var(--td-line-height-body-medium);white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;overflow:hidden}.t-table th,.t-table td{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);border-bottom:1px solid var(--td-component-border);line-height:var(--td-line-height-body-medium);overflow-wrap:break-word;background-color:inherit;box-sizing:border-box;text-align:left;font-weight:400;position:relative}.t-table th.t-table__th-drag{text-align:center;height:0;padding:0}.t-table thead td,.t-table th{color:var(--td-text-color-placeholder)}.t-table td[key=row-select]{padding:13px 0 11px var(--td-comp-paddingLR-l)}.t-table td.t-align-left,.t-table th.t-align-left{text-align:left}.t-table td.t-align-right,.t-table th.t-align-right{text-align:right}.t-table td.t-align-center,.t-table th.t-align-center{text-align:center}.t-table tr{background-color:var(--td-bg-color-container)}.t-table.t-size-s th,.t-table.t-size-s td{padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s)}.t-table.t-size-l th,.t-table.t-size-l td{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl)}.t-table .t-table__expanded-row>td,.t-table .t-table__row--full>td{padding:0}.t-table .t-table__expandable-icon-cell,.t-table .t-table__selection-cell{height:0;padding:0}.t-table td.t-table__handle-draggable{text-align:center;height:0;padding:0}.t-table .t-table__cell--selectable>.t-checkbox{vertical-align:middle}.t-table .t-table__cell--selectable+td,.t-table .t-table__cell--selectable+th{padding-left:0}.t-table--bordered td,.t-table--bordered th{border-left:1px solid var(--td-component-border)}.t-table--bordered td.t-table__cell--fixed-left-last:before,.t-table--bordered th.t-table__cell--fixed-left-last:before{border-right:1px solid var(--td-component-border)}.t-table--bordered th:first-child,.t-table--bordered td.t-table__td-first-col,.t-table--bordered:not(.t-table--rowspan-colspan) td:first-child{border-left-width:0}.t-table--bordered .t-table__content{border-left:1px solid var(--td-component-border)}.t-table--bordered .t-table__content::-webkit-scrollbar-corner{background-color:#0000}.t-table--bordered .t-table__content{border:1px solid var(--td-component-border);border-radius:var(--td-radius-default)}.t-table--bordered .t-table--loading{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__pagination{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table--bordered .t-table__bottom-content+.t-table__pagination{padding:0}.t-table--bordered.t-table__header--fixed .t-table__content{border-bottom:1px solid var(--td-component-border)}.t-table--bordered .t-table__td-last-row,.t-table--striped:not(.t-table--bordered) th,.t-table--striped:not(.t-table--bordered) td{border-bottom:none}.t-table--striped.t-table--header-fixed>.t-table__content>table>tbody tr:nth-of-type(2n),.t-table--striped:not(.t-table--header-fixed)>.t-table__content>table>tbody>tr:nth-of-type(odd):not(.t-table__expanded-row){background-color:var(--td-bg-color-secondarycontainer)}.t-table--striped.t-table--hoverable.t-table__header--fixed tbody tr:nth-of-type(2n):hover,.t-table--striped.t-table--hoverable:not(.t-table__header--fixed)>.t-table__content>table>tbody tr:nth-of-type(odd):hover{background-color:var(--td-bg-color-secondarycontainer-hover)}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr{transition:background-color .2s linear}.t-table--striped.t-table--hoverable>.t-table__content>table>tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table--hoverable tbody tr{transition:background-color .2s linear}.t-table--hoverable tbody tr:hover{background-color:var(--td-bg-color-container-hover)}.t-table.t-table--align-top tbody td{vertical-align:top}.t-table .t-table__cell--highlight{background-color:var(--td-bg-color-secondarycontainer)}.t-table__header--fixed table{table-layout:fixed}.t-table__header--fixed th,.t-table__header--fixed td{overflow-wrap:break-word}.t-table__header--fixed.t-table__header,.t-table__header--fixed .t-table__header{z-index:5;width:fit-content;position:relative}@-moz-document url-prefix(){.t-table__header--fixed .t-table__header{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}@-moz-document url-prefix(){.t-table__header--fixed .t-table__header{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__header::-webkit-scrollbar{width:6px;height:6px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__header::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__body{width:fit-content;overflow-y:auto}@-moz-document url-prefix(){.t-table__header--fixed .t-table__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}@-moz-document url-prefix(){.t-table__header--fixed .t-table__body{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.t-table__header--fixed .t-table__body::-webkit-scrollbar{width:6px;height:6px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:0 solid #0000;border-radius:11px}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.t-table__header--fixed .t-table__body::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-table:not(.t-table--bordered) .t-table__cell--selectable+td,.t-table:not(.t-table--bordered) .t-table__cell--selectable+th{padding-left:0}.t-table__cell--fixed.t-table__header--fixed .t-table__header{width:100%;overflow:hidden}.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-left:last-child:after,.t-table__cell--fixed.t-table__header--fixed .t-table__header .t-table__cell--fixed-right:last-child:after{content:"";background-color:var(--td-bg-color-secondarycontainer);width:6px;height:100%;position:absolute;top:0;right:-6px}.t-table__cell--fixed.t-table__header--fixed .t-table__body{overflow:auto scroll}.t-table__cell--fixed .t-table__content{overflow:auto hidden}.t-table__cell--fixed table{table-layout:fixed;min-width:100%}.t-table__cell--fixed th,.t-table__cell--fixed td{position:relative}.t-table__cell--fixed .t-table__cell--fixed-left-last:before{z-index:-1;background-color:inherit}.t-table__cell--fixed .t-table__cell--fixed-left-last:after{content:"";pointer-events:none;z-index:-2;transition:box-shadow .3s;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.t-table__cell--fixed .t-table__cell--fixed-right-first:before{z-index:-1;background-color:inherit}.t-table__cell--fixed .t-table__cell--fixed-right-first:after{content:"";pointer-events:none;z-index:-2;transition:box-shadow .3s;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.t-table .t-table__cell-resizable{position:relative}.t-table .t-table__cell-resizable .t-table__cell--resizer{z-index:10;cursor:col-resize;width:10px;position:absolute;top:0;bottom:0;right:-5px}.t-table .t-table__row--disabled{color:var(--td-text-color-disabled)}.t-table .t-table__cell--title{align-items:center;display:flex}.t-table__column-controller-desc{margin-bottom:var(--td-comp-margin-xxl)}.t-table__column-controller-block{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);border:1px solid var(--td-component-border);border-bottom:1px solid var(--td-component-border)}.t-table__column-controller-block+.t-table__column-controller-block{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);border-top:0;border-bottom:1px solid var(--td-component-border)}.t-table__column-controller--fixed .t-checkbox{width:108px}.t-table.t-table__row--active-single tbody>tr.t-table__row--active,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active{background-color:var(--td-brand-color-light)}.t-table.t-table__row--active-single tbody>tr.t-table__row--active.t-table__row--hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--active.t-table__row--hover,.t-table.t-table--hoverable tbody>tr.t-table__row--active:hover{background-color:var(--td-brand-color-light-hover)}.t-table.t-table--row-expandable tbody>tr.t-table__row--hover,.t-table.t-table--row-select tbody>tr.t-table__row--hover,.t-table.t-table__row--active-multiple tbody>tr.t-table__row--hover{background-color:var(--td-bg-color-container-hover)}.t-table--bordered .t-table__cell--sortable .t-table__cell--title,.t-table--bordered .t-table__cell--filterable .t-table__cell--title{justify-content:space-between}.t-table th.t-align-right .t-table__cell--title{justify-content:flex-end}.t-table__cell--sort-trigger{text-align:center;vertical-align:text-bottom}.t-table__cell--sort-trigger svg{vertical-align:initial}.t-table--loading{position:relative}.t-table--loading-progressbar{background-color:var(--td-brand-color);height:1px;animation:2s ease-in-out both tTableProgressbar;position:absolute;top:0;left:0;overflow:hidden}.t-table--loading-message{min-height:120px;color:var(--td-text-color-placeholder);justify-content:center;align-items:center;display:flex}.t-table__expanded-cell{padding-left:45px}.t-table__async-loading{text-align:center}.t-table__async-loading.t-is-load-more{cursor:pointer}.t-table__empty{min-height:120px;color:var(--td-text-color-disabled);justify-content:center;align-items:center;display:flex}.t-table__filter-icon,.t-table__sort-icon{cursor:pointer;vertical-align:text-bottom;background-color:#0000;align-items:center;transition:all .2s linear;display:inline-flex}.t-table__filter-icon>svg,.t-table__sort-icon>svg{margin-top:0}.t-table__sort-icon .t-is-focus,.t-table__sort-icon.t-is-focus,.t-table__sort-icon:hover{color:var(--td-brand-color);border-radius:var(--td-radius-circle);transition:all .2s linear}.t-table__filter-icon .t-is-focus,.t-table__filter-icon.t-is-focus,.t-table__filter-icon:hover{color:var(--td-brand-color);transition:all .2s linear}.t-table__filter-pop .t-popup__content{padding:0}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-table__filter-popup-input{margin-bottom:var(--td-comp-margin-s)}.t-table__filter-pop .t-table__filter-pop-content .t-radio-group{height:auto;display:block}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox-group{display:block}.t-table__filter-pop .t-table__filter-pop-content .t-checkbox,.t-table__filter-pop .t-table__filter-pop-content .t-radio{margin:var(--td-comp-margin-xs) 0;display:block}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button{border-top:1px solid var(--td-component-border);padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l)}.t-table__filter-pop .t-table__filter-pop-content .t-table__filter-pop-content-button .t-button+.t-button{margin-left:var(--td-comp-margin-l)}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner{max-height:280px;padding:0;position:relative;overflow:auto}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-input__wrap{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l) 0 var(--td-comp-paddingLR-l);z-index:1;background-color:var(--td-bg-color-container);position:sticky;top:0}.t-table__filter-pop .t-table__list-filter-input--sticky .t-table__filter-pop-content .t-table__filter-pop-content-inner .t-radio-group{padding:0 var(--td-comp-paddingLR-l)}.t-table__filter-pop-content-inner>.t-input__wrap{width:200px}.t-table__filter-pop-content-inner>.t-date-range-picker__panel{margin:calc(0px - var(--td-comp-margin-l))}.t-table__sort-icon--active{color:var(--td-brand-color);transition:all .2s linear}.t-table__double-icons{flex-direction:column;justify-content:center;display:flex}.t-table__double-icons .t-table__sort-icon{position:relative}.t-table__double-icons .t-table-sort-asc{top:var(--td-comp-margin-xxs)}.t-table__double-icons .t-table-sort-desc{bottom:var(--td-comp-margin-xxs)}.t-table__filter-icon-wrap{pointer-events:all;height:var(--td-font-size-body-large);width:var(--td-font-size-body-large);margin-left:var(--td-comp-margin-s);align-items:center;display:flex}.t-table--bordered .t-table__filter-icon-wrap{justify-content:flex-end}.t-table--bordered .t-table__cell--sortable.t-table__cell--filterable .t-table__filter-icon-wrap{flex:1;justify-content:space-between}.t-table .t-align-center .t-table__cell--sortable,.t-table .t-align-center .t-table__cell--filterable{justify-content:space-around;display:flex}.t-table__expand-box{width:100%;height:100%;color:var(--td-text-color-placeholder);cursor:pointer;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.38,0,.24,1);display:flex}.t-table__expand-box:hover{color:var(--td-brand-color);transition:all .2s linear}@keyframes tTableProgressbar{0%{width:0}to{width:100%}}.t-table__th-row-select .t-table__th-cell-inner{align-items:center;display:inline-flex}.t-table-expandable-icon-cell+.t-table__cell--selectable[key=row-select]{padding-left:var(--td-comp-margin-s)}.t-table__filter--bottom-buttons{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);border-top:1px solid var(--td-component-border);justify-content:flex-end;display:flex}.t-table__filter--bottom-buttons>.t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-table__row-filter-inner{text-align:center;position:sticky;left:0}.t-table__filter-result{justify-content:center;align-items:center;display:flex}.t-table__filter-result>.t-button{margin-left:var(--td-comp-margin-s)}.t-table--layout-fixed{table-layout:fixed}.t-table--layout-auto{table-layout:auto}.t-table__ellipsis{white-space:nowrap;width:100%}.t-table__content{overflow:auto}.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:2px solid var(--td-component-border)}.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:2px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-left .t-table__cell--fixed-left-last:after{border-right:4px solid var(--td-component-border)}.t-table--bordered.t-table__content--scrollable-to-right .t-table__cell--fixed-right-first:after{border-left:4px solid var(--td-component-border)}.t-table__scroll-bar-divider{border-right:1px solid var(--td-component-border);z-index:71;height:100%;position:absolute;bottom:0;right:0}.t-table__footer,.t-table__header.t-table__header--fixed{z-index:50;position:sticky}.t-table:not(.t-table--striped) .t-table__footer>tr,.t-table__header--fixed:not(.t-table__header--multiple)>tr>th{background-color:var(--td-bg-color-secondarycontainer)}.t-table__row--fixed-top,.t-table__row--fixed-bottom{z-index:70;position:sticky}.t-table__row--fixed-bottom-first>td{border-top:1px solid var(--td-component-border)}.t-table--bordered .t-table__content .t-table__row--without-border-bottom>td,.t-table--bordered tbody>tr:last-child>td,.t-table--bordered tfoot>tr:last-child>td{border-bottom:0}.t-table--bordered tfoot>tr:first-child>td{border-top:1px solid var(--td-component-border)}.t-table__header.t-table__header--fixed{top:0}.t-table__footer.t-table__footer--fixed{bottom:0}.t-table--column-fixed .t-table__cell--fixed-left-last:before{z-index:-1;background-color:inherit}.t-table--column-fixed .t-table__cell--fixed-left-last:after{content:"";pointer-events:none;z-index:-2;transition:box-shadow .3s;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.t-table--column-fixed .t-table__cell--fixed-right-first:before{z-index:-1;background-color:inherit}.t-table--column-fixed .t-table__cell--fixed-right-first:after{content:"";pointer-events:none;z-index:-2;transition:box-shadow .3s;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.t-table--column-fixed .t-table__cell--fixed-left,.t-table--column-fixed .t-table__cell--fixed-right{position:sticky}.t-table--column-fixed .t-table__cell--fixed-left{z-index:30}.t-table--column-fixed .t-table__cell--fixed-right{z-index:31}.t-table__empty-row>td{border:0;padding:0}.t-table:not(.t-table--bordered) .t-table__header.t-table--bordered>tr:first-child>th{border-top:1px solid var(--td-component-border)}.t-table--multiple-header .t-table__header th.t-table__header-th--bordered{border-left-width:1px}.t-table__header.t-table__header--multiple>tr{background-color:var(--td-bg-color-container)}.t-table__tree-op-icon{margin-right:var(--td-comp-margin-s);cursor:pointer;vertical-align:-3px;display:inline-flex}.t-table__tree-op-icon:hover{color:var(--td-brand-color);transition:all .2s linear}.t-table__tree-leaf-node .t-table__tree-op-icon{min-width:0;margin-right:var(--td-comp-margin-xxs)}.t-table__virtual-scroll-cursor{width:1px;height:1px;transition:transform .2s;position:absolute}.t-table__virtual-scroll-header{z-index:51;position:absolute;left:0}.t-table__affixed-header-elm-wrap{overflow:hidden}.t-table__affixed-header-elm-wrap,.t-table__affixed-header-elm{z-index:51;position:absolute;left:0}.t-table__affixed-header-elm{opacity:1;transition:opacity .2s linear;overflow:auto}.t-table__affixed-footer-elm{z-index:50;overflow:auto}.t-table--bordered .t-table__affixed-header-elm{border:1px solid var(--td-component-border);border-bottom:0;border-right:0}.t-table--bordered .t-table__affixed-footer-elm{border-left:1px solid var(--td-component-border);border-bottom:1px solid var(--td-component-border)}.t-table--multiple-header.t-table--bordered .t-table__affixed-header-elm{border-right:0}.t-is-hidden{display:none}.t-positive-rotate-90{transform:rotate(90deg)}.t-negative-rotate-180{transform:rotate(180deg)}.t-table__row-full-element{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-table__row-full-inner{position:sticky;left:0}.t-table__row-full-inner:not(.t-table__empty){display:inline-block}.t-table__tree-col{align-items:center;display:flex}.t-table__tree-col--inline{display:inline}.t-table--full-height{height:100%}.t-table--loading .t-table__content{min-height:168px}.t-table__handle-draggable:hover,.t-table--row-draggable tr,.t-table__th--drag-sort{cursor:move}.t-table__ele--draggable-chosen{box-shadow:var(--td-shadow-1)}.t-table:not(.t-table--row-edit) .t-table__cell--editable{min-height:22px;line-height:var(--td-line-height-body-medium);cursor:pointer}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon{margin-left:var(--td-comp-margin-s);font-size:var(--td-font-size-body-large);color:var(--td-text-color-placeholder);transition:all .2s linear}.t-table:not(.t-table--row-edit) .t-table__cell--editable .t-icon:hover{color:var(--td-brand-color)}.t-table:not(.t-table--row-edit) .t-table__cell--editable:hover{transition:all .2s linear}.t-affix .t-table__pagination{background-color:var(--td-bg-color-container)}.t-table--bordered .t-affix .t-table__pagination{border-top:1px solid var(--td-component-border)}.t-table__bottom-content+.t-table__pagination-wrap .t-table__pagination{border:0;padding:0}.t-table--column-resizable:not(.t-table--bordered) th{border-top:1px solid #0000}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header th:not(:last-child){border-right:1px solid #0000}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th:not(:last-child){border-right:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered) thead.t-table__header:hover th{border-top:1px solid var(--td-component-border)}.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left.t-table__content--scrollable-to-right thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child),.t-table--column-resizable:not(.t-table--bordered).t-table__content--scrollable-to-left thead.t-table__header:hover .t-table__cell--fixed-left-last:not(:last-child){border-right:0}.t-table td.t-table__cell-check,.t-table th.t-table__cell-check{height:0;padding:0}.t-table td.t-table__cell-check .t-radio__label:empty,.t-table th.t-table__cell-check .t-radio__label:empty,.t-table td.t-table__cell-check .t-checkbox__label:empty,.t-table th.t-table__cell-check .t-checkbox__label:empty{display:none}.t-table .t-table__cell-check .t-radio,.t-table .t-table__cell-check .t-checkbox,.t-table .t-table__cell-check .t-table__th-cell-inner{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.t-table td .t-input__tips{position:initial}.t-table .t-table__sort-column{background-color:var(--td-bg-color-secondarycontainer)}.t-table__ellipsis-content.t-size-s .t-popup__content{font:var(--td-font-body-medium)}.t-timeline{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.t-timeline-item{flex-direction:row;min-height:72px;display:flex;position:relative}.t-timeline-item__label.t-timeline-item__label--alternate{position:absolute}.t-timeline-item__wrapper{width:8px;position:relative}.t-timeline-item__wrapper .t-timeline-item__dot{box-sizing:unset;border:2px solid #0000;border-radius:50%;width:4px;height:4px;position:absolute;top:8px}.t-timeline-item__wrapper .t-timeline-item__dot--primary{border-color:var(--td-brand-color)}.t-timeline-item__wrapper .t-timeline-item__dot--default{border-color:var(--td-component-border)}.t-timeline-item__wrapper .t-timeline-item__dot--success{border-color:var(--td-success-color)}.t-timeline-item__wrapper .t-timeline-item__dot--warning{border-color:var(--td-warning-color)}.t-timeline-item__wrapper .t-timeline-item__dot--error{border-color:var(--td-error-color)}.t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;position:relative;top:4px;left:50%;transform:translate(-50%)}.t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{position:absolute;top:0;left:50%;transform:translate(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail{height:calc(100% - 24px);padding-bottom:var(--td-comp-size-s);border-left:2px solid #0000;border-color:var(--td-component-border);box-sizing:border-box;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed none dashed dashed;border-right-width:0;border-right-color:currentColor}.t-timeline-item__label{color:var(--td-text-color-secondary);font-size:var(--td-font-size-body-medium)}.t-timeline-item__content{padding-left:var(--td-comp-margin-l);font-size:var(--td-font-size-body-large);flex:1}.t-timeline-item--last .t-timeline-item__tail{display:none}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__label{text-align:right;left:0}.t-timeline-label.t-timeline-label--alternate.t-timeline-left .t-timeline-item__wrapper{margin-left:100px}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__label{text-align:left;right:0}.t-timeline-label.t-timeline-label--alternate.t-timeline-right .t-timeline-item__wrapper{margin-right:100px}.t-timeline-right .t-timeline-item{flex-direction:row-reverse}.t-timeline-right .t-timeline-item__content{text-align:right;padding-left:0;padding-right:var(--td-comp-margin-l)}.t-timeline-alternate .t-timeline-item-left{margin-left:calc(50% - 4px)}.t-timeline-alternate .t-timeline-item-right{text-align:right;flex-direction:row-reverse;margin-right:calc(50% - 4px)}.t-timeline-alternate .t-timeline-item-right .t-timeline-item__content{padding-right:var(--td-comp-margin-l);padding-left:0}.t-timeline-label.t-timeline-alternate .t-timeline-item__label{width:100%}.t-timeline-label.t-timeline-alternate .t-timeline-item-left .t-timeline-item__label--alternate{text-align:right;padding-right:var(--td-comp-margin-l);left:0;transform:translate(-100%)}.t-timeline-label.t-timeline-alternate .t-timeline-item-right .t-timeline-item__label--alternate{text-align:left;padding-left:var(--td-comp-margin-l);right:0;transform:translate(100%)}.t-timeline-horizontal{flex-direction:row;align-items:center;min-height:200px}.t-timeline-horizontal .t-timeline-item{flex-direction:column;min-width:160px;padding-right:8px}.t-timeline-horizontal .t-timeline-item__wrapper{width:100%;height:8px}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot{top:50%;left:unset;border-radius:50%;width:4px;height:4px;position:absolute;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom{border:0;position:relative;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__dot--custom .t-timeline-item__dot-content{position:absolute;top:50%;left:0;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail{left:calc(8px + var(--td-comp-margin-s));width:calc(100% - calc(8px + var(--td-comp-margin-s)));border:0;border-top:2px solid #0000;border-color:var(--td-component-border);padding-bottom:0;top:50%;transform:translateY(-50%)}.t-timeline-horizontal .t-timeline-item__wrapper .t-timeline-item__tail--theme-dot{border-style:dashed none dashed dashed;border-right-width:0;border-right-color:currentColor}.t-timeline-horizontal .t-timeline-item__content{padding-left:unset;padding-top:var(--td-comp-margin-l);flex:unset}.t-timeline-vertical .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-horizontal.t-timeline-top .t-timeline-item__label--alternate{width:100%;padding-bottom:0;top:0;transform:translateY(-100%)}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item{flex-direction:column-reverse}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__wrapper{padding-top:0}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__label--alternate{padding-top:var(--td-comp-margin-l);width:100%;bottom:0;transform:translateY(100%)}.t-timeline-label.t-timeline-horizontal.t-timeline-bottom .t-timeline-item__content{padding-top:0;padding-bottom:var(--td-comp-margin-l)}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-top .t-timeline-item__label--alternate{width:100%;padding-bottom:var(--td-comp-margin-l);top:0;transform:translateY(-100%)}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom{flex-direction:column-reverse;position:relative;transform:translateY(calc(8px - 100%))}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__content{padding-bottom:var(--td-comp-margin-l);padding-top:unset}.t-timeline-label.t-timeline-horizontal.t-timeline-alternate .t-timeline-item-bottom .t-timeline-item__label--alternate{padding-top:var(--td-comp-margin-l);bottom:0;transform:translateY(100%)}.t-collapse{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;border:solid 1px var(--td-component-border);background:var(--td-bg-color-container);border-bottom:0;margin:0;padding:0;list-style:none}.t-collapse.t--border-less{border:none}.t-collapse.t--border-less .t-collapse-panel__header{border-bottom:none}.t-collapse.t--border-less .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__icon{cursor:pointer;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.38,0,.24,1);display:flex}.t-collapse-panel__icon>.t-fake-arrow{transition:all .2s cubic-bezier(.38,0,.24,1);transform:rotate(-90deg)}.t-collapse-panel__icon--left{margin-right:var(--td-comp-margin-s)}.t-collapse-panel__icon--right{margin-left:var(--td-comp-margin-s)}.t-collapse-panel__icon--active>.t-fake-arrow{transform:rotate(0)}.t-collapse-panel__icon:hover{background-color:var(--td-bg-color-container-hover);border-radius:var(--td-radius-small)}.t-collapse-panel__wrapper{overflow:hidden}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__header{border-bottom:none}.t-collapse-panel__wrapper.t--borderless .t-collapse-panel__body{background:var(--td-bg-color-container);border:none}.t-collapse-panel__wrapper .t-collapse-panel__header{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l);border-bottom:solid 1px var(--td-component-border);font:var(--td-font-title-small);align-items:center;display:flex}.t-collapse-panel__wrapper .t-collapse-panel__header--blank{flex:1}.t-collapse-panel__wrapper .t-collapse-panel__header.t-is-clickable{cursor:pointer}.t-collapse-panel__wrapper .t-collapse-panel__header-left,.t-collapse-panel__wrapper .t-collapse-panel__header-right,.t-collapse-panel__wrapper .t-collapse-panel__header-right-content{display:flex}.t-collapse-panel__wrapper .t-collapse-panel__body{border-bottom:solid 1px var(--td-component-border);background:var(--td-bg-color-secondarycontainer);overflow:inherit}.t-collapse-panel__wrapper .t-collapse-panel__body--collapsed{border:none}.t-collapse-panel__wrapper .t-collapse-panel__content{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l) var(--td-comp-paddingTB-m) calc(var(--td-comp-paddingLR-l) + var(--td-comp-margin-xxl));color:var(--td-text-color-secondary)}.t-collapse-panel.t-is-disabled .t-collapse-panel__header{cursor:not-allowed;color:var(--td-text-color-disabled)}.t-collapse-panel.t-is-disabled .t-collapse-panel__icon{cursor:not-allowed;pointer-events:none}.t-collapse-panel.t-is-disabled .t-collapse-panel__body{background:var(--td-bg-color-component-disabled)}.t-collapse-panel.t-is-disabled .t-collapse-panel__content{color:var(--td-text-color-disabled)}.t-rate{align-items:center;display:flex}.t-rate .t-rate__star-top{width:0;height:100%;transition:all .2s cubic-bezier(.38,0,.24,1);position:absolute;top:0;left:0;overflow:hidden}.t-rate .t-rate__star-top,.t-rate .t-rate__star-bottom{display:grid}.t-rate__list{margin:0;padding:0;list-style:none;display:flex}.t-rate__item{cursor:pointer;transition:all .2s cubic-bezier(.38,0,.24,1);position:relative}.t-rate__item:hover{transform:scale(1.33)}.t-rate__item--half .t-rate__star-top{width:50%}.t-rate__item--full .t-rate__star-top{width:100%}.t-rate__text{color:var(--td-text-color-primary);font:var(--td-font-mark-medium);margin-left:var(--td-comp-margin-l)}.t-typography{color:var(--td-text-color-primary);font:var(--td-font-body-medium);margin:var(--td-comp-margin-m) 0}h1.t-typography{font:var(--td-font-headline-large);margin-top:var(--td-comp-margin-xxxxl);margin-bottom:var(--td-comp-margin-l)}h2.t-typography{font:var(--td-font-headline-medium);margin-top:var(--td-comp-margin-xxxl);margin-bottom:var(--td-comp-margin-l)}h3.t-typography{font:var(--td-font-headline-small);margin-top:var(--td-comp-margin-xxl);margin-bottom:var(--td-comp-margin-m)}h4.t-typography{font:var(--td-font-title-large);margin-top:var(--td-comp-margin-xl);margin-bottom:var(--td-comp-margin-m)}h5.t-typography{font:var(--td-font-title-medium);margin-top:var(--td-comp-margin-l);margin-bottom:var(--td-comp-margin-m)}h6.t-typography{font:var(--td-font-title-small)}.t-typography strong{font-weight:600}.t-typography mark{background-color:#fcdf47}.t-typography code{border-radius:var(--td-radius-default);border:1px solid var(--td-component-border);margin:0 var(--td-comp-margin-xs);background-color:var(--td-bg-color-secondarycontainer);padding:1px var(--td-comp-paddingLR-s);white-space:nowrap;font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;transition:background-color .2s;display:inline-block}.t-typography code:hover{border-radius:var(--td-radius-default);border:1px solid var(--td-component-border);background-color:var(--td-bg-color-secondarycontainer-hover)}.t-typography kbd{border-radius:var(--td-radius-default);border:1px solid var(--td-component-border);margin:0 var(--td-comp-margin-xs);background-color:var(--td-bg-color-secondarycontainer);padding:1px var(--td-comp-paddingLR-s);box-shadow:0 1px 0 0 var(--td-component-border);font:var(--td-font-body-small);font-family:Source Code Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei;display:inline-block}.t-typography--disabled{color:var(--td-text-color-disabled);cursor:not-allowed}.t-typography--success{color:var(--td-success-color)}.t-typography--warning{color:var(--td-warning-color)}.t-typography--error{color:var(--td-error-color)}.t-typography--secondary{color:var(--td-text-color-secondary)}.t-typography-ellipsis-symbol,.t-typography .t-icon-copy{color:var(--td-brand-color);cursor:pointer}.t-typography-ellipsis-symbol:hover,.t-typography .t-icon-copy:hover{color:var(--td-brand-color-hover)}.t-typography .t-icon-checked{color:var(--td-success-color)}.t-qrcode{box-sizing:border-box;background-color:var(--td-bg-color-container);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);border-radius:var(--td-radius-medium);border:1px solid var(--td-component-border);display:flex;position:relative}.t-qrcode>canvas{flex:auto;align-self:stretch;min-width:0}.t-qrcode.t-borderless{border-color:#0000}.t-qrcode .t-mask{z-index:300;width:100%;height:100%;color:var(--td-text-color-primary);line-height:var(--td-line-height-body-medium);background-color:var(--td-mask-background);text-align:center;border-radius:var(--td-radius-medium);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset-block-start:0;inset-inline-start:0}.t-qrcode .t-expired__text{color:var(--td-text-color-primary);font-weight:600}.t-qrcode .t-expired__button{color:var(--td-brand-color);box-shadow:none;cursor:pointer;column-gap:var(--td-comp-margin-s);height:var(--td-comp-size-m);align-items:center;transition:all .2s cubic-bezier(.215,.61,.355,1);display:flex}.t-qrcode .t-expired__button:hover{color:var(--td-brand-color-hover)}.t-qrcode .t-scanned{column-gap:var(--td-comp-margin-s);align-items:center;display:flex}.t-qrcode .t-scanned__icon{color:var(--td-success-color)}.t-qrcode-svg{justify-content:center;align-items:center}.t-alert{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-xl);opacity:1;border-radius:var(--td-radius-medium);align-items:flex-start;margin:0;list-style:none;transition:opacity .2s;display:flex}.t-alert.t-is-hidden{display:none}.t-alert--closing{opacity:0}.t-alert--info{background-color:var(--td-brand-color-focus)}.t-alert--info .t-alert__icon,.t-alert--info .t-alert__swiper-trigger-wrap,.t-alert--info .t-alert__swiper-trigger--active{color:var(--td-brand-color)}.t-alert--success{background-color:var(--td-success-color-focus)}.t-alert--success .t-alert__icon{color:var(--td-success-color)}.t-alert--success .t-alert__swiper-trigger-wrap{color:var(--td-success-color-focus)}.t-alert--success .t-alert__swiper-trigger--active{color:var(--td-success-color)}.t-alert--warning{background-color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__icon{color:var(--td-warning-color)}.t-alert--warning .t-alert__swiper-trigger-wrap{color:var(--td-warning-color-focus)}.t-alert--warning .t-alert__swiper-trigger--active{color:var(--td-warning-color)}.t-alert--error{background-color:var(--td-error-color-focus)}.t-alert--error .t-alert__icon{color:var(--td-error-color)}.t-alert--error .t-alert__swiper-trigger-wrap{color:var(--td-error-color-focus)}.t-alert--error .t-alert__swiper-trigger--active{color:var(--td-error-color)}.t-alert__icon{font-size:var(--td-line-height-body-medium);display:inherit}.t-alert__icon,.t-alert__close{line-height:var(--td-line-height-body-small);flex:none}.t-alert__content{font-size:var(--td-font-size-body-medium);line-height:var(--td-line-height-body-medium);flex:1 1 0;overflow:hidden}.t-alert__title,.t-alert__message{width:100%;display:flex}.t-alert__title{color:var(--td-text-color-primary);font-weight:700}.t-alert__title+.t-alert__message{margin-top:var(--td-comp-margin-s)}.t-alert__description{color:var(--td-text-color-secondary);flex:0 auto;transition:height .2s}.t-alert__operation{padding:0 var(--td-comp-paddingLR-s);color:var(--td-brand-color);cursor:pointer;flex:none;transition:color .2s}.t-alert__operation:hover{color:var(--td-brand-color-hover)}.t-alert__operation:active{color:var(--td-brand-color-active)}.t-alert__icon+.t-alert__content{margin-left:var(--td-comp-margin-s)}.t-alert__collapse{margin-top:var(--td-comp-margin-s);color:var(--td-brand-color);cursor:pointer}.t-alert__close{margin-left:var(--td-comp-margin-l);color:var(--td-text-color-secondary);cursor:pointer;align-items:center;transition:color .2s;display:inline-flex}.t-alert__close:hover{color:var(--td-text-color-primary)}.t-alert__close>.t-icon{font-size:calc(var(--td-line-height-body-medium) - 2px);padding:calc((var(--td-line-height-body-medium) - calc(var(--td-line-height-body-medium) - 2px)) / 2) 0}.t-drawer-fade-enter,.t-drawer-fade-appear{opacity:0;animation-duration:.2s;animation-timing-function:linear;animation-play-state:paused;animation-fill-mode:both}.t-drawer-fade-exit{animation-duration:.2s;animation-timing-function:linear;animation-play-state:paused;animation-fill-mode:both}.t-drawer-fade-enter.t-drawer-fade-enter-active,.t-drawer-fade-enter.t-drawer-fade-enter-active.t-drawer-fade-enter-to,.t-drawer-fade-appear.t-drawer-fade-appear-active,.t-drawer-fade-appear.t-drawer-fade-appear-active.t-drawer-fade-appear-to{animation-name:tDrawerFadeIn;animation-duration:.2s;animation-play-state:running}.t-drawer-fade-exit.t-drawer-fade-exit-active,.t-drawer-fade-leave-active.t-drawer-fade-leave-to{animation-name:tDrawerFadeOut;animation-duration:.2s;animation-play-state:running}@keyframes tDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tDrawerFadeOut{0%{opacity:1}to{opacity:0}}.t-drawer{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;z-index:1500;pointer-events:none;outline:none;width:100%;height:100%;margin:0;padding:0;list-style:none;position:fixed;overflow:hidden}.t-drawer--lock{overflow:hidden}.t-drawer--attach{position:absolute}.t-drawer--left,.t-drawer--right{top:0}.t-drawer--left{left:0}.t-drawer--right{right:0}.t-drawer--top,.t-drawer--bottom{left:0}.t-drawer--top{top:0}.t-drawer--bottom{bottom:0}.t-drawer__mask{background-color:var(--td-mask-active);opacity:0;width:100%;height:100%;transition:opacity .2s cubic-bezier(.38,0,.24,1);position:absolute;top:0;left:0}.t-drawer__content-wrapper{background:var(--td-bg-color-container);width:16px;height:16px;font-size:var(--td-font-body-medium);color:var(--td-text-color-secondary);box-shadow:var(--td-shadow-2);pointer-events:auto;flex-direction:column;transition:transform .28s cubic-bezier(.38,0,.24,1),visibility .28s cubic-bezier(.38,0,.24,1);display:flex;position:relative;overflow:hidden}.t-drawer .t-drawer__content-wrapper{visibility:hidden;width:100%;height:100%;position:absolute}.t-drawer .t-drawer__content-wrapper--left,.t-drawer .t-drawer__content-wrapper--right{top:0}.t-drawer .t-drawer__content-wrapper--left{left:0;transform:translate(-100%)}.t-drawer .t-drawer__content-wrapper--right{right:0;transform:translate(100%)}.t-drawer .t-drawer__content-wrapper--top,.t-drawer .t-drawer__content-wrapper--bottom{left:0}.t-drawer .t-drawer__content-wrapper--top{top:0;transform:translateY(-100%)}.t-drawer .t-drawer__content-wrapper--bottom{bottom:0;transform:translateY(100%)}.t-drawer__header{min-height:var(--td-comp-size-xxxl);padding:0 var(--td-comp-paddingLR-l);font:var(--td-font-title-medium);color:var(--td-text-color-primary);border-bottom:1px solid var(--td-border-level-1-color);border-radius:var(--td-radius-small) var(--td-radius-small) 0 0;box-sizing:border-box;align-items:center;display:flex}.t-drawer__body{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);flex:1;overflow:auto}.t-drawer__footer{width:100%;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);text-align:left;border-top:1px solid var(--td-border-level-1-color);background-color:var(--td-bg-color-container);box-sizing:border-box}.t-drawer__footer .t-button{margin-left:var(--td-comp-margin-s)}.t-drawer__footer .t-button:first-child{margin-left:0}.t-drawer__close-btn{width:var(--td-comp-size-xs);height:var(--td-comp-size-xs);top:calc((var(--td-comp-size-xxxl) - var(--td-comp-size-xs)) / 2);right:var(--td-comp-margin-s);color:var(--td-text-color-primary);background-color:var(--td-bg-color-container);border-radius:var(--td-radius-default);cursor:pointer;justify-content:center;align-items:center;transition:background-color .2s;display:flex;position:absolute}.t-drawer__close-btn:hover{background-color:var(--td-bg-color-container-hover)}.t-drawer__close-btn:active{background-color:var(--td-bg-color-container-active)}.t-drawer__close-btn .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px);vertical-align:unset}.t-drawer--open{pointer-events:auto;width:100%;height:100%}.t-drawer--open>.t-drawer__content-wrapper{visibility:visible}.t-drawer--open>.t-drawer__mask{opacity:1;width:100%;height:100%}.t-drawer--without-mask{pointer-events:none}[tabindex="-1"]:focus{outline:none!important}.t-guide{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-guide--lock{overflow:hidden}.t-guide--absolute{position:absolute}.t-guide--fixed{position:fixed}.t-guide__overlay{z-index:999997;position:fixed;inset:0}.t-guide__highlight{z-index:999998;border-radius:var(--td-radius-default);transition:all .2s cubic-bezier(0,0,.15,1)}.t-guide__highlight--dialog{border-radius:var(--td-radius-large)}.t-guide__highlight--mask{box-shadow:0 0 0 0 var(--td-mask-active), var(--td-mask-active) 0 0 0 5000px}.t-guide__highlight--nomask{border-radius:var(--td-radius-medium);border:2px solid var(--td-brand-color);box-sizing:border-box}.t-guide__reference{z-index:999999}.t-guide__wrapper{z-index:999999;justify-content:center;padding-top:20vh;display:flex;position:fixed;inset:0}.t-guide__wrapper--center{align-items:center;padding-top:0}.t-guide__dialog{min-width:320px;max-width:500px;padding:var(--td-comp-paddingTB-xxl) var(--td-comp-paddingLR-xxl);border-radius:var(--td-radius-large);background:var(--td-bg-color-container);box-sizing:border-box;animation:.3s ease-out tGuideDialogFadeIn}.t-guide__dialog--nomask{border:1px solid var(--td-component-border)}.t-guide__dialog .t-guide__title{font:var(--td-font-title-medium);font-weight:700}.t-guide__dialog .t-guide__desc{margin-top:var(--td-comp-margin-l);font:var(--td-font-body-medium)}.t-guide__tooltip{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-s);min-width:240px;max-width:600px;max-height:300px}.t-guide__title{text-align:left;color:var(--td-text-color-primary);font:var(--td-font-title-small);font-weight:700}.t-guide__desc{margin-top:var(--td-comp-margin-s);text-align:left;color:var(--td-text-color-secondary);font:var(--td-font-body-small)}.t-guide__action{align-items:center;display:flex}.t-guide__action button{margin-right:var(--td-comp-margin-s)}.t-guide__action button:last-child{margin-right:0}.t-guide__footer{align-items:center;display:flex}.t-guide__footer--popup{margin-top:var(--td-comp-margin-l)}.t-guide__footer--dialog{margin-top:24px}.t-guide__footer--dialog .t-guide__action{justify-content:center;display:flex}.t-guide__counter{color:var(--td-text-color-placeholder);text-align:left;font:var(--td-font-body-small);flex:1}.t-guide__popup .t-guide__popup--content{box-shadow:none;background:0 0;padding:0}@keyframes tGuideDialogFadeIn{0%{opacity:0}to{opacity:1}}.t-notification{color:var(--td-text-color-primary);font:var(--td-font-body-medium);background-color:var(--td-bg-color-container);box-shadow:var(--td-shadow-2), var(--td-shadow-inset-top), var(--td-shadow-inset-right), var(--td-shadow-inset-bottom), var(--td-shadow-inset-left);box-sizing:border-box;border-radius:var(--td-radius-medium);width:360px;padding:0;padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);border:0;outline:0;margin:0;list-style:none;display:flex}.t-notification__icon{width:calc(var(--td-font-size-body-large) + 8px);text-align:center;margin-right:var(--td-comp-margin-s)}.t-notification__icon .t-icon{font-size:calc(var(--td-font-size-body-large) + 8px)}.t-notification .t-icon.t-is-info{color:var(--td-brand-color)}.t-notification .t-icon.t-is-success{color:var(--td-success-color)}.t-notification .t-icon.t-is-warning{color:var(--td-warning-color)}.t-notification .t-icon.t-is-error{color:var(--td-error-color-6)}.t-notification__main{flex:1}.t-notification__title__wrap{justify-content:space-between;display:flex}.t-notification__title{font:var(--td-font-title-medium);color:var(--td-text-color-primary)}.t-notification .t-icon-close{cursor:pointer;font-size:var(--td-font-size-body-large);border-radius:var(--td-radius-default);color:var(--td-text-color-secondary)}.t-notification .t-icon-close:hover{background:var(--td-bg-color-container-hover)}.t-notification .t-icon-close:active{background:var(--td-bg-color-container-active)}.t-notification__content{font:var(--td-font-body-medium);color:var(--td-text-color-secondary);margin-top:var(--td-comp-margin-s);text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-height:66px;display:-webkit-box;overflow:hidden}.t-notification__detail{margin-top:var(--td-comp-margin-l);text-align:right;font:var(--td-font-body-medium)}.t-notification__detail-item{cursor:pointer}.t-notification__detail-item:hover{color:inherit;background:var(--td-bg-color-container-hover)}.t-notification__detail-item:active{color:inherit;background:var(--td-bg-color-container-active)}.t-notification__detail-item+.t-notification__detail-item{margin-left:var(--td-comp-margin-s)}.t-notification__detail-item.t-is-active{color:var(--td-brand-color)}.t-notification__show--top-left{position:fixed;top:0;left:0}.t-notification__show--top-left>.t-notification{animation-name:slidein-top-left;animation-duration:.3s}@keyframes slidein-top-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0,0)}}.t-notification__show--top-right{position:fixed;top:0;right:0}.t-notification__show--top-right>.t-notification{animation-name:slidein-top-right;animation-duration:.3s}@keyframes slidein-top-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0,0)}}.t-notification__show--bottom-left{flex-direction:column-reverse;display:flex;position:fixed;bottom:0;left:0}.t-notification__show--bottom-left>.t-notification{animation-name:slidein-bottom-left;animation-duration:.3s}@keyframes slidein-bottom-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0,0)}}.t-notification__show--bottom-right{flex-direction:column-reverse;display:flex;position:fixed;bottom:0;right:0}.t-notification__show--bottom-right>.t-notification{animation-name:slidein-bottom-right;animation-duration:.3s}@keyframes slidein-bottom-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0,0)}}.t-notification-list__show{position:fixed}.t-popconfirm{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;border-radius:var(--td-radius-medium);min-width:160px;margin:0;padding:0;list-style:none}.t-popconfirm .t-popup__content{padding:0}.t-popconfirm.t-popup[data-popper-placement^=top] .t-popup__arrow{bottom:-4px}.t-popconfirm__content{padding:var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);border-radius:var(--td-radius-medium);position:relative}.t-popconfirm__body{text-align:left;align-items:flex-start;display:flex}.t-popconfirm__body>.t-icon{margin-right:var(--td-comp-margin-s);padding:calc(calc(var(--td-line-height-body-medium) - calc(var(--td-font-size-body-medium) + 6px)) / 2) 0;font-size:calc(var(--td-font-size-body-medium) + 6px);display:inline-block}.t-popconfirm__confirm{margin-left:var(--td-comp-margin-s)}.t-popconfirm__inner{vertical-align:top;max-width:320px;font:var(--td-font-body-medium);color:var(--td-text-color-primary);display:inline-block}.t-popconfirm__icon--warning{color:var(--td-warning-color)}.t-popconfirm__icon--danger{color:var(--td-error-color)}.t-popconfirm__icon--default{color:var(--td-brand-color)}.t-popconfirm__buttons{text-align:right;margin-top:var(--td-comp-margin-l)}.t-popconfirm__buttons>span:last-child{margin-right:0}.t-upload{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-upload .t-is-bordered{border:1px solid var(--td-component-border)}.t-upload .t-upload__trigger{display:inline-block}.t-upload .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px);flex-shrink:0}.t-upload .t-icon-check-circle-filled{color:var(--td-success-color)}.t-upload .t-icon-error-circle-filled{color:var(--td-error-color)}.t-upload .t-icon-time-filled{color:var(--td-text-color-placeholder)}.t-upload .t-icon-add{color:var(--td-text-color-primary)}.t-upload__list-file{width:100px;height:100px;margin-right:var(--td-comp-margin-m);justify-content:center;align-items:center;display:flex;overflow:hidden}.t-upload__list-file .t-icon{font-size:var(--td-comp-size-xl);color:var(--td-brand-color)}.t-upload__list-item{margin-top:var(--td-comp-margin-m);width:496px;height:124px;padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);border:1px solid var(--td-component-border);border-radius:var(--td-radius-default);font:var(--td-font-body-medium);justify-content:space-between;align-items:center;display:flex}.t-upload__list-item.t-is--error .t-upload__list-name,.t-upload__list-item.t-is--error .t-upload__list-file .t-icon{color:var(--td-error-color)}.t-upload__list-content{align-items:center;display:flex}.t-upload-list__control{cursor:pointer}.t-upload-list__control:hover{color:var(--td-error-color)}.t-upload__list-img{object-fit:cover;cursor:pointer;max-width:100%;max-height:100%}.t-upload__list-name{white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;max-width:200px;overflow:hidden}.t-upload--highlight{color:var(--td-text-color-brand)}.t-upload__single-name{margin-right:var(--td-comp-margin-s)}.t-upload__card{font:var(--td-font-body-small);gap:var(--td-comp-margin-s);flex-wrap:wrap;width:100%;margin:0;padding:0;display:flex;overflow:hidden}.t-upload__card .t-is-disabled :hover{cursor:not-allowed}.t-upload__card-item{cursor:pointer;box-sizing:border-box;list-style:none}.t-upload__card-item:after{content:"";display:block}.t-upload__card-item:hover .t-upload__card-mask{opacity:1;transition:opacity .2s linear}.t-upload__card-item.t-is--error .t-icon-warning_fill{color:var(--td-error-color);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-item.t-is--error .t-upload__card-status{color:var(--td-error-color)}.t-upload__card-item.t-is-background{transition:border-color .2s linear}.t-upload__card .t-icon-loading{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-name{max-width:100%;margin-top:var(--td-comp-margin-s);white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;overflow:hidden}.t-upload__card-content{box-sizing:border-box;background-color:var(--td-bg-color-secondarycontainer);border:1px dashed var(--td-component-border);width:110px;height:110px;padding:var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);border-radius:var(--td-radius-default);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.t-upload__card-container{background-color:var(--td-bg-color-secondarycontainer);border:1px dashed var(--td-component-border);box-sizing:border-box;border-radius:var(--td-radius-default);flex-direction:column;justify-content:center;align-items:center;width:110px;height:110px;transition:border .2s linear;display:flex;position:relative}.t-upload__card-container:hover:not(.t-is-disabled){border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__card-container>.t-icon{color:var(--td-text-color-placeholder)}.t-upload__card-container>.t-icon,.t-upload__card-container .t-loading{font-size:var(--td-comp-size-xs);margin-bottom:var(--td-comp-margin-s)}.t-upload__card-container>p,.t-upload__card-container .t-upload__add-text{color:var(--td-text-color-placeholder);margin:0}.t-upload__card-status-wrap{text-align:center}.t-upload__card-status-wrap>svg{margin-bottom:var(--td-comp-margin-s)}.t-upload__card-status-wrap .t-icon,.t-upload__card-status-wrap .t-loading{font-size:var(--td-comp-size-xs)}.t-upload__card-image{width:100%;max-width:100%;height:100%;max-height:100%}.t-upload__card-status{color:var(--td-text-color-disabled);font:var(--td-font-body-small)}.t-upload__card-mask{background-color:var(--td-mask-active);color:var(--td-text-color-anti);will-change:transform;opacity:0;z-index:2;justify-content:center;align-items:center;transition:opacity .2s linear;display:flex;position:absolute;inset:0}.t-upload__card-mask-item-divider{margin:0 var(--td-comp-margin-l);border-left:1px var(--td-text-color-anti) solid;height:var(--td-comp-size-xxxs)}.t-upload__card-mask-item>.t-icon{cursor:pointer;font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__dialog .t-dialog{max-width:80%}.t-upload__dialog .t-dialog--default{padding:32px}.t-upload__dialog .t-dialog-body{padding-bottom:0}.t-upload__dialog .t-dialog-body-img-box img{max-width:100%;max-height:100%;display:block}.t-upload__dragger{border:1px dashed var(--td-component-border);border-radius:var(--td-radius-small);width:336px;height:144px;font:var(--td-font-body-medium);color:var(--td-text-color-secondary);cursor:pointer;padding:var(--td-comp-margin-l);box-sizing:border-box;transition:border-color .2s linear;display:flex;position:relative;overflow:auto}.t-upload__dragger.t-is--active{background-color:var(--td-bg-color-container-active);border-color:var(--td-brand-color)}.t-upload__dragger:hover{border-color:var(--td-brand-color)}.t-upload__dragger-btns{bottom:var(--td-comp-margin-l);position:absolute}.t-upload__dragger .t-size-s{display:block}.t-upload__dragger-center{justify-content:center;align-items:center}.t-upload__dragger-error,.t-upload__dragger-error:hover{border-color:var(--td-error-color)}.t-upload__dragger-text{font:var(--td-font-body-medium);color:var(--td-text-color-primary);margin-bottom:var(--td-comp-margin-s);max-width:calc(336px - var(--td-comp-margin-l) * 2 - 0);align-items:center;display:flex}.t-upload__dragger-text .t-upload__single-name{white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;overflow:hidden}.t-upload__tips{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-s);font:var(--td-font-body-small);display:block}.t-upload__tips.t-upload__tips-error{color:var(--td-error-color)}.t-upload__tips.t-upload__tips-warn{color:var(--td-warning-color)}.t-upload__placeholder{color:var(--td-text-color-placeholder)}.t-upload__display-text--margin{margin-top:var(--td-comp-margin-s)}.t-upload__single-display-text{color:var(--td-text-color-secondary);font:var(--td-font-body-small);align-items:center;display:flex}.t-upload__single-display-text .t-upload__flow-status .t-icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-icon-clear-circle-filled{color:var(--td-text-color-placeholder);margin-top:var(--td-comp-margin-xxs);transition:color .2s linear}.t-icon-clear-circle-filled:hover{color:var(--td-text-color-secondary);cursor:pointer;transition:color .2s linear}.t-upload__single-percent{margin-left:var(--td-comp-margin-xs)}.t-upload__single-progress{color:var(--td-brand-color);align-items:center;display:flex}.t-upload__single-progress .t-loading{font-size:calc(var(--td-font-size-body-medium) + 2px);flex-shrink:0}.t-upload__single-input-delete{margin-left:var(--td-comp-margin-l);font:var(--td-font-body-medium);color:var(--td-brand-color);cursor:pointer}.t-upload__single-input-preview{flex:1;justify-content:space-between;display:flex}.t-upload__single-input-text{white-space:nowrap;word-wrap:normal;text-overflow:ellipsis;display:block;overflow:hidden}.t-upload__single-file-input{align-items:center;display:flex}.t-upload__single-file-input .t-upload__trigger{margin-left:var(--td-comp-margin-l)}.t-upload__single-file-input .t-upload__single-progress{white-space:nowrap}.t-upload__single-file-input .t-input__inner{justify-content:space-between;align-items:center;display:flex}.t-upload__dragger-progress{width:100%;display:flex}.t-upload__dragger-progress .t-icon,.t-upload__dragger-progress .t-loading{font-size:calc(var(--td-font-size-body-medium) + 2px);flex-shrink:0}.t-upload__dragger-img-wrap{background-color:var(--td-bg-color-secondarycontainer);border-radius:var(--td-radius-default);flex-shrink:0;justify-content:center;align-items:center;width:110px;height:110px;display:flex}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square{width:100%}.t-upload__dragger-img-wrap>.t-image__wrapper--shape-square .t-space-item{text-align:center}.t-upload__dragger-img-wrap>img{max-width:100%;max-height:100%}.t-upload__dragger-img-wrap+.t-upload__dragger-progress-info{margin-left:var(--td-comp-margin-l);max-width:calc(336px - var(--td-comp-margin-l) * 2 - calc(110px + var(--td-comp-margin-l)))}.t-upload__dragger-progress-info{flex:1}.t-upload__dragger-progress-info .t-upload__single-display-text{margin-bottom:var(--td-comp-margin-s)}.t-upload__dragger-progress-info .t-button:hover{background-color:#0000}.t-upload__dragger-progress-cancel,.t-upload__dragger-progress-reupload{margin-right:var(--td-comp-margin-l)}.t-upload__dragger-progress-cancel:hover,.t-upload__dragger-progress-reupload:hover,.t-upload__dragger-delete-btn:hover,.t-upload__dragger-upload-btn:hover{border-color:#0000}.t-upload__flow-image-flow{width:498px}.t-upload__flow{min-width:498px;max-width:960px}.t-upload__flow-placeholder{margin-left:var(--td-comp-margin-l);display:inline-block}.t-upload__flow-op{align-items:center;display:flex}.t-upload__flow-bottom{margin-top:var(--td-comp-margin-xxl);justify-content:flex-end;display:flex}.t-upload__flow-bottom .t-button+.t-button{margin-left:var(--td-comp-margin-s)}.t-upload__flow-empty{width:100%;height:184px;color:var(--td-text-color-placeholder);justify-content:center;align-items:center;display:flex}.t-upload__flow-table{border:1px dashed var(--td-component-border);width:100%;margin-top:var(--td-comp-margin-xxl);border-collapse:collapse}.t-upload__flow-table>thead>tr,.t-upload__flow-table>tbody>tr,.t-upload__flow-table>tfoot>tr,.t-upload__flow-table>tr{border-top:1px solid var(--td-component-border)}.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>tr>th{color:var(--td-text-color-placeholder);border:1px solid var(--td-component-border);text-align:left;background-color:var(--td-bg-color-container);font-weight:400}.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>tr>td{color:var(--td-text-color-primary)}.t-upload__flow-table>thead>tr>td,.t-upload__flow-table>tbody>tr>td,.t-upload__flow-table>tfoot>tr>td,.t-upload__flow-table>tr>td,.t-upload__flow-table>thead>tr>th,.t-upload__flow-table>tbody>tr>th,.t-upload__flow-table>tfoot>tr>th,.t-upload__flow-table>tr>th{padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-l)}.t-upload__flow-table__batch-row{border-left:1px solid var(--td-component-border)}.t-upload__flow-button{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__flow-button:hover{color:var(--td-text-color-secondary)}.t-upload__flow-status{align-items:center;display:flex}.t-upload__flow-status .t-icon,.t-upload__flow-status .t-loading{margin-right:var(--td-comp-margin-s);font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-upload__flow-card-area{border:1px dashed var(--td-component-border);padding:var(--td-comp-paddingTB-m) var(--td-comp-paddingLR-m);margin-top:var(--td-comp-margin-xxl);transition:border .2s linear}.t-upload__flow-card-area:hover{border-color:var(--td-brand-color);transition:border-color .2s linear}.t-upload__icon-delete,.t-upload__single-input-clear{color:var(--td-text-color-placeholder);cursor:pointer;transition:color .2s linear}.t-upload__icon-delete:hover,.t-upload__single-input-clear:hover{color:var(--td-text-color-secondary);transition:color .2s linear}.t-icon.t-upload__single-input-clear{display:none}.t-upload__single-input-preview:hover .t-upload__single-input-clear{display:initial}.t-upload__single-input-preview:hover .t-upload__status-icon{display:none}.t-upload .t-upload__single-name{color:var(--td-text-color-secondary)}.t-upload .t-upload__file-thumbnail{margin-right:var(--td-comp-paddingLR-s);width:var(--td-comp-size-xxl);height:var(--td-comp-size-xxl);cursor:pointer;justify-content:center;align-items:center;display:flex}.t-upload .t-upload__file-thumbnail>svg{font-size:var(--td-comp-size-s);color:var(--td-text-color-placeholder)}.t-upload__card-name{margin-top:8px}.t-upload--theme-file-input{width:100%}.t-upload__dragger-btns>.t-button{padding:0}.t-upload__file-info{align-items:center;display:flex}.t-upload__card-container.t-is-disabled{cursor:not-allowed}.t-upload__card-container.t-is-disabled .t-upload__add-text,.t-upload__card-container.t-is-disabled .t-icon{color:var(--td-text-color-disabled)}:root{--td-screen-xs:320px;--td-screen-sm:768px;--td-screen-md:992px;--td-screen-lg:1200px;--td-screen-xl:1400px;--td-screen-xxl:1880px}@-moz-document url-prefix(){.narrow-scrollbar{scrollbar-color:var(--td-scrollbar-color) transparent;scrollbar-width:thin}}.narrow-scrollbar::-webkit-scrollbar{width:8px;height:8px}.narrow-scrollbar::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--td-scrollbar-color);border:2px solid #0000;border-radius:15px}.narrow-scrollbar::-webkit-scrollbar-thumb:vertical:hover{background-color:var(--td-scrollbar-hover-color)}.narrow-scrollbar::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--td-scrollbar-hover-color)}.t-fake-arrow path{stroke:currentColor;transition:d .2s}.t-fake-arrow--active path{d:path("M3.75 10.2002L7.99274 5.7998L12.2361 10.0425")}.t-fake-arrow.t-fake-arrow--transform path{transform-origin:50%;transition:transform .2s}.t-fake-arrow.t-fake-arrow--transform.t-fake-arrow--active path{transform:scaleY(-1)}.t-slide-down-enter-active,.t-slide-down-leave-active{transition:height .2s cubic-bezier(.38,0,.24,1),max-height .2s cubic-bezier(.38,0,.24,1)}:root,:root[theme-mode=light]{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#fff;--td-font-white-2:#ffffff8c;--td-font-white-3:#ffffff59;--td-font-white-4:#ffffff38;--td-font-gray-1:#000000e6;--td-font-gray-2:#0009;--td-font-gray-3:#0006;--td-font-gray-4:#00000042;--td-brand-color:var(--td-brand-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-6);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-8);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:#0009;--td-mask-disabled:#fff9;--td-mask-background:#fffffff5;--td-bg-color-page:var(--td-gray-color-2);--td-bg-color-container:#fff;--td-bg-color-container-hover:var(--td-gray-color-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-container-select:#fff;--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-2);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-hover:var(--td-gray-color-4);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-5);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-7);--td-text-color-link:var(--td-brand-color-8);--td-text-color-watermark:#0000001a;--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px #0000000d, 0 4px 5px #00000014, 0 2px 4px -1px #0000001f;--td-shadow-2:0 3px 14px 2px #0000000d, 0 8px 10px 1px #0000000f, 0 5px 5px -3px #0000001a;--td-shadow-3:0 6px 30px 5px #0000000d, 0 16px 24px 2px #0000000a, 0 8px 10px -5px #00000014;--td-shadow-inset-top:inset 0 .5px 0 #dcdcdc;--td-shadow-inset-right:inset .5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -.5px 0 #dcdcdc;--td-shadow-inset-left:inset -.5px 0 0 #dcdcdc;--td-table-shadow-color:#00000014;--td-scrollbar-color:#0000001a;--td-scrollbar-hover-color:#0000004d;--td-scroll-track-color:#fff}:root.dark,:root[theme-mode=dark]{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#393939;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#ffffffe6;--td-font-white-2:#ffffff8c;--td-font-white-3:#ffffff59;--td-font-white-4:#ffffff38;--td-font-gray-1:#000000e6;--td-font-gray-2:#0009;--td-font-gray-3:#0006;--td-font-gray-4:#00000042;--td-brand-color:var(--td-brand-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-hover:var(--td-brand-color-7);--td-brand-color-focus:var(--td-brand-color-2);--td-brand-color-active:var(--td-brand-color-9);--td-brand-color-disabled:var(--td-brand-color-3);--td-brand-color-light:var(--td-brand-color-1);--td-brand-color-light-hover:var(--td-brand-color-2);--td-warning-color-hover:var(--td-warning-color-4);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-hover:var(--td-warning-color-2);--td-error-color-hover:var(--td-error-color-5);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-hover:var(--td-error-color-2);--td-success-color-hover:var(--td-success-color-4);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-hover:var(--td-success-color-2);--td-mask-active:#0006;--td-mask-disabled:#0009;--td-mask-background:#242424f5;--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-container-hover:var(--td-gray-color-12);--td-bg-color-container-active:var(--td-gray-color-10);--td-bg-color-container-select:var(--td-gray-color-9);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-secondarycontainer-hover:var(--td-gray-color-11);--td-bg-color-secondarycontainer-active:var(--td-gray-color-9);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-component-hover:var(--td-gray-color-10);--td-bg-color-component-active:var(--td-gray-color-9);--td-bg-color-secondarycomponent:var(--td-gray-color-10);--td-bg-color-secondarycomponent-hover:var(--td-gray-color-9);--td-bg-color-secondarycomponent-active:var(--td-gray-color-8);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:#fff;--td-text-color-brand:var(--td-brand-color-8);--td-text-color-link:var(--td-brand-color-8);--td-text-color-watermark:#ffffff1a;--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px #0000000f, 0 1px 10px #00000014, 0 2px 4px #0000001f;--td-shadow-2:0 8px 10px #0000001f, 0 3px 14px #0000001a, 0 5px 5px #00000029;--td-shadow-3:0 16px 24px #00000024, 0 6px 30px #0000001f, 0 8px 10px #0003;--td-shadow-inset-top:inset 0 .5px 0 #5e5e5e;--td-shadow-inset-right:inset .5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -.5px 0 #5e5e5e;--td-shadow-inset-left:inset -.5px 0 0 #5e5e5e;--td-table-shadow-color:#0000008c;--td-scrollbar-color:#ffffff1a;--td-scrollbar-hover-color:#ffffff4d;--td-scroll-track-color:#333}:root{--td-radius-small:2px;--td-radius-default:3px;--td-radius-medium:6px;--td-radius-large:9px;--td-radius-extraLarge:12px;--td-radius-round:999px;--td-radius-circle:50%;--td-font-family:PingFang SC, Microsoft YaHei, Arial Regular;--td-font-family-medium:PingFang SC, Microsoft YaHei, Arial Medium;--td-font-size-link-small:12px;--td-font-size-link-medium:14px;--td-font-size-link-large:16px;--td-font-size-mark-small:12px;--td-font-size-mark-medium:14px;--td-font-size-body-small:12px;--td-font-size-body-medium:14px;--td-font-size-body-large:16px;--td-font-size-title-small:14px;--td-font-size-title-medium:16px;--td-font-size-title-large:18px;--td-font-size-title-extraLarge:20px;--td-font-size-headline-small:24px;--td-font-size-headline-medium:28px;--td-font-size-headline-large:36px;--td-font-size-display-medium:48px;--td-font-size-display-large:64px;--td-line-height-link-small:20px;--td-line-height-link-medium:22px;--td-line-height-link-large:24px;--td-line-height-mark-small:20px;--td-line-height-mark-medium:22px;--td-line-height-body-small:20px;--td-line-height-body-medium:22px;--td-line-height-body-large:24px;--td-line-height-title-small:22px;--td-line-height-title-medium:24px;--td-line-height-title-large:26px;--td-line-height-title-extraLarge:28px;--td-line-height-headline-small:32px;--td-line-height-headline-medium:36px;--td-line-height-headline-large:44px;--td-line-height-display-medium:56px;--td-line-height-display-large:72px;--td-font-link-small:var(--td-font-size-link-small) / var(--td-line-height-link-small) var(--td-font-family);--td-font-link-medium:var(--td-font-size-link-medium) / var(--td-line-height-link-medium) var(--td-font-family);--td-font-link-large:var(--td-font-size-link-large) / var(--td-line-height-link-large) var(--td-font-family);--td-font-mark-small:600 var(--td-font-size-mark-small) / var(--td-line-height-mark-small) var(--td-font-family);--td-font-mark-medium:600 var(--td-font-size-mark-medium) / var(--td-line-height-mark-medium) var(--td-font-family);--td-font-body-small:var(--td-font-size-body-small) / var(--td-line-height-body-small) var(--td-font-family);--td-font-body-medium:var(--td-font-size-body-medium) / var(--td-line-height-body-medium) var(--td-font-family);--td-font-body-large:var(--td-font-size-body-large) / var(--td-line-height-body-large) var(--td-font-family);--td-font-title-small:600 var(--td-font-size-title-small) / var(--td-line-height-title-small) var(--td-font-family);--td-font-title-medium:600 var(--td-font-size-title-medium) / var(--td-line-height-title-medium) var(--td-font-family);--td-font-title-large:600 var(--td-font-size-title-large) / var(--td-line-height-title-large) var(--td-font-family);--td-font-title-extraLarge:600 var(--td-font-size-title-extraLarge) / var(--td-line-height-title-extraLarge) var(--td-font-family);--td-font-headline-small:600 var(--td-font-size-headline-small) / var(--td-line-height-headline-small) var(--td-font-family);--td-font-headline-medium:600 var(--td-font-size-headline-medium) / var(--td-line-height-headline-medium) var(--td-font-family);--td-font-headline-large:600 var(--td-font-size-headline-large) / var(--td-line-height-headline-large) var(--td-font-family);--td-font-display-medium:600 var(--td-font-size-display-medium) / var(--td-line-height-display-medium) var(--td-font-family);--td-font-display-large:600 var(--td-font-size-display-large) / var(--td-line-height-display-large) var(--td-font-family);--td-size-1:2px;--td-size-2:4px;--td-size-3:6px;--td-size-4:8px;--td-size-5:12px;--td-size-6:16px;--td-size-7:20px;--td-size-8:24px;--td-size-9:28px;--td-size-10:32px;--td-size-11:36px;--td-size-12:40px;--td-size-13:48px;--td-size-14:56px;--td-size-15:64px;--td-size-16:72px;--td-comp-size-xxxs:var(--td-size-6);--td-comp-size-xxs:var(--td-size-7);--td-comp-size-xs:var(--td-size-8);--td-comp-size-s:var(--td-size-9);--td-comp-size-m:var(--td-size-10);--td-comp-size-l:var(--td-size-11);--td-comp-size-xl:var(--td-size-12);--td-comp-size-xxl:var(--td-size-13);--td-comp-size-xxxl:var(--td-size-14);--td-comp-size-xxxxl:var(--td-size-15);--td-comp-size-xxxxxl:var(--td-size-16);--td-pop-padding-s:var(--td-size-2);--td-pop-padding-m:var(--td-size-3);--td-pop-padding-l:var(--td-size-4);--td-pop-padding-xl:var(--td-size-5);--td-pop-padding-xxl:var(--td-size-6);--td-comp-paddingLR-xxs:var(--td-size-1);--td-comp-paddingLR-xs:var(--td-size-2);--td-comp-paddingLR-s:var(--td-size-4);--td-comp-paddingLR-m:var(--td-size-5);--td-comp-paddingLR-l:var(--td-size-6);--td-comp-paddingLR-xl:var(--td-size-8);--td-comp-paddingLR-xxl:var(--td-size-10);--td-comp-paddingTB-xxs:var(--td-size-1);--td-comp-paddingTB-xs:var(--td-size-2);--td-comp-paddingTB-s:var(--td-size-4);--td-comp-paddingTB-m:var(--td-size-5);--td-comp-paddingTB-l:var(--td-size-6);--td-comp-paddingTB-xl:var(--td-size-8);--td-comp-paddingTB-xxl:var(--td-size-10);--td-comp-margin-xxs:var(--td-size-1);--td-comp-margin-xs:var(--td-size-2);--td-comp-margin-s:var(--td-size-4);--td-comp-margin-m:var(--td-size-5);--td-comp-margin-l:var(--td-size-6);--td-comp-margin-xl:var(--td-size-7);--td-comp-margin-xxl:var(--td-size-8);--td-comp-margin-xxxl:var(--td-size-10);--td-comp-margin-xxxxl:var(--td-size-12);color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;--app-blue:#0052d9;--app-ink:#1f2937;--app-muted:#718096;--app-border:#e5e7eb;--app-panel:#fff;background:#f3f6fa;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#app{min-width:320px;min-height:100%;margin:0}body{background:#f3f6fa;overflow-x:hidden}button,input,textarea,select{font:inherit}a,button{-webkit-tap-highlight-color:transparent}.mono,code,.numeric,.stat-card strong{font-variant-numeric:tabular-nums;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}.wrap-anywhere{overflow-wrap:anywhere;word-break:break-word}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.boot-screen{min-height:100vh;color:var(--app-muted);place-items:center;display:grid}.login-page{background:radial-gradient(circle at 12% 10%,#e8f1ff 0,#0000 34%),#f5f7fb;place-items:center;min-height:100vh;padding:40px 24px;display:grid;position:relative}.login-accent{background:var(--app-blue);height:4px;position:absolute;inset:0 0 auto}.login-layout{grid-template-columns:minmax(0,1fr) minmax(360px,440px);align-items:center;gap:80px;width:min(1060px,100%);display:grid}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{color:#fff;background:var(--app-blue);border-radius:10px;flex:none;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 8px 20px #0052d933}.brand-title{color:#111827;letter-spacing:.01em;font-size:18px;font-weight:700}.brand-subtitle{color:var(--app-muted);margin-top:2px;font-size:12px}.brand-login{margin-bottom:72px}.login-intro .eyebrow{margin-bottom:14px}.eyebrow{color:#7b8794;letter-spacing:.12em;margin:0 0 7px;font-size:11px;font-weight:700;line-height:1.3}.login-intro h1{color:#111827;letter-spacing:0;max-width:560px;margin:0 0 18px;font-size:clamp(32px,4vw,48px);line-height:1.12}.login-lead{color:#5f6b7a;max-width:560px;margin:0;font-size:16px;line-height:1.75}.login-points{gap:13px;margin-top:34px;display:grid}.login-points div{color:#4b5563;align-items:center;gap:10px;font-size:13px;display:flex}.login-points svg{color:#00a870;flex:none}.login-card{box-shadow:0 18px 50px #0f172a17;border-radius:10px!important}.login-card .t-card__body{padding:30px}.login-card-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.login-card h2{color:#111827;margin:0;font-size:25px;line-height:1.25}.login-card>.t-card__body>.muted{margin:0 0 24px}.muted,.secondary-text{color:var(--app-muted);font-size:13px;line-height:1.55}.login-form{gap:4px;display:grid}.login-form .t-form__item{margin-bottom:14px}.login-form .t-button{height:42px;margin-top:5px}.login-form .captcha-challenge+.t-button{margin-top:2px}.login-error{margin-top:18px}.login-security{color:#8792a2;border-top:1px solid #edf0f4;justify-content:center;align-items:center;gap:7px;margin-top:24px;padding-top:18px;font-size:11px;display:flex}.app-shell{min-height:100vh}.app-aside{z-index:30;background:#fff;border-right:1px solid #e6eaf0;flex-direction:column;min-height:100vh;display:flex;position:relative}.brand{padding:23px 22px 20px}.app-aside .brand-mark{width:36px;height:36px;box-shadow:none;border-radius:8px}.nav-caption{color:#9aa5b4;letter-spacing:.1em;text-transform:uppercase;padding:17px 22px 8px;font-size:11px;font-weight:700}.nav-caption-module{padding-top:5px}.main-menu{border-right:0!important}.main-menu .t-menu__item{color:#4b5563;border-radius:5px;min-height:44px;margin:2px 10px;font-size:14px}.main-menu .t-menu__item.t-is-active{color:var(--app-blue);background:#e8f1ff}.main-menu .t-menu__item:hover{background:#f4f7fb}.main-menu .t-menu__item.t-is-disabled{opacity:.55}.nav-divider{margin:10px 22px 0!important}.aside-footer{border-top:1px solid #edf0f4;gap:10px;margin-top:auto;padding:18px 22px 22px;display:grid}.status-tag{justify-self:start;align-items:center;gap:6px;display:inline-flex}.version-text{color:#9aa5b4;font-size:11px}.main-layout{min-width:0;min-height:100vh}.app-header{background:#fff;border-bottom:1px solid #e6eaf0;justify-content:space-between;align-items:center;gap:16px;height:64px;padding:0 34px;display:flex}.header-left,.header-right,.breadcrumbs,.user-button{align-items:center;min-width:0;display:flex}.header-left,.header-right{gap:13px}.breadcrumbs{color:#8a96a5;gap:9px;font-size:13px}.breadcrumbs strong{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.secure-tag{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.user-button{color:#374151;gap:6px}.user-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.mobile-menu-button{display:none}.app-content{min-width:0;padding:32px 34px 56px}.page-view{width:min(1400px,100%);min-width:0;margin:0 auto}.page-header{border-bottom:0;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:24px;padding-bottom:21px;display:flex}.page-header h1{color:#111827;letter-spacing:0;margin:0 0 5px;font-size:28px;font-weight:700;line-height:1.25}.page-subtitle{color:#718096;max-width:720px;margin:0;font-size:13px;line-height:1.6}.page-actions,.toolbar-actions,.table-actions,.detail-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.page-actions{flex:none}.page-alert{margin-bottom:16px}.page-toolbar,.section-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.section-toolbar{align-items:flex-end}.section-toolbar h2{color:#1f2937;margin:0 0 4px;font-size:20px}.toolbar-hint{color:#9aa5b4;font-size:12px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.stat-card{min-width:0;border-top:3px solid #94a3b8!important;border-radius:7px!important}.stat-card .t-card__body{padding:18px}.stat-card.stat-success{border-top-color:#00a870!important}.stat-card.stat-warning{border-top-color:#ed7b2f!important}.stat-card.stat-danger{border-top-color:#d54941!important}.stat-card.stat-primary{border-top-color:var(--app-blue)!important}.stat-card-top{color:#637083;justify-content:space-between;align-items:center;gap:8px;margin-bottom:15px;font-size:12px;display:flex}.stat-card-top svg{color:var(--app-blue)}.stat-card strong{color:#111827;margin-bottom:7px;font-size:29px;font-weight:700;line-height:1;display:block}.stat-card small{color:#96a0ae;font-size:11px}.stat-success .stat-card-top svg{color:#00a870}.stat-warning .stat-card-top svg{color:#ed7b2f}.stat-danger .stat-card-top svg{color:#d54941}.overview-grid,.detail-grid{grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:16px;margin-bottom:16px;display:grid}.panel-card,.table-card,.filter-card,.empty-card{min-width:0;border-radius:7px!important}.panel-card .t-card__header,.table-card .t-card__header{padding:18px 20px 0}.panel-card .t-card__title,.table-card .t-card__title{color:#1f2937;font-size:16px;font-weight:600}.panel-card .t-card__body{padding:18px 20px 20px}.panel-card .t-card__actions{color:var(--app-blue)}.trend-chart{width:100%;height:255px;min-height:220px}.guidance-card{margin-bottom:0}.guidance-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.guidance-item{grid-template-columns:31px minmax(0,1fr);gap:10px;display:grid}.guidance-number{color:var(--app-blue);font-size:12px;font-weight:700;line-height:1.7}.guidance-item strong{color:#344054;font-size:13px}.guidance-item p{color:#7c8795;margin:5px 0 0;font-size:12px;line-height:1.55}.table-action{color:#344054;align-items:center;gap:7px;display:inline-flex}.table-actions{flex-wrap:nowrap;justify-content:flex-start}.table-actions .t-button{flex:none}.cell-note{color:#9aa5b4;margin-top:3px;font-size:11px;display:block}.plugin-cell{align-items:center;gap:11px;min-width:0;display:flex}.plugin-cell>div:last-child{gap:3px;min-width:0;display:grid}.plugin-cell strong{color:#263244;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.plugin-avatar,.market-icon{width:34px;height:34px;color:var(--app-blue);background:#e8f1ff;border-radius:7px;flex:none;place-items:center;display:grid}.empty-card{padding:34px}.filter-card{margin-bottom:16px}.filter-card .t-card__body{padding:17px 20px}.filter-grid{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end;gap:12px;display:grid}.filter-grid .t-form__item{margin-bottom:0}.detail-back{margin-bottom:14px}.detail-back .t-link{font-size:13px}.detail-tabs{margin-bottom:22px}.detail-tabs .t-tabs__nav{overflow-x:auto}.detail-tabs .t-tabs__nav-container{min-width:max-content}.detail-tabs .t-tabs__content{display:none}.detail-content{min-width:0}.detail-actions{margin-bottom:16px}.description-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;margin:0;display:grid}.description-grid>div{min-width:0}.description-grid dt{color:#8a96a5;margin-bottom:5px;font-size:12px}.description-grid dd{color:#344054;min-width:0;font-size:13px;line-height:1.5}.inline-alert{margin-top:20px}.narrow-content{max-width:900px}.tag-gap{margin-left:8px}.preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.preview-grid h3{margin:0 0 8px;font-size:13px}.preview-grid pre{color:#344054;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f9fc;border:1px solid #e5e7eb;border-radius:5px;min-height:210px;max-height:420px;margin:0;padding:13px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.loading-panel{place-items:center;min-height:260px;display:grid}.pagination-row{justify-content:flex-end;padding-top:17px;display:flex}.drawer-description{margin-bottom:20px}.market-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.market-card{min-width:0;border-radius:7px!important}.market-card .t-card__header{padding:20px 20px 0}.market-card .t-card__body{padding:16px 20px}.market-card .t-card__footer{padding:0 20px 20px}.market-heading{align-items:flex-start;gap:11px;min-width:0;display:flex}.market-title{flex:auto;min-width:0}.market-title h2{color:#263244;text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:16px;overflow:hidden}.market-heading>.t-tag{flex:none}.market-description{color:#687585;min-height:42px;margin:0 0 18px;font-size:13px;line-height:1.6}.market-meta{gap:13px 20px;margin-bottom:17px}.market-hash{border-top:1px solid #edf0f4;gap:5px;padding-top:13px;display:grid}.market-hash span{color:#9aa5b4;font-size:11px}.market-hash code{color:#556274;overflow-wrap:anywhere;font-size:11px}.table-card{overflow:hidden}.table-card .t-card__body{min-width:0;padding:0 0 18px}.table-card .t-table{min-width:680px}.table-card .t-table__content{overflow-x:auto}.table-card .t-table__header th{color:#64748b;background:#f8fafc;font-size:12px;font-weight:600}.table-card .t-table__body td{color:#344054;font-size:13px}.table-card .t-table__pagination{padding:15px 20px 0}@media (width<=1100px){.login-layout{gap:44px}.app-header{padding:0 24px}.app-content{padding:28px 24px 44px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid,.detail-grid{grid-template-columns:1fr}}@media (width<=760px){.login-page{place-items:start center;padding:26px 16px}.login-layout{grid-template-columns:1fr;gap:28px;margin-top:16px}.brand-login{margin-bottom:34px}.login-intro h1{font-size:33px}.login-lead{font-size:14px}.login-points{display:none}.login-card .t-card__body{padding:22px 18px}.app-aside{width:min(280px,100vw - 48px);min-height:100vh;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:12px 0 32px #0f172a29}.app-aside.app-aside-mobile-open{transform:translate(0)}.mobile-scrim{z-index:20;background:#0f172a52;position:fixed;inset:0}.mobile-menu-button{display:inline-flex}.app-header{height:58px;padding:0 14px}.header-left,.header-right{gap:8px}.secure-tag{display:none}.user-name{max-width:108px}.app-content{padding:22px 14px 36px}.page-header{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:18px}.page-header h1{font-size:23px}.page-actions{justify-content:flex-start;width:100%}.page-actions .t-button{flex:auto;min-width:0}.page-toolbar,.section-toolbar{flex-direction:column;align-items:flex-start;gap:8px}.section-toolbar .t-button,.toolbar-actions{justify-content:flex-start;width:100%}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat-card .t-card__body{padding:13px}.stat-card strong{font-size:23px}.stat-card-top{margin-bottom:11px}.overview-grid,.detail-grid,.market-grid{grid-template-columns:1fr;gap:12px}.guidance-grid{grid-template-columns:1fr;gap:15px}.panel-card .t-card__header,.table-card .t-card__header{padding:15px 15px 0}.panel-card .t-card__body{padding:15px}.filter-card .t-card__body{padding:14px}.filter-grid{grid-template-columns:1fr;gap:10px}.filter-grid .t-button{justify-self:start}.description-grid{grid-template-columns:1fr;gap:13px}.detail-tabs{margin-bottom:17px}.detail-tabs .t-tabs__nav-item{padding:0 12px}.preview-grid{grid-template-columns:1fr}.market-card .t-card__header{padding:16px 15px 0}.market-card .t-card__body{padding:14px 15px}.market-card .t-card__footer{padding:0 15px 15px}.table-actions{flex-wrap:wrap}.table-card .t-table{min-width:720px}.pagination-row{justify-content:flex-start;overflow-x:auto}}@media (width<=430px){.app-content{padding-left:10px;padding-right:10px}.page-actions .t-button{padding-left:10px;padding-right:10px;font-size:12px}.breadcrumbs span{display:none}.breadcrumbs strong{max-width:150px}.user-name{max-width:90px}.stat-card small{font-size:10px}}.captcha-turnstile[data-v-dcfbd1a5],.captcha-turnstile__container[data-v-dcfbd1a5]{width:100%;min-height:66px}.captcha-turnstile__container[data-v-dcfbd1a5] iframe{max-width:100%;display:block}.captcha-action[data-v-7fd83f77]{width:100%}.captcha-action__international[data-v-7fd83f77]{justify-content:center;align-items:center;width:100%;min-height:60px;display:flex}.captcha-action__trigger[data-v-7fd83f77]{color:#4b5563;cursor:pointer;background:#f8fafc;border:1px solid #d8dee8;border-radius:6px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:42px;font-size:13px;transition:border-color .15s,background-color .15s;display:inline-flex}.captcha-action__trigger[data-v-7fd83f77]:hover:not(:disabled){background:#f0f5ff;border-color:#0052d9}.captcha-action__trigger[data-v-7fd83f77]:disabled{cursor:default;opacity:.85}.captcha-action__dot[data-v-7fd83f77]{background:#a0aec0;border-radius:50%;width:8px;height:8px}.captcha-action__dot.is-verified[data-v-7fd83f77]{background:#00a870}.captcha-action[data-v-8a1336a6]{width:100%}.captcha-action__trigger[data-v-8a1336a6]{color:#4b5563;cursor:pointer;background:#f8fafc;border:1px solid #d8dee8;border-radius:6px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:42px;font-size:13px;transition:border-color .15s,background-color .15s;display:inline-flex}.captcha-action__trigger[data-v-8a1336a6]:hover:not(:disabled){background:#f0f5ff;border-color:#0052d9}.captcha-action__trigger[data-v-8a1336a6]:disabled{cursor:default;opacity:.85}.captcha-action__trigger.is-verified[data-v-8a1336a6]{color:#087f5b;background:#f0fff8;border-color:#00a870}.captcha-action__dot[data-v-8a1336a6]{background:#a0aec0;border-radius:50%;width:8px;height:8px}.captcha-action__dot.is-verified[data-v-8a1336a6]{background:#00a870}.captcha-challenge[data-v-be35acfe]{width:100%;margin:2px 0 10px}.captcha-challenge__missing[data-v-be35acfe]{color:#a61b1b;background:#fff7f7;border:1px solid #f3c7c4;border-radius:6px;padding:10px 12px;font-size:12px;line-height:1.5} +/*$vite$:1*/ \ No newline at end of file diff --git a/plugins/subscription-admin/.env.example b/plugins/subscription-admin/.env.example index c6e37a9..c7c96e7 100644 --- a/plugins/subscription-admin/.env.example +++ b/plugins/subscription-admin/.env.example @@ -14,3 +14,8 @@ PLUGIN_COOKIE_SAMESITE=lax PLUGIN_FRAME_ANCESTORS='self' # Set true only when the immediate reverse proxy is trusted and supplies XFF. PLUGIN_TRUST_PROXY=false +# Development-only compatibility endpoints. Keep false in production; the +# unified Plugin Admin owns login, sessions and subscription BFF routes. +# Compatibility login/API is accepted only with PLUGIN_ENV=development and a +# loopback PLUGIN_HOST. Production should leave this false. +PLUGIN_STANDALONE_AUTH=false diff --git a/plugins/subscription-admin/README.md b/plugins/subscription-admin/README.md index 8864a25..f200bcf 100644 --- a/plugins/subscription-admin/README.md +++ b/plugins/subscription-admin/README.md @@ -1,6 +1,6 @@ # Sub2API Subscription Admin Business Plugin V1 -这是一个独立运行的管理员只读业务插件,不是现有 `.s2plugin` transport 插件,也不是插件管理后台。它不导入 Sub2API `internal` 包,不连接 Core 数据库,也不修改 Core Go/Vue、迁移、路由或 `.s2plugin` ABI。 +这是一个可独立运行后端的管理员只读订阅业务模块,不是现有 `.s2plugin` transport 插件,也不是插件管理控制面。它不导入 Sub2API `internal` 包,不连接 Core 数据库,也不修改 Core Go/Vue、迁移、路由或 `.s2plugin` ABI。浏览器前端由 `plugin-admin` 统一 TDesign 控制面承载,订阅模块不提供第二个登录页或 Cookie。 生产/集成环境由通用 `plugins/plugin-admin` 控制面安装、启用和升级本插件;本插件不会预装,也不会成为控制面首页。只有健康检查通过并由管理员执行菜单预览/应用后,Core 管理员菜单才会出现“订阅管理”入口。直接运行本目录仅用于本地开发和契约测试。 @@ -13,12 +13,12 @@ PLUGIN_PORT=8091 \ go run . ``` -打开 `http://127.0.0.1:8091/admin/`。生产环境应通过 HTTPS 反向代理,并设置 `PLUGIN_COOKIE_SECURE=true`。挂载到子路径时同时设置 `PLUGIN_PUBLIC_BASE_PATH` 和 `PLUGIN_COOKIE_PATH`,例如 `/extensions/qiu.subscription-admin`。 +本地后端可打开 `http://127.0.0.1:8091/healthz` 进行服务契约调试;生产浏览器入口应从 Plugin Admin 的订阅模块路由进入。生产环境应通过 HTTPS 反向代理,并设置 `PLUGIN_COOKIE_SECURE=true`。默认情况下本服务只暴露健康检查、就绪检查和交接页,不暴露第二套登录、Cookie 或 Core 数据 API。`PLUGIN_STANDALONE_AUTH=true` 仅在 `PLUGIN_ENV=development` 且监听地址为 loopback 时生效,生产必须保持关闭。 ## V1 范围 -- Core 管理员账号登录和 Core 2FA;普通账号统一拒绝。 -- 插件 HttpOnly、SameSite 会话和写请求 CSRF 校验。 +- 由 Plugin Admin 统一完成 Core 管理员账号登录和 Core 2FA;普通账号统一拒绝。 +- 订阅模块复用控制面的 HttpOnly、SameSite 会话和写请求 CSRF 校验,不创建模块级登录会话。 - Core token 只保存在插件服务端内存会话中,不进入浏览器、URL、HTML、LocalStorage、响应或日志。 - 只读套餐、订阅列表、订阅详情和插件操作记录。 - Core access token 失效时最多刷新一次;刷新失败会销毁插件会话。 @@ -28,7 +28,7 @@ go run . ## Core API allowlist -插件服务端仅调用这些明确路径: +插件服务端在 `PLUGIN_STANDALONE_AUTH=true`、`PLUGIN_ENV=development` 且 loopback 的本地兼容模式下仅调用这些明确路径;生产数据访问由 Plugin Admin 同源 BFF 完成: ```text POST /api/v1/auth/login @@ -54,13 +54,13 @@ GET /api/v1/admin/users/{id}/subscriptions { "id": "qiu.subscription-admin", "label": "订阅管理", - "url": "https://CORE_ORIGIN/extensions/qiu.subscription-admin/", + "url": "https://CORE_ORIGIN/extensions/qiu.plugin-admin/admin/#/modules/subscription/overview", "visibility": "admin", "sort_order": 200 } ``` -Core 自定义页面的 sandbox iframe 不会继承 Core `localStorage` 登录态,因此 V1 首屏显示插件登录页是预期行为;同时提供新窗口入口。不要把 JWT 放进 URL。 +Core 自定义页面的 sandbox iframe 不会继承 Core `localStorage` 登录态,因此菜单应指向 Plugin Admin 的统一控制面入口;订阅模块本身不显示登录页、不创建 Cookie。不要把 JWT 放进 URL。 ## 测试 @@ -78,10 +78,13 @@ node --check ui/app.js ``` 脚本生成 `dist/qiu.subscription-admin.s2plugin`,包内根文件名为 -`manifest.json`,并包含清单声明哈希的 UI 文件。该插件采用外部服务模式: +`manifest.json`,并包含清单声明哈希的 UI 文件。该模块采用外部服务模式: 安装后先独立启动 `subscription-admin`,再在 `plugin-admin` 的配置中填写 -`service_url`(插件 loopback 地址)和 `public_url`(反向代理地址),然后执行 -启用、健康检查和菜单应用。生产环境必须把签名文件通过 +`service_url`(插件 loopback 地址),并为 Plugin Admin 设置 +`PLUGIN_PUBLIC_URL`(例如 `https://CORE_ORIGIN/extensions/qiu.plugin-admin`)。 +然后执行启用、健康检查和菜单应用。浏览器前端由 `plugin-admin` 统一挂载并共享 +控制面会话,菜单固定跳转到 `#/modules/subscription/overview`,不会跳转到本服务 +的登录页。生产环境必须把签名文件通过 `SIGNATURE_FILE=/path/to/signature.json ./package.sh` 放入包内,并将对应公钥 加入控制面受信发布者配置;未签名包仅限 development + loopback。 @@ -89,9 +92,23 @@ node --check ui/app.js `business-plugin-manifest.v1.json` 是部署层清单,不由 Core 读取。生产发布应由独立 CI 签名并校验清单、版本、健康路径和兼容的 Core 版本;不要把发布私钥放入仓库或插件包。插件版本独立于 `backend/cmd/server/VERSION`。 +发布构建必须显式启用签名门禁: + +```sh +RELEASE_BUILD=true SIGNATURE_FILE=/secure/signature.json ./package.sh +``` + +脚本会把 `signature.json` 放入归档并生成同名 `.sha256` 校验文件;未签名包 +仅用于 development + loopback。 + ## 已知限制 -- V1 使用内存会话,服务重启会要求重新登录;多实例部署需将会话存储替换为插件自有 Redis/共享会话服务。 +- 模块后端是常驻服务,不需要每次使用后重启。Core access token 过期时,后端会 + 按需 refresh 并继续当前请求;只有 refresh 失效、Core 撤销管理员、会话 + 空闲超过 30 分钟或达到 8 小时绝对上限时才需要重新登录。 +- V1 控制面使用内存会话,控制面服务重启会要求重新登录一次;订阅模块不会 + 单独要求登录。多实例或跨重启免登录需将控制面会话存储替换为插件自有的 + 加密 Redis/共享会话服务。 - 现有 Core 自定义 iframe 没有 token handoff,V1 不提供无感 SSO;真正 SSO 需要单独的 V1.1 Core 交接接口。 - Core 当前套餐响应中的 `features` 可能是 JSON 字符串,UI 会兼容字符串和数组。 - Core 开启验证码时,管理员必须先完成对应提供商的挑战并将结果填入登录表单;插件不保存验证码票据。 diff --git a/plugins/subscription-admin/business-plugin-manifest.v1.json b/plugins/subscription-admin/business-plugin-manifest.v1.json index 837ffc6..fcdda60 100644 --- a/plugins/subscription-admin/business-plugin-manifest.v1.json +++ b/plugins/subscription-admin/business-plugin-manifest.v1.json @@ -2,7 +2,7 @@ "schema_version": 1, "plugin_id": "qiu.subscription-admin", "name": "Subscription Admin", - "version": "0.1.1", + "version": "0.2.0", "core_api_baseline": "sub2api-0.1.183", "capabilities": ["subscription.admin.v1"], "tested_core_versions": ["0.1.183"], @@ -37,8 +37,8 @@ "GET /api/v1/admin/users/{id}/subscriptions" ], "files": { - "ui/index.html": "a189f81675f1bf7820111123221d8056111c86ca104fad2906e961fad6ef4697", - "ui/app.js": "51896358caa769c1fc6353613b92d02bbdd340a24dca567b4f86fcaf1f5f36ca", - "ui/styles.css": "d96dff24fa6f7d96a977f5d8f09986cedb987aad1bb26177b9bf4d7b5982ae54" + "ui/index.html": "1c863feae45d0c2b17e7c3f267f0360b5998b796961eb191deb783ea5cc5ebf7", + "ui/app.js": "c6b5742f7926a89df8ddf7a18b60903f235b80ee39d697192a7b57b145f5c126", + "ui/styles.css": "2f0a1848586f66c3df4a54e7b674618788c2309dc8e3068e88a2676a6dcb09e9" } } diff --git a/plugins/subscription-admin/deploy/custom-menu-item.json b/plugins/subscription-admin/deploy/custom-menu-item.json index 7e947f5..3af0c6f 100644 --- a/plugins/subscription-admin/deploy/custom-menu-item.json +++ b/plugins/subscription-admin/deploy/custom-menu-item.json @@ -1,7 +1,7 @@ { "id": "qiu.subscription-admin", "label": "订阅管理", - "url": "https://CORE_ORIGIN/extensions/qiu.subscription-admin/", + "url": "https://CORE_ORIGIN/extensions/qiu.plugin-admin/admin/#/modules/subscription/overview", "visibility": "admin", "sort_order": 200 } diff --git a/plugins/subscription-admin/deploy/systemd.service.example b/plugins/subscription-admin/deploy/systemd.service.example index 84aa3cf..8443c02 100644 --- a/plugins/subscription-admin/deploy/systemd.service.example +++ b/plugins/subscription-admin/deploy/systemd.service.example @@ -7,16 +7,29 @@ Wants=network-online.target Type=simple User=sub2api-plugin Group=sub2api-plugin -WorkingDirectory=/opt/sub2api/subscription-admin -EnvironmentFile=/etc/sub2api/subscription-admin.env -ExecStart=/opt/sub2api/subscription-admin/bin/subscription-admin +WorkingDirectory=/var/lib/sub2api-add/subscription-admin +EnvironmentFile=/etc/sub2api-add/subscription-admin.env +ExecStart=/opt/sub2api-add/subscription-admin/bin/subscription-admin Restart=on-failure RestartSec=3 NoNewPrivileges=true PrivateTmp=true +PrivateDevices=true ProtectSystem=strict ProtectHome=true -ReadWritePaths=/var/lib/sub2api/subscription-admin +ProtectKernelTunables=true +ProtectKernelModules=true +ProtectKernelLogs=true +ProtectControlGroups=true +RestrictSUIDSGID=true +CapabilityBoundingSet= +LockPersonality=true +MemoryDenyWriteExecute=true +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 +TasksMax=128 +MemoryMax=512M +CPUQuota=200% +ReadWritePaths=/var/lib/sub2api-add/subscription-admin [Install] WantedBy=multi-user.target diff --git a/plugins/subscription-admin/main.go b/plugins/subscription-admin/main.go index 1d9df90..552108f 100644 --- a/plugins/subscription-admin/main.go +++ b/plugins/subscription-admin/main.go @@ -4,6 +4,7 @@ package main import ( + "bytes" "context" "crypto/rand" "embed" @@ -32,8 +33,9 @@ const ( sessionTTL = 30 * time.Minute sessionMaxTTL = 8 * time.Hour pendingTTL = 5 * time.Minute + maxPendingLogins = 1024 pluginID = "qiu.subscription-admin" - pluginVersion = "0.1.1" + pluginVersion = "0.2.0" requestIDHeader = "X-Request-ID" maxRequestIDBytes = 64 ) @@ -436,10 +438,33 @@ func token(n int) string { } func decodeJSON(r *http.Request, out any) error { + if r == nil || r.Body == nil { + return errors.New("request body is required") + } defer r.Body.Close() - dec := json.NewDecoder(io.LimitReader(r.Body, maxBodyBytes)) + raw, err := io.ReadAll(io.LimitReader(r.Body, maxBodyBytes+1)) + if err != nil { + return err + } + if int64(len(raw)) > maxBodyBytes { + return errors.New("request body exceeds size limit") + } + if len(bytes.TrimSpace(raw)) == 0 { + return errors.New("request body is required") + } + dec := json.NewDecoder(bytes.NewReader(raw)) dec.DisallowUnknownFields() - return dec.Decode(out) + if err := dec.Decode(out); err != nil { + return err + } + var trailing any + if err := dec.Decode(&trailing); err != io.EOF { + if err == nil { + return errors.New("request body must contain exactly one JSON value") + } + return err + } + return nil } func (a *app) writeJSON(w http.ResponseWriter, status int, value any) { @@ -480,6 +505,13 @@ func (a *app) allowLoginAttempt(r *http.Request, identity string) bool { now := a.clock() a.mu.Lock() defer a.mu.Unlock() + // Expire buckets opportunistically so a long-lived development compatibility + // process cannot retain one map entry for every attempted identity forever. + for candidate, attempt := range a.loginAttempts { + if attempt.started.IsZero() || now.Sub(attempt.started) >= a.loginWindow { + delete(a.loginAttempts, candidate) + } + } attempt := a.loginAttempts[key] if attempt.started.IsZero() || now.Sub(attempt.started) >= a.loginWindow { attempt = loginAttempt{started: now} @@ -493,6 +525,32 @@ func (a *app) allowLoginAttempt(r *http.Request, identity string) bool { return true } +// addPendingLogin keeps the optional standalone 2FA compatibility mode +// bounded. A client can create a challenge without completing it, so expired +// entries are removed before enforcing the hard cap. +func (a *app) addPendingLogin(value pendingLogin) (string, bool) { + a.mu.Lock() + defer a.mu.Unlock() + now := time.Now() + if a.clock != nil { + now = a.clock() + } + for id, pending := range a.pending { + if !pending.expires.After(now) { + delete(a.pending, id) + } + } + if len(a.pending) >= maxPendingLogins { + return "", false + } + if a.pending == nil { + a.pending = make(map[string]pendingLogin) + } + id := token(24) + a.pending[id] = value + return id, true +} + func (a *app) clientIP(r *http.Request) string { return trustedClientIPWithConfig(r, a.trustProxy) } @@ -526,10 +584,12 @@ func (a *app) login(w http.ResponseWriter, r *http.Request) { a.writeJSON(w, http.StatusBadGateway, map[string]string{"error": "core 2fa challenge missing"}) return } - pendingID := token(24) - a.mu.Lock() - a.pending[pendingID] = pendingLogin{tempToken: temp, expires: a.clock().Add(pendingTTL), clientIP: a.clientIP(r)} - a.mu.Unlock() + pendingID, accepted := a.addPendingLogin(pendingLogin{tempToken: temp, expires: a.clock().Add(pendingTTL), clientIP: a.clientIP(r)}) + if !accepted { + w.Header().Set("Retry-After", "60") + a.writeJSON(w, http.StatusTooManyRequests, map[string]string{"error": "too many pending login challenges"}) + return + } a.writeJSON(w, http.StatusOK, map[string]any{"requires_2fa": true, "pending_token": pendingID}) return } @@ -760,6 +820,13 @@ func (a *app) userProxy(w http.ResponseWriter, r *http.Request) { } } if err != nil { + if ce, unauthorized := err.(*coreError); unauthorized && ce.status == http.StatusUnauthorized { + a.removeSessionIfCurrent(sessionID, s.accessToken) + a.core.logout(r.Context(), s.refreshToken, correlationID) + a.setSessionCookie(w, "", -1) + a.writeJSON(w, http.StatusUnauthorized, map[string]string{"error": "core session expired"}) + return + } a.coreError(w, err, "user lookup failed") return } @@ -853,18 +920,25 @@ func (a *app) refreshSession(ctx context.Context, id string, stale session) (ses return session{}, false } data := envelopeData(refreshed) + candidateRefresh := current.refreshToken + if nextRefresh, ok := data["refresh_token"].(string); ok && nextRefresh != "" { + candidateRefresh = nextRefresh + } access, _ := data["access_token"].(string) if access == "" { + a.core.logout(ctx, candidateRefresh, correlationID) return session{}, false } + // Refresh-token rotation is common. Do not commit the replacement until the + // new access token has passed the Core identity and admin-role checks; if a + // check fails, revoke the replacement instead of leaving it live. nextMe, err := a.core.me(ctx, access, correlationID) if err != nil || !isAdmin(envelopeData(nextMe)) { + a.core.logout(ctx, candidateRefresh, correlationID) return session{}, false } current.accessToken = access - if nextRefresh, ok := data["refresh_token"].(string); ok && nextRefresh != "" { - current.refreshToken = nextRefresh - } + current.refreshToken = candidateRefresh current.user = publicUser(envelopeData(nextMe)) current.lastSeen = a.clock() a.mu.Lock() @@ -995,40 +1069,63 @@ func (a *app) static(w http.ResponseWriter, r *http.Request) { http.NotFound(w, r) } +// standaloneAuthEnabled is intentionally fail-closed. The module's own +// login/API compatibility surface is useful for local contract tests only; +// production deployments must expose the shared Plugin Admin Shell instead. +func standaloneAuthEnabled() bool { + if !strings.EqualFold(strings.TrimSpace(os.Getenv("PLUGIN_STANDALONE_AUTH")), "true") { + return false + } + if !strings.EqualFold(strings.TrimSpace(os.Getenv("PLUGIN_ENV")), "development") { + return false + } + host := strings.Trim(strings.TrimSpace(os.Getenv("PLUGIN_HOST")), "[]") + if host == "" { + host = "127.0.0.1" + } + return isLoopbackHost(host) +} + func (a *app) routes() http.Handler { mux := http.NewServeMux() mux.HandleFunc("/healthz", a.health) mux.HandleFunc("/readyz", a.ready) - mux.HandleFunc("/login", a.login) - mux.HandleFunc("/login/2fa", a.login2FA) - mux.HandleFunc("/logout", a.logout) - mux.HandleFunc("/api/me", a.me) - mux.HandleFunc("/api/status", a.status) - mux.HandleFunc("/api/captcha-config", a.captchaConfig) - mux.HandleFunc("/api/audit", a.auditLog) - mux.Handle("/api/plans", a.readProxy("/api/v1/admin/payment/plans")) - mux.Handle("/api/subscriptions", a.readProxy("/api/v1/admin/subscriptions")) - mux.HandleFunc("/api/subscriptions/", func(w http.ResponseWriter, r *http.Request) { - id := strings.TrimPrefix(r.URL.Path, "/api/subscriptions/") - if !positiveID(id) || strings.Contains(id, "/") { - http.NotFound(w, r) - return - } - a.readProxy("/api/v1/admin/subscriptions/"+id)(w, r) - }) - mux.HandleFunc("/api/users/", func(w http.ResponseWriter, r *http.Request) { - rest := strings.TrimPrefix(r.URL.Path, "/api/users/") - parts := strings.Split(rest, "/") - if len(parts) == 1 { - a.userProxy(w, r) - return - } - if len(parts) != 2 || !positiveID(parts[0]) || parts[1] != "subscriptions" { - http.NotFound(w, r) - return - } - a.readProxy("/api/v1/admin/users/"+parts[0]+"/subscriptions")(w, r) - }) + // The business module is mounted by Plugin Admin. A standalone compatibility + // API is available only when explicitly opted into for local contract tests; + // production deployments leave it disabled so there is no second login, + // session cookie, or Core-data BFF on the module's own port. + if standaloneAuthEnabled() { + mux.HandleFunc("/login", a.login) + mux.HandleFunc("/login/2fa", a.login2FA) + mux.HandleFunc("/logout", a.logout) + mux.HandleFunc("/api/me", a.me) + mux.HandleFunc("/api/status", a.status) + mux.HandleFunc("/api/captcha-config", a.captchaConfig) + mux.HandleFunc("/api/audit", a.auditLog) + mux.Handle("/api/plans", a.readProxy("/api/v1/admin/payment/plans")) + mux.Handle("/api/subscriptions", a.readProxy("/api/v1/admin/subscriptions")) + mux.HandleFunc("/api/subscriptions/", func(w http.ResponseWriter, r *http.Request) { + id := strings.TrimPrefix(r.URL.Path, "/api/subscriptions/") + if !positiveID(id) || strings.Contains(id, "/") { + http.NotFound(w, r) + return + } + a.readProxy("/api/v1/admin/subscriptions/"+id)(w, r) + }) + mux.HandleFunc("/api/users/", func(w http.ResponseWriter, r *http.Request) { + rest := strings.TrimPrefix(r.URL.Path, "/api/users/") + parts := strings.Split(rest, "/") + if len(parts) == 1 { + a.userProxy(w, r) + return + } + if len(parts) != 2 || !positiveID(parts[0]) || parts[1] != "subscriptions" { + http.NotFound(w, r) + return + } + a.readProxy("/api/v1/admin/users/"+parts[0]+"/subscriptions")(w, r) + }) + } mux.HandleFunc("/", a.static) return requestIDMiddleware(a.securityHeaders(mux)) } diff --git a/plugins/subscription-admin/main_test.go b/plugins/subscription-admin/main_test.go index b10ffc6..75f4fb2 100644 --- a/plugins/subscription-admin/main_test.go +++ b/plugins/subscription-admin/main_test.go @@ -259,6 +259,97 @@ func TestReadProxyRefreshesAtMostOncePerRequest(t *testing.T) { } } +func TestRefreshRotationRevokesCandidateWhenAdminCheckFails(t *testing.T) { + var meCalls int32 + var logoutTokens []string + c := testCoreClient(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + switch r.URL.Path { + case "/api/v1/auth/me": + if atomic.AddInt32(&meCalls, 1) == 1 { + w.WriteHeader(http.StatusUnauthorized) + _, _ = w.Write([]byte(`{"code":401,"message":"expired"}`)) + return + } + _, _ = w.Write([]byte(`{"code":0,"message":"success","data":{"id":2,"role":"user"}}`)) + case "/api/v1/auth/refresh": + _, _ = w.Write([]byte(`{"code":0,"message":"success","data":{"access_token":"NEW","refresh_token":"NEW-REFRESH"}}`)) + case "/api/v1/auth/logout": + var body map[string]string + _ = json.NewDecoder(r.Body).Decode(&body) + logoutTokens = append(logoutTokens, body["refresh_token"]) + _, _ = w.Write([]byte(`{"code":0,"message":"success","data":{}}`)) + default: + t.Errorf("unexpected Core path %s", r.URL.Path) + } + })) + a := newApp(c, false) + now := time.Now() + a.sessions["sid"] = session{accessToken: "OLD", refreshToken: "REFRESH", csrfToken: "CSRF", createdAt: now, lastSeen: now, user: map[string]any{"id": 1, "role": "admin"}} + a.sessionLocks["sid"] = &sync.Mutex{} + req := httptest.NewRequest(http.MethodGet, "/api/me", nil) + req.AddCookie(&http.Cookie{Name: sessionCookieName, Value: "sid"}) + rec := httptest.NewRecorder() + a.me(rec, req) + if rec.Code != http.StatusUnauthorized { + t.Fatalf("expected refreshed session rejection: status=%d body=%s", rec.Code, rec.Body.String()) + } + for _, value := range logoutTokens { + if value == "NEW-REFRESH" { + return + } + } + t.Fatalf("rotated refresh token was not revoked: %#v", logoutTokens) +} + +func TestUserProxyClearsSessionWhenReadTokenIsRevoked(t *testing.T) { + var logoutCalls int32 + c := testCoreClient(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + switch r.URL.Path { + case "/api/v1/auth/me": + _, _ = w.Write([]byte(`{"code":0,"message":"success","data":{"id":1,"role":"admin"}}`)) + case "/api/v1/admin/users/1": + w.WriteHeader(http.StatusUnauthorized) + _, _ = w.Write([]byte(`{"code":401,"message":"revoked"}`)) + case "/api/v1/auth/refresh": + w.WriteHeader(http.StatusUnauthorized) + _, _ = w.Write([]byte(`{"code":401,"message":"refresh revoked"}`)) + case "/api/v1/auth/logout": + atomic.AddInt32(&logoutCalls, 1) + _, _ = w.Write([]byte(`{"code":0,"message":"success","data":{}}`)) + default: + t.Errorf("unexpected Core path %s", r.URL.Path) + } + })) + a := newApp(c, false) + now := time.Now() + a.sessions["sid"] = session{accessToken: "TOKEN", refreshToken: "REFRESH", csrfToken: "CSRF", createdAt: now, lastSeen: now, user: map[string]any{"id": 1, "role": "admin"}} + a.sessionLocks["sid"] = &sync.Mutex{} + req := httptest.NewRequest(http.MethodGet, "/api/users/1", nil) + req.AddCookie(&http.Cookie{Name: sessionCookieName, Value: "sid"}) + rec := httptest.NewRecorder() + a.userProxy(rec, req) + if rec.Code != http.StatusUnauthorized { + t.Fatalf("status=%d body=%s", rec.Code, rec.Body.String()) + } + if _, ok := a.sessions["sid"]; ok { + t.Fatal("revoked session remained in plugin store") + } + if atomic.LoadInt32(&logoutCalls) != 1 { + t.Fatalf("logout calls=%d", logoutCalls) + } + cleared := false + for _, cookie := range rec.Result().Cookies() { + if cookie.Name == sessionCookieName && cookie.MaxAge < 0 { + cleared = true + } + } + if !cleared { + t.Fatalf("session cookie was not cleared: %#v", rec.Result().Cookies()) + } +} + func TestSessionExpiry(t *testing.T) { now := time.Now() a := newApp(nil, false) @@ -285,6 +376,61 @@ func TestTwoFactorPendingTokenIsSingleUse(t *testing.T) { } } +func TestPendingLoginCapAndExpiry(t *testing.T) { + now := time.Now() + a := newApp(nil, false) + a.clock = func() time.Time { return now } + for i := 0; i < maxPendingLogins; i++ { + if _, ok := a.addPendingLogin(pendingLogin{tempToken: "TEMP", expires: now.Add(time.Minute)}); !ok { + t.Fatalf("pending challenge %d was unexpectedly rejected", i) + } + } + if _, ok := a.addPendingLogin(pendingLogin{tempToken: "OVERFLOW", expires: now.Add(time.Minute)}); ok { + t.Fatal("pending challenge cap was not enforced") + } + if got := len(a.pending); got != maxPendingLogins { + t.Fatalf("pending map size=%d want %d", got, maxPendingLogins) + } + a.clock = func() time.Time { return now.Add(pendingTTL + time.Second) } + if _, ok := a.addPendingLogin(pendingLogin{tempToken: "AFTER-EXPIRY", expires: now.Add(2 * pendingTTL)}); !ok { + t.Fatal("expired pending challenges were not evicted") + } + if got := len(a.pending); got != 1 { + t.Fatalf("pending map size after expiry=%d want 1", got) + } +} + +func TestStandaloneLoginRateLimitBoundsCoreAttempts(t *testing.T) { + t.Setenv("PLUGIN_STANDALONE_AUTH", "true") + t.Setenv("PLUGIN_ENV", "development") + var loginCalls int32 + c := testCoreClient(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + if r.URL.Path == "/api/v1/auth/login" { + atomic.AddInt32(&loginCalls, 1) + _, _ = w.Write([]byte(`{"code":0,"message":"success","data":{"requires_2fa":true,"temp_token":"TEMP"}}`)) + return + } + t.Errorf("unexpected Core path %s", r.URL.Path) + _, _ = w.Write([]byte(`{"code":0,"message":"success","data":{}}`)) + })) + a := newAppWithConfig(c, appConfig{LoginLimit: 2, LoginWindow: time.Hour}) + for attempt := 0; attempt < 3; attempt++ { + req := httptest.NewRequest(http.MethodPost, "/login", strings.NewReader(`{"email":"admin@example.com","password":"password"}`)) + rec := httptest.NewRecorder() + a.login(rec, req) + if attempt < 2 && rec.Code != http.StatusOK { + t.Fatalf("attempt %d status=%d body=%s", attempt+1, rec.Code, rec.Body.String()) + } + if attempt == 2 && (rec.Code != http.StatusTooManyRequests || rec.Header().Get("Retry-After") == "") { + t.Fatalf("limit response status=%d headers=%v body=%s", rec.Code, rec.Header(), rec.Body.String()) + } + } + if got := atomic.LoadInt32(&loginCalls); got != 2 { + t.Fatalf("Core received %d login calls want 2", got) + } +} + func TestAllowedReadPathRejectsTraversalAndUnknownRoutes(t *testing.T) { for _, path := range []string{ "/api/v1/admin/subscriptions/1/progress", @@ -299,22 +445,39 @@ func TestAllowedReadPathRejectsTraversalAndUnknownRoutes(t *testing.T) { } func TestRoutesProtectReadOnlyEndpointsAndSetSecurityHeaders(t *testing.T) { - a := newApp(nil, false) + t.Setenv("PLUGIN_STANDALONE_AUTH", "false") + t.Setenv("PLUGIN_ENV", "production") + var coreCalls int32 + c := testCoreClient(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + atomic.AddInt32(&coreCalls, 1) + w.WriteHeader(http.StatusInternalServerError) + })) + a := newApp(c, false) server := httptest.NewServer(a.routes()) t.Cleanup(server.Close) - response, err := server.Client().Get(server.URL + "/api/plans") - if err != nil { - t.Fatal(err) + for _, endpoint := range []string{"/login", "/login/2fa", "/logout", "/api/me", "/api/status", "/api/plans", "/api/subscriptions", "/api/users/1"} { + response, err := server.Client().Get(server.URL + endpoint) + if err != nil { + t.Fatal(err) + } + if response.StatusCode != http.StatusNotFound { + t.Fatalf("endpoint=%s status=%d", endpoint, response.StatusCode) + } + if len(response.Cookies()) != 0 { + t.Fatalf("endpoint=%s unexpectedly set cookies: %#v", endpoint, response.Cookies()) + } + if response.Header.Get("Content-Security-Policy") == "" || response.Header.Get("X-Content-Type-Options") != "nosniff" { + t.Fatalf("endpoint=%s security headers missing: %#v", endpoint, response.Header) + } } - if response.StatusCode != http.StatusUnauthorized { - t.Fatalf("status=%d", response.StatusCode) - } - if response.Header.Get("Content-Security-Policy") == "" || response.Header.Get("X-Content-Type-Options") != "nosniff" { - t.Fatalf("security headers missing: %#v", response.Header) + if atomic.LoadInt32(&coreCalls) != 0 { + t.Fatalf("disabled standalone routes called Core %d times", coreCalls) } } func TestRoutesPropagateRequestIDAndBootstrapSession(t *testing.T) { + t.Setenv("PLUGIN_STANDALONE_AUTH", "true") + t.Setenv("PLUGIN_ENV", "development") var coreRequestID string c := testCoreClient(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { coreRequestID = r.Header.Get(requestIDHeader) @@ -358,6 +521,26 @@ func TestRoutesPropagateRequestIDAndBootstrapSession(t *testing.T) { } } +func TestStandaloneAuthFailsClosedOutsideDevelopmentLoopback(t *testing.T) { + for _, test := range []struct { + name string + env string + host string + }{ + {name: "production", env: "production", host: "127.0.0.1"}, + {name: "public-development", env: "development", host: "0.0.0.0"}, + } { + t.Run(test.name, func(t *testing.T) { + t.Setenv("PLUGIN_STANDALONE_AUTH", "true") + t.Setenv("PLUGIN_ENV", test.env) + t.Setenv("PLUGIN_HOST", test.host) + if standaloneAuthEnabled() { + t.Fatal("standalone auth unexpectedly enabled") + } + }) + } +} + func readBody(t *testing.T, response *http.Response) string { t.Helper() defer response.Body.Close() diff --git a/plugins/subscription-admin/package.sh b/plugins/subscription-admin/package.sh index 148210f..3ac6582 100755 --- a/plugins/subscription-admin/package.sh +++ b/plugins/subscription-admin/package.sh @@ -3,6 +3,7 @@ set -eu ROOT=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) OUT=${OUT:-"$ROOT/dist/qiu.subscription-admin.s2plugin"} +RELEASE_BUILD=${RELEASE_BUILD:-false} command -v jq >/dev/null 2>&1 || { printf '%s\n' 'jq is required to build a package' >&2; exit 2; } TMP=$(mktemp -d) cleanup() { @@ -24,10 +25,30 @@ jq --arg index_hash "$INDEX_HASH" --arg app_hash "$APP_HASH" --arg styles_hash " "$ROOT/business-plugin-manifest.v1.json" > "$TMP/manifest.json" if [ -n "${SIGNATURE_FILE:-}" ]; then - cp "$SIGNATURE_FILE" "$TMP/signature.json" + [ -f "$SIGNATURE_FILE" ] || { printf '%s\n' 'SIGNATURE_FILE does not exist' >&2; exit 2; } + SIGNATURE_KEY=$(jq -r '.publisher.key_id // empty' "$TMP/manifest.json") + SIGNATURE_ALGORITHM=$(jq -r '.algorithm // empty' "$SIGNATURE_FILE") + SIGNATURE_FILE_KEY=$(jq -r '.key_id // empty' "$SIGNATURE_FILE") + SIGNATURE_VALUE=$(jq -r '.signature // empty' "$SIGNATURE_FILE") + [ "$SIGNATURE_ALGORITHM" = "ed25519" ] || { printf '%s\n' 'signature.json must use ed25519' >&2; exit 2; } + [ -n "$SIGNATURE_KEY" ] && [ "$SIGNATURE_FILE_KEY" = "$SIGNATURE_KEY" ] || { printf '%s\n' 'signature key_id does not match manifest publisher' >&2; exit 2; } + [ -n "$SIGNATURE_VALUE" ] || { printf '%s\n' 'signature value is required' >&2; exit 2; } + cp "$SIGNATURE_FILE" "$TMP/signature.json" + elif [ "$RELEASE_BUILD" = "true" ]; then + printf '%s\n' 'RELEASE_BUILD=true requires SIGNATURE_FILE' >&2 + exit 2 + else + printf '%s\n' 'warning: building an unsigned development package' >&2 fi OUT_DIR=$(CDPATH= cd -- "$(dirname -- "$OUT")" && pwd) OUT_PATH="$OUT_DIR/$(basename -- "$OUT")" -(cd "$TMP" && zip -q -r "$OUT_PATH" manifest.json ui) +find "$TMP" -type f -exec touch -t 198001010000 {} + +if [ -f "$TMP/signature.json" ]; then + (cd "$TMP" && zip -X -q -r "$OUT_PATH" manifest.json signature.json ui) +else + (cd "$TMP" && zip -X -q -r "$OUT_PATH" manifest.json ui) +fi +ARCHIVE_HASH=$(shasum -a 256 "$OUT_PATH" | awk '{print $1}') +printf '%s %s\n' "$ARCHIVE_HASH" "$(basename -- "$OUT_PATH")" > "$OUT_PATH.sha256" printf '%s\n' "$OUT_PATH" diff --git a/plugins/subscription-admin/test/browser-check.mjs b/plugins/subscription-admin/test/browser-check.mjs index 26b8d2d..ddeed9f 100644 --- a/plugins/subscription-admin/test/browser-check.mjs +++ b/plugins/subscription-admin/test/browser-check.mjs @@ -8,7 +8,9 @@ const outputDir = process.env.PLUGIN_SCREENSHOT_DIR || '.playwright-cli/subscrip await fs.mkdir(path.resolve(outputDir), { recursive: true }) -const browser = await chromium.launch({ headless: true }) +const launchOptions = { headless: true } +if (process.env.PLAYWRIGHT_EXECUTABLE_PATH) launchOptions.executablePath = process.env.PLAYWRIGHT_EXECUTABLE_PATH +const browser = await chromium.launch(launchOptions) try { for (const width of [425, 900, 1440]) { const page = await browser.newPage({ viewport: { width, height: 900 }, deviceScaleFactor: 1 }) @@ -21,18 +23,12 @@ try { } catch (_) {} }) await page.goto(entry, { waitUntil: 'domcontentloaded' }) - await page.getByLabel('管理员邮箱').fill('admin@example.com') - await page.getByLabel('密码').fill('password') - await page.getByRole('button', { name: '登录' }).click() - await page.locator('#app-view').waitFor({ state: 'visible' }) + await page.getByRole('heading', { name: '订阅管理已纳入统一控制面' }).waitFor() + if (await page.locator('input[type="password"], form').count()) throw new Error('subscription module exposed an independent login form') await page.waitForTimeout(50) if (responseLeaks.length) throw new Error(`sensitive response field exposed at ${width}px: ${responseLeaks.join(', ')}`) - await page.getByRole('button', { name: '用户订阅' }).click() - await page.locator('#subscriptions-list table').waitFor() - await page.getByRole('button', { name: '下一页' }).click() - await page.getByRole('button', { name: '概览' }).click() await page.reload({ waitUntil: 'domcontentloaded' }) - await page.locator('#app-view').waitFor({ state: 'visible' }) + await page.getByRole('heading', { name: '订阅管理已纳入统一控制面' }).waitFor() const overflow = await page.evaluate(() => document.documentElement.scrollWidth > window.innerWidth) if (overflow) throw new Error(`horizontal overflow at ${width}px`) await page.screenshot({ path: path.join(outputDir, `subscription-admin-${width}.png`), fullPage: true }) diff --git a/plugins/subscription-admin/test/mock-core.mjs b/plugins/subscription-admin/test/mock-core.mjs index f6e36b1..2054cbd 100644 --- a/plugins/subscription-admin/test/mock-core.mjs +++ b/plugins/subscription-admin/test/mock-core.mjs @@ -3,6 +3,7 @@ import http from 'node:http' const port = Number(process.env.MOCK_CORE_PORT || 18080) const token = process.env.MOCK_ACCESS_TOKEN || 'MOCK-ACCESS' const refresh = process.env.MOCK_REFRESH_TOKEN || 'MOCK-REFRESH' +const captchaProvider = String(process.env.MOCK_CAPTCHA_PROVIDER || '').toLowerCase() const users = new Map([ ['admin@example.com', { id: 1, role: 'admin', email: 'admin@example.com', username: 'admin' }], ['user@example.com', { id: 2, role: 'user', email: 'user@example.com', username: 'user' }] @@ -47,6 +48,9 @@ const server = http.createServer(async (req, res) => { const input = await body(req) const user = users.get(input.email) if (!user || input.password !== 'password') return json(res, 401, { code: 401, message: 'invalid credentials' }) + if (captchaProvider === 'turnstile' && input.turnstile_token !== 'MOCK-TURNSTILE-TOKEN') return json(res, 400, { code: 400, message: 'captcha required' }) + if (captchaProvider === 'tencent' && (!input.tencent_captcha_ticket || !input.tencent_captcha_randstr)) return json(res, 400, { code: 400, message: 'captcha required' }) + if (captchaProvider === 'aliyun' && !input.turnstile_token) return json(res, 400, { code: 400, message: 'captcha required' }) return json(res, 200, { code: 0, message: 'success', data: { access_token: token, refresh_token: refresh, user } }) } if (req.method === 'POST' && path === '/api/v1/auth/refresh') { @@ -55,7 +59,12 @@ const server = http.createServer(async (req, res) => { return json(res, 200, { code: 0, message: 'success', data: { access_token: 'NEW-MOCK-ACCESS', refresh_token: 'NEW-MOCK-REFRESH' } }) } if (req.method === 'POST' && path === '/api/v1/auth/logout') return json(res, 200, { code: 0, message: 'success', data: {} }) - if (req.method === 'GET' && path === '/api/v1/settings/public') return json(res, 200, { code: 0, message: 'success', data: { turnstile_enabled: false, geetest_captcha_enabled: false, tencent_captcha_enabled: false, aliyun_captcha_enabled: false } }) + if (req.method === 'GET' && path === '/api/v1/settings/public') return json(res, 200, { code: 0, message: 'success', data: { + turnstile_enabled: captchaProvider === 'turnstile', turnstile_site_key: captchaProvider === 'turnstile' ? 'mock-site-key' : '', + geetest_captcha_enabled: false, + tencent_captcha_enabled: captchaProvider === 'tencent', tencent_captcha_app_id: captchaProvider === 'tencent' ? '123456' : '', tencent_captcha_region: 'cn', + aliyun_captcha_enabled: captchaProvider === 'aliyun', aliyun_captcha_scene_id: captchaProvider === 'aliyun' ? 'mock-scene' : '', aliyun_captcha_prefix: captchaProvider === 'aliyun' ? 'mock-prefix' : '', aliyun_captcha_region: 'cn' + } }) if (!authorized(req)) return json(res, 401, { code: 401, message: 'unauthorized' }) if (req.method === 'GET' && path === '/api/v1/auth/me') return json(res, 200, { code: 0, message: 'success', data: users.get('admin@example.com') }) if (req.method === 'GET' && path === '/api/v1/admin/payment/plans') { diff --git a/plugins/subscription-admin/test/run-browser-check.sh b/plugins/subscription-admin/test/run-browser-check.sh index 66e5a73..f27e69a 100755 --- a/plugins/subscription-admin/test/run-browser-check.sh +++ b/plugins/subscription-admin/test/run-browser-check.sh @@ -8,14 +8,22 @@ cleanup() { trap cleanup EXIT INT TERM MOCK_CORE_PORT=18080 node "$ROOT/test/mock-core.mjs" >/tmp/subscription-admin-mock-core.log 2>&1 & CORE_PID=$! -CORE_BASE_URL=http://127.0.0.1:18080 \ -PLUGIN_HOST=127.0.0.1 \ -PLUGIN_PORT=18082 \ -PLUGIN_PUBLIC_BASE_PATH=/extensions/qiu.subscription-admin \ -PLUGIN_COOKIE_PATH=/extensions/qiu.subscription-admin/ \ -PLUGIN_COOKIE_SECURE=false \ -go run "$ROOT" >/tmp/subscription-admin-plugin.log 2>&1 & PLUGIN_PID=$! +( + export CORE_BASE_URL=http://127.0.0.1:18080 + export PLUGIN_HOST=127.0.0.1 + export PLUGIN_PORT=18082 + export PLUGIN_PUBLIC_BASE_PATH=/extensions/qiu.subscription-admin + export PLUGIN_COOKIE_PATH=/extensions/qiu.subscription-admin/ + export PLUGIN_COOKIE_SECURE=false + cd "$ROOT" + go run . +) >/tmp/subscription-admin-plugin.log 2>&1 & PLUGIN_PID=$! PLUGIN_TARGET_PORT=18082 MOCK_PROXY_PORT=18081 node "$ROOT/test/mock-proxy.mjs" >/tmp/subscription-admin-mock-proxy.log 2>&1 & PROXY_PID=$! -sleep 2 +for attempt in $(seq 1 30); do + if curl -fsS http://127.0.0.1:18081/extensions/qiu.subscription-admin/healthz >/dev/null 2>&1; then + break + fi + sleep 0.2 +done PLUGIN_BROWSER_ORIGIN=http://127.0.0.1:18081 PLUGIN_SCREENSHOT_DIR="$ROOT/.screenshots/subscription-admin" node "$ROOT/test/browser-check.mjs" diff --git a/plugins/subscription-admin/ui/app.js b/plugins/subscription-admin/ui/app.js index 8be86fe..cca914d 100644 --- a/plugins/subscription-admin/ui/app.js +++ b/plugins/subscription-admin/ui/app.js @@ -1,170 +1,5 @@ +// The subscription browser UI is mounted by Plugin Admin. This compatibility +// entry intentionally contains no login form, cookie, or token handling. (() => { 'use strict' - - const state = { - csrf: '', - plans: [], - subscriptions: null, - subscriptionPage: 1, - subscriptionPageSize: 50, - captcha: { enabled: false, provider: '' } - } - const $ = (selector) => document.querySelector(selector) - const loginView = $('#login-view') - const appView = $('#app-view') - const loginForm = $('#login-form') - const basePath = (document.body.dataset.basePath || '').replace(/\/$/, '') - const route = (path) => `${basePath}${path}` - - function showError(message, target = $('#app-error')) { - target.textContent = message || '请求失败' - target.hidden = !message - } - function clearError(target = $('#app-error')) { target.textContent = ''; target.hidden = true } - - async function request(path, options = {}) { - const headers = new Headers(options.headers || {}) - headers.set('Accept', 'application/json') - if (options.body && !headers.has('Content-Type')) headers.set('Content-Type', 'application/json') - if (state.csrf && options.method && options.method !== 'GET') headers.set('X-CSRF-Token', state.csrf) - const response = await fetch(route(path), { ...options, headers, credentials: 'same-origin' }) - const payload = await response.json().catch(() => ({})) - if (!response.ok) { - if (response.status === 401) { state.csrf = ''; loginView.hidden = false; appView.hidden = true } - throw new Error(payload.error || '请求失败') - } - return payload - } - - function unwrap(payload) { return payload && payload.code === 0 && Object.prototype.hasOwnProperty.call(payload, 'data') ? payload.data : payload } - function formatNumber(value) { - if (value === null || value === undefined || value === '') return '-' - const number = Number(value) - return Number.isFinite(number) ? number.toLocaleString('zh-CN', { maximumFractionDigits: 6 }) : String(value) - } - function formatDate(value) { - if (!value) return '-' - const date = new Date(value) - return Number.isNaN(date.getTime()) ? String(value) : date.toLocaleString('zh-CN', { dateStyle: 'medium', timeStyle: 'short' }) - } - function escapeHTML(value) { return String(value ?? '').replace(/[&<>'"]/g, (character) => ({ '&': '&', '<': '<', '>': '>', "'": ''', '"': '"' }[character])) } - function statusLabel(value) { const safe = String(value || 'unknown'); return `${escapeHTML(safe)}` } - function setView(name) { - document.querySelectorAll('.tab').forEach((button) => button.classList.toggle('active', button.dataset.view === name)) - document.querySelectorAll('.view').forEach((view) => { view.hidden = view.id !== `view-${name}` }) - if (name === 'plans' && !state.plans.length) loadPlans() - if (name === 'subscriptions' && !state.subscriptions) loadSubscriptions() - if (name === 'audit') loadAudit() - } - - async function login(event) { - event.preventDefault(); clearError($('#login-error')) - const form = new FormData(loginForm); const button = loginForm.querySelector('button[type="submit"]'); button.disabled = true - try { - const captchaToken = String(form.get('captcha_token') || '').trim() - if (state.captcha.enabled && !captchaToken) throw new Error('请先完成安全验证并填写验证结果') - let payload = await request('/login', { method: 'POST', body: JSON.stringify({ - email: form.get('email'), - password: form.get('password'), - turnstile_token: captchaToken || undefined, - tencent_captcha_ticket: state.captcha.provider === 'tencent' ? captchaToken || undefined : undefined, - tencent_captcha_randstr: state.captcha.provider === 'tencent' ? String(form.get('captcha_randstr') || '').trim() || undefined : undefined - }) }) - if (payload.requires_2fa) { - const code = window.prompt('请输入管理员 2FA 验证码') - if (!code) throw new Error('需要 2FA 验证码') - payload = await request('/login/2fa', { method: 'POST', body: JSON.stringify({ pending_token: payload.pending_token, totp_code: code }) }) - } - if (!payload.ok || !payload.csrf_token) throw new Error('登录响应无效') - state.csrf = payload.csrf_token; loginView.hidden = true; appView.hidden = false - const user = payload.user || {}; $('#operator').textContent = user.email || user.username || `管理员 #${user.id || '-'}` - await Promise.all([loadStatus(), loadOverview()]) - } catch (error) { showError(error.message, $('#login-error')) } finally { button.disabled = false } - } - - async function loadPlans() { - try { const payload = unwrap(await request('/api/plans')); state.plans = Array.isArray(payload) ? payload : []; $('#plan-count').textContent = formatNumber(state.plans.length); renderPlans(); return true } - catch (error) { showError(error.message); return false } - } - async function loadSubscriptions() { - try { - const params = new URLSearchParams(); const form = new FormData($('#subscription-filter')) - const userID = String(form.get('user_id') || '').trim(); const status = String(form.get('status') || '') - if (userID && !/^[1-9][0-9]*$/.test(userID)) throw new Error('用户 ID 必须是正整数') - let endpoint = '/api/subscriptions' - if (userID && !status) endpoint = `/api/users/${encodeURIComponent(userID)}/subscriptions` - if (endpoint === '/api/subscriptions') { if (userID) params.set('user_id', userID); if (status) params.set('status', status); params.set('page', String(state.subscriptionPage)); params.set('page_size', String(state.subscriptionPageSize)) } - const payload = unwrap(await request(`${endpoint}${params.toString() ? `?${params.toString()}` : ''}`)) || {}; state.subscriptions = payload - $('#subscription-count').textContent = formatNumber(Array.isArray(payload) ? payload.length : (payload.total ?? payload.items?.length ?? 0)); renderSubscriptions(payload); return true - } catch (error) { showError(error.message); return false } - } - async function loadHealth() { try { const response = await fetch(route('/healthz'), { credentials: 'same-origin', headers: { Accept: 'application/json' } }); return response.ok } catch { return false } } - async function loadOverview() { - clearError(); $('#sync-time').textContent = '同步中' - const results = await Promise.all([loadHealth(), loadPlans(), loadSubscriptions()]) - const healthy = results.every(Boolean); const degraded = results.some(Boolean) - setCoreStatus(healthy ? 'ok' : degraded ? 'degraded' : 'bad') - $('#sync-time').textContent = degraded ? `最近同步:${formatDate(new Date().toISOString())}` : '同步失败' - } - async function loadAudit() { try { const payload = await request('/api/audit'); renderAudit(payload.items || []) } catch (error) { showError(error.message) } } - async function loadStatus() { - try { const payload = await request('/api/status'); $('#credential-status').textContent = payload.credential_state === 'server_managed' ? '服务端托管(不回显)' : '不可用' } - catch { $('#credential-status').textContent = '不可用' } - } - async function loadCaptchaConfig() { - try { - const payload = await request('/api/captcha-config'); state.captcha = payload - const panel = $('#captcha-panel') - if (!payload.enabled) { panel.hidden = true; return } - panel.hidden = false; $('#captcha-label').textContent = `${payload.provider || '安全'}验证` - const descriptions = { geetest: 'Core 已启用 GeeTest。请在官方验证组件完成挑战后,将返回的 JSON 验证结果粘贴到此处。', turnstile: 'Core 已启用 Cloudflare Turnstile。请完成挑战后填写返回的验证结果。', tencent: 'Core 已启用腾讯验证码。请填写 ticket,并在下方填写 randstr。', aliyun: 'Core 已启用阿里云验证码。请填写 captchaVerifyParam。' } - $('#captcha-help').textContent = descriptions[payload.provider] || '请完成 Core 配置的验证码后填写验证结果。' - $('#captcha-randstr-row').hidden = payload.provider !== 'tencent' - } catch { $('#captcha-panel').hidden = true } - } - async function loadBalance(userID) { - if (!/^[1-9][0-9]*$/.test(userID)) throw new Error('用户 ID 必须是正整数') - const payload = unwrap(await request(`/api/users/${encodeURIComponent(userID)}`)) || {}; $('#user-balance').textContent = formatNumber(payload.balance) - } - async function bootstrap() { - try { - const payload = await request('/api/me'); state.csrf = payload.csrf_token || '' - if (!state.csrf || !payload.user) throw new Error('session unavailable') - loginView.hidden = true; appView.hidden = false - const user = payload.user; $('#operator').textContent = user.email || user.username || `管理员 #${user.id || '-'}` - await Promise.all([loadCaptchaConfig(), loadStatus(), loadOverview()]) - } catch { loginView.hidden = false; appView.hidden = true; await loadCaptchaConfig() } - } - function setCoreStatus(stateName) { const element = $('#core-status'); const labels = { ok: '已连接', degraded: '部分可用', bad: '不可用' }; element.textContent = labels[stateName] || '检查中'; element.className = `status ${stateName === 'ok' ? 'ok' : stateName === 'bad' ? 'bad' : ''}` } - function parseFeatures(features) { if (!features) return []; if (Array.isArray(features)) return features; if (typeof features !== 'string') return []; try { const parsed = JSON.parse(features); return Array.isArray(parsed) ? parsed : [] } catch { return features.split(/[,\n]/).map((item) => item.trim()).filter(Boolean) } } - function renderPlans() { - const container = $('#plans-list'); if (!state.plans.length) { container.innerHTML = '

暂无套餐数据

'; return } - container.innerHTML = state.plans.map((plan) => { - const groups = (plan.included_groups || []).map((group) => `${escapeHTML(group.name || group.id)}`).join('') || '未返回分组' - const features = parseFeatures(plan.features) - return `

${escapeHTML(plan.name || plan.product_name || `套餐 #${plan.id}`)}

${escapeHTML(plan.description || '')}

${plan.for_sale ? '可售' : '下架'}
${formatNumber(plan.price)} ${escapeHTML(plan.currency || '')}
有效期
${formatNumber(plan.validity_days)} ${escapeHTML(plan.validity_unit || '天')}
周期额度
${formatNumber(plan.cycle_quota_usd)}
总额度
${formatNumber(plan.total_quota_usd)}
实例上限
${formatNumber(plan.max_subscriptions_per_user)}
${groups}
${features.length ? `
    ${features.map((feature) => `
  • ${escapeHTML(feature)}
  • `).join('')}
` : ''}
` - }).join('') - } - function renderSubscriptions(payload) { - const container = $('#subscriptions-list'); const items = Array.isArray(payload) ? payload : (payload.items || []); const pagination = $('#subscription-pagination') - if (Array.isArray(payload) || !payload.pages) pagination.hidden = true - else { pagination.hidden = false; $('#subscription-page-info').textContent = `第 ${payload.page || state.subscriptionPage} / ${payload.pages} 页,共 ${formatNumber(payload.total)} 条`; $('#subscription-prev').disabled = (payload.page || state.subscriptionPage) <= 1; $('#subscription-next').disabled = (payload.page || state.subscriptionPage) >= payload.pages } - if (!items.length) { container.innerHTML = '

暂无订阅数据

'; return } - container.innerHTML = `${items.map((item) => ``).join('')}
订阅实例用户套餐状态有效期周期用量
#${escapeHTML(item.id)}${escapeHTML(item.user?.username || item.user?.email || item.user_id || '-')}${escapeHTML(item.plan_name || item.plan_id || '-')}${statusLabel(item.status)}${formatDate(item.starts_at)}
至 ${formatDate(item.expires_at)}
${formatNumber(item.cycle_usage_usd)} / ${formatNumber(item.cycle_quota_usd)}
` - container.querySelectorAll('.detail-button').forEach((button) => button.addEventListener('click', () => showDetail(button.dataset.id))) - } - async function showDetail(id) { try { const payload = unwrap(await request(`/api/subscriptions/${encodeURIComponent(id)}`)); $('#detail-content').textContent = JSON.stringify(payload, null, 2); $('#detail-dialog').showModal() } catch (error) { showError(error.message) } } - function renderAudit(items) { const container = $('#audit-list'); if (!items.length) { container.innerHTML = '

暂无操作记录

'; return }; container.innerHTML = `${items.slice().reverse().map((item) => ``).join('')}
时间动作结果用户 ID请求 ID
${formatDate(item.time)}${escapeHTML(item.action)}${statusLabel(item.result)}${escapeHTML(item.user_id ?? '-')}${escapeHTML(item.request_id || '-')}
` } - - loginForm.addEventListener('submit', login) - $('#logout').addEventListener('click', async () => { try { await request('/logout', { method: 'POST' }) } catch { /* session is cleared locally */ } state.csrf = ''; loginView.hidden = false; appView.hidden = true; loginForm.reset() }) - $('#refresh-all').addEventListener('click', loadOverview) - $('#subscription-filter').addEventListener('submit', (event) => { event.preventDefault(); state.subscriptionPage = 1; state.subscriptions = null; loadSubscriptions() }) - $('#subscription-prev').addEventListener('click', () => { if (state.subscriptionPage > 1) { state.subscriptionPage -= 1; loadSubscriptions() } }) - $('#subscription-next').addEventListener('click', () => { const pages = Number(state.subscriptions?.pages || 0); if (state.subscriptionPage < pages) { state.subscriptionPage += 1; loadSubscriptions() } }) - $('#balance-form').addEventListener('submit', async (event) => { event.preventDefault(); clearError(); const userID = String(new FormData(event.currentTarget).get('user_id') || '').trim(); try { await loadBalance(userID) } catch (error) { showError(error.message) } }) - $('#close-detail').addEventListener('click', () => $('#detail-dialog').close()) - document.querySelectorAll('.tab').forEach((button) => button.addEventListener('click', () => setView(button.dataset.view))) - document.querySelectorAll('.reload').forEach((button) => button.addEventListener('click', () => { if (button.dataset.target === 'plans') loadPlans(); if (button.dataset.target === 'subscriptions') { state.subscriptions = null; loadSubscriptions() }; if (button.dataset.target === 'audit') loadAudit() })) - void bootstrap() })() diff --git a/plugins/subscription-admin/ui/index.html b/plugins/subscription-admin/ui/index.html index 334b3ab..fee5019 100644 --- a/plugins/subscription-admin/ui/index.html +++ b/plugins/subscription-admin/ui/index.html @@ -3,120 +3,18 @@ - - 订阅管理插件 + + 订阅管理模块 -
-
-
SUB2API EXTENSION
-

订阅管理

-

使用 Sub2API 管理员账号登录。普通用户没有访问权限。

-
- - - - - -
-
- - +
+ +

SUB2API BUSINESS MODULE

+

订阅管理已纳入统一控制面

+

此服务只提供订阅模块的后端能力。管理员请从 Plugin Admin 进入,订阅页面会复用同一个会话,不需要再次登录。

+ 打开统一控制面 +

Core 凭据由服务端托管,浏览器不会接触访问令牌。

- -

订阅详情

-

-    
- diff --git a/plugins/subscription-admin/ui/styles.css b/plugins/subscription-admin/ui/styles.css index 1967807..630816b 100644 --- a/plugins/subscription-admin/ui/styles.css +++ b/plugins/subscription-admin/ui/styles.css @@ -1,103 +1,12 @@ -:root { color-scheme: light dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #17202a; background: #f4f7fa; font-synthesis: none; } -@media (prefers-color-scheme: dark) { :root { color: #edf2f7; background: #11161c; } } +:root { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; color: #1f2937; background: #f3f6fa; font-synthesis: none; } * { box-sizing: border-box; } -[hidden] { display: none !important; } -body { margin: 0; min-width: 320px; } -button, input, select { font: inherit; } -button { cursor: pointer; } -button:disabled { cursor: wait; opacity: .6; } -.shell { width: min(1160px, calc(100% - 32px)); margin: 0 auto; padding: 32px 0 64px; } -.auth-panel { width: min(440px, 100%); margin: 10vh auto 0; padding: 32px; border: 1px solid #dce4eb; border-radius: 10px; background: #fff; box-shadow: 0 12px 36px rgb(20 38 56 / 8%); } -@media (prefers-color-scheme: dark) { .auth-panel, .metric, .plan-card, .notice, table, .detail-dialog { background: #18212b; border-color: #2b3947; } } -h1, h2, h3, p { margin: 0; } -h1 { margin-top: 6px; font-size: clamp(1.5rem, 3vw, 2.1rem); letter-spacing: 0; } -h2 { font-size: 1.2rem; } -h3 { font-size: 1rem; } -.eyebrow { color: #3977a9; font-size: .7rem; font-weight: 700; letter-spacing: .08em; } -.muted { color: #647384; font-size: .86rem; line-height: 1.5; } -@media (prefers-color-scheme: dark) { .muted { color: #a8b5c2; } } -.stack { display: grid; gap: 18px; } -form.stack { margin-top: 26px; } -label { display: grid; gap: 7px; color: #4f6070; font-size: .82rem; font-weight: 600; } -input, select, textarea { width: 100%; height: 36px; padding: 0 10px; border: 1px solid #cbd7e1; border-radius: 5px; color: inherit; background: transparent; outline: none; } -textarea { height: auto; min-height: 72px; padding: 8px 10px; resize: vertical; font: .78rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; } -input:focus, select:focus { border-color: #3977a9; box-shadow: 0 0 0 3px rgb(57 119 169 / 17%); } -button { min-height: 36px; border-radius: 5px; border: 1px solid transparent; padding: 0 14px; } -.primary { color: white; background: #3977a9; } -.primary:hover { background: #2e628e; } -.secondary { color: #2d536f; background: transparent; border-color: #b9c9d7; } -.secondary:hover { background: rgb(57 119 169 / 8%); } -.topbar, .section-heading, .card-heading, .top-actions, .filter-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; } -.topbar { padding-bottom: 24px; border-bottom: 1px solid #d8e1e9; } -.top-actions { flex-wrap: wrap; justify-content: flex-end; } -.operator { max-width: 260px; overflow: hidden; color: #647384; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; } -.tabs { display: flex; gap: 6px; overflow-x: auto; padding: 18px 0; border-bottom: 1px solid #d8e1e9; } -.tab { color: #647384; background: transparent; border: 0; white-space: nowrap; } -.tab.active { color: #3977a9; box-shadow: inset 0 -2px #3977a9; } -.view { padding-top: 28px; } -.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } -.metric { min-height: 122px; display: grid; align-content: space-between; gap: 8px; padding: 18px; border: 1px solid #dce4eb; border-radius: 8px; background: #fff; } -.metric > span { color: #647384; font-size: .82rem; } -.metric strong { font-size: 1.55rem; font-variant-numeric: tabular-nums; } -.metric small { color: #7b8996; font-size: .75rem; } -.status { color: #647384; } -.status.ok { color: #2f8b5c; } -.status.bad { color: #c14f4f; } -.notice { display: flex; gap: 12px; align-items: baseline; padding: 14px 16px; border: 1px solid #c6dce9; border-left: 3px solid #3977a9; border-radius: 6px; background: #fff; font-size: .86rem; } -.card-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; } -.plan-card { display: grid; gap: 15px; padding: 20px; border: 1px solid #dce4eb; border-radius: 8px; background: #fff; } -.plan-price { color: #3977a9; font-size: 1.7rem; font-weight: 700; font-variant-numeric: tabular-nums; } -.plan-price small { color: #647384; font-size: .8rem; font-weight: 500; } -.facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; } -.facts div { padding: 10px; border-radius: 5px; background: rgb(100 115 132 / 8%); } -.facts dt { color: #647384; font-size: .72rem; } -.facts dd { margin: 4px 0 0; font-size: .86rem; font-variant-numeric: tabular-nums; } -.tags { display: flex; flex-wrap: wrap; gap: 6px; } -.tag, .pill { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 99px; font-size: .72rem; white-space: nowrap; } -.tag { color: #3977a9; background: rgb(57 119 169 / 11%); } -.pill { color: #647384; background: rgb(100 115 132 / 12%); } -.pill-active, .pill-success { color: #2f8b5c; background: rgb(47 139 92 / 13%); } -.pill-expired, .pill-revoked, .pill-failed, .pill-bad { color: #bd5050; background: rgb(189 80 80 / 13%); } -.feature-list { display: grid; gap: 5px; margin: 0; padding-left: 18px; color: #647384; font-size: .82rem; } -.filter-row { justify-content: flex-start; flex-wrap: wrap; margin-top: 18px; } -.filter-row label { width: min(220px, 100%); } -.balance-form { margin-top: 16px; } -.captcha-panel { display: grid; gap: 10px; margin: 2px 0 0; padding: 12px; border: 1px solid #dce4eb; border-radius: 6px; } -.captcha-panel legend { padding: 0 4px; color: #4f6070; font-size: .82rem; font-weight: 600; } -.pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; } -.pagination > div { display: flex; gap: 8px; } -.settings-list { display: grid; gap: 1px; overflow: hidden; border: 1px solid #dce4eb; border-radius: 8px; background: #dce4eb; } -.settings-list > div { display: flex; justify-content: space-between; gap: 18px; padding: 15px 16px; background: #fff; font-size: .84rem; } -.settings-list strong { font-weight: 600; text-align: right; } -@media (prefers-color-scheme: dark) { .settings-list { border-color: #2b3947; background: #2b3947; } .settings-list > div { background: #18212b; } } -.table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 18px; border: 1px solid #dce4eb; border-radius: 8px; } -table { width: 100%; min-width: 760px; border-collapse: collapse; background: #fff; } -th, td { padding: 13px 14px; border-bottom: 1px solid #e2e8ee; text-align: left; vertical-align: top; font-size: .82rem; white-space: nowrap; } -th { color: #647384; font-size: .74rem; font-weight: 600; background: rgb(100 115 132 / 6%); } -tr:last-child td { border-bottom: 0; } -code { color: #3977a9; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; } -.link-button { min-height: 28px; padding: 0; color: #3977a9; background: transparent; border: 0; } -.empty { padding: 32px; color: #647384; text-align: center; } -.error { color: #b84d4d; font-size: .84rem; } -.detail-dialog { width: min(720px, calc(100% - 28px)); max-height: min(700px, calc(100dvh - 28px)); padding: 0; border: 1px solid #dce4eb; border-radius: 8px; color: inherit; background: #fff; } -.detail-dialog::backdrop { background: rgb(15 27 39 / 42%); } -.dialog-heading { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; border-bottom: 1px solid #dce4eb; } -.icon-button { width: 32px; min-height: 32px; padding: 0; color: #647384; background: transparent; border: 0; font-size: 1.3rem; } -pre { max-height: 580px; overflow: auto; margin: 0; padding: 18px; font: .76rem/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; overflow-wrap: anywhere; } -@media (max-width: 760px) { - .shell { width: min(100% - 20px, 600px); padding-top: 18px; } - .auth-panel { margin-top: 4vh; padding: 22px; } - .topbar, .section-heading { align-items: flex-start; flex-direction: column; } - .top-actions { width: 100%; justify-content: space-between; } - .metric-grid, .card-list { grid-template-columns: 1fr; } - .metric { min-height: 104px; } - .notice { align-items: flex-start; flex-direction: column; gap: 5px; } - .filter-row { align-items: stretch; flex-direction: column; } - .filter-row label { width: 100%; } - .filter-row button { width: 100%; } - .pagination { align-items: stretch; flex-direction: column; } - .pagination > div { width: 100%; } - .pagination button { flex: 1; } - .settings-list > div { align-items: flex-start; flex-direction: column; gap: 5px; } - .settings-list strong { text-align: left; } -} +body { min-width: 320px; min-height: 100vh; margin: 0; } +.handoff-page { width: min(560px, calc(100% - 32px)); min-height: 100vh; margin: 0 auto; display: grid; align-content: center; justify-items: start; gap: 16px; } +.handoff-mark { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 9px; color: #fff; background: #0052d9; font-size: 22px; font-weight: 700; } +.eyebrow { margin: 10px 0 0; color: #7b8794; font-size: 11px; font-weight: 700; letter-spacing: .12em; } +h1 { max-width: 500px; margin: 0; color: #111827; font-size: clamp(26px, 5vw, 38px); line-height: 1.2; } +.muted { max-width: 510px; margin: 0; color: #687585; font-size: 14px; line-height: 1.75; } +.primary { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: 5px; color: #fff; background: #0052d9; text-decoration: none; font-size: 13px; } +.primary:hover { background: #003cab; } +.security-note { margin: 8px 0 0; color: #9aa5b4; font-size: 11px; } +@media (max-width: 480px) { .handoff-page { width: calc(100% - 24px); } h1 { font-size: 28px; } } diff --git a/scripts/install-local.sh b/scripts/install-local.sh index 3a13955..33b54c1 100755 --- a/scripts/install-local.sh +++ b/scripts/install-local.sh @@ -46,6 +46,11 @@ done command -v go >/dev/null 2>&1 || die "缺少 Go;请安装 Go 1.23 或更高版本" command -v systemctl >/dev/null 2>&1 || die "缺少 systemd/systemctl" command -v install >/dev/null 2>&1 || die "缺少 install 命令" +GO_MAJOR=$(go version | sed -nE 's/.* go([0-9]+)\.([0-9]+).*/\1/p') +GO_MINOR=$(go version | sed -nE 's/.* go([0-9]+)\.([0-9]+).*/\2/p') +if [[ -z "$GO_MAJOR" || -z "$GO_MINOR" ]] || (( GO_MAJOR < 1 || (GO_MAJOR == 1 && GO_MINOR < 23) )); then + die "需要 Go 1.23 或更高版本" +fi case "$SELECTION" in all) PLUGINS=(plugin-admin subscription-admin) ;; @@ -78,6 +83,27 @@ random_secret() { fi } +validate_install_root() { + local value=$1 label=$2 component current="" + [[ -n "$value" && "$value" = /* && "$value" != "/" ]] || die "$label 必须是非根绝对路径" + [[ "$value" != *$'\n'* && "$value" != *$'\r'* ]] || die "$label 包含非法换行" + local parts=() + IFS='/' read -r -a parts <<< "${value#/}" + for component in "${parts[@]}"; do + [[ -z "$component" ]] && continue + [[ "$component" != "." && "$component" != ".." ]] || die "$label 不能包含 . 或 .. 路径组件" + current="$current/$component" + [[ ! -L "$current" ]] || die "$label 的路径组件不能是符号链接:$current" + done + if [[ "$value" != */sub2api-add && "${PLUGIN_ALLOW_CUSTOM_PATHS:-false}" != "true" ]]; then + die "$label 必须位于受管的 sub2api-add 目录;如确需自定义路径请显式设置 PLUGIN_ALLOW_CUSTOM_PATHS=true" + fi +} + +validate_install_root "$PREFIX" PLUGIN_INSTALL_PREFIX +validate_install_root "$ETC_DIR" PLUGIN_ETC_DIR +validate_install_root "$VAR_DIR" PLUGIN_VAR_DIR + install_one() { local name=$1 source="$ROOT/plugins/$1" env_file="$ETC_DIR/$1.env" local binary_dir="$PREFIX/$1/bin" data_dir="$VAR_DIR/$1" @@ -125,8 +151,21 @@ Restart=on-failure RestartSec=3 NoNewPrivileges=true PrivateTmp=true +PrivateDevices=true ProtectSystem=strict ProtectHome=true +ProtectKernelTunables=true +ProtectKernelModules=true +ProtectKernelLogs=true +ProtectControlGroups=true +RestrictSUIDSGID=true +CapabilityBoundingSet= +LockPersonality=true +MemoryDenyWriteExecute=true +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 +TasksMax=128 +MemoryMax=512M +CPUQuota=200% ReadWritePaths=${data_dir} [Install]